Bläddra i källkod

规则库 编辑相关诊断、关联诊断编码 判断新增还是修改

lenovodn 2 år sedan
förälder
incheckning
9bceedc0f9

+ 16 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/controller/MedicalInsRuleProjectController.java

@@ -119,7 +119,23 @@ public class MedicalInsRuleProjectController extends JeecgController<MedicalInsR
     @ApiOperation(value = "medical_ins_rule_project-编辑", notes = "medical_ins_rule_project-编辑")
     @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
     public Result<String> edit(@RequestBody MedicalInsRuleProject medicalInsRuleProject) {
+        String medicalDiagnoseCode = medicalInsRuleProject.getMedicalDiagnoseCode();
+        String correlationMedicalDiagnoseCode = medicalInsRuleProject.getCorrelationMedicalDiagnoseCode();
         medicalInsRuleProjectService.updateById(medicalInsRuleProject);
+        if (StringUtils.hasText(medicalDiagnoseCode)) {
+            List<String> code = Arrays.asList(medicalDiagnoseCode.split("\n"));
+            medicalInsRuleProject.setCode(code);
+            Integer projectCodeType = 1;
+            diagnoseService.saveDiagnose(code,projectCodeType, medicalInsRuleProject.getMedicalInsRuleInfoId(), medicalInsRuleProject.getProjectCode());
+
+        }
+        if (StringUtils.hasText(correlationMedicalDiagnoseCode)) {
+            List<String> code = Arrays.asList(correlationMedicalDiagnoseCode.split("\n"));
+            medicalInsRuleProject.setCode(code);
+            Integer projectCodeType = 2;
+            diagnoseService.saveDiagnose(code,projectCodeType, medicalInsRuleProject.getMedicalInsRuleInfoId(), medicalInsRuleProject.getProjectCode());
+
+        }
         return Result.OK("编辑成功!");
     }
 

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

@@ -14,6 +14,7 @@ import java.util.List;
 public interface IMedicalInsRuleProjectDiagnoseService extends IService<MedicalInsRuleProjectDiagnose> {
 
     boolean saveDiagnose(List<String> medicalDiagnoseCode,Integer projectCodeType, Integer medicalInsRuleInfoId, String projectCode);
+    boolean updateDiagnose(List<String> medicalDiagnoseCode,Integer projectCodeType, Integer medicalInsRuleInfoId, String projectCode);
 //    boolean saveCorrelationDiagnose(List<String> medicalDiagnoseCode, Integer medicalInsRuleInfoId, String medicalInsProjectCode);
 
 }

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

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @Description: medical_ins_rule_project_diagnose
@@ -22,7 +23,15 @@ public class MedicalInsRuleProjectDiagnoseServiceImpl extends ServiceImpl<Medica
 
     @Override
     public boolean saveDiagnose(List<String> medicalDiagnoseCode,Integer projectCodeType, Integer medicalInsRuleInfoId, String projectCode) {
+        List<MedicalInsRuleProjectDiagnose> diagnoseList = this.lambdaQuery().in(MedicalInsRuleProjectDiagnose::getMedicalDiagnoseCode, medicalDiagnoseCode)
+                .eq(MedicalInsRuleProjectDiagnose::getProjectCodeType, projectCodeType)
+                .eq(MedicalInsRuleProjectDiagnose::getMedicalInsProjectCode, projectCode)
+                .eq(MedicalInsRuleProjectDiagnose::getMedicalInsRuleInfoId, medicalInsRuleInfoId).list();
         List<MedicalInsRuleProjectDiagnose> list = new ArrayList<>();
+        if(diagnoseList.size()>0){
+            List<String> collect = diagnoseList.stream().map(it -> it.getMedicalDiagnoseCode()).collect(Collectors.toList());
+            medicalDiagnoseCode = medicalDiagnoseCode.stream().filter(item -> !collect.contains(item)).collect(Collectors.toList());
+        }
         for (String code : medicalDiagnoseCode) {
             MedicalInsRuleProjectDiagnose diagnose = new MedicalInsRuleProjectDiagnose();
             diagnose.setMedicalDiagnoseCode(code);
@@ -35,4 +44,21 @@ public class MedicalInsRuleProjectDiagnoseServiceImpl extends ServiceImpl<Medica
         return b;
     }
 
+    @Override
+    public boolean updateDiagnose(List<String> medicalDiagnoseCode, Integer projectCodeType, Integer medicalInsRuleInfoId, String projectCode) {
+        List<MedicalInsRuleProjectDiagnose> list = new ArrayList<>();
+        for (String code : medicalDiagnoseCode) {
+            MedicalInsRuleProjectDiagnose diagnose = new MedicalInsRuleProjectDiagnose();
+            diagnose.setMedicalDiagnoseCode(code);
+            diagnose.setProjectCodeType(projectCodeType);
+            diagnose.setMedicalInsRuleInfoId(medicalInsRuleInfoId);
+            diagnose.setMedicalInsProjectCode(projectCode);
+            list.add(diagnose);
+        }
+
+        boolean b = saveOrUpdateBatch(list);
+        return b;
+
+    }
+
 }

+ 34 - 16
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/MedicalInsRuleProjectServiceImpl.java

@@ -69,6 +69,8 @@ import java.util.stream.Collectors;
 public class MedicalInsRuleProjectServiceImpl extends ServiceImpl<MedicalInsRuleProjectMapper, MedicalInsRuleProject> implements IMedicalInsRuleProjectService {
 
     public static final String PROJECTCODE = "projectCode";
+    public static final String MEDICALDIAGNOSECODE = "medicalDiagnoseCode";
+    public static final String CORRELATIONMEDICALDIAGNOSECODE = "correlationMedicalDiagnoseCode";
     public static final String CORRELATIONPROJECTCODE = "correlationProjectCode";
 
     private final IMedicalInsRuleProjectDiagnoseService diagnoseService;
@@ -380,7 +382,22 @@ public class MedicalInsRuleProjectServiceImpl extends ServiceImpl<MedicalInsRule
                     if (!CollectionUtils.isEmpty(updateList)) {
                         updateNumber = updateList.size();
                         this.updateBatchById(updateList, 500);
-
+                        if(fieldList.contains(MEDICALDIAGNOSECODE) ||fieldList.contains(CORRELATIONMEDICALDIAGNOSECODE)) {
+                            Integer finalId2 = id;
+                            updateList.stream().forEach(it -> {
+                                if (StringUtils.hasText(it.getMedicalDiagnoseCode())) {
+                                    List<String> code = Arrays.asList(it.getMedicalDiagnoseCode().split("\n"));
+                                    Integer projectCodeType = 1;
+                                    diagnoseService.saveDiagnose(code, projectCodeType, finalId2, it.getProjectCode());
+                                }
+                                if (StringUtils.hasText(it.getCorrelationMedicalDiagnoseCode())) {
+                                    List<String> code = Arrays.asList(it.getCorrelationMedicalDiagnoseCode().split("\n"));
+                                    Integer projectCodeType = 2;
+                                    diagnoseService.saveDiagnose(code, projectCodeType, finalId2, it.getProjectCode());
+
+                                }
+                            });
+                        }
                     }
                     // 取出差集
                     instalList = excelImportUtilService.getInsertDatas(list, dbExistsList, this::getDuplicateRm);
@@ -398,21 +415,22 @@ public class MedicalInsRuleProjectServiceImpl extends ServiceImpl<MedicalInsRule
                     //                    this.saveBatch(instalList, 500);
 //                    insertService.apply(instalList, 500);
                     this.saveBatch(instalList, 500);
-//                    list<MedicalInsRuleProject>
-                    instalList.stream().forEach(it -> {
-                        if (StringUtils.hasText(it.getMedicalDiagnoseCode())) {
-                            List<String> code = Arrays.asList(it.getMedicalDiagnoseCode().split("\n"));
-                            Integer projectCodeType = 1;
-                            diagnoseService.saveDiagnose(code, projectCodeType, it.getMedicalInsRuleInfoId(), it.getProjectCode());
-                        }
-                        if (StringUtils.hasText(it.getCorrelationMedicalDiagnoseCode())) {
-                            List<String> code = Arrays.asList(it.getCorrelationMedicalDiagnoseCode().split("\n"));
-                            Integer projectCodeType = 2;
-                            diagnoseService.saveDiagnose(code, projectCodeType, it.getMedicalInsRuleInfoId(), it.getProjectCode());
-
-                        }
-                    });
-
+                    if(fieldList.contains(MEDICALDIAGNOSECODE) ||fieldList.contains(CORRELATIONMEDICALDIAGNOSECODE)) {
+                        Integer finalId1 = id;
+                        instalList.stream().forEach(it -> {
+                            if (StringUtils.hasText(it.getMedicalDiagnoseCode())) {
+                                List<String> code = Arrays.asList(it.getMedicalDiagnoseCode().split("\n"));
+                                Integer projectCodeType = 1;
+                                diagnoseService.saveDiagnose(code, projectCodeType, finalId1, it.getProjectCode());
+                            }
+                            if (StringUtils.hasText(it.getCorrelationMedicalDiagnoseCode())) {
+                                List<String> code = Arrays.asList(it.getCorrelationMedicalDiagnoseCode().split("\n"));
+                                Integer projectCodeType = 2;
+                                diagnoseService.saveDiagnose(code, projectCodeType, finalId1, it.getProjectCode());
+
+                            }
+                        });
+                    }
                 }
                 //400条 saveBatch消耗时间1592毫秒  循环插入消耗时间1947毫秒
                 //1200条  saveBatch消耗时间3687毫秒 循环插入消耗时间5212毫秒