Przeglądaj źródła

【情报二期】数据域服务 - 完善 聚集预警 布控逻辑

peifj 6 dni temu
rodzic
commit
e8c6db8e57

+ 39 - 9
src/main/java/com/hhwy/qbeqsjy/APP.java

@@ -9,10 +9,7 @@ import com.hhwy.qbeqsjy.common.SnowflakeIdGenerator;
 import com.hhwy.qbeqsjy.common.TimeTool;
 import org.locationtech.jts.geom.Coordinate;
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 public class APP {
 
@@ -78,12 +75,45 @@ public class APP {
 //        System.out.println(CommonUtil.getConfValueByKeyHotel("1201010080"));
 //        System.out.println(CommonUtil.getConfValueByKeyDept("120000010105"));
 
-        Date currentTime = new Date(1747904994 * 1000);
-        Date bkkssj = new Date(TimeTool.dateStringToTimeStamp("2025-04-01 09:36:44") * 1000);
-        Date bkjssj = new Date(TimeTool.dateStringToTimeStamp("2025-04-01 09:36:44") * 1000);
-        System.out.println(currentTime.compareTo(bkkssj) >= 0);
-        System.out.println(currentTime.compareTo(bkjssj) <= 0);
+//        Date currentTime = new Date(1747904994 * 1000);
+//        Date bkkssj = new Date(TimeTool.dateStringToTimeStamp("2025-04-01 09:36:44") * 1000);
+//        Date bkjssj = new Date(TimeTool.dateStringToTimeStamp("2025-04-01 09:36:44") * 1000);
+//        System.out.println(currentTime.compareTo(bkkssj) >= 0);
+//        System.out.println(currentTime.compareTo(bkjssj) <= 0);
+//        System.out.println("120000_6e466198-7304-45eb-9306-99a034ec138e_D201005_13502082832".length());
+//        System.out.println("120000_6e466198-7304-45eb-9306-99a034ec138e_D201005_620503199710176039".length());
 
+//        System.out.println(TimeTool.dateStringToTimeStamp("2025-10-06 00:00:00"));
+
+        /*JSONObject jsonObject1 = new JSONObject();
+        jsonObject1.put("CC", "G2606");
+        jsonObject1.put("FCRQ", "20250606");
+        jsonObject1.put("ZJHM", "111");
+        jsonObject1.put("ZJHM_2", "222");
+        JSONObject jsonObject2 = new JSONObject();
+        jsonObject2.put("CC", "G2606");
+        jsonObject2.put("FCRQ", "20250607");
+        jsonObject2.put("ZJHM", "111");
+        jsonObject2.put("ZJHM_2", "222");
+        JSONObject jsonObject3 = new JSONObject();
+        jsonObject3.put("CC", "G2607");
+        jsonObject3.put("FCRQ", "20250609");
+        jsonObject3.put("ZJHM", "111");
+        jsonObject3.put("ZJHM_2", "222");
+        JSONObject jsonObject4 = new JSONObject();
+        jsonObject4.put("CC", "G2606");
+        jsonObject4.put("FCRQ", "20250606");
+        jsonObject4.put("ZJHM", "111");
+        jsonObject4.put("ZJHM_2", "222");
+
+        Set<String> keys = new HashSet<>(Arrays.asList("CC", "FCRQ", "ZJHM", "ZJHM_2"));
+        List<JSONObject> list = new ArrayList<>();
+        list.add(jsonObject1);
+        list.add(jsonObject2);
+        list.add(jsonObject3);
+        list.add(jsonObject4);
+        List<JSONObject> jsonObjects = CommonUtil.deduplicateJsonList(list, keys);
+        System.out.println(jsonObjects);*/
 
     }
 }

+ 62 - 0
src/main/java/com/hhwy/qbeqsjy/common/CommonUtil.java

@@ -1,5 +1,7 @@
 package com.hhwy.qbeqsjy.common;
 
+import com.alibaba.fastjson.JSONObject;
+
 import java.io.*;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
@@ -285,4 +287,64 @@ public class CommonUtil {
     return new ArrayList<>(set);
   }
 
+
+  /**
+   * 根据List<JSONObject>中指定key的value值进行去重
+   * @param jsonList
+   * @param keys
+   * @return
+   */
+  public static List<JSONObject> deduplicateJsonList(List<JSONObject> jsonList, Set<String> keys){
+    if(jsonList == null || jsonList.isEmpty() || keys == null || keys.isEmpty()){
+      return jsonList;
+    }
+    // 用于存储已经出现过的组合
+    Set<String> seen = new HashSet<>();
+    List<JSONObject> result = new ArrayList<>();
+    for (JSONObject json : jsonList) {
+      // 构建唯一标识
+      String uniqueKey = buildUniqueKey(json,keys);
+      if(uniqueKey != null && seen.add(uniqueKey)){
+        result.add(json);
+      }
+    }
+    return result;
+  }
+
+
+  /**
+   * 构建多个key的唯一标识
+   * @param json
+   * @param keys
+   * @return
+   */
+  public static String buildUniqueKey(JSONObject json, Set<String> keys){
+    StringBuilder sb = new StringBuilder();
+    for (String key : keys) {
+      if(!json.containsKey(key) || json.get(key) == null){
+        return null;
+      }
+      sb.append(json.getString(key)).append("|");
+    }
+    return sb.toString();
+  }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 }

+ 8 - 0
src/main/java/com/hhwy/qbeqsjy/common/Constants.java

@@ -47,6 +47,14 @@ public class Constants {
     public static final String RES_CODE_TBG = "01A1200002660";
     // 数据资源编码:同长途客运
     public static final String RES_CODE_TCTKY = "01A1201001040";
+    // 数据资源编码:同火车
+    public static final String RES_IDER_THC = "R-120000000000-00004525";
+    // 数据资源编码:同航班
+    public static final String RES_IDER_THB = "R-120000000000-00004522";
+    // 数据资源编码:同宾馆
+    public static final String RES_IDER_TBG = "R-120000000000-00004526";
+    // 数据资源编码:同长途客运
+    public static final String RES_IDER_TCTKY = "R-120000000000-00004530";
     // 接口响应内容类型默认值
     public static final String DEFAULT_RSP_TYPE = "application/json";
     // 接口响应内容类型值

+ 34 - 10
src/main/java/com/hhwy/qbeqsjy/controller/CtrlController.java

@@ -86,32 +86,37 @@ public class CtrlController {
             String modelIdListStr = modelIdList.toString();
             // 任务仅包含单人预警
             if(modelIdListStr.contains("DRYJ") && !modelIdListStr.contains("JJYJ")){
+                log.info("当前任务仅包含【单人预警】模型,调用 烽火统一布控服务 执行布控   任务编号:{}", taskId);
                 ctrlService.processDRYJCtrl(taskId, clueList, newResourceCodeList, areaIdList, endCtrlTime);
             }
             // 任务仅包含聚集预警
             else if(modelIdListStr.contains("JJYJ") && !modelIdListStr.contains("DRYJ")){
-                ctrlService.processJJYJCtrl(taskId, clueList, newResourceCodeList, areaIdList);
+//                ctrlService.processJJYJCtrl(taskId, clueList, newResourceCodeList, areaIdList);
+                log.info("当前任务仅包含【聚集预警】模型,已等待 定时任务 执行布控中...   任务编号:{}", taskId);
             }
             // 任务既包含单人预警,又包含聚集预警
             else {
+                log.info("当前任务包含【单人预警】模型和【聚集预警】模型   任务编号:{}", taskId);
+                log.info("【单人预警】模型调用 烽火统一布控服务 执行布控;【聚集预警】模型等待 定时任务 执行布控");
                 // 分别筛选出单人预警和聚集预警各自所对应的布控模型编号,并转换为对应的烽火数据资源编码
                 List<String> dryjResourceCodeList = new ArrayList<>();
-                List<String> jjyjResourceCodeList = new ArrayList<>();
+//                List<String> jjyjResourceCodeList = new ArrayList<>();
                 for (String modelId : modelIdList) {
                     if(modelId.contains("DRYJ")){
                         dryjResourceCodeList.add(CommonUtil.getConfValueByKeyApp(modelId));
-                    } else {
-                        jjyjResourceCodeList.add(CommonUtil.getConfValueByKeyApp(modelId));
                     }
+                    /*else {
+                        jjyjResourceCodeList.add(CommonUtil.getConfValueByKeyApp(modelId));
+                    }*/
                 }
                 ctrlService.processDRYJCtrl(taskId, clueList, CommonUtil.deduplicateList(dryjResourceCodeList), areaIdList, endCtrlTime);
-                ctrlService.processJJYJCtrl(taskId, clueList, CommonUtil.deduplicateList(jjyjResourceCodeList), areaIdList);
+//                ctrlService.processJJYJCtrl(taskId, clueList, CommonUtil.deduplicateList(jjyjResourceCodeList), areaIdList);
             }
             return AjaxResult.success(Constants.CTRL_ING_MSG);
         } catch (Exception e){
             log.error("任务布控发生异常", e);
+            return AjaxResult.error(Constants.SERVER_ERROR_MSG + e.getMessage());
         }
-        return AjaxResult.error(Constants.SERVER_ERROR_MSG);
     }
 
 
@@ -143,8 +148,8 @@ public class CtrlController {
             return AjaxResult.success(Constants.STOP_CTRL_ING_MSG);
         } catch (Exception e){
             log.error("任务停控发生异常", e);
+            return AjaxResult.error(Constants.SERVER_ERROR_MSG + e.getMessage());
         }
-        return AjaxResult.error(Constants.SERVER_ERROR_MSG);
     }
 
 
@@ -167,8 +172,8 @@ public class CtrlController {
             return ctrlService.saveCtrlTaskInfo(taskInfo, modelIdListInfo, areaInfo, clueInfo, modelInfo)? AjaxResult.success() : AjaxResult.error();
         } catch (Exception e){
             log.error("保存用户域任务相关信息发生异常", e);
+            return AjaxResult.error(Constants.SERVER_ERROR_MSG + e.getMessage());
         }
-        return AjaxResult.error(Constants.SERVER_ERROR_MSG);
     }
 
 
@@ -182,8 +187,8 @@ public class CtrlController {
             return AjaxResult.success(ctrlService.getWarningInfoByInc());
         } catch (Exception e){
             log.error("增量查询布控任务预警结果数据发生异常", e);
+            return AjaxResult.error(Constants.SERVER_ERROR_MSG + e.getMessage());
         }
-        return AjaxResult.error(Constants.SERVER_ERROR_MSG);
     }
 
 
@@ -200,8 +205,27 @@ public class CtrlController {
             return ctrlService.saveGroupInfo(groupInfoList)? AjaxResult.success() : AjaxResult.error();
         } catch (Exception e){
             log.error("保存预警接收群组信息发生异常", e);
+            return AjaxResult.error(Constants.SERVER_ERROR_MSG + e.getMessage());
+        }
+    }
+
+
+    /**
+     * 保存(用户域)布控任务审批信息
+     */
+    @PostMapping("/saveTaskApproveInfo")
+    public AjaxResult saveTaskApproveInfo(@RequestBody JSONObject reqBody){
+        JSONObject approveInfo = reqBody.getJSONObject("approveInfo");
+        String rwbh = approveInfo.getString("rwbh");
+        if(StringUtils.isBlank(rwbh)){
+            return AjaxResult.error(Constants.PARAMS_EMPTY_MSG);
+        }
+        try{
+            return ctrlService.saveCtrlTaskApproveInfo(approveInfo)? AjaxResult.success() : AjaxResult.error();
+        } catch (Exception e){
+            log.error("保存布控任务审批信息发生异常", e);
+            return AjaxResult.error(Constants.SERVER_ERROR_MSG + e.getMessage());
         }
-        return AjaxResult.error(Constants.SERVER_ERROR_MSG);
     }
 
 

+ 71 - 35
src/main/java/com/hhwy/qbeqsjy/dao/CtrlDao.java

@@ -217,6 +217,24 @@ public class CtrlDao {
     }
 
 
+    /**
+     * 根据 任务编号 查询布控任务相关信息(包含任务信息、数据资源信息、区域信息、线索人员信息)
+     * @param taskId
+
+     * @return
+     */
+    public List<Map<String, Object>> queryCtrlTaskInfo(String taskId, Timestamp currentTimestamp){
+        List<Map<String, Object>> ctrlTaskInfoList = new ArrayList<>();
+        String sql = "select rwbh, zjhm, sjh, bkkssj, bkjssj, bkzyxx, bkqyxx from t_ctrl_task_info where rwbh = ? and xszt = 1 and bkkssj <= ? and bkjssj  >= ?";
+        try {
+            ctrlTaskInfoList = gaussdbJdbcTemplate.queryForList(sql, taskId, currentTimestamp, currentTimestamp);
+        } catch (Exception e){
+            log.error("【查询布控任务相关信息发生异常】 异常信息:", e);
+        }
+        return ctrlTaskInfoList;
+    }
+
+
     /**
      * 根据 任务编号 查询布控任务模型配置信息
      * @param taskId
@@ -240,7 +258,7 @@ public class CtrlDao {
      * @return
      */
     public int batchInsertWarningInfo(List<Object[]> warningInfoList){
-        String sql = "insert into t_ctrl_warning_info (rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjry_xm, yjry_sfzh, yjry_sjh, yjxxsm, yjzt, yjztmc, yjsj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, zrdwmc, zrbmbm, zrbmmc, sqr_xm, sqr_sfzh, sqr_jh, sqr_dwbm, sqr_dwmc, yjry_lb, yjry_bq, gkjb, gkjbmc, ywly, jd, wd, cjsj, gxsj, yjglry_xm, yjglry_sfzh, yjglry_sjh, yjqymc, yjcsmc, yjlx, yjlxmc, yjry_zwh, yjglry_zwh, yjry_rlurl, ed_fxmj_sfzh, sd_fxmj_sfzh, sftsed, sftssd, zrmjsfzh) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
+        String sql = "insert into t_ctrl_warning_info (rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjry_xm, yjry_sfzh, yjry_sjh, yjxxsm, yjzt, yjztmc, yjsj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, zrdwmc, zrbmbm, zrbmmc, sqr_xm, sqr_sfzh, sqr_jh, sqr_dwbm, sqr_dwmc, yjry_lb, yjry_bq, gkjb, gkjbmc, ywly, jd, wd, cjsj, gxsj, yjglry_xm, yjglry_sfzh, yjglry_sjh, yjqymc, yjcsmc, yjlx, yjlxmc, yjry_zwh, yjglry_zwh, yjry_rlurl, ed_fxmj_sfzh, sd_fxmj_sfzh, sftsed, sftssd, zrmjsfzh, jjyj_unique_key) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
         try {
             int[] insertRows = gaussdbJdbcTemplate.batchUpdate(sql, warningInfoList);
             return insertRows.length;
@@ -366,6 +384,29 @@ public class CtrlDao {
     }
 
 
+    /**
+     * 根据 任务编号、聚集预警数据唯一标识key 条件查询布控预警结果数据中是否存在对应记录
+     * true:存在
+     * false:不存在
+     */
+    public boolean queryWarningInfoByParams(String rwbh, String dataUniqueKey){
+        if(StringUtils.isBlank(rwbh) || StringUtils.isBlank(dataUniqueKey)){
+            return false;
+        }
+        StringBuilder sql = new StringBuilder("select rwbh, jjyj_unique_key from t_ctrl_warning_info");
+        sql.append(" where rwbh = '").append(rwbh).append("' and jjyj_unique_key = '").append(dataUniqueKey).append("' limit 1");
+        try {
+            List<Map<String, Object>> warningInfoList = gaussdbJdbcTemplate.queryForList(sql.toString());
+            if(warningInfoList != null && !warningInfoList.isEmpty()){
+                return true;
+            }
+        } catch (Exception e){
+            log.error("【聚集预警 条件查询预警结果数据发生异常】 异常信息:", e);
+        }
+        return false;
+    }
+
+
     /**
      * 增量查询布控任务原始预警结果数据
      * @param startQueryTime
@@ -452,43 +493,38 @@ public class CtrlDao {
     }
 
 
+    /**
+     * 插入布控任务审批信息
+     * 同步用户域布控任务审批信息,方便数据域 聚集预警模型 周期执行
+     * @param ctrlTaskApproveInfo
+     * @return
+     */
+    public boolean insertCtrlTaskApproveInfo(Object[] ctrlTaskApproveInfo){
+        String sql = "insert into t_ctrl_task_approve_info (rwbh, spbh, spr_xm, spr_jh, spr_sfzh, spr_dwbm, spr_dwmc, spr_bmbm, spr_bmmc, spzt, spztmc, spsj, currentTime, currentTime) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
+        try {
+            int insertRows = gaussdbJdbcTemplate.update(sql, ctrlTaskApproveInfo);
+            return insertRows > 0;
+        } catch (Exception e){
+            log.error("【插入布控任务审批信息发生异常】 异常信息:", e);
+        }
+        return false;
+    }
 
 
+    /**
+     * 根据 审批状态(2:已通过) 查询 布控任务审批信息
+     */
+    public List<Map<String, Object>> queryBkrwSpxxBySpzt(Integer spzt){
+        List<Map<String, Object>> approveInfoList = new ArrayList<>();
+        String sql = "select distinct rwbh from t_ctrl_task_approve_info where spzt = ?";
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+        try {
+            approveInfoList = gaussdbJdbcTemplate.queryForList(sql, spzt);
+        } catch (Exception e){
+            log.error("【根据 审批状态 查询布控任务审批信息发生异常】 异常信息:", e);
+        }
+        return approveInfoList;
+    }
 
 
 

+ 52 - 52
src/main/java/com/hhwy/qbeqsjy/kafka/service/ConsumeService.java

@@ -134,11 +134,13 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                     String rwbh = clueIdStrArr[Constants.NUM_1];
                     String clueType = clueIdStrArr[Constants.NUM_2];
                     String clue = clueIdStrArr[Constants.NUM_3];
+                    // 数据资源编码
                     String resourceCode = uniCtrl.getString("U_RESID");
+                    // 数据资源类型:数据资源英文表名
                     String dataType = uniCtrl.getString("U_DATA_TYPE");
                     // 每张布控资源表对应的命中数据JSON对象
                     JSONObject oriField = message.getJSONObject("ORIFIELD");
-                    log.info("任务编号:{},命中线索:{},命中数据资源类型:{},布控数据资源编码:{},原始数据:{}", rwbh, clue, dataType, resourceCode, message.toJSONString());
+
                     // 生成预警信息编号
                     String yjxxbh = String.valueOf(generator.nextId());
                     // 预警状态默认为0(未读)
@@ -149,6 +151,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                     // 根据clueId中的任务编号、线索值、线索类型查询对应的布控任务相关信息(包含任务信息、数据资源信息、区域信息、线索信息)
                     List<Map<String, Object>> ctrlTaskInfoList = ctrlDao.queryCtrlTaskInfo(rwbh, clue, clueType);
                     if(!ctrlTaskInfoList.isEmpty()){
+                        log.info("任务编号:{},命中线索:{},命中数据资源类型:{},布控数据资源编码:{},命中数据:{}", rwbh, clue, dataType, resourceCode, message.toJSONString());
                         Map<String, Object> ctrlTaskInfo = ctrlTaskInfoList.get(0);
                         String rwmc = String.valueOf(ctrlTaskInfo.get("rwmc"));
                         Integer rwlx = (Integer) ctrlTaskInfo.get("rwlx");
@@ -224,7 +227,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                         String centerLat84 = loc.getString("lat");
                                         String radius = loc.getString("radius");
                                         boolean pointInCircleFlag = GeoUtils.isPointInCircle(Double.valueOf(lat84), Double.valueOf(lon84), Double.valueOf(centerLat84), Double.valueOf(centerLon84), Double.valueOf(radius));
-                                        log.info("预警点位是否出现在当前任务布控区域【{}】内判断结果:{}", areaName, pointInCircleFlag);
+                                        log.info("预警点位是否出现在【{}】布控区域内判断结果:{}", areaName, pointInCircleFlag);
                                         if(pointInCircleFlag && captureTimeDateObj.compareTo(bkkssj) >= 0 && captureTimeDateObj.compareTo(bkjssj) <= 0){
                                             StringBuilder yjxxsm = new StringBuilder();
                                             if(Constants.QYBH_TJS.equals(areaCode)){
@@ -244,7 +247,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                             Map<String, String> fxmjxxMap = ctrlDao.queryFxmjxxByQybh(areaCode);
                                             String edFxmjSfzh = fxmjxxMap.get("edFxmjSfzh");
                                             String sdFxmjSfzh = fxmjxxMap.get("sdFxmjSfzh");
-                                            warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, yjrySfzh, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, captureTimeDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), lon84, lat84, currentTime, currentTime, null, null, null, areaName, addressName, yjlx, Constants.YJLX_DRYJ, null, null, null, edFxmjSfzh, sdFxmjSfzh, sftsed, sftssd, zrmjsfzh});
+                                            warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, yjrySfzh, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, captureTimeDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), lon84, lat84, currentTime, currentTime, null, null, null, areaName, addressName, yjlx, Constants.YJLX_DRYJ, null, null, null, edFxmjSfzh, sdFxmjSfzh, sftsed, sftssd, zrmjsfzh, null});
                                             break;
                                         }
                                     } else {   // 布控区域是一般多边形
@@ -256,7 +259,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                             coordinates.add(new Coordinate(Double.valueOf(vertexLon84), Double.valueOf(vertexLat84)));
                                         }
                                         boolean pointInPolygonFlag = GeoUtils.isPointInPolygon(coordinates, new Coordinate(Double.valueOf(lon84), Double.valueOf(lat84)));
-                                        log.info("预警点位是否出现在当前任务布控区域【{}】内判断结果:{}", areaName, pointInPolygonFlag);
+                                        log.info("预警点位是否出现在【{}】布控区域内判断结果:{}", areaName, pointInPolygonFlag);
                                         if(pointInPolygonFlag && captureTimeDateObj.compareTo(bkkssj) >= 0 && captureTimeDateObj.compareTo(bkjssj) <= 0){
                                             StringBuilder yjxxsm = new StringBuilder();
                                             if(Constants.QYBH_TJS.equals(areaCode)){
@@ -276,7 +279,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                             Map<String, String> fxmjxxMap = ctrlDao.queryFxmjxxByQybh(areaCode);
                                             String edFxmjSfzh = fxmjxxMap.get("edFxmjSfzh");
                                             String sdFxmjSfzh = fxmjxxMap.get("sdFxmjSfzh");
-                                            warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, yjrySfzh, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, captureTimeDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), lon84, lat84, currentTime, currentTime, null, null, null, areaName, addressName, yjlx, Constants.YJLX_DRYJ, null, null, null, edFxmjSfzh, sdFxmjSfzh, sftsed, sftssd, zrmjsfzh});
+                                            warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, yjrySfzh, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, captureTimeDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), lon84, lat84, currentTime, currentTime, null, null, null, areaName, addressName, yjlx, Constants.YJLX_DRYJ, null, null, null, edFxmjSfzh, sdFxmjSfzh, sftsed, sftssd, zrmjsfzh, null});
                                             break;
                                         }
                                     }
@@ -290,7 +293,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                     yjxxsm.append(captureTimeStr);
                                     yjxxsm.append("出现在");
                                     yjxxsm.append(addressName);
-                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, yjrySfzh, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, captureTimeDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), lon84, lat84, currentTime, currentTime, null, null, null, Constants.QYMC_TJS, addressName, yjlx, Constants.YJLX_DRYJ, null, null, null, null, null, sftsed, sftssd, zrmjsfzh});
+                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, yjrySfzh, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, captureTimeDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), lon84, lat84, currentTime, currentTime, null, null, null, Constants.QYMC_TJS, addressName, yjlx, Constants.YJLX_DRYJ, null, null, null, null, null, sftsed, sftssd, zrmjsfzh, null});
                                 }
                             }
                         } else if(resCodeKy.equals(dataType)){   // =========== 客运数据
@@ -334,11 +337,11 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                             // 发车时间   ---样例:20200929061228
                             String depTimeDtime = oriField.getString("DEP_TIME_DTIME");
                             String fcsj = StringUtils.isNotBlank(depTimeDtime)? TimeTool.timeStampToDateString(TimeTool.dateStringToTimeStamp3(depTimeDtime)) : "暂无";
-                            /*String captureTimeKy = TimeTool.timeStampToDateString(Long.valueOf(oriField.getString("CAPTURE_TIME")));*/
                             for (Map<String, Object> modelInfoMap : modelInfoList) {
                                 String mxbh = (String) modelInfoMap.get("mxbh");
                                 if(Constants.MODEL_CODE_BSJJ_KYCC.equals(mxbh)){   // 单人预警-本市进京-客运乘车
-                                    if(StringUtils.isNotBlank(sfdxzqhdm) && StringUtils.isNotBlank(mddxzqhdm) && "12".equals(sfdxzqhdm.substring(0, 2)) && "11".equals(mddxzqhdm.substring(0, 2)) && dpsjDateObj.compareTo(bkkssj) >= 0 && dpsjDateObj.compareTo(bkjssj) <= 0){
+                                    if(StringUtils.isNotBlank(sfdxzqhdm) && StringUtils.isNotBlank(mddxzqhdm) && "12".equals(sfdxzqhdm.substring(0, 2)) && "11".equals(mddxzqhdm.substring(0, 2))
+                                            && dpsjDateObj.compareTo(bkkssj) >= 0 && dpsjDateObj.compareTo(bkjssj) <= 0){
                                         // 业务需求:始发地:天津,目的地:北京
                                         StringBuilder yjxxsm = new StringBuilder();
                                         yjxxsm.append("客运数据 - 旅客姓名:");
@@ -363,7 +366,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                         yjxxsm.append(zh);
                                         yjxxsm.append(",车牌号:");
                                         yjxxsm.append(cph);
-                                        warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, lkXm, lkSfzh, lkSjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, dpsjDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), null, null, currentTime, currentTime, null, null, null, null, null, yjlx, Constants.YJLX_DRYJ, seatNo, null, null, null, null, sftsed, sftssd, zrmjsfzh});
+                                        warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, lkXm, lkSfzh, lkSjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, dpsjDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), null, null, currentTime, currentTime, null, null, null, null, null, yjlx, Constants.YJLX_DRYJ, seatNo, null, null, null, null, sftsed, sftssd, zrmjsfzh, null});
                                         break;
                                     }
                                 }
@@ -437,12 +440,13 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                         yjxxsm.append(StringUtils.isNotBlank(ddjcmc)? ddjcmc : "暂无");
                                         yjxxsm.append(",到达时间:");
                                         yjxxsm.append(ddsj);
-                                        warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, lkzwm, zjhm, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, captureTimeMhdpDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), null, null, currentTime, currentTime, null, null, null, null, ddjcmc, yjlx, Constants.YJLX_DRYJ, null, null, null, null, null, sftsed, sftssd, zrmjsfzh});
+                                        warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, lkzwm, zjhm, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, captureTimeMhdpDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), null, null, currentTime, currentTime, null, null, null, null, ddjcmc, yjlx, Constants.YJLX_DRYJ, null, null, null, null, null, sftsed, sftssd, zrmjsfzh, null});
                                         break;
                                     }
                                 } else if (Constants.MODEL_CODE_KSGJ_MHDP.equals(mxbh)) {   // 单人预警-跨省轨迹-民航订票
                                     String mddShi = (String) modelInfoMap.get("mdd_shi");
-                                    if(StringUtils.isNotBlank(qfjcdm) && StringUtils.isNotBlank(ddjcmc) && "TSN".equals(qfjcdm.trim()) && ddjcmc.trim().contains(mddShi) && captureTimeMhdpDateObj.compareTo(bkkssj) >= 0 && captureTimeMhdpDateObj.compareTo(bkjssj) <= 0){
+                                    if(StringUtils.isNotBlank(qfjcdm) && StringUtils.isNotBlank(ddjcmc) && "TSN".equals(qfjcdm.trim()) && ddjcmc.trim().contains(mddShi)
+                                            && captureTimeMhdpDateObj.compareTo(bkkssj) >= 0 && captureTimeMhdpDateObj.compareTo(bkjssj) <= 0){
                                         // 业务需求:起飞机场代码为TSN(天津滨海国际机场),到达机场须属于当前任务所记录的目的地市
                                         StringBuilder yjxxsm = new StringBuilder();
                                         yjxxsm.append("民航订票 - 旅客中文名:");
@@ -461,7 +465,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                         yjxxsm.append(StringUtils.isNotBlank(ddjcmc)? ddjcmc : "暂无");
                                         yjxxsm.append(",到达时间:");
                                         yjxxsm.append(ddsj);
-                                        warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, lkzwm, zjhm, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, captureTimeMhdpDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), null, null, currentTime, currentTime, null, null, null, null, ddjcmc, yjlx, Constants.YJLX_DRYJ, null, null, null, null, null, sftsed, sftssd, zrmjsfzh});
+                                        warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, lkzwm, zjhm, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, captureTimeMhdpDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), null, null, currentTime, currentTime, null, null, null, null, ddjcmc, yjlx, Constants.YJLX_DRYJ, null, null, null, null, null, sftsed, sftssd, zrmjsfzh, null});
                                         break;
                                     }
                                 }
@@ -538,7 +542,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                                 String centerLat84 = loc.getString("lat");
                                                 String radius = loc.getString("radius");
                                                 boolean pointInCircleFlag = GeoUtils.isPointInCircle(Double.valueOf(lgwd), Double.valueOf(lgjd), Double.valueOf(centerLat84), Double.valueOf(centerLon84), Double.valueOf(radius));
-                                                log.info("预警点位是否出现在当前任务布控区域【{}】内判断结果:{}", qymc, pointInCircleFlag);
+                                                log.info("预警点位是否出现在【{}】布控区域内判断结果:{}", qymc, pointInCircleFlag);
                                                 if(pointInCircleFlag && rzsjDateObj.compareTo(bkkssj) >= 0 && rzsjDateObj.compareTo(bkjssj) <= 0){
                                                     String captureTimeJnryzs = TimeTool.timeStampToDateString(Long.valueOf(oriField.getString("CAPTURE_TIME")));
                                                     StringBuilder yjxxsm = new StringBuilder();
@@ -563,7 +567,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                                     Map<String, String> fxmjxxMap = ctrlDao.queryFxmjxxByQybh(areaCode);
                                                     String edFxmjSfzh = fxmjxxMap.get("edFxmjSfzh");
                                                     String sdFxmjSfzh = fxmjxxMap.get("sdFxmjSfzh");
-                                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, rzrXm, rzrSfzh, rzrLxdh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, rzsjDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), lgjd, lgwd, currentTime, currentTime, null, null, null, qymc, lgdz, yjlx, Constants.YJLX_DRYJ, null, null, null, edFxmjSfzh, sdFxmjSfzh, sftsed, sftssd, zrmjsfzh});
+                                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, rzrXm, rzrSfzh, rzrLxdh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, rzsjDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), lgjd, lgwd, currentTime, currentTime, null, null, null, qymc, lgdz, yjlx, Constants.YJLX_DRYJ, null, null, null, edFxmjSfzh, sdFxmjSfzh, sftsed, sftssd, zrmjsfzh, null});
                                                     break;
                                                 }
                                             } else {   // 多边形区域
@@ -575,7 +579,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                                     coordinates.add(new Coordinate(Double.valueOf(vertexLon84), Double.valueOf(vertexLat84)));
                                                 }
                                                 boolean pointInPolygonFlag = GeoUtils.isPointInPolygon(coordinates, new Coordinate(Double.valueOf(lgjd), Double.valueOf(lgwd)));
-                                                log.info("预警点位是否出现在当前任务布控区域【{}】内判断结果:{}", qymc, pointInPolygonFlag);
+                                                log.info("预警点位是否出现在【{}】布控区域内判断结果:{}", qymc, pointInPolygonFlag);
                                                 if(pointInPolygonFlag && rzsjDateObj.compareTo(bkkssj) >= 0 && rzsjDateObj.compareTo(bkjssj) <= 0){
                                                     String captureTimeJnryzs = TimeTool.timeStampToDateString(Long.valueOf(oriField.getString("CAPTURE_TIME")));
                                                     StringBuilder yjxxsm = new StringBuilder();
@@ -600,7 +604,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                                     Map<String, String> fxmjxxMap = ctrlDao.queryFxmjxxByQybh(areaCode);
                                                     String edFxmjSfzh = fxmjxxMap.get("edFxmjSfzh");
                                                     String sdFxmjSfzh = fxmjxxMap.get("sdFxmjSfzh");
-                                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, rzrXm, rzrSfzh, rzrLxdh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, rzsjDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), lgjd, lgwd, currentTime, currentTime, null, null, null, qymc, lgdz, yjlx, Constants.YJLX_DRYJ, null, null, null, edFxmjSfzh, sdFxmjSfzh, sftsed, sftssd, zrmjsfzh});
+                                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, rzrXm, rzrSfzh, rzrLxdh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, rzsjDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), lgjd, lgwd, currentTime, currentTime, null, null, null, qymc, lgdz, yjlx, Constants.YJLX_DRYJ, null, null, null, edFxmjSfzh, sdFxmjSfzh, sftsed, sftssd, zrmjsfzh, null});
                                                     break;
                                                 }
                                             }
@@ -665,7 +669,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                     yjxxsm.append(swjssj);
                                     yjxxsm.append(",营业场所名称:");
                                     yjxxsm.append(yycsmc);
-                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, swryXm, swrySfzh, swryLxdh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, swkssjDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), null, null, currentTime, currentTime, null, null, null, null, yycsmc, yjlx, Constants.YJLX_DRYJ, null, null, null, null, null, sftsed, sftssd, zrmjsfzh});
+                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, swryXm, swrySfzh, swryLxdh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, swkssjDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), null, null, currentTime, currentTime, null, null, null, null, yycsmc, yjlx, Constants.YJLX_DRYJ, null, null, null, null, null, sftsed, sftssd, zrmjsfzh, null});
                                     break;
                                 }
                             }
@@ -680,29 +684,22 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                             // 刷卡卡号
                             String khXxbh = oriField.getString("KH_XXBH");
                             String skkh = StringUtils.isNotBlank(khXxbh)? khXxbh : "暂无";
-                            // 刷卡时间   ---样例:20250329061228
+                            // 刷卡时间   ---样例:1711071336   ---已修改,20250610
                             String shkJdsj = oriField.getString("SHK_JDSJ");
-                            String sksj = StringUtils.isNotBlank(shkJdsj)? TimeTool.timeStampToDateString(TimeTool.dateStringToTimeStamp3(shkJdsj)) : "暂无";
-                            Date sksjDateObj = StringUtils.isNotBlank(shkJdsj)? new Date(TimeTool.dateStringToTimeStamp3(shkJdsj) * 1000) : null;
+                            String sksj = StringUtils.isNotBlank(shkJdsj)? TimeTool.timeStampToDateString(Long.valueOf(shkJdsj)) : "暂无";
+                            Date sksjDateObj = StringUtils.isNotBlank(shkJdsj)? new Date(Long.valueOf(shkJdsj) * 1000) : null;
                             // 车站名称
                             String czmMc = oriField.getString("CZM_MC");
                             String czmc = StringUtils.isNotBlank(czmMc)? czmMc : "暂无";
-                            // 分类名称
-                            /*String flMc = oriField.getString("FL_MC");
-                            String flmc = StringUtils.isNotBlank(flMc)? flMc : "暂无";*/
                             // 进出站标识名称
                             String jczBsMc = oriField.getString("JCZ_BS_MC");
                             String jczbsmc = StringUtils.isNotBlank(jczBsMc)? jczBsMc : "暂无";
-                            // 交易类型名称
-                            /*String jyLexMc = oriField.getString("JY_LEX_MC");
-                            String jylxmc = StringUtils.isNotBlank(jyLexMc)? jyLexMc : "暂无";*/
                             // 闸机号
-                            String zhjhJyqk = oriField.getString("ZHJH_JYQK");
-                            String zjh = StringUtils.isNotBlank(zhjhJyqk)? zhjhJyqk : "暂无";
+                            /*String zhjhJyqk = oriField.getString("ZHJH_JYQK");
+                            String zjh = StringUtils.isNotBlank(zhjhJyqk)? zhjhJyqk : "暂无";*/
                             // 地铁线路信息
                             String dtXlxx = oriField.getString("DTXLXX");
                             String dtxlxx = StringUtils.isNotBlank(dtXlxx)? dtXlxx : "暂无";
-                            String captureTimeDt = TimeTool.timeStampToDateString(Long.valueOf(oriField.getString("CAPTURE_TIME")));
 
                             for (Map<String, Object> modelInfoMap : modelInfoList) {
                                 String mxbh = (String) modelInfoMap.get("mxbh");
@@ -725,11 +722,11 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                     yjxxsm.append(czmc);
                                     yjxxsm.append(",进出站标识名称:");
                                     yjxxsm.append(jczbsmc);
-                                    yjxxsm.append(",闸机号:");
-                                    yjxxsm.append(zjh);
-                                    yjxxsm.append(",地铁线路信息:");
+                                    /*yjxxsm.append(",闸机号:");
+                                    yjxxsm.append(zjh);*/
+                                    yjxxsm.append(",线路编号:");
                                     yjxxsm.append(dtxlxx);
-                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, ckXm, ckSfzh, ckLxdh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, sksjDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), null, null, currentTime, currentTime, null, null, null, null, czmc, yjlx, Constants.YJLX_DRYJ, null, null, null, null, null, sftsed, sftssd, zrmjsfzh});
+                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, ckXm, ckSfzh, ckLxdh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, sksjDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), null, null, currentTime, currentTime, null, null, null, null, czmc, yjlx, Constants.YJLX_DRYJ, null, null, null, null, null, sftsed, sftssd, zrmjsfzh, null});
                                     break;
                                 }
                             }
@@ -791,7 +788,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                     yjxxsm.append(glsj);
                                     yjxxsm.append(",位置信息:");
                                     yjxxsm.append(StringUtils.isNotBlank(addressName)? addressName : "暂无");
-                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, yjrySfzh, yddh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, glsjDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), jd, wd, currentTime, currentTime, null, null, null, null, addressName, yjlx, Constants.YJLX_DRYJ, null, null, null, null, null, sftsed, sftssd, zrmjsfzh});
+                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, yjrySfzh, yddh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, glsjDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), jd, wd, currentTime, currentTime, null, null, null, null, addressName, yjlx, Constants.YJLX_DRYJ, null, null, null, null, null, sftsed, sftssd, zrmjsfzh, null});
                                     break;
                                 }
                             }
@@ -808,10 +805,10 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                             // 终端串号简要情况
                             String zhdChaJyqk = oriField.getString("ZHD_CHA_JYQK");
                             String zdchjyqk = StringUtils.isNotBlank(zhdChaJyqk)? zhdChaJyqk : "暂无";
-                            // 盘查时间   ---样例:20250329061228
+                            // 盘查时间   ---样例:1675616120   ---已修改,20250610
                             String pacJdsj = oriField.getString("PAC_JDSJ");
-                            String pcsj = StringUtils.isNotBlank(pacJdsj)? TimeTool.timeStampToDateString(TimeTool.dateStringToTimeStamp3(pacJdsj)) : "暂无";
-                            Date pcsjDateObj = StringUtils.isNotBlank(pacJdsj)? new Date(TimeTool.dateStringToTimeStamp3(pacJdsj) * 1000) : null;
+                            String pcsj = StringUtils.isNotBlank(pacJdsj)? TimeTool.timeStampToDateString(Long.valueOf(pacJdsj)) : "暂无";
+                            Date pcsjDateObj = StringUtils.isNotBlank(pacJdsj)? new Date(Long.valueOf(pacJdsj) * 1000) : null;
                             // 人员姓名
                             String xmSrc = oriField.getString("XM");
                             String xm = StringUtils.isNotBlank(xmSrc)? xmSrc : "暂无";
@@ -903,7 +900,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                     yjxxsm.append(ywlx);
                                     yjxxsm.append(",盘查地位置信息:");
                                     yjxxsm.append(StringUtils.isNotBlank(addressName)? addressName : "暂无");
-                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, xm, sfzh, lxdh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, pcsjDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), pcdJd, pcdWd, currentTime, currentTime, null, null, null, null, addressName, yjlx, Constants.YJLX_DRYJ, null, null, null, null, null, sftsed, sftssd, zrmjsfzh});
+                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, xm, sfzh, lxdh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, pcsjDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), pcdJd, pcdWd, currentTime, currentTime, null, null, null, null, addressName, yjlx, Constants.YJLX_DRYJ, null, null, null, null, null, sftsed, sftssd, zrmjsfzh, null});
                                     break;
                                 }
                             }
@@ -914,6 +911,9 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                             // 人员身份证号
                             String gmsfhm = oriField.getString("GMSFHM");
                             String sfzh = StringUtils.isNotBlank(gmsfhm)? gmsfhm : "暂无";
+                            // 性别
+                            String xbmzwz = oriField.getString("XBMZWZ");
+                            String xb = StringUtils.isNotBlank(xbmzwz)? xbmzwz : "暂无";
                             // 民族
                             String mzmzwz = oriField.getString("MZMZWZ");
                             String mz = StringUtils.isNotBlank(mzmzwz)? mzmzwz : "暂无";
@@ -938,12 +938,10 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                             // 检查站名称
                             String jiczMc = oriField.getString("JICZ_MC");
                             String jczmc = StringUtils.isNotBlank(jiczMc)? jiczMc : "暂无";
-                            // 检查时间   ---样例:20250329061228
+                            // 检查时间   ---样例:1675616120   ---已修改,20250610
                             String jicJdsj = oriField.getString("JIC_JDSJ");
-                            String jcsj = StringUtils.isNotBlank(jicJdsj)? TimeTool.timeStampToDateString(TimeTool.dateStringToTimeStamp3(jicJdsj)) : "暂无";
-                            Date jcsjDateObj = StringUtils.isNotBlank(jicJdsj)? new Date(TimeTool.dateStringToTimeStamp3(jicJdsj) * 1000) : null;
-
-                            String captureTimeZdjc = TimeTool.timeStampToDateString(Long.valueOf(oriField.getString("CAPTURE_TIME")));
+                            String jcsj = StringUtils.isNotBlank(jicJdsj)? TimeTool.timeStampToDateString(Long.valueOf(jicJdsj)) : "暂无";
+                            Date jcsjDateObj = StringUtils.isNotBlank(jicJdsj)? new Date(Long.valueOf(jicJdsj) * 1000) : null;
 
                             for (Map<String, Object> modelInfoMap : modelInfoList) {
                                 String mxbh = (String) modelInfoMap.get("mxbh");
@@ -957,6 +955,8 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                     yjxxsm.append(sfzh);
                                     yjxxsm.append(",人员照片:");
                                     yjxxsm.append(ryzpUrl);
+                                    yjxxsm.append(",性别:");
+                                    yjxxsm.append(xb);
                                     yjxxsm.append(",民族:");
                                     yjxxsm.append(mz);
                                     yjxxsm.append(",地址:");
@@ -973,7 +973,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                     yjxxsm.append(zjyxqsrq);
                                     yjxxsm.append(",证件有效终止日期:");
                                     yjxxsm.append(zjyxzzrq);
-                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, xm, sfzh, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, jcsjDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), null, null, currentTime, currentTime, null, null, null, null, jczmc, yjlx, Constants.YJLX_DRYJ, null, null, null, null, null, sftsed, sftssd, zrmjsfzh});
+                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, xm, sfzh, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, jcsjDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), null, null, currentTime, currentTime, null, null, null, null, jczmc, yjlx, Constants.YJLX_DRYJ, null, null, null, null, null, sftsed, sftssd, zrmjsfzh, null});
                                     break;
                                 }
                             }
@@ -1025,7 +1025,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                 if(Constants.MODEL_CODE_BSJJ_HCZDW.equals(mxbh)){   // 单人预警-本市进京-火车站电围
                                     // 业务需求:只保留命中点位在火车站区域内的数据
                                     boolean pointInCircleFlag = GeoUtils.isPointInCircle(Double.valueOf(jzdqWd), Double.valueOf(jzdqJd), Double.valueOf(centerPointLatTJZ), Double.valueOf(centerPointLonTJZ), Double.valueOf(radiusTJZ));
-                                    log.info("预警点位是否出现在当前任务布控区域【{}】内判断结果:{}", Constants.QYMC_TJZ, pointInCircleFlag);
+                                    log.info("预警点位是否出现在【{}】布控区域内判断结果:{}", Constants.QYMC_TJZ, pointInCircleFlag);
                                     if(pointInCircleFlag && captureTimeDzwlDateObj.compareTo(bkkssj) >= 0 && captureTimeDzwlDateObj.compareTo(bkjssj) <= 0){
                                         StringBuilder yjxxsm = new StringBuilder();
                                         yjxxsm.append("火车站电围 - 移动电话:");
@@ -1040,7 +1040,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                         Map<String, String> fxmjxxMap = ctrlDao.queryFxmjxxByQybh("TJZ");
                                         String edFxmjSfzh = fxmjxxMap.get("edFxmjSfzh");
                                         String sdFxmjSfzh = fxmjxxMap.get("sdFxmjSfzh");
-                                        warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, yjrySfzh, yddh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, captureTimeDzwlDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), jzdqJd, jzdqWd, currentTime, currentTime, null, null, null, Constants.QYMC_TJZ, addressName, yjlx, Constants.YJLX_DRYJ, null, null, null, edFxmjSfzh, sdFxmjSfzh, sftsed, sftssd, zrmjsfzh});
+                                        warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, yjrySfzh, yddh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, captureTimeDzwlDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), jzdqJd, jzdqWd, currentTime, currentTime, null, null, null, Constants.QYMC_TJZ, addressName, yjlx, Constants.YJLX_DRYJ, null, null, null, edFxmjSfzh, sdFxmjSfzh, sftsed, sftssd, zrmjsfzh, null});
                                         break;
                                     }
                                 }
@@ -1086,7 +1086,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                 if(Constants.MODEL_CODE_BSJJ_HCZRLGZ.equals(mxbh)){   // 单人预警-本市进京-火车站人脸感知
                                     // 业务需求:只保留命中点位在火车站区域内的数据
                                     boolean pointInCircleFlag = GeoUtils.isPointInCircle(Double.valueOf(wd), Double.valueOf(jd), Double.valueOf(centerPointLatTJZ), Double.valueOf(centerPointLonTJZ), Double.valueOf(radiusTJZ));
-                                    log.info("预警点位是否出现在当前任务布控区域【{}】内判断结果:{}", Constants.QYMC_TJZ, pointInCircleFlag);
+                                    log.info("预警点位是否出现在【{}】布控区域内判断结果:{}", Constants.QYMC_TJZ, pointInCircleFlag);
                                     if(pointInCircleFlag && gjsjDateObj.compareTo(bkkssj) >= 0 && gjsjDateObj.compareTo(bkjssj) <= 0){
                                         StringBuilder yjxxsm = new StringBuilder();
                                         yjxxsm.append("火车站人脸感知 - 抓拍机名称:");
@@ -1103,7 +1103,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                         Map<String, String> tjzFxmjxxMap = ctrlDao.queryFxmjxxByQybh("TJZ");
                                         String edFxmjSfzh = tjzFxmjxxMap.get("edFxmjSfzh");
                                         String sdFxmjSfzh = tjzFxmjxxMap.get("sdFxmjSfzh");
-                                        warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, gjryZjhm, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, gjsjDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), jd, wd, currentTime, currentTime, null, null, null, Constants.QYMC_TJZ, addressName, yjlx, Constants.YJLX_DRYJ, null, null, null, edFxmjSfzh, sdFxmjSfzh, sftsed, sftssd, zrmjsfzh});
+                                        warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, gjryZjhm, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, gjsjDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), jd, wd, currentTime, currentTime, null, null, null, Constants.QYMC_TJZ, addressName, yjlx, Constants.YJLX_DRYJ, null, null, null, edFxmjSfzh, sdFxmjSfzh, sftsed, sftssd, zrmjsfzh, null});
                                     }
                                 } else if (Constants.MODEL_CODE_BSMGQY_BSRL.equals(mxbh)) {   // 单人预警-本市敏感区域-本市人脸
                                     // 业务需求:只保留命中点位在当前任务记录的布控区域内的数据
@@ -1124,7 +1124,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                                 String centerLat84 = loc.getString("lat");
                                                 String radius = loc.getString("radius");
                                                 boolean pointInCircleFlag = GeoUtils.isPointInCircle(Double.valueOf(wd), Double.valueOf(jd), Double.valueOf(centerLat84), Double.valueOf(centerLon84), Double.valueOf(radius));
-                                                log.info("预警点位是否出现在当前任务布控区域【{}】内判断结果:{}", areaName, pointInCircleFlag);
+                                                log.info("预警点位是否出现在【{}】布控区域内判断结果:{}", areaName, pointInCircleFlag);
                                                 if(pointInCircleFlag && gjsjDateObj.compareTo(bkkssj) >= 0 && gjsjDateObj.compareTo(bkjssj) <= 0){
                                                     StringBuilder yjxxsm = new StringBuilder();
                                                     if(Constants.QYBH_TJS.equals(areaCode)){
@@ -1149,7 +1149,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                                     Map<String, String> fxmjxxMap = ctrlDao.queryFxmjxxByQybh(areaCode);
                                                     String edFxmjSfzh = fxmjxxMap.get("edFxmjSfzh");
                                                     String sdFxmjSfzh = fxmjxxMap.get("sdFxmjSfzh");
-                                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, gjryZjhm, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, gjsjDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), jd, wd, currentTime, currentTime, null, null, null, areaName, addressName, yjlx, Constants.YJLX_DRYJ, null, null, null, edFxmjSfzh, sdFxmjSfzh, sftsed, sftssd, zrmjsfzh});
+                                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, gjryZjhm, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, gjsjDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), jd, wd, currentTime, currentTime, null, null, null, areaName, addressName, yjlx, Constants.YJLX_DRYJ, null, null, null, edFxmjSfzh, sdFxmjSfzh, sftsed, sftssd, zrmjsfzh, null});
                                                     break;
                                                 }
                                             } else {
@@ -1161,7 +1161,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                                     coordinates.add(new Coordinate(Double.valueOf(vertexLon84), Double.valueOf(vertexLat84)));
                                                 }
                                                 boolean pointInPolygonFlag = GeoUtils.isPointInPolygon(coordinates, new Coordinate(Double.valueOf(jd), Double.valueOf(wd)));
-                                                log.info("预警点位是否出现在当前任务布控区域【{}】内判断结果:{}", areaName, pointInPolygonFlag);
+                                                log.info("预警点位是否出现在【{}】布控区域内判断结果:{}", areaName, pointInPolygonFlag);
                                                 if(pointInPolygonFlag && gjsjDateObj.compareTo(bkkssj) >= 0 && gjsjDateObj.compareTo(bkjssj) <= 0){
                                                     StringBuilder yjxxsm = new StringBuilder();
                                                     if(Constants.QYBH_TJS.equals(areaCode)){
@@ -1186,7 +1186,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                                     Map<String, String> fxmjxxMap = ctrlDao.queryFxmjxxByQybh(areaCode);
                                                     String edFxmjSfzh = fxmjxxMap.get("edFxmjSfzh");
                                                     String sdFxmjSfzh = fxmjxxMap.get("sdFxmjSfzh");
-                                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, gjryZjhm, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, gjsjDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), jd, wd, currentTime, currentTime, null, null, null, areaName, addressName, yjlx, Constants.YJLX_DRYJ, null, null, null, edFxmjSfzh, sdFxmjSfzh, sftsed, sftssd, zrmjsfzh});
+                                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, gjryZjhm, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, gjsjDateObj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, CommonUtil.getConfValueByKeyApp(dataType), jd, wd, currentTime, currentTime, null, null, null, areaName, addressName, yjlx, Constants.YJLX_DRYJ, null, null, null, edFxmjSfzh, sdFxmjSfzh, sftsed, sftssd, zrmjsfzh, null});
                                                     break;
                                                 }
                                             }

+ 63 - 3
src/main/java/com/hhwy/qbeqsjy/service/CronTaskService.java

@@ -1,6 +1,7 @@
 package com.hhwy.qbeqsjy.service;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.hhwy.qbeqsjy.common.CommonUtil;
 import com.hhwy.qbeqsjy.common.Constants;
@@ -8,14 +9,15 @@ import com.hhwy.qbeqsjy.common.HttpClient;
 import com.hhwy.qbeqsjy.dao.CtrlDao;
 import com.hhwy.qbeqsjy.domain.AjaxResult;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.sql.Timestamp;
+import java.util.*;
 
 
 /**
@@ -30,6 +32,12 @@ public class CronTaskService {
     private CtrlDao ctrlDao;
     @Resource
     private CtrlService ctrlService;
+    @Value("${clue.code.idCard}")
+    private String clueCodeIdCard;
+    @Value("${clue.code.phone}")
+    private String clueCodePhone;
+    @Value("${sjy.completed.jjyj.res.code}")
+    private String sjyCompletedJJYJResCode;
 
 
     /**
@@ -84,5 +92,57 @@ public class CronTaskService {
     }
 
 
+    /**
+     * 定时任务:处理聚集预警布控任务,间隔20分钟执行一次
+     */
+    @Scheduled(cron = "0 */20 * * * ?")
+    public void processJJYJ(){
+        Timestamp currentTimestamp = new Timestamp(System.currentTimeMillis());
+        List<Map<String, Object>> approveInfoList = ctrlDao.queryBkrwSpxxBySpzt(Constants.NUM_2);
+        // 数据域已开发完成的 聚集预警模型对应的烽火数据资源编码 列表
+        List<String> sjyCompletedJJYJResCodeList = Arrays.asList(sjyCompletedJJYJResCode.split(","));
+        int taskCount = 0;
+        if(approveInfoList != null && !approveInfoList.isEmpty()){
+            for (Map<String, Object> approveInfoMap : approveInfoList) {
+                String rwbh = (String) approveInfoMap.get("rwbh");
+                // 根据 任务编号 查询布控任务相关信息
+                List<Map<String, Object>> ctrlTaskInfoList = ctrlDao.queryCtrlTaskInfo(rwbh, currentTimestamp);
+                if(ctrlTaskInfoList != null && !ctrlTaskInfoList.isEmpty()){
+                    Map<String, Object> clueInfoMap = ctrlTaskInfoList.get(0);
+                    String bkzyxx = (String) clueInfoMap.get("bkzyxx");   // ["yhybk","991C1516","yhybk","134B102","134B102","yhybk","yhybk","yhybk"]
+                    String bkqyxx = (String) clueInfoMap.get("bkqyxx");
+                    JSONArray bkzyxxJSONArray = JSON.parseArray(bkzyxx);
+                    // 构造线索参数
+                    List<Map<String, Object>> clueList = new ArrayList<>();
+                    for (Map<String, Object> item : ctrlTaskInfoList) {
+                        String zjhm = (String) item.get("zjhm");
+                        Map<String, Object> sfzhClueMap = new HashMap<>();
+                        sfzhClueMap.put("clue", zjhm);
+                        sfzhClueMap.put("clueType", clueCodeIdCard);
+                        clueList.add(sfzhClueMap);
+                        String sjh = (String) item.get("sjh");
+                        Map<String, Object> sjhClueMap = new HashMap<>();
+                        sjhClueMap.put("clue", sjh);
+                        sjhClueMap.put("clueType", clueCodePhone);
+                        clueList.add(sjhClueMap);
+                    }
+                    // 构造 数据资源编码 参数
+                    List<String> resourceCodeList = new ArrayList<>();
+                    for (Object obj : bkzyxxJSONArray) {
+                        String resourceCode = (String) obj;
+                        if(sjyCompletedJJYJResCodeList.contains(resourceCode)){
+                            resourceCodeList.add(resourceCode);
+                        }
+                    }
+                    List<String> areaIdList = new ArrayList<>();
+                    ctrlService.processJJYJCtrl(rwbh, clueList, resourceCodeList, areaIdList);
+                    taskCount++;
+                }
+            }
+        }
+        log.info("============== 【定时任务】 处理数据域 聚集预警 布控任务 执行完成,已处理布控的任务数量:{}", taskCount);
+    }
+
+
 
 }

+ 31 - 1
src/main/java/com/hhwy/qbeqsjy/service/CtrlService.java

@@ -182,10 +182,13 @@ public class CtrlService {
                     String clueType = String.valueOf(clueMap.get("clueType"));
                     if(clueCodeIdCard.equals(clueType)){
                         sameTravelService.callFHUniQueryService(taskId, clue, resourceCode, CommonUtil.getConfValueByKeyApp(resourceCode));
+                    } else {
+                        // 其他同行类未实现的模型
+                        // ------ todo
                     }
                 }
             }
-            log.info("--- > 任务ID:{},线索集合同行类业务数据查询完成", taskId);
+            log.info("============== 任务ID:{},聚集预警 业务数据查询完成", taskId);
 
         });
         executorService.shutdown();
@@ -642,6 +645,33 @@ public class CtrlService {
     }
 
 
+    /**
+     * 保存布控任务审批信息
+     */
+    public boolean saveCtrlTaskApproveInfo(JSONObject approveInfo){
+        if(approveInfo != null && !approveInfo.isEmpty()){
+            String rwbh = approveInfo.getString("rwbh");
+            String spbh = approveInfo.getString("spbh");
+            String sprXm = approveInfo.getString("sprXm");
+            String sprJh = approveInfo.getString("sprJh");
+            String sprSfzh = approveInfo.getString("sprSfzh");
+            String sprDwbm = approveInfo.getString("sprDwbm");
+            String sprDwmc = approveInfo.getString("sprDwmc");
+            String sprBmbm = approveInfo.getString("sprBmbm");
+            String sprBmmc = approveInfo.getString("sprBmmc");
+            int spzt = approveInfo.getIntValue("spzt");
+            String spztmc = approveInfo.getString("spztmc");
+            Date spsj = approveInfo.getDate("spsj");
+            Date currentTime = new Date();
+            boolean optFlag = ctrlDao.insertCtrlTaskApproveInfo(new Object[]{rwbh, spbh, sprXm, sprJh, sprSfzh, sprDwbm, sprDwmc, sprBmbm, sprBmmc, spzt, spztmc, spsj, currentTime, currentTime});
+            if(optFlag){
+                log.info("布控任务审批信息保存成功 任务编号:{}", rwbh);
+            }
+        }
+        return false;
+    }
+
+
 
 
 }

+ 47 - 12
src/main/java/com/hhwy/qbeqsjy/service/SameTravelService.java

@@ -143,11 +143,37 @@ public class SameTravelService {
                 }
             }
         }
+
+//        log.info("{}去重前:======{}", resourceIdentifier, dataList.toString());
+        /*List<JSONObject> deduplicateDataList = new ArrayList<>();
+        // 根据JSONObject中指定key的value对集合中的元素去重
+        if(!dataList.isEmpty()){
+            Set<String> keys = null;
+            // 同火车
+            if(Constants.RES_IDER_THC.equals(resourceIdentifier)){
+                keys = new HashSet<>(Arrays.asList("ZJHM", "ZJHM_2", "CC", "FAC_RQ"));
+            }
+            // 同航班
+            else if (Constants.RES_IDER_THB.equals(resourceIdentifier)){
+                keys = new HashSet<>(Arrays.asList("FIRST_PER_ZJHM", "SECOND_PER_ZJHM", "GTDP_XXBH", "DD_CFA_RQ"));
+            }
+            // 同宾馆
+            else if (Constants.RES_IDER_TBG.equals(resourceIdentifier)){
+                keys = new HashSet<>(Arrays.asList("ZJHM", "ZJHM2", "RUZ_LVG_XXBH", "RUZ_JDSJ", "RUZ_FAJ_XXBH"));
+            }
+            // 同长途客运
+            else if (Constants.RES_IDER_TCTKY.equals(resourceIdentifier)){
+                keys = new HashSet<>(Arrays.asList("FIRST_PER_ZJHM", "SECOND_PER_ZJHM", "JP_CC", "FAC_JDSJ"));
+            }
+            deduplicateDataList = CommonUtil.deduplicateJsonList(dataList, keys);
+        }*/
+//        log.info("{}去重后:======{}", resourceIdentifier, deduplicateDataList.toString());
         log.info("【烽火 - 服务开放平台 # 同行类数据通查服务接口 响应数据解析完成】 命中数据量:{}", dataList.size());
-        // ========== 保存入库同行类业务查询结果数据(入库前需关联补全对应布控任务相关信息)
+
+        // ========== 保存入库同行类业务查询结果去重后的数据(入库前需关联补全对应布控任务相关信息)
         List<Object[]> warningInfoList = new ArrayList<>();
         int batchSaveNum = 0;
-        if(dataList.size() > 0){
+        if(!dataList.isEmpty()){
             // 预警状态默认为0(未读)
             Integer yjzt = 0;
             // 预警类型默认为2(聚集预警)
@@ -155,11 +181,12 @@ public class SameTravelService {
             // 预警时间
             Date currentTime = new Date();
             for (JSONObject item : dataList) {
-                // 根据数据资源编码构造对应预警信息说明
-                Map<String, Object> jjyjDataMap = buildYjxxsmByResourceCode(resourceCode, item);
                 // 根据任务编号、线索值、线索类型查询对应的布控任务相关信息(包含任务信息、数据资源信息、区域信息、线索信息)
                 List<Map<String, Object>> ctrlTaskInfoList = ctrlDao.queryCtrlTaskInfo(taskId, conditionFieldValue, clueCodeIdCard);
                 if(ctrlTaskInfoList.size() > 0){
+                    // 根据数据资源编码构造对应预警信息说明
+                    Map<String, Object> jjyjDataMap = buildYjxxsmByResourceCode(taskId, resourceCode, item);
+
                     Map<String, Object> ctrlTaskInfo = ctrlTaskInfoList.get(0);
                     String rwmc = String.valueOf(ctrlTaskInfo.get("rwmc"));
                     Integer rwlx = (Integer) ctrlTaskInfo.get("rwlx");
@@ -196,8 +223,10 @@ public class SameTravelService {
                     // 生成预警信息编号
                     String yjxxbh = String.valueOf(generator.nextId());
                     Date yjsj = (Date) jjyjDataMap.get("yjsj");
-                    if(yjsj != null && yjsj.compareTo(bkkssj) >= 0 && yjsj.compareTo(bkjssj) <= 0){
-                        warningInfoList.add(new Object[]{taskId, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, yjrySfzh, yjrySjh, jjyjDataMap.get("yjxxsm"), yjzt, Constants.YJZT_WD, yjsj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, resourceCode, jjyjDataMap.get("jd"), jjyjDataMap.get("wd"), currentTime, currentTime, jjyjDataMap.get("yjflryXm"), jjyjDataMap.get("yjglrySfzh"), jjyjDataMap.get("yjglrySjh"), jjyjDataMap.get("yjqymc"), jjyjDataMap.get("yjcsmc"), yjlx, Constants.YJLX_JJYJ, jjyjDataMap.get("yjryZwh"), jjyjDataMap.get("yjglryZwh"), null, null, null, sftsed, sftssd, zrmjsfzh});
+                    String jjyjDataUniqueKey = (String) jjyjDataMap.get("dataUniqueKey");
+                    // 当前预警数据所在时间处在任务布控时间段内 且 预警数据表中不存在重复数据
+                    if(yjsj != null && yjsj.compareTo(bkkssj) >= 0 && yjsj.compareTo(bkjssj) <= 0 && !ctrlDao.queryWarningInfoByParams(taskId, jjyjDataUniqueKey)){
+                        warningInfoList.add(new Object[]{taskId, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, yjrySfzh, yjrySjh, jjyjDataMap.get("yjxxsm"), yjzt, Constants.YJZT_WD, yjsj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, resourceCode, jjyjDataMap.get("jd"), jjyjDataMap.get("wd"), currentTime, currentTime, jjyjDataMap.get("yjflryXm"), jjyjDataMap.get("yjglrySfzh"), jjyjDataMap.get("yjglrySjh"), jjyjDataMap.get("yjqymc"), jjyjDataMap.get("yjcsmc"), yjlx, Constants.YJLX_JJYJ, jjyjDataMap.get("yjryZwh"), jjyjDataMap.get("yjglryZwh"), null, null, null, sftsed, sftssd, zrmjsfzh, jjyjDataUniqueKey});
                     }
                 }
             }
@@ -205,7 +234,7 @@ public class SameTravelService {
                 batchSaveNum = ctrlDao.batchInsertWarningInfo(warningInfoList);
             }
         }
-        log.info("【QBEQSJYCTRL - 聚集预警通用查询服务】 命中数据量:{},已入库数据量:{}", dataList.size(), batchSaveNum);
+        log.info("【QBEQSJYCTRL - 聚集预警通用查询服务】 命中数据量:{},符合条件并已入库数据量:{}", dataList.size(), batchSaveNum);
     }
 
 
@@ -249,12 +278,10 @@ public class SameTravelService {
 
 
     /**
-     * 根据 数据资源编码和对应JSON数据 构造对应预警信息说明
-     * @param resourceCode
-     * @param data
+     * 根据 任务编号、数据资源编码 和对应JSON数据 构造对应预警信息说明
      * @return
      */
-    public Map<String, Object> buildYjxxsmByResourceCode(String resourceCode, JSONObject data){
+    public Map<String, Object> buildYjxxsmByResourceCode(String taskId, String resourceCode, JSONObject data){
         Map<String, Object> jjyjDataMap = new HashMap<>();
         StringBuilder yjxxsm = new StringBuilder();
         // 同火车
@@ -300,6 +327,8 @@ public class SameTravelService {
             jjyjDataMap.put("yjsj", StringUtils.isNotBlank(facRq)? new Date(TimeTool.dateStringToTimeStamp2(facRq) * 1000) : null);
             jjyjDataMap.put("yjryZwh", zwh);
             jjyjDataMap.put("yjglryZwh", zwh2);
+            StringBuilder dataUniqueKeySb = new StringBuilder();
+            jjyjDataMap.put("dataUniqueKey", dataUniqueKeySb.append(taskId).append(",").append(zjhm).append(",").append(zjhm2).append(",").append(cc).append(",").append(facRq).toString());
         }
         // 同航班
         if (Constants.RES_CODE_THB.equals(resourceCode)){
@@ -313,7 +342,7 @@ public class SameTravelService {
             String ddjcmc = CommonUtil.getConfValueByKeyAirport(ddjcXxdm);
             String cfrq = data.getString("DD_CFA_RQ");
             String ddrq = data.getString("DD_DD_RQ");
-            /*String gtdpXxbh = data.getString("GTDP_XXBH");*/
+            String gtdpXxbh = data.getString("GTDP_XXBH");
             yjxxsm.append(xm);
             yjxxsm.append("(身份证号:");
             yjxxsm.append(zjhm);
@@ -333,6 +362,8 @@ public class SameTravelService {
             jjyjDataMap.put("yjglryXm", xm2);
             jjyjDataMap.put("yjglrySfzh", zjhm2);
             jjyjDataMap.put("yjsj", StringUtils.isNotBlank(cfrq)? new Date(TimeTool.dateStringToTimeStamp2(cfrq) * 1000) : null);
+            StringBuilder dataUniqueKeySb = new StringBuilder();
+            jjyjDataMap.put("dataUniqueKey", dataUniqueKeySb.append(taskId).append(",").append(zjhm).append(",").append(zjhm2).append(",").append(gtdpXxbh).append(",").append(cfrq).toString());
         }
         // 同宾馆
         if (Constants.RES_CODE_TBG.equals(resourceCode)) {
@@ -400,6 +431,8 @@ public class SameTravelService {
             jjyjDataMap.put("yjqymc", null);
             jjyjDataMap.put("yjcsmc", rzlgxxArr[0]);
             jjyjDataMap.put("yjsj", StringUtils.isNotBlank(rzsj)? new Date(TimeTool.dateStringToTimeStamp(rzsj) * 1000) : null);
+            StringBuilder dataUniqueKeySb = new StringBuilder();
+            jjyjDataMap.put("dataUniqueKey", dataUniqueKeySb.append(taskId).append(",").append(zjhm).append(",").append(zjhm2).append(",").append(rzlgXxbh).append(",").append(rzsj).append(",").append(rzfjh).toString());
         }
         // 同长途客运
         if (Constants.RES_CODE_TCTKY.equals(resourceCode)){
@@ -434,6 +467,8 @@ public class SameTravelService {
             jjyjDataMap.put("yjglryXm", xm2);
             jjyjDataMap.put("yjglrySfzh", zjhm2);
             jjyjDataMap.put("yjsj", StringUtils.isNotBlank(fcjdsj)? new Date(TimeTool.dateStringToTimeStamp2(fcjdsj) * 1000) : null);
+            StringBuilder dataUniqueKeySb = new StringBuilder();
+            jjyjDataMap.put("dataUniqueKey", dataUniqueKeySb.append(taskId).append(",").append(zjhm).append(",").append(zjhm2).append(",").append(cc).append(",").append(fcjdsj).toString());
         }
         // 同民航进港
         /*if (Constants.RES_CODE_TMHJG.equals(resourceCode)) {

+ 28 - 24
src/main/resources/application.properties

@@ -77,8 +77,8 @@ thread.num=5
 #stop.ctrl.txt.output.path=/home/QBEQSJY/stop_ctrl_error/
 #ctrl.txt.output.path=C:\\Users\\Administrator\\Desktop\\pfj\\qbeqsjy\\ctrl_error
 #stop.ctrl.txt.output.path=C:\\Users\\Administrator\\Desktop\\pfj\\qbeqsjy\\stop_ctrl_error
-# \u9884\u8B66\u6570\u636E\u67E5\u8BE2\u4E00\u6B21\u6700\u5927\u8FD4\u56DE\u6570\u636E\u6761\u6570\uFF0C\u9ED8\u8BA41000\u6761
-query.max.count=1000
+# \u9884\u8B66\u6570\u636E\u67E5\u8BE2\u4E00\u6B21\u6700\u5927\u8FD4\u56DE\u6570\u636E\u6761\u6570\uFF0C\u9ED8\u8BA410000\u6761
+query.max.count=10000
 
 
 # \u652F\u6301\u5E03\u63A7\u7684\u6570\u636E\u8D44\u6E90\u5217\u8868
@@ -87,50 +87,50 @@ query.max.count=1000
 res.code.auth=AUTH
 # \u5BA2\u8FD0\u4E58\u8F66
 #res.code.ky=991C1516
-res.code.ky=KYCC
+res.code.ky=ODS_SOC_CAR_PASTRA_DATA
 # \u6C11\u822A\u8BA2\u7968
 #res.code.mhdp=991C1233
-res.code.mhdp=MHDP
+res.code.mhdp=ODS_SOC_CIV_AVIA_RESE
 # \u5883\u5185\u4EBA\u5458\u4F4F\u5BBF
 #res.code.jnryzs=991C1223
-res.code.jnryzs=JNRYZS
+res.code.jnryzs=ODS_POL_SEC_INBORD_PERS_LODG
 # \u7F51\u5427\u4E0A\u7F51
 #res.code.wbsw=991C1071
-res.code.wbsw=WBSW
+res.code.wbsw=ODS_POL_SEC_NETBAR_INTPER_INFO
 # \u5730\u94C1\u4EA4\u6613
 #res.code.dt=01C1200002598
-res.code.dt=DTJY
+res.code.dt=ODS_T_GA_GJFJ_GDJY_DTSM
 # \u624B\u673A\u70ED\u70B9
 #res.code.sjrd=01C1200002597
-res.code.sjrd=SJRD
+res.code.sjrd=ODS_T_GA_JSZC_SJRDJWDSJH
 # \u5DE1\u903B\u76D8\u67E5\uFF08\u4EBA\u5458\uFF09
 #res.code.xlpc=01C1200001942
-res.code.xlpc=XLPC_RY
+res.code.xlpc=ODS_T_GA_KX_XLPCRY
 # \u7AD9\u70B9\u68C0\u67E5\uFF08\u4EBA\u5458\uFF09
 #res.code.zdjc=01C1200002316
-res.code.zdjc=ZDJC_RY
+res.code.zdjc=ODS_T_GA_ZHZX_XKJCZJCRY
 # \u7535\u5B50\u56F4\u680F\uFF08\u706B\u8F66\u7AD9\uFF09
 #res.code.dzwl=991C1356
-res.code.dzwl=DZWL_HCZ
+res.code.dzwl=ODS_POL_SEC_ELEC_FENCE
 # \u4EBA\u8138\u611F\u77E5\uFF08\u706B\u8F66\u7AD9\uFF09
 #res.code.rlgz=991C2304
-res.code.rlgz=RLGZ_HCZ
+res.code.rlgz=ODS_POL_SEC_FACE_EARWARN
 # \u8D2D\u4E70\u6563\u88C5\u6CB9
 #res.code.gmszy=991C3201000512
 
 
 # \u6570\u636E\u8D44\u6E90\u7C7B\u578B(U_DATA_TYPE) \u4E0E \u6570\u636E\u8D44\u6E90\u7F16\u7801 \u5B57\u5178
 AUTH=134B102
-KYCC=991C1516
-MHDP=991C1233
-JNRYZS=991C1223
-WBSW=991C1071
-DTJY=01C1200002598
-SJRD=01C1200002597
-XLPC_RY=01C1200001942
-ZDJC_RY=01C1200002316
-DZWL_HCZ=991C1356
-RLGZ_HCZ=991C2304
+ODS_SOC_CAR_PASTRA_DATA=991C1516
+ODS_SOC_CIV_AVIA_RESE=991C1233
+ODS_POL_SEC_INBORD_PERS_LODG=991C1223
+ODS_POL_SEC_NETBAR_INTPER_INFO=991C1071
+ODS_T_GA_GJFJ_GDJY_DTSM=01C1200002598
+ODS_T_GA_JSZC_SJRDJWDSJH=01C1200002597
+ODS_T_GA_KX_XLPCRY=01C1200001942
+ODS_T_GA_ZHZX_XKJCZJCRY=01C1200002316
+ODS_POL_SEC_ELEC_FENCE=991C1356
+ODS_POL_SEC_FACE_EARWARN=991C2304
 
 
 # \u5929\u6D25\u7AD9\u5706\u5F62\u533A\u57DF\u5706\u5FC3\u70B9\u7ECF\u7EAC\u5EA6\uFF0884\u5750\u6807\u7CFB\uFF09
@@ -154,8 +154,12 @@ R-120000000000-00004530=FIRST_PER_ZJHM,FIRST_PER_NAME,SECOND_PER_ZJHM,SECOND_PER
 #R-120000000000-00004523=ZJHM,LVK_XM,LVK_XM_2,ZJHM_2,HBA_SXH,HBA_RQ,QFHZ_SZ_XXDM02,QFHZ_MC,DDHZ_SZ_XXDM02,DDHZ_MC,LG_JDSJ,JIG_JDSJ,DQHZ_ZWH,DQHZ_ZWH_2,FLAG_GX
 # \u540C\u6C11\u822A\u79BB\u6E2F
 #R-120000000000-00004524=ZJHM,LVK_XM,LVK_XM_2,ZJHM_2,HBA_SXH,HBA_RQ,QFHZ_SZ_XXDM02,QFHZ_MC,DDHZ_SZ_XXDM02,DDHZ_MC,LG_JDSJ,JIG_JDSJ,DQHZ_ZWH,DQHZ_ZWH_2,FLAG_GX
-# \u540C\u884C\u7C7B\u6570\u636E\u67E5\u8BE2\u4E00\u6B21\u6700\u5927\u8FD4\u56DE\u6570\u636E\u6761\u6570\uFF0C\u9ED8\u8BA45000\u6761
-tx.query.max.count=5000
+# \u540C\u884C\u7C7B\u6570\u636E\u67E5\u8BE2\u4E00\u6B21\u6700\u5927\u8FD4\u56DE\u6570\u636E\u6761\u6570\uFF0C\u9ED8\u8BA41000\u6761
+tx.query.max.count=1000
+
+
+# \u6570\u636E\u57DF\u5DF2\u5F00\u53D1\u5B8C\u6210\u7684 \u805A\u96C6\u9884\u8B66(\u7528\u6237\u57DF)\u6A21\u578B\u7F16\u53F7 \u5BF9\u5E94\u7684\u70FD\u706B\u6570\u636E\u8D44\u6E90\u7F16\u7801\u5217\u8868
+sjy.completed.jjyj.res.code=01A1201001039,01A1200002658,01A1200002660,01A1201001040
 
 
 # \uFF08\u60C5\u62A5\u4E8C\u671F\uFF09\u7528\u6237\u57DF\u6A21\u578B\u7F16\u53F7\u4E0E\u70FD\u706B\u76D8\u53E4\u5E73\u53F0\u6570\u636E\u8D44\u6E90\u7F16\u7801\u5B57\u5178