lenovodn 2 лет назад
Родитель
Сommit
121a76c5a2

+ 53 - 17
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/controller/MedicalInsRuleInfoController.java

@@ -12,6 +12,7 @@ import javax.servlet.http.HttpServletResponse;
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.parser.Feature;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import lombok.RequiredArgsConstructor;
@@ -29,6 +30,7 @@ import org.jeecg.modules.medical.Constant;
 import org.jeecg.modules.medical.entity.FactorEnchance;
 import org.jeecg.modules.medical.entity.MedicalInsRuleInfo;
 import org.jeecg.modules.medical.entity.MedicalInsRuleProject;
+import org.jeecg.modules.medical.entity.MedicalInsuranceDrugs;
 import org.jeecg.modules.medical.service.IFactorEnchanceService;
 import org.jeecg.modules.medical.service.IMedicalInsRuleInfoService;
 
@@ -38,6 +40,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 
 import org.jeecg.modules.medical.service.IMedicalInsRuleProjectService;
+import org.jeecg.modules.medical.service.IMedicalInsuranceDrugsService;
 import org.jeecg.modules.medical.vo.CommonResponse;
 import org.jeecg.modules.system.model.TreeSelectModel;
 import org.jeecg.modules.system.service.ISysCategoryService;
@@ -83,6 +86,7 @@ public class MedicalInsRuleInfoController extends JeecgController<MedicalInsRule
     public final RedisTemplate redisTemplate;
 
     private final ObjectMapper objectMapper;
+    private final IMedicalInsuranceDrugsService drugsService;
     @Lazy
     @Autowired
     private CommonAPI commonApi;
@@ -115,34 +119,66 @@ public class MedicalInsRuleInfoController extends JeecgController<MedicalInsRule
     public Result<List<TreeSelectModel>> queryDictList(@RequestParam(name = "dictCode") String dictCode, HttpServletRequest req) {
         return Result.OK(sysCategoryService.queryListByCode(dictCode));
     }
+
     @ApiOperation(value = "规则库类别下拉值", notes = "规则库类别下拉值")
     @GetMapping(value = "/baseChildrenList")
-    public Result<?> baseChildrenList(@RequestParam(name = "dictCode") String dictCode, HttpServletRequest req) {
+    public Result<?> baseChildrenList(@RequestParam(name = "dictCode") String dictCode, @RequestParam(name = "drugId", required = false) String drugId, @RequestParam(name = "drugName", required = false) String drugName, @RequestParam(name = "type", required = false) String type, @RequestParam(name = "ruleName", required = false) String ruleName, HttpServletRequest req) {
         List<TreeSelectModel> treeSelectModels = sysCategoryService.queryListByCode(dictCode);
-        List<TreeSelectModel> treeList =new ArrayList<>();
-
-//        List<CommonResponse> responses = new ArrayList<>();
-        for (TreeSelectModel model:treeSelectModels){
-            List<MedicalInsRuleInfo> list = medicalInsRuleInfoService.lambdaQuery().eq(MedicalInsRuleInfo::getCategory, model.getCode()).list();
-//            CommonResponse responseInit = new CommonResponse();
-//            responseInit.setId(model.getCode());
-//            responseInit.setName(model.getTitle());
-//            responseInit.setParentId("0");
-//            responses.add(responseInit);
-//            TreeSelectModel tree = new TreeSelectModel();
-//            tree.setTitle(model.getTitle());
-//            tree.setCode(model.getCode());
+        List<String> codeList = treeSelectModels.stream().map(item -> item.getCode()).collect(Collectors.toList());
+        //type 1 医院 2医保
+        if (!StringUtils.hasText(type)) {
+            type = "1";
+        }
+        List<Integer> ids = new ArrayList<>();
+        List<Integer> searchIds = new ArrayList<>();
+        LambdaQueryWrapper<MedicalInsRuleProject> queryWrapper = new LambdaQueryWrapper<>();
+        if (StringUtils.hasText(drugId) && type.equals("1")) {
+            List<MedicalInsuranceDrugs> list = drugsService.lambdaQuery().eq(MedicalInsuranceDrugs::getItemIdHosp, drugId).list();
+            if (list.size() > 0) {
+                drugId = list.get(0).getMedicineCode();
+            }
+            queryWrapper.eq(MedicalInsRuleProject::getProjectCode, drugId);
+        } else if (StringUtils.hasText(drugId) && type.equals("2")) {
+            queryWrapper.eq(MedicalInsRuleProject::getProjectCode, drugId);
+        }
+        if (StringUtils.hasText(drugName) && type.equals("1")) {
+            List<MedicalInsuranceDrugs> list = drugsService.lambdaQuery().eq(MedicalInsuranceDrugs::getItemNameHosp, drugName).list();
+            if (list.size() > 0) {
+                List<String> drugCode = list.stream().map(item -> item.getMedicineCode()).collect(Collectors.toList());
+                queryWrapper.in(MedicalInsRuleProject::getProjectCode, drugCode);
+            }
+        } else if (StringUtils.hasText(drugName) && type.equals("2")) {
+            queryWrapper.like(MedicalInsRuleProject::getProjectName, drugName);
+        }
+        if (StringUtils.hasText(ruleName)) {
+            List<MedicalInsRuleInfo> list = medicalInsRuleInfoService.lambdaQuery().like(MedicalInsRuleInfo::getRuleName, ruleName).in(MedicalInsRuleInfo::getCategory, codeList).list();
+            ids = list.stream().map(item -> item.getId()).collect(Collectors.toList());
+        }
+        List<MedicalInsRuleProject> ruleList = projectService.list(queryWrapper);
+        searchIds = ruleList.stream().map(item -> item.getMedicalInsRuleInfoId()).collect(Collectors.toList());
+        if (searchIds.size() > 0) {
+            ids.addAll(searchIds);
+        }
+        for (TreeSelectModel model : treeSelectModels) {
+            List<TreeSelectModel> treeList = new ArrayList<>();
+            LambdaQueryWrapper<MedicalInsRuleInfo> ruleInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            ruleInfoLambdaQueryWrapper.eq(MedicalInsRuleInfo::getCategory, model.getCode());
+            if (ids.size() > 0) {
+                ruleInfoLambdaQueryWrapper.in(MedicalInsRuleInfo::getId, ids);
+            }
+            List<MedicalInsRuleInfo> list = medicalInsRuleInfoService.list(ruleInfoLambdaQueryWrapper);
+//           medicalInsRuleInfoService.lambdaQuery().eq(MedicalInsRuleInfo::getCategory, model.getCode()).list();
             for (MedicalInsRuleInfo info : list) {
                 TreeSelectModel treeSelectModel = new TreeSelectModel();
-                treeSelectModel.setCode(info.getId()==null?null:info.getId().toString());
-                treeSelectModel.setTitle(info.getRuleName()==null?"":info.getRuleName());
-
+                treeSelectModel.setCode(info.getId() == null ? null : info.getId().toString());
+                treeSelectModel.setTitle(info.getRuleName() == null ? "" : info.getRuleName());
                 treeList.add(treeSelectModel);
             }
             model.setChildren(treeList);
         }
         return Result.OK(treeSelectModels);
     }
+
     @ApiOperation(value = "类别对应数据", notes = "类别对应数据")
     @GetMapping(value = "/childrenList")
     public Result<List<CommonResponse>> childrenList(@RequestParam(name = "category") String category, HttpServletRequest req) {