Просмотр исходного кода

信息点/类型添加后,变更记录记录所有新增内容

linhuili 3 лет назад
Родитель
Сommit
648d4ccc6e

+ 3 - 2
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/entity/ClassDefChangeRecord.java

@@ -2,6 +2,7 @@ package com.persagy.dmp.rwd.edit.entity;
 
 
 import com.alibaba.fastjson.JSONObject;
+import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.persagy.dmp.rwd.edit.enumeration.EnumOperationType;
 import com.persagy.dmp.rwd.edit.enumeration.EnumVersionState;
 import com.persagy.dmp.rwd.enums.ObjType;
@@ -48,9 +49,9 @@ public class ClassDefChangeRecord {
     private String operationUser;//操作人
     private Date operationTime;//操作时间
     @Type(type = "json")
-    private List<JSONObject> operationContentBefore; //操作内容-修改前
+    private ArrayNode operationContentBefore; //操作内容-修改前
     @Type(type = "json")
-    private List<JSONObject>  operationContentAfter;//操作内容-修改后
+    private ArrayNode operationContentAfter;//操作内容-修改后
     private String confirmUser;//确认人
     private Date confirmTime;//确认时间
     private String publishUser;//发布人

+ 4 - 2
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/entity/FuncidDefChangeRecord.java

@@ -9,6 +9,7 @@ import com.persagy.dmp.rwd.enums.FuncidDataType;
 import com.vladmihalcea.hibernate.type.json.JsonStringType;
 import lombok.Getter;
 import lombok.Setter;
+import org.apache.poi.ss.formula.functions.T;
 import org.hibernate.annotations.SQLDelete;
 import org.hibernate.annotations.Type;
 import org.hibernate.annotations.TypeDef;
@@ -17,6 +18,7 @@ import org.hibernate.annotations.Where;
 import javax.persistence.*;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 @Setter
 @Getter
@@ -64,9 +66,9 @@ public class FuncidDefChangeRecord {
     private String operationUser;//操作人
     private Date operationTime;//操作时间
     @Type(type = "json")
-    private List<JSONObject> operationContentBefore; //操作内容-修改前
+    private ArrayNode operationContentBefore; //操作内容-修改前
     @Type(type = "json")
-    private List<JSONObject>  operationContentAfter;//操作内容-修改后
+    private ArrayNode operationContentAfter;//操作内容-修改后
     private String confirmUser;//确认人
     private Date confirmTime;//确认时间
     private String publishUser;//发布人

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

@@ -1,6 +1,9 @@
 package com.persagy.dmp.rwd.edit.service;
 
 import com.alibaba.fastjson.JSONObject;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.persagy.common.criteria.CriteriaUtils;
 import com.persagy.common.criteria.JacksonCriteria;
@@ -51,6 +54,9 @@ public class ClassDefChangeRecordService {
     @Autowired
     DtDataService dtDataService;
 
+    @Autowired
+    FuncidDefChangeRecordService funcidDefChangeRecordService;
+
     private List<BooleanExpression> parse(ObjectNode object) {
         List<BooleanExpression> list = new LinkedList<>();
         QClassDefChangeRecord qt = QClassDefChangeRecord.classDefChangeRecord;
@@ -134,6 +140,12 @@ public class ClassDefChangeRecordService {
                 response.setFail("code is exists");
                 return response;
             }
+            //记录所有变更内容
+            Map<?, ?> afterParamMap = new BeanMap(param);
+            ArrayNode arrayNode = funcidDefChangeRecordService.addCreateRecord(afterParamMap);
+            if(arrayNode!=null && arrayNode.size()>0){
+                param.setOperationContentAfter(arrayNode);
+            }
         } else {
             if (classDefList.size() == 0) {
                 response.setFail("code not exists");
@@ -419,8 +431,8 @@ public class ClassDefChangeRecordService {
         Map<?, ?> afterParamMap = new BeanMap(param);
 
         //比较变更记录
-        List<JSONObject> operationContentBefore = new ArrayList<>();
-        List<JSONObject> operationContentAfter = new ArrayList<>();
+        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())
@@ -432,7 +444,7 @@ public class ClassDefChangeRecordService {
             if(ObjectUtils.equals(afterValue,beforeValue)){
                 continue;
             }
-            JSONObject object = new JSONObject();
+            ObjectNode object = JsonNodeFactory.instance.objectNode();
             //变更前
             if(beforeValue ==null){
                 object.put(afterEntry.getKey().toString(),"");
@@ -442,7 +454,7 @@ public class ClassDefChangeRecordService {
             operationContentBefore.add(object);
 
             //变更后
-            object =new JSONObject();
+            object = JsonNodeFactory.instance.objectNode();
             if(afterValue ==null){
                 object.put(afterEntry.getKey().toString(),"");
             }else{
@@ -454,5 +466,6 @@ public class ClassDefChangeRecordService {
         param.setOperationContentBefore(operationContentBefore);
         param.setOperationContentAfter(operationContentAfter);
     }
+
 }
 

+ 38 - 6
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/service/FuncidDefChangeRecordService.java

@@ -1,7 +1,9 @@
 package com.persagy.dmp.rwd.edit.service;
 
 import com.alibaba.fastjson.JSONObject;
+import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.persagy.common.criteria.CriteriaUtils;
 import com.persagy.common.criteria.JacksonCriteria;
@@ -133,6 +135,8 @@ public class FuncidDefChangeRecordService {
                 }
                 if("equipment".equals(classDefModel.getObjType().name())){
                     changeRecordDTO.setEquipmentName(classDefDataMap.get(classDefModel.getCode()).getName());
+                }else{
+                    changeRecordDTO.setMajorName(classDefDataMap.get(item.getClassCode()).getName());
                 }
             }
             result.add(changeRecordDTO);
@@ -166,6 +170,12 @@ public class FuncidDefChangeRecordService {
                 response.setFail("code is exists");
                 return response;
             }
+            //记录所有变更内容
+            Map<?, ?> afterParamMap = new BeanMap(param);
+            ArrayNode arrayNode = addCreateRecord(afterParamMap);
+            if(arrayNode!=null && arrayNode.size()>0){
+                param.setOperationContentAfter(arrayNode);
+            }
         } else {
             if (funcidDef == null) {
                 response.setFail("code not exists");
@@ -211,7 +221,7 @@ public class FuncidDefChangeRecordService {
             }
             param.setSubFlag(funcidDef.getSubFlag());
             param.setWeakPoint(funcidDef.getWeakPoint());
-            //添加变更记录
+           //添加变更记录
             addChangeRecord(funcidDef,param);
         }
 
@@ -223,6 +233,7 @@ public class FuncidDefChangeRecordService {
         if (list.size() > 0) {
             repository.deleteAll(list);
         }*/
+
         param.setOperationUser(UserUtils.currentUserId() + "");
         param.setOperationTime(new Date());
         param.setValid(true);
@@ -611,10 +622,9 @@ public class FuncidDefChangeRecordService {
     private void addChangeRecord(FuncidDefModel funcidDef,FuncidDefChangeRecord param){
         Map<?, ?> beforeParamMap = new BeanMap(funcidDef);
         Map<?, ?> afterParamMap = new BeanMap(param);
-
         //比较变更记录
-        List<JSONObject> operationContentBefore = new ArrayList<>();
-        List<JSONObject> operationContentAfter = new ArrayList<>();
+        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())
@@ -626,7 +636,7 @@ public class FuncidDefChangeRecordService {
             if(ObjectUtils.equals(afterValue,beforeValue)){
                 continue;
             }
-            JSONObject object = new JSONObject();
+            ObjectNode object = JsonNodeFactory.instance.objectNode();
             //变更前
             if(beforeValue ==null){
                 object.put(afterEntry.getKey().toString(),"");
@@ -636,7 +646,7 @@ public class FuncidDefChangeRecordService {
             operationContentBefore.add(object);
 
             //变更后
-            object =new JSONObject();
+            object = JsonNodeFactory.instance.objectNode();
             if(afterValue ==null){
                 object.put(afterEntry.getKey().toString(),"");
             }else{
@@ -647,5 +657,27 @@ public class FuncidDefChangeRecordService {
         param.setOperationContentBefore(operationContentBefore);
         param.setOperationContentAfter(operationContentAfter);
     }
+
+    /**
+     * 获取新增记录
+     * @param afterParamMap
+     */
+    public ArrayNode addCreateRecord(Map<?, ?> afterParamMap){
+        ArrayNode operationContentAfter = JsonNodeFactory.instance.arrayNode();
+        for (Map.Entry<?, ?> afterEntry : afterParamMap.entrySet()) {
+            String key = afterEntry.getKey().toString();
+            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)){
+                continue;
+            }
+            if(afterEntry.getValue() == null){
+                continue;
+            }
+            ObjectNode object = JsonNodeFactory.instance.objectNode();
+            object.put(afterEntry.getKey().toString(),afterEntry.getValue().toString());
+            operationContentAfter.add(object);
+        }
+       return operationContentAfter;
+    }
 }