Преглед на файлове

延长同步时间,分组同步医嘱

vothin преди 1 година
родител
ревизия
61e85cf9b7

+ 1 - 1
third-part-ccey/src/main/java/com/wdklian/ncs/ms/ccey/config/CCEYConfig.java

@@ -24,6 +24,6 @@ public class CCEYConfig {
     @Value("${ccey.syncTime:#{1}}")
     private int syncTime;
 
-    @Value("${ccey.syncPeriod:#{'0 */10 * * * ?'}}")
+    @Value("${ccey.syncPeriod:#{'0 0/20 * * * ?'}}")
     private String syncPeriod;
 }

+ 34 - 30
third-part-ccey/src/main/java/com/wdklian/ncs/ms/ccey/service/CCEYMainDataQueryService.java

@@ -33,6 +33,7 @@ import java.lang.reflect.Array;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -155,42 +156,45 @@ public class CCEYMainDataQueryService {
         for (PatientDO patientDO : patients) {
             advicesByPatient = this.cceyCustomerAdviceService.CCEYCustomerAdvice(patientDO.getName(), patientDO.getPartKeyval(), patientDO.getKeyval());
             if (!advicesByPatient.isEmpty()) {
-                try {
-                    this.entraceDoctorAdviceFeignClient.syncDoctorAdviceNoBack(advicesByPatient);
-                }
-                catch (Exception e) {
-                    log.error(e.getMessage());
-                }
-//                advices.addAll(advicesByPatient);
+//                try {
+//                    this.entraceDoctorAdviceFeignClient.syncDoctorAdviceNoBack(advicesByPatient);
+//                }
+//                catch (Exception e) {
+//                    log.error(e.getMessage());
+//                }
+                advices.addAll(advicesByPatient);
             }
 
             advicesByPatient = this.cceyCustomerNursingService.CCEYCustomerNursing(patientDO.getName(), patientDO.getPartKeyval(), patientDO.getKeyval());
             if (!advicesByPatient.isEmpty()) {
-                try {
-                    this.entraceDoctorAdviceFeignClient.syncDoctorAdviceNoBack(advicesByPatient);
-                }
-                catch (Exception e) {
-                    log.error(e.getMessage());
-                }
-//                advices.addAll(advicesByPatient);
+//                try {
+//                    this.entraceDoctorAdviceFeignClient.syncDoctorAdviceNoBack(advicesByPatient);
+//                }
+//                catch (Exception e) {
+//                    log.error(e.getMessage());
+//                }
+                advices.addAll(advicesByPatient);
             }
-            log.info("同步患者医嘱 =====> " + patientDO.getName());
+//            log.info("同步患者医嘱 =====> " + patientDO.getName());
+        }
+//        log.info("同步医嘱数据");
+        if (!advices.isEmpty()) {
+            Map<String, List<DoctorAdviceDO>> adviceMap = advices.stream().collect(Collectors.groupingBy(DoctorAdviceDO::getHisPartKey));
+            try {
+                adviceMap.forEach((hisPartKeyval, p) -> {
+                    this.entraceDoctorAdviceFeignClient.syncDoctorAdviceNoBack(p);
+                    log.info("同步科室医嘱 ====================> " +  hisPartKeyval);
+                });
+
+            }
+            catch (Exception e) {
+                log.error(e.getMessage());
+            }
+            log.info("完成医嘱同步");
+        }
+        else {
+            log.info("没有需要同步医嘱数据");
         }
-        log.info("同步医嘱数据");
-//        if (!advices.isEmpty()) {
-//            try {
-//                this.entraceDoctorAdviceFeignClient.syncDoctorAdviceNoBack(advices);
-////                jsonStr = mapper.writeValueAsString(patients);
-////                log.info(jsonStr);
-//            }
-//            catch (Exception e) {
-//                log.error(e.getMessage());
-//            }
-//            log.info("同步医嘱数据");
-//        }
-//        else {
-//            log.info("没有需要同步医嘱数据");
-//        }
     }