hfxc226 3 жил өмнө
parent
commit
2767924b41

+ 116 - 3
platform-activiti/src/main/java/com/platform/activiti/controller/ActivitiController.java

@@ -340,7 +340,7 @@ public class ActivitiController {
     }
 
     /**
-     * 获取待办
+     * 获取待办(不包括代签收,候选组的)
      *
      * @param pageNum
      * @param pageSize
@@ -349,11 +349,66 @@ public class ActivitiController {
     @GetMapping(value = "/my-task/page")
     @ResponseBody
     public R showTaskList(Integer pageNum, Integer pageSize) {
+        UserInfo userInfo = SecurityUtils.getUserInfo();
+        String userId = userInfo.getUserId();
+        List<Task> taskList = taskService.createTaskQuery().taskAssignee(userId).list();
+        taskList = taskList.stream().distinct().sorted(Comparator.comparing(Task::getCreateTime).reversed()).collect(Collectors.toList());
+        List<ActApplyInfo> tasks = new ArrayList<>();
+        Map<String, Object> map = new HashMap<>();
+        long total = taskList.size();
+        int pages = (int) total / pageSize;
+        pages = total % pageSize == 0 ? pages : (pages + 1);
+        if (pageNum > pages) {
+            MyPage<ActApplyInfo> page = new MyPage<>(tasks);
+            page.setTotal(total);
+            page.setPages(pages);
+            page.setPageNum(pageNum);
+            page.setRows(tasks);
+            page.setPageSize(pageSize);
+            return R.success(page);
+        }
+        int startRow = pageNum > 0 ? (pageNum - 1) * pageSize : 0;
+        int endRow = startRow + pageSize * (pageNum > 0 ? 1 : 0);
+        endRow = endRow > taskList.size() ? taskList.size() : endRow;
+        for (int i = startRow; i < endRow; i++) {
+            Task task = taskList.get(i);
+            String taskId = task.getId();
+            map = taskService.getVariables(taskId);
+            ActApplyInfo applyInfo = (ActApplyInfo) map.get("data");
+            if(applyInfo == null){
+                applyInfo = new ActApplyInfo();
+            }
+            applyInfo.setProcessInstanceId(task.getProcessInstanceId());
+            applyInfo.setTaskId(task.getId());
+
+            /**如果是自己*/
+            if (userId.equals(applyInfo.getUserId())) {
+                applyInfo.setSelf(true);
+            }
+            tasks.add(applyInfo);
+        }
+        MyPage<ActApplyInfo> page = new MyPage<>(tasks);
+        page.setTotal(total);
+        page.setPages(pages);
+        page.setPageNum(pageNum);
+        page.setRows(tasks);
+        page.setPageSize(pageSize);
+        return R.success(page);
+    }
+
+    /**
+     * 获取待签收
+     *
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @GetMapping(value = "/my-task/claim/page")
+    @ResponseBody
+    public R showTaskListClaim(Integer pageNum, Integer pageSize) {
         UserInfo userInfo = SecurityUtils.getUserInfo();
         String userId = userInfo.getUserId();
         List<Task> taskList = taskService.createTaskQuery().taskCandidateUser(userId).list();
-        List<Task> assigneeList = taskService.createTaskQuery().taskAssignee(userId).list();
-        taskList.addAll(assigneeList);
         List<String> roleIds = userInfo.getRoleIds();
         if (CollectionUtil.isNotEmpty(roleIds)) {
             List<Task> candidateGroup = taskService.createTaskQuery().taskCandidateGroupIn(userInfo.getRoleIds()).list();
@@ -403,6 +458,64 @@ public class ActivitiController {
         return R.success(page);
     }
 
+    /**
+     * 获取已办
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @GetMapping(value = "/my-task/finish/page")
+    @ResponseBody
+    public R showTaskListFinish(Integer pageNum, Integer pageSize) {
+        UserInfo userInfo = SecurityUtils.getUserInfo();
+        String userId = userInfo.getUserId();
+        List<HistoricTaskInstance> taskList  = historyService.createHistoricTaskInstanceQuery()
+                .taskAssignee(userId)
+                .finished()
+                .list();
+        List<ActApplyInfo> tasks = new ArrayList<>();
+        Map<String, Object> map = new HashMap<>();
+        long total = taskList.size();
+        int pages = (int) total / pageSize;
+        pages = total % pageSize == 0 ? pages : (pages + 1);
+        if (pageNum > pages) {
+            MyPage<ActApplyInfo> page = new MyPage<>(tasks);
+            page.setTotal(total);
+            page.setPages(pages);
+            page.setPageNum(pageNum);
+            page.setRows(tasks);
+            page.setPageSize(pageSize);
+            return R.success(page);
+        }
+        int startRow = pageNum > 0 ? (pageNum - 1) * pageSize : 0;
+        int endRow = startRow + pageSize * (pageNum > 0 ? 1 : 0);
+        endRow = endRow > taskList.size() ? taskList.size() : endRow;
+        for (int i = startRow; i < endRow; i++) {
+            HistoricTaskInstance task = taskList.get(i);
+            String taskId = task.getId();
+            map = taskService.getVariables(taskId);
+            ActApplyInfo applyInfo = (ActApplyInfo) map.get("data");
+            if(applyInfo == null){
+                applyInfo = new ActApplyInfo();
+            }
+            applyInfo.setProcessInstanceId(task.getProcessInstanceId());
+            applyInfo.setTaskId(task.getId());
+
+            /**如果是自己*/
+            if (userId.equals(applyInfo.getUserId())) {
+                applyInfo.setSelf(true);
+            }
+            tasks.add(applyInfo);
+        }
+        MyPage<ActApplyInfo> page = new MyPage<>(tasks);
+        page.setTotal(total);
+        page.setPages(pages);
+        page.setPageNum(pageNum);
+        page.setRows(tasks);
+        page.setPageSize(pageSize);
+        return R.success(page);
+    }
+
     @PostMapping("/audit")
     @ResponseBody
     public R audit(@RequestBody ActApplyInfoDTO applyInfoDTO) {

+ 13 - 7
platform-activiti/src/main/java/com/platform/activiti/dao/entity/ActApplyInfo.java

@@ -16,16 +16,16 @@ public class ActApplyInfo implements Serializable {
 
     private static final long serialVersionUID = 1L;
     /**
-     * 目标ID
+     * 目标ID:表单的单号id,或者设备的id。方便得task列表点击进行判定,跳转到不同表单
      */
     private String targetId;
     /**
-     * 目标名称
+     * 目标名称:设备名称,为了展示方便的
      */
     private String targetName;
 
     /**
-     * 目标编码
+     * 目标编码:表单的编码,根据不同表单编码进行跳转展示表单
      */
     private String targetCode;
     /**
@@ -39,27 +39,33 @@ public class ActApplyInfo implements Serializable {
     private String processInstanceId;
 
     /**
-     * 用户ID
+     * 用户ID:发起用户
      */
     private String userId;
 
     /**
-     * 姓名
+     * 姓名:发起用户姓名
      */
     private String userName;
 
     /**
-     * 自己
+     * 自己:是否是自己发起的
      */
     private Boolean self = false;
 
     /**
-     * 任务Id
+     * 任务Id:根据没给task都可以设置这个map。目的是
      */
     private String taskId;
 
+    /**
+     * 当前节点:已废弃
+     */
     private Integer auditNode;
 
+    /**
+     * 任务Id
+     */
     private Boolean handleFlag = false;
 
     public ActApplyInfo() {

+ 1 - 2
platform-rest/src/main/java/com/platform/rest/controller/activiti/SbInfoActivitiController.java

@@ -70,8 +70,7 @@ public class SbInfoActivitiController {
     private final SysUserService sysUserService;
 
     /**
-     * 启动
-     *
+     * 启动:将设备id和表单id设置到businessKey中
      * @param sbInfoDTO 设备基础信息DTO
      * @return R
      */