|
@@ -123,8 +123,6 @@ public class RuleEngine {
|
|
|
log.error("规则配置表没有有效的规则");
|
|
log.error("规则配置表没有有效的规则");
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
-// List<Integer> medicalInsRuleInfoIdList = medicalInsRuleInfoList.stream().map(MedicalInsRuleInfo::getId).collect(Collectors.toList());
|
|
|
|
|
-
|
|
|
|
|
/*
|
|
/*
|
|
|
* 根据规则id加载规则并初始化到redis里
|
|
* 根据规则id加载规则并初始化到redis里
|
|
|
* 后续提醒通过redis加载id,把id传入规则引擎,迅速调用对应规则
|
|
* 后续提醒通过redis加载id,把id传入规则引擎,迅速调用对应规则
|
|
@@ -179,7 +177,6 @@ public class RuleEngine {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-// setMIDProjectCodeToRedis(medicalInsRuleProject);
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
@@ -189,9 +186,6 @@ public class RuleEngine {
|
|
|
|
|
|
|
|
List<RuleAttr> ruleAttrList = ruleAttrService.list();
|
|
List<RuleAttr> ruleAttrList = ruleAttrService.list();
|
|
|
interfRuleAttrList = ruleAttrList.stream().collect(Collectors.groupingBy(RuleAttr::getInterfName));
|
|
interfRuleAttrList = ruleAttrList.stream().collect(Collectors.groupingBy(RuleAttr::getInterfName));
|
|
|
-// for(Map.Entry<String,List<RuleAttr>> map : interfRuleAttrList.entrySet()){
|
|
|
|
|
-// redisTemplate.opsForValue().append(map.getKey(), JSON.toJSONString(map.getValue()));
|
|
|
|
|
-// }
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -269,21 +263,12 @@ public class RuleEngine {
|
|
|
public void dealAfterInterfaceEngin(AfterwardsAudit afterwardsAudit, AfterIncidentDetailLog afterIncidentDetailLog,List<Map<String,Object>> itemList) {
|
|
public void dealAfterInterfaceEngin(AfterwardsAudit afterwardsAudit, AfterIncidentDetailLog afterIncidentDetailLog,List<Map<String,Object>> itemList) {
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
-// List<RuleAttr> ruleAttrList = interfRuleAttrList.get(intefName);
|
|
|
|
|
-// if (null == ruleAttrList) {
|
|
|
|
|
-//
|
|
|
|
|
-// return Result.error("接口:" + intefName + " 未配置 对应的规则属性");
|
|
|
|
|
-// }
|
|
|
|
|
dictUtil.transferAfterIncidentWarning(afterIncidentDetailLog);
|
|
dictUtil.transferAfterIncidentWarning(afterIncidentDetailLog);
|
|
|
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);
|
|
|
-// List<Map<String, Object>> itemList = interfItemListPlugin.findProIntersection(paramMap, ruleAttrList);
|
|
|
|
|
|
|
|
|
|
-// insertAfterWarning(afterwardsAudit);
|
|
|
|
|
-// midIncidentAudit.setInterfName(intefName);
|
|
|
|
|
Set<String> auditDetailSet = new HashSet<>();
|
|
Set<String> auditDetailSet = new HashSet<>();
|
|
|
-// for (Map<String, Object> itemMap : itemList) {
|
|
|
|
|
Set<Integer> medicalInsRuleInfoIdList = itemCodeAndRuleIdMap.get(itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY));
|
|
Set<Integer> medicalInsRuleInfoIdList = itemCodeAndRuleIdMap.get(itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY));
|
|
|
if (CollectionUtil.isEmpty(medicalInsRuleInfoIdList)) {
|
|
if (CollectionUtil.isEmpty(medicalInsRuleInfoIdList)) {
|
|
|
log.error("项目编码未匹配到对应的医保规则:{}", itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY));
|
|
log.error("项目编码未匹配到对应的医保规则:{}", itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY));
|
|
@@ -298,12 +283,10 @@ public class RuleEngine {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
runAfterEngine(auditDetailSet, itemMap, medicalInsRuleInfoIdList, afterwardsAudit, itemList);
|
|
runAfterEngine(auditDetailSet, itemMap, medicalInsRuleInfoIdList, afterwardsAudit, itemList);
|
|
|
-// }
|
|
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
log.error(e.getMessage(), e);
|
|
log.error(e.getMessage(), e);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-// return Result.ok();
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -506,6 +489,8 @@ public class RuleEngine {
|
|
|
MedicalInsRuleInfo medicalInsRuleInfo = medicalInsRuleInfoService.getById(medicalRuleInsInfoId);
|
|
MedicalInsRuleInfo medicalInsRuleInfo = medicalInsRuleInfoService.getById(medicalRuleInsInfoId);
|
|
|
List<FactorEnchance> factorEnchanceListTemp = enchanceTypeMap.get(medicalRuleInsInfoId);
|
|
List<FactorEnchance> factorEnchanceListTemp = enchanceTypeMap.get(medicalRuleInsInfoId);
|
|
|
paramMap.put(SystemEventAttrConstant.MEDICAL_INS_RULE_INFO_ID, medicalRuleInsInfoId);
|
|
paramMap.put(SystemEventAttrConstant.MEDICAL_INS_RULE_INFO_ID, medicalRuleInsInfoId);
|
|
|
|
|
+ paramMap.put(SystemEventAttrConstant.MEDICAL_INS_RULE_INFO_CODE, medicalInsRuleInfo.getRuleCode());
|
|
|
|
|
+ paramMap.put(SystemEventAttrConstant.MEDICAL_INS_RULE_INFO_NAME, medicalInsRuleInfo.getRuleName());
|
|
|
List<RuleFactorRela> ruleFactorRelaSortList = ruleIdAndFatorEnchanceIdMap.get(medicalRuleInsInfoId);
|
|
List<RuleFactorRela> ruleFactorRelaSortList = ruleIdAndFatorEnchanceIdMap.get(medicalRuleInsInfoId);
|
|
|
|
|
|
|
|
boolean auditFlag = factorEnchangeFactory.runFactorEnchange(medicalRuleInsInfoId, medicalInsRuleInfo, afterIncidentAudit, paramMap, ruleFactorRelaSortList, factorEnchanceListTemp, itemList);
|
|
boolean auditFlag = factorEnchangeFactory.runFactorEnchange(medicalRuleInsInfoId, medicalInsRuleInfo, afterIncidentAudit, paramMap, ruleFactorRelaSortList, factorEnchanceListTemp, itemList);
|
|
@@ -532,10 +517,9 @@ public class RuleEngine {
|
|
|
query.in(RuleFactorRela::getMedicalInsRuleInfoId, medicalInsRuleInfoIdList);
|
|
query.in(RuleFactorRela::getMedicalInsRuleInfoId, medicalInsRuleInfoIdList);
|
|
|
query.orderByAsc(RuleFactorRela::getSeqNum);
|
|
query.orderByAsc(RuleFactorRela::getSeqNum);
|
|
|
List<RuleFactorRela> ruleFactorRelaList = ruleFactorRelaService.list(query);
|
|
List<RuleFactorRela> ruleFactorRelaList = ruleFactorRelaService.list(query);
|
|
|
-
|
|
|
|
|
|
|
+ boolean auditFlag = false;
|
|
|
if (CollectionUtil.isNotEmpty(ruleFactorRelaList)) {
|
|
if (CollectionUtil.isNotEmpty(ruleFactorRelaList)) {
|
|
|
Map<Integer, List<RuleFactorRela>> ruleIdAndFatorEnchanceIdMap = ruleFactorRelaList.stream().collect(Collectors.groupingBy(RuleFactorRela::getMedicalInsRuleInfoId));
|
|
Map<Integer, List<RuleFactorRela>> ruleIdAndFatorEnchanceIdMap = ruleFactorRelaList.stream().collect(Collectors.groupingBy(RuleFactorRela::getMedicalInsRuleInfoId));
|
|
|
-// Map<Integer, RuleFactorRela> factorEnchanceRuleIdMap = ruleFactorRelaList.stream().collect(Collectors.toMap(RuleFactorRela::getFactorEnhanceId, v -> v, (v1, v2) -> v1));
|
|
|
|
|
Set<Integer> factorEnchangeIdList = ruleFactorRelaList.stream().map(RuleFactorRela::getFactorEnhanceId).collect(Collectors.toSet());
|
|
Set<Integer> factorEnchangeIdList = ruleFactorRelaList.stream().map(RuleFactorRela::getFactorEnhanceId).collect(Collectors.toSet());
|
|
|
List<FactorEnchance> factorEnchanceList = factorEnchanceService.listByIds(factorEnchangeIdList);
|
|
List<FactorEnchance> factorEnchanceList = factorEnchanceService.listByIds(factorEnchangeIdList);
|
|
|
Map<Integer, List<FactorEnchance>> enchanceTypeMap = factorEnchanceList.stream().collect(Collectors.groupingBy(FactorEnchance::getFactorCatalog));
|
|
Map<Integer, List<FactorEnchance>> enchanceTypeMap = factorEnchanceList.stream().collect(Collectors.groupingBy(FactorEnchance::getFactorCatalog));
|
|
@@ -549,17 +533,17 @@ public class RuleEngine {
|
|
|
MedicalInsRuleInfo medicalInsRuleInfo = medicalInsRuleInfoService.getById(medicalRuleInsInfoId);
|
|
MedicalInsRuleInfo medicalInsRuleInfo = medicalInsRuleInfoService.getById(medicalRuleInsInfoId);
|
|
|
List<FactorEnchance> factorEnchanceListTemp = enchanceTypeMap.get(medicalRuleInsInfoId);
|
|
List<FactorEnchance> factorEnchanceListTemp = enchanceTypeMap.get(medicalRuleInsInfoId);
|
|
|
paramMap.put(SystemEventAttrConstant.MEDICAL_INS_RULE_INFO_ID, medicalRuleInsInfoId);
|
|
paramMap.put(SystemEventAttrConstant.MEDICAL_INS_RULE_INFO_ID, medicalRuleInsInfoId);
|
|
|
|
|
+ paramMap.put(SystemEventAttrConstant.MEDICAL_INS_RULE_INFO_CODE, medicalInsRuleInfo.getRuleCode());
|
|
|
|
|
+ paramMap.put(SystemEventAttrConstant.MEDICAL_INS_RULE_INFO_NAME, medicalInsRuleInfo.getRuleName());
|
|
|
List<RuleFactorRela> ruleFactorRelaSortList = ruleIdAndFatorEnchanceIdMap.get(medicalRuleInsInfoId);
|
|
List<RuleFactorRela> ruleFactorRelaSortList = ruleIdAndFatorEnchanceIdMap.get(medicalRuleInsInfoId);
|
|
|
-
|
|
|
|
|
-// factorEnchangeFactory.runFactorEnchange(medicalRuleInsInfoId, medicalInsRuleInfo, midIncidentAudit, paramMap, ruleFactorRelaSortList, factorEnchanceListTemp);
|
|
|
|
|
- boolean auditFlag = factorEnchangeFactory.runFactorEnchange(medicalRuleInsInfoId, medicalInsRuleInfo, midIncidentAudit, paramMap, ruleFactorRelaSortList, factorEnchanceListTemp, itemList);
|
|
|
|
|
|
|
+ auditFlag = factorEnchangeFactory.runFactorEnchange(medicalRuleInsInfoId, medicalInsRuleInfo, midIncidentAudit, paramMap, ruleFactorRelaSortList, factorEnchanceListTemp, itemList);
|
|
|
if (Constant.VALIDATION_HANDER_METHOD_RETURN.equals(medicalInsRuleInfo.getViolationHandingMethod()) && auditFlag) {
|
|
if (Constant.VALIDATION_HANDER_METHOD_RETURN.equals(medicalInsRuleInfo.getViolationHandingMethod()) && auditFlag) {
|
|
|
log.error("事中提醒数据:{} 规则名:{} 触发诊断类规则,直接全金额,后续规则无需再跑", paramMap, medicalInsRuleInfo);
|
|
log.error("事中提醒数据:{} 规则名:{} 触发诊断类规则,直接全金额,后续规则无需再跑", paramMap, medicalInsRuleInfo);
|
|
|
return auditFlag;
|
|
return auditFlag;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- return false;
|
|
|
|
|
|
|
+ return auditFlag;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|