|  | @@ -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;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 |