Browse Source

变更记录修改

linhuili 3 years ago
parent
commit
b5ff5d0899

+ 13 - 1
dmp-rwd-edit/pom.xml

@@ -103,6 +103,18 @@
             <artifactId>hutool-all</artifactId>
             <version>5.7.2</version>
         </dependency>
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>2.6</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.47</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
     <build>
@@ -126,7 +138,7 @@
                 <artifactId>maven-surefire-plugin</artifactId>
                 <version>2.22.2</version>
                 <configuration>
-                    <skipTests>false</skipTests>
+                    <skipTests>true</skipTests>
                     <forkMode>once</forkMode>
                     <argLine>-Dfile.encoding=UTF-8</argLine>
                 </configuration>

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

@@ -1,5 +1,7 @@
 package com.persagy.dmp.rwd.edit.entity;
 
+
+import com.alibaba.fastjson.JSONObject;
 import com.persagy.dmp.rwd.edit.enumeration.EnumOperationType;
 import com.persagy.dmp.rwd.edit.enumeration.EnumVersionState;
 import com.persagy.dmp.rwd.enums.ObjType;
@@ -7,11 +9,13 @@ import com.vladmihalcea.hibernate.type.json.JsonStringType;
 import lombok.Getter;
 import lombok.Setter;
 import org.hibernate.annotations.SQLDelete;
+import org.hibernate.annotations.Type;
 import org.hibernate.annotations.TypeDef;
 import org.hibernate.annotations.Where;
 
 import javax.persistence.*;
 import java.util.Date;
+import java.util.List;
 
 @Setter
 @Getter
@@ -20,6 +24,7 @@ import java.util.Date;
 @TypeDef(name = "json", typeClass = JsonStringType.class)
 @Where(clause = "valid = 1")
 @SQLDelete(sql = "update rwd_def_class_change_record set valid = 0 where id = ?")
+@TypeDef(name = "json", typeClass = JsonStringType.class)
 public class ClassDefChangeRecord {
 
     @Id
@@ -42,8 +47,10 @@ public class ClassDefChangeRecord {
     private EnumOperationType operationType;//操作类型
     private String operationUser;//操作人
     private Date operationTime;//操作时间
-    private String operationContentBefore; //操作内容-修改前
-    private String operationContentAfter;//操作内容-修改后
+    @Type(type = "json")
+    private List<JSONObject> operationContentBefore; //操作内容-修改前
+    @Type(type = "json")
+    private List<JSONObject>  operationContentAfter;//操作内容-修改后
     private String confirmUser;//确认人
     private Date confirmTime;//确认时间
     private String publishUser;//发布人

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

@@ -1,5 +1,6 @@
 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;
@@ -15,6 +16,7 @@ import org.hibernate.annotations.Where;
 
 import javax.persistence.*;
 import java.util.Date;
+import java.util.List;
 
 @Setter
 @Getter
@@ -61,8 +63,10 @@ public class FuncidDefChangeRecord {
     private EnumOperationType operationType;//操作类型
     private String operationUser;//操作人
     private Date operationTime;//操作时间
-    private String operationContentBefore; //操作内容-修改前
-    private String operationContentAfter;//操作内容-修改后
+    @Type(type = "json")
+    private List<JSONObject> operationContentBefore; //操作内容-修改前
+    @Type(type = "json")
+    private List<JSONObject>  operationContentAfter;//操作内容-修改后
     private String confirmUser;//确认人
     private Date confirmTime;//确认时间
     private String publishUser;//发布人

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

@@ -1,7 +1,6 @@
 package com.persagy.dmp.rwd.edit.service;
 
-import cn.hutool.json.JSONArray;
-import cn.hutool.json.JSONObject;
+import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.persagy.common.criteria.CriteriaUtils;
 import com.persagy.common.criteria.JacksonCriteria;
@@ -11,7 +10,6 @@ import com.persagy.common.web.PagedResponse;
 import com.persagy.dmp.rwd.edit.config.web.UserUtils;
 import com.persagy.dmp.rwd.edit.entity.ClassDef;
 import com.persagy.dmp.rwd.edit.entity.ClassDefChangeRecord;
-import com.persagy.dmp.rwd.edit.entity.FuncidDefChangeRecord;
 import com.persagy.dmp.rwd.edit.entity.QClassDefChangeRecord;
 import com.persagy.dmp.rwd.edit.entity.dto.ClassDefChangeRecordDTO;
 import com.persagy.dmp.rwd.edit.enumeration.EnumOperationType;
@@ -20,9 +18,10 @@ 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.model.ClassDefModel;
-import com.persagy.dmp.rwd.model.FuncidDefModel;
 import com.querydsl.core.types.dsl.BooleanExpression;
-import io.micrometer.core.instrument.util.StringUtils;
+import org.apache.commons.lang.ObjectUtils;
+import org.apache.commons.lang.StringUtils;
+
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.beanutils.BeanMap;
 import org.springframework.beans.BeanUtils;
@@ -144,10 +143,10 @@ public class ClassDefChangeRecordService {
             param.setGroupCode(classDef.getGroupCode());
             param.setObjType(classDef.getObjType());
             param.setName(classDef.getName());
-            if (param.getAliasCode() == null) {
+            if (StringUtils.isEmpty(param.getAliasCode())) {
                 param.setAliasCode(classDef.getAliasCode());
             }
-            if (param.getAliasName() == null) {
+            if (StringUtils.isEmpty(param.getAliasName())) {
                 param.setAliasName(classDef.getAliasName());
             }
             param.setType(classDef.getType());
@@ -424,27 +423,36 @@ public class ClassDefChangeRecordService {
         List<JSONObject> operationContentAfter = new ArrayList<>();
         Set<?> keySets = Collections.unmodifiableSet(beforeParamMap.keySet());
         for (Map.Entry<?, ?> afterEntry : afterParamMap.entrySet()) {
-            Object afterValue = afterEntry.getValue();
-            if(afterValue == null || "class".equals(afterEntry.getKey()) || "".equals(afterValue.toString())){
+            if(!keySets.contains(afterEntry.getKey()) || "id".equals(afterEntry.getKey()) || "version".equals(afterEntry.getKey())
+                    ||"class".equals(afterEntry.getKey()) ){
                 continue;
             }
+            Object afterValue = afterEntry.getValue();
             Object beforeValue = beforeParamMap.get(afterEntry.getKey());
-            if(!keySets.contains(afterEntry.getKey())){
+            if(ObjectUtils.equals(afterValue,beforeValue)){
                 continue;
             }
             JSONObject object = new JSONObject();
-            if(beforeValue == null || (beforeValue!=null && !afterValue.toString().equals(beforeValue.toString()))){
-                //变更前
-                object.put(afterEntry.getKey().toString(),beforeValue);
-                operationContentBefore.add(object);
-                //变更后
-                object = new JSONObject();
-                object.put(afterEntry.getKey().toString(),afterEntry.getValue());
-                operationContentAfter.add(object);
+            //变更前
+            if(beforeValue ==null){
+                object.put(afterEntry.getKey().toString(),"");
+            }else{
+                object.put(afterEntry.getKey().toString(),beforeValue.toString());
             }
+            operationContentBefore.add(object);
+
+            //变更后
+            object =new JSONObject();
+            if(afterValue ==null){
+                object.put(afterEntry.getKey().toString(),"");
+            }else{
+                object.put(afterEntry.getKey().toString(),afterValue.toString());
+            }
+            operationContentAfter.add(object);
         }
-        param.setOperationContentBefore(operationContentBefore.toString());
-        param.setOperationContentAfter(operationContentAfter.toString());
+
+        param.setOperationContentBefore(operationContentBefore);
+        param.setOperationContentAfter(operationContentAfter);
     }
 }
 

+ 31 - 24
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/service/FuncidDefChangeRecordService.java

@@ -1,6 +1,6 @@
 package com.persagy.dmp.rwd.edit.service;
 
-import cn.hutool.json.JSONObject;
+import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.persagy.common.criteria.CriteriaUtils;
@@ -11,7 +11,6 @@ import com.persagy.common.web.MapResponse;
 import com.persagy.common.web.PagedResponse;
 import com.persagy.dmp.rwd.edit.config.web.UserUtils;
 import com.persagy.dmp.rwd.edit.entity.*;
-import com.persagy.dmp.rwd.edit.entity.dto.ClassDefChangeRecordDTO;
 import com.persagy.dmp.rwd.edit.entity.dto.FuncidDefChangeRecordDTO;
 import com.persagy.dmp.rwd.edit.enumeration.EnumOperationType;
 import com.persagy.dmp.rwd.edit.enumeration.EnumVersionState;
@@ -19,17 +18,16 @@ 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.enums.FuncidDataType;
-import com.persagy.dmp.rwd.enums.ObjType;
 import com.persagy.dmp.rwd.model.ClassDefModel;
 import com.persagy.dmp.rwd.model.FuncidDefModel;
 import com.querydsl.core.types.dsl.BooleanExpression;
 import io.micrometer.core.instrument.util.StringUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.beanutils.BeanMap;
+import org.apache.commons.lang.ObjectUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-
 import javax.transaction.Transactional;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -174,10 +172,10 @@ public class FuncidDefChangeRecordService {
             }
             param.setOrigCode(funcidDef.getOrigCode());
             param.setName(funcidDef.getName());
-            if (param.getAliasCode() == null) {
+            if (StringUtils.isEmpty(param.getAliasCode())) {
                 param.setAliasCode(funcidDef.getAliasCode());
             }
-            if (param.getAliasName() == null) {
+            if (StringUtils.isEmpty(param.getAliasName())) {
                 param.setAliasName(funcidDef.getAliasName());
             }
             param.setClassCode(funcidDef.getClassCode());
@@ -185,19 +183,20 @@ public class FuncidDefChangeRecordService {
             param.setType(funcidDef.getType());
             param.setGroupCode(funcidDef.getGroupCode());
             param.setProjectId(funcidDef.getProjectId());
-            if (param.getFirstTag() == null) {
+
+            if (StringUtils.isEmpty(param.getFirstTag())) {
                 param.setFirstTag(funcidDef.getFirstTag());
             }
-            if (param.getSecondTag() == null) {
+            if (StringUtils.isEmpty(param.getFirstTag())) {
                 param.setSecondTag(funcidDef.getSecondTag());
             }
-            if(param.getPriority() == null){
+            if(StringUtils.isEmpty(param.getPriority())){
                 param.setPriority(funcidDef.getPriority());
             }
-            if(param.getInputMode() == null){
+            if(StringUtils.isEmpty(param.getInputMode())){
                 param.setInputMode(funcidDef.getInputMode());
             }
-            if(param.getUnit() == null){
+            if(StringUtils.isEmpty(param.getUnit())){
                 param.setUnit(funcidDef.getUnit());
             }
             param.setDataType(funcidDef.getDataType());
@@ -617,27 +616,35 @@ public class FuncidDefChangeRecordService {
         List<JSONObject> operationContentAfter = new ArrayList<>();
         Set<?> keySets = Collections.unmodifiableSet(beforeParamMap.keySet());
         for (Map.Entry<?, ?> afterEntry : afterParamMap.entrySet()) {
-            Object afterValue = afterEntry.getValue();
-            if(afterValue == null || "class".equals(afterEntry.getKey()) || "".equals(afterValue.toString())){
+            if(!keySets.contains(afterEntry.getKey()) || "id".equals(afterEntry.getKey()) || "version".equals(afterEntry.getKey())
+               ||"class".equals(afterEntry.getKey()) ){
                 continue;
             }
+            Object afterValue = afterEntry.getValue();
             Object beforeValue = beforeParamMap.get(afterEntry.getKey());
-            if(!keySets.contains(afterEntry.getKey())){
+            if(ObjectUtils.equals(afterValue,beforeValue)){
                 continue;
             }
             JSONObject object = new JSONObject();
-            if(beforeValue == null || (beforeValue!=null && !afterValue.toString().equals(beforeValue.toString()))){
-                //变更前
-                object.put(afterEntry.getKey().toString(),beforeValue);
-                operationContentBefore.add(object);
-                //变更后
-                object = new JSONObject();
-                object.put(afterEntry.getKey().toString(),afterEntry.getValue());
-                operationContentAfter.add(object);
+            //变更前
+            if(beforeValue ==null){
+                object.put(afterEntry.getKey().toString(),"");
+            }else{
+                object.put(afterEntry.getKey().toString(),beforeValue.toString());
+            }
+            operationContentBefore.add(object);
+
+            //变更后
+            object =new JSONObject();
+            if(afterValue ==null){
+                object.put(afterEntry.getKey().toString(),"");
+            }else{
+                object.put(afterEntry.getKey().toString(),afterValue.toString());
             }
+            operationContentAfter.add(object);
         }
-        param.setOperationContentBefore(operationContentBefore.toString());
-        param.setOperationContentAfter(operationContentAfter.toString());
+        param.setOperationContentBefore(operationContentBefore);
+        param.setOperationContentAfter(operationContentAfter);
     }
 }