| 
					
				 | 
			
			
				@@ -25,6 +25,7 @@ import thyyxxk.webserver.config.exception.ExceptionEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import thyyxxk.webserver.dao.his.medicaladvice.nursing.NursingManagementDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import thyyxxk.webserver.dao.his.medicaladvice.nursing.YzHlMbDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import thyyxxk.webserver.dao.his.medicaladvice.nursing.YzTemperatureMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import thyyxxk.webserver.dao.his.medicalinsurance.UpIdCollectionDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import thyyxxk.webserver.dao.his.zhuyuanyisheng.YiZhuPublicDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import thyyxxk.webserver.entity.ResultVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import thyyxxk.webserver.entity.datamodify.YzTemperature; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -77,9 +78,16 @@ public class NursingManagementService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private YzHlMbDao yzHlMbDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private YiZhuPublicDao yiZhuPublicDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private  UpIdCollectionDao upIdCollectionDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private static  final String separator = "_"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private static  final Map<String,String> recTimeMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //替代 1901-01-01  这里 1901-01-01 08:00:00 转date 有5分钟误差 用以下先代替(兼容老系统) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static final String XIU_ZHEN_DATE = "1991-01-01"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     static { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         recTimeMap.put("3", "03:00"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -460,14 +468,11 @@ public class NursingManagementService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        StringBuilder condition = new StringBuilder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        condition.append("1=1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if("1".equals(yzTemperature.getTypeFlag())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           if(StrUtil.isNotBlank(yzTemperature.getRecDateStr())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-               condition.append(" and rec_date='"+yzTemperature.getRecDateStr()+"'"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(yzTemperature.getStartRecTime() != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-               condition.append(" and rec_time >= '1900-01-01 "+DateUtil.format(yzTemperature.getStartRecTime(),"HH:mm")+":00'"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               condition.append(StrUtil.format(" and convert(char(11),rec_date,121)+CONVERT(char(8), rec_time, 108) >='{}' ", DateUtil.formatDateTime(yzTemperature.getStartRecTime()))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(yzTemperature.getEndRecTime() != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-               condition.append(" and rec_time <= '1900-01-01 "+DateUtil.format(yzTemperature.getEndRecTime(),"HH:mm")+":00'"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               condition.append(StrUtil.format(" and convert(char(11),rec_date,121)+CONVERT(char(8), rec_time, 108) <='{}' ", DateUtil.formatDateTime(yzTemperature.getEndRecTime()))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StrUtil.isNotBlank(yzTemperature.getWard())){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -478,7 +483,7 @@ public class NursingManagementService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        CommonUtil.BeanTrim(yzTemperatures); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(CollUtil.isNotEmpty(yzTemperatures)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, List<YzTemperature>> groupMap = yzTemperatures.stream().collect(Collectors.groupingBy(item -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-               return item.getInpatientNo() + item.getAdmissTimes() + DateUtil.format(item.getRecDate(), "yyyy-MM-dd") + DateUtil.format(item.getRecTime(), "HH:mm"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               return item.getInpatientNo() + item.getAdmissTimes() + DateUtil.format(item.getRecDate(), "yyyy-MM-dd") + item.getToStringRecTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            })); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<YzTemperature> temp = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (String key : groupMap.keySet()) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -486,29 +491,29 @@ public class NursingManagementService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                List<String> otherInfos = groupMap.get(key).stream().map(item -> item.getOtherInfo()).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String join = CollUtil.join(otherInfos, ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                yzTemperature1.setOtherInfo(join); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               yzTemperature1.setRecTime(DateUtil.parseDateTime(XIU_ZHEN_DATE+" "+yzTemperature1.getToStringRecTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                yzTemperature1.setToStringRecDate(DateUtil.format(yzTemperature1.getRecDate(),"yyyy-MM-dd")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-               yzTemperature1.setToStringRecTime(DateUtil.format(yzTemperature1.getRecTime(),"HH:mm:ss")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                yzTemperature1.setRecDateStr(DateUtil.format(yzTemperature1.getRecDate(),"MM-dd")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-               yzTemperature1.setRecTimeStr(DateUtil.format(yzTemperature1.getRecTime(),"HH:mm")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               yzTemperature1.setRecTimeStr(yzTemperature1.getToStringRecTime().substring(0,5)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                yzTemperature1.setPressureAmPm(yzTemperature1.getPressure1AmAndPm()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                yzTemperature1.setUseridName(redisLikeService.getEmployeeName(yzTemperature1.getUserid())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                temp.add(yzTemperature1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           List<YzTemperature> collect = temp.stream().sorted(Comparator.comparing(item ->DateUtil.parseDateTime(DateUtil.formatDate(item.getRecDate()) + " "+ DateUtil.format(item.getRecTime(),"HH:mm")+":00"))).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           List<YzTemperature> collect = temp.stream().sorted(Comparator.comparing(item ->DateUtil.parseDateTime(DateUtil.formatDate(item.getRecDate()) + " "+ item.getToStringRecTime()))).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(yzTemperature.getPrintFlag() !=null && yzTemperature.getPrintFlag()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                List<YzTemperature> result = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               int subLength= getSubLength(yzTemperature.getHldType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                for (YzTemperature item : collect) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  int subLength= getSubLength(yzTemperature.getHldType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                   if(item.getOtherInfo() !=null && item.getOtherInfo().length()>subLength){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                       List<String> infos = usingSubstringMethod(item.getOtherInfo(), subLength); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   if (item.getOtherInfo() != null && item.getOtherInfo().getBytes().length > subLength) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       List<String> infos = subStringBytes(item.getOtherInfo(), subLength); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        item.setOtherInfo(infos.get(0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        result.add(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                       for (int i = 1; i <infos.size() ; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       for (int i = 1; i < infos.size(); i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            YzTemperature tempTemperature = new YzTemperature(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            tempTemperature.setOtherInfo(infos.get(i)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            result.add(tempTemperature); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                   }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        result.add(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -531,13 +536,24 @@ public class NursingManagementService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return: int 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      **/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private int getSubLength(String hldType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        int result = 18; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if ("2".equals(hldType)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            result = 16; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else if ("6".equals(hldType)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            result = 14; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String hldTypeLen = upIdCollectionDao.getDictValueByDictName("1.7", "hld_type_len"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String[] resultArr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(StrUtil.isNotBlank(hldTypeLen)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                resultArr = hldTypeLen.split(","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                resultArr = new String[]{"36","32","36","36","36","30"}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (int i = 0; i <resultArr.length ; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (Convert.toInt(hldType) == (i + 1)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return Convert.toInt(resultArr[i]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            log.error("[getSubLength]报错:",e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return 36; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return 36; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -554,8 +570,9 @@ public class NursingManagementService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public ResultVo<String> saveYzTemperature(YzTemperatureVO query) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         AssertUtil.isnotBlank(query.getRecTime(),"时间不能为空!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //先查询是否存在 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        query.setRecTimeStr(DateUtil.format(query.getRecTime(),"HH:mm")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        query.setRecTime(DateUtil.parseDateTime("1900-01-01 "+query.getRecTimeStr()+":00")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        query.setRecTimeStr(DateUtil.format(query.getRecTime(),"HH:mm:ss")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        query.setToStringRecTime(query.getRecTimeStr()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //query.setRecTime(DateUtil.parseDateTime(XIU_ZHEN_DATE +" "+query.getRecTimeStr())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         query.setRecDate(DateUtil.parseDate(query.getToStringRecDate())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         query.setScdFlag(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String code = redisLikeService.getUserInfoByToken().getCode(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -571,9 +588,9 @@ public class NursingManagementService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         query.setModifyTime(now); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         YzTemperature yzTemperature = new YzTemperature(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         BeanUtil.copyProperties(query,yzTemperature); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //兼容老系统 将措施 字符大于18个分成几条 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(StrUtil.isNotBlank(yzTemperature.getOtherInfo()) && yzTemperature.getOtherInfo().length() > 18){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<String> strList = usingSubstringMethod(yzTemperature.getOtherInfo(), 18); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //兼容老系统 将措施 字符大于36个分成几条 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(StrUtil.isNotBlank(yzTemperature.getOtherInfo()) && yzTemperature.getOtherInfo().getBytes().length >36){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<String> strList = subStringBytes(yzTemperature.getOtherInfo(),36); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for (int i = 0; i < strList.size(); i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 YzTemperature temp = new YzTemperature(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if(i == 0){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -594,6 +611,8 @@ public class NursingManagementService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             yzTemperatureMapper.insert(yzTemperature); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //修正时间 1900-01-01 08:00:00 转date 有五分钟误差 修改下 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        yzTemperatureMapper.updateRecTime(query,StrUtil.format("1900-01-01 {}",query.getToStringRecTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //保存过敏信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         saveGm(query); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION,"保存成功"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -617,6 +636,30 @@ public class NursingManagementService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return results; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private List<String> subStringBytes(String text,int bytesLen){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<String> results = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int length = text.length(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int len = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String str = "" ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (int i = 0; i < length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int tempLen = String.valueOf(text.charAt(i)).getBytes().length; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int temp = tempLen == 3 ? 2 : tempLen; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String tempStr = text.charAt(i) + ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(len >= bytesLen){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                results.add(str); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                len = temp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                str = tempStr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                len += temp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                str += tempStr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(i == length-1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                results.add(str); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return results; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |