Ver código fonte

后台同步数据处理

0027005599 2 anos atrás
pai
commit
07082301f0

+ 9 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/common/CommonUtil.java

@@ -10,7 +10,7 @@ import org.springframework.stereotype.Component;
 
 public class CommonUtil {
     @Autowired
-    static RedisTemplate redisTemplate = SpringContextUtils.getBean(RedisTemplate.class);
+    static RedisTemplate redisTemplate = (RedisTemplate) SpringContextUtils.getBean("redisTemplate");
 
     public static String getProjectType(String projectCode) {
         String projectType = null;
@@ -35,4 +35,12 @@ public class CommonUtil {
         Object name = redisTemplate.opsForHash().get(Constant.MEDICAL_CODE_NAME_KEY, value.toString());
         return new String[]{value.toString(), name.toString()};
     }
+
+    public static boolean checkProjectCodeInItems(String projectCode){
+        Object value = redisTemplate.opsForHash().get(Constant.HIS_MEDICAL_DICT_KEY, projectCode);
+        if (value == null) {
+            return false;
+        }
+        return true;
+    }
 }

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

@@ -2,8 +2,10 @@ package org.jeecg.modules.medical.job;
 
 import cn.hutool.core.collection.CollectionUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
 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.AfterIncidentDetailLog;
 import org.jeecg.modules.medical.entity.AfterIncidentLog;
 import org.jeecg.modules.medical.entity.HospitalizatioSettleDetail;
@@ -68,7 +70,11 @@ public class AfterWaringLogTestJob{
 
     @Async("commonTaskAsyncPool")
     public void dealAftertask(MasterAdmissionBill masterAdmissionBill) {
-        masterAdmissionBillService.lambdaUpdate().set(MasterAdmissionBill::getState, Constant.DEALING).eq(MasterAdmissionBill::getId, masterAdmissionBill.getId()).update();
+        boolean updateCount = masterAdmissionBillService.lambdaUpdate().set(MasterAdmissionBill::getState, Constant.DEALING).eq(MasterAdmissionBill::getId, masterAdmissionBill.getId()).update();
+        if (!updateCount) {
+            log.error("住院结算主单为:{} 未更新到处理状态", masterAdmissionBill.getId());
+            return;
+        }
         AfterIncidentLog afterIncidentLog = afterIncidentLogService.addAfterIncidentLog(masterAdmissionBill);
         List<HospitalizatioSettleDetail> hospitalizatioSettleDetails = hospitalizatioSettleDetailService.lambdaQuery().eq(HospitalizatioSettleDetail::getHisid, masterAdmissionBill.getHisid()).list();
         List<AfterIncidentDetailLog> afterIncidentDetailLogList = new ArrayList<>();
@@ -85,8 +91,17 @@ public class AfterWaringLogTestJob{
             afterIncidentDetailLog.setMedical_diagnose_name_str(masterAdmissionBill.getYbAdmissionDiseaseName());
             afterIncidentDetailLog.setMedical_diagnose_code_str(masterAdmissionBill.getYbAdmissionDiseaseId());
             afterIncidentDetailLog.setAmount(hospitalizatioSettleDetail.getCost());
-            afterIncidentDetailLog.setMedical_project_code(hospitalizatioSettleDetail.getItemId());
-            afterIncidentDetailLog.setMedical_project_name(hospitalizatioSettleDetail.getItemName());
+
+            if (StringUtils.isNotBlank(hospitalizatioSettleDetail.getItemId())) {
+                afterIncidentDetailLog.setMedical_project_code(hospitalizatioSettleDetail.getItemId());
+                afterIncidentDetailLog.setMedical_project_name(hospitalizatioSettleDetail.getItemName());
+            } else {
+                String[] itemIdNameArr = CommonUtil.getMedicalCodeAndName(hospitalizatioSettleDetail.getItemId());
+                if (null != itemIdNameArr) {
+                    afterIncidentDetailLog.setMedical_project_code(itemIdNameArr[0]);
+                    afterIncidentDetailLog.setMedical_project_name(itemIdNameArr[1]);
+                }
+            }
             afterIncidentDetailLog.setProject_name(hospitalizatioSettleDetail.getItemNameHosp());
             afterIncidentDetailLog.setProject_code(hospitalizatioSettleDetail.getItemIdHosp());
             afterIncidentDetailLog.setCreateTime(afterIncidentLog.getCreateTime());
@@ -112,6 +127,18 @@ public class AfterWaringLogTestJob{
             afterIncidentDetailLog.setPatient_id(masterAdmissionBill.getPatientId());
             afterIncidentDetailLog.setPatient_name(masterAdmissionBill.getPatientName());
             afterIncidentDetailLog.setPatient_age(masterAdmissionBill.getPatientAge());
+            afterIncidentDetailLog.setDischarge_status(masterAdmissionBill.getDischargeStatus());
+//            afterIncidentDetailLog.setSingle_dose_number();
+//            afterIncidentDetailLog.setSingle_dose_unit();
+            afterIncidentDetailLog.setVisit_no(masterAdmissionBill.getZyh());
+            afterIncidentDetailLog.setRecipe_no(masterAdmissionBill.getRecipeNo());
+            afterIncidentDetailLog.setVisit_type(Constant.TREAMENT_TYPE_HOSP);
+            afterIncidentDetailLog.setState(Constant.WATING);
+            String projectType = CommonUtil.getProjectType(afterIncidentDetailLog.getMedical_project_code());
+            afterIncidentDetailLog.setProject_type(projectType);
+            afterIncidentDetailLog.setQuantity(hospitalizatioSettleDetail.getNum());
+            afterIncidentDetailLog.setPatient_gender(masterAdmissionBill.getPatientGender());
+//            afterIncidentDetailLog.setInvoice_project()
 //            afterIncidentDetailLog.setOrderType();
 //            afterIncidentDetailLog.setOrderCatalog();
             afterIncidentDetailLogList.add(afterIncidentDetailLog);

+ 85 - 74
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/ruleengine/dict/DictUtil.java

@@ -6,6 +6,7 @@ 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.common.CommonUtil;
 import org.jeecg.modules.medical.entity.AdviceDetailsVO;
 import org.jeecg.modules.medical.entity.AfterIncidentDetailLog;
 import org.jeecg.modules.medical.entity.DiagnosesVO;
@@ -16,7 +17,6 @@ import org.jeecg.modules.medical.service.IMaterialItemsService;
 import org.jeecg.modules.medical.service.IMedicalInsuranceDrugsService;
 import org.jeecg.modules.medical.service.IMedicineService;
 import org.jeecg.modules.medical.service.IOperativeItemsService;
-import org.jeecg.modules.medical.service.IOperativeService;
 import org.jeecg.modules.medical.service.ITreatmentItemsService;
 import org.jeecg.modules.system.service.ISysDictService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -53,9 +53,9 @@ public class DictUtil {
     @Autowired
     private ISysDictService sysDictService;
 
-    public void genHospItemsAndSendNotice(AdviceDetailsVO adviceDetailsVO, DiagnosesVO diagnose){
-        if(null != adviceDetailsVO){
-            switch (adviceDetailsVO.getProject_type()){
+    public void genHospItemsAndSendNotice(AdviceDetailsVO adviceDetailsVO, DiagnosesVO diagnose) {
+        if (null != adviceDetailsVO) {
+            switch (adviceDetailsVO.getProject_type()) {
                 case Constant.PROJECT_TYPE_MEDICINE:
                     medicalInsuranceDrugsService.saveMedicalIns(adviceDetailsVO);
                     break;
@@ -74,13 +74,12 @@ public class DictUtil {
             }
 
         }
-        if(null != diagnose){
+        if (null != diagnose) {
             diagnoseItemsService.saveHisDiagnose(diagnose);
         }
     }
 
 
-
     /**
      * 字典页面配置逻辑
      * 当要转换的接口属性路径配置没有.号,则直接把转换参数属性设置到ext_attr2字段上,
@@ -158,7 +157,7 @@ public class DictUtil {
                         diagnose.setMedical_diagnose_code(value.toString());
                         diagnose.setMedical_diagnose_name(diagnose.getDiagnose_desc());
 
-                    }else {
+                    } else {
                         diagnose.setMedical_diagnose_code(value.toString());
 //                        itemMap.put(Constant.MEDICAL_DIAGNOSE_CODE_KEY, value);
                         Object name = redisTemplate.opsForHash().get(Constant.MEDICAL_CODE_NAME_KEY, value.toString());
@@ -184,7 +183,7 @@ public class DictUtil {
                         value = adviceDetailsVO.getProject_code();
                         adviceDetailsVO.setMedical_project_code(value.toString());
                         adviceDetailsVO.setMedical_project_name(adviceDetailsVO.getProject_name());
-                    }else {
+                    } else {
                         adviceDetailsVO.setMedical_project_code(value.toString());
 //                        itemMap.put(Constant.MEDICAL_DIAGNOSE_CODE_KEY, value);
                         Object name = redisTemplate.opsForHash().get(Constant.MEDICAL_CODE_NAME_KEY, value.toString());
@@ -196,7 +195,7 @@ public class DictUtil {
                     medicalProjectCodeList.add(adviceDetailsVO.getMedical_project_name());
                 }
             }
-            if(null == midIncidentWarningVO.getTotoal_amount() || midIncidentWarningVO.getTotoal_amount()<=0){
+            if (null == midIncidentWarningVO.getTotoal_amount() || midIncidentWarningVO.getTotoal_amount() <= 0) {
                 midIncidentWarningVO.setTotoal_amount(totalAmount);
             }
             midIncidentWarningVO.setProjectCodeList(projectCodeList);
@@ -204,17 +203,17 @@ public class DictUtil {
         }
     }
 
-    public String getMedicalDiagnoseCode(String diagnoseCode){
+    public String getMedicalDiagnoseCode(String diagnoseCode) {
         Object value = redisTemplate.opsForHash().get(Constant.HIS_MEDICAL_DICT_KEY, diagnoseCode);
-        if(value == null){
+        if (value == null) {
             return diagnoseCode;
         }
         return value.toString();
     }
 
-    public String getMedicalDiagnoseName(String medicalDiagnoseCode){
+    public String getMedicalDiagnoseName(String medicalDiagnoseCode) {
         Object value = redisTemplate.opsForHash().get(Constant.MEDICAL_CODE_NAME_KEY, medicalDiagnoseCode);
-        if(value == null){
+        if (value == null) {
             return null;
         }
         return value.toString();
@@ -236,83 +235,95 @@ public class DictUtil {
             List<String> medicalDiagnoseNameList = new ArrayList<>();
             List<String> medicalDiagnoseCodeList = new ArrayList<>();
             int index = 0;
-            for(String diagnose_code : diagnoseCodeArr) {
-                Object value = redisTemplate.opsForHash().get(Constant.HIS_MEDICAL_DICT_KEY, diagnose_code);
-                if (value == null) {
-                    log.error("字段未配置该诊断编码映射的医保记录,项目:{}", afterIncidentDetailLog);
-                    DiagnosesVO diagnosesVO = new DiagnosesVO();
-                    diagnosesVO.setDiagnose_code(diagnose_code);
-                    diagnosesVO.setDiagnose_desc(diagnoseNameArr[index]);
-                    diagnoseItemsService.saveHisDiagnose(diagnosesVO);
-//                    value = diagnose_code;
-//                    medicalDiagnoseCodeStr.append(value).append(Constant.SPLIT_STR);
-//                    medicalDiagnoseNameStr.append(afterIncidentDetailLog.getDiagnose_desc())
-//                    afterIncidentDetailLog.setMedical_diagnose_code(value.toString());
-//                    afterIncidentDetailLog.setMedical_diagnose_name(afterIncidentDetailLog.getDiagnose_desc());
-                } else {
-                    medicalDiagnoseCodeStr.append(value).append(Constant.SPLIT_STR);
-                    medicalDiagnoseCodeList.add(value.toString());
+            if (StringUtils.isEmpty(afterIncidentDetailLog.getMedical_diagnose_code_str())) {
+                for (String diagnose_code : diagnoseCodeArr) {
+                    Object value = redisTemplate.opsForHash().get(Constant.HIS_MEDICAL_DICT_KEY, diagnose_code);
+                    if (value == null) {
+                        log.error("字段未配置该诊断编码映射的医保记录,项目:{}", afterIncidentDetailLog);
+                        DiagnosesVO diagnosesVO = new DiagnosesVO();
+                        diagnosesVO.setDiagnose_code(diagnose_code);
+                        diagnosesVO.setDiagnose_desc(diagnoseNameArr[index]);
+                        diagnoseItemsService.saveHisDiagnose(diagnosesVO);
+                    } else {
+
+                        medicalDiagnoseCodeStr.append(value).append(Constant.SPLIT_STR);
+                        medicalDiagnoseCodeList.add(value.toString());
+                        Object name = redisTemplate.opsForHash().get(Constant.MEDICAL_CODE_NAME_KEY, value.toString());
+                        if (null != name) {
+                            medicalDiagnoseNameStr.append(name).append(Constant.SPLIT_STR);
+                            medicalDiagnoseNameList.add(name.toString());
+                        }
 
-//                    medicalDiagnoseNameStr.append(afterIncidentDetailLog.getDiagnose_desc())
-//                    afterIncidentDetailLog.setMedical_diagnose_code(value.toString());
-//                        itemMap.put(Constant.MEDICAL_DIAGNOSE_CODE_KEY, value);
-                    Object name = redisTemplate.opsForHash().get(Constant.MEDICAL_CODE_NAME_KEY, value.toString());
-                    if (null != name) {
-                        medicalDiagnoseNameStr.append(name).append(Constant.SPLIT_STR);
-                        medicalDiagnoseNameList.add(name.toString());
                     }
+                    index++;
                 }
-                index++;
+                afterIncidentDetailLog.setMedical_diagnose_code_str(medicalDiagnoseCodeStr.toString());
+                afterIncidentDetailLog.setMedical_diagnose_name_str(medicalDiagnoseNameStr.toString());
+            } else {
+                String[] medicalDiagnoseCodeArr = afterIncidentDetailLog.getMedical_diagnose_code_str().split(Constant.SPLIT_STR);
+                String[] medicalDiagnoseNameArr = afterIncidentDetailLog.getMedical_diagnose_name_str().split(Constant.SPLIT_STR);
+                medicalDiagnoseCodeList = Arrays.asList(medicalDiagnoseCodeArr);
+                medicalDiagnoseNameList = Arrays.asList(medicalDiagnoseNameArr);
             }
-            afterIncidentDetailLog.setMedical_diagnose_code_str(medicalDiagnoseCodeStr.toString());
-            afterIncidentDetailLog.setMedical_diagnose_name_str(medicalDiagnoseNameStr.toString());
             afterIncidentDetailLog.setMedical_diagnose_code(medicalDiagnoseCodeList);
             afterIncidentDetailLog.setMedical_diagnose_name(medicalDiagnoseNameList);
-        }
-
 
-        Object value = redisTemplate.opsForHash().get(Constant.HIS_MEDICAL_DICT_KEY, afterIncidentDetailLog.getProject_code());
-        if (value == null) {
-            log.error("字段未配置该项目编码映射的医保记录,项目:{}", afterIncidentDetailLog);
-            genHisProjectAndNotice(afterIncidentDetailLog);
-            value = afterIncidentDetailLog.getProject_code();
-            afterIncidentDetailLog.setMedical_project_code(value.toString());
-            afterIncidentDetailLog.setMedical_project_name(afterIncidentDetailLog.getProject_name());
-        }else {
-            afterIncidentDetailLog.setMedical_project_code(value.toString());
-//                        itemMap.put(Constant.MEDICAL_DIAGNOSE_CODE_KEY, value);
-            Object name = redisTemplate.opsForHash().get(Constant.MEDICAL_CODE_NAME_KEY, value.toString());
-            if (null != name) {
-                afterIncidentDetailLog.setMedical_project_name(name.toString());
+        }
+        Object value = null;
+        if (StringUtils.isEmpty(afterIncidentDetailLog.getMedical_project_code())) {
+            if (StringUtils.isNotBlank(afterIncidentDetailLog.getProject_code())) {
+                value = redisTemplate.opsForHash().get(Constant.HIS_MEDICAL_DICT_KEY, afterIncidentDetailLog.getProject_code());
             }
+            if (value == null) {
+                log.error("字段未配置该项目编码映射的医保记录,项目:{}", afterIncidentDetailLog);
+                genHisProjectAndNotice(afterIncidentDetailLog);
+                value = afterIncidentDetailLog.getProject_code();
+                afterIncidentDetailLog.setMedical_project_code(value.toString());
+                afterIncidentDetailLog.setMedical_project_name(afterIncidentDetailLog.getProject_name());
+            } else {
+                afterIncidentDetailLog.setMedical_project_code(value.toString());
+                Object name = redisTemplate.opsForHash().get(Constant.MEDICAL_CODE_NAME_KEY, value.toString());
+                if (null != name) {
+                    afterIncidentDetailLog.setMedical_project_name(name.toString());
+                }
+            }
+        } else {
+
         }
 
     }
 
-    public void genHisProjectAndNotice(AfterIncidentDetailLog afterIncidentDetailLog){
+    public void genHisProjectAndNotice(AfterIncidentDetailLog afterIncidentDetailLog) {
         String exCategory = afterIncidentDetailLog.getExpense_category();
-        if(StringUtils.isNotBlank(exCategory)){
-            List<DictModel> dictModelList = sysDictService.queryDictItemsByCode(Constant.CATEGORY_PROJECTTYPE_KEY);
-            Map<String,String> exCateGoryAndProjectTypeMap = dictModelList.stream().collect(Collectors.toMap(DictModel::getValue, DictModel::getText));
-            String projectType = exCateGoryAndProjectTypeMap.getOrDefault(exCategory, Constant.PROJECT_TYPE_DIAGNOSIS_TREATMENT);
-            AdviceDetailsVO adviceDetailsVO = new AdviceDetailsVO();
-            adviceDetailsVO.setProject_code(afterIncidentDetailLog.getProject_code());
-            adviceDetailsVO.setProject_name(afterIncidentDetailLog.getProject_name());
-            adviceDetailsVO.setProject_type(projectType);
-            if(null != afterIncidentDetailLog.getPrice()) {
-                adviceDetailsVO.setPrice(afterIncidentDetailLog.getPrice().doubleValue());
-            }
-            adviceDetailsVO.setExpense_category(afterIncidentDetailLog.getExpense_category());
-            adviceDetailsVO.setDose_day(afterIncidentDetailLog.getDose_day());
-            adviceDetailsVO.setDose_form(afterIncidentDetailLog.getDose_form());
+        String projectType = null;
+//        if (StringUtils.isNotBlank(exCategory)) {
+//            List<DictModel> dictModelList = sysDictService.queryDictItemsByCode(Constant.CATEGORY_PROJECTTYPE_KEY);
+//            Map<String, String> exCateGoryAndProjectTypeMap = dictModelList.stream().collect(Collectors.toMap(DictModel::getValue, DictModel::getText));
+//            projectType = exCateGoryAndProjectTypeMap.getOrDefault(exCategory, Constant.PROJECT_TYPE_DIAGNOSIS_TREATMENT);
+//        }else{
+        projectType = CommonUtil.getProjectType(afterIncidentDetailLog.getMedical_project_code());
+//        }
 
-            adviceDetailsVO.setSingle_dose_number(afterIncidentDetailLog.getSingle_dose_number());
-            adviceDetailsVO.setSingle_dose_unit(afterIncidentDetailLog.getSingle_dose_unit());
-            adviceDetailsVO.setTake_frequence(afterIncidentDetailLog.getTake_frequence());
-            adviceDetailsVO.setUse_day(afterIncidentDetailLog.getUse_day());
-            genHospItemsAndSendNotice(adviceDetailsVO, null);
+        AdviceDetailsVO adviceDetailsVO = new AdviceDetailsVO();
+        adviceDetailsVO.setProject_code(afterIncidentDetailLog.getProject_code());
+        adviceDetailsVO.setProject_name(afterIncidentDetailLog.getProject_name());
+        adviceDetailsVO.setMedical_project_name(afterIncidentDetailLog.getMedical_project_name());
+        adviceDetailsVO.setMedical_project_code(afterIncidentDetailLog.getMedical_project_code());
+        adviceDetailsVO.setProject_type(projectType);
+        if (null != afterIncidentDetailLog.getPrice()) {
+            adviceDetailsVO.setPrice(afterIncidentDetailLog.getPrice().doubleValue());
         }
+        adviceDetailsVO.setExpense_category(afterIncidentDetailLog.getExpense_category());
+        adviceDetailsVO.setDose_day(afterIncidentDetailLog.getDose_day());
+        adviceDetailsVO.setDose_form(afterIncidentDetailLog.getDose_form());
+
+        adviceDetailsVO.setSingle_dose_number(afterIncidentDetailLog.getSingle_dose_number());
+        adviceDetailsVO.setSingle_dose_unit(afterIncidentDetailLog.getSingle_dose_unit());
+        adviceDetailsVO.setTake_frequence(afterIncidentDetailLog.getTake_frequence());
+        adviceDetailsVO.setUse_day(afterIncidentDetailLog.getUse_day());
+        adviceDetailsVO.setRecipe_no(afterIncidentDetailLog.getRecipe_no());
 
+        genHospItemsAndSendNotice(adviceDetailsVO, null);
     }
 
     /**

+ 6 - 4
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/DiagnoseItemsServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.medical.common.CommonUtil;
 import org.jeecg.modules.medical.entity.DiagnoseItems;
 import org.jeecg.modules.medical.entity.DiagnosesVO;
 import org.jeecg.modules.medical.entity.MaterialItems;
@@ -50,14 +51,15 @@ public class DiagnoseItemsServiceImpl extends ServiceImpl<DiagnoseItemsMapper, D
     public DiagnoseItems saveHisDiagnose(DiagnosesVO diagnosesVO) {
 
         String diagnoseCode = diagnosesVO.getDiagnose_code();
-        LambdaQueryWrapper<DiagnoseItems> in = Wrappers.<DiagnoseItems>lambdaQuery()
-                .eq(DiagnoseItems::getDiagnoseCode, diagnoseCode);
-        long count = this.count(in);
-        if (count <= 0) {
+        boolean checkFlag = CommonUtil.checkProjectCodeInItems(diagnoseCode);
+        if(!checkFlag){
             DiagnoseItems diagnoseItems = new DiagnoseItems();
             diagnoseItems.setDiagnoseCode(diagnoseCode);
             diagnoseItems.setDiagnoseName(diagnosesVO.getDiagnose_desc());
+            diagnoseItems.setMedicalDiagnoseCode(diagnosesVO.getMedical_diagnose_code());
+            diagnoseItems.setMedicalDiagnoseName(diagnosesVO.getMedical_diagnose_name());
             diagnoseItems.setCreateTime(new Date());
+            diagnoseItems.setCreateBy("auto");
             this.save(diagnoseItems);
             return diagnoseItems;
         }

+ 7 - 5
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/MaterialItemsServiceImpl.java

@@ -12,6 +12,7 @@ import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.util.JwtUtil;
 import org.jeecg.common.system.vo.MedicalDto;
 import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.medical.common.CommonUtil;
 import org.jeecg.modules.medical.common.ExcelImportUtilService;
 import org.jeecg.modules.medical.common.bo.ExportRuleFieldDTO;
 import org.jeecg.modules.medical.common.bo.ExportRuleTitleDTO;
@@ -196,7 +197,7 @@ public class MaterialItemsServiceImpl extends ServiceImpl<MaterialItemsMapper, M
 
     /**
      * 构建去重因子
-     * @param medicalInsRuleProject
+     * @param materialItems
      * @return
      */
     private String getDuplicateRm(MaterialItems materialItems) {
@@ -206,14 +207,15 @@ public class MaterialItemsServiceImpl extends ServiceImpl<MaterialItemsMapper, M
     @Override
     public MaterialItems saveMaterialItems(AdviceDetailsVO adviceDetailsVO) {
         String projectCode = adviceDetailsVO.getProject_code();
-        LambdaQueryWrapper<MaterialItems> in = Wrappers.<MaterialItems>lambdaQuery()
-                .eq(MaterialItems::getItemIdHosp, projectCode);
-        long count = this.count(in);
-        if(count<=0){
+        boolean checkFlag = CommonUtil.checkProjectCodeInItems(projectCode);
+        if(!checkFlag){
             MaterialItems materialItems = new MaterialItems();
             materialItems.setItemIdHosp(projectCode);
             materialItems.setItemNameHosp(adviceDetailsVO.getProject_name());
+            materialItems.setItemId(adviceDetailsVO.getMedical_project_code());
+            materialItems.setItemName(adviceDetailsVO.getMedical_project_name());
             materialItems.setCreateTime(new Date());
+            materialItems.setCreateBy("auto");
             if(null != adviceDetailsVO.getPrice()) {
                 materialItems.setCellingPrice(new BigDecimal(adviceDetailsVO.getPrice()));
             }

+ 7 - 2
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/MedicalInsuranceDrugsServiceImpl.java

@@ -12,6 +12,7 @@ import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.util.JwtUtil;
 import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.medical.common.CommonUtil;
 import org.jeecg.modules.medical.common.ExcelImportUtilService;
 import org.jeecg.modules.medical.entity.AdviceDetailsVO;
 import org.jeecg.modules.medical.entity.MaterialItems;
@@ -180,15 +181,19 @@ public class MedicalInsuranceDrugsServiceImpl extends ServiceImpl<MedicalInsuran
         String projectCode = adviceDetailsVO.getProject_code();
         LambdaQueryWrapper<MedicalInsuranceDrugs> in = Wrappers.<MedicalInsuranceDrugs>lambdaQuery()
                 .eq(MedicalInsuranceDrugs::getItemIdHosp, projectCode);
-        long count = this.count(in);
-        if(count<=0){
+        boolean checkFlag = CommonUtil.checkProjectCodeInItems(projectCode);
+
+        if(!checkFlag){
             MedicalInsuranceDrugs medicalInsuranceDrugs = new MedicalInsuranceDrugs();
+            medicalInsuranceDrugs.setMedicineCode(adviceDetailsVO.getMedical_project_code());
+            medicalInsuranceDrugs.setMedicineName(adviceDetailsVO.getMedical_project_name());
             medicalInsuranceDrugs.setItemIdHosp(projectCode);
             medicalInsuranceDrugs.setItemNameHosp(adviceDetailsVO.getProject_name());
             medicalInsuranceDrugs.setDosageForm(adviceDetailsVO.getDose_form());
             medicalInsuranceDrugs.setDrugSpec(adviceDetailsVO.getMedical_specification());
             medicalInsuranceDrugs.setMedicationMethod(adviceDetailsVO.getTake_frequence());
             medicalInsuranceDrugs.setCreateTime(new Date());
+            medicalInsuranceDrugs.setCreateBy("auto");
             if(null != adviceDetailsVO.getSingle_dose_number()) {
                 medicalInsuranceDrugs.setDrugUseTotal(adviceDetailsVO.getSingle_dose_number().toString());
             }

+ 1 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/OperativeItemsServiceImpl.java

@@ -28,6 +28,7 @@ public class OperativeItemsServiceImpl extends ServiceImpl<OperativeItemsMapper,
         operativeItems.setOperativeName(name);
         operativeItems.setCreateTime(new Date());
         operativeItems.setOperativeHisJson(json);
+        operativeItems.setCreateBy("auto");
         this.save(operativeItems);
         return operativeItems;
     }

+ 6 - 4
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/TreatmentItemsServiceImpl.java

@@ -12,6 +12,7 @@ import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.util.JwtUtil;
 import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.medical.common.CommonUtil;
 import org.jeecg.modules.medical.common.ExcelImportUtilService;
 import org.jeecg.modules.medical.entity.AdviceDetailsVO;
 import org.jeecg.modules.medical.entity.MedicalInsuranceDrugs;
@@ -135,13 +136,14 @@ public class TreatmentItemsServiceImpl extends ServiceImpl<TreatmentItemsMapper,
     @Override
     public TreatmentItems saveTreatmentItems(AdviceDetailsVO adviceDetailsVO) {
         String projectCode = adviceDetailsVO.getProject_code();
-        LambdaQueryWrapper<TreatmentItems> in = Wrappers.<TreatmentItems>lambdaQuery()
-                .eq(TreatmentItems::getItemIdHosp, projectCode);
-        long count = this.count(in);
-        if(count<=0){
+        boolean checkFlag = CommonUtil.checkProjectCodeInItems(projectCode);
+        if(!checkFlag){
             TreatmentItems items = new TreatmentItems();
             items.setItemIdHosp(projectCode);
             items.setItemNameHosp(adviceDetailsVO.getProject_name());
+            items.setItemId(adviceDetailsVO.getMedical_project_code());
+            items.setItemName(adviceDetailsVO.getMedical_project_name());
+            items.setCreateBy("auto");
             items.setCreateTime(new Date());
             if(null != adviceDetailsVO.getPrice()) {
                 items.setCellingPrice(new BigDecimal(adviceDetailsVO.getPrice()));