Forráskód Böngészése

Merge remote-tracking branch 'origin/matser' into matser

WuYi 3 napja
szülő
commit
42e023bd68

+ 9 - 4
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/untils/LogAopUtil.java

@@ -5,6 +5,7 @@ import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
 import com.lc.ibps.base.web.context.ContextUtil;
@@ -68,11 +69,15 @@ public class LogAopUtil {
     }
 
     private static String getTableName(Object jsonParams) {
-        if(isNotEmpty(jsonParams)){
+        if (isNotEmpty(jsonParams)) {
             try {
-                JsonObject jsonObject = JsonParser.parseString((String) jsonParams).getAsJsonObject();
-                if (jsonObject.has("tableName") && !jsonObject.get("tableName").isJsonNull()) {
-                    return jsonObject.get("tableName").getAsString();
+                JsonElement jsonElement = JsonParser.parseString((String) jsonParams);
+                // 确保它是一个 JSON 对象,而不是数组或其他类型
+                if (jsonElement.isJsonObject()) {
+                    JsonObject jsonObject = jsonElement.getAsJsonObject();
+                    if (jsonObject.has("tableName") && !jsonObject.get("tableName").isJsonNull()) {
+                        return jsonObject.get("tableName").getAsString();
+                    }
                 }
                 return "";
             } catch (Exception e) {

+ 28 - 9
ibps-provider-root/modules/provider-platform/src/main/java/com/lc/ibps/platform/plan/job/QualityIndicatorJob.java

@@ -61,12 +61,13 @@ public class QualityIndicatorJob extends AbstractJob {
                 //String diDian = (String)map.get("di_dian_");
                 //东莞中医特殊改造,按照部门细分
                 String diDian = flag1?(String)map.get("bian_zhi_bu_men_"):(String)map.get("di_dian_");
+                String shiYongFangWei = flag1?(String)map.get("shi_yong_fan_wei_"):"";
                 logger.warn("东莞中医院flag1的值{}应该为true,如果不对请在ipcc中添加配置", flag1);
                 QualityIndicatorJobParameter parameter = JSON.parseObject(canshu, QualityIndicatorJobParameter.class);
-                createRecords(diDian,id,"每月",parameter.checkMonth());
-                createRecords(diDian,id,"每季度",parameter.checkQuarter());
-                createRecords(diDian,id,"每半年",parameter.checkHalfYear());
-                createRecords(diDian,id,"每年",parameter.checkYear());
+                createRecords(diDian,id,"每月",parameter.checkMonth(),flag1,shiYongFangWei);
+                createRecords(diDian,id,"每季度",parameter.checkQuarter(),flag1,shiYongFangWei);
+                createRecords(diDian,id,"每半年",parameter.checkHalfYear(),flag1,shiYongFangWei);
+                createRecords(diDian,id,"每年",parameter.checkYear(),flag1,shiYongFangWei);
             }
         }
         String flow = dataMap.getString(START_FLOW);
@@ -76,12 +77,15 @@ public class QualityIndicatorJob extends AbstractJob {
         }
     }
 
-    private void createRecords(String diDian,String id,String rate, String periodNum) {
-        if(StringUtils.isBlank(periodNum) ||
-                fetchRecords("zlzb2", new String[]{diDian, rate, periodNum}) != null){//统计数据列表防重
+    private void createRecords(String diDian,String id,String rate, String periodNum,Boolean flag,String shiYongFangWei) {
+
+    /*    if(StringUtils.isBlank(periodNum) ||
+                fetchRecords("zlzb2", new String[]{diDian, rate, periodNum,shiYongFangWei}) != null){//统计数据列表防重
             return;
+        }*/
+        if (checkDuplicate(diDian, rate, periodNum, shiYongFangWei,flag)) {
+            return; // 命中防重规则,直接返回
         }
-
         List<Map<String, Object>> list = fetchRecords("zlzb3", new String[]{periodNum,rate,id});
         if(list == null) return ;
         try {
@@ -94,7 +98,22 @@ public class QualityIndicatorJob extends AbstractJob {
         }
 
     }
-
+    private boolean checkDuplicate(String diDian, String rate, String periodNum,
+                                   String shiYongFangWei, boolean falg) {
+        // 如果periodNum为空,直接返回 true(表示存在重复/无需继续处理)
+        if (StringUtils.isBlank(periodNum)) {
+            return true;
+        }
+        // 根据条件A动态构建参数数组
+        String[] params;
+        if (falg) {
+            params = new String[]{diDian, rate, periodNum, shiYongFangWei};//东莞专用
+        } else {
+            params = new String[]{diDian, rate, periodNum};//原来的逻辑
+        }
+        // 存在数据则表示已经处理过返回true跳过
+        return fetchRecords("zlzb2", params) != null;
+    }
     protected void startWorkflow(String tableName, String formKey, String defKey) {
         String fetchSql = "SELECT id_ FROM %s WHERE shi_fou_guo_shen_='待处理' ";
         fetchSql = String.format(fetchSql,tableName);

+ 1 - 0
ibps-provider-root/modules/provider-platform/src/main/java/com/lc/ibps/platform/plan/job/QualityMetricsForHcqdJob.java

@@ -607,6 +607,7 @@ public class QualityMetricsForHcqdJob extends AbstractJob {
             record.setJiHuaMingCheng(plan.getJiHuaMingCheng());
             record.setZhouQiLeiXing(plan.getZhouQiLeiXing());
             record.setZhouQiXiangQin(plan.getZhouQiXiangQin());
+            record.setShiFouGuoShen("待编制");
             
             // 插入记录
             int result = dao.insertRecord(record);