LIJU 2 weeks ago
parent
commit
6747ebb003

+ 90 - 52
src/main/java/thyyxxk/webserver/service/medicaladvice/nursing/NursingManagementService.java

@@ -966,15 +966,34 @@ public class NursingManagementService {
     }
 
     private void setBreatheAndPain(GraphicsParam query,List<ScdBaseInfo> types,List<YzTemperature> yzTemperatures, List<String> dateList, String[] timeList) {
+        // 新旧时间映射关系
+        Map<String, String> newToOldTimeMap = new HashMap<>();
+        newToOldTimeMap.put("02:00:00", "03:00:00");
+        newToOldTimeMap.put("06:00:00", "07:00:00");
+        newToOldTimeMap.put("10:00:00", "11:00:00");
+        newToOldTimeMap.put("14:00:00", "15:00:00");
+        newToOldTimeMap.put("18:00:00", "19:00:00");
+        newToOldTimeMap.put("22:00:00", "23:00:00");
+        
         for(String itemDate : dateList){
-            for(String time : timeList){
-                YzTemperature yzTemperature = filterYzTemperature(yzTemperatures, itemDate, time);
+            for(String newTime : timeList){
+                // 先尝试用新时间格式查找数据
+                YzTemperature yzTemperature = filterYzTemperature(yzTemperatures, itemDate, newTime);
+                
+                // 如果没找到数据,尝试用旧时间格式查找
+                if (yzTemperature.getRecTime() == null) {
+                    String oldTime = newToOldTimeMap.get(newTime);
+                    if (oldTime != null) {
+                        yzTemperature = filterYzTemperature(yzTemperatures, itemDate, oldTime);
+                    }
+                }
+                
                 //098 呼吸
                 //099 疼痛强度
                 for (int i = 0; i < 2 ; i++) {
                     ScdBaseInfo scdBaseInfo = new ScdBaseInfo();
                     scdBaseInfo.setDate(itemDate);
-                    scdBaseInfo.setTimes(time);
+                    scdBaseInfo.setTimes(newTime); // 始终使用新时间格式显示
                     if(i == 0){
                         scdBaseInfo.setTypeCode("098");
                         if(query.getHxFlag()){
@@ -990,8 +1009,6 @@ public class NursingManagementService {
                 }
             }
         }
-
-
     }
 
     @NotNull
@@ -1007,57 +1024,78 @@ public class NursingManagementService {
 
     public List<ScdRow> getRows(GraphicsParam query,List<YzTemperature> yzTemperatures, List<String> dateList, String[] timeList) {
         List<ScdRow> rows = new ArrayList<>();
+        
+        // 新旧时间映射关系
+        Map<String, String> newToOldTimeMap = new HashMap<>();
+        newToOldTimeMap.put("02:00:00", "03:00:00");
+        newToOldTimeMap.put("06:00:00", "07:00:00");
+        newToOldTimeMap.put("10:00:00", "11:00:00");
+        newToOldTimeMap.put("14:00:00", "15:00:00");
+        newToOldTimeMap.put("18:00:00", "19:00:00");
+        newToOldTimeMap.put("22:00:00", "23:00:00");
+        
         for(String itemDate : dateList){
-            for(String time : timeList){
+            for(String newTime : timeList){
                 ScdRow scdRow = new ScdRow();
                 List<ScdBaseInfo> scdBaseInfos = new ArrayList<>();
-                    //003 腋表
-                    //015 肛表
-                    //014 心率
-                    //002 脉搏
-                    //012 特殊标记
-                    //001 口表
-                YzTemperature yzTemperature = filterYzTemperature(yzTemperatures, itemDate, time);
+                
+                // 先尝试用新时间格式查找数据
+                YzTemperature yzTemperature = filterYzTemperature(yzTemperatures, itemDate, newTime);
+                
+                // 如果没找到数据,尝试用旧时间格式查找
+                if (yzTemperature.getRecTime() == null) {
+                    String oldTime = newToOldTimeMap.get(newTime);
+                    if (oldTime != null) {
+                        yzTemperature = filterYzTemperature(yzTemperatures, itemDate, oldTime);
+                    }
+                }
+                
+                //003 腋表
+                //015 肛表
+                //014 心率
+                //002 脉搏
+                //012 特殊标记
+                //001 口表
                 for (int i = 0; i < 6; i++) {
-                        ScdBaseInfo scdBaseInfo = new ScdBaseInfo();
-                        scdBaseInfo.setDate(itemDate);
-                        scdBaseInfo.setTimes(time);
-                        switch (i){
-                            case 0:
-                                scdBaseInfo.setTypeCode("003");
-                                scdBaseInfo.setTypeValue("2".equals(yzTemperature.getTemperatureType()) ? Convert.toStr(yzTemperature.getTemperature(),null) : null);
-                                break;
-                            case 1:
-                                scdBaseInfo.setTypeCode("015");
-                                scdBaseInfo.setTypeValue("3".equals(yzTemperature.getTemperatureType()) ? Convert.toStr(yzTemperature.getTemperature(),null) : null);
-                                break;
-                            case 2:
-                                scdBaseInfo.setTypeCode("001");
-                                scdBaseInfo.setTypeValue("1".equals(yzTemperature.getTemperatureType()) ? Convert.toStr(yzTemperature.getTemperature(),null) : null);
-                                break;
-                            case 3:
-                                scdBaseInfo.setTypeCode("014");
-                                scdBaseInfo.setTypeValue(Convert.toStr(yzTemperature.getHeart(),null));
-                                break;
-                            case 4:
-                                scdBaseInfo.setTypeCode("002");
-                                if(query.getMbFlag()){
-                                    scdBaseInfo.setTypeValue(Convert.toStr(yzTemperature.getPulse(),null));
-                                }
-                                break;
-                            case 5:
-                                scdBaseInfo.setTypeCode("012");
-                                String str ="";
-                                if(yzTemperature.getSpecialtextTime() != null){
-                                    String format = DateUtil.format(yzTemperature.getSpecialtextTime(), "HH:mm");
-                                    str = StrUtil.format("{}时{}分",Convert.numberToChinese(Convert.toDouble(format.split(":")[0]),false),Convert.numberToChinese(Convert.toDouble(format.split(":")[1]),false));
-                                }
-                                scdBaseInfo.setTypeValue(StrUtil.isBlank(yzTemperature.getScdSpecialtext()) ? "" : "手术".equals(yzTemperature.getScdSpecialtext()) ? "手术" : yzTemperature.getScdSpecialtext()+str);
-                                break;
-                            default:
-                                break;
-                        }
-                        scdBaseInfos.add(scdBaseInfo);
+                    ScdBaseInfo scdBaseInfo = new ScdBaseInfo();
+                    scdBaseInfo.setDate(itemDate);
+                    scdBaseInfo.setTimes(newTime); // 始终使用新时间格式显示
+                    switch (i){
+                        case 0:
+                            scdBaseInfo.setTypeCode("003");
+                            scdBaseInfo.setTypeValue("2".equals(yzTemperature.getTemperatureType()) ? Convert.toStr(yzTemperature.getTemperature(),null) : null);
+                            break;
+                        case 1:
+                            scdBaseInfo.setTypeCode("015");
+                            scdBaseInfo.setTypeValue("3".equals(yzTemperature.getTemperatureType()) ? Convert.toStr(yzTemperature.getTemperature(),null) : null);
+                            break;
+                        case 2:
+                            scdBaseInfo.setTypeCode("001");
+                            scdBaseInfo.setTypeValue("1".equals(yzTemperature.getTemperatureType()) ? Convert.toStr(yzTemperature.getTemperature(),null) : null);
+                            break;
+                        case 3:
+                            scdBaseInfo.setTypeCode("014");
+                            scdBaseInfo.setTypeValue(Convert.toStr(yzTemperature.getHeart(),null));
+                            break;
+                        case 4:
+                            scdBaseInfo.setTypeCode("002");
+                            if(query.getMbFlag()){
+                                scdBaseInfo.setTypeValue(Convert.toStr(yzTemperature.getPulse(),null));
+                            }
+                            break;
+                        case 5:
+                            scdBaseInfo.setTypeCode("012");
+                            String str ="";
+                            if(yzTemperature.getSpecialtextTime() != null){
+                                String format = DateUtil.format(yzTemperature.getSpecialtextTime(), "HH:mm");
+                                str = StrUtil.format("{}时{}分",Convert.numberToChinese(Convert.toDouble(format.split(":")[0]),false),Convert.numberToChinese(Convert.toDouble(format.split(":")[1]),false));
+                            }
+                            scdBaseInfo.setTypeValue(StrUtil.isBlank(yzTemperature.getScdSpecialtext()) ? "" : "手术".equals(yzTemperature.getScdSpecialtext()) ? "手术" : yzTemperature.getScdSpecialtext()+str);
+                            break;
+                        default:
+                            break;
+                    }
+                    scdBaseInfos.add(scdBaseInfo);
                 }
                 scdRow.setRowBOS(scdBaseInfos);
                 rows.add(scdRow);