Explorar o código

医嘱生成医嘱号问题优化

lihong hai 4 meses
pai
achega
43335abe8b

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

@@ -371,9 +371,6 @@ public interface GenerateYzDao {
             "<if test=' statusTime !=null '>"+
             " status_time = #{statusTime,jdbcType=TIMESTAMP}"+
             "</if>"+
-            "<if test=' performanceTime !=null '>"+
-            ", performance_time = #{performanceTime,jdbcType=TIMESTAMP}"+
-            "</if>"+
             "<if test=' endTime !=null '>"+
             ", end_time = #{endTime,jdbcType=TIMESTAMP}"+
             "</if>"+
@@ -381,7 +378,7 @@ public interface GenerateYzDao {
             ", status_flag = #{statusFlag}"+
             "</if>"+
             "</trim>" +
-            " where act_order_no = ${actOrderNo} " +
+            " where act_order_no = ${actOrderNoStr} " +
             "</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/executeItem/YzActOccDao.java

@@ -39,7 +39,7 @@ public interface YzActOccDao extends BaseMapper<YzActOcc> {
             "                        specification, occ_oper, parent_sort, exec_unit, dose, page_no, order_name, pay_self, group_no, " +
             "                        self_flag, frequ_code, retprice, serial, dose_unit, page_class,drug_quan,status_flag,instruction,supply_code,drug_quan2,zy_serial_no)  VALUES " +
             "<foreach collection='list' item='item'  separator=','>"+
-            "  (#{item.actOrderNo,jdbcType=DECIMAL}, #{item.admissTimes}, #{item.alwaysFlag},  #{item.bedNo}, #{item.chargeCode},  #{item.deptCode},  #{item.wardCode},  #{item.discription}," +
+            "  (${item.actOrderNoStr}, #{item.admissTimes}, #{item.alwaysFlag},  #{item.bedNo}, #{item.chargeCode},  #{item.deptCode},  #{item.wardCode},  #{item.discription}," +
             "  #{item.infantFlag}, #{item.inpatientName}, #{item.inpatientNo},#{item.occName},#{item.occTime,jdbcType=TIMESTAMP},#{item.occType},#{item.phyName},#{item.parentNo,jdbcType=DECIMAL}, " +
             "  #{item.specification}, #{item.occOper},  #{item.parentSort}, #{item.execUnit}, #{item.dose},  #{item.pageNo}, #{item.orderName},#{item.paySelf}, #{item.groupNo}," +
             "  #{item.selfFlag}, #{item.frequCode}, #{item.retprice}, #{item.serial}, #{item.doseUnit},#{item.pageClass},#{item.drugQuan,jdbcType=DECIMAL},#{item.statusFlag},#{item.instruction},#{item.supplyCode},#{item.drugQuan2,jdbcType=DECIMAL},#{item.zySerialNo})" +

+ 1 - 1
src/main/java/thyyxxk/webserver/dao/his/executeItem/YzYpZyOrderDao.java

@@ -57,7 +57,7 @@ public interface YzYpZyOrderDao extends BaseMapper<YzYpZyOrder> {
   @Insert("<script>" +
           " insert into yz_yp_zy_order (inpatient_no, admiss_times, name, bed_no, dept_code, ward_code, charge_code, amount, retprice, charge_date, infant_flag, drawer, always_flag, status_flag, drug_class, serail, occ_time, act_order_no, page_no, pay_self, self_flag, separate_flag, suprice_flag, drug_flag, serial, group_no, doctor_name, zy_serial_no, page_class, yb_self_flag, ledger_sn, detail_sn) values " +
           "<foreach collection='list' item='item'  separator=','>"+
-          " ( #{item.inpatientNo},#{item.admissTimes} ,#{item.name}, #{item.bedNo}, #{item.deptCode}, #{item.wardCode}, #{item.chargeCode},  #{item.amount,jdbcType=DECIMAL}, #{item.retprice,jdbcType=DECIMAL}, #{item.chargeDate,jdbcType=TIMESTAMP}, #{item.infantFlag}, #{item.drawer},#{item.alwaysFlag}, #{item.statusFlag},  #{item.drugClass},  #{item.serail}, #{item.occTime,jdbcType=TIMESTAMP}, #{item.actOrderNo,jdbcType=DECIMAL} ,#{item.pageNo,jdbcType=DECIMAL} , #{item.paySelf}, #{item.selfFlag}, #{item.separateFlag}, #{item.supriceFlag}, #{item.drugFlag},  #{item.serial}, #{item.groupNo}, #{item.doctorName}, #{item.zySerialNo}, #{item.pageClass}, #{item.ybSelfFlag}, #{item.ledgerSn}, #{item.detailSn})"+
+          " ( #{item.inpatientNo},#{item.admissTimes} ,#{item.name}, #{item.bedNo}, #{item.deptCode}, #{item.wardCode}, #{item.chargeCode},  #{item.amount,jdbcType=DECIMAL}, #{item.retprice,jdbcType=DECIMAL}, #{item.chargeDate,jdbcType=TIMESTAMP}, #{item.infantFlag}, #{item.drawer},#{item.alwaysFlag}, #{item.statusFlag},  #{item.drugClass},  #{item.serail}, #{item.occTime,jdbcType=TIMESTAMP}, ${item.actOrderNoStr} ,#{item.pageNo,jdbcType=DECIMAL} , #{item.paySelf}, #{item.selfFlag}, #{item.separateFlag}, #{item.supriceFlag}, #{item.drugFlag},  #{item.serial}, #{item.groupNo}, #{item.doctorName}, #{item.zySerialNo}, #{item.pageClass}, #{item.ybSelfFlag}, #{item.ledgerSn}, #{item.detailSn})"+
           "</foreach>" +
           "</script>")
   int batchInsertData(List<YzYpZyOrder> list);

+ 1 - 1
src/main/java/thyyxxk/webserver/dao/his/executeItem/YzZyPatientFeeDao.java

@@ -78,7 +78,7 @@ public interface YzZyPatientFeeDao extends BaseMapper<YzZyPatientFee> {
     @Insert("<script> " +
             " insert into yz_zy_patient_fee (inpatient_no, admiss_times, ledger_sn, detail_sn, charge_date, op_id_code, charge_code, infant_flag, charge_status, charge_fee, occ_time, act_order_no, dept_code, ward_code, order_count, exec_unit, zy_serial_no, op_flag, op_id, op_date, yb_self_flag ) values " +
             "<foreach collection='list' item='item'  separator=','>"+
-            "( #{item.inpatientNo},#{item.admissTimes},#{item.ledgerSn},#{item.detailSn},#{item.chargeDate,jdbcType=TIMESTAMP},#{item.opIdCode},#{item.chargeCode},#{item.infantFlag},#{item.chargeStatus},#{item.chargeFee,jdbcType=DECIMAL},#{item.occTime,jdbcType=TIMESTAMP},#{item.actOrderNo,jdbcType=DECIMAL},#{item.deptCode},#{item.wardCode},#{item.orderCount,jdbcType=DECIMAL},#{item.execUnit},#{item.zySerialNo},#{item.opFlag},#{item.opId},#{item.opDate,jdbcType=TIMESTAMP},#{item.ybSelfFlag} )"+
+            "( #{item.inpatientNo},#{item.admissTimes},#{item.ledgerSn},#{item.detailSn},#{item.chargeDate,jdbcType=TIMESTAMP},#{item.opIdCode},#{item.chargeCode},#{item.infantFlag},#{item.chargeStatus},#{item.chargeFee,jdbcType=DECIMAL},#{item.occTime,jdbcType=TIMESTAMP},${item.actOrderNoStr},#{item.deptCode},#{item.wardCode},#{item.orderCount,jdbcType=DECIMAL},#{item.execUnit},#{item.zySerialNo},#{item.opFlag},#{item.opId},#{item.opDate,jdbcType=TIMESTAMP},#{item.ybSelfFlag} )"+
             "</foreach>" +
             "</script>")
     int batchInsertData(List<YzZyPatientFee> list);

+ 3 - 2
src/main/java/thyyxxk/webserver/entity/datamodify/YzActOrder.java

@@ -42,6 +42,7 @@ public class YzActOrder implements Serializable {
     private String orderGroup;
 
     private BigDecimal actOrderNo;
+    private String actOrderNoStr;
     private BigDecimal actOrderNoTf;
     private String inpatientNo;
     /**
@@ -244,9 +245,9 @@ public class YzActOrder implements Serializable {
 
     public String getActOrderNoStr() {
         if (actOrderNo != null) {
-            return actOrderNo.stripTrailingZeros().toPlainString();
+            actOrderNoStr = actOrderNo.stripTrailingZeros().toPlainString();
         }
-        return null;
+        return actOrderNoStr;
     }
 
 

+ 10 - 0
src/main/java/thyyxxk/webserver/entity/executeItem/YzActOcc.java

@@ -1,5 +1,6 @@
 package thyyxxk.webserver.entity.executeItem;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -27,6 +28,8 @@ import java.util.Date;
 public class YzActOcc  {
     /**医嘱号*/
     private BigDecimal actOrderNo;
+    @TableField(exist = false)
+    private String actOrderNoStr;
     /**科室*/
     private String deptCode;
     /**病室*/
@@ -112,6 +115,13 @@ public class YzActOcc  {
     /** 没使用*/
     private String printCommentBq;
 
+    public String getActOrderNoStr() {
+        if(actOrderNo != null){
+            actOrderNoStr = actOrderNo.toPlainString();
+        }
+        return actOrderNoStr;
+    }
+
     @Override
     public boolean equals(Object o) {
         if (this == o) return true;

+ 9 - 1
src/main/java/thyyxxk/webserver/entity/executeItem/YzYpZyOrder.java

@@ -1,5 +1,6 @@
 package thyyxxk.webserver.entity.executeItem;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -90,7 +91,14 @@ public class YzYpZyOrder {
      private Integer ledgerSn;
     //流水号
      private Integer detailSn;
-
+    @TableField(exist = false)
+    private String actOrderNoStr;
+    public String getActOrderNoStr() {
+        if(actOrderNo != null){
+            actOrderNoStr = actOrderNo.toPlainString();
+        }
+        return actOrderNoStr;
+    }
     @Override
     public boolean equals(Object o) {
         if (this == o) return true;

+ 9 - 1
src/main/java/thyyxxk/webserver/entity/executeItem/YzZyPatientFee.java

@@ -1,5 +1,6 @@
 package thyyxxk.webserver.entity.executeItem;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -73,7 +74,14 @@ public class YzZyPatientFee {
     private String ybSelfFlag;
     /** 手术时间*/
     private Date opDate;
-
+    @TableField(exist = false)
+    private String actOrderNoStr;
+    public String getActOrderNoStr() {
+        if(actOrderNo != null){
+            actOrderNoStr = actOrderNo.toPlainString();
+        }
+        return actOrderNoStr;
+    }
     @Override
     public boolean equals(Object o) {
         if (this == o) return true;

+ 15 - 12
src/main/java/thyyxxk/webserver/service/executeItem/GenerateYzService.java

@@ -171,7 +171,6 @@ public class GenerateYzService {
                 dao.updateOwnFlagfromZyActpatient(zyActpatient.getInpatientNo(), zyActpatient.getAdmissTimes(), "2");
             }
             List<YzActOrder> patientYzActOrder = yzActOrderList.stream().filter(item -> zyActpatient.getInpatientNo().equals(StrUtil.trim(item.getInpatientNo())) && zyActpatient.getAdmissTimes().equals(item.getAdmissTimes())).collect(Collectors.toList());
-            log.info("住院号={},住院次数={}",zyActpatient.getInpatientNo(),zyActpatient.getAdmissTimes());
             if (CollUtil.isEmpty(patientYzActOrder)) {
                 continue;
             }
@@ -208,10 +207,13 @@ public class GenerateYzService {
                 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, ",");
-               log.info("修改执行时间的医嘱={}",yzActNos);
-               dao.updateYzActOrderPerformanceTime(yzActNos, DateUtil.parseDate(param.getYzDate()));
+               Set<BigDecimal> collect = param.getYzActOccs().stream().map(obj -> Convert.toBigDecimal(obj.getActOrderNoStr()).abs()).collect(Collectors.toSet());
+               List<List<BigDecimal>> split = CollUtil.split(collect, 50);
+               for(List<BigDecimal> item : split){
+                   String yzActNos = CollUtil.join(collect, ",");
+                   log.info("修改执行时间的医嘱={}",yzActNos);
+                   dao.updateYzActOrderPerformanceTime(yzActNos, DateUtil.parseDate(param.getYzDate()));
+               }
            }
         }
         //最后的执行
@@ -336,7 +338,6 @@ public class GenerateYzService {
                 }
                 //确定当前日期
                 ldCurDay = DateUtil.offsetDay(ldCurDayNew, i);
-                log.info("生成的日期ldCurDay={}",ldCurDay);
                 String ldCurDayStr = DateUtil.formatDate(ldCurDay);
                 //下一天
                 Date LdCurDayNext = DateUtil.offsetDay(ldCurDay, 1);
@@ -576,7 +577,7 @@ public class GenerateYzService {
                    return;
                }
                else {
-                   ypZdDictVo.setName(yzActOrder.getIbBuyName()+ypZdDictVo.getName());
+                   ypZdDictVo.setName(yzActOrder.getIbBuyName()+yzActOrder.getOrderName());
                    param.getYzActOccs().add(convert2YzActOcc(zyActpatient, yzActOrder, null, occTime, ypZdDictVo, zdGroupMap));
                    if(!yzActOrder.getBuyFlag()){
                        //向yz_yp_zy_order中插入一条记录;
@@ -612,6 +613,7 @@ public class GenerateYzService {
         }
     }
 
+
     /**
      * @description: 获取周几执行  1表示周日,2表示周一  1,7  2,1 3,2  4,3  5,4 6,5 7,6
      * @author: lihong
@@ -683,7 +685,6 @@ public class GenerateYzService {
         Field[] fields = ReflectUtil.getFields(YzOrderFrequency.class);
         for(Field field : fields){
             String fieldName = ReflectUtil.getFieldName(field);
-            log.info("频率字段名称:{}",fieldName);
             if(fieldName.startsWith("day")){
               Integer value = Convert.toInt(ReflectUtil.getFieldValue(yzOrderFrequency, fieldName),0);
               if(value == 1){
@@ -691,7 +692,6 @@ public class GenerateYzService {
               }
             }
         }
-        log.info("频率{}的所有执行时间{}",yzOrderFrequency.getCode(),occTimeList);
         return occTimeList;
     }
 
@@ -742,12 +742,12 @@ public class GenerateYzService {
         item.setBuyFlag(false);
         if(NumberEnum.ONE.getCode().equals(item.getSelfBuy())){
             item.setBuyFlag(true);
-            item.setIbBuyName("(自备)");
+            item.setIbBuyName("(自备)");
         }else if(NumberEnum.TWO.getCode().equals(item.getSelfBuy())){
             item.setBuyFlag(true);
-            item.setIbBuyName("(嘱托)");
+            item.setIbBuyName("(嘱托)");
         }else if(NumberEnum.ThREE.getCode().equals(item.getSelfBuy())){
-            item.setIbBuyName("(基数药)");
+            item.setIbBuyName("(基数药)");
         }else {
             item.setIbBuyName("");
         }
@@ -804,6 +804,7 @@ public class GenerateYzService {
      **/
     private static YzYpZyOrder convert2YzYpZyOrder(ZyActpatient zyActpatient, YzActOrder yzActOrder, YpZdDictVo ypZdDictVo, Date occTime,Map<String, YpZdGroupName> zdGroupMap) {
         YzYpZyOrder yzYpZyOrder = YzYpZyOrder.builder()
+                .actOrderNoStr(yzActOrder.getActOrderNo().toPlainString())
                 .inpatientNo(zyActpatient.getInpatientNo())
                 .admissTimes(zyActpatient.getAdmissTimes())
                 .actOrderNo(yzActOrder.getActOrderNo())
@@ -864,6 +865,7 @@ public class GenerateYzService {
             }
         }
         YzActOcc yzActOcc = YzActOcc.builder()
+                .actOrderNoStr(yzActOrder.getActOrderNo().toPlainString())
                 .actOrderNo(yzActOrder.getActOrderNo())
                 .admissTimes(zyActpatient.getAdmissTimes())
                 .alwaysFlag("ONCE".equals(yzActOrder.getFrequCode()) ? "t" : "a")
@@ -974,6 +976,7 @@ public class GenerateYzService {
             }
         }
         YzZyPatientFee yzZyPatientFee = YzZyPatientFee.builder()
+                .actOrderNoStr(yzActOrder.getActOrderNo().toPlainString())
                 .inpatientNo(zyActpatient.getInpatientNo())
                 .admissTimes(zyActpatient.getAdmissTimes())
                 .actOrderNo(yzActOrder.getActOrderNo())