|
@@ -25,18 +25,25 @@ 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.FuncidCategory;
|
|
|
import com.persagy.dmp.rwd.enums.FuncidDataType;
|
|
|
import com.persagy.dmp.rwd.model.ClassDefModel;
|
|
|
import com.persagy.dmp.rwd.model.FuncidDefModel;
|
|
|
import com.persagy.dmp.rwd.model.RwdeditRefTypeInfosModel;
|
|
|
import com.querydsl.core.types.dsl.BooleanExpression;
|
|
|
import io.micrometer.core.instrument.util.StringUtils;
|
|
|
+import lombok.Data;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.beanutils.BeanMap;
|
|
|
import org.apache.commons.lang.ObjectUtils;
|
|
|
+import org.hibernate.annotations.Type;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import javax.persistence.Column;
|
|
|
+import javax.persistence.EnumType;
|
|
|
+import javax.persistence.Enumerated;
|
|
|
import javax.transaction.Transactional;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -174,13 +181,15 @@ public class FuncidDefChangeRecordService {
|
|
|
if (funcidDefModelList != null) {
|
|
|
funcidDef = funcidDefModelList.get(0);
|
|
|
}
|
|
|
+ CacheModel cache = new CacheModel();
|
|
|
if (EnumOperationType.create.equals(param.getOperationType())) {
|
|
|
if (funcidDef != null) {
|
|
|
response.setFail("code is exists");
|
|
|
return response;
|
|
|
}
|
|
|
//记录所有变更内容
|
|
|
- Map<String, Object> afterParamMap = MapObjUtil.object2Map(param);
|
|
|
+ BeanUtils.copyProperties(param,cache);
|
|
|
+ Map<String, Object> afterParamMap = MapObjUtil.object2Map(cache);
|
|
|
ArrayNode arrayNode = addCreateRecord(afterParamMap);
|
|
|
if(arrayNode!=null && arrayNode.size()>0){
|
|
|
param.setOperationContentAfter(arrayNode);
|
|
@@ -231,7 +240,8 @@ public class FuncidDefChangeRecordService {
|
|
|
param.setSubFlag(funcidDef.getSubFlag());
|
|
|
param.setWeakPoint(funcidDef.getWeakPoint());
|
|
|
//添加变更记录
|
|
|
- addChangeRecord(funcidDef,param);
|
|
|
+ BeanUtils.copyProperties(param,cache);
|
|
|
+ addChangeRecord(funcidDef,param,cache);
|
|
|
}
|
|
|
|
|
|
/*QFuncidDefChangeRecord qt = QFuncidDefChangeRecord.funcidDefChangeRecord;
|
|
@@ -247,6 +257,9 @@ public class FuncidDefChangeRecordService {
|
|
|
param.setOperationTime(new Date());
|
|
|
param.setValid(true);
|
|
|
param.setState(EnumVersionState.INIT);
|
|
|
+ if(StringUtils.isEmpty(param.getShareType())){
|
|
|
+ param.setShareType(FuncidShareTypeEnum.SELF.getValue());
|
|
|
+ }
|
|
|
repository.save(param);
|
|
|
response.add("id", param.getId());
|
|
|
return response;
|
|
@@ -764,17 +777,18 @@ public class FuncidDefChangeRecordService {
|
|
|
* 添加变更记录
|
|
|
* @param funcidDef
|
|
|
* @param param
|
|
|
+ * @param cache
|
|
|
*/
|
|
|
- private void addChangeRecord(FuncidDefModel funcidDef,FuncidDefChangeRecord param){
|
|
|
+ private void addChangeRecord(FuncidDefModel funcidDef,FuncidDefChangeRecord param,CacheModel cache){
|
|
|
Map<String, Object> beforeParamMap = MapObjUtil.object2Map(funcidDef);
|
|
|
- Map<String, Object> afterParamMap = MapObjUtil.object2Map(param);
|
|
|
+ Map<String, Object> afterParamMap = MapObjUtil.object2Map(cache);
|
|
|
//比较变更记录
|
|
|
ArrayNode operationContentBefore = JsonNodeFactory.instance.arrayNode();
|
|
|
ArrayNode operationContentAfter = JsonNodeFactory.instance.arrayNode();
|
|
|
Set<?> keySets = Collections.unmodifiableSet(beforeParamMap.keySet());
|
|
|
for (Map.Entry<?, ?> afterEntry : afterParamMap.entrySet()) {
|
|
|
String key = afterEntry.getKey().toString();
|
|
|
- if(!keySets.contains(key) || "id".equals(key) || "version".equals(key)|| "orderSeq".equals(key) || "shareType".equals(key)){
|
|
|
+ if(!keySets.contains(key)){
|
|
|
continue;
|
|
|
}
|
|
|
Object afterValue = afterEntry.getValue();
|
|
@@ -817,10 +831,6 @@ public class FuncidDefChangeRecordService {
|
|
|
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)
|
|
|
- || "classCode".equals(key) || "objType".equals(key) || "parentCode".equals(key)|| "orderSeq".equals(key) || "shareType".equals(key)){
|
|
|
- continue;
|
|
|
- }
|
|
|
if(value == null){
|
|
|
continue;
|
|
|
}
|
|
@@ -841,5 +851,35 @@ public class FuncidDefChangeRecordService {
|
|
|
}
|
|
|
return operationContentAfter;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ @Data
|
|
|
+ private static class CacheModel {
|
|
|
+ private String code;
|
|
|
+ private String origCode;
|
|
|
+ private String name;
|
|
|
+ private String aliasCode;
|
|
|
+ private String aliasName;
|
|
|
+ @Enumerated(EnumType.STRING)
|
|
|
+ private FuncidCategory category;
|
|
|
+ private String type;
|
|
|
+ private String firstTag;
|
|
|
+ private String secondTag;
|
|
|
+ private String priority;
|
|
|
+ private String inputMode;
|
|
|
+ private String unit;
|
|
|
+ @Enumerated(EnumType.STRING)
|
|
|
+ private FuncidDataType dataType;
|
|
|
+ private String origDataType;
|
|
|
+ private Boolean isMultiple = false;
|
|
|
+ private Boolean isRegion = false;
|
|
|
+ private String formater;
|
|
|
+ @Type(type = "json")
|
|
|
+ private ArrayNode dataSource;
|
|
|
+ private String note;
|
|
|
+ private Boolean subFlag;
|
|
|
+ private Boolean weakPoint;
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|