Ver código fonte

只同步一个科室内分泌科

malz 1 ano atrás
pai
commit
f5ee4a0b8d

+ 1 - 1
pom.xml

@@ -8,7 +8,7 @@
     <name>hg-webservice</name>
     <description>hg-webservice</description>
     <properties>
-        <java.version>1.8</java.version>
+        <java.version>17</java.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
         <spring-boot.version>2.6.13</spring-boot.version>

+ 0 - 1
src/main/java/com/hgwebservice/controller/OperatorDataController.java

@@ -33,7 +33,6 @@ public class OperatorDataController {
 
     @PostMapping("/service")
     public String service() {
-        System.out.println(2222);
         try {
             // 获取远程Web服务的代理对象
             BSXmlWsEntryClass port = service.getBSXmlWsEntryClassPort();

+ 6 - 2
src/main/java/com/hgwebservice/entity/hisview/DispatchData.java

@@ -5,7 +5,7 @@ import lombok.Data;
 
 @Data
 public class DispatchData extends BaseData {
-  private String patientNO;
+  private String patientNo;
   
   private String dispatchNo;
 
@@ -13,6 +13,10 @@ public class DispatchData extends BaseData {
   private String frequency;
 
   private String testingPlanDate;
-  
+  private String type;
+  private String deptCode;
+  private String dispatchType;
+  private String hospitalNo;
+
   private int count;
 }

+ 8 - 0
src/main/java/com/hgwebservice/entity/hisview/OperatorData.java

@@ -16,4 +16,12 @@ public class OperatorData extends BaseData {
   private String isEffective;
   
   private String blackList;
+
+  private String wardCode;
+
+  private String wardName;
+
+  private String deptCode;
+
+  private String deptName;
 }

+ 11 - 5
src/main/java/com/hgwebservice/entity/hisview/PatientData.java

@@ -5,11 +5,11 @@ import lombok.Data;
 
 @Data
 public class PatientData extends BaseData {
-  private String patientNO;
+  private String patientNo;
   
-  private String hospitalNO;
+  private String hospitalNo;
   
-  private String wristbandNO;
+  private String wristbandNo;
   
   private String name;
   
@@ -19,11 +19,17 @@ public class PatientData extends BaseData {
   
   private String age;
   
-  private String identificationNo;
+  private String identifyNo;
   
-  private String bedNO;
+  private String bedNo;
   
   private String hospitalDate;
   
   private String doctorName;
+
+  private String hospitalCount;
+  private String wardCode;
+  private String wardName;
+  private String deptCode;
+  private String deptName;
 }

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

@@ -1,12 +1,36 @@
 package com.hgwebservice.scheduledTask;
 
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
+import com.hgwebservice.service.syncCdm2.SyncDispatchDataByDeptCode;
+import com.hgwebservice.service.syncCdm2.SyncOperatorData;
+import com.hgwebservice.service.syncCdm2.SyncPatientDataByDeptCode;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 @Component
+@Slf4j
 public class ScheduledTask {
-//    @Scheduled(cron ="* 0/1 * * * ?")
-//    public void sayHello() {
-//        System.out.println("hello");
-//    }
+    @Autowired
+    private SyncDispatchDataByDeptCode syncDispatchDataByDeptCode;
+    @Autowired
+    private SyncOperatorData syncOperatorData;
+    @Autowired
+    private SyncPatientDataByDeptCode syncPatientDataByDeptCode;
+    @Scheduled(cron ="* 0/1 * * * ?")
+    public void sync() {
+        DateTime beginTime = DateTime.now();
+        System.out.println("-==========================");
+        log.info("===========开始同步数据===========");
+        syncOperatorData.saveCdm2();
+        syncPatientDataByDeptCode.saveCdm2();
+        syncDispatchDataByDeptCode.saveCdm2();
+        log.info("===========数据同步完成===========");
+        DateTime endTime = DateTime.now();
+        long between = DateUtil.between(beginTime, endTime, DateUnit.SECOND);
+        log.info("同步数据,耗时: "+between+ "秒") ;
+    }
 }

Diferenças do arquivo suprimidas por serem muito extensas
+ 78 - 14
src/main/java/com/hgwebservice/service/HgWebServiceImpl.java


+ 1 - 1
src/main/java/com/hgwebservice/service/syncCdm2/SyncDispatchDataByDeptCode.java

@@ -1,5 +1,5 @@
 package com.hgwebservice.service.syncCdm2;
 
 public interface SyncDispatchDataByDeptCode {
-    int saveCdm2();
+    void saveCdm2();
 }

+ 22 - 5
src/main/java/com/hgwebservice/service/syncCdm2/SyncDispatchDataByDeptCodeImpl.java

@@ -1,6 +1,8 @@
 package com.hgwebservice.service.syncCdm2;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.hgwebservice.dal.dataobject.data.DispatchDataDO;
 import com.hgwebservice.dal.dataobject.data.OperatorDataDO;
 import com.hgwebservice.dal.mysql.data.DispatchDataMapper;
@@ -14,6 +16,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Service
 public class SyncDispatchDataByDeptCodeImpl implements SyncDispatchDataByDeptCode {
@@ -24,10 +27,24 @@ public class SyncDispatchDataByDeptCodeImpl implements SyncDispatchDataByDeptCod
     @Value("${hospital_id}")
     private Integer hospitalId;
     @Override
-    public int saveCdm2() {
-        List<DispatchData> dispatchData = hgWebService.getDispatchDataByDeptCode(null);
-        List<DispatchDataDO> dispatchDataDOS = BeanUtil.copyToList(dispatchData, DispatchDataDO.class);
-        operatorDataMapper.replaceDispatchData(dispatchDataDOS,hospitalId);
-        return dispatchDataDOS.size();
+    public void saveCdm2() {
+        List<OperatorDataDO> operatorDataDOS = operatorDataMapper.selectList(new LambdaQueryWrapper<>());
+//        if (CollUtil.isNotEmpty(operatorDataDOS)) {
+//            List<String> collect = operatorDataDOS.stream().map(OperatorDataDO::getDeptCode).distinct().collect(Collectors.toList());
+//            if (CollUtil.isNotEmpty(collect)) {
+//                for (String deptCode : collect) {
+//                    List<DispatchData> dispatchData = hgWebService.getDispatchDataByDeptCode(deptCode);
+//                    if (CollUtil.isNotEmpty(dispatchData)){
+//                        List<DispatchDataDO> dispatchDataDOS = BeanUtil.copyToList(dispatchData, DispatchDataDO.class);
+//                        operatorDataMapper.replaceDispatchData(dispatchDataDOS,hospitalId);
+//                    }
+//                }
+//            }
+//        }
+        List<DispatchData> dispatchData = hgWebService.getDispatchDataByDeptCode("55");
+        if (CollUtil.isNotEmpty(dispatchData)){
+            List<DispatchDataDO> dispatchDataDOS = BeanUtil.copyToList(dispatchData, DispatchDataDO.class);
+            operatorDataMapper.replaceDispatchData(dispatchDataDOS,hospitalId);
+        }
     }
 }

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

@@ -1,6 +1,7 @@
 package com.hgwebservice.service.syncCdm2;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
 import com.hgwebservice.dal.dataobject.data.OperatorDataDO;
 import com.hgwebservice.dal.mysql.data.OperatorDataMapper;
 import com.hgwebservice.entity.hisview.OperatorData;
@@ -23,8 +24,10 @@ public class SyncOperatorDataImpl implements SyncOperatorData {
     @Override
     public int saveCdm2() {
         List<OperatorData> operatorData = hgWebService.getOperatorData();
-        List<OperatorDataDO> operatorDataDOS = BeanUtil.copyToList(operatorData, OperatorDataDO.class);
-        operatorDataMapper.replaceOperatorData(operatorDataDOS,hospitalId);
-        return operatorDataDOS.size();
+        if (CollUtil.isNotEmpty(operatorData)){
+            List<OperatorDataDO> operatorDataDOS = BeanUtil.copyToList(operatorData, OperatorDataDO.class);
+            operatorDataMapper.replaceOperatorData(operatorDataDOS,hospitalId);
+        }
+        return operatorData.size();
     }
 }

+ 1 - 1
src/main/java/com/hgwebservice/service/syncCdm2/SyncPatientDataByDeptCode.java

@@ -1,5 +1,5 @@
 package com.hgwebservice.service.syncCdm2;
 
 public interface SyncPatientDataByDeptCode {
-    int saveCdm2();
+    void saveCdm2();
 }

+ 22 - 5
src/main/java/com/hgwebservice/service/syncCdm2/SyncPatientDataByDeptCodeImpl.java

@@ -1,6 +1,8 @@
 package com.hgwebservice.service.syncCdm2;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.hgwebservice.dal.dataobject.data.OperatorDataDO;
 import com.hgwebservice.dal.dataobject.data.PatientDataDO;
 import com.hgwebservice.dal.mysql.data.OperatorDataMapper;
@@ -13,6 +15,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Service
 public class SyncPatientDataByDeptCodeImpl implements SyncPatientDataByDeptCode {
@@ -23,10 +26,24 @@ public class SyncPatientDataByDeptCodeImpl implements SyncPatientDataByDeptCode
     @Value("${hospital_id}")
     private Integer hospitalId;
     @Override
-    public int saveCdm2() {
-        List<PatientData> patientData = hgWebService.getPatientDataByDeptCode(null);
-        List<PatientDataDO> patientDataDOS = BeanUtil.copyToList(patientData, PatientDataDO.class);
-        operatorDataMapper.replacePatientData(patientDataDOS,hospitalId);
-        return patientDataDOS.size();
+    public void saveCdm2() {
+        List<OperatorDataDO> operatorDataDOS = operatorDataMapper.selectList(new LambdaQueryWrapper<>());
+//        if (CollUtil.isNotEmpty(operatorDataDOS)){
+//            List<String> collect = operatorDataDOS.stream().map(OperatorDataDO::getDeptCode).distinct().collect(Collectors.toList());
+//            if (CollUtil.isNotEmpty(collect)){
+//                for (String deptCode : collect) {
+//                    List<PatientData> patientData = hgWebService.getPatientDataByDeptCode(deptCode);
+//                    if (CollUtil.isNotEmpty(patientData)){
+//                        List<PatientDataDO> patientDataDOS = BeanUtil.copyToList(patientData, PatientDataDO.class);
+//                        operatorDataMapper.replacePatientData(patientDataDOS,hospitalId);
+//                    }
+//                }
+//            }
+//        }
+        List<PatientData> patientData = hgWebService.getPatientDataByDeptCode("55");
+        if (CollUtil.isNotEmpty(patientData)){
+            List<PatientDataDO> patientDataDOS = BeanUtil.copyToList(patientData, PatientDataDO.class);
+            operatorDataMapper.replacePatientData(patientDataDOS,hospitalId);
+        }
     }
 }

+ 2 - 2
src/main/resources/mapper/DataMapper.xml

@@ -24,7 +24,7 @@
     </insert>
 
     <insert id="replacePatientData">
-        replace into operator_data(patient_no,hospital_no,wristband_no,hospital_count,name,gender,birthday,age,identify_no,bed_no,bed_no,ward_code,ward_name,dept_code,dept_name,doctor_name,hospital_date,create_time,update_time,hospital_id)
+        replace into patient_data(patient_no,hospital_no,wristband_no,hospital_count,name,gender,birthday,age,identify_no,bed_no,ward_code,ward_name,dept_code,dept_name,doctor_name,hospital_date,create_time,update_time,hospital_id)
         values
         <foreach collection="list" item="item" index="index"
                  separator=",">
@@ -52,7 +52,7 @@
         </foreach>
     </insert>
     <insert id="replaceDispatchData">
-        replace into operator_data(dispatch_no,type,message,frequency,dept_code,patient_no,hospital_no,dispatch_type,create_time,update_time,hospital_id)
+        replace into dispatch_data(dispatch_no,type,message,frequency,dept_code,patient_no,hospital_no,dispatch_type,create_time,update_time,hospital_id)
         values
         <foreach collection="list" item="item" index="index"
                  separator=",">