Browse Source

修复bug,写入时转实体类报错

Memory_LG 7 months ago
parent
commit
f2fd74f0fa

+ 23 - 16
src/main/java/com/sooka/sponest/lawenforcement/record/service/impl/LawenforcementRecordServiceImpl.java

@@ -354,19 +354,26 @@ public class LawenforcementRecordServiceImpl extends BaseServiceImpl implements
             SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
             //转换为实体类集合
-            List<LawenforcementRecordDetailVO> recordListMessage = JSONArray.parseArray(messageArray.toJSONString(), LawenforcementRecordDetailVO.class);
+//            List<LawenforcementRecordDetailVO> recordListMessage = JSONArray.parseArray(messageArray.toJSONString(), LawenforcementRecordDetailVO.class);
 
             //存储数据的id
             List<String> idArray = new ArrayList<>();
 
             //以id为key,数据对象为value
-            Map<String, LawenforcementRecordDetailVO> recordMap = new HashMap<>();
+            Map<String, JSONObject> recordMap = new HashMap<>();
+
+            for (int i = 0; i < messageArray.size(); i++) {
+                JSONObject message = messageArray.getJSONObject(i);
+
+                idArray.add(message.getString("id"));
+                recordMap.put(message.getString("id"), message);
+            }
 
             //遍历报文数据,存储需要的信息
-            recordListMessage.forEach(message->{
-                idArray.add(message.getId());
-                recordMap.put(message.getId(), message);
-            });
+           /* recordListMessage.forEach(message->{
+                idArray.add(message.getString("id"));
+                recordMap.put(message.getString("id"), message);
+            });*/
 
             //调用获取数据方法,查出存在的数据
             List<Map<String, Object>> existMessage = recordMapper.getExistMessage(idArray);
@@ -374,20 +381,20 @@ public class LawenforcementRecordServiceImpl extends BaseServiceImpl implements
             //对存在的数据进行遍历更新;并且在recordMap中移除已经更新的数据
             existMessage.forEach(existMap->{
                 //取出本次报文中id存在的数据
-                LawenforcementRecordDetailVO message = recordMap.get(MapUtils.getString(existMap, "id"));
+                JSONObject message = recordMap.get(MapUtils.getString(existMap, "id"));
 
                 //报文数据的更新时间不是空,证明有更新
-                if(!Objects.equals(MapUtils.getLong(existMap, "dataUpdateTime"), message.getUpdateTime())){
+                if(!Objects.equals(MapUtils.getLong(existMap, "dataUpdateTime"), Long.parseLong(message.getString("updateTime")))){
                     Map<String, Object> addMessage = new HashMap<>();
-                    addMessage.put("id", message.getId());
-                    addMessage.put("jsonData", message);
+                    addMessage.put("id", message.getString("id"));
+                    addMessage.put("jsonData", message.toString());
                     addMessage.put("updateTime", simpleDateFormat.format(new Date()));
-                    addMessage.put("dataUpdateTime", message.getUpdateTime());
+                    addMessage.put("dataUpdateTime", message.getString("updateTime"));
                     recordMapper.updateJsonData(addMessage);
                 }
 
                 //移除更新的记录
-                recordMap.remove(message.getId());
+                recordMap.remove(message.getString("id"));
             });
 
 
@@ -395,16 +402,16 @@ public class LawenforcementRecordServiceImpl extends BaseServiceImpl implements
             List<Map<String, Object>> addMessageList = new ArrayList<>();
             //遍历剩余的map数据,用于新增报文
             recordMap.keySet().forEach(messageId->{
-                LawenforcementRecordDetailVO lawenforcementRecordDetailVO = recordMap.get(messageId);
+                JSONObject jsonObject = recordMap.get(messageId);
 
                 Date date = new Date();
                 Map<String, Object> addMessage = new HashMap<>();
                 addMessage.put("id", messageId);
-                addMessage.put("jsonData", lawenforcementRecordDetailVO);
+                addMessage.put("jsonData", jsonObject.toString());
                 addMessage.put("createTime", simpleDateFormat.format(date));
                 addMessage.put("updateTime", simpleDateFormat.format(date));
-                addMessage.put("dataCreateTime", lawenforcementRecordDetailVO.getCreateTime());
-                addMessage.put("dataUpdateTime", lawenforcementRecordDetailVO.getUpdateTime());
+                addMessage.put("dataCreateTime", jsonObject.getString("createTime"));
+                addMessage.put("dataUpdateTime", jsonObject.getString("updateTime"));
                 addMessageList.add(addMessage);
             });
             //如果新增的数据集合中不是空,则批量写入报文数据

+ 4 - 6
src/main/resources/mapper/lawenforcement/LawenforcementRecordMapper.xml

@@ -732,9 +732,7 @@
     </select>
 
     <select id="getExistRecord" parameterType="list" resultType="map">
-        select
-            id
-        from lawenforcement_record
+        select id from lawenforcement_record
         where id in
         <foreach collection="list" item="item" open="(" separator="," close=")">
             #{item}
@@ -743,18 +741,18 @@
 
     <select id="getJsonDataMessage" resultType="map">
         SELECT id, json_data as jsonData
-        FROM json_data
+        FROM lawenforcement_json_data
         WHERE update_time &gt;= DATE_SUB(NOW(), INTERVAL #{timeRadius} SECOND)
         AND update_time &lt;= NOW()
     </select>
 
     <select id="getTotal" resultType="int">
-        select count(1) from json_data
+        select count(1) from lawenforcement_json_data
     </select>
 
     <select id="getJsonDataMessageByPage" resultType="map">
         SELECT id, json_data as jsonData
-        FROM json_data
+        FROM lawenforcement_json_data
         limit ${pageNum}, ${pageSize}
     </select>