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/controller/ActivitiController.java |  143 +++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 118 insertions(+), 25 deletions(-)

diff --git a/src/main/java/com/highdatas/mdm/controller/ActivitiController.java b/src/main/java/com/highdatas/mdm/controller/ActivitiController.java
index 2655142..511b300 100644
--- a/src/main/java/com/highdatas/mdm/controller/ActivitiController.java
+++ b/src/main/java/com/highdatas/mdm/controller/ActivitiController.java
@@ -5,13 +5,11 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.highdatas.mdm.entity.Flows;
 import com.highdatas.mdm.entity.Maintain;
+import com.highdatas.mdm.entity.MaintainField;
 import com.highdatas.mdm.entity.TUser;
 import com.highdatas.mdm.mapper.FlowsMapper;
 import com.highdatas.mdm.pojo.*;
-import com.highdatas.mdm.service.ActivitiService;
-import com.highdatas.mdm.service.IFlowsService;
-import com.highdatas.mdm.service.IMaintainService;
-import com.highdatas.mdm.service.ITUserService;
+import com.highdatas.mdm.service.*;
 import com.highdatas.mdm.service.act.*;
 import com.highdatas.mdm.util.Constant;
 import lombok.extern.slf4j.Slf4j;
@@ -26,6 +24,9 @@
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -67,6 +68,11 @@
     IMaintainService maintainService;
     @Autowired
     ITUserService userService;
+    @Autowired
+    IMasterModifiedService masterModifiedService;
+
+    @Autowired
+    IMaintainFieldService maintainFieldService;
 
 
     @RequestMapping(value = "/list", method = RequestMethod.GET)
@@ -78,12 +84,48 @@
         List<Map<String, Object>> list = flowsMapper.selectVersion(filterSegment);
         for (Map<String, Object> one : list) {
             String newModelId = (String) one.get(Constant.ID);
-            String url = "processes/" +  newModelId +  "/" +  newModelId  +  ".png";
+            String url = "act/img/" +  newModelId;
             one.put("imgurl",url);
         }
         return Result.success(list);
     }
+    @RequestMapping(value = "/img/{modelId}", method = RequestMethod.GET)
+    public void image(@PathVariable String modelId, HttpServletResponse response)  {
+        InputStream is = repositoryService.getModelImg(modelId);
 
+        response.setHeader("Content-Type", "image/png");
+        try{
+            OutputStream outputStream = response.getOutputStream();
+            byte[] b = new byte[1024];
+            int len;
+            while ((len = is.read(b, 0, 1024)) != -1) {
+                outputStream.write(b, 0, len);
+            }
+        }
+        catch (Exception e) {
+            e.printStackTrace();
+        }
+        finally {
+            if (is != null) {
+                try {
+                    is.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+
+        }
+
+    }
+    @RequestMapping(value = "/deleteModel/{modelId}", method = RequestMethod.GET)
+    public Result deleteModel(@PathVariable String modelId)  {
+        boolean b = repositoryService.deleteModel(modelId);
+        if (b) {
+            return Result.success(null);
+        } else {
+            return Result.error(CodeMsg.DELETE_ERROR);
+        }
+    }
     @RequestMapping(value = "/processlist", method = RequestMethod.GET)
     public Result<Result<JSONArray>> processlist(HttpServletRequest request)  {
         Result<JSONArray> processList   = repositoryService.getProcessList();
@@ -100,23 +142,29 @@
     @RequestMapping(value = "/start/{key}", method = RequestMethod.GET)
     public Result<Object> start(@PathVariable String key,@RequestParam String businessId, HttpServletRequest request)  {
         if (StringUtils.isEmpty(key)) {
-                return Result.error(new CodeMsg(1000, "key is not found"));
+            return Result.error(new CodeMsg(1000, "key is not found"));
+        }
+        String desp = request.getParameter("desp");
+        String businessType = request.getParameter("businessType");
+        ActivitiBusinessType type;
+        if (StringUtils.isEmpty(businessType)) {
+            type = ActivitiBusinessType.maintain;
+        } else {
+            type = ActivitiBusinessType.valueOf(businessType);
+        }
+        HttpSession session = request.getSession();
+        Flows flows = activitiService.start(key, session, businessId, type);
+        if (flows == null) {
+            return Result.error(CodeMsg.INSERT_ERROR);
+        }  else {
+            if (type.equals(ActivitiBusinessType.field)) {
+                MaintainField maintainField = maintainFieldService.selectById(businessId);
+                maintainField.setFlowId(flows.getId());
+                maintainField.setDesp(desp);
+                maintainField.updateById();
+                return Result.success(flows.getId());
             }
-            String desp = request.getParameter("desp");
-            String businessType = request.getParameter("businessType");
-            ActivitiBusinessType type;
-            if (StringUtils.isEmpty(businessType)) {
-                type = ActivitiBusinessType.maintain;
-            } else {
-                type = ActivitiBusinessType.valueOf(businessType);
-            }
-            HttpSession session = request.getSession();
-            Flows flows = activitiService.start(key, session, businessId, type);
-            if (flows == null) {
-                return Result.error(CodeMsg.INSERT_ERROR);
-            }  else {
-
-            if (type.equals(ActivitiBusinessType.maintain)) {
+            else if (type.equals(ActivitiBusinessType.maintain)) {
                 Maintain maintain = maintainService.selectById(businessId);
                 maintain.setFlowId(flows.getId());
                 maintain.setDesp(desp);
@@ -186,6 +234,7 @@
         if (!StringUtils.isEmpty(pageSizeStr)) {
             page.setPageSize(Integer.valueOf(pageSizeStr));
         }
+
         subList = subList.stream().skip(page.getBeginRecordNo_1()).limit(page.getPageSize()).collect(Collectors.toList());
         ArrayList<Map<String, Object>> result = new ArrayList<>();
         for (HistoricProcessInstance historicProcessInstance : subList) {
@@ -201,6 +250,16 @@
             one.put("createTime", flows.getCreateTime());
             result.add(one);
         }
+
+        Collections.sort(result, new Comparator<Map<String, Object>>() {
+            @Override
+            public int compare(Map<String, Object> o1, Map<String, Object> o2) {
+                Date o1Date = (Date) o1.get("createTime");
+                Date o2Date = (Date) o2.get("createTime");
+                return o2Date.compareTo(o1Date);
+            }
+        });
+
         JSONObject object = new JSONObject();
         object.fluentPut("total", page.getRecordCount());
         object.fluentPut("size", page.getPageSize());
@@ -254,12 +313,13 @@
             return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED);
         }
         HttpSession session = request.getSession();
+        //todo 鍒ゆ柇褰撳墠task鏄惁鏄綋鍓嶄汉鑳藉鎵圭殑
 
         taskService.setSession(session);
         ActivitiStatus status = flows.getStatus();
 
         String workflowId = flows.getWorkflowId();
-//        Task task = taskService.geTask(workflowId);
+//        Task task = TimeTaskService.geTask(workflowId);
 //        String id = task.getId();
         String taskId = null;
         if (taskService.checkClaim(workflowId)) {
@@ -286,10 +346,13 @@
                     } else {
                         flows.setStatus(ActivitiStatus.open);
                     }
-                    if (flows.getBusinessType().equals(ActivitiBusinessType.maintain)){
-                        String maintainId = flows.getBusinessId();
-                        maintainService.dealFlow(maintainId, flows.getStatus());
+
+                    if (!pass) {
+                        flows.setStatus(ActivitiStatus.close);
                     }
+
+
+                    flowsService.aduitFinish(flows);
 
                 } else {
                     if (pass && flows.getStatus().equals(ActivitiStatus.refuse)) {
@@ -319,4 +382,34 @@
             return Result.success(CodeMsg.INSERT_ERROR);
         }
     }
+
+    @RequestMapping(value = "/addActUser")
+    public Result addActUser(@RequestParam String userId){
+        return identityService.addUser(userId);
+    }
+
+    @RequestMapping(value = "/addActRole")
+    public Result addActRole(@RequestParam String roleId){
+        return identityService.addRole(roleId);
+    }
+
+    @RequestMapping(value = "/addActUserRole")
+    public Result addActUserRole(@RequestParam String roleId, @RequestParam String userId){
+        return identityService.addUserRole(roleId,userId);
+    }
+    @RequestMapping(value = "/deleteActUserRole")
+    public Result deleteActUserRole(@RequestParam String roleId, @RequestParam String userId){
+        return identityService.deleteUserRole(roleId,userId);
+    }
+
+    @RequestMapping(value = "/deleteActRole")
+    public Result deleteActRole(@RequestParam String roleId){
+        return identityService.deleteRole(roleId);
+    }
+
+    @RequestMapping(value = "/deleteActUser")
+    public Result deleteActUser(@RequestParam String userId){
+        return identityService.deleteUser(userId);
+    }
+
 }

--
Gitblit v1.8.0