Browse Source

【情报二期】数据域服务 - 预警数据消费功能入库、查询代码调整;用户域业务数据同步代码开发

peifj 2 months ago
parent
commit
6ef8217025

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

@@ -11,6 +11,8 @@ import java.util.Locale;
  */
 public class Constants {
 
+    // 预警状态:未读
+    public static final String YJZT_WD = "未读";
     //网安AUTH协议表数据资源编码
     public static final String TABLE_AUTH_RES_ID = "134B102";
     public static final String MULTI_THREAD_ENABLED_FLAG = "true";

+ 8 - 42
src/main/java/com/hhwy/qbeqsjy/controller/CtrlController.java

@@ -109,52 +109,18 @@ public class CtrlController {
      * 保存用户域提交的布控任务对应的区域信息
      * @param reqBody
      * @return
-     *
-     * 请求参数:
-     * {
-     *     "taskId":"59275350793392128",
-     *     "areaList":[
-     *         {
-     *             "areaId":"xxx",
-     *             "areaName":"xxx",
-     *             "areaGeoType":1,   --- 0:圆形,1:一般多边形
-     *             "location":[
-     * 			    {
-     * 				    "lon":"xxx",   --- 顶点坐标
-     * 					"lat":"xxx"
-     * 				},
-     * 				{
-     * 				    "lon":"xxx",
-     * 					"lat":"xxx"
-     * 				}
-     * 				......
-     * 			  ]
-     * 			  或者
-     * 			   "areaId":"xxx",
-     *             "areaName":"xxx",
-     * 			   "areaGeoType":0,
-     * 			   "location":[
-     * 			    {
-     * 			         "lon":"xxx",   --- 圆心点坐标
-     * 			         "lat":"xxx",
-     * 			         "radius":"100"   --- 半径,单位:米
-     * 			    }
-     * 			  ]
-     *         }
-     *     ]
-     * }
      */
-    @PostMapping("/saveCtrlAreaInfo")
-    public AjaxResult saveCtrlAreaInfo(@RequestBody JSONObject reqBody){
+    @PostMapping("/saveCtrlTaskInfo")
+    public AjaxResult saveCtrlTaskInfo(@RequestBody JSONObject reqBody){
         String taskId = reqBody.getString("taskId");
-        JSONArray areaList = reqBody.getJSONArray("areaList");
-        if(StringUtils.isBlank(taskId) || areaList == null || areaList.size() == 0){
+        JSONArray clueInfo = reqBody.getJSONArray("clueInfo");
+        if(StringUtils.isBlank(taskId) || clueInfo.size() == 0){
             return AjaxResult.error(Constants.PARAMS_EMPTY_MSG);
         }
         try{
-            return ctrlService.saveCtrlAreaInfo(taskId, areaList)? AjaxResult.success() : AjaxResult.error();
+            return ctrlService.saveCtrlTaskInfo(reqBody)? AjaxResult.success() : AjaxResult.error();
         } catch (Exception e){
-            log.error("保存任务区域信息发生异常", e);
+            log.error("保存用户域任务相关信息发生异常", e);
         }
         return AjaxResult.error(Constants.SERVER_ERROR_MSG);
     }
@@ -194,7 +160,7 @@ public class CtrlController {
      *      ]
      * }
      */
-    @PostMapping("/saveCtrlClueInfo")
+    /*@PostMapping("/saveCtrlClueInfo")
     public AjaxResult saveCtrlClueInfo(@RequestBody JSONObject reqBody){
         String taskId = reqBody.getString("taskId");
         JSONArray clueList = reqBody.getJSONArray("clueList");
@@ -207,7 +173,7 @@ public class CtrlController {
             log.error("保存任务线索人员信息发生异常", e);
         }
         return AjaxResult.error(Constants.SERVER_ERROR_MSG);
-    }
+    }*/
 
 
 

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

@@ -18,6 +18,8 @@ public class CtrlDao {
 
     @Value("${query.max.count}")
     private Integer queryMaxCount;
+    @Value("${clue.code.phone}")
+    private String clueCodePhone;
     @Resource
     private JdbcTemplate gaussDBJdbcTemplate;
 
@@ -62,7 +64,7 @@ public class CtrlDao {
      * @param taskInfo
      * @return
      */
-    public boolean insertTaskInfo(Object[] taskInfo){
+    /*public boolean insertTaskInfo(Object[] taskInfo){
         String sql = "insert into t_ctrl_task_info (task_id, warning_msg_id, clue_person_name, clue_person_idCard, clue_person_phone, clue_person_type, clue_person_label, ctrl_level, task_obj_name, receive_unit_code, receive_unit_name, receive_dept_code, receive_dept_name, apply_user_name, apply_user_idCrad, apply_user_policeNo, apply_user_unit_code, apply_user_unit_name, business_source) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
         try {
             int insertRows = gaussDBJdbcTemplate.update(sql, taskInfo);
@@ -71,7 +73,7 @@ public class CtrlDao {
             log.error("【插入布控任务信息发生异常】 异常信息:", e);
         }
         return false;
-    }
+    }*/
 
 
     /**
@@ -79,7 +81,7 @@ public class CtrlDao {
      * @param ctrlAreaInfoList
      * @return
      */
-    public boolean batchInsertCtrlAreaInfo(List<Object[]> ctrlAreaInfoList){
+    /*public boolean batchInsertCtrlAreaInfo(List<Object[]> ctrlAreaInfoList){
         String sql = "insert into t_ctrl_area_info (task_id, area_id, area_name, area_geo_type, location, create_time) values (?, ?, ?, ?, ?, ?)";
         try {
             int[] insertRows = gaussDBJdbcTemplate.batchUpdate(sql, ctrlAreaInfoList);
@@ -88,23 +90,52 @@ public class CtrlDao {
             log.error("【批量插入布控任务区域信息发生异常】 异常信息:", e);
         }
         return false;
+    }*/
+
+
+    /**
+     * 批量插入布控任务相关信息(冗余存储)
+     * 同步用户域布控任务原始信息,为后期预警结果数据作关联使用(烽火布控服务返回的预警结果数据不包含任务信息),关联后的结果经数据域代理接口同步至用户域业务库,供用户域界面查询
+     * @param ctrlTaskInfoList
+     * @return
+     */
+    public boolean batchInsertCtrlTaskInfo(List<Object[]> ctrlTaskInfoList){
+        String sql = "insert into t_ctrl_task_info (rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, sqrxm, sqrsfzh, sqrjh, sqrdwdm, sqrdwmc, bkqyxx, ryxm, zjlxdm, zjhm, hjd, sjh, yzzt, xszt, rylb, rybq, gkjb, gkjbmc, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwdm, zrbmdm, cjsj) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
+        try {
+            int[] insertRows = gaussDBJdbcTemplate.batchUpdate(sql, ctrlTaskInfoList);
+            return insertRows.length == ctrlTaskInfoList.size();
+        } catch (Exception e){
+            log.error("【批量插入布控任务相关信息发生异常】 异常信息:", e);
+        }
+        return false;
     }
 
 
     /**
-     * 根据 任务编号 查询布控任务对应的区域信息
+     * 根据 任务编号、线索值、线索类型编码 查询布控任务相关信息(包含任务信息、区域信息、线索人员信息)
      * @param taskId
+     * @param clue
+     * @param clueType
      * @return
      */
-    public List<Map<String, Object>> queryCtrlAreaInfo(String taskId){
-        List<Map<String, Object>> ctrlAreaInfoList = new ArrayList<>();
-        String sql = "select area_geo_type, location from t_ctrl_area_info where taskId = ?";
+    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, sqrxm, sqrsfzh, sqrjh, sqrdwdm, sqrdwmc, bkqyxx, ryxm, zjlxdm, zjhm, hjd, sjh, yzzt, xszt, rylb, rybq, gkjb, gkjbmc, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwdm, zrbmdm from t_ctrl_task_info where taskId = '");
+        sql.append(taskId);
+        sql.append("'");
+        if(clueCodePhone.equals(clueType)){
+            sql.append(" and sjh = '");
+        } else {
+            sql.append(" and zjhm = '");
+        }
+        sql.append(clue);
+        sql.append("' limit 1");
         try {
-            ctrlAreaInfoList = gaussDBJdbcTemplate.queryForList(sql, taskId);
+            ctrlTaskInfoList = gaussDBJdbcTemplate.queryForList(sql.toString());
         } catch (Exception e){
-            log.error("【查询布控任务对应区域信息发生异常】 异常信息:", e);
+            log.error("【查询布控任务相关信息发生异常】 异常信息:", e);
         }
-        return ctrlAreaInfoList;
+        return ctrlTaskInfoList;
     }
 
 
@@ -114,7 +145,7 @@ public class CtrlDao {
      * @return
      */
     public boolean batchInsertWarningInfo(List<Object[]> warningInfoList){
-        String sql = "insert into t_ctrl_warning_info (task_id, resource_id, clue, clue_type, warning_msg, capture_time) 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, zrdwdm, zrdwmc, zrbmdm, zrbmmc, sqr_xm, sqr_sfzh, sqr_jh, sqr_dwdm, sqr_dwmc, yjry_lb, yjry_bq, gkjb, gkjbmc, ywly, cjsj, gxsj) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
         try {
             int[] insertRows = gaussDBJdbcTemplate.batchUpdate(sql, warningInfoList);
             return insertRows.length == warningInfoList.size();
@@ -137,24 +168,24 @@ public class CtrlDao {
         Integer pageNum = queryDTO.getPageNum() == null ? Constants.NUM_1 : queryDTO.getPageNum();
         Integer pageSize = queryDTO.getPageSize() == null ? queryMaxCount : queryDTO.getPageSize();
         List<Map<String, Object>> warningInfoList = new ArrayList<>();
-        StringBuilder sql = new StringBuilder("select task_id, clue, clue_type, warning_msg, capture_time from t_ctrl_warning_info where 1 = 1");
+        StringBuilder sql = new StringBuilder("select rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjry_xm, yjry_sfzh, yjry_sjh, yjxxsm, yjzt, yjztmc, yjsj, zrdwdm, zrdwmc, zrbmdm, zrbmmc, sqr_xm, sqr_sfzh, sqr_jh, sqr_dwdm, sqr_dwmc, yjry_lb, yjry_bq, gkjb, gkjbmc, ywly, cjsj, gxsj from t_ctrl_warning_info where 1 = 1");
         // 1.根据任务ID过滤
         if(StringUtils.isNotBlank(taskId)){
-            sql.append(" and task_id = '");
+            sql.append(" and rwbh = '");
             sql.append(taskId);
             sql.append("'");
         }
         // 2.根据查询时间段过滤
         if(StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime)){
-            sql.append(" and capture_time >= '");
+            sql.append(" and yjsj >= '");
             sql.append(startTime);
             sql.append("'");
-            sql.append(" and capture_time <= '");
+            sql.append(" and yjsj <= '");
             sql.append(endTime);
             sql.append("'");
         }
         // 3.根据 截获时间 降序排列
-        sql.append(" order by capture_time desc");
+        sql.append(" order by yjsj desc");
         sql.append(" limit ");
         sql.append(pageSize);
         sql.append(" offset ");
@@ -174,7 +205,7 @@ public class CtrlDao {
      * @param taskId
      * @return
      */
-    public List<Map<String, Object>> queryClueDetailInfo(String taskId, String clue){
+    /*public List<Map<String, Object>> queryClueDetailInfo(String taskId, String clue){
         List<Map<String, Object>> clueInfoDetailList = new ArrayList<>();
         String sql = "select * from t_ctrl_clue_info where rwbh = ? and clue = ?";
         try {
@@ -183,7 +214,7 @@ public class CtrlDao {
             log.error("【查询布控任务对应线索详情信息发生异常】 异常信息:", e);
         }
         return clueInfoDetailList;
-    }
+    }*/
 
 
     /**
@@ -191,7 +222,7 @@ public class CtrlDao {
      * @param clueInfoList
      * @return
      */
-    public boolean batchInsertCtrlClueInfo(List<Object[]> clueInfoList){
+    /*public boolean batchInsertCtrlClueInfo(List<Object[]> clueInfoList){
         String sql = "insert into t_ctrl_clue_info (rwbh, ryxm, zjlxdm, zjhm, hjd, sjh, xswjbh, xswjm, yzzt, yzztmc, xszt, rylb, rybq, gkjb, gkjbmc, cjsj) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
         try {
             int[] insertRows = gaussDBJdbcTemplate.batchUpdate(sql, clueInfoList);
@@ -200,7 +231,7 @@ public class CtrlDao {
             log.error("【批量插入布控任务线索人员数据发生异常】 异常信息:", e);
         }
         return false;
-    }
+    }*/
 
 
 

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

@@ -3,10 +3,7 @@ package com.hhwy.qbeqsjy.kafka.service;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.hhwy.qbeqsjy.common.Constants;
-import com.hhwy.qbeqsjy.common.GeoUtils;
-import com.hhwy.qbeqsjy.common.SnowflakeIdGenerator;
-import com.hhwy.qbeqsjy.common.TimeTool;
+import com.hhwy.qbeqsjy.common.*;
 import com.hhwy.qbeqsjy.dao.CtrlDao;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -97,16 +94,45 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                     JSONObject uniCtrl = message.getJSONObject("UNICTRL");
                     String clueId = uniCtrl.getString("U_CLUEID");
                     String[] clueIdStrArr = clueId.split("_");
-                    String taskId = clueIdStrArr[Constants.NUM_1];
+                    String rwbh = clueIdStrArr[Constants.NUM_1];
                     String clueType = clueIdStrArr[Constants.NUM_2];
                     String clue = clueIdStrArr[Constants.NUM_3];
                     String resourceId = uniCtrl.getString("U_RESID");
                     // 每张布控资源表对应的命中数据JSON对象
                     JSONObject oriField = message.getJSONObject("ORIFIELD");
-                    String warningInfoJSONStr = oriField.toJSONString();
+                    String yjxxsm = oriField.toJSONString();
                     // 命中时间不采用原始预警数据中的【截获时间】,而采用该服务消费到当前数据时的自然时间作为命中时间
-                    String captureTime = TimeTool.timeStampToDateString(TimeTool.getNowTimeStamp());
-                    // 如果布控资源为网安AUTH协议表
+                    String yjsj = TimeTool.timeStampToDateString(TimeTool.getNowTimeStamp());
+                    List<Map<String, Object>> ctrlTaskInfoList = ctrlDao.queryCtrlTaskInfo(rwbh, clue, clueType);
+                    Map<String, Object> ctrlTaskInfo = ctrlTaskInfoList.get(0);
+                    String rwmc = String.valueOf(ctrlTaskInfo.get("rwmc"));
+                    Integer rwlx = (Integer) ctrlTaskInfo.get("rwlx");
+                    String rwlxmc = String.valueOf(ctrlTaskInfo.get("rwlxmc"));
+                    String rwdxlxmc = String.valueOf(ctrlTaskInfo.get("rwdxlxmc"));
+                    String sqrxm = String.valueOf(ctrlTaskInfo.get("sqrxm"));
+                    String sqrsfzh = String.valueOf(ctrlTaskInfo.get("sqrsfzh"));
+                    String sqrjh = String.valueOf(ctrlTaskInfo.get("sqrjh"));
+                    String sqrdwdm = String.valueOf(ctrlTaskInfo.get("sqrdwdm"));
+                    String sqrdwmc = String.valueOf(ctrlTaskInfo.get("sqrdwmc"));
+                    String bkqyxx = String.valueOf(ctrlTaskInfo.get("bkqyxx"));
+                    String yjry_xm = String.valueOf(ctrlTaskInfo.get("ryxm"));
+                    String yjry_sfzh = String.valueOf(ctrlTaskInfo.get("zjhm"));
+                    String yjry_sjh = String.valueOf(ctrlTaskInfo.get("sjh"));
+                    String yjry_lb = String.valueOf(ctrlTaskInfo.get("rylb"));
+                    String yjry_bq = String.valueOf(ctrlTaskInfo.get("rybq"));
+                    String gkjb = String.valueOf(ctrlTaskInfo.get("gkjb"));
+                    String gkjbmc = String.valueOf(ctrlTaskInfo.get("gkjbmc"));
+                    String zrjz = String.valueOf(ctrlTaskInfo.get("zrjz"));
+                    String zrmjid = String.valueOf(ctrlTaskInfo.get("zrmjid"));
+                    String zrmjxm = String.valueOf(ctrlTaskInfo.get("zrmjxm"));
+                    String zrmjjh = String.valueOf(ctrlTaskInfo.get("zrmjjh"));
+                    String zrmjlxfs = String.valueOf(ctrlTaskInfo.get("zrmjlxfs"));
+                    String zrdwdm = String.valueOf(ctrlTaskInfo.get("zrdwdm"));
+                    String zrbmdm = String.valueOf(ctrlTaskInfo.get("zrbmdm"));
+                    String yjxxbh = String.valueOf(generator.nextId());
+                    Integer yjzt = 0;
+
+                    // 如果布控资源为AUTH表
                     if(Constants.TABLE_AUTH_RES_ID.equals(resourceId)){
                         // 1. ========================= 过滤基站号为空的数据
                         String baseStationId = oriField.getString("BASE_STATION_ID");
@@ -114,43 +140,47 @@ public class ConsumeService implements ApplicationListener<ContextRefreshedEvent
                             continue;
                         }
                         // 2. ========================= 如果存在布控区域,则过滤不在布控区域范围的数据
-                        List<Map<String, Object>> ctrlAreaInfoList = ctrlDao.queryCtrlAreaInfo(taskId);
-                        if(ctrlAreaInfoList.size() > 0){
-                            String lon = oriField.getString("LONGITUDE");
-                            String lat = oriField.getString("LATITUDE");
-                            for (Map<String, Object> ctrlAreaInfo : ctrlAreaInfoList) {
-                                Integer areaGeoType = (Integer) ctrlAreaInfo.get("area_geo_type");
-                                JSONArray location = JSON.parseArray((String) ctrlAreaInfo.get("location"));
-                                // ****** 说明:如果出现多个布控区域范围存在重叠,并且命中点位也恰巧出现在重叠区域的极端情况,目前则只保存命中第一个布控区域时的一份数据
-                                // 布控区域是圆形
-                                if(Constants.NUM_0 == areaGeoType){
-                                    JSONObject loc = location.getJSONObject(0);
-                                    String centerLon = loc.getString("lon");
-                                    String centerLat = loc.getString("lat");
-                                    String radius = loc.getString("radius");
-                                    if(GeoUtils.isPointInCircle(Double.valueOf(lat), Double.valueOf(lon), Double.valueOf(centerLat), Double.valueOf(centerLon), Double.valueOf(radius))){
-                                        warningInfoList.add(new Object[]{taskId, resourceId, clue, clueType, warningInfoJSONStr, captureTime});
-                                        break;
-                                    }
-                                } else {   // 布控区域是一般多边形
-                                    List<Coordinate> coordinates = new ArrayList<>();
-                                    for (Object obj : location) {
-                                        JSONObject loc = (JSONObject) obj;
-                                        String vertexLon = loc.getString("lon");
-                                        String vertexLat = loc.getString("lat");
-                                        coordinates.add(new Coordinate(Double.valueOf(vertexLon), Double.valueOf(vertexLat)));
-                                    }
-                                    if(GeoUtils.isPointInPolygon(coordinates, new Coordinate(Double.valueOf(lon), Double.valueOf(lat)))){
-                                        warningInfoList.add(new Object[]{taskId, resourceId, clue, clueType, warningInfoJSONStr, captureTime});
-                                        break;
+                        if(StringUtils.isNotBlank(bkqyxx)){
+                            JSONArray areaInfoList = JSON.parseArray(bkqyxx);
+                            if(areaInfoList != null && areaInfoList.size() > 0){
+                                // 命中点位经纬度
+                                String lon = oriField.getString("LONGITUDE");
+                                String lat = oriField.getString("LATITUDE");
+                                for (Object obj : areaInfoList) {
+                                    JSONObject ctrlAreaInfo = (JSONObject) obj;
+                                    Integer geoType = (Integer) ctrlAreaInfo.get("qyjhlx");
+                                    JSONArray locationSet = JSON.parseArray(String.valueOf(ctrlAreaInfo.get("qyfwjwdjh")));
+                                    // ****** 说明:如果出现多个布控区域范围存在重叠,并且命中点位也恰巧出现在重叠区域的极端情况,目前则只保存命中第一个布控区域时的一份数据
+                                    // 布控区域是圆形
+                                    if(Constants.NUM_0 == geoType){
+                                        JSONObject loc = locationSet.getJSONObject(0);
+                                        String centerLon = loc.getString("lon");
+                                        String centerLat = loc.getString("lat");
+                                        String radius = loc.getString("radius");
+                                        if(GeoUtils.isPointInCircle(Double.valueOf(lat), Double.valueOf(lon), Double.valueOf(centerLat), Double.valueOf(centerLon), Double.valueOf(radius))){
+                                            warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjry_xm, yjry_sfzh, yjry_sjh, yjxxsm, yjzt, Constants.YJZT_WD, yjsj, zrdwdm, CommonUtil.getConfValueByKey(zrdwdm), zrbmdm, CommonUtil.getConfValueByKey(zrbmdm), sqrxm, sqrsfzh, sqrjh, sqrdwdm, sqrdwmc, yjry_lb, yjry_bq, gkjb, gkjbmc, resourceId, yjsj, yjsj});
+                                            break;
+                                        }
+                                    } else {   // 布控区域是一般多边形
+                                        List<Coordinate> coordinates = new ArrayList<>();
+                                        for (Object item : locationSet) {
+                                            JSONObject loc = (JSONObject) item;
+                                            String vertexLon = loc.getString("lon");
+                                            String vertexLat = loc.getString("lat");
+                                            coordinates.add(new Coordinate(Double.valueOf(vertexLon), Double.valueOf(vertexLat)));
+                                        }
+                                        if(GeoUtils.isPointInPolygon(coordinates, new Coordinate(Double.valueOf(lon), Double.valueOf(lat)))){
+                                            warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjry_xm, yjry_sfzh, yjry_sjh, yjxxsm, yjzt, Constants.YJZT_WD, yjsj, zrdwdm, CommonUtil.getConfValueByKey(zrdwdm), zrbmdm, CommonUtil.getConfValueByKey(zrbmdm), sqrxm, sqrsfzh, sqrjh, sqrdwdm, sqrdwmc, yjry_lb, yjry_bq, gkjb, gkjbmc, resourceId, yjsj, yjsj});
+                                            break;
+                                        }
                                     }
                                 }
                             }
-                        } else {   // 如果不存在布控区域(默认布控区域范围为全天津市),则直接保存入库
-                            warningInfoList.add(new Object[]{taskId, resourceId, clue, clueType, warningInfoJSONStr, captureTime});
+                        } else {   // 如果不存在布控区域信息,则默认布控区域范围为全天津市,直接保存入库
+                            warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjry_xm, yjry_sfzh, yjry_sjh, yjxxsm, yjzt, Constants.YJZT_WD, yjsj, zrdwdm, CommonUtil.getConfValueByKey(zrdwdm), zrbmdm, CommonUtil.getConfValueByKey(zrbmdm), sqrxm, sqrsfzh, sqrjh, sqrdwdm, sqrdwmc, yjry_lb, yjry_bq, gkjb, gkjbmc, resourceId, yjsj, yjsj});
                         }
                     } else {   // 如果是其他类布控资源,则直接保存入库
-                        warningInfoList.add(new Object[]{taskId, resourceId, clue, clueType, warningInfoJSONStr, captureTime});
+                        warningInfoList.add(new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, yjxxbh, yjry_xm, yjry_sfzh, yjry_sjh, yjxxsm, yjzt, Constants.YJZT_WD, yjsj, zrdwdm, CommonUtil.getConfValueByKey(zrdwdm), zrbmdm, CommonUtil.getConfValueByKey(zrbmdm), sqrxm, sqrsfzh, sqrjh, sqrdwdm, sqrdwmc, yjry_lb, yjry_bq, gkjb, gkjbmc, resourceId, yjsj, yjsj});
                     }
                 }
                 // ========================= 批量入库符合条件的预警数据

+ 45 - 18
src/main/java/com/hhwy/qbeqsjy/service/CtrlService.java

@@ -479,27 +479,54 @@ public class CtrlService {
 
 
     /**
-     * 保存布控任务对应区域信息
-     * @param taskId
-     * @param areaList
+     * 保存用户域布控任务相关信息
+     * @param reqBody
      * @return
      */
     @Transactional
-    public boolean saveCtrlAreaInfo(String taskId, JSONArray areaList){
-        List<Object[]> ctrlAreaInfoList = new ArrayList<>();
-        Date createTime = new Date();
-        for (Object item : areaList) {
-            JSONObject areaObj = (JSONObject) item;
-            if(!areaObj.isEmpty()){
-                String areaId = areaObj.getString("areaId");
-                String areaName = areaObj.getString("areaName");
-                Integer areaGeoType = areaObj.getInteger("areaGeoType");
-                JSONArray location = areaObj.getJSONArray("location");
-                Object[] ctrlAreaInfo = new Object[]{taskId, areaId, areaName, areaGeoType, location, createTime};
-                ctrlAreaInfoList.add(ctrlAreaInfo);
+    public boolean saveCtrlTaskInfo(JSONObject reqBody){
+        List<Object[]> ctrlTaskInfoList = new ArrayList<>();
+        JSONObject taskInfo = reqBody.getJSONObject("taskInfo");
+        String rwbh = taskInfo.getString("rwbh");
+        String rwmc = taskInfo.getString("rwmc");
+        Integer rwlx = taskInfo.getInteger("rwlx");
+        String rwlxmc = taskInfo.getString("rwlxmc");
+        String rwdxlxmc = taskInfo.getString("rwdxlxmc");
+        String sqrxm = taskInfo.getString("sqrxm");
+        String sqrsfzh = taskInfo.getString("sqrsfzh");
+        String sqrjh = taskInfo.getString("sqrjh");
+        String sqrdwdm = taskInfo.getString("sqrdwdm");
+        String sqrdwmc = taskInfo.getString("sqrdwmc");
+        JSONArray areaList = reqBody.getJSONArray("areaList");
+        JSONArray clueList = reqBody.getJSONArray("clueList");
+        String cjsj = TimeTool.timeStampToDateString(TimeTool.getNowTimeStamp());
+        for (Object item : clueList) {
+            JSONObject clueObj = (JSONObject) item;
+            if(!clueObj.isEmpty()){
+                String ryxm = clueObj.getString("ryxm");
+                String zjlxdm = clueObj.getString("zjlxdm");
+                String zjhm = clueObj.getString("zjhm");
+                String hjd = clueObj.getString("hjd");
+                String sjh = clueObj.getString("sjh");
+                Integer yzzt = clueObj.getInteger("yzzt");
+                Integer xszt = clueObj.getInteger("xszt");
+                String rylb = clueObj.getString("rylb");
+                String rybq = clueObj.getString("rybq");
+                String gkjb = clueObj.getString("gkjb");
+                String gkjbmc = clueObj.getString("gkjbmc");
+                String zrjz = clueObj.getString("zrjz");
+                String zrmjid = clueObj.getString("zrmjid");
+                String zrmjxm = clueObj.getString("zrmjxm");
+                String zrmjjh = clueObj.getString("zrmjjh");
+                String zrmjlxfs = clueObj.getString("zrmjlxfs");
+                String zrdwdm = clueObj.getString("zrdwdm");
+                String zrbmdm = clueObj.getString("zrbmdm");
+                Object[] ctrlTaskInfo = new Object[]{rwbh, rwmc, rwlx, rwlxmc, rwdxlxmc, sqrxm, sqrsfzh, sqrjh, sqrdwdm, sqrdwmc, areaList.toJSONString(),
+                        ryxm, zjlxdm, zjhm, hjd, sjh, yzzt, xszt, rylb, rybq, gkjb, gkjbmc, zrjz, zrmjid, zrmjxm, zrmjjh, zrmjlxfs, zrdwdm, zrbmdm, cjsj};
+                ctrlTaskInfoList.add(ctrlTaskInfo);
             }
         }
-        return ctrlDao.batchInsertCtrlAreaInfo(ctrlAreaInfoList);
+        return ctrlDao.batchInsertCtrlTaskInfo(ctrlTaskInfoList);
     }
 
 
@@ -509,7 +536,7 @@ public class CtrlService {
      * @param clueList
      * @return
      */
-    @Transactional
+    /*@Transactional
     public boolean saveCtrlClueInfo(String taskId, JSONArray clueList){
         List<Object[]> ctrlClueInfoList = new ArrayList<>();
         Date createTime = new Date();
@@ -535,7 +562,7 @@ public class CtrlService {
             }
         }
         return ctrlDao.batchInsertCtrlClueInfo(ctrlClueInfoList);
-    }
+    }*/
 
 
     /**

+ 2 - 2
src/main/java/com/hhwy/qbeqsjy/strategy/impl/AUTHStrategy.java

@@ -37,7 +37,7 @@ public class AUTHStrategy implements Strategy {
      */
     @Override
     public List<Object[]> doParse(ConsumerRecords<Integer, String> records, List<Object[]> warningInfoList) {
-        if (records != null && records.count() > 0) {
+        /*if (records != null && records.count() > 0) {
             for (ConsumerRecord<Integer, String> record : records) {
                 JSONObject message = JSONObject.parseObject(record.value());
                 JSONObject uniCtrl = message.getJSONObject("UNICTRL");
@@ -93,7 +93,7 @@ public class AUTHStrategy implements Strategy {
                     }
                 }
             }
-        }
+        }*/
         return warningInfoList;
     }
 }

+ 4 - 0
src/main/resources/application.properties

@@ -75,6 +75,10 @@ query.max.count=1000
 
 
 
+# \u5355\u4F4D/\u90E8\u95E8\u7F16\u7801\u5B57\u5178
+
+
+