From ccb933362251344091a3881a4950dcab33c5008f Mon Sep 17 00:00:00 2001
From: kimi <kimi42345@gmail.com>
Date: 星期六, 28 三月 2020 11:47:55 +0800
Subject: [PATCH] no message

---
 src/main/java/com/highdatas/mdm/service/impl/SysFieldServiceImpl.java |   85 +++++++++++++++++++++++++++++++++++-------
 1 files changed, 70 insertions(+), 15 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 60eaca6..c6ddc54 100644
--- a/src/main/java/com/highdatas/mdm/service/impl/SysFieldServiceImpl.java
+++ b/src/main/java/com/highdatas/mdm/service/impl/SysFieldServiceImpl.java
@@ -22,10 +22,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -52,13 +49,12 @@
     TableInfoMapper tableInfoMapper;
 
 
-    @Override
-    public List<SysField> getFieldByMaintain(String maintainId) {
+    public MaintainField getMaintainFieldByMaintainId(String maintainId) {
         MaintainField maintainField;
         List<SysField> fieldList = null;
 
         if (StringUtils.isEmpty(maintainId)) {
-          return null;
+            return null;
         }
         Maintain maintain = maintainService.selectById(maintainId);
         if (maintain == null) {
@@ -70,17 +66,28 @@
             //瀵瑰簲鐗堟湰鎵句笉鍒� 寰�鍓嶆壘
             String maintainFieldId = maintainFieldMapper.getMappedMatintainId(DbUtils.quotedStr(maintain.getTableName()), maintain.getOrderNo());
             if (StringUtils.isEmpty(maintainFieldId)) {
-                fieldList = this.selectList(new EntityWrapper<SysField>().eq("table_name", maintain.getTableName()).isNull("maintain_field_id").orderBy("order_no"));
-                return fieldList;
+               return null;
             }
             maintainField = maintainFieldService.selectById(maintainFieldId);
-            if (maintainField == null){
-                //鏃犲搴旂増鏈�
-                fieldList = this.selectList(new EntityWrapper<SysField>().eq("table_name", maintain.getTableName()).isNull("maintain_field_id").orderBy("order_no"));
-                return fieldList;
-            }
+        }
+        return maintainField;
+    }
+
+
+    @Override
+    public List<SysField> getFieldByMaintain(String maintainId) {
+        List<SysField> fieldList;
+        Maintain maintain = maintainService.selectById(maintainId);
+        if (maintain == null) {
+            return null;
         }
 
+        MaintainField maintainField = getMaintainFieldByMaintain(maintainId);
+        if (maintainField == null && Constant.Default.equalsIgnoreCase(maintainField.getId())) {
+
+            fieldList = this.selectList(new EntityWrapper<SysField>().eq("table_name", maintain.getTableName()).isNull("maintain_field_id").orderBy("order_no"));
+            return fieldList;
+        }
         String maintainFieldId = maintainField.getId();
         String tableName = maintainField.getTableName();
         //TODO  鍒ゆ柇鐗堟湰
@@ -102,6 +109,53 @@
             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", maintainField.getId()).eq("table_name", tableName).orderBy("order_no"));
             return fieldList;
+        }
+
+
+    }
+
+    @Override
+    public MaintainField getMaintainFieldByMaintain(String maintainId) {
+        MaintainField maintainField;
+        List<SysField> fieldList = null;
+
+        if (StringUtils.isEmpty(maintainId)) {
+            return null;
+        }
+        Maintain maintain = maintainService.selectById(maintainId);
+        if (maintain == null) {
+            return null;
+        }
+
+        maintainField = maintainFieldService.selectOne(new EntityWrapper<MaintainField>().eq("maintain_id", maintainId).orderBy("order_no desc, create_time desc"));
+        if (maintainField == null) {
+            //瀵瑰簲鐗堟湰鎵句笉鍒� 寰�鍓嶆壘
+            String maintainFieldId = maintainFieldMapper.getMappedMatintainId(DbUtils.quotedStr(maintain.getTableName()), maintain.getOrderNo());
+            if (StringUtils.isEmpty(maintainFieldId)) {
+                return new MaintainField().setId(Constant.Default);
+            }
+            maintainField = maintainFieldService.selectById(maintainFieldId);
+            if (maintainField == null){
+                return new MaintainField().setId(Constant.Default);
+            }
+        }
+
+        String maintainFieldId = maintainField.getId();
+        String tableName = maintainField.getTableName();
+
+        ActivitiStatus status = flowsService.getStatusByBusinessId(maintainFieldId);
+        if (status != null && status.equals(ActivitiStatus.open)) {
+            return maintainFieldService.selectById(maintainField);
+        }
+
+        // 褰撳墠鐗堟湰姝e湪瀹℃壒  鎵惧墠涓�鐗堟湰
+        Integer maintainFieldOrderNo = maintainField.getOrderNo();
+        if (maintainFieldOrderNo < 1) {
+            return new MaintainField().setId(Constant.Default);
+        }else {
+            Integer preNo = maintainFieldOrderNo - 1;
+            maintainField = maintainFieldService.selectOne(new EntityWrapper<MaintainField>().eq("table_name", maintain.getTableName()).eq("order_no", preNo));
+            return maintainField;
         }
 
 
@@ -310,7 +364,8 @@
                 //娌℃湁涓枃鍚嶇О鐨�  搴旇灞炰簬绯荤粺鑷暀瀛楁 濡俰d
                 continue;
             }
-            String alias = fieldList.stream().map(SysField::getAlias).collect(Collectors.joining(Constant.SEMICOLON));
+            HashSet<SysField> strings = new HashSet<SysField>(fieldList);
+            String alias = strings.stream().map(SysField::getAlias).collect(Collectors.joining(Constant.SEMICOLON));
             SysField sysField = new SysField().setField(fieldName).setAlias(alias);
             result.add(sysField);
         }

--
Gitblit v1.8.0