0027005599 2 лет назад
Родитель
Сommit
522da3da29

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

@@ -111,6 +111,11 @@ public class Constant {
      */
     public static final String MANAGER_STATICTIS_CATEGORY = "MANAGER_STATICTIS_CATEGORY";
 
+    /**
+     * 特殊规则定时执行,并统计数据
+     */
+    public static final String MANAGER_STATICTIS_RULE = "MANAGER_STATICTIS_RULE";
+
     /**
      * 医保库属性名前缀
      */

+ 35 - 5
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/AfterStaticisJob.java

@@ -37,13 +37,41 @@ public class AfterStaticisJob implements Job {
     @Override
     public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
         List<DictModel> dictModelList = sysDictService.getDictItems(Constant.MANAGER_STATICTIS_CATEGORY);
-        if (CollectionUtil.isNotEmpty(dictModelList)) {
+        List<DictModel> ruleDictModelList = sysDictService.getDictItems(Constant.MANAGER_STATICTIS_RULE);
+        if (CollectionUtil.isNotEmpty(dictModelList) || CollectionUtil.isNotEmpty(ruleDictModelList)) {
             List<String> categoryList = new ArrayList<>();
-            for (DictModel dictModel : dictModelList) {
-                categoryList.add(dictModel.getValue());
+            List<Integer> ruleIdList = new ArrayList<>();
+            boolean cFlag = false;
+            if(CollectionUtil.isNotEmpty(dictModelList)) {
+                for (DictModel dictModel : dictModelList) {
+                    categoryList.add(dictModel.getValue());
+                }
+                cFlag = true;
+            }
+            boolean rFlag = false;
+            if(CollectionUtil.isNotEmpty(ruleDictModelList)) {
+                for (DictModel dictModel : ruleDictModelList) {
+                    ruleIdList.add(Integer.parseInt(dictModel.getValue()));
+                }
+                rFlag = true;
+            }
+            List<MedicalInsRuleInfo> cMedicalInsRuleInfoList = null;
+            if(cFlag) {
+                cMedicalInsRuleInfoList = medicalInsRuleInfoService.lambdaQuery().in(MedicalInsRuleInfo::getCategory, categoryList)
+                        .eq(MedicalInsRuleInfo::getState, Constant.EFF_STATE).list();
+            }
+            List<MedicalInsRuleInfo> rMedicalInsRuleInfoList = null;
+            if(rFlag) {
+                rMedicalInsRuleInfoList = medicalInsRuleInfoService.lambdaQuery().in(MedicalInsRuleInfo::getId, ruleIdList)
+                        .eq(MedicalInsRuleInfo::getState, Constant.EFF_STATE).list();
+            }
+            List<MedicalInsRuleInfo> medicalInsRuleInfoList = new ArrayList<>();
+            if(CollectionUtil.isNotEmpty(cMedicalInsRuleInfoList)){
+                medicalInsRuleInfoList.addAll(cMedicalInsRuleInfoList);
+            }
+            if(CollectionUtil.isNotEmpty(rMedicalInsRuleInfoList)){
+                medicalInsRuleInfoList.addAll(rMedicalInsRuleInfoList);
             }
-            List<MedicalInsRuleInfo> medicalInsRuleInfoList = medicalInsRuleInfoService.lambdaQuery().in(MedicalInsRuleInfo::getCategory, categoryList)
-                    .eq(MedicalInsRuleInfo::getState, Constant.EFF_STATE).list();
             if (CollectionUtil.isNotEmpty(medicalInsRuleInfoList)) {
                 for (MedicalInsRuleInfo medicalInsRuleInfo : medicalInsRuleInfoList) {
                     statictisRuleByRuleEngine(medicalInsRuleInfo);
@@ -55,6 +83,8 @@ public class AfterStaticisJob implements Job {
             log.error("未配置统计监测类的二级分类名");
         }
 
+
+
     }
 
     @Async("commonTaskAsyncPool")

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

@@ -149,12 +149,9 @@ public class RuleEngine {
          */
         List<MedicalInsRuleInfo> midMedicalInsRuleInfoList = new ArrayList<>();
         Map<Integer, MedicalInsRuleInfo> medicalMap = new HashMap<>();
-//        redisTemplate.delete(Constant.MEDICAL_RULE_CACHE_KEY + "_" + Constant.TREATMEN_TYPE_ADVANCE_WARNING);
         for (MedicalInsRuleInfo medicalInsRuleInfo : medicalInsRuleInfoList) {
             medicalMap.put(medicalInsRuleInfo.getId(), medicalInsRuleInfo);
             if (Constant.TREATMEN_TYPE_ADVANCE_WARNING.equals(medicalInsRuleInfo.getCallScenario())) {
-//                redisTemplate.opsForHash().put(Constant.MEDICAL_RULE_CACHE_KEY + "_" + Constant.TREATMEN_TYPE_ADVANCE_WARNING,
-//                        medicalInsRuleInfo.getId(), medicalInsRuleInfo.getDegreeSuspicion());
                 advanceWaringRuleIdList.add(medicalInsRuleInfo.getId());
             } else if (Constant.TREATMEN_TYPE_MID_INCIDENT_WARNING.equals(medicalInsRuleInfo.getCallScenario())
                     || Constant.TREATMEN_TYPE_MID_EX_POST_SUPERVISION.equals(medicalInsRuleInfo.getCallScenario())) {