瀏覽代碼

【情报二期】数据域服务 - 新增预警数据消费处理逻辑

fangtasyj 1 月之前
父節點
當前提交
fba0d4631d

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

@@ -94,12 +94,12 @@ public class CtrlDao {
 
     /**
      * 批量插入布控任务相关信息(冗余存储)
-     * 同步用户域布控任务原始信息,为后期预警结果数据作关联使用(烽火布控服务返回的预警结果数据不包含任务信息),关联后的结果经数据域代理接口同步至用户域业务库,供用户域界面查询
+     * 同步用户域布控任务原始信息,为后期预警结果数据作关联使用(烽火布控服务返回的预警结果数据不包含任务信息),关联后的结果经数据域接口同步至用户域业务库,供用户域界面查询
      * @param ctrlTaskInfoList
      * @return
      */
     public boolean batchInsertCtrlTaskInfo(List<Object[]> ctrlTaskInfoList){
-        String sql = "insert into t_ctrl_task_info (rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, sqr_xm, sqr_sfzh, sqr_jh, sqr_dwbm, sqr_dwmc, bkzyxx, bkqyxx, ryxm, zjlxdm, zjhm, hjd, sjh, yzzt, xszt, lxdh, rylb, rybq, gkjb, gkjbmc, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, zrbmbm, cjsj) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
+        String sql = "insert into t_ctrl_task_info (rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, sqr_xm, sqr_sfzh, sqr_jh, sqr_dwbm, sqr_dwmc, bkkssj, bkjssj, bkzyxx, bkqyxx, ryxm, zjlxdm, zjhm, hjd, sjh, yzzt, xszt, lxdh, rylb, rybq, gkjb, gkjbmc, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, zrbmbm, cjsj) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
         try {
             int[] insertRows = gaussdbJdbcTemplate.batchUpdate(sql, ctrlTaskInfoList);
             return insertRows.length == ctrlTaskInfoList.size();
@@ -137,7 +137,7 @@ public class CtrlDao {
      */
     public List<Map<String, Object>> queryCtrlTaskInfo(String taskId, String clue, String clueType){
         List<Map<String, Object>> ctrlTaskInfoList = new ArrayList<>();
-        StringBuilder sql = new StringBuilder("select rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, sqr_xm, sqr_sfzh, sqr_jh, sqr_dwbm, sqr_dwmc, bkzyxx, bkqyxx, ryxm, zjlxdm, zjhm, hjd, sjh, yzzt, xszt, lxdh, rylb, rybq, gkjb, gkjbmc, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, zrbmbm from t_ctrl_task_info where rwbh = '");
+        StringBuilder sql = new StringBuilder("select rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, sqr_xm, sqr_sfzh, sqr_jh, sqr_dwbm, sqr_dwmc, bkkssj, bkjssj, bkzyxx, bkqyxx, ryxm, zjlxdm, zjhm, hjd, sjh, yzzt, xszt, lxdh, rylb, rybq, gkjb, gkjbmc, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, zrbmbm from t_ctrl_task_info where rwbh = '");
         sql.append(taskId);
         sql.append("'");
         if(clueCodePhone.equals(clueType)){

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

@@ -18,6 +18,8 @@ import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.io.IOException;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
@@ -71,8 +73,6 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
     private String resCodeRlgz;
     @Value("${res.code.gmszy}")
     private String resCodeGmszy;
-
-
     @Resource
     private CtrlDao ctrlDao;
     private SnowflakeIdGenerator generator = new SnowflakeIdGenerator(1);
@@ -160,6 +160,8 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                         String sqrJh = String.valueOf(ctrlTaskInfo.get("sqr_jh"));
                         String sqrDwbm = String.valueOf(ctrlTaskInfo.get("sqr_dwbm"));
                         String sqrDwmc = String.valueOf(ctrlTaskInfo.get("sqr_dwmc"));
+                        Date bkkssj = (Date) ctrlTaskInfo.get("bkkssj");
+                        Date bkjssj = (Date) ctrlTaskInfo.get("bkjssj");
                         String bkqyxx = String.valueOf(ctrlTaskInfo.get("bkqyxx"));
                         String yjryXm = String.valueOf(ctrlTaskInfo.get("ryxm"));
                         String yjrySfzh = String.valueOf(ctrlTaskInfo.get("zjhm"));
@@ -191,7 +193,9 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                             JSONObject rspJSONObj = JSON.parseObject(rspStr);
                             // 命中点位地址名称
                             String addressName = rspJSONObj.getString("fullAddress");
+                            // 预警时间
                             String captureTime = TimeTool.timeStampToDateString(Long.valueOf(oriField.getString("CAPTURE_TIME")));
+                            Date captureTimeDateObj = new Date(Long.valueOf(oriField.getString("CAPTURE_TIME")) * 1000);
                             yjxxsm.append(yjryXm);
                             yjxxsm.append("于");
                             yjxxsm.append(captureTime);
@@ -216,10 +220,10 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                         String centerLon84 = loc.getString("lon");
                                         String centerLat84 = loc.getString("lat");
                                         String radius = loc.getString("radius");
-                                        if(GeoUtils.isPointInCircle(Double.valueOf(lat84), Double.valueOf(lon84), Double.valueOf(centerLat84), Double.valueOf(centerLon84), Double.valueOf(radius))){
+                                        if(GeoUtils.isPointInCircle(Double.valueOf(lat84), Double.valueOf(lon84), Double.valueOf(centerLat84), Double.valueOf(centerLon84), Double.valueOf(radius)) && captureTimeDateObj.compareTo(bkkssj) >= 0 && captureTimeDateObj.compareTo(bkjssj) <= 0){
                                             yjxxsm.append(",所在区域:");
                                             yjxxsm.append(areaName);
-                                            warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, yjrySfzh, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, currentTime, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, resourceCode, lon84, lat84, currentTime, currentTime, null, null, null, areaName, addressName, yjlx, Constants.YJLX_DRYJ});
+                                            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, resourceCode, lon84, lat84, currentTime, currentTime, null, null, null, areaName, addressName, yjlx, Constants.YJLX_DRYJ});
                                             yjxxsm.setLength(0);
                                             break;
                                         }
@@ -231,18 +235,20 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                             String vertexLat84 = loc.getString("lat");
                                             coordinates.add(new Coordinate(Double.valueOf(vertexLon84), Double.valueOf(vertexLat84)));
                                         }
-                                        if(GeoUtils.isPointInPolygon(coordinates, new Coordinate(Double.valueOf(lon84), Double.valueOf(lat84)))){
+                                        if(GeoUtils.isPointInPolygon(coordinates, new Coordinate(Double.valueOf(lon84), Double.valueOf(lat84)))  && captureTimeDateObj.compareTo(bkkssj) >= 0 && captureTimeDateObj.compareTo(bkjssj) <= 0){
                                             yjxxsm.append(",所在区域:");
                                             yjxxsm.append(areaName);
-                                            warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, yjrySfzh, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, currentTime, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, resourceCode, lon84, lat84, currentTime, currentTime, null, null, null, areaName, addressName, yjlx, Constants.YJLX_DRYJ});
+                                            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, resourceCode, lon84, lat84, currentTime, currentTime, null, null, null, areaName, addressName, yjlx, Constants.YJLX_DRYJ});
                                             yjxxsm.setLength(0);
                                             break;
                                         }
                                     }
                                 }
-                            } else {   // 如果不存在布控区域信息,则默认布控区域范围为全天津市,预警数据直接入库
-                                warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, yjrySfzh, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, currentTime, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, resourceCode, lon84, lat84, currentTime, currentTime, null, null, null, Constants.QYMC_TJS, addressName, yjlx, Constants.YJLX_DRYJ});
-                                yjxxsm.setLength(0);
+                            } else {   // 如果不存在布控区域,则默认布控区域范围为全天津市,预警数据直接入库
+                                if(captureTimeDateObj.compareTo(bkkssj) >= 0 && captureTimeDateObj.compareTo(bkjssj) <= 0){
+                                    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, resourceCode, lon84, lat84, currentTime, currentTime, null, null, null, Constants.QYMC_TJS, addressName, yjlx, Constants.YJLX_DRYJ});
+                                    yjxxsm.setLength(0);
+                                }
                             }
                         } else if(resCodeKy.equals(resourceCode)){   // =========== 客运数据
                             // 票号
@@ -285,6 +291,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                             // 订票时间   ---样例:20200929061228
                             String booticTime = oriField.getString("BOOTIC_TIME");
                             String dpsj = StringUtils.isNotBlank(booticTime)? TimeTool.timeStampToDateString(TimeTool.dateStringToTimeStamp3(booticTime)) : "暂无";
+                            Date dpsjDateObj = StringUtils.isNotBlank(booticTime)? new Date(TimeTool.dateStringToTimeStamp3(booticTime) * 1000) : null;
 //                            String dpfs = oriField.getString("BOOTIC_METH");              // 订票方式
                             // 发车时间   ---样例:20200929061228
                             String depTimeDtime = oriField.getString("DEP_TIME_DTIME");
@@ -320,9 +327,9 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                             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))){
+                                    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){
                                         // 业务需求:始发地:天津,目的地:北京
-                                        warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, lkXm, lkSfzh, lkSjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, captureTimeKy, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, resourceCode, null, null, currentTime, currentTime, null, null, null, null, null, yjlx, Constants.YJLX_DRYJ});
+                                        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, resourceCode, null, null, currentTime, currentTime, null, null, null, null, null, yjlx, Constants.YJLX_DRYJ});
                                         yjxxsm.setLength(0);
                                         break;
                                     }
@@ -377,6 +384,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                             // 截获时间   ---样例:20200929061228
                             String captureTime = oriField.getString("CAPTURE_TIME");
                             String captureTimeMhdp = StringUtils.isNotBlank(captureTime)? TimeTool.timeStampToDateString(TimeTool.dateStringToTimeStamp3(captureTime)) : "暂无";
+                            Date captureTimeMhdpDateObj = StringUtils.isNotBlank(captureTime)? new Date(TimeTool.dateStringToTimeStamp3(captureTime) * 1000) : null;
                             yjxxsm.append("民航订票 - 订座记录编号:");
                             yjxxsm.append(dzjlbh);
                             yjxxsm.append(",旅客中文名:");
@@ -400,17 +408,17 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                             for (Map<String, Object> modelInfoMap : modelInfoList) {
                                 String mxbh = (String) modelInfoMap.get("mxbh");
                                 if(Constants.MODEL_CODE_WSLJ_MHDP.equals(mxbh)){   // 单人预警-外省来津-民航订票
-                                    if(StringUtils.isNotBlank(ddjcdm) && "TSN".equals(ddjcdm.trim())){
+                                    if(StringUtils.isNotBlank(ddjcdm) && "TSN".equals(ddjcdm.trim()) && captureTimeMhdpDateObj.compareTo(bkkssj) >= 0 && captureTimeMhdpDateObj.compareTo(bkjssj) <= 0){
                                         // 业务需求:到达机场代码为TSN(天津滨海国际机场)
-                                        warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, lkzwm, zjhm, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, captureTimeMhdp, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, resourceCode, null, null, currentTime, currentTime, null, null, null, null, ddjcmc, yjlx, Constants.YJLX_DRYJ});
+                                        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, resourceCode, null, null, currentTime, currentTime, null, null, null, null, ddjcmc, yjlx, Constants.YJLX_DRYJ});
                                         yjxxsm.setLength(0);
                                         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)){
+                                    if(StringUtils.isNotBlank(qfjcdm) && StringUtils.isNotBlank(ddjcmc) && "TSN".equals(qfjcdm.trim()) && ddjcmc.trim().contains(mddShi) && captureTimeMhdpDateObj.compareTo(bkkssj) >= 0 && captureTimeMhdpDateObj.compareTo(bkjssj) <= 0){
                                         // 业务需求:起飞机场代码为TSN(天津滨海国际机场),到达机场须属于当前任务所记录的目的地市
-                                        warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, lkzwm, zjhm, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, captureTimeMhdp, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, resourceCode, null, null, currentTime, currentTime, null, null, null, null, ddjcmc, yjlx, Constants.YJLX_DRYJ});
+                                        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, resourceCode, null, null, currentTime, currentTime, null, null, null, null, ddjcmc, yjlx, Constants.YJLX_DRYJ});
                                         yjxxsm.setLength(0);
                                         break;
                                     }
@@ -447,6 +455,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                             // 入住时间   ---样例:20250329061228
                             String admiTime = oriField.getString("ADMI_TIME");
                             String rzsj = StringUtils.isNotBlank(admiTime)? TimeTool.timeStampToDateString(TimeTool.dateStringToTimeStamp3(admiTime)) : "暂无";
+                            Date rzsjDateObj = StringUtils.isNotBlank(admiTime)? new Date(TimeTool.dateStringToTimeStamp3(admiTime) * 1000) : null;
                             // 退房时间   ---样例:20250329061228
                             String choutTime = oriField.getString("CHOUT_TIME");
                             String tfsj = StringUtils.isNotBlank(choutTime)? TimeTool.timeStampToDateString(TimeTool.dateStringToTimeStamp3(choutTime)) : "暂无";
@@ -505,8 +514,8 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                                 String centerLon84 = loc.getString("lon");
                                                 String centerLat84 = loc.getString("lat");
                                                 String radius = loc.getString("radius");
-                                                if(GeoUtils.isPointInCircle(Double.valueOf(lgwd), Double.valueOf(lgjd), Double.valueOf(centerLat84), Double.valueOf(centerLon84), Double.valueOf(radius))){
-                                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, rzrXm, rzrSfzh, rzrLxdh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, captureTimeJnryzs, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, resourceCode, lgjd, lgwd, currentTime, currentTime, null, null, null, qymc, lgdz, yjlx, Constants.YJLX_DRYJ});
+                                                if(GeoUtils.isPointInCircle(Double.valueOf(lgwd), Double.valueOf(lgjd), Double.valueOf(centerLat84), Double.valueOf(centerLon84), Double.valueOf(radius)) && rzsjDateObj.compareTo(bkkssj) >= 0 && rzsjDateObj.compareTo(bkjssj) <= 0){
+                                                    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, resourceCode, lgjd, lgwd, currentTime, currentTime, null, null, null, qymc, lgdz, yjlx, Constants.YJLX_DRYJ});
                                                     yjxxsm.setLength(0);
                                                     break;
                                                 }
@@ -518,8 +527,8 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                                     String vertexLat84 = loc.getString("lat");
                                                     coordinates.add(new Coordinate(Double.valueOf(vertexLon84), Double.valueOf(vertexLat84)));
                                                 }
-                                                if(GeoUtils.isPointInPolygon(coordinates, new Coordinate(Double.valueOf(lgjd), Double.valueOf(lgwd)))){
-                                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, rzrXm, rzrSfzh, rzrLxdh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, captureTimeJnryzs, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, resourceCode, lgjd, lgwd, currentTime, currentTime, null, null, null, qymc, lgdz, yjlx, Constants.YJLX_DRYJ});
+                                                if(GeoUtils.isPointInPolygon(coordinates, new Coordinate(Double.valueOf(lgjd), Double.valueOf(lgwd))) && rzsjDateObj.compareTo(bkkssj) >= 0 && rzsjDateObj.compareTo(bkjssj) <= 0){
+                                                    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, resourceCode, lgjd, lgwd, currentTime, currentTime, null, null, null, qymc, lgdz, yjlx, Constants.YJLX_DRYJ});
                                                     yjxxsm.setLength(0);
                                                     break;
                                                 }
@@ -546,6 +555,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                             // 上网开始时间   ---样例:20250329061228
                             String intenetStartTime = oriField.getString("INTENET_START_TIME");
                             String swkssj = StringUtils.isNotBlank(intenetStartTime)? TimeTool.timeStampToDateString(TimeTool.dateStringToTimeStamp3(intenetStartTime)) : "暂无";
+                            Date swkssjDateObj = StringUtils.isNotBlank(intenetStartTime)? new Date(TimeTool.dateStringToTimeStamp3(intenetStartTime) * 1000) : null;
                             // 上网结束时间   ---样例:20250329061228
                             String intenetEndTime = oriField.getString("INTENET_END_TIME");
                             String swjssj = StringUtils.isNotBlank(intenetEndTime)? TimeTool.timeStampToDateString(TimeTool.dateStringToTimeStamp3(intenetEndTime)) : "暂无";
@@ -581,10 +591,11 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                             yjxxsm.append(yycsmc);
                             for (Map<String, Object> modelInfoMap : modelInfoList) {
                                 String mxbh = (String) modelInfoMap.get("mxbh");
-                                if(Constants.MODEL_CODE_BSMGQY_WBSW.equals(mxbh)){   // 单人预警-本市敏感区域-网吧上网
+                                // 单人预警-本市敏感区域-网吧上网
+                                if(Constants.MODEL_CODE_BSMGQY_WBSW.equals(mxbh) && swkssjDateObj.compareTo(bkkssj) >= 0 && swkssjDateObj.compareTo(bkjssj) <= 0){
                                     // 表中无经、纬度数据,无法判断是否出现在布控区域
                                     // 暂时不做过滤处理
-                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, swryXm, swrySfzh, swryLxdh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, captureTimeWbsw, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, resourceCode, null, null, currentTime, currentTime, null, null, null, null, yycsmc, yjlx, Constants.YJLX_DRYJ});
+                                    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, resourceCode, null, null, currentTime, currentTime, null, null, null, null, yycsmc, yjlx, Constants.YJLX_DRYJ});
                                     yjxxsm.setLength(0);
                                     break;
                                 }
@@ -604,6 +615,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                             // 刷卡时间   ---样例:20250329061228
                             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 czmMc = oriField.getString("CZM_MC");
                             String czmc = StringUtils.isNotBlank(czmMc)? czmMc : "暂无";
@@ -647,7 +659,8 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                             yjxxsm.append(dtxlxx);
                             for (Map<String, Object> modelInfoMap : modelInfoList) {
                                 String mxbh = (String) modelInfoMap.get("mxbh");
-                                if(Constants.MODEL_CODE_BSMGQY_DT.equals(mxbh)){   // 单人预警-本市敏感区域-地铁
+                                // 单人预警-本市敏感区域-地铁
+                                if(Constants.MODEL_CODE_BSMGQY_DT.equals(mxbh) && sksjDateObj.compareTo(bkkssj) >= 0 && sksjDateObj.compareTo(bkjssj) <= 0){
                                     // 表中无经、纬度数据,无法判断是否出现在布控区域
                                     // 暂时不做过滤处理
                                     warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, ckXm, ckSfzh, ckLxdh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, captureTimeDt, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, resourceCode, null, null, currentTime, currentTime, null, null, null, null, czmc, yjlx, Constants.YJLX_DRYJ});
@@ -683,7 +696,10 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                             // 纬度
                             String wd = oriField.getString("DQWD");
                             // 关联时间   ---样例:1745476573
-                            String glsj = TimeTool.timeStampToDateString(Long.valueOf(oriField.getString("JDSJ")));
+                            String jdsj = oriField.getString("JDSJ");
+                            String glsj = StringUtils.isNotBlank(jdsj)? TimeTool.timeStampToDateString(Long.valueOf(jdsj)) : "暂无";
+                            Date glsjDateObj = StringUtils.isNotBlank(jdsj)? new Date(Long.valueOf(jdsj) * 1000) : null;
+
                             String captureTimeSjrd = TimeTool.timeStampToDateString(Long.valueOf(oriField.getString("CAPTURE_TIME")));
                             String addressName = null;
                             if(StringUtils.isNotBlank(wd) && StringUtils.isNotBlank(jd)){
@@ -712,9 +728,10 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                             yjxxsm.append(StringUtils.isNotBlank(addressName)? addressName : "暂无");
                             for (Map<String, Object> modelInfoMap : modelInfoList) {
                                 String mxbh = (String) modelInfoMap.get("mxbh");
-                                if(Constants.MODEL_CODE_BSJJ_SJRD.equals(mxbh)){   // 单人预警-本市进京-手机热点
+                                // 单人预警-本市进京-手机热点
+                                if(Constants.MODEL_CODE_BSJJ_SJRD.equals(mxbh) && glsjDateObj.compareTo(bkkssj) >= 0 && glsjDateObj.compareTo(bkjssj) <= 0){
                                     // 不做过滤处理
-                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, yjrySfzh, yddh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, captureTimeSjrd, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, resourceCode, jd, wd, currentTime, currentTime, null, null, null, null, addressName, yjlx, Constants.YJLX_DRYJ});
+                                    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, resourceCode, jd, wd, currentTime, currentTime, null, null, null, null, addressName, yjlx, Constants.YJLX_DRYJ});
                                     yjxxsm.setLength(0);
                                     break;
                                 }
@@ -736,6 +753,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                             // 盘查时间   ---样例:20250329061228
                             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 xmSrc = oriField.getString("XM");
                             String xm = StringUtils.isNotBlank(xmSrc)? xmSrc : "暂无";
@@ -828,9 +846,10 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                             yjxxsm.append(StringUtils.isNotBlank(addressName)? addressName : "暂无");
                             for (Map<String, Object> modelInfoMap : modelInfoList) {
                                 String mxbh = (String) modelInfoMap.get("mxbh");
-                                if(Constants.MODEL_CODE_BSJJ_XLPC.equals(mxbh)){   // 单人预警-本市进京-巡逻盘查
+                                // 单人预警-本市进京-巡逻盘查
+                                if(Constants.MODEL_CODE_BSJJ_XLPC.equals(mxbh) && pcsjDateObj.compareTo(bkkssj) >= 0 && pcsjDateObj.compareTo(bkjssj) <= 0){
                                     // 不做过滤处理
-                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, xm, sfzh, lxdh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, captureTimeXlpc, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, resourceCode, pcdJd, pcdWd, currentTime, currentTime, null, null, null, null, addressName, yjlx, Constants.YJLX_DRYJ});
+                                    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, resourceCode, pcdJd, pcdWd, currentTime, currentTime, null, null, null, null, addressName, yjlx, Constants.YJLX_DRYJ});
                                     yjxxsm.setLength(0);
                                     break;
                                 }
@@ -870,6 +889,8 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                             // 检查时间   ---样例:20250329061228
                             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")));
                             yjxxsm.append("站点检查 - 人员姓名:");
                             yjxxsm.append(xm);
@@ -881,6 +902,8 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                             yjxxsm.append(dz);
                             yjxxsm.append(",检查时间:");
                             yjxxsm.append(jcsj);
+                            yjxxsm.append(",检查站名称:");
+                            yjxxsm.append(jczmc);
                             yjxxsm.append(",发证机关:");
                             yjxxsm.append(fzjg);
                             yjxxsm.append(",证件有效起始日期:");
@@ -891,13 +914,12 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                             yjxxsm.append(ryzpUrl);
                             yjxxsm.append(",警员编号:");
                             yjxxsm.append(jybh);
-                            yjxxsm.append(",检查站名称:");
-                            yjxxsm.append(jczmc);
                             for (Map<String, Object> modelInfoMap : modelInfoList) {
                                 String mxbh = (String) modelInfoMap.get("mxbh");
-                                if(Constants.MODEL_CODE_BSJJ_ZDJC.equals(mxbh)){   // 单人预警-本市进京-站点检查
+                                // 单人预警-本市进京-站点检查
+                                if(Constants.MODEL_CODE_BSJJ_ZDJC.equals(mxbh) && jcsjDateObj.compareTo(bkkssj) >= 0 && jcsjDateObj.compareTo(bkjssj) <= 0){
                                     // 不做过滤处理
-                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, xm, sfzh, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, captureTimeZdjc, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, resourceCode, null, null, currentTime, currentTime, null, null, null, null, jczmc, yjlx, Constants.YJLX_DRYJ});
+                                    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, resourceCode, null, null, currentTime, currentTime, null, null, null, null, jczmc, yjlx, Constants.YJLX_DRYJ});
                                     yjxxsm.setLength(0);
                                     break;
                                 }
@@ -937,6 +959,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                             // 截获时间   ---样例:20250329061228
                             String captureTime = oriField.getString("CAPTURE_TIME");
                             String captureTimeDzwl = StringUtils.isNotBlank(captureTime)? TimeTool.timeStampToDateString(TimeTool.dateStringToTimeStamp3(captureTime)) : "暂无";
+                            Date captureTimeDzwlDateObj = StringUtils.isNotBlank(captureTime)? new Date(TimeTool.dateStringToTimeStamp3(captureTime) * 1000) : null;
                             String addressName = null;
                             if(StringUtils.isNotBlank(jzdqWd) && StringUtils.isNotBlank(jzdqJd)){
                                 double[] jwdBD = GpsCoordinateUtils.calWGS84toBD09(Double.valueOf(jzdqWd), Double.valueOf(jzdqJd));
@@ -958,8 +981,8 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                 String mxbh = (String) modelInfoMap.get("mxbh");
                                 if(Constants.MODEL_CODE_BSJJ_HCZDW.equals(mxbh)){   // 单人预警-本市进京-火车站电围
                                     // 业务需求:只保留命中点位在火车站区域内的数据
-                                    if(GeoUtils.isPointInCircle(Double.valueOf(jzdqWd), Double.valueOf(jzdqJd), Double.valueOf(centerPointLatTJZ), Double.valueOf(centerPointLonTJZ), Double.valueOf(radiusTJZ))){
-                                        warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, yjrySfzh, yddh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, captureTimeDzwl, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, resourceCode, jzdqJd, jzdqWd, currentTime, currentTime, null, null, null, Constants.QYMC_TJZ, addressName, yjlx, Constants.YJLX_DRYJ});
+                                    if(GeoUtils.isPointInCircle(Double.valueOf(jzdqWd), Double.valueOf(jzdqJd), Double.valueOf(centerPointLatTJZ), Double.valueOf(centerPointLonTJZ), Double.valueOf(radiusTJZ)) && captureTimeDzwlDateObj.compareTo(bkkssj) >= 0 && captureTimeDzwlDateObj.compareTo(bkjssj) <= 0){
+                                        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, resourceCode, jzdqJd, jzdqWd, currentTime, currentTime, null, null, null, Constants.QYMC_TJZ, addressName, yjlx, Constants.YJLX_DRYJ});
                                         yjxxsm.setLength(0);
                                         break;
                                     }
@@ -981,6 +1004,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                             // 告警时间   ---样例:20250329061228
                             String alarmTime = oriField.getString("ALARM_TIME");
                             String gjsj = StringUtils.isNotBlank(alarmTime)? TimeTool.timeStampToDateString(TimeTool.dateStringToTimeStamp3(alarmTime)) : "暂无";
+                            Date gjsjDateObj = StringUtils.isNotBlank(alarmTime)? new Date(TimeTool.dateStringToTimeStamp3(alarmTime) * 1000) : null;
                             // 地址名称
 //                            String dzmc = oriField.getString("ADDR_NAME");
                             // 预警相似度
@@ -1005,7 +1029,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                 String mxbh = (String) modelInfoMap.get("mxbh");
                                 if(Constants.MODEL_CODE_BSJJ_HCZRLGZ.equals(mxbh)){   // 单人预警-本市进京-火车站人脸感知
                                     // 业务需求:只保留命中点位在火车站区域内的数据
-                                    if(GeoUtils.isPointInCircle(Double.valueOf(wd), Double.valueOf(jd), Double.valueOf(centerPointLatTJZ), Double.valueOf(centerPointLonTJZ), Double.valueOf(radiusTJZ))){
+                                    if(GeoUtils.isPointInCircle(Double.valueOf(wd), Double.valueOf(jd), Double.valueOf(centerPointLatTJZ), Double.valueOf(centerPointLonTJZ), Double.valueOf(radiusTJZ)) && gjsjDateObj.compareTo(bkkssj) >= 0 && gjsjDateObj.compareTo(bkjssj) <= 0){
                                         yjxxsm.append("火车站人脸感知 - 抓拍机编号:");
                                         yjxxsm.append(zpjbh);
                                         yjxxsm.append(",抓拍机名称:");
@@ -1016,7 +1040,7 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                         yjxxsm.append(gjsj);
                                         yjxxsm.append(",人脸图片文件路径:");
                                         yjxxsm.append(rltpwjlj);
-                                        warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, gjryZjhm, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, gjsj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, resourceCode, jd, wd, currentTime, currentTime, null, null, null, Constants.QYMC_TJZ, addressName, yjlx, Constants.YJLX_DRYJ});
+                                        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, resourceCode, jd, wd, currentTime, currentTime, null, null, null, Constants.QYMC_TJZ, addressName, yjlx, Constants.YJLX_DRYJ});
                                         yjxxsm.setLength(0);
                                     }
                                 } else if (Constants.MODEL_CODE_BSMGQY_BSRL.equals(mxbh)) {   // 单人预警-本市敏感区域-本市人脸
@@ -1046,10 +1070,10 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                                 String centerLon84 = loc.getString("lon");
                                                 String centerLat84 = loc.getString("lat");
                                                 String radius = loc.getString("radius");
-                                                if(GeoUtils.isPointInCircle(Double.valueOf(wd), Double.valueOf(jd), Double.valueOf(centerLat84), Double.valueOf(centerLon84), Double.valueOf(radius))){
+                                                if(GeoUtils.isPointInCircle(Double.valueOf(wd), Double.valueOf(jd), Double.valueOf(centerLat84), Double.valueOf(centerLon84), Double.valueOf(radius)) && gjsjDateObj.compareTo(bkkssj) >= 0 && gjsjDateObj.compareTo(bkjssj) <= 0){
                                                     yjxxsm.append(",所在区域:");
                                                     yjxxsm.append(areaName);
-                                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, gjryZjhm, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, gjsj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, resourceCode, jd, wd, currentTime, currentTime, null, null, null, areaName, addressName, yjlx, Constants.YJLX_DRYJ});
+                                                    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, resourceCode, jd, wd, currentTime, currentTime, null, null, null, areaName, addressName, yjlx, Constants.YJLX_DRYJ});
                                                     yjxxsm.setLength(0);
                                                     break;
                                                 }
@@ -1061,19 +1085,21 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                                                     String vertexLat84 = loc.getString("lat");
                                                     coordinates.add(new Coordinate(Double.valueOf(vertexLon84), Double.valueOf(vertexLat84)));
                                                 }
-                                                if(GeoUtils.isPointInPolygon(coordinates, new Coordinate(Double.valueOf(jd), Double.valueOf(wd)))){
+                                                if(GeoUtils.isPointInPolygon(coordinates, new Coordinate(Double.valueOf(jd), Double.valueOf(wd))) && gjsjDateObj.compareTo(bkkssj) >= 0 && gjsjDateObj.compareTo(bkjssj) <= 0){
                                                     yjxxsm.append(",所在区域:");
                                                     yjxxsm.append(areaName);
-                                                    warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, gjryZjhm, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, gjsj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, resourceCode, jd, wd, currentTime, currentTime, null, null, null, areaName, addressName, yjlx, Constants.YJLX_DRYJ});
+                                                    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, resourceCode, jd, wd, currentTime, currentTime, null, null, null, areaName, addressName, yjlx, Constants.YJLX_DRYJ});
                                                     yjxxsm.setLength(0);
                                                     break;
                                                 }
                                             }
                                         }
                                     } else {
-                                        warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjryXm, gjryZjhm, yjrySjh, yjxxsm.toString(), yjzt, Constants.YJZT_WD, gjsj, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, CommonUtil.getConfValueByKeyDept(zrdwbm), zrbmbm, CommonUtil.getConfValueByKeyDept(zrbmbm), sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, yjryLb, yjryBq, gkjb, gkjbmc, resourceCode, jd, wd, currentTime, currentTime, null, null, null, Constants.QYMC_TJS, addressName, yjlx, Constants.YJLX_DRYJ});
-                                        yjxxsm.setLength(0);
-                                        break;
+                                        if(gjsjDateObj.compareTo(bkkssj) >= 0 && gjsjDateObj.compareTo(bkjssj) <= 0){
+                                            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, resourceCode, jd, wd, currentTime, currentTime, null, null, null, Constants.QYMC_TJS, addressName, yjlx, Constants.YJLX_DRYJ});
+                                            yjxxsm.setLength(0);
+                                            break;
+                                        }
                                     }
                                 }
                             }

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

@@ -519,6 +519,8 @@ public class CtrlService {
         String sqrJh = taskInfo.getString("sqrJh");
         String sqrDwbm = taskInfo.getString("sqrDwbm");
         String sqrDwmc = taskInfo.getString("sqrDwmc");
+        Date bkkssj = taskInfo.getDate("bkkssj");
+        Date bkjssj = taskInfo.getDate("bkjssj");
         // 将用户域传来的模型编号转换为数据域烽火盘古平台数据资源编码
         List<String> resourceCodeList = new ArrayList<>();
         for (Object item : modelIdListInfo) {
@@ -546,7 +548,7 @@ public class CtrlService {
                 String zrmjlxfs = clueObj.getString("zrmjlxfs");
                 String zrdwbm = clueObj.getString("zrdwbm");
                 String zrbmbm = clueObj.getString("zrbmbm");
-                ctrlTaskInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, JSON.toJSONString(resourceCodeList), areaInfo.toJSONString(), ryxm, zjlxdm, zjhm, hjd, sjh, yzzt, xszt, rylb, rybq, gkjb, gkjbmc, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, zrbmbm, cjsj});
+                ctrlTaskInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, sqrXm, sqrSfzh, sqrJh, sqrDwbm, sqrDwmc, bkkssj, bkjssj, JSON.toJSONString(resourceCodeList), areaInfo.toJSONString(), ryxm, zjlxdm, zjhm, hjd, sjh, yzzt, xszt, rylb, rybq, gkjb, gkjbmc, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwbm, zrbmbm, cjsj});
             }
         }
         for (Object item : modelInfo) {

+ 6 - 3
src/main/java/com/hhwy/qbeqsjy/service/SameTravelService.java

@@ -10,10 +10,11 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.http.NameValuePair;
 import org.apache.http.message.BasicNameValuePair;
-import org.apache.kafka.common.protocol.types.Field;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 
 
@@ -59,7 +60,7 @@ public class SameTravelService {
      * @return
      */
     public void callFHUniQueryService(String taskId, String conditionFieldValue, String resourceCode, String resourceIdentifier){
-        // ========== 获取烽火 - 服务开放平台认证token
+        // ========== 1.获取烽火 - 服务开放平台认证token
         Map<String, String> tokenMap = getFHUniQueryServiceToken();
         String appTokenId = tokenMap.get("appTokenId");
         String userTokenId = tokenMap.get("userTokenId");
@@ -67,7 +68,7 @@ public class SameTravelService {
             log.info("【QBEQSJYCTRL - 聚集预警通用查询服务】 获取目标服务认证token失败,操作结束");
             return;
         }
-        // ========== 调用烽火 - 同行类数据通查服务接口
+        // ========== 2.调用烽火 - 同行类数据通查服务接口
         long start = System.currentTimeMillis();
         Map<String, Object> headerParamsMap = new HashMap<>();
         headerParamsMap.put("Content-Type", Constants.DEFAULT_RSP_TYPE);
@@ -169,6 +170,8 @@ public class SameTravelService {
                     String sqrJh = String.valueOf(ctrlTaskInfo.get("sqr_jh"));
                     String sqrDwbm = String.valueOf(ctrlTaskInfo.get("sqr_dwbm"));
                     String sqrDwmc = String.valueOf(ctrlTaskInfo.get("sqr_dwmc"));
+                    Date bkkssj = (Date) ctrlTaskInfo.get("bkkssj");
+                    Date bkjssj = (Date) ctrlTaskInfo.get("bkjssj");
                     String yjryXm = String.valueOf(ctrlTaskInfo.get("ryxm"));
                     String yjrySfzh = String.valueOf(ctrlTaskInfo.get("zjhm"));
                     String yjrySjh = String.valueOf(ctrlTaskInfo.get("sjh"));