Parcourir la source

同步患者根据科室调整

malz il y a 1 an
Parent
commit
50fbaf5719

+ 4 - 4
src/main/java/com/hgwebservice/scheduledTask/ScheduledTask.java

@@ -26,8 +26,8 @@ public class ScheduledTask {
     private SyncPatientDataByDeptCode syncPatientDataByDeptCode;
     @Autowired
     MeasureService measureService;
-//    @PostConstruct
-//    @Scheduled(cron ="0 0 0/24 * * ?")
+    @PostConstruct
+    @Scheduled(cron ="0 0 0/24 * * ?")
     public void sync() {
         DateTime beginTime = DateTime.now();
         log.info("===========开始同步医护数据===========");
@@ -37,8 +37,8 @@ public class ScheduledTask {
         log.info("同步数据医护结束,耗时: "+between+ "秒") ;
     }
 
-//    @PostConstruct
-//    @Scheduled(cron ="0 0/5 * * * ?")
+    @PostConstruct
+    @Scheduled(cron ="0 0/5 * * * ?")
     public void sync1() {
         DateTime beginTime = DateTime.now();
         log.info("===========开始同步患者数据===========");

+ 3 - 3
src/main/java/com/hgwebservice/service/syncCdm2/SyncOperatorDataImpl.java

@@ -21,12 +21,12 @@ public class SyncOperatorDataImpl implements SyncOperatorData {
     private Integer hospitalId;
     @Override
     public void saveCdm2() {
-        for (DeptEnum dept : DeptEnum.values()) {
-            List<OperatorData> operatorData = WebServiceUtil.getOperatorData(dept.getDeptCode(),dept.getDeptName());
+//        for (DeptEnum dept : DeptEnum.values()) {
+            List<OperatorData> operatorData = WebServiceUtil.getOperatorData();
             if (CollUtil.isNotEmpty(operatorData)){
                 List<OperatorDataDO> operatorDataDOS = BeanUtil.copyToList(operatorData, OperatorDataDO.class);
                 operatorDataMapper.replaceOperatorData(operatorDataDOS,hospitalId);
             }
-        }
+//        }
     }
 }

+ 9 - 3
src/main/java/com/hgwebservice/service/syncCdm2/SyncPatientDataByDeptCodeImpl.java

@@ -7,6 +7,7 @@ import com.hgwebservice.dal.dataobject.data.OperatorDataDO;
 import com.hgwebservice.dal.dataobject.data.PatientDataDO;
 import com.hgwebservice.dal.mysql.data.OperatorDataMapper;
 import com.hgwebservice.dal.mysql.data.PatientDataMapper;
+import com.hgwebservice.entity.hisview.OperatorData;
 import com.hgwebservice.entity.hisview.PatientData;
 import com.hgwebservice.util.DeptEnum;
 import com.hgwebservice.util.WebServiceUtil;
@@ -34,11 +35,16 @@ public class SyncPatientDataByDeptCodeImpl implements SyncPatientDataByDeptCode
         patientDataDOLambdaQueryWrapper.eq(PatientDataDO::getHospitalId,hospitalId);
         List<PatientDataDO> patientDataDOS1 = patientDataMapper.selectList(patientDataDOLambdaQueryWrapper);
 
-        for (DeptEnum dept : DeptEnum.values()) {
-            List<PatientData> patientData = WebServiceUtil.getPatientDataByDeptCode(dept.getDeptCode(),dept.getDeptName());
+        LambdaQueryWrapper<OperatorDataDO> operatorDataLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        operatorDataLambdaQueryWrapper.eq(OperatorDataDO::getHospitalId,hospitalId);
+        operatorDataLambdaQueryWrapper.groupBy(OperatorDataDO::getDeptCode);
+        List<OperatorDataDO> operatorDataDOS = operatorDataMapper.selectList(operatorDataLambdaQueryWrapper);
+        List<String> collect = operatorDataDOS.stream().map(OperatorDataDO::getDeptCode).collect(Collectors.toList());
+        for (String dept : collect) {
+            List<PatientData> patientData = WebServiceUtil.getPatientDataByDeptCode(dept);
             if (CollUtil.isNotEmpty(patientData)) {
                 List<Integer> deletedIds = new ArrayList<>();
-                List<PatientDataDO> collect1 = patientDataDOS1.stream().filter(item -> item.getDeptCode().equals(dept.getDeptCode())).collect(Collectors.toList());
+                List<PatientDataDO> collect1 = patientDataDOS1.stream().filter(item -> item.getDeptCode().equals(dept)).collect(Collectors.toList());
                 for (PatientDataDO patientDataDO : collect1) {
                     Optional<PatientData> first = patientData.stream().filter(item -> item.getPatientNo().equals(patientDataDO.getPatientNo())).findFirst();
                     if (!first.isPresent()) {

+ 13 - 12
src/main/java/com/hgwebservice/util/WebServiceUtil.java

@@ -34,7 +34,7 @@ public class WebServiceUtil {
     public static void main(String[] args) {
     }
 
-    public static List<PatientData> getPatientDataByDeptCode(String deptCode,String deptName) {
+    public static List<PatientData> getPatientDataByDeptCode(String deptCode) {
         List<PatientData> allPatientDataList = new ArrayList();
 
         try {
@@ -58,10 +58,10 @@ public class WebServiceUtil {
                         patientData.setWristbandNo(getChildElementText(node, "patientId"));
                         patientData.setName(getChildElementText(node, "patientName"));
                         patientData.setGender(getChildElementText(node, "patientSex"));
-                        patientData.setDeptCode(deptCode);
-                        patientData.setDeptName(deptName);
-                        patientData.setWardCode(deptCode);
-                        patientData.setWardName(deptName);
+                        patientData.setDeptCode(getChildElementText(node, "deptCode"));
+                        patientData.setDeptName(getChildElementText(node, "deptName"));
+                        patientData.setWardCode(getChildElementText(node, "wardCode"));
+                        patientData.setWardName(getChildElementText(node, "wardName"));
                         String hisBedNo = getChildElementText(node, "bedNo");
                         String localBedNo = null;
                         if (StrUtil.isNotEmpty(hisBedNo)){
@@ -118,9 +118,8 @@ public class WebServiceUtil {
         }
     }
 
-    public static List<OperatorData> getOperatorData(String deptCode,String deptName) {
+    public static List<OperatorData> getOperatorData() {
         List<OperatorData> operatorDataList = new ArrayList();
-
         try {
             String msgHeaderQuest = buildmsgHeaderXml("GetStaffDict");
             String msgBodyQuest = operatorBuildmsgBodyXml();
@@ -130,25 +129,27 @@ public class WebServiceUtil {
             if (document != null) {
                 Element element = document.getDocumentElement();
                 NodeList nodeList1 = element.getElementsByTagName("returnContent");
-                System.out.println(nodeList1.getLength());
-
                 for(int j = 0; j < nodeList1.getLength(); ++j) {
                     Element node = (Element)nodeList1.item(j);
                     OperatorData operatorDataTemp = new OperatorData();
                     String operatorNo = getChildElementText(node, "workCode");
                     String accName = getChildElementText(node, "staffName");
+                    String deptCode = getChildElementText(node, "deptCode");
+                    String deptName = getChildElementText(node, "deptName");
+                    String wardCode = getChildElementText(node, "wardCode");
+                    String wardName = getChildElementText(node, "wardName");
                     operatorDataTemp.setAcc(operatorNo);
                     operatorDataTemp.setAccName(accName);
                     operatorDataTemp.setIsEffective("0");
                     operatorDataTemp.setDeptCode(deptCode);
                     operatorDataTemp.setDeptName(deptName);
-                    operatorDataTemp.setWardCode(deptCode);
-                    operatorDataTemp.setWardName(deptName);
+                    operatorDataTemp.setWardCode(wardCode);
+                    operatorDataTemp.setWardName(wardName);
                     operatorDataList.add(operatorDataTemp);
                 }
             }
 
-            log.info(deptCode + "获取操作员" + operatorDataList.size());
+            log.info("获取操作员" + operatorDataList.size());
             return operatorDataList;
         } catch (Exception var14) {
             log.error("Get AllOperatorData Fail !!! ", var14);