From 74472c9d22dddcb41383794caf0011043b20f817 Mon Sep 17 00:00:00 2001
From: kimi <kimi42345@gmail.com>
Date: 星期二, 31 三月 2020 13:25:47 +0800
Subject: [PATCH] fix  数据权限

---
 src/main/java/com/highdatas/mdm/service/impl/MaintainServiceImpl.java |   82 +++++++++++++++++++++++++++++++---------
 1 files changed, 63 insertions(+), 19 deletions(-)

diff --git a/src/main/java/com/highdatas/mdm/service/impl/MaintainServiceImpl.java b/src/main/java/com/highdatas/mdm/service/impl/MaintainServiceImpl.java
index fc3971f..63e27ea 100644
--- a/src/main/java/com/highdatas/mdm/service/impl/MaintainServiceImpl.java
+++ b/src/main/java/com/highdatas/mdm/service/impl/MaintainServiceImpl.java
@@ -9,6 +9,7 @@
 import com.highdatas.mdm.entity.Flows;
 import com.highdatas.mdm.entity.Maintain;
 import com.highdatas.mdm.entity.MaintainDetail;
+import com.highdatas.mdm.entity.TUser;
 import com.highdatas.mdm.mapper.MaintainMapper;
 import com.highdatas.mdm.mapper.TableInfoMapper;
 import com.highdatas.mdm.pojo.*;
@@ -20,10 +21,7 @@
 import org.springframework.stereotype.Service;
 
 import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -98,7 +96,10 @@
         if (status.equals(ActivitiStatus.close)) {
              String collect = maintainDetailList.stream().map(detail -> DbUtils.quotedStr(detail.getPreMergeId())).collect(Collectors.joining(Constant.COMMA));
             //delete temp
-            masterDataService.delete(tableName + Constant.RECORD, "id in (" +collect+ ")");
+            if (!StringUtils.isEmpty(collect)) {
+                masterDataService.delete(tableName + Constant.RECORD, "id in (" +collect+ ")");
+            }
+
             //delete detail
             for (MaintainDetail maintainDetail : maintainDetailList) {
                 maintainDetail.deleteById();
@@ -107,7 +108,7 @@
             maintain.deleteById();
             return;
         }
-        String fields  = masterDataService.getTempFields(tableName);
+        String fields  = masterDataService.getTempFields(null, tableName);
         String tempFields = masterDataService.getFields(tableName + Constant.RECORD);
 
         String tableTempName = tableName + Constant.RECORD;
@@ -172,8 +173,8 @@
     }
 
     @Override
-    public Result getUnSubmitData(String tableName, Integer pageNo, String pageSize, String whereSegment) {
-        Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).isNull("flow_id").orderBy("version desc");
+    public Result getUnSubmitData(TUser user, String tableName, Integer pageNo, String pageSize, String whereSegment) {
+        Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).isNull("flow_id").orderBy("order_no desc");
         Maintain maintain = selectOne(versionWrapper);
         if (maintain == null) {
             return Result.error(CodeMsg.SELECT_ERROR_NOTFOUND);
@@ -186,7 +187,7 @@
         if (!StringUtils.isEmpty(pageSize)) {
             page.setPageSize(Integer.valueOf(pageSize));
         }
-        String tempFields = masterDataService.getTempFields(tableName);
+        String tempFields = masterDataService.getTempFields(user, tableName);
         List<Map<String, Object>> maps = maintainMapper.selectUnSubmitData(tempName, tempFields, whereSegment, DbUtils.quotedStr(maintainId), page.getLimitSQL());
         JSONObject object = new JSONObject();
         object.fluentPut("records", maps);
@@ -196,6 +197,49 @@
         object.fluentPut("pages", page.getPageCount());
         object.fluentPut("current", page.getPageNo());
         return Result.success(object);
+    }
+
+    @Override
+    public Maintain getNextMaintain(String tableName, String userId) {
+        Maintain maintain = this.getMaxVersion(tableName);
+        Maintain unFlowMaxVersion = this.getUnFlowMaxVersion(tableName);
+        if (unFlowMaxVersion == null) {
+            unFlowMaxVersion = new Maintain();
+            if (maintain != null) {
+                unFlowMaxVersion.setVersion(DbUtils.versionAddSub(maintain.getVersion()));
+                int orderNo = maintain.getOrderNo();
+                orderNo++;
+                unFlowMaxVersion.setOrderNo(orderNo);
+            } else {
+                unFlowMaxVersion.setVersion(Constant.VERSION_Default);
+                unFlowMaxVersion.setOrderNo(0);
+            }
+
+            unFlowMaxVersion.setId(DbUtils.getUUID());
+            unFlowMaxVersion.setChargeId(userId);
+            unFlowMaxVersion.setCreateTime(new Date());
+            unFlowMaxVersion.setTableName(tableName);
+        }
+
+        Maintain nowMaintain = unFlowMaxVersion;
+        if (DbUtils.compareVersion(maintain, unFlowMaxVersion) != 0) {
+            nowMaintain = new Maintain();
+            String maintanId = DbUtils.getUUID();
+            nowMaintain.setId(maintanId);
+            nowMaintain.setCreateTime(new Date());
+            int orderNo = maintain.getOrderNo();
+            orderNo++;
+            nowMaintain.setVersion(DbUtils.versionAddSub(maintain.getVersion()));
+            nowMaintain.setOrderNo(orderNo);
+            nowMaintain.setTableName(tableName);
+        }
+
+        nowMaintain.setChargeId(userId);
+        String maintainId = nowMaintain.getId();
+        if(StringUtils.isEmpty(maintainId)) {
+            nowMaintain.setId(DbUtils.getUUID());
+        }
+        return nowMaintain;
     }
 
     @Override
@@ -212,7 +256,7 @@
 
     @Override
     public Maintain getMaxVersion(String tableName) {
-        Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).orderBy("version desc");
+        Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).orderBy("order_no desc");
 
         Maintain maxVersion = selectOne(versionWrapper);
         return maxVersion;
@@ -220,7 +264,7 @@
 
     @Override
     public Maintain getUnFlowMaxVersion(String tableName) {
-        Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().isNull("flow_id").eq("table_name", tableName).orderBy("version desc");
+        Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().isNull("flow_id").eq("table_name", tableName).orderBy("order_no desc");
 
         Maintain maxVersion = selectOne(versionWrapper);
         return maxVersion;
@@ -229,7 +273,7 @@
     @Override
     public Maintain getInvalidMaxVersion(String tableName) {
         Maintain result = null;
-        Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).orderBy("version desc");
+        Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).orderBy("order_no desc");
 
         List<Maintain> maintainList = selectList(versionWrapper);
 
@@ -252,13 +296,13 @@
     }
 
     @Override
-    public Result getInvalidVerionData(String tableName, String where, Integer pageNo, Integer pageSize) {
+    public Result getInvalidVerionData(TUser user, String tableName, String where, Integer pageNo, Integer pageSize) {
         Maintain invalidVersion = getInvalidMaxVersion(tableName);
         if (invalidVersion == null) {
             return Result.success(null);
         }
         String tableTempName = tableName + Constant.RECORD;
-        String tempFields = masterDataService.getTempFields(tableName);
+        String tempFields = masterDataService.getTempFields(user, tableName);
         Long count = maintainMapper.countInvalidVersionData(tableTempName, where, invalidVersion.getOrderNo());
         Page page = new Page(count);
         page.setPageNo(pageNo);
@@ -279,7 +323,7 @@
 
     @Override
     public Maintain getNowVersion(String tableName) {
-        Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).isNotNull("flow_id").orderBy("version desc");
+        Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).isNotNull("flow_id").orderBy("order_no desc");
 
         List<Maintain> maintains = selectList(versionWrapper);
         for (Maintain maintain : maintains) {
@@ -299,7 +343,7 @@
     @Override
     public Maintain getRecentHistoryVersion(String tableName) {
         Maintain nowMaintain = null;
-        Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).isNotNull("flow_id").orderBy("version desc");
+        Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).isNotNull("flow_id").orderBy("order_no desc");
         List<Maintain> maintains = selectList(versionWrapper);
         for (Maintain maintain : maintains) {
             Flows flows = flowsService.selectById(maintain.getFlowId());
@@ -316,7 +360,7 @@
             }
         }
         if (nowMaintain == null) {
-            nowMaintain = selectOne(new EntityWrapper<Maintain>().eq("table_name", tableName).orderBy("version desc"));
+            nowMaintain = selectOne(new EntityWrapper<Maintain>().eq("table_name", tableName).orderBy("order_no desc"));
         }
         int orderNo = nowMaintain.getOrderNo();
         Maintain nowVersion = getNowVersion(tableName);
@@ -405,7 +449,7 @@
     }
 
     @Override
-    public Result tempDataByVersionByFlow(String flowId, String whereSegment, Integer pageNo, Integer pageSize) {
+    public Result tempDataByVersionByFlow(TUser user, String flowId, String whereSegment, Integer pageNo, Integer pageSize) {
         Flows flows = flowsService.selectById(flowId);
         if (flows == null) {
             return Result.error(CodeMsg.SELECT_ERROR_NOTFOUND);
@@ -415,7 +459,7 @@
         if (maintain == null) {
             return Result.error(CodeMsg.SELECT_ERROR_NOTFOUND);
         }
-        String fields  = masterDataService.getTempFields(maintain.getTableName());
+        String fields  = masterDataService.getTempFields(user, maintain.getTableName());
         String tableTempName = maintain.getTableName() + Constant.RECORD;
         long total = maintainMapper.countTempDataByVersionByFlow(tableTempName, flowId, whereSegment);
 

--
Gitblit v1.8.0