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 |   63 ++++++++++++++++++++++++++-----
 1 files changed, 52 insertions(+), 11 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 b1e83e9..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;
 
 /**
@@ -110,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;
@@ -175,7 +173,7 @@
     }
 
     @Override
-    public Result getUnSubmitData(String tableName, Integer pageNo, String pageSize, String whereSegment) {
+    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) {
@@ -189,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);
@@ -199,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
@@ -255,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);
@@ -408,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);
@@ -418,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