浏览代码

去除诊断类型同样多次违规

0027005599 2 年之前
父节点
当前提交
f548c58d4f

+ 6 - 6
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/ruleengine/FactorEnchangeFactory.java

@@ -2,7 +2,6 @@ package org.jeecg.modules.medical.ruleengine;
 
 import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 import org.jeecg.common.constant.CommonConstant;
@@ -227,12 +226,13 @@ public class FactorEnchangeFactory {
 
     public void insertAfterWarningDetail(Map<String, Object> itemMap, MedicalInsRuleInfo medicalInsRuleInfo, AfterwardsAudit afterwardsAudit, List<Map<String, Object>> itemList) {
         CommonUtil.setObjectByRuleType(itemMap, medicalInsRuleInfo);
+        boolean continueFlag = true;
         if(itemMap.containsKey(Constant.FILTER_RULE_ID)) {
-            Integer filterRuleId = (Integer) itemMap.get(Constant.FILTER_RULE_ID);
-            QueryWrapper<AfterwardsAuditDetail> queryWrapper = new QueryWrapper<>();
-            queryWrapper.eq("medical_ins_rule_info_id", filterRuleId);
-            queryWrapper.eq("afterwards_audit_id", afterwardsAudit.getId());
-            afterwardsAuditDetailService.remove(queryWrapper);
+            continueFlag = redisTemplate.opsForHash().putIfAbsent(Constant.FILTER_RULE_ID, afterwardsAudit.getId()+"_"+medicalInsRuleInfo.getId(), itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY));
+        }
+        if(!continueFlag){
+            log.info("该事后工单已经有该诊断类数据:{} ", afterwardsAudit.getId()+"_"+medicalInsRuleInfo.getId());
+            return;
         }
         if (Constant.VALIDATION_HANDER_METHOD_RETURN.equals(medicalInsRuleInfo.getViolationHandingMethod())) {
             Double totalAmount = (Double) itemMap.get(SystemEventAttrConstant.HIS_TOTAL_AMOUNT);

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/ruleengine/RuleEngine.java

@@ -856,6 +856,11 @@ public class RuleEngine {
             Map<Integer, List<MedicalInsRuleProject>> ruleAndProjectMap = medicalInsRuleProjectList.stream().collect(Collectors.groupingBy(MedicalInsRuleProject::getMedicalInsRuleInfoId));
             log.info("明细记录ID:{} 项目编码:{} 匹配到规则:{}", afterIncidentDetailLog.getId(), itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY), ruleAndProjectMap.keySet());
             for (Integer medicalInsRuleInfoId : ruleAndProjectMap.keySet()) {
+                Object value = redisTemplate.opsForHash().get(Constant.FILTER_RULE_ID, afterwardsAudit.getId()+"_"+medicalInsRuleInfoId);
+                if(null != value){
+                    log.info("该事后工单已经有该诊断类数据:{} 对应明细id:{} 该规则跳过", afterwardsAudit.getId()+"_"+medicalInsRuleInfoId, value);
+                    continue;
+                }
                 List<String> medicalInsCorrProjectCodeList = ruleAndProjectMap.get(medicalInsRuleInfoId).stream().map(MedicalInsRuleProject::getCorrelationProjectCode).collect(Collectors.toList());
                 MedicalInsRuleProject medicalInsRuleProject = ruleAndProjectMap.get(medicalInsRuleInfoId).get(0);
                 setProjectToLocalMap(itemMap, medicalInsRuleProject);