Parcourir la source

新增删除开关

0027005599 il y a 2 ans
Parent
commit
05fa0a3be3
17 fichiers modifiés avec 257 ajouts et 58 suppressions
  1. 7 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/Constant.java
  2. 53 7
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/afterwaring/XCFYDataTransferService.java
  3. 28 13
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDataV_MEDICAL_RECORD_HOMEPAGEJob.java
  4. 6 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDataV_OPERATIONJob.java
  5. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDataV_OPERATIVE_ITEMSJob.java
  6. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDataV_PRESCRIPTION_ORDERJob.java
  7. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDataV_STAFF_INFOJob.java
  8. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDataV_TREATMENT_ITEMSJob.java
  9. 6 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDatav_check_listJob.java
  10. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDatav_diagnose_itemsJob.java
  11. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDatav_his_patientJob.java
  12. 8 3
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDatav_hospitalizatio_settle_detailJob.java
  13. 48 11
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDatav_master_admission_billJob.java
  14. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDatav_material_itemsJob.java
  15. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDatav_medical_insurance_drugsJob.java
  16. 42 21
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDatav_outpatient_settle_billJob.java
  17. 19 2
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDatav_outpatient_settle_detailsJob.java

+ 7 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/Constant.java

@@ -225,4 +225,11 @@ public class Constant {
      * 回退记录的状态
      */
     public static final String HIS_BACK_STATE = "BACK";
+
+    /**
+     * 作业执行是否删除旧数据开关
+     */
+    public static final String JOB_DELETE_OLD_DATE_SWITCH = "JOB_DELETE_OLD_DATE_SWITCH";
+
+    public static final String SWITCH_OPEN = "OPEN";
 }

+ 53 - 7
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/afterwaring/XCFYDataTransferService.java

@@ -6,7 +6,15 @@ import org.apache.commons.lang.StringUtils;
 import org.jeecg.common.util.dynamic.db.DynamicDBUtil;
 import org.jeecg.modules.medical.Constant;
 import org.jeecg.modules.medical.common.CommonUtil;
+import org.jeecg.modules.medical.entity.CheckList;
+import org.jeecg.modules.medical.entity.Operation;
+import org.jeecg.modules.medical.entity.PrescriptionOrder;
 import org.jeecg.modules.medical.ruleengine.TransferDataCallFunction;
+import org.jeecg.modules.medical.service.ICheckListService;
+import org.jeecg.modules.medical.service.IOperationService;
+import org.jeecg.modules.medical.service.IPrescriptionOrderService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
 import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
 import org.springframework.stereotype.Component;
@@ -20,6 +28,14 @@ import java.util.Map;
 @Slf4j
 @Component
 public class XCFYDataTransferService {
+    @Autowired
+    ICheckListService checkListService;
+    @Autowired
+    IOperationService operationService;
+    @Autowired
+    RedisTemplate redisTemplate;
+    @Autowired
+    IPrescriptionOrderService prescriptionOrderService;
 
     String checkListInsertSql = "INSERT INTO check_list (id, hisid, patient_id, gender, age, department, inp_outpatient_number, check_list_num, item_id, item_name, check_time, create_time, create_by, report_time) VALUES (:ID,:HISID,:PATIENT_ID,:GENDER,:AGE,:DEPARTMENT,:INP_OUTPATIENT_NUMBER,:CHECK_LIST_NUM,:ITEM_ID,:ITEM_NAME,:CHECK_TIME,:CREATE_TIME,:CREATE_BY,:REPORT_TIME)";
 
@@ -52,15 +68,19 @@ public class XCFYDataTransferService {
             ":ANESTHESIA_TYPE_NAME,:ANESTHESIA_DOC_NO,:ANESTHESIA_DOC_NAME,:ANESTHESIA_START_TIME,:ANESTHESIA_END_TIME,:ANTIBACTERIAL_TIME,:PREMEDICATION_TIME_POINT," +
             ":INTRAOPERATIVE_DOSING,:AMOUNT,:CREATE_BY,:CREATE_TIME)";
 
-    public Integer transferDataList(String querySql, String insertSql, Map<String, Object> paramMap, TransferDataCallFunction transferDataCallFunction) {
+    public Integer transferDataList(String querySql, String insertSql, Map<String, Object> paramMap, TransferDataCallFunction transferDataCallFunction, TransferDataCallFunction deleteDataCallFunction) {
         NamedParameterJdbcTemplate namedParameterJdbcTemplate = DynamicDBUtil.getNamedParameterJdbcTemplate(Constant.FY_ORACLE);
         NamedParameterJdbcTemplate localNamedParameterJdbcTemplate = DynamicDBUtil.getNamedParameterJdbcTemplate(Constant.LOCAL_MYSQL);
-
         List<Map<String, Object>> dataList = namedParameterJdbcTemplate.queryForList(querySql, paramMap);
         if (CollectionUtil.isEmpty(dataList)) {
             log.error("querySql:{} paramMap:{} 未查询到数据,返回", querySql, paramMap);
             return 0;
         }
+        try {
+            deleteDataCallFunction.transferData(paramMap);
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+        }
         log.info("querySql:{} paramMap:{} 查询到数据条数:{}", querySql, paramMap, dataList.size());
 
         List<MapSqlParameterSource> batchArgs = new ArrayList<>();
@@ -94,6 +114,7 @@ public class XCFYDataTransferService {
         log.info("开始同步v_YBKF_check_list数据,获取HISID:{}", hsdId);
         Map<String, Object> paramMap = new HashMap<>();
         paramMap.put("HISID", hsdId);
+        Object openStr = redisTemplate.opsForValue().get(Constant.JOB_DELETE_OLD_DATE_SWITCH);
         Integer count = transferDataList(querySql, checkListInsertSql, paramMap, new TransferDataCallFunction() {
             @Override
             public Boolean transferData(Map<String, Object> dataMap) throws Exception {
@@ -103,6 +124,14 @@ public class XCFYDataTransferService {
                 dataMap.put("GENDER", CommonUtil.getMedicalSex(patientGender));
                 return true;
             }
+        }, new TransferDataCallFunction() {
+            @Override
+            public Boolean transferData(Map<String, Object> dataMap) throws Exception {
+                if(openStr != null && Constant.SWITCH_OPEN.equals(openStr.toString())) {
+                    checkListService.lambdaUpdate().eq(CheckList::getHisid, hsdId).remove();
+                }
+                return true;
+            }
         });
         log.info("结束同步v_YBKF_check_list数据,获取HISID:{} 条数:{}", hsdId, count);
         return count;
@@ -119,7 +148,7 @@ public class XCFYDataTransferService {
         log.info("开始同步V_YBKF_PRESCRIPTION_ORDER数据,获取住院号:{}", vistNo);
         Map<String, Object> paramMap = new HashMap<>();
         paramMap.put("INP_OUTPATIENT_NUMBER", vistNo);
-
+        Object openStr = redisTemplate.opsForValue().get(Constant.JOB_DELETE_OLD_DATE_SWITCH);
         Integer count = transferDataList(querySql, prescriptionOrderInsertSql, paramMap, new TransferDataCallFunction() {
             @Override
             public Boolean transferData(Map<String, Object> dataMap) throws Exception {
@@ -127,6 +156,14 @@ public class XCFYDataTransferService {
                 dataMap.put("CREATE_TIME", new Date());
                 return true;
             }
+        }, new TransferDataCallFunction() {
+            @Override
+            public Boolean transferData(Map<String, Object> dataMap) throws Exception {
+                if(null != openStr && Constant.SWITCH_OPEN.equals(openStr)) {
+                    prescriptionOrderService.lambdaUpdate().eq(PrescriptionOrder::getInpOutpatientNumber, vistNo).remove();
+                }
+                return true;
+            }
         });
         log.info("结束同步V_YBKF_PRESCRIPTION_ORDER数据,获取住院号:{} 条数:{}", vistNo, count);
         return count;
@@ -139,21 +176,30 @@ public class XCFYDataTransferService {
         log.info("开始同步V_YBKF_OPERATION数据,获取住院号/门诊号:{}", visitNo);
         Map<String, Object> paramMap = new HashMap<>();
         paramMap.put("VISIT_NO", visitNo);
+        Object openStr = redisTemplate.opsForValue().get(Constant.JOB_DELETE_OLD_DATE_SWITCH);
         Integer count = transferDataList(querySql, operationInsertSql, paramMap, new TransferDataCallFunction() {
             @Override
             public Boolean transferData(Map<String, Object> dataMap) throws Exception {
                 dataMap.put("CREATE_BY", "auto");
                 dataMap.put("CREATE_TIME", new Date());
                 String treatmentTypeSrc = dataMap.get("TREATMENT_TYPE").toString();
-                if("住院".equals(treatmentTypeSrc)){
-                    dataMap.put("TREATMENT_TYPE","1");
-                }else if("门诊".equals(treatmentTypeSrc)){
-                    dataMap.put("TREATMENT_TYPE","2");
+                if ("住院".equals(treatmentTypeSrc)) {
+                    dataMap.put("TREATMENT_TYPE", "1");
+                } else if ("门诊".equals(treatmentTypeSrc)) {
+                    dataMap.put("TREATMENT_TYPE", "2");
                 }
                 Object patientGender = dataMap.get("PATIENT_GENDER");
                 dataMap.put("PATIENT_GENDER", CommonUtil.getMedicalSex(patientGender));
                 return true;
             }
+        }, new TransferDataCallFunction() {
+            @Override
+            public Boolean transferData(Map<String, Object> dataMap) throws Exception {
+                if(null != openStr && Constant.SWITCH_OPEN.equals(openStr)) {
+                    operationService.lambdaUpdate().eq(Operation::getVisitNo, visitNo).remove();
+                }
+                return true;
+            }
         });
         log.info("结束同步V_YBKF_OPERATION数据,获取住院号/门诊号:{} 条数:{}", visitNo, count);
         return count;

+ 28 - 13
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDataV_MEDICAL_RECORD_HOMEPAGEJob.java

@@ -1,23 +1,20 @@
 package org.jeecg.modules.medical.job;
 
-import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DateUtil;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang.StringUtils;
 import org.jeecg.common.system.vo.DictModel;
+import org.jeecg.modules.medical.Constant;
 import org.jeecg.modules.medical.afterwaring.XCFYDataTransferService;
-import org.jeecg.modules.medical.common.CommonUtil;
-import org.jeecg.modules.medical.entity.HospitalizatioSettleDetail;
+import org.jeecg.modules.medical.entity.MedicalRecordHomepage;
 import org.jeecg.modules.medical.ruleengine.TransferDataCallFunction;
-import org.jeecg.modules.medical.service.IHospitalizatioSettleDetailService;
+import org.jeecg.modules.medical.service.IMedicalRecordHomepageService;
 import org.jeecg.modules.system.service.ISysDictService;
-import org.jeecg.modules.utils.DateTimeUtil;
 import org.quartz.DisallowConcurrentExecution;
 import org.quartz.Job;
 import org.quartz.JobExecutionContext;
 import org.quartz.JobExecutionException;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.autoconfigure.batch.BatchProperties;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.jdbc.core.JdbcTemplate;
 
 import java.util.Date;
@@ -39,6 +36,10 @@ public class XCFYDataV_MEDICAL_RECORD_HOMEPAGEJob implements Job {
     JdbcTemplate jdbcTemplate;
     @Autowired
     ISysDictService sysDictService;
+    @Autowired
+    IMedicalRecordHomepageService medicalRecordHomepageService;
+    @Autowired
+    RedisTemplate redisTemplate;
 
     String recordHomePageInsertSql = "INSERT INTO medical_record_homepage (bridge_id, zyh, hospital_id, patient_name, patient_id, social_card_id, patient_address, patient_company, icd10_code_basy, icd10_name_basy, icd10_name_describe, special_remarks, disease_id1, disease_name1, icd9_code_basy, icd9_name_basy, icd9_code1, icd9_name1, nb_weight, nb_admission_weight, bm_hours, icu_flag, icu_hours, main_con_desc, treatment_process, pathological_findings, discharge_condition, discharge_order, death_date, death_diagnosis, death_cause, admission_plan, disease_his, past_his, personal_his, auxiliary_inspection, assist_lab_test_results, auxiliary_imaging_ex_results, discharge_status, create_time, create_by) " +
             "VALUES (:BRIDGE_ID,:ZYH,:HOSPITAL_ID,:PATIENT_NAME,:PATIENT_ID,:SOCIAL_CARD_ID,:PATIENT_ADDRESS,:PATIENT_COMPANY,:ICD10_CODE_BASY,:ICD10_NAME_BASY,:ICD10_NAME_DESCRIBE,:SPECIAL_REMARKS,:DISEASE_ID1,:DISEASE_NAME1,:ICD9_CODE_BASY,:ICD9_NAME_BASY,:ICD9_CODE1,:ICD9_NAME1,:NB_WEIGHT,:NB_ADMISSION_WEIGHT,:BM_HOURS,:ICU_FLAG,:ICU_HOURS,:MAIN_CON_DESC,:TREATMENT_PROCESS,:PATHOLOGICAL_FINDINGS,:DISCHARGE_CONDITION,:DISCHARGE_ORDER,:DEATH_DATE,:DEATH_DIAGNOSIS,:DEATH_CAUSE,:ADMISSION_PLAN,:DISEASE_HIS,:PAST_HIS,:PERSONAL_HIS,:AUXILIARY_INSPECTION,:ASSIST_LAB_TEST_RESULTS,:AUXILIARY_IMAGING_EX_RESULTS,:DISCHARGE_STATUS,:CREATE_TIME,:CREATE_BY)";
@@ -46,15 +47,16 @@ public class XCFYDataV_MEDICAL_RECORD_HOMEPAGEJob implements Job {
     @Override
     public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
         List<DictModel> dictModelList = sysDictService.getDictItems("discharge_method");
-        Map<String,String> dischargeMethodMap = new HashMap<>();
-        for(DictModel dictModel : dictModelList){
+        Map<String, String> dischargeMethodMap = new HashMap<>();
+        for (DictModel dictModel : dictModelList) {
             dischargeMethodMap.put(dictModel.getText(), dictModel.getValue());
         }
 
         transferHomePage(dischargeMethodMap);
     }
 
-    public void transferHomePage(Map<String,String> dischargeMethodMap){
+    public void transferHomePage(Map<String, String> dischargeMethodMap) {
+        Object openStr = redisTemplate.opsForValue().get(Constant.JOB_DELETE_OLD_DATE_SWITCH);
         String querySql = "select * from V_YBKF_MASTER_ADMISSION_BILL where hisid is not null and to_char(bill_date,'yyyy-MM-dd')=to_char(sysdate-10,'yyyy-MM-dd') ";
         Date endBillDate = DateUtil.offsetDay(new Date(), -10);
         log.info("开始10天前master_admission_bill数据,获取同步日期:{}", endBillDate);
@@ -64,9 +66,17 @@ public class XCFYDataV_MEDICAL_RECORD_HOMEPAGEJob implements Job {
             public Boolean transferData(Map<String, Object> dataMap) throws Exception {
 
                 String zyh = dataMap.get("ZYH").toString();
+                if (Constant.SWITCH_OPEN.equals(openStr)) {
+                    medicalRecordHomepageService.lambdaUpdate().eq(MedicalRecordHomepage::getZyh, zyh).remove();
+                }
                 transferMedicalRecordHomePage(zyh, dischargeMethodMap);
                 return true;
             }
+        }, new TransferDataCallFunction() {
+            @Override
+            public Boolean transferData(Map<String, Object> dataMap) throws Exception {
+                return true;
+            }
         });
         if (count <= 0) {
             log.error("V_YBKF_MASTER_ADMISSION_BILL 未查询到等于住院billdate:{}  的数据,停止同步", endBillDate);
@@ -74,7 +84,7 @@ public class XCFYDataV_MEDICAL_RECORD_HOMEPAGEJob implements Job {
         }
     }
 
-    public Integer transferMedicalRecordHomePage(String zyh,Map<String,String> dischargeMethodMap) {
+    public Integer transferMedicalRecordHomePage(String zyh, Map<String, String> dischargeMethodMap) {
         String querySql = "select * from V_YBKF_MEDICAL_RECORD_HOMEPAGE where ZYH=:ZYH";
 
         log.info("开始同步V_YBKF_MEDICAL_RECORD_HOMEPAGE数据,获取zyh:{}", zyh);
@@ -94,12 +104,17 @@ public class XCFYDataV_MEDICAL_RECORD_HOMEPAGEJob implements Job {
                 //4非医嘱离院
                 //5死亡
                 //9其他
-                String dischargeStatus = dataMap.getOrDefault("DISCHARGE_STATUS","其他").toString();
-                if(dischargeMethodMap.containsKey(dischargeStatus)){
+                String dischargeStatus = dataMap.getOrDefault("DISCHARGE_STATUS", "其他").toString();
+                if (dischargeMethodMap.containsKey(dischargeStatus)) {
                     dataMap.put("DISCHARGE_STATUS", dischargeMethodMap.get(dischargeStatus));
                 }
                 return true;
             }
+        }, new TransferDataCallFunction() {
+            @Override
+            public Boolean transferData(Map<String, Object> dataMap) throws Exception {
+                return true;
+            }
         });
         log.info("结束同步V_YBKF_MEDICAL_RECORD_HOMEPAGE数据,获取zyh:{} 条数:{}", zyh, count);
         return count;

+ 6 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDataV_OPERATIONJob.java

@@ -64,7 +64,7 @@ public class XCFYDataV_OPERATIONJob implements Job {
                 @Override
                 public Boolean transferData(Map<String, Object> dataMap) throws Exception {
                     dataMap.put("CREATE_BY", "auto");
-                    if(!dataMap.containsKey("HISID")){
+                    if (!dataMap.containsKey("HISID")) {
                         dataMap.put("HISID", null);
                     }
                     dataMap.put("CREATE_TIME", new Date());
@@ -72,6 +72,11 @@ public class XCFYDataV_OPERATIONJob implements Job {
                     dataMap.put("PATIENT_GENDER", CommonUtil.getMedicalSex(patientGender));
                     return true;
                 }
+            }, new TransferDataCallFunction() {
+                @Override
+                public Boolean transferData(Map<String, Object> dataMap) throws Exception {
+                    return true;
+                }
             });
             if(count<=0){
                 log.info("V_YBKF_OPERATION 大于手术结束时间:{} 没有的数据,停止同步", opEndDate);

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

@@ -51,6 +51,11 @@ public class XCFYDataV_OPERATIVE_ITEMSJob implements Job {
                     return true;
 
                 }
+            }, new TransferDataCallFunction() {
+                @Override
+                public Boolean transferData(Map<String, Object> dataMap) throws Exception {
+                    return true;
+                }
             });
             if (count <= 0) {
                 log.info("V_YBKF_OPERATIVE_ITEMS 开始rownum:{} 结束rownum:{} 没有的数据,停止同步", startRows, endRows);

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDataV_PRESCRIPTION_ORDERJob.java

@@ -63,6 +63,11 @@ public class XCFYDataV_PRESCRIPTION_ORDERJob implements Job {
                     dataMap.put("CREATE_TIME", new Date());
                     return true;
                 }
+            }, new TransferDataCallFunction() {
+                @Override
+                public Boolean transferData(Map<String, Object> dataMap) throws Exception {
+                    return true;
+                }
             });
             if (count <= 0) {
                 log.info(" V_YBKF_PRESCRIPTION_ORDER 大于ORDER_TIME:{} 没有的数据,停止同步", orderTime);

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDataV_STAFF_INFOJob.java

@@ -71,6 +71,11 @@ public class XCFYDataV_STAFF_INFOJob implements Job {
                 addUser(dataMap);
                 return true;
             }
+        }, new TransferDataCallFunction() {
+            @Override
+            public Boolean transferData(Map<String, Object> dataMap) throws Exception {
+                return true;
+            }
         });
         if (count <= 0) {
             log.info("V_YBKF_STAFF_INFO 没有的数据,停止同步");

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

@@ -53,6 +53,11 @@ public class XCFYDataV_TREATMENT_ITEMSJob implements Job {
                     dataMap.put("CREATE_TIME", new Date());
                     return true;
                 }
+            }, new TransferDataCallFunction() {
+                @Override
+                public Boolean transferData(Map<String, Object> dataMap) throws Exception {
+                    return true;
+                }
             });
             if (count <= 0) {
                 log.info("V_YBKF_TREATMENT_ITEMS 开始rownum:{} 结束rownum:{} 没有的数据,停止同步", startRows, endRows);

+ 6 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDatav_check_listJob.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.CheckList;
 import org.jeecg.modules.medical.ruleengine.TransferDataCallFunction;
@@ -54,6 +55,11 @@ public class XCFYDatav_check_listJob implements Job {
                     dataMap.put("CREATE_TIME", new Date());
                     return true;
                 }
+            }, new TransferDataCallFunction() {
+                @Override
+                public Boolean transferData(Map<String, Object> dataMap) throws Exception {
+                    return true;
+                }
             });
             if (count <= 0) {
                 log.info("V_YBKF_check_list 没有大于id:{} 的数据,停止同步", hsdId);

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

@@ -52,6 +52,11 @@ public class XCFYDatav_diagnose_itemsJob implements Job {
                     dataMap.put("STATE", Constant.EFF_STATE);
                     return true;
                 }
+            }, new TransferDataCallFunction() {
+                @Override
+                public Boolean transferData(Map<String, Object> dataMap) throws Exception {
+                    return true;
+                }
             });
             if (count <= 0) {
                 log.info("V_YBKF_diagnose_items 开始rownum:{} 结束rownum:{} 没有的数据,停止同步", startRows, endRows);

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDatav_his_patientJob.java

@@ -57,6 +57,11 @@ public class XCFYDatav_his_patientJob implements Job {
                     dataMap.put("GENDER", CommonUtil.getMedicalSex(patientGender));
                     return true;
                 }
+            }, new TransferDataCallFunction() {
+                @Override
+                public Boolean transferData(Map<String, Object> dataMap) throws Exception {
+                    return true;
+                }
             });
             if (count <= 0) {
                 log.info("V_YBKF_his_patient 没有大于id:{} 的数据,停止同步", id);

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

@@ -82,15 +82,20 @@ public class XCFYDatav_hospitalizatio_settle_detailJob implements Job {
                         }
                     }
                     String pCategory = dataMap.getOrDefault("P_CATEGORY", "").toString();
-                    if(StringUtils.isNotBlank(pCategory)){
+                    if (StringUtils.isNotBlank(pCategory)) {
                         dataMap.put("P_CATEGORY", cateGoriesMap.getOrDefault(pCategory, pCategory));
                     }
 
                     String categoriesItems = dataMap.getOrDefault("CATEGORIES_ITEMS", "").toString();
-                    if(StringUtils.isNotBlank(pCategory)){
+                    if (StringUtils.isNotBlank(pCategory)) {
                         dataMap.put("CATEGORIES_ITEMS", cateGoriesMap.getOrDefault(categoriesItems, categoriesItems));
                     }
-                    return  true;
+                    return true;
+                }
+            }, new TransferDataCallFunction() {
+                @Override
+                public Boolean transferData(Map<String, Object> dataMap) throws Exception {
+                    return true;
                 }
             });
             if (count <= 0) {

+ 48 - 11
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDatav_master_admission_billJob.java

@@ -9,9 +9,14 @@ import org.jeecg.common.util.DateUtils;
 import org.jeecg.modules.medical.Constant;
 import org.jeecg.modules.medical.afterwaring.XCFYDataTransferService;
 import org.jeecg.modules.medical.common.CommonUtil;
+import org.jeecg.modules.medical.entity.CheckList;
+import org.jeecg.modules.medical.entity.HospitalizatioSettleDetail;
 import org.jeecg.modules.medical.entity.MasterAdmissionBill;
+import org.jeecg.modules.medical.entity.MedicalRecordHomepage;
 import org.jeecg.modules.medical.ruleengine.TransferDataCallFunction;
+import org.jeecg.modules.medical.service.IHospitalizatioSettleDetailService;
 import org.jeecg.modules.medical.service.IMasterAdmissionBillService;
+import org.jeecg.modules.medical.service.IMedicalRecordHomepageService;
 import org.jeecg.modules.system.service.ISysDictService;
 import org.jeecg.modules.utils.DateTimeUtil;
 import org.quartz.DisallowConcurrentExecution;
@@ -39,6 +44,10 @@ public class XCFYDatav_master_admission_billJob implements Job {
     @Autowired
     IMasterAdmissionBillService masterAdmissionBillService;
     @Autowired
+    IHospitalizatioSettleDetailService hospitalizatioSettleDetailService;
+    @Autowired
+    IMedicalRecordHomepageService medicalRecordHomepageService;
+    @Autowired
     ISysDictService sysDictService;
     @Autowired
     RedisTemplate redisTemplate;
@@ -80,6 +89,7 @@ public class XCFYDatav_master_admission_billJob implements Job {
 
     @Override
     public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+        Object openStr = redisTemplate.opsForValue().get(Constant.JOB_DELETE_OLD_DATE_SWITCH);
         String sql = "select * from V_YBKF_MASTER_ADMISSION_BILL where hisid is not null and pay_method!='自费' and bill_date<=:END_BILL_DATE %s  order by bill_date asc";
         Date endBillDate = DateUtil.yesterday();
         endBillDate = DateUtil.endOfDay(endBillDate);
@@ -104,6 +114,9 @@ public class XCFYDatav_master_admission_billJob implements Job {
             public Boolean transferData(Map<String, Object> dataMap) throws Exception {
                 dataMap.put("PAY_METHOD", 1);
                 String hisId = dataMap.get("HISID").toString();
+                if(null != openStr && Constant.SWITCH_OPEN.equals(openStr)) {
+                    masterAdmissionBillService.lambdaUpdate().eq(MasterAdmissionBill::getHisid, hisId).remove();
+                }
                 Integer count = transferHospSettleDetail(hisId);
                 String billDateStr = DateUtils.date2Str((Date) dataMap.get("BILL_DATE"), DateUtils.date_sdf.get());
                 redisTemplate.opsForHash().put(Constant.JOB_CONTINUE_PARAM, "MASTER_ADMISSION_BILL", billDateStr);
@@ -122,11 +135,11 @@ public class XCFYDatav_master_admission_billJob implements Job {
                         dataMap.put("YB_ADMISSION_DISEASE_NAME", dataMap.get("ADMISSION_DISEASE_NAME"));
                         log.error("医院诊断编码:{} 有hisid 缺少医保编码映射关系", diagCode);
                     }
-                }else{
-                    dataMap.put("YB_ADMISSION_DISEASE_ID",null);
-                    dataMap.put("YB_ADMISSION_DISEASE_NAME",null);
-                    dataMap.put("ADMISSION_DISEASE_ID",null);
-                    dataMap.put("ADMISSION_DISEASE_NAME",null);
+                } else {
+                    dataMap.put("YB_ADMISSION_DISEASE_ID", null);
+                    dataMap.put("YB_ADMISSION_DISEASE_NAME", null);
+                    dataMap.put("ADMISSION_DISEASE_ID", null);
+                    dataMap.put("ADMISSION_DISEASE_NAME", null);
                 }
 
                 Object disDiagCode = dataMap.get("DISCHARGE_DISEASE_ID_MAIN");
@@ -140,14 +153,14 @@ public class XCFYDatav_master_admission_billJob implements Job {
                         dataMap.put("YB_DISCHARGE_DISEASE_NAME_MAIN", dataMap.get("DISCHARGE_DISEASE_NAME_MAIN"));
                         log.error("医院诊断编码:{} 有hisid 缺少医保编码映射关系", diagCode);
                     }
-                }else{
-                    dataMap.put("YB_DISCHARGE_DISEASE_ID_MAIN",null);
-                    dataMap.put("YB_DISCHARGE_DISEASE_ID_MAIN",null);
-                    dataMap.put("DISCHARGE_DISEASE_ID_MAIN",null);
-                    dataMap.put("DISCHARGE_DISEASE_NAME_MAIN",null);
+                } else {
+                    dataMap.put("YB_DISCHARGE_DISEASE_ID_MAIN", null);
+                    dataMap.put("YB_DISCHARGE_DISEASE_ID_MAIN", null);
+                    dataMap.put("DISCHARGE_DISEASE_ID_MAIN", null);
+                    dataMap.put("DISCHARGE_DISEASE_NAME_MAIN", null);
                 }
                 Object patientAge = dataMap.getOrDefault("PATIENT_AGE", "0天");
-                if (patientAge == null){
+                if (patientAge == null) {
                     patientAge = "0天";
                 }
                 Integer days = DateTimeUtil.getDayByAgeStr(patientAge.toString());
@@ -177,6 +190,12 @@ public class XCFYDatav_master_admission_billJob implements Job {
                 xcfyDataTransferService.transferPrescriptionOrder(zyh);
 //                    transferMedicalRecordHomePage(zyh, dischargeMethodMap);
                 xcfyDataTransferService.transferOperation(zyh);
+                return true;
+            }
+        }, new TransferDataCallFunction() {
+            @Override
+            public Boolean transferData(Map<String, Object> dataMap) throws Exception {
+
                 return true;
             }
         });
@@ -194,6 +213,7 @@ public class XCFYDatav_master_admission_billJob implements Job {
      * @return
      */
     public Integer transferHospSettleDetail(String hisId) {
+        Object openStr = redisTemplate.opsForValue().get(Constant.JOB_DELETE_OLD_DATE_SWITCH);
         try {
 //            List<DictModel> cateGoriesList = sysDictService.getDictItems(Constant.DICT_CATEGORIES_ITEMS_KEY);
             Map<String, String> cateGoriesMap = CommonUtil.getCategoriesItemsMap();
@@ -241,6 +261,14 @@ public class XCFYDatav_master_admission_billJob implements Job {
                     dataMap.put("P_TYPE", "01");
                     return true;
                 }
+            }, new TransferDataCallFunction() {
+                @Override
+                public Boolean transferData(Map<String, Object> dataMap) throws Exception {
+                    if(Constant.SWITCH_OPEN.equals(openStr)) {
+                        hospitalizatioSettleDetailService.lambdaUpdate().eq(HospitalizatioSettleDetail::getHisid, hisId).remove();
+                    }
+                    return true;
+                }
             });
             log.info("结束同步V_YBKF_HOSP_SETTLE_DETAIL数据,HISID:{} 条数:{}", hisId, count);
             return count;
@@ -251,6 +279,7 @@ public class XCFYDatav_master_admission_billJob implements Job {
     }
 
     public Integer transferMedicalRecordHomePage(String zyh, Map<String, String> dischargeMethodMap) {
+        Object openStr = redisTemplate.opsForValue().get(Constant.JOB_DELETE_OLD_DATE_SWITCH);
         String querySql = "select * from V_YBKF_MEDICAL_RECORD_HOMEPAGE where ZYH=:ZYH";
 
         log.info("开始同步V_YBKFMEDICAL_RECORD_HOMEPAGE数据,获取zyh:{}", zyh);
@@ -276,6 +305,14 @@ public class XCFYDatav_master_admission_billJob implements Job {
                 }
                 return true;
             }
+        }, new TransferDataCallFunction() {
+            @Override
+            public Boolean transferData(Map<String, Object> dataMap) throws Exception {
+                if(null != openStr && Constant.SWITCH_OPEN.equals(openStr)) {
+                    medicalRecordHomepageService.lambdaUpdate().eq(MedicalRecordHomepage::getZyh, zyh).remove();
+                }
+                return true;
+            }
         });
         log.info("结束同步V_MEDICAL_RECORD_HOMEPAGE数据,获取zyh:{} 条数:{}", zyh, count);
         return count;

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

@@ -50,6 +50,11 @@ public class XCFYDatav_material_itemsJob implements Job {
                     dataMap.put("CREATE_TIME", new Date());
                     return true;
                 }
+            }, new TransferDataCallFunction() {
+                @Override
+                public Boolean transferData(Map<String, Object> dataMap) throws Exception {
+                    return true;
+                }
             });
             if (count <= 0) {
                 log.info("V_YBKF_MATERIAL_ITEMS 开始rownum:{} 结束rownum:{} 没有的数据,停止同步", startRows, endRows);

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDatav_medical_insurance_drugsJob.java

@@ -59,6 +59,11 @@ public class XCFYDatav_medical_insurance_drugsJob implements Job {
                     return true;
 
                 }
+            }, new TransferDataCallFunction() {
+                @Override
+                public Boolean transferData(Map<String, Object> dataMap) throws Exception {
+                    return true;
+                }
             });
             if (count <= 0) {
                 log.info("V_YBKF_MEDICAL_INSURANCE_DRUGS 开始rownum:{} 结束rownum:{} 没有的数据,停止同步", startRows, endRows);

+ 42 - 21
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDatav_outpatient_settle_billJob.java

@@ -8,7 +8,14 @@ import org.jeecg.common.util.DateUtils;
 import org.jeecg.modules.medical.Constant;
 import org.jeecg.modules.medical.afterwaring.XCFYDataTransferService;
 import org.jeecg.modules.medical.common.CommonUtil;
+import org.jeecg.modules.medical.entity.MedicalRecordHomepage;
+import org.jeecg.modules.medical.entity.OutpatientSettleBill;
+import org.jeecg.modules.medical.entity.OutpatientSettlementDetails;
 import org.jeecg.modules.medical.ruleengine.TransferDataCallFunction;
+import org.jeecg.modules.medical.service.IMasterAdmissionBillService;
+import org.jeecg.modules.medical.service.IMedicalRecordHomepageService;
+import org.jeecg.modules.medical.service.IOutpatientSettleBillService;
+import org.jeecg.modules.medical.service.IOutpatientSettlementDetailsService;
 import org.jeecg.modules.system.service.ISysDictService;
 import org.jeecg.modules.utils.DateTimeUtil;
 import org.quartz.DisallowConcurrentExecution;
@@ -40,6 +47,10 @@ public class XCFYDatav_outpatient_settle_billJob implements Job {
     ISysDictService sysDictService;
     @Autowired
     RedisTemplate redisTemplate;
+    @Autowired
+    IOutpatientSettleBillService outpatientSettleBillService;
+    @Autowired
+    IOutpatientSettlementDetailsService outpatientSettlementDetailsService;
 
     String insertSql = "INSERT INTO outpatient_settle_bill (id, hisid, visit_no, recipe_no, pay_method, " +
             "bmi_area_id, bmi_area_name, hospital_id, hospital_name, p_level_yy, benefit_type, " +
@@ -75,10 +86,11 @@ public class XCFYDatav_outpatient_settle_billJob implements Job {
         String sql = "select * from V_YBKF_OUTPATIENT_SETTLE_BILL where hisid is not null and pay_method!='自费' and bill_date<=:END_BILL_DATE %s and rownum<=1000 order by bill_date asc";
         Date endBillDate = DateUtil.yesterday();
         endBillDate = DateUtil.endOfDay(endBillDate);
+        Object openStr = redisTemplate.opsForValue().get(Constant.JOB_DELETE_OLD_DATE_SWITCH);
         while (true) {
             String whereSql = "";
             Date billDate = getBillDate();
-            log.info("开始同步V_YBKF_outpatient_settle_bill数据,获取上个同步开始结算日期:{} 结束日期:{}", billDate, endBillDate);
+            log.info("开始同步V_YBKF_OUTPATIENT_SETTLE_BILL数据,获取上个同步开始结算日期:{} 结束日期:{}", billDate, endBillDate);
             Map<String, Object> paramMap = new HashMap<>();
             if (null != billDate) {
                 whereSql = " and BILL_DATE>:BILL_DATE";
@@ -105,35 +117,35 @@ public class XCFYDatav_outpatient_settle_billJob implements Job {
                         if (null != ybDiagCode) {
                             dataMap.put("YB_ADMISSION_DISEASE_ID", ybDiagCode[0]);
                             dataMap.put("YB_ADMISSION_DISEASE_NAME", ybDiagCode[1]);
-                        }else{
+                        } else {
                             dataMap.put("YB_ADMISSION_DISEASE_ID", diagCode);
                             dataMap.put("YB_ADMISSION_DISEASE_NAME", dataMap.get("ADMISSION_DISEASE_NAME"));
                         }
-                    }else{
+                    } else {
                         dataMap.put("YB_ADMISSION_DISEASE_ID", null);
                         dataMap.put("YB_ADMISSION_DISEASE_NAME", null);
-                        dataMap.put("ADMISSION_DISEASE_ID",null);
-                        dataMap.put("ADMISSION_DISEASE_NAME",null);
+                        dataMap.put("ADMISSION_DISEASE_ID", null);
+                        dataMap.put("ADMISSION_DISEASE_NAME", null);
                     }
                     Object patientAge = dataMap.get("PATIENT_AGE");
-                    if (patientAge == null){
+                    if (patientAge == null) {
                         patientAge = "0天";
                     }
                     Integer days = DateTimeUtil.getDayByAgeStr(patientAge.toString());
                     Object visitTime = dataMap.get("VISIT_TIME");
                     Object patientBirthday = dataMap.get("PATIENT_BIRTHDAY");
                     Long ageDays = 0l;
-                    if(null != patientBirthday && days<=0){
+                    if (null != patientBirthday && days <= 0) {
                         Date patientBirthDayDate = (Date) patientBirthday;
 
-                        if(null != visitTime){
+                        if (null != visitTime) {
                             Date visitTimeDate = (Date) visitTime;
                             ageDays = DateUtil.betweenDay(patientBirthDayDate, visitTimeDate, false);
-                        }else{
+                        } else {
                             ageDays = DateUtil.betweenDay(patientBirthDayDate, new Date(), false);
                         }
                         dataMap.put("PATIENT_AGE_DAYS", ageDays.doubleValue());
-                    }else{
+                    } else {
                         dataMap.put("PATIENT_AGE_DAYS", days.doubleValue());
                     }
                     Object patientGender = dataMap.get("PATIENT_GENDER");
@@ -145,9 +157,18 @@ public class XCFYDatav_outpatient_settle_billJob implements Job {
                     xcfyDataTransferService.transferPrescriptionOrder(visitNo);
                     return true;
                 }
+            }, new TransferDataCallFunction() {
+                @Override
+                public Boolean transferData(Map<String, Object> dataMap) throws Exception {
+                    String hisId = dataMap.get("HISID").toString();
+                    if(null != openStr && Constant.SWITCH_OPEN.equals(openStr)) {
+                        outpatientSettleBillService.lambdaUpdate().eq(OutpatientSettleBill::getHisid, hisId).remove();
+                    }
+                    return true;
+                }
             });
             if (count <= 0) {
-                log.error("V_YBKF_outpatient_settle_bill 未查询到大于住院billdate:{} 小于等于住院billdate:{} 的数据,停止同步", billDate, endBillDate);
+                log.error("V_YBKF_OUTPATIENT_SETTLE_BILL 未查询到大于住院billdate:{} 小于等于住院billdate:{} 的数据,停止同步", billDate, endBillDate);
                 return;
             }
         }
@@ -156,11 +177,8 @@ public class XCFYDatav_outpatient_settle_billJob implements Job {
 
     public Integer getDetailByHisId(String hisId) {
         String sql = "select * from V_YBKF_OUTPATIENT_SETTLE_DEL where hisid=:HISID and item_id is not null";
-//        List<DictModel> cateGoriesList = sysDictService.getDictItems(Constant.DICT_CATEGORIES_ITEMS_KEY);
+        Object openStr = redisTemplate.opsForValue().get(Constant.JOB_DELETE_OLD_DATE_SWITCH);
         Map<String, String> cateGoriesMap = CommonUtil.getCategoriesItemsMap();
-//        for (DictModel dictModel : cateGoriesList) {
-//            cateGoriesMap.put(dictModel.getText(), dictModel.getValue());
-//        }
         Map<String, Object> paramMap = new HashMap<>();
         paramMap.put("HISID", hisId);
         Integer count = xcfyDataTransferService.transferDataList(sql, insertDetailSql, paramMap, new TransferDataCallFunction() {
@@ -177,22 +195,25 @@ public class XCFYDatav_outpatient_settle_billJob implements Job {
                         dataMap.put("ITEM_NAME", itemIdArr[1]);
                     }
                 }
-
                 //甲类01
                 dataMap.put("P_CATEGORY", "01");
-
-
                 Object categoriesItems = dataMap.get("CATEGORIES_ITEMS");
-                if(null != categoriesItems && StringUtils.isNotBlank(categoriesItems.toString())) {
+                if (null != categoriesItems && StringUtils.isNotBlank(categoriesItems.toString())) {
                     dataMap.put("CATEGORIES_ITEMS", cateGoriesMap.getOrDefault(categoriesItems.toString(), categoriesItems.toString()));
                 }
                 return true;
             }
+        }, new TransferDataCallFunction() {
+            @Override
+            public Boolean transferData(Map<String, Object> dataMap) throws Exception {
+                if(null != openStr && Constant.SWITCH_OPEN.equals(openStr)) {
+                    outpatientSettlementDetailsService.lambdaUpdate().eq(OutpatientSettlementDetails::getHisid, hisId).remove();
+                }
+                return true;
+            }
         });
         log.info("结束同步V_YBKF_OUTPATIENT_SETTLE_DEL数据,HISID:{} 条数:{}", hisId, count);
         return count;
-
-
     }
 
     public Date getBillDate() {

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

@@ -6,13 +6,16 @@ import org.jeecg.common.system.vo.DictModel;
 import org.jeecg.modules.medical.Constant;
 import org.jeecg.modules.medical.afterwaring.XCFYDataTransferService;
 import org.jeecg.modules.medical.common.CommonUtil;
+import org.jeecg.modules.medical.entity.OutpatientSettlementDetails;
 import org.jeecg.modules.medical.ruleengine.TransferDataCallFunction;
+import org.jeecg.modules.medical.service.IOutpatientSettlementDetailsService;
 import org.jeecg.modules.system.service.ISysDictService;
 import org.quartz.DisallowConcurrentExecution;
 import org.quartz.Job;
 import org.quartz.JobExecutionContext;
 import org.quartz.JobExecutionException;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.jdbc.core.JdbcTemplate;
 
 import java.util.Date;
@@ -35,6 +38,10 @@ public class XCFYDatav_outpatient_settle_detailsJob implements Job {
     JdbcTemplate jdbcTemplate;
     @Autowired
     ISysDictService sysDictService;
+    @Autowired
+    IOutpatientSettlementDetailsService outpatientSettlementDetailsService;
+    @Autowired
+    RedisTemplate redisTemplate;
 
     String insertSql = "INSERT INTO outpatient_settlement_details (id, hisid, visit_no, patient_id, hospital_id, " +
             "usage_date, item_id, item_name, item_id_hosp, item_name_hosp, drug_spec, dosage_form, package_unit," +
@@ -56,6 +63,7 @@ public class XCFYDatav_outpatient_settle_detailsJob implements Job {
         for (DictModel dictModel : cateGoriesList) {
             cateGoriesMap.put(dictModel.getText(), dictModel.getValue());
         }
+        Object openStr = redisTemplate.opsForValue().get(Constant.JOB_DELETE_OLD_DATE_SWITCH);
         while (true) {
             log.info("开始同步V_YBKF_OUTPATIENT_SETTLE_DEL数据");
             String whereSql = "";
@@ -70,6 +78,10 @@ public class XCFYDatav_outpatient_settle_detailsJob implements Job {
             Integer count = xcfyDataTransferService.transferDataList(querySql, insertSql, paramMap, new TransferDataCallFunction() {
                 @Override
                 public Boolean transferData(Map<String, Object> dataMap) throws Exception {
+                    String hisid = dataMap.get("HISID").toString();
+                    if(null != openStr && Constant.SWITCH_OPEN.equals(openStr)) {
+                        outpatientSettlementDetailsService.lambdaUpdate().eq(OutpatientSettlementDetails::getHisid, hisid).remove();
+                    }
                     dataMap.put("CREATE_BY", "auto");
                     dataMap.put("CREATE_TIME", new Date());
                     dataMap.put("P_CATEGORY", "01");
@@ -83,16 +95,21 @@ public class XCFYDatav_outpatient_settle_detailsJob implements Job {
                         }
                     }
                     String pCategory = dataMap.getOrDefault("P_CATEGORY", "").toString();
-                    if(StringUtils.isNotBlank(pCategory)){
+                    if (StringUtils.isNotBlank(pCategory)) {
                         dataMap.put("P_CATEGORY", cateGoriesMap.getOrDefault(pCategory, pCategory));
                     }
 
                     String categoriesItems = dataMap.getOrDefault("CATEGORIES_ITEMS", "").toString();
-                    if(StringUtils.isNotBlank(pCategory)) {
+                    if (StringUtils.isNotBlank(pCategory)) {
                         dataMap.put("CATEGORIES_ITEMS", cateGoriesMap.getOrDefault(categoriesItems, categoriesItems));
                     }
                     return true;
                 }
+            }, new TransferDataCallFunction() {
+                @Override
+                public Boolean transferData(Map<String, Object> dataMap) throws Exception {
+                    return true;
+                }
             });
             if (count <= 0) {
                 log.info("V_YBKF_OUTPATIENT_SETTLE_DEL 大于ID:{} 没有的数据,停止同步", hsdId);