| 
					
				 | 
			
			
				@@ -1,12 +1,24 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package cn.hnthyy.thmz.service.impl.his.yf; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn.hnthyy.thmz.Utils.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn.hnthyy.thmz.entity.his.yp.YpBaseYf; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn.hnthyy.thmz.entity.his.yp.YpZdDict; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.hnthyy.thmz.mapper.his.yf.YfSpecialMarkMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn.hnthyy.thmz.mapper.his.yp.YpBaseYfMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn.hnthyy.thmz.mapper.his.yp.YpMzFytjMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn.hnthyy.thmz.mapper.his.yp.YpZdDictMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn.hnthyy.thmz.mapper.his.yp.YpZdManufactoryMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn.hnthyy.thmz.mapper.his.zy.YpZyPatientMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.hnthyy.thmz.service.his.yf.YfSpecialMarkService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.hnthyy.thmz.vo.YpZdBaseYfSpecialVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Date; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * @description:药房特殊标志维护 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -18,9 +30,82 @@ public class YfSpecialMarkServiceImpl implements YfSpecialMarkService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @SuppressWarnings("all") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     YfSpecialMarkMapper yfSpecialMarkMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @SuppressWarnings("all") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    YpZdDictMapper ypZdDictMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @SuppressWarnings("all") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    YpBaseYfMapper ypBaseYfMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @SuppressWarnings("all") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    YpZdManufactoryMapper ypZdManufactoryMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @SuppressWarnings("all") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    YpZyPatientMapper ypZyPatientMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @SuppressWarnings("all") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    YpMzFytjMapper ypMzFytjMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public List<YpZdBaseYfSpecialVo> queryYpSpecialMark(String groupNo, String searchText) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return yfSpecialMarkMapper.selectYpSpecialMark(groupNo, searchText); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<YpZdBaseYfSpecialVo> ypZdBaseYfSpecialVos = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<YpZdDict> ypZdDicts = ypZdDictMapper.selectYpBySearchText(searchText); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ypZdDicts.forEach(ypZdDict -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            YpZdBaseYfSpecialVo ypZdBaseYfSpecialVo = new YpZdBaseYfSpecialVo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            YpBaseYf ypBaseYf = ypBaseYfMapper.selectYpBaseYf(ypZdDict.getCode(), ypZdDict.getSerial(), groupNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(ypBaseYf != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ypZdBaseYfSpecialVo.setGroupNo(groupNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ypZdBaseYfSpecialVo.setChargeCode(ypBaseYf.getChargeCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ypZdBaseYfSpecialVo.setSerial(ypBaseYf.getSerial()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ypZdBaseYfSpecialVo.setName(ypZdDict.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ypZdBaseYfSpecialVo.setClassCode(ypZdDict.getClassCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ypZdBaseYfSpecialVo.setSpecification(ypZdDict.getSpecification()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ypZdBaseYfSpecialVo.setVisibleFlagMz(ypBaseYf.getVisibleFlagMz()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ypZdBaseYfSpecialVo.setVisibleFlagZy(ypBaseYf.getVisibleFlagZy()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ypZdBaseYfSpecialVo.setStockAmount(ypBaseYf.getStockAmount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ypZdBaseYfSpecialVo.setVisibleFlagStop(ypBaseYf.getVisibleFlagStop()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ypZdBaseYfSpecialVo.setStockAmountVirtual2(ypBaseYf.getStockAmountVirtual2()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ypZdBaseYfSpecialVo.setOpenVirtual2(ypBaseYf.getOpenVirtual2()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ypZdBaseYfSpecialVo.setPrescriptionLimitDays(ypBaseYf.getPrescriptionLimitDays()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String manufactoryName = ypZdManufactoryMapper.selectYpZdManufactoryByCode(ypZdDict.getManuCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(StringUtils.isNotBlank(manufactoryName)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    ypZdBaseYfSpecialVo.setManufactoryName(manufactoryName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Double largeStockAmount = ypBaseYfMapper.selectLargeStockAmount(ypZdDict.getCode(), groupNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ypZdBaseYfSpecialVo.setStockAmountLarge(largeStockAmount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<Map<String, Object>> zyList = ypZyPatientMapper.selectLatelyYpZyPatient(ypZdDict.getCode(), ypZdDict.getSerial(), ypZdDict.getPackSize().doubleValue(), groupNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<Map<String, Object>> ypMzFytjs = ypMzFytjMapper.selectLatelyYpMzFytj(ypZdDict.getCode(), ypZdDict.getSerial(), ypZdDict.getPackSize().doubleValue(), groupNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                zyList.addAll(ypMzFytjs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                int threeDayDosage = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                int sevenDayDosage = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                int fourteenDayDosage = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                int thirtyDayDosage = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (int i = 0; i < zyList.size(); i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Map<String, Object> map = zyList.get(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(DateUtil.differentDaysByMillisecond(DateUtil.pase(map.get("confirm_time").toString(),"yyyy-MM-dd HH:mm:ss"),new Date()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            <=3){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        threeDayDosage+=Double.parseDouble(map.get("quantity").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(DateUtil.differentDaysByMillisecond(DateUtil.pase(map.get("confirm_time").toString(),"yyyy-MM-dd HH:mm:ss"),new Date()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            <=7){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        sevenDayDosage+=Double.parseDouble(map.get("quantity").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(DateUtil.differentDaysByMillisecond(DateUtil.pase(map.get("confirm_time").toString(),"yyyy-MM-dd HH:mm:ss"),new Date()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            <=14){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        fourteenDayDosage+=Double.parseDouble(map.get("quantity").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(DateUtil.differentDaysByMillisecond(DateUtil.pase(map.get("confirm_time").toString(),"yyyy-MM-dd HH:mm:ss"),new Date()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            <=30){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        thirtyDayDosage+=Double.parseDouble(map.get("quantity").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ypZdBaseYfSpecialVo.setThreeDayDosage(threeDayDosage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ypZdBaseYfSpecialVo.setSevenDayDosage(sevenDayDosage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ypZdBaseYfSpecialVo.setFourteenDayDosage(fourteenDayDosage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ypZdBaseYfSpecialVo.setThirtyDayDosage(thirtyDayDosage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ypZdBaseYfSpecialVos.add(ypZdBaseYfSpecialVo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return ypZdBaseYfSpecialVos; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |