From 5bac93baf5659ce013163f884c9dce41990a860e Mon Sep 17 00:00:00 2001
From: kimi42345 <kimi42345@outlook.com>
Date: 星期一, 23 三月 2020 08:49:41 +0800
Subject: [PATCH] no message

---
 src/main/java/com/highdatas/mdm/controller/MasterDataController.java |   84 +++++++++++++++++-------------------------
 1 files changed, 34 insertions(+), 50 deletions(-)

diff --git a/src/main/java/com/highdatas/mdm/controller/MasterDataController.java b/src/main/java/com/highdatas/mdm/controller/MasterDataController.java
index 3f27bf8..2f2186b 100644
--- a/src/main/java/com/highdatas/mdm/controller/MasterDataController.java
+++ b/src/main/java/com/highdatas/mdm/controller/MasterDataController.java
@@ -9,13 +9,11 @@
 import com.highdatas.mdm.pojo.Operate;
 import com.highdatas.mdm.pojo.Result;
 import com.highdatas.mdm.pojo.SysAssembleUpdateType;
-import com.highdatas.mdm.service.IMaintainDetailService;
-import com.highdatas.mdm.service.IMaintainService;
-import com.highdatas.mdm.service.IMenuMappingService;
-import com.highdatas.mdm.service.MasterDataService;
+import com.highdatas.mdm.service.*;
 import com.highdatas.mdm.util.Constant;
 import com.highdatas.mdm.util.DbUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.pentaho.reporting.libraries.formula.function.text.StringCountFunction;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -23,9 +21,7 @@
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.text.MessageFormat;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -51,6 +47,9 @@
     @Autowired
     TableInfoMapper tableInfoMapper;
 
+    @Autowired
+    IMasterModifiedService masterModifiedService;
+
     @RequestMapping(value = "{tableName}/uploaded",  method = RequestMethod.GET)
     public Result get(@PathVariable String tableName, HttpServletRequest request) {
         String uploadTypeStr = request.getParameter("uploadType");
@@ -61,6 +60,8 @@
         uploadType = SysAssembleUpdateType.valueOf(uploadTypeStr);
         TUser user = (TUser) request.getSession().getAttribute(Constant.USER);
         Maintain maintain = masterDataService.uploadedData(tableName, uploadType, user.getUserId());
+        // 澶勭悊鍏宠仈浜�
+        masterModifiedService.dealAssemble(maintain.getId(), user.getUserId(), true);
         JSONObject object = new JSONObject();
         object.fluentPut("maintainId",maintain.getId());
         object.fluentPut("version",maintain.getVersion());
@@ -130,21 +131,28 @@
     }
 
     @RequestMapping(value = "{maintainId}/modify/{operateStr}", method = RequestMethod.POST)
-    public Result modify(@RequestParam String datas, @PathVariable String maintainId, @PathVariable String operateStr, HttpServletRequest request) throws UnsupportedEncodingException {
+    public Result modify(@RequestParam String datas, @PathVariable String maintainId, @PathVariable String operateStr,  @RequestParam String modify, HttpServletRequest request) throws UnsupportedEncodingException {
         Result result = null;
         Operate operate = Operate.parse(operateStr);
         Maintain maintain = maintainService.selectById(maintainId);
+        List<String> modifyFields = null;
+        if (!StringUtils.isEmpty(modify)) {
+            String[] split = modify.split(Constant.SEMICOLON);
+            modifyFields = Arrays.stream(split).collect(Collectors.toList());
+        }
+        TUser user = (TUser) request.getSession().getAttribute("user");
+
         switch (operate) {
             case delete:
                 //datas is id;
                 Integer deleteCount = tableInfoMapper.deleteRecordByMaintainId(maintain.getTableName() + Constant.RECORD, DbUtils.quotedStr(datas), DbUtils.quotedStr(maintainId));
                 result = Result.success(deleteCount);
-
-
                 break;
             case update:
                 JSONObject jsonObject = JSONObject.parseObject(datas);
                 String id = (String) jsonObject.get("id");
+
+                masterModifiedService.updateModifiedUserById(maintainId, id, user.getUserId(), modifyFields);
                 jsonObject.remove(Constant.ID);
                 datas = jsonObject.toJSONString();
                 String updateSegment = masterDataService.getUpdateSegment(maintain.getTableName(), maintain.getTableName() + Constant.RECORD, datas);
@@ -155,6 +163,9 @@
             case create:
                 JSONObject createObject = JSONObject.parseObject(datas);
                 String recordId = DbUtils.getUUID();
+
+                masterModifiedService.updateModifiedUserById(maintainId, recordId, user.getUserId(), modifyFields);
+
                 createObject.fluentPut(Constant.ID, recordId);
                 createObject.fluentPut(Constant.STD_ID, DbUtils.getUUID());
                 datas = createObject.toJSONString();
@@ -181,49 +192,18 @@
 
 
     @RequestMapping(value = "{tableName}/{operateStr}", method = RequestMethod.POST)
-    public Result insert(@PathVariable String tableName,@PathVariable String operateStr, @RequestParam String datas, HttpServletRequest request) {
+    public Result insert(@PathVariable String tableName,@PathVariable String operateStr, @RequestParam String datas, @RequestParam String modify, HttpServletRequest request) {
         String fields = request.getParameter("fields");
         Operate operate = Operate.parse(operateStr);
-
-        Maintain maintain = maintainService.getMaxVersion(tableName);
-        Maintain unFlowMaxVersion = maintainService.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());
-            TUser user = (TUser) request.getSession().getAttribute("user");
-            unFlowMaxVersion.setChargeId(user.getUserId());
-            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);
-        }
-
         TUser user = (TUser) request.getSession().getAttribute("user");
-        nowMaintain.setChargeId(user.getUserId());
-        String maintainId = nowMaintain.getId();
-        if(StringUtils.isEmpty(maintainId)) {
-            nowMaintain.setId(DbUtils.getUUID());
+        String userId = user.getUserId();
+        Maintain maintain = maintainService.getMaxVersion(tableName);
+        Maintain nowMaintain = maintainService.getNextMaintain(tableName, userId);
+
+        List<String> modifyFields = null;
+        if (!StringUtils.isEmpty(modify)) {
+            String[] split = modify.split(Constant.SEMICOLON);
+            modifyFields = Arrays.stream(split).collect(Collectors.toList());
         }
 
         Result result;
@@ -245,16 +225,19 @@
         } else if (operate.equals(Operate.update)) {
             JSONObject jsonObject = JSONObject.parseObject(datas);
             Object id = jsonObject.get("id");
+
             String nowMaintainId = nowMaintain.getId();
             String tempId = tableInfoMapper.getTempIdByStdId(tableName + Constant.RECORD,DbUtils.quotedStr(id.toString()), DbUtils.quotedStr(nowMaintainId));
             if (StringUtils.isEmpty(tempId)) {
                 result = masterDataService.selectById(tableName, id.toString());
             } else {
+                masterModifiedService.updateModifiedUserById(nowMaintain.getId(), id.toString(), user.getUserId(), modifyFields);
                 jsonObject.put(Constant.STD_ID, id);
                 jsonObject.put(Constant.ID, tempId);
                 return masterDataService.updateById(tableName + Constant.RECORD, JSON.toJSONString(jsonObject), tempId,false);
             }
         }
+
 
         //merge 2 temp
         String tableTempName = tableName + Constant.RECORD;
@@ -264,6 +247,7 @@
         if (dataId == null) {
             dataId = DbUtils.getUUID();
         }
+        masterModifiedService.updateModifiedUserById(nowMaintain.getId(), dataId.toString(), user.getUserId(), modifyFields);
         object.put(Constant.STD_ID, dataId);
         object.put(Constant.ID, DbUtils.getUUID());
         datas = JSON.toJSONString(object);

--
Gitblit v1.8.0