Prechádzať zdrojové kódy

Merge remote-tracking branch 'upstream/master'

hsh 4 mesiacov pred
rodič
commit
695b368741

+ 2 - 2
src/main/java/thyyxxk/webserver/dao/his/executeItem/GenerateYzDao.java

@@ -324,7 +324,7 @@ public interface GenerateYzDao {
             "  where inpatient_no=#{inpatientNo} and admiss_times=#{admissTimes} " +
             " </script>")
     int updateOwnFlagfromZyActpatient(@Param("inpatientNo") String inpatientNo, @Param("admissTimes")Integer admissTimes, @Param("ownFlag")String ownFlag);
-    @Select("  select supply_code,supply_name,class supply_class,supply_child,self_buy from   yz_supply_type where supply_code in (#{codes}) ")
+    @Select("  select supply_code,supply_name,class supply_class,supply_child,self_buy from   yz_supply_type where supply_code in (${codes}) ")
     List<YzSupplyType> selectYzSupplyType(String codes);
     @Select(" select Isnull(start_day_time_kf,'') start_day_time_kf  from zy_adtward  where ward_code =#{wardCode} and dept_code =#{wardCode}")
     String selectStartDayTimeKfDept(String wardCode);
@@ -381,7 +381,7 @@ public interface GenerateYzDao {
             ", status_flag = #{statusFlag}"+
             "</if>"+
             "</trim>" +
-            " where act_order_no = #{actOrderNo,jdbcType=DECIMAL} " +
+            " where act_order_no = ${actOrderNo} " +
             "</script> ")
     int updateYzActOrderStatusFlag(YzActOrder yzActOrder);
     @Update(" update yz_act_order set performance_time =#{performanceTime,jdbcType=TIMESTAMP} where act_order_no in (${yzActNos})")

+ 1 - 1
src/main/java/thyyxxk/webserver/dao/his/medicaladvice/drugmanage/DrugSubmitDao.java

@@ -298,7 +298,7 @@ public interface DrugSubmitDao {
  List<CyDetailVo> selectCyDetail(DrugSubmitParam param);
  @Update({"<script>",
           "update yz_yp_zy_order " ,
-                  " set yz_yp_zy_order.page_no =#{newPageNo}" ,
+                  " set yz_yp_zy_order.page_no =#{newPageNo} , yz_yp_zy_order.drawer=#{opCode}" ,
                   " from zy_actpatient c," ,
                   "     yp_zd_dict b" ,
                   " where yz_yp_zy_order.occ_time <![CDATA[>=]]> #{startDate}" ,

+ 7 - 2
src/main/java/thyyxxk/webserver/entity/executeItem/GenerateYzVo.java

@@ -4,9 +4,12 @@ import lombok.Data;
 import thyyxxk.webserver.entity.datamodify.YzActOrder;
 import thyyxxk.webserver.entity.inpatient.ZyActpatient;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 /**
@@ -43,8 +46,10 @@ public class GenerateYzVo {
     private List<YzZyPatientFee> checkYzZyPatientFees;
     private List<YzYpZyOrder> checkYzYpZyOrders;
 
-    /**需要修改状态的医嘱*/
-    List<YzActOrder> updateStatusYzActOrders = new ArrayList<>();
+    /**
+     * 需要修改状态的医嘱
+     */
+    Map<BigDecimal, YzActOrder> updateStatusYzActOrders = new HashMap<>();
     /**警告信息 返回前端*/
     Set<String> warMessage = new HashSet<>();
 

+ 1 - 0
src/main/java/thyyxxk/webserver/entity/medicaladvice/medicamanage/drugmanage/DrugSubmitParam.java

@@ -36,6 +36,7 @@ public class DrugSubmitParam {
     /**基数药  '' 全部  0 非基数药 1 基数药  */
     private String jsyFlag;
     private String wardCode;
+    private String opCode;
 
     //新药单号
     private Integer newPageNo;

+ 20 - 13
src/main/java/thyyxxk/webserver/service/executeItem/GenerateYzService.java

@@ -128,6 +128,7 @@ public class GenerateYzService {
         if (CollUtil.isEmpty(yzActOrderList)) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "没有可以生成的医嘱");
         }
+        CommonUtil.BeanTrim(yzActOrderList);
         //频率
         List<YzOrderFrequency> yzOrderFrequencyList = dao.selectYzOrderFrequency();
         CommonUtil.BeanTrim(yzOrderFrequencyList);
@@ -200,10 +201,12 @@ public class GenerateYzService {
             }
         }
         //修改状态
-        if(CollUtil.isNotEmpty(param.getUpdateStatusYzActOrders())){
-           for(YzActOrder yzActOrder : param.getUpdateStatusYzActOrders()){
-               dao.updateYzActOrderStatusFlag(yzActOrder);
-           }
+        if(CollUtil.isNotEmpty(param.getUpdateStatusYzActOrders())) {
+            for (BigDecimal key : param.getUpdateStatusYzActOrders().keySet()) {
+                YzActOrder tempYzActOrder = param.getUpdateStatusYzActOrders().get(key);
+                log.info("修改状态医嘱 医嘱号={},状态={}", tempYzActOrder.getActOrderNo(), tempYzActOrder.getStatusFlag());
+                dao.updateYzActOrderStatusFlag(tempYzActOrder);
+            }
            if(CollUtil.isNotEmpty(param.getYzActOccs())){
                Set<BigDecimal> collect = param.getYzActOccs().stream().map(obj -> obj.getActOrderNo().abs()).collect(Collectors.toSet());
                String yzActNos = CollUtil.join(collect, ",");
@@ -343,14 +346,14 @@ public class GenerateYzService {
                 if(item.getEndTime() != null && DateUtil.parseDateTime(DateUtil.formatDateTime(item.getEndTime())).getTime() <= addDateTime(DateUtil.formatDate(ldCurDay),itStartTime,true).getTime()){
                     item.setStatusFlag("5");
                     item.setStatusTime(item.getEndTime());
-                    param.getUpdateStatusYzActOrders().add(item);
+                    param.getUpdateStatusYzActOrders().put(item.getActOrderNo(),item);
                     continue;
                 }
                 else{
                     if(item.getPerformanceTime()!= null && item.getEndTime()!=null && (DateUtil.parseDateTime(DateUtil.formatDateTime(item.getEndTime())).getTime() < addDateTime(DateUtil.formatDate(item.getPerformanceTime()),itStartTime,true).getTime())){
                         item.setStatusFlag("5");
                         item.setStatusTime(item.getEndTime());
-                        param.getUpdateStatusYzActOrders().add(item);
+                        param.getUpdateStatusYzActOrders().put(item.getActOrderNo(),item);
                     }
                 }
                 if(item.getPerformanceTime()!= null && betweenDay(ldCurDay,item.getPerformanceTime(),true,false) >= 0){
@@ -422,12 +425,16 @@ public class GenerateYzService {
                     //执行频率为ALWAYS,IRREG,取执行时间为24小时的开始时间;
                     //这样的医嘱只产生一条执行;
                     Date occTimeTemp;
-                    if(DateUtil.between(now,addDateTime(DateUtil.formatDate(now), itStartTime, true), DateUnit.SECOND,false) > 0){
+                    if(FREQ_CODE_ONCE.equals(item.getFrequCode())){
+                        occTimeTemp = now;
+                    }
+                   else if(DateUtil.between(now,addDateTime(DateUtil.formatDate(now), itStartTime, true), DateUnit.SECOND,false) > 0){
                         occTimeTemp = addDateTime(LdCurDayNextStr, itStartTime, true);
-                    }else {
+                    }
+                    else {
                         occTimeTemp = addDateTime(ldCurDayStr, itStartTime, true);
                     }
-                    if(DateUtil.between(item.getStartTime(),occTimeTemp,DateUnit.SECOND,false) < 0 ){
+                    if( DateUtil.between(item.getStartTime(), occTimeTemp, DateUnit.SECOND, false)< 0 ){
                         continue;
                     }
                     if(item.getEndTime() == null || occTimeTemp.getTime() <= parseDateTimeDay(item.getEndTime()).getTime()){
@@ -447,22 +454,22 @@ public class GenerateYzService {
         if(NumberEnum.TWO.getCode().equals(item.getStatusFlag())){
             item.setStatusFlag(NumberEnum.ThREE.getCode());
             item.setStatusTime(DateUtil.parseDateTime(ldCurrent));
-            param.getUpdateStatusYzActOrders().add(item);
+            param.getUpdateStatusYzActOrders().put(item.getActOrderNo(),item);
         }
         else if(NumberEnum.ThREE.getCode().equals(item.getStatusFlag())){
             item.setStatusFlag(NumberEnum.FOUR.getCode());
             item.setStatusTime(DateUtil.parseDateTime(ldCurrent));
-            param.getUpdateStatusYzActOrders().add(item);
+            param.getUpdateStatusYzActOrders().put(item.getActOrderNo(),item);
         }
         else if(NumberEnum.FOUR.getCode().equals(item.getStatusFlag())){
             item.setStatusTime(DateUtil.parseDateTime(ldCurrent));
-            param.getUpdateStatusYzActOrders().add(item);
+            param.getUpdateStatusYzActOrders().put(item.getActOrderNo(),item);
         }
         if(FREQ_CODE_ONCE.equals(item.getFrequCode())){
             item.setStatusFlag(NumberEnum.FIVE.getCode());
             item.setStatusTime(DateUtil.parseDateTime(ldCurrent));
             item.setEndTime(item.getStartTime());
-            param.getUpdateStatusYzActOrders().add(item);
+            param.getUpdateStatusYzActOrders().put(item.getActOrderNo(),item);
         }
     }
 

+ 1 - 0
src/main/java/thyyxxk/webserver/service/medicaladvice/drugmanage/DrugSubmitService.java

@@ -232,6 +232,7 @@ public class DrugSubmitService {
             yzYpPageNo.setDeptCode(param.getWardCode());
             yzYpPageNo.setWardCode(param.getWardCode());
             yzYpPageNo.setGroupNo(param.getGroupNo());
+            param.setOpCode(TokenUtil.getInstance().getTokenUserId());
             yzYpPageNoDao.insert(yzYpPageNo);
             dao.updateYzYpZyOrderPageNo(param);
             dao.updateYzActOccPageNo(param);