From 6c6fdb4db59a2a2343e43ffd73a07f17b057c4fa Mon Sep 17 00:00:00 2001
From: kimi42345 <kimi42345@outlook.com>
Date: 星期二, 17 三月 2020 22:37:43 +0800
Subject: [PATCH] 3/17 添加 请求log

---
 src/main/java/com/highdatas/mdm/controller/MaintainController.java |   89 +++++++++++++++++++++++++++++++++-----------
 1 files changed, 66 insertions(+), 23 deletions(-)

diff --git a/src/main/java/com/highdatas/mdm/controller/MaintainController.java b/src/main/java/com/highdatas/mdm/controller/MaintainController.java
index 7d22c7f..2d3068d 100644
--- a/src/main/java/com/highdatas/mdm/controller/MaintainController.java
+++ b/src/main/java/com/highdatas/mdm/controller/MaintainController.java
@@ -13,10 +13,7 @@
 import com.highdatas.mdm.pojo.CodeMsg;
 import com.highdatas.mdm.pojo.Operate;
 import com.highdatas.mdm.pojo.Result;
-import com.highdatas.mdm.service.IFlowsService;
-import com.highdatas.mdm.service.IMaintainDetailService;
-import com.highdatas.mdm.service.IMaintainService;
-import com.highdatas.mdm.service.ITUserService;
+import com.highdatas.mdm.service.*;
 import com.highdatas.mdm.util.Constant;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -25,10 +22,7 @@
 import javax.servlet.http.HttpServletRequest;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.stream.Collectors;
+import java.util.*;
 
 /**
  * <p>
@@ -51,6 +45,8 @@
     TableInfoMapper tableInfoMapper;
     @Autowired
     IFlowsService  flowsService;
+    @Autowired
+    IMaintainFieldService maintainFieldService;
 
     @RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
     public Result get(@PathVariable String id) {
@@ -91,27 +87,64 @@
         }
     }
 
-    @RequestMapping(value = "/history/{tableName}", method = RequestMethod.GET)
-    public Result getHistory(@PathVariable String tableName) {
+    @RequestMapping(value = "/version/{tableName}", method = RequestMethod.GET)
+    public Result getHistory(@PathVariable String tableName, HttpServletRequest request) {
+        TUser user = (TUser) request.getSession().getAttribute("user");
+        String userId = user.getUserId();
 
-        Maintain nowVersion = maintainService.getNowVersion(tableName);
-        if (nowVersion == null) {
+        Maintain maxVersion = maintainService.getMaxVersion(tableName);
+        if (maxVersion == null) {
             return Result.error(new CodeMsg(100001,"鏃犲綋鍓嶇増鏈�"));
         }
-        List<Maintain> maintainList = maintainService.selectList(new EntityWrapper<Maintain>().eq("table_name", tableName).le("order_no",nowVersion.getOrderNo() - 1).orderBy("order_no",false));
+        Maintain nowVersion = maintainService.getNowVersion(tableName);
 
-        if (maintainList == null) {
-            return Result.error(CodeMsg.SELECT_ERROR_NOTFOUND);
+        List<Maintain> maintainList = maintainService.selectList(new EntityWrapper<Maintain>().eq("table_name", tableName).orderBy("order_no",false));
+        List<Maintain> result = new ArrayList<>();
+        int count = 0;
+        for (Maintain maintain : maintainList) {
+            String flowId = maintain.getFlowId();
+            if (StringUtils.isEmpty(flowId)) {
+                continue;
+            }
+
+            Flows flows = flowsService.selectById(maintain.getFlowId());
+            if (flows.getStatus().equals(ActivitiStatus.close)) {
+                continue;
+            }
+            if (flows.getStatus().equals(ActivitiStatus.working) || flows.getStatus().equals(ActivitiStatus.refuse)) {
+                boolean nextAudit = flowsService.isNextAudit(flows, userId);
+                if (nextAudit) {
+                    count++;
+                }
+                continue;
+            }else if(flows.getStatus().equals(ActivitiStatus.open)){
+                maintain.setMaintainType(1);
+            }
+            if (nowVersion != null  && maintain.getId().equalsIgnoreCase(nowVersion.getId())) {
+                maintain.setMaintainType(0);
+            }
+            result.add(maintain);
+        }
+        //
+        int cnt = maintainFieldService.getUnFlowCount(tableName, userId);
+        count += cnt;
+        if (count > 0) {
+            Maintain maintain = new Maintain();
+            maintain.setMaintainType(-1);
+            maintain.setVersion("寰呭鏍�");
+            maintain.setTableName(tableName);
+            maintain.setRecordCount(count);
+            result.add(maintain);
         }
 
-        List<String> result = maintainList.stream()
-                .filter(maintain -> !StringUtils.isEmpty(maintain.getFlowId()))
-                .filter(maintain -> flowsService.selectById(maintain.getFlowId()).getStatus().equals(ActivitiStatus.open))
-                .map(maintain -> maintain.getVersion())
-                .collect(Collectors.toList());
-
+        Collections.sort(result, new Comparator<Maintain>() {
+            @Override
+            public int compare(Maintain o1, Maintain o2) {
+                return o1.getMaintainType().compareTo(o2.getMaintainType());
+            }
+        });
         return Result.success(result);
-    }
+}
 
     @RequestMapping(value = "/detail/{id}/{pageNo}", method = RequestMethod.GET)
     public Result detail(@PathVariable String id, @PathVariable int pageNo) {
@@ -142,7 +175,7 @@
             result = maintainService.selectPage(maintainPage);
         } else {
             Wrapper<Maintain> tableNameWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName);
-            tableNameWrapper.orderBy("version desc");
+            tableNameWrapper.orderBy("order_no desc");
             result = maintainService.selectPage(maintainPage, tableNameWrapper);
         }
         List<Maintain> records = result.getRecords();
@@ -172,6 +205,16 @@
         return Result.success(compare);
     }
 
+    @RequestMapping(value = "/canUpload/{tableName}", method = RequestMethod.GET)
+    public Result canUpload(@PathVariable String tableName) {
+        Maintain nowVersion = maintainService.getNowVersion(tableName);
+        if (nowVersion == null) {
+            return Result.success(true);
+        }else {
+            return Result.success(false);
+        }
+    }
+
     @RequestMapping(value = "/detail/{pageNo}", method = RequestMethod.GET)
     public Result setFlowId(@RequestParam String flowId,@PathVariable Integer pageNo, HttpServletRequest request) {
         String whereSegment = request.getParameter("whereSegment");

--
Gitblit v1.8.0