| 
					
				 | 
			
			
				@@ -1,5 +1,6 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package thyyxxk.webserver.service.zhuyuanyisheng.yizhuverify; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import lombok.Getter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import lombok.extern.slf4j.Slf4j; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import thyyxxk.webserver.constants.Capacity; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import thyyxxk.webserver.dao.his.zhuyuanyisheng.YiZhuLuRuDao; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -10,6 +11,7 @@ import thyyxxk.webserver.entity.zhuyuanyisheng.yizhuluru.YzZdOrderItemConfirm; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import thyyxxk.webserver.service.redislike.RedisLikeService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import thyyxxk.webserver.utils.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.math.BigDecimal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.function.Consumer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -52,12 +54,14 @@ public class YiZhuCheckData { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     List<String> warningMessage = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Map<String, Object> returnMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private UserInfo userInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Getter 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private Boolean passTheAudit = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private final List<String> groupList = Arrays.asList("71", "73"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 全排斥医嘱 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Getter 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private Repel repel = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private final String ONCE = "ONCE"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -176,25 +180,32 @@ public class YiZhuCheckData { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private void drugCheck(XinZhenYzActOrder item) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        String key = item.getOrderCode().trim() + item.getSerial().trim() + item.getGroupNo().trim(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        XinZhenYzActOrder detailsOfDrugs = getDrugData(key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (StringUtil.isBlank(item.getGroupNo())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             errorMessage.add("没有药房请重新开。"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!groupList.contains(item.getGroupNo())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            errorMessage.add("药房错误,请重新选择药房。"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String key = item.getOrderCode().trim() + item.getSerial().trim() + item.getGroupNo().trim(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        XinZhenYzActOrder detailsOfDrugs = getDrugData(key, item.getSupplyCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (BigUtils.bigXiaoYu(item.getDose(), 0)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             errorMessage.add(String.format("医嘱:【%s】,计量不能开负数", item.getOrderName())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!groupList.contains(item.getGroupNo())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            errorMessage.add("药房错误,请重新选择药房。"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (StringUtil.isBlank(item.getDrugSpecification())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             errorMessage.add("药品规格不能为空"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (StringUtil.isBlank(item.getSupplyCode())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             errorMessage.add("给药方式不能为空"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else if (detailsOfDrugs.getSupplyCode() == null || "1".equals(detailsOfDrugs.getSupplyCode())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            errorMessage.add("给药方式已被停用。"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (item.getDose() == null || BigUtils.dengYu(item.getDose(), 0)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             errorMessage.add("一次计量不能为空"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -307,7 +318,11 @@ public class YiZhuCheckData { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public XinZhenYzActOrder getDrugData(String code) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return drug.get(code, (temp) -> dao.drugDataOne(temp, patientInformation != null ? patientInformation.getZkWard() : "")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return drug.get(code, (temp) -> dao.drugDataOne(temp, patientInformation != null ? patientInformation.getZkWard() : "", null)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public XinZhenYzActOrder getDrugData(String code, String supplyCode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return drug.get(code, (temp) -> dao.drugDataOne(temp, patientInformation != null ? patientInformation.getZkWard() : "", supplyCode)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public static void calculateDrugAmount(XinZhenYzActOrder item, XinZhenYzActOrder feiYongXinXi) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -356,18 +371,10 @@ public class YiZhuCheckData { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return returnMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public Boolean getPassTheAudit() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return passTheAudit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public Boolean getFailed() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return !passTheAudit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public Repel getRepel() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return repel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public Boolean multipleExclusions() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (repel == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return false; 
			 |