|
|
@@ -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) {
|