浏览代码

Merge branch 'master' of http://39.106.8.246:3003/persagy/dmp

lijie 3 年之前
父节点
当前提交
8bd0314aee

+ 5 - 5
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/service/ClassDefChangeRecordService.java

@@ -20,6 +20,7 @@ import com.persagy.dmp.rwd.edit.enumeration.EnumVersionState;
 import com.persagy.dmp.rwd.edit.model.DtDataModel;
 import com.persagy.dmp.rwd.edit.repository.ClassDefChangeRecordRepository;
 import com.persagy.dmp.rwd.edit.repository.ClassDefRepository;
+import com.persagy.dmp.rwd.edit.util.MapObjUtil;
 import com.persagy.dmp.rwd.model.ClassDefModel;
 import com.querydsl.core.types.dsl.BooleanExpression;
 import org.apache.commons.lang.ObjectUtils;
@@ -141,7 +142,7 @@ public class ClassDefChangeRecordService {
                 return response;
             }
             //记录所有变更内容
-            Map<?, ?> afterParamMap = new BeanMap(param);
+            Map<String, Object> afterParamMap = MapObjUtil.object2Map(param);
             ArrayNode arrayNode = funcidDefChangeRecordService.addCreateRecord(afterParamMap);
             if(arrayNode!=null && arrayNode.size()>0){
                 param.setOperationContentAfter(arrayNode);
@@ -427,16 +428,15 @@ public class ClassDefChangeRecordService {
      * @param param
      */
     private void addChangeRecord(ClassDefModel classDef, ClassDefChangeRecord param){
-        Map<?, ?> beforeParamMap = new BeanMap(classDef);
-        Map<?, ?> afterParamMap = new BeanMap(param);
+        Map<String, Object> beforeParamMap = MapObjUtil.object2Map(classDef);
+        Map<String, Object> afterParamMap = MapObjUtil.object2Map(param);
 
         //比较变更记录
         ArrayNode operationContentBefore = JsonNodeFactory.instance.arrayNode();
         ArrayNode operationContentAfter = JsonNodeFactory.instance.arrayNode();
         Set<?> keySets = Collections.unmodifiableSet(beforeParamMap.keySet());
         for (Map.Entry<?, ?> afterEntry : afterParamMap.entrySet()) {
-            if(!keySets.contains(afterEntry.getKey()) || "id".equals(afterEntry.getKey()) || "version".equals(afterEntry.getKey())
-                    ||"class".equals(afterEntry.getKey()) ){
+            if(!keySets.contains(afterEntry.getKey()) || "id".equals(afterEntry.getKey()) || "version".equals(afterEntry.getKey())){
                 continue;
             }
             Object afterValue = afterEntry.getValue();

+ 26 - 9
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/service/FuncidDefChangeRecordService.java

@@ -1,5 +1,6 @@
 package com.persagy.dmp.rwd.edit.service;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.node.ArrayNode;
@@ -19,6 +20,8 @@ import com.persagy.dmp.rwd.edit.enumeration.EnumVersionState;
 import com.persagy.dmp.rwd.edit.model.DtDataModel;
 import com.persagy.dmp.rwd.edit.repository.FuncidDefChangeRecordRepository;
 import com.persagy.dmp.rwd.edit.repository.FuncidDefRepository;
+import com.persagy.dmp.rwd.edit.repository.RwdeditRefTypeRepository;
+import com.persagy.dmp.rwd.edit.util.MapObjUtil;
 import com.persagy.dmp.rwd.enums.FuncidDataType;
 import com.persagy.dmp.rwd.model.ClassDefModel;
 import com.persagy.dmp.rwd.model.FuncidDefModel;
@@ -60,6 +63,9 @@ public class FuncidDefChangeRecordService {
     @Autowired
     DtDataService dtDataService;
 
+    @Autowired
+    RwdeditRefTypeRepository refTypeRepository;
+
     private List<BooleanExpression> parse(ObjectNode object) {
         List<BooleanExpression> list = new LinkedList<>();
         QFuncidDefChangeRecord qt = QFuncidDefChangeRecord.funcidDefChangeRecord;
@@ -171,7 +177,7 @@ public class FuncidDefChangeRecordService {
                 return response;
             }
             //记录所有变更内容
-            Map<?, ?> afterParamMap = new BeanMap(param);
+            Map<String, Object> afterParamMap = MapObjUtil.object2Map(param);
             ArrayNode arrayNode = addCreateRecord(afterParamMap);
             if(arrayNode!=null && arrayNode.size()>0){
                 param.setOperationContentAfter(arrayNode);
@@ -620,15 +626,14 @@ public class FuncidDefChangeRecordService {
      * @param param
      */
     private void addChangeRecord(FuncidDefModel funcidDef,FuncidDefChangeRecord param){
-        Map<?, ?> beforeParamMap = new BeanMap(funcidDef);
-        Map<?, ?> afterParamMap = new BeanMap(param);
+        Map<String, Object> beforeParamMap = MapObjUtil.object2Map(funcidDef);
+        Map<String, Object> afterParamMap = MapObjUtil.object2Map(param);
         //比较变更记录
         ArrayNode operationContentBefore = JsonNodeFactory.instance.arrayNode();
         ArrayNode operationContentAfter = JsonNodeFactory.instance.arrayNode();
         Set<?> keySets = Collections.unmodifiableSet(beforeParamMap.keySet());
         for (Map.Entry<?, ?> afterEntry : afterParamMap.entrySet()) {
-            if(!keySets.contains(afterEntry.getKey()) || "id".equals(afterEntry.getKey()) || "version".equals(afterEntry.getKey())
-               ||"class".equals(afterEntry.getKey()) ){
+            if(!keySets.contains(afterEntry.getKey()) || "id".equals(afterEntry.getKey()) || "version".equals(afterEntry.getKey())){
                 continue;
             }
             Object afterValue = afterEntry.getValue();
@@ -666,18 +671,30 @@ public class FuncidDefChangeRecordService {
         ArrayNode operationContentAfter = JsonNodeFactory.instance.arrayNode();
         for (Map.Entry<?, ?> afterEntry : afterParamMap.entrySet()) {
             String key = afterEntry.getKey().toString();
+            Object value = afterEntry.getValue();
             if("groupCode".equals(key) || "projectId".equals(key) || "type".equals(key)|| "operationType".equals(key)
-                    || "class".equals(key) || "classCode".equals(key) || "objType".equals(key) || "parentCode".equals(key)){
+                 || "classCode".equals(key) || "objType".equals(key) || "parentCode".equals(key)){
                 continue;
             }
-            if(afterEntry.getValue() == null){
+            if(value == null){
                 continue;
             }
             ObjectNode object = JsonNodeFactory.instance.objectNode();
-            object.put(afterEntry.getKey().toString(),afterEntry.getValue().toString());
+            Object dataType = afterParamMap.get("dataType");
+            if(dataType!=null && "REFENUM".equals(dataType.toString()) && "dataSource".equals(key)){
+                //查询知识库refKey的中文名称
+                JSONArray dataSource = JSONArray.parseArray(value.toString());
+                if(dataSource != null && dataSource.size()>0){
+                    String refKey = dataSource.getJSONObject(0).getString("refKey");
+                    RwdeditRefType refType = refTypeRepository.findById(refKey).get();
+                    object.put(afterEntry.getKey().toString(),refType.getName());
+                }
+            }else{
+                object.put(afterEntry.getKey().toString(),value.toString());
+            }
             operationContentAfter.add(object);
         }
-       return operationContentAfter;
+        return operationContentAfter;
     }
 }
 

+ 37 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/util/MapObjUtil.java

@@ -0,0 +1,37 @@
+package com.persagy.dmp.rwd.edit.util;
+
+import java.lang.reflect.Field;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * Description
+ *
+ * @author:linhuili
+ * @date:2021/6/29
+ */
+public class MapObjUtil {
+    /**
+     * 实体对象转成Map
+     *
+     * @param obj 实体对象
+     * @return
+     */
+    public static Map<String, Object> object2Map(Object obj) {
+        Map<String, Object> map = new LinkedHashMap<>();
+        if (obj == null) {
+            return map;
+        }
+        Class clazz = obj.getClass();
+        Field[] fields = clazz.getDeclaredFields();
+        try {
+            for (Field field : fields) {
+                field.setAccessible(true);
+                map.put(field.getName(), field.get(obj));
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return map;
+    }
+}