0027005599 2 роки тому
батько
коміт
d2f89707c6

+ 3 - 3
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDataV_OPERATIVE_ITEMSJob.java

@@ -36,11 +36,11 @@ public class XCFYDataV_OPERATIVE_ITEMSJob implements Job {
     public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
         Integer startRows = 0;
         Integer endRows = 1000;
-        String sql = "select * from V_OPERATIVE_ITEMS where rownum>=%s and rownum<%s ";
+        String sql = "SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM V_OPERATIVE_ITEMS) A WHERE ROWNUM < %s) WHERE RN >= %s";
         while (true) {
             log.info("开始同步V_OPERATIVE_ITEMS数据 startRows:{} endRows:{}", startRows, endRows);
             Map<String, Object> paramMap = new HashMap<>();
-            String queyrSql = String.format(sql, startRows, endRows);
+            String queyrSql = String.format(sql, endRows, startRows);
             Integer count = xcfyDataTransferService.transferDataList(queyrSql, insertSql, paramMap, new TransferDataCallFunction() {
                 @Override
                 public void transferData(Map<String, Object> dataMap) throws Exception {
@@ -52,7 +52,7 @@ public class XCFYDataV_OPERATIVE_ITEMSJob implements Job {
                 log.info("V_OPERATIVE_ITEMS 开始rownum:{} 结束rownum:{} 没有的数据,停止同步", startRows, endRows);
                 return;
             }
-            startRows = startRows + endRows;
+            startRows = endRows;
             endRows = endRows + 1000;
         }
 

+ 2 - 2
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDataV_TREATMENT_ITEMSJob.java

@@ -39,7 +39,7 @@ public class XCFYDataV_TREATMENT_ITEMSJob implements Job {
     public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
         Integer startRows = 0;
         Integer endRows = 1000;
-        String sql = "select * from V_TREATMENT_ITEMS where rownum>=%s and rownum<%s ";
+        String sql = "SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM V_TREATMENT_ITEMS) A WHERE ROWNUM < %s) WHERE RN >= %s";
         while (true) {
             log.info("开始同步V_TREATMENT_ITEMS数据 startRows:{} endRows:{}", startRows, endRows);
             Map<String, Object> paramMap = new HashMap<>();
@@ -55,7 +55,7 @@ public class XCFYDataV_TREATMENT_ITEMSJob implements Job {
                 log.info("V_TREATMENT_ITEMS 开始rownum:{} 结束rownum:{} 没有的数据,停止同步", startRows, endRows);
                 return;
             }
-            startRows = startRows + endRows;
+            startRows = endRows;
             endRows = endRows + 1000;
         }
 

+ 23 - 32
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDatav_diagnose_itemsJob.java

@@ -2,6 +2,7 @@ package org.jeecg.modules.medical.job;
 
 import cn.hutool.core.collection.CollectionUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.jeecg.modules.medical.Constant;
 import org.jeecg.modules.medical.afterwaring.XCFYDataTransferService;
 import org.jeecg.modules.medical.entity.DiagnoseItems;
 import org.jeecg.modules.medical.entity.HospitalizatioSettleDetail;
@@ -12,6 +13,7 @@ import org.quartz.Job;
 import org.quartz.JobExecutionContext;
 import org.quartz.JobExecutionException;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 
 import java.util.Date;
 import java.util.HashMap;
@@ -23,57 +25,46 @@ import java.util.Map;
  * 每个月执行一次
  */
 @Slf4j
-public class XCFYDatav_diagnose_itemsJob implements Job {
+@Component
+public class XCFYDatav_diagnose_itemsJob {
 
     @Autowired
     XCFYDataTransferService xcfyDataTransferService;
     @Autowired
     IDiagnoseItemsService diagnoseItemsService;
 
-    String insertSql = "INSERT INTO diagnose_items (id, diagnose_code, diagnose_name, medical_diagnose_code, medical_diagnose_name, state, CREATE_BY, CREATE_TIME) VALUES (:ID,:DIAGNOSE_CODE,:DIAGNOSE_NAME,:MEDICAL_DIAGNOSE_CODE,:MEDICAL_DIAGNOSE_NAME,:STATE,:CREATE_BY,:CREATE_TIME)";
+    String insertSql = "INSERT INTO diagnose_items_copy1 (diagnose_code, diagnose_name, medical_diagnose_code, " +
+            "medical_diagnose_name, state, CREATE_BY, CREATE_TIME) VALUES (:DIAGNOSE_CODE," +
+            ":DIAGNOSE_NAME,:MEDICAL_DIAGNOSE_CODE,:MEDICAL_DIAGNOSE_NAME,:STATE,:CREATE_BY,:CREATE_TIME) on duplicate key update " +
+            "MEDICAL_DIAGNOSE_CODE = :MEDICAL_DIAGNOSE_CODE," +
+            "MEDICAL_DIAGNOSE_NAME = :MEDICAL_DIAGNOSE_NAME," +
+            "DIAGNOSE_NAME = :DIAGNOSE_NAME,CREATE_TIME=:CREATE_TIME";
 
-    @Override
+//    @Override
     public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
-        String sql = "select * from v_diagnose_items where rownum<1000 %s";
-        while(true) {
-            log.info("开始同步v_diagnose_items数据");
-            String whereSql = "";
-            Long hsdId = getLastId();
-            log.info("开始同步v_diagnose_items数据,获取上个同步记录访问最大主键ID:{}", hsdId);
-            Map<String,Object> paramMap = new HashMap<>();
-            if(null != hsdId){
-                whereSql = "and ID>:ID";
-                paramMap.put("ID", hsdId);
-            }
-
-
-            String querySql = String.format(sql, whereSql);
-
+        Integer startRows = 0;
+        Integer endRows = 1000;
+        String sql = "SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM V_DIAGNOSE_ITEMS) A WHERE ROWNUM < %s) WHERE RN >= %s";
+        while (true) {
+            log.info("开始同步v_diagnose_items数据 startRows:{} endRows:{}", startRows, endRows);
+            Map<String, Object> paramMap = new HashMap<>();
+            String querySql = String.format(sql, endRows, startRows);
             Integer count = xcfyDataTransferService.transferDataList(querySql, insertSql, paramMap, new TransferDataCallFunction() {
                 @Override
                 public void transferData(Map<String, Object> dataMap) throws Exception {
                     dataMap.put("CREATE_BY", "auto");
                     dataMap.put("CREATE_TIME", new Date());
+                    dataMap.put("STATE", Constant.EFF_STATE);
                 }
             });
-            if(count<=0){
-                log.info("v_diagnose_items 没有大于id:{} 的数据,停止同步", hsdId);
+            if (count <= 0) {
+                log.info("v_diagnose_items 开始rownum:{} 结束rownum:{} 没有的数据,停止同步", startRows, endRows);
                 return;
             }
-        }
-
-    }
+            startRows = endRows;
+            endRows = endRows + 1000;
 
-    public Long getLastId(){
-        List<DiagnoseItems> diagnoseItems = diagnoseItemsService.lambdaQuery().orderByDesc(DiagnoseItems::getId).last("limit 1").list();
-        if(CollectionUtil.isEmpty(diagnoseItems)){
-            return null;
         }
-        return diagnoseItems.get(0).getId();
     }
 
-//    @Async("commonTaskAsyncPool")
-//    public void statictisRuleByRuleEngine(MedicalInsRuleInfo medicalInsRuleInfo) {
-//        ruleEngine.runStatictisEngine(new HashMap<>(), medicalInsRuleInfo);
-//    }
 }

+ 3 - 3
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDatav_material_itemsJob.java

@@ -36,11 +36,11 @@ public class XCFYDatav_material_itemsJob implements Job {
     public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
         Integer startRows = 0;
         Integer endRows = 1000;
-        String sql = "select * from v_material_items where rownum>=%s and rownum<%s ";
+        String sql = "SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM V_MATERIAL_ITEMS) A WHERE ROWNUM < %s) WHERE RN >= %s";
         while (true) {
             log.info("开始同步v_material_items数据 startRows:{} endRows:{}", startRows, endRows);
             Map<String, Object> paramMap = new HashMap<>();
-            String querySql = String.format(sql, startRows, endRows);
+            String querySql = String.format(sql, endRows, startRows);
             Integer count = xcfyDataTransferService.transferDataList(querySql, insertSql, paramMap, new TransferDataCallFunction() {
                 @Override
                 public void transferData(Map<String, Object> dataMap) throws Exception {
@@ -52,7 +52,7 @@ public class XCFYDatav_material_itemsJob implements Job {
                 log.info("v_material_items 开始rownum:{} 结束rownum:{} 没有的数据,停止同步", startRows, endRows);
                 return;
             }
-            startRows = startRows + endRows;
+            startRows = endRows;
             endRows = endRows + 1000;
         }
 

+ 16 - 3
jeecg-module-system/jeecg-system-start/src/test/java/org/jeecg/AfterwardsAuditDataTest.java

@@ -12,6 +12,7 @@ import org.jeecg.modules.medical.entity.SttlMasterBill;
 import org.jeecg.modules.medical.entity.SttlMasterDetailBill;
 import org.jeecg.modules.medical.job.AfterWaringLogTestJob;
 import org.jeecg.modules.medical.job.XCFYDatav_check_listJob;
+import org.jeecg.modules.medical.job.XCFYDatav_diagnose_itemsJob;
 import org.jeecg.modules.medical.ruleengine.RuleEngine;
 import org.jeecg.modules.medical.ruleengine.SPELUtil;
 import org.jeecg.modules.medical.service.IAfterwardsAuditDetailService;
@@ -105,18 +106,30 @@ public class AfterwardsAuditDataTest {
     IMedicalInsRuleInfoService medicalInsRuleInfoService;
     @Autowired
     RedisTemplate redisTemplate;
+//    @Autowired
+//    org.jeecg.modules.medical.job.XCFYDatav_check_listJob XCFYDatav_check_listJob;
     @Autowired
-    org.jeecg.modules.medical.job.XCFYDatav_check_listJob XCFYDatav_check_listJob;
+    org.jeecg.modules.medical.job.XCFYDatav_diagnose_itemsJob XCFYDatav_diagnose_itemsJob;
 
     @Test
-    public void testXCFYDatav_check_listJob(){
+    public void testXCFYDatav_diagnose_itemsJob(){
         try {
-            XCFYDatav_check_listJob.execute(null);
+            XCFYDatav_diagnose_itemsJob.execute(null);
         } catch (JobExecutionException e) {
             e.printStackTrace();
         }
     }
 
+//    @Test
+//    public void testXCFYDatav_check_listJob(){
+//        try {
+//            XCFYDatav_check_listJob.execute(null);
+//
+//        } catch (JobExecutionException e) {
+//            e.printStackTrace();
+//        }
+//    }
+
     @Test
     public void testMAB() {
         try {