|
@@ -783,35 +783,24 @@ public class RuleEngine {
|
|
|
String jsonStr = JSON.toJSONString(afterIncidentDetailLog);
|
|
String jsonStr = JSON.toJSONString(afterIncidentDetailLog);
|
|
|
log.info("事后处理日志:{}", jsonStr);
|
|
log.info("事后处理日志:{}", jsonStr);
|
|
|
JSONObject itemMap = JSON.parseObject(jsonStr);
|
|
JSONObject itemMap = JSON.parseObject(jsonStr);
|
|
|
- Set<Integer> medicalInsRuleInfoIdList = itemCodeAndRuleIdMap.get(itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY));
|
|
|
|
|
- List<MedicalInsRuleProject> medicalInsRuleProjectList = null;
|
|
|
|
|
- if (CollectionUtil.isEmpty(medicalInsRuleInfoIdList)) {
|
|
|
|
|
- log.error("项目编码未匹配到对应的医保规则:{} 再次从数据库检索", itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY));
|
|
|
|
|
- medicalInsRuleProjectList = medicalInsRuleProjectService.getRuleProjectByMedicalProjectCode(itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY).toString());
|
|
|
|
|
- if (CollectionUtil.isEmpty(medicalInsRuleProjectList)) {
|
|
|
|
|
- log.error("项目编码未匹配到对应的医保规则:{} 在规则库数据库中未检索到数据", itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY));
|
|
|
|
|
- } else {
|
|
|
|
|
- medicalInsRuleInfoIdList = medicalInsRuleProjectList.stream().map(MedicalInsRuleProject::getMedicalInsRuleInfoId).collect(Collectors.toSet());
|
|
|
|
|
- log.info("数据库检索到匹配规则ID列表:{}", medicalInsRuleInfoIdList);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ List<MedicalInsRuleProject> medicalInsRuleProjectList = medicalInsRuleProjectService.getRuleProjectByMedicalProjectCode(itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY).toString());
|
|
|
|
|
+ if (CollectionUtil.isEmpty(medicalInsRuleProjectList)) {
|
|
|
|
|
+ log.error("项目编码未匹配到对应的医保规则:{} 在规则库数据库中未检索到数据", itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY));
|
|
|
} else {
|
|
} else {
|
|
|
- medicalInsRuleProjectList = medicalInsRuleProjectService.getRuleProjectByRuleIdAndProjectCode(new ArrayList<>(medicalInsRuleInfoIdList), itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY).toString());
|
|
|
|
|
|
|
+ Set<Integer> medicalInsRuleInfoIdList = medicalInsRuleProjectList.stream().map(MedicalInsRuleProject::getMedicalInsRuleInfoId).collect(Collectors.toSet());
|
|
|
|
|
+ log.info("项目编码:{} 数据库检索到匹配规则ID列表:{}", itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY), medicalInsRuleInfoIdList);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
Object diagnose = itemMap.get(Constant.MEDICAL_DIAGNOSE_CODE_KEY);
|
|
Object diagnose = itemMap.get(Constant.MEDICAL_DIAGNOSE_CODE_KEY);
|
|
|
if (null != diagnose) {
|
|
if (null != diagnose) {
|
|
|
//获取诊断编码配置的规则ID,加入需要执行的规则
|
|
//获取诊断编码配置的规则ID,加入需要执行的规则
|
|
|
- Set<Integer> diagnoseMedicalInsRuleInfoIdList = itemCodeAndRuleIdMap.get(diagnose.toString());
|
|
|
|
|
- List<MedicalInsRuleProject> medicalInsRuleProjectTempList = null;
|
|
|
|
|
- if (CollectionUtil.isEmpty(diagnoseMedicalInsRuleInfoIdList)) {
|
|
|
|
|
- medicalInsRuleProjectTempList = medicalInsRuleProjectService.getRuleProjectByDiagCode(diagnose.toString());
|
|
|
|
|
- if (CollectionUtil.isEmpty(medicalInsRuleProjectTempList)) {
|
|
|
|
|
- log.info("诊断编码未匹配到对应的医保规则:{} 在规则库数据库中未检索到数据", diagnose);
|
|
|
|
|
- }
|
|
|
|
|
- Set<Integer> medicalInsRuleInfoIdDiagSet = medicalInsRuleProjectTempList.stream().map(MedicalInsRuleProject::getMedicalInsRuleInfoId).collect(Collectors.toSet());
|
|
|
|
|
- log.info("数据库检索到匹配规则ID列表:{} 诊断编码为:{}", medicalInsRuleInfoIdDiagSet, diagnose);
|
|
|
|
|
- } else {
|
|
|
|
|
- medicalInsRuleProjectTempList = medicalInsRuleProjectService.getRuleProjectByRuleIdAndDiagCode(new ArrayList<>(diagnoseMedicalInsRuleInfoIdList), diagnose.toString());
|
|
|
|
|
|
|
+ List<MedicalInsRuleProject> medicalInsRuleProjectTempList = medicalInsRuleProjectService.getRuleProjectByDiagCode(diagnose.toString());
|
|
|
|
|
+ if (CollectionUtil.isEmpty(medicalInsRuleProjectTempList)) {
|
|
|
|
|
+ log.info("诊断编码未匹配到对应的医保规则:{} 在规则库数据库中未检索到数据", diagnose);
|
|
|
}
|
|
}
|
|
|
|
|
+ Set<Integer> medicalInsRuleInfoIdDiagSet = medicalInsRuleProjectTempList.stream().map(MedicalInsRuleProject::getMedicalInsRuleInfoId).collect(Collectors.toSet());
|
|
|
|
|
+ log.info("数据库检索到匹配规则ID列表:{} 诊断编码为:{}", medicalInsRuleInfoIdDiagSet, diagnose);
|
|
|
|
|
+
|
|
|
if (CollectionUtil.isNotEmpty(medicalInsRuleProjectTempList)) {
|
|
if (CollectionUtil.isNotEmpty(medicalInsRuleProjectTempList)) {
|
|
|
if (CollectionUtil.isEmpty(medicalInsRuleProjectList)) {
|
|
if (CollectionUtil.isEmpty(medicalInsRuleProjectList)) {
|
|
|
medicalInsRuleProjectList = new ArrayList<>();
|
|
medicalInsRuleProjectList = new ArrayList<>();
|
|
@@ -838,7 +827,7 @@ public class RuleEngine {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
Map<Integer, List<MedicalInsRuleProject>> ruleAndProjectMap = medicalInsRuleProjectList.stream().collect(Collectors.groupingBy(MedicalInsRuleProject::getMedicalInsRuleInfoId));
|
|
Map<Integer, List<MedicalInsRuleProject>> ruleAndProjectMap = medicalInsRuleProjectList.stream().collect(Collectors.groupingBy(MedicalInsRuleProject::getMedicalInsRuleInfoId));
|
|
|
- log.info("明细记录ID:{} 匹配到规则:{}", afterIncidentDetailLog.getId(), ruleAndProjectMap.keySet());
|
|
|
|
|
|
|
+ log.info("明细记录ID:{} 项目编码:{} 匹配到规则:{}", afterIncidentDetailLog.getId(), itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY), ruleAndProjectMap.keySet());
|
|
|
for (Integer medicalInsRuleInfoId : ruleAndProjectMap.keySet()) {
|
|
for (Integer medicalInsRuleInfoId : ruleAndProjectMap.keySet()) {
|
|
|
List<String> medicalInsCorrProjectCodeList = ruleAndProjectMap.get(medicalInsRuleInfoId).stream().map(MedicalInsRuleProject::getCorrelationProjectCode).collect(Collectors.toList());
|
|
List<String> medicalInsCorrProjectCodeList = ruleAndProjectMap.get(medicalInsRuleInfoId).stream().map(MedicalInsRuleProject::getCorrelationProjectCode).collect(Collectors.toList());
|
|
|
MedicalInsRuleProject medicalInsRuleProject = ruleAndProjectMap.get(medicalInsRuleInfoId).get(0);
|
|
MedicalInsRuleProject medicalInsRuleProject = ruleAndProjectMap.get(medicalInsRuleInfoId).get(0);
|