Преглед на файлове

[task-5492] 设备日志适配解析json功能

xiexh преди 7 месеца
родител
ревизия
8081d20122
променени са 1 файла, в които са добавени 29 реда и са изтрити 20 реда
  1. 29 20
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/aop/EquipmentDBLogAspect.java

+ 29 - 20
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/aop/EquipmentDBLogAspect.java

@@ -2,7 +2,6 @@ package com.lc.ibps.aop;
 
 import cn.hutool.core.date.StopWatch;
 import cn.hutool.json.JSONArray;
-import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.lc.ibps.base.core.util.BeanUtils;
 import com.lc.ibps.base.framework.table.ICommonDao;
@@ -22,7 +21,6 @@ import org.springframework.web.context.request.ServletRequestAttributes;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.util.*;
-import java.util.stream.Collectors;
 
 @Aspect
 @Component
@@ -115,12 +113,15 @@ public class EquipmentDBLogAspect {
             String WhereStr = whereBuilder.toString();
             String zbWhereStr = WhereStr.replace("id_", "parent_id_");
             String query = String.format("SELECT * FROM %s WHERE %s", tableName,WhereStr);
-            List<Map<String,Object>> list = commonDao.query(query);
+            List<Map<String,Object>> masterList = commonDao.query(query);
             //获取子表的数据
-            String zbData = getChildData(tableName, zbWhereStr);
+            getChildData(tableName, zbWhereStr,masterList);
             //拼接主子表的数据
-            if(BeanUtils.isNotEmpty(list)){
-                oldData = JSONUtil.toJsonStr(list)+zbData;
+            if(BeanUtils.isNotEmpty(masterList)){
+                // 使用 JSONArray 并设置日期格式防止时间被转换为毫秒
+                JSONArray jsonArrayResult = new JSONArray(masterList);
+                jsonArrayResult.setDateFormat("yyyy-MM-dd HH:mm:ss");
+                oldData = jsonArrayResult.toString();
             }
         }
         if (SAVE_METHOD.equals(methodName)) {
@@ -132,38 +133,46 @@ public class EquipmentDBLogAspect {
                 // 构建条件
                 String zbWhereStr = " parent_id_ = '"+id+"'";
                 String query = String.format("SELECT * FROM %s WHERE id_ = '"+id+"' ", tableName);
-                List<Map<String,Object>> list = commonDao.query(query);
+                List<Map<String,Object>> masterList = commonDao.query(query);
                 //获取子表的数据
-                String zbData = getChildData(tableName, zbWhereStr);
-                if(BeanUtils.isNotEmpty(list)){
-                    oldData = JSONUtil.toJsonStr(list)+zbData;
+                getChildData(tableName, zbWhereStr, masterList);
+                if(BeanUtils.isNotEmpty(masterList)){
+                    // 使用 JSONArray 并设置日期格式防止时间被转换为毫秒
+                    JSONArray jsonArrayResult = new JSONArray(masterList);
+                    jsonArrayResult.setDateFormat("yyyy-MM-dd HH:mm:ss");
+                    oldData = jsonArrayResult.toString();
                 }
             }
         }
         return oldData;
     }
 
-    private String getChildData(String tableName, String whereStr) {
-        String zbData =",T_FSSBJPJB-";
-        String zbData2 =",T_WHZQJXM-";
+    private void getChildData(String tableName, String whereStr, List<Map<String, Object>> masterList) {
         if("T_SBDJ".equals(tableName)){
             //ids.replace("id_","parent_id_");
+            if(BeanUtils.isNotEmpty(masterList)){
+                for (Map<String, Object> map : masterList) {
+                    map.put("table_name", "T_SBDJ");
+                }
+            }
             String query = String.format("SELECT * FROM T_FSSBJPJB WHERE %s",whereStr);
             List<Map<String,Object>> list = commonDao.query(query);
             if(BeanUtils.isNotEmpty(list)){
-                zbData = zbData+JSONUtil.toJsonStr(list);
-            }else{
-                zbData ="T_FSSBJPJB-{}";
+                for (Map<String, Object> map : list) {
+                    map.put("table_name", "T_FSSBJPJB");
+                }
+                masterList.addAll(list);
             }
             String query2 = String.format("SELECT * FROM T_WHZQJXM WHERE %s",whereStr);
             List<Map<String,Object>> list2 = commonDao.query(query2);
             if(BeanUtils.isNotEmpty(list2)){
-                zbData2 = zbData2+JSONUtil.toJsonStr(list2);
-            }else{
-                zbData2 ="T_WHZQJXM-{}";
+                for (Map<String, Object> map : list2) {
+                    map.put("table_name", "T_WHZQJXM");
+                }
+                masterList.addAll(list2);
             }
+
         }
-        return zbData+zbData2;
     }
 
     /**