소스 검색

医嘱生成状态

lihong 3 주 전
부모
커밋
393710b8ea

+ 2 - 1
src/main/java/thyyxxk/webserver/controller/executeItem/GenerateYzController.java

@@ -12,6 +12,7 @@ import thyyxxk.webserver.utils.ResultVoUtil;
 
 import javax.annotation.Resource;
 import java.util.List;
+import java.util.Set;
 
 /**
  * @Description: 医嘱生成
@@ -44,7 +45,7 @@ public class GenerateYzController {
      * @return: thyyxxk.webserver.entity.ResultVo<java.util.List<thyyxxk.webserver.entity.inpatient.ZyActpatient>>
      **/
     @PostMapping("/generateYpOrZl")
-    public ResultVo<String> generateYpOrZl(@RequestBody GenerateYzVo param){
+    public ResultVo<Set<String>> generateYpOrZl(@RequestBody GenerateYzVo param){
         return service.generateYpOrZl(param);
     }
 

+ 4 - 8
src/main/java/thyyxxk/webserver/entity/executeItem/GenerateYzVo.java

@@ -5,12 +5,7 @@ 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;
+import java.util.*;
 
 /**
  * @Description: 医嘱生成参数
@@ -51,7 +46,8 @@ public class GenerateYzVo {
      */
     Map<BigDecimal, YzActOrder> updateStatusYzActOrders = new HashMap<>();
     /**警告信息 返回前端*/
-    Set<String> warMessage = new HashSet<>();
-
+    Set<String> warMessage = new LinkedHashSet<>();
+    /**警告信息 的医嘱号,不更改状态*/
+    Set<String> warMessageActOrders = new LinkedHashSet<>();
 
 }

+ 17 - 9
src/main/java/thyyxxk/webserver/service/executeItem/GenerateYzService.java

@@ -88,7 +88,7 @@ public class GenerateYzService {
     }
 
     @Transactional(rollbackFor = Exception.class)
-    public ResultVo<String> generateYpOrZl(GenerateYzVo param) {
+    public ResultVo<Set<String>> generateYpOrZl(GenerateYzVo param) {
         //这里只查前后两天的
         Date now = new Date();
         AssertUtil.isnotBlank(param.getWardCode(), "病室不能为空");
@@ -210,7 +210,7 @@ public class GenerateYzService {
                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, ",");
+                   String yzActNos = CollUtil.join(item, ",");
                    log.info("修改执行时间的医嘱={}",yzActNos);
                    dao.updateYzActOrderPerformanceTime(yzActNos, DateUtil.parseDate(param.getYzDate()));
                }
@@ -222,9 +222,8 @@ public class GenerateYzService {
         yzZyPatientFeeDao.updateChargeStatus(param.getWardCode());
         yzZyPatientFeeDao.updateChargeStatusAndOrderCount(param.getWardCode());
         yzActOccDao.updateStatusFlag(param.getWardCode());
-        String ypOrZlFlagStr = NumberEnum.ONE.getCode().equals(param.getYpOrZlFlag()) ? "生成药品" : "生成诊疗";
-        String message = CollUtil.isNotEmpty(param.getWarMessage()) ? ypOrZlFlagStr+"成功,警告信息:"+CollUtil.join(param.getWarMessage(), ";") : ypOrZlFlagStr+"成功!";
-        return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_EL_MESSAGE,message);
+        String ypOrZlFlagStr = NumberEnum.ONE.getCode().equals(param.getYpOrZlFlag()) ? "生成药品成功" : "生成诊疗成功";
+        return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_EL_MESSAGE,ypOrZlFlagStr,param.getWarMessage());
     }
 
     private void removeData(GenerateYzVo param, ZyActpatient zyActpatient) {
@@ -451,6 +450,13 @@ public class GenerateYzService {
     }
 
     private void changeOrderStatus(YzActOrder item, String ldCurrent,GenerateYzVo param) {
+        if(CollUtil.isNotEmpty(param.getWarMessageActOrders())){
+            for(String actOrderStr : param.getWarMessageActOrders()){
+                if(actOrderStr.equals(item.getActOrderNoStr())){
+                    return;
+                }
+            }
+        }
         //置STATUS_FLAG状态;2 :确认 3 :第一次执行 4 : 执行 5 :停止
         if(NumberEnum.TWO.getCode().equals(item.getStatusFlag())){
             item.setStatusFlag(NumberEnum.ThREE.getCode());
@@ -563,17 +569,19 @@ public class GenerateYzService {
            }
            else {
                if(ypZdDictVo == null || StrUtil.isBlank(ypZdDictVo.getName()) || Convert.toBigDecimal(ypZdDictVo.getPackRetprice(),BigDecimal.ZERO).compareTo(BigDecimal.ZERO) == 0){
-                 String message =  StrUtil.format("床号={},医嘱号={}, 医嘱名={}:药品编码,GROUP_NO 为{},{}的医嘱找不到原药品纪录,请通知药房!",
-                           yzActOrder.getBedNo(), yzActOrder.getActOrderNo(), yzActOrder.getOrderName(), yzActOrder.getOrderCode(), yzActOrder.getGroupNo());
+                 String message =  StrUtil.format("床号={},医嘱号={}, 医嘱名={}:药品编码,GROUP_NO 为{},{},医嘱时间={},的医嘱找不到原药品纪录,请通知药房!",
+                           yzActOrder.getBedNo(), yzActOrder.getActOrderNo(), yzActOrder.getOrderName(), yzActOrder.getOrderCode(), yzActOrder.getGroupNo(),DateUtil.formatDateTime(occTime));
                    log.error("生成药品错误消息:{}",message);
                    param.getWarMessage().add(message);
+                   param.getWarMessageActOrders().add(yzActOrder.getActOrderNoStr());
                    return;
                }
                //禁用
                else if(KF.equals(drugFlag) && NumberEnum.ONE.getCode().equals(ypZdDictVo.getVisibleFlag())){
-                   String message = StrUtil.format("床号={},医嘱号={}, 医嘱名={}:药品编码,GROUP_NO 为{},{}的药品药房已禁用,请更改此医嘱!", yzActOrder.getBedNo(), yzActOrder.getActOrderNo(), yzActOrder.getOrderName(), yzActOrder.getOrderCode(), yzActOrder.getGroupNo());
+                   String message = StrUtil.format("床号={},医嘱号={}, 医嘱名={}:药品编码,GROUP_NO 为{},{},医嘱时间={}的药品药房已禁用,请更改此医嘱!", yzActOrder.getBedNo(), yzActOrder.getActOrderNo(), yzActOrder.getOrderName(), yzActOrder.getOrderCode(), yzActOrder.getGroupNo(),DateUtil.formatDateTime(occTime));
                    log.error("生成药品错误消息:{}",message);
                    param.getWarMessage().add(message);
+                   param.getWarMessageActOrders().add(yzActOrder.getActOrderNoStr());
                    return;
                }
                else {
@@ -971,7 +979,7 @@ public class GenerateYzService {
      **/
     private static YzZyPatientFee convert2YzZyPatientFee(ZyActpatient zyActpatient, YzActOrder yzActOrder, ZdChargeItem zdChargeItem, Date occTime,GenerateYzVo param) {
         List<String> yjDeptCodes = param.getYjDeptCodes();
-        String execUnit = StrUtil.isNotBlank(zdChargeItem.getExecUnit()) ? zdChargeItem.getExecUnit() : yzActOrder.getExecUnit();
+        String execUnit = yzActOrder.getExecUnit();
         String chargeStatus = "1";
         if(execUnit != null && CollUtil.isNotEmpty(yjDeptCodes)){
             if(yjDeptCodes.stream().anyMatch(obj -> obj.equals(execUnit))){