Browse Source

添加引用类型

fengyanjie 4 years ago
parent
commit
0eb934e605

+ 10 - 10
dmp-model/src/main/java/com/persagy/dmp/rwd/enums/FuncidDataType.java

@@ -2,16 +2,16 @@ package com.persagy.dmp.rwd.enums;
 
 public enum FuncidDataType {
 
-	INTEGER,
-	DOUBLE,
-	BOOLEAN,
-	STRING,
-	DATETIME,
-	ENUM,
-	MENUM,
-	ATTACHMENT,
-	OBJECT,
-	ENUMREF
+    INTEGER,
+    DOUBLE,
+    BOOLEAN,
+    STRING,
+    DATETIME,
+    ENUM,
+    MENUM,
+    ATTACHMENT,
+    OBJECT,
+    REFENUM
 
 }
 

+ 25 - 4
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/service/FuncidDefChangeRecordService.java

@@ -1,15 +1,19 @@
 package com.persagy.dmp.rwd.edit.service;
 
+import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.persagy.common.criteria.CriteriaUtils;
 import com.persagy.common.criteria.JacksonCriteria;
+import com.persagy.common.json.JacksonMapper;
 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.FuncidDefChangeRecord;
 import com.persagy.dmp.rwd.edit.entity.QFuncidDefChangeRecord;
+import com.persagy.dmp.rwd.edit.entity.RwdeditRefTypeInfos;
 import com.persagy.dmp.rwd.edit.enumeration.EnumOperationType;
 import com.persagy.dmp.rwd.edit.repository.FuncidDefChangeRecordRepository;
+import com.persagy.dmp.rwd.enums.FuncidDataType;
 import com.persagy.dmp.rwd.model.FuncidDefModel;
 import com.querydsl.core.types.dsl.BooleanExpression;
 import lombok.extern.slf4j.Slf4j;
@@ -32,6 +36,9 @@ public class FuncidDefChangeRecordService {
     FuncidDefService funcidDefService;
 
     @Autowired
+    RwdeditRefTypeInfosService rwdeditRefTypeInfosService;
+
+    @Autowired
     CriteriaUtils criteriaUtils;
 
     private List<BooleanExpression> parse(ObjectNode object) {
@@ -285,7 +292,12 @@ public class FuncidDefChangeRecordService {
                     } else {
                         sql.append("'" + changeRecord.getUnit() + "',");
                     }
-                    sql.append("'" + changeRecord.getDataType() + "',");
+                    boolean refenumBool = FuncidDataType.REFENUM.equals(changeRecord.getDataType());
+                    if (refenumBool) {
+                        sql.append("'ENUM',");
+                    } else {
+                        sql.append("'" + changeRecord.getDataType() + "',");
+                    }
                     if (changeRecord.getOrigDataType() == null) {
                         sql.append("null,");
                     } else {
@@ -301,10 +313,19 @@ public class FuncidDefChangeRecordService {
                     } else {
                         sql.append("'" + changeRecord.getFormater() + "')");
                     }
-                    if (changeRecord.getDataSource() == null) {
-                        sql.append("null,");
+                    if (refenumBool) {
+                        ArrayNode dataSource = changeRecord.getDataSource();
+                        String refKey = dataSource.get(0).get("refKey").toString();
+                        JacksonCriteria queryRef = JacksonCriteria.newInstance();
+                        queryRef.add("refKey", refKey);
+                        List<RwdeditRefTypeInfos> refInfos = rwdeditRefTypeInfosService.query(queryRef).getData();
+                        sql.append("'" + JacksonMapper.toSimpleJson(refInfos) + "')");
                     } else {
-                        sql.append("'" + changeRecord.getDataSource() + "')");
+                        if (changeRecord.getDataSource() == null) {
+                            sql.append("null,");
+                        } else {
+                            sql.append("'" + JacksonMapper.toSimpleJson(changeRecord.getDataSource()) + "')");
+                        }
                     }
                     if (changeRecord.getNote() == null) {
                         sql.append("null,");

+ 38 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/service/RwdeditRefTypeInfosService.java

@@ -0,0 +1,38 @@
+package com.persagy.dmp.rwd.edit.service;
+
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.common.criteria.CriteriaUtils;
+import com.persagy.common.criteria.JacksonCriteria;
+import com.persagy.common.web.PagedResponse;
+import com.persagy.dmp.rwd.edit.entity.QRwdeditRefTypeInfos;
+import com.persagy.dmp.rwd.edit.entity.RwdeditRefTypeInfos;
+import com.querydsl.core.types.dsl.BooleanExpression;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.LinkedList;
+import java.util.List;
+
+@Slf4j
+@Service
+public class RwdeditRefTypeInfosService {
+
+    @Autowired
+    private CriteriaUtils criteriaUtils;
+
+    private List<BooleanExpression> parse(ObjectNode object) {
+        List<BooleanExpression> list = new LinkedList<>();
+        QRwdeditRefTypeInfos qt = QRwdeditRefTypeInfos.rwdeditRefTypeInfos;
+        list.addAll(CriteriaUtils.parse(qt.refKey, object.get("refKey")));
+        list.addAll(CriteriaUtils.parse(qt.code, object.get("code")));
+        list.addAll(CriteriaUtils.parse(qt.createUser, object.get("createUser")));
+        list.addAll(CriteriaUtils.parse(qt.updateUser, object.get("updateUser")));
+        return list;
+    }
+
+    public PagedResponse<RwdeditRefTypeInfos> query(JacksonCriteria criteria) {
+        return criteriaUtils.query(QRwdeditRefTypeInfos.rwdeditRefTypeInfos, this::parse, criteria);
+    }
+}
+