From 807e2c7a2ca8283ba6d6f764c83320ad5e023349 Mon Sep 17 00:00:00 2001
From: kimi <kimi42345@gmail.com>
Date: 星期四, 19 三月 2020 09:01:04 +0800
Subject: [PATCH] fix   放开红点的权限

---
 src/main/java/com/highdatas/mdm/service/impl/SysFieldServiceImpl.java |   39 +++++++++++++++++++++++++++++----------
 1 files changed, 29 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/highdatas/mdm/service/impl/SysFieldServiceImpl.java b/src/main/java/com/highdatas/mdm/service/impl/SysFieldServiceImpl.java
index 1d31b43..4c87015 100644
--- a/src/main/java/com/highdatas/mdm/service/impl/SysFieldServiceImpl.java
+++ b/src/main/java/com/highdatas/mdm/service/impl/SysFieldServiceImpl.java
@@ -2,12 +2,11 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.highdatas.mdm.entity.Flows;
-import com.highdatas.mdm.entity.Maintain;
-import com.highdatas.mdm.entity.MaintainField;
-import com.highdatas.mdm.entity.SysField;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.highdatas.mdm.entity.*;
 import com.highdatas.mdm.mapper.MaintainFieldMapper;
 import com.highdatas.mdm.mapper.SysFieldMapper;
+import com.highdatas.mdm.mapper.TableInfoMapper;
 import com.highdatas.mdm.pojo.ActivitiStatus;
 import com.highdatas.mdm.pojo.Operate;
 import com.highdatas.mdm.pojo.Result;
@@ -15,14 +14,11 @@
 import com.highdatas.mdm.service.IMaintainFieldService;
 import com.highdatas.mdm.service.IMaintainService;
 import com.highdatas.mdm.service.ISysFieldService;
-import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.highdatas.mdm.util.DbUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.NoUniqueBeanDefinitionException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
@@ -48,6 +44,8 @@
     MaintainFieldMapper maintainFieldMapper;
     @Autowired
     IFlowsService flowsService;
+    @Autowired
+    TableInfoMapper tableInfoMapper;
 
 
     @Override
@@ -96,9 +94,9 @@
             fieldList = this.selectList(new EntityWrapper<SysField>().eq("table_name", maintain.getTableName()).isNull("maintain_field_id").orderBy("order_no"));
             return fieldList;
         }else {
-            Integer preNo = maintainFieldOrderNo--;
+            Integer preNo = maintainFieldOrderNo - 1;
             maintainField = maintainFieldService.selectOne(new EntityWrapper<MaintainField>().eq("table_name", maintain.getTableName()).eq("order_no", preNo));
-            fieldList = this.selectList(new EntityWrapper<SysField>().eq("maintain_field_id", maintainFieldId).eq("table_name", tableName).orderBy("order_no"));
+            fieldList = this.selectList(new EntityWrapper<SysField>().eq("maintain_field_id", maintainField.getId()).eq("table_name", tableName).orderBy("order_no"));
             return fieldList;
         }
 
@@ -108,6 +106,18 @@
     @Override
     public List<SysField> getFieldByTable(String tableName) {
         Maintain nowVersion = maintainService.getNowVersion(tableName);
+        if (nowVersion == null) {
+            List<SysField> fieldList = this.selectList(new EntityWrapper<SysField>().eq("table_name", tableName).isNull("maintain_field_id").orderBy("order_no"));
+            if (fieldList.size() ==0) {
+                List<TableSchemaResult> tableField = tableInfoMapper.getTableField(tableName);
+                for (TableSchemaResult tableSchemaResult : tableField) {
+                    String fieldName = tableSchemaResult.getFieldName();
+                    SysField field = new SysField().setField(fieldName);
+                    fieldList.add(field);
+                }
+            }
+            return fieldList;
+        }
         return getFieldByMaintain(nowVersion.getId());
     }
 
@@ -192,7 +202,16 @@
         Collections.sort(nowFields, new Comparator<SysField>() {
             @Override
             public int compare(SysField o1, SysField o2) {
-                return o1.getOrderNo() - o2.getOrderNo() ;
+                Integer o1OrderNo = o1.getOrderNo();
+                Integer orderNo = o2.getOrderNo();
+                if (o1OrderNo == null && orderNo == null) {
+                    return 0;
+                }else if (o1OrderNo == null) {
+                    return -1;
+                }else if  (orderNo == null) {
+                    return 1;
+                }
+                return o1OrderNo - orderNo;
             }
         });
         return nowFields;

--
Gitblit v1.8.0