|
@@ -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)){
|
|
|
+
|
|
|
+ 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;
|
|
|
}
|
|
|
}
|
|
|
|