guarantee-lsq 9 місяців тому
батько
коміт
ba0a2f37cf

+ 15 - 0
platform-dao/src/main/java/com/platform/dao/dto/workflow/WorkflowTaskBomDTO.java

@@ -7,6 +7,7 @@ import lombok.experimental.Accessors;
 
 import java.io.Serializable;
 import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  * @Description 流程任务审核字段显示表DTO
@@ -75,6 +76,20 @@ public class WorkflowTaskBomDTO extends BaseDTO implements Serializable {
      * 人员类型 1 发起人 2 审批人
      */
     private Integer personalType;
+
+    private Integer taskStatus; // 任务状态
+
+    private List<Integer> statusList;
+
+    private Integer searchType; // 1 待发事项
+
+    private LocalDateTime handleTime; // 处理时间
+
+    private String handleRemark; // 处理备注
+
+    private Integer readFlag; // 是否已阅
+
+    private Integer reminderNum; // 催办次数
     /**
      * 自定义字段1
      *//*

+ 15 - 24
platform-dao/src/main/java/com/platform/dao/dto/workflow/WorkflowTaskDTO.java

@@ -75,34 +75,22 @@ public class WorkflowTaskDTO extends BaseDTO implements Serializable {
      * 审批层级
      */
     private Integer nodeLevel;
-    /**
-     * 审批层级节点顺序
-     */
-    //private Integer nodeSort;
     /**
      * 1 审批中  2 已完结 3 待发起 4 终止  5 驳回
      */
     private Integer status;
     /**
-     * 处理人ID
-     */
-    /*private String userId;
-    *//**
-     * 处理人
-     *//*
-    private String userName;
-    *//**
-     * 处理时间
-     *//*
-    private LocalDateTime handleTime;
-    *//**
-     * 处理时间开始
-     *//*
-    private LocalDateTime handleTimeStart;
-    *//**
-     * 处理时间结束
-     *//*
-    private LocalDateTime handleTimeEnd;*/
+     * 发起时间
+     */
+    private LocalDateTime applyTime;
+    /**
+     * 发起时间开始
+     */
+    private LocalDateTime applyTimeStart;
+    /**
+     * 发起时间结束
+     */
+    private LocalDateTime applyTimeEnd;
     /**
      * 关键字
      */
@@ -110,9 +98,12 @@ public class WorkflowTaskDTO extends BaseDTO implements Serializable {
 
     private String taskName; // 审批任务名称  规则 发起人发起-审批流名称-日期
 
-    //private String taskType; // 任务关联表单类型  custom_form & sb_info & spare_info ....
     private String lastUserId; // 最近一次处理人
     private String lastUserName; // 最近一次处理人
     private LocalDateTime lastTime; // 最近处理时间
     private String remark; // 当前节点
+    private String applyDeptId; // 申请人所在部门
+    private Integer limitTime; // 期限
+    private String currentUserId; // 当前处理人ID
+    private String currentUserName; // 当前处理人
 }

+ 7 - 17
platform-dao/src/main/java/com/platform/dao/entity/workflow/WorkflowTask.java

@@ -35,7 +35,7 @@ public class WorkflowTask implements Serializable {
      */
     private String updateUserId;
     /**
-     * 发起时间
+     * 创建时间
      */
     private LocalDateTime createdTime;
     /**
@@ -58,10 +58,6 @@ public class WorkflowTask implements Serializable {
      * 表单数据表ID
      */
     private String formDataId;
-    /**
-     * 审批层级
-     */
-    //private Integer nodeLevel;
     /**
      * 审批层级节点顺序
      */
@@ -71,17 +67,9 @@ public class WorkflowTask implements Serializable {
      */
     private Integer status;
     /**
-     * 处理人ID
-     */
-    //private String userId;
-    /**
-     * 处理人
-     */
-    //private String userName;
-    /**
-     * 处理时间
+     * 发起时间
      */
-    //private LocalDateTime handleTime;
+    private LocalDateTime applyTime;
 
     /**
      * 数据权限
@@ -91,10 +79,12 @@ public class WorkflowTask implements Serializable {
 
     private String taskName; // 审批任务名称  规则 发起人发起-审批流名称-日期
 
-    //private String taskType; // 任务关联表单类型  custom_form & sb_info & spare_info ....
-
     private String lastUserId; // 最近一次处理人
     private String lastUserName; // 最近一次处理人
     private LocalDateTime lastTime; // 最近处理时间
     private String remark; // 当前节点
+    private String applyDeptId; // 申请人所在部门
+    private Integer limitTime; // 期限
+    private String currentUserId; // 当前处理人ID
+    private String currentUserName; // 当前处理人
 }

+ 9 - 1
platform-dao/src/main/java/com/platform/dao/entity/workflow/WorkflowTaskBom.java

@@ -54,7 +54,6 @@ public class WorkflowTaskBom implements Serializable {
      * 流程任务ID
      */
     private String taskId;
-
     /**
      * 0 待办 1 已办
      */
@@ -63,6 +62,15 @@ public class WorkflowTaskBom implements Serializable {
      * 人员类型 1 发起人 2 审批人
      */
     private Integer personalType;
+
+    private LocalDateTime handleTime; // 处理时间
+
+    private String handleRemark; // 处理备注
+
+    private Integer readFlag; // 是否已阅
+
+    private Integer reminderNum; // 催办次数
+
     /**
      * 自定义字段1
      *//*

+ 5 - 1
platform-dao/src/main/java/com/platform/dao/enums/FlowTaskStatusEnum.java

@@ -29,9 +29,13 @@ public enum FlowTaskStatusEnum {
      */
     PAUSE(4),
     /**
-     * 
+     * 回退
      */
     BACK(5),
+    /**
+     * 撤销
+     */
+    CANCEL(6),
     ;
     private final Integer value;
 

+ 1 - 0
platform-dao/src/main/java/com/platform/dao/mapper/workflow/WorkflowTaskBomMapper.java

@@ -23,4 +23,5 @@ public interface WorkflowTaskBomMapper extends MyMapper<WorkflowTaskBom> {
      */
     List<WorkflowTaskBomVO> selectList(WorkflowTaskBomDTO dto);
 
+    List<WorkflowTaskBomVO> selectWorkPlaceList(WorkflowTaskBomDTO dto);
 }

+ 14 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/workflow/WorkflowTaskBomVO.java

@@ -59,6 +59,20 @@ public class WorkflowTaskBomVO extends BaseVO implements Serializable {
      * 人员类型 1 发起人 2 审批人
      */
     private Integer personalType;
+
+    private String taskName; // 任务名称
+
+    private LocalDateTime taskCreatedTime; // 任务创建时间
+    private LocalDateTime applyTime; // 任务发起时间
+    private String applyUserName; // 任务发起人
+    private String lastUserName; // 任务上个处理人
+    private String nodeRemark; // 当前处理节点
+    private LocalDateTime lastTime; // 最近处理时间
+    private LocalDateTime handleTime; // 处理时间
+    private String handleRemark; // 处理备注
+    private Integer readFlag; // 是否已阅
+    private Integer reminderNum; // 催办次数
+    private String currentUserName; // 当前处理人
    /* *//**
      * 自定义字段1
      *//*

+ 6 - 15
platform-dao/src/main/java/com/platform/dao/vo/query/workflow/WorkflowTaskVO.java

@@ -55,10 +55,6 @@ public class WorkflowTaskVO extends BaseVO implements Serializable {
      * 表单数据表ID
      */
     private String formDataId;
-    /**
-     * 审批层级
-     */
-    //private Integer nodeLevel;
     /**
      * 审批层级节点顺序
      */
@@ -68,23 +64,18 @@ public class WorkflowTaskVO extends BaseVO implements Serializable {
      */
     private Integer status;
     /**
-     * 处理人ID
-     */
-    /*private String userId;
-    *//**
-     * 处理人
-     *//*
-    private String userName;
-    *//**
      * 处理时间
-     *//*
-    private LocalDateTime handleTime;*/
+     */
+    private LocalDateTime handleTime;
 
     private String taskName; // 审批任务名称  规则 发起人发起-审批流名称-日期
 
-    //private String taskType; // 任务关联表单类型  custom_form & sb_info & spare_info ....
     private String lastUserId; // 最近一次处理人
     private String lastUserName; // 最近一次处理人
     private LocalDateTime lastTime; // 最近处理时间
     private String remark; // 当前节点
+    private String applyDeptId; // 申请人所在部门
+    private Integer limitTime; // 期限
+    private String currentUserId; // 当前处理人ID
+    private String currentUserName; // 当前处理人
 }

+ 28 - 39
platform-dao/src/main/resources/mapper/workflow/WorkflowTaskBomMapper.xml

@@ -1,45 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.platform.dao.mapper.workflow.WorkflowTaskBomMapper">
-    <sql id="Base_Column_List">
-        bom
-        .
-        id
-        ,
-                                     bom.created_user_id,
-                                     bom.update_user_id,
-                                     bom.created_time,
-                                     bom.update_time,
-                                     bom.created_user_name,
-                                     bom.update_user_name,
-                                     bom.task_id,
-                                     bom.cdefine1,
-                                     bom.cdefine2,
-                                     bom.cdefine3,
-                                     bom.cdefine4,
-                                     bom.cdefine5,
-                                     bom.cdefine6,
-                                     bom.cdefine7,
-                                     bom.cdefine8,
-                                     bom.cdefine9,
-                                     bom.cdefine10
-    </sql>
-    <sql id="Ref_Column_List">
-        bom
-        .
-        task_id
-        ,
-                                     bom.cdefine1,
-                                     bom.cdefine2,
-                                     bom.cdefine3,
-                                     bom.cdefine4,
-                                     bom.cdefine5,
-                                     bom.cdefine6,
-                                     bom.cdefine7,
-                                     bom.cdefine8,
-                                     bom.cdefine9,
-                                     bom.cdefine10
-    </sql>
     <sql id="List_Condition">
         <if test="id != null and id != ''">
             and bom.id = #{id}
@@ -119,4 +80,32 @@
             <include refid="List_Condition"/>
         </where>
     </select>
+    <!-- 工作台分页数据 -->
+    <select id="selectWorkPlaceList" parameterType="com.platform.dao.dto.workflow.WorkflowTaskBomDTO"
+            resultType="com.platform.dao.vo.query.workflow.WorkflowTaskBomVO">
+        select bom.id,bom.task_id,bom.status,bom.personal_type,task.task_name,task.created_time as taskCreatedTime,
+            task.apply_time,task.created_user_name as applyUserName,task.last_user_name,task.last_time,
+            task.remark as nodeRemark,bom.read_flag,bom.reminder_num,task.current_user_name
+        from t_workflow_task_bom as bom join t_workflow_task task on bom.task_id = task.id
+        <where>
+            <if test="createdUserId != null and createdUserId != ''">
+                and bom.created_user_id = #{createdUserId}
+            </if>
+            <if test="status != null">
+                and bom.status = #{status}
+            </if>
+            <if test="personalType != null">
+                and bom.personal_type = #{personalType}
+            </if>
+            <if test="taskStatus != null">
+                and task.task_status = #{taskStatus}
+            </if>
+            <if test="statusList != null">
+                AND task.status in
+                <foreach item="item" index="index" collection="statusList" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+    </select>
 </mapper>

+ 0 - 68
platform-rest/src/main/java/com/platform/rest/controller/workplace/WorkplaceBacklogController.java

@@ -1,9 +1,7 @@
 package com.platform.rest.controller.workplace;
 
 import com.platform.common.bean.AbstractPageResultBean;
-import com.platform.common.model.UserInfo;
 import com.platform.common.util.R;
-import com.platform.common.util.SecurityUtils;
 import com.platform.dao.bean.MyVOPage;
 import com.platform.dao.dto.workplace.WorkplaceBacklogDTO;
 import com.platform.dao.dto.workplace.WorkplaceBacklogUserDTO;
@@ -49,47 +47,6 @@ public class WorkplaceBacklogController {
         return new R<>(workplaceBacklogService.getUserVOById(logId));
     }
 
-//  /**
-//   * 新增记录
-//   *
-//   * @param workplaceBacklogDTO 待办事项DTO
-//   * @return R
-//   */
-//  @SysLog("新增待办事项")
-//  @PostMapping
-//  @PreAuthorize("@pms.hasPermission('workplace-backlogs-add')")
-//  public R save(@Validated({AddGroup.class}) @RequestBody WorkplaceBacklogDTO workplaceBacklogDTO) {
-//      return new R<>(workplaceBacklogService.saveModelByDTO(workplaceBacklogDTO));
-//  }
-
-
-//    /**
-//     * 通过id删除一条记录
-//     *
-//     * @param id 主键
-//     * @return R
-//     */
-//    @SysLog("删除待办事项")
-//    @DeleteMapping("/{id}")
-//    @PreAuthorize("@pms.hasPermission('workplace-backlogs-del')")
-//    public R removeById(@PathVariable String id) {
-//        workplaceBacklogService.deleteByPrimaryKey(id);
-//        return new R<>();
-//    }
-
-//    /**
-//     * 批量记录
-//     *
-//     * @param ids 主键
-//     * @return R
-//     */
-//    @SysLog("批量删除待办事项")
-//    @DeleteMapping("")
-//    @PreAuthorize("@pms.hasPermission('workplace-backlogs-del')")
-//    public R removeIds(@RequestBody List<String> ids) {
-//        workplaceBacklogService.batchDelete(ids);
-//        return new R<>();
-//    }
     /**
      * 修改记录
      *
@@ -129,29 +86,4 @@ public class WorkplaceBacklogController {
         return new R<>(workplaceBacklogService.selectByUserPage(model, pageNum, pageSize));
     }
 
-//    /**
-//     * 获取列表
-//     *
-//     * @param workplaceBacklogDTO 待办事项DTO
-//     * @return R
-//     */
-//    @GetMapping("")
-//    public R query(WorkplaceBacklogDTO workplaceBacklogDTO) {
-//        return new R<>(workplaceBacklogService.getModelListByDTO(workplaceBacklogDTO));
-//    }
-
-//    /**
-//     * 待办事项导出
-//     *
-//     * @param workplaceBacklogDTO 待办事项DTO
-//     * @return R
-//     */
-//    @GetMapping("/export")
-//    @SysLog("待办事项导出")
-//    @PreAuthorize("@pms.hasPermission('workplace-backlogs-export')")
-//    public void export(HttpServletResponse response, WorkplaceBacklogDTO workplaceBacklogDTO) {
-//        List<WorkplaceBacklog> list = workplaceBacklogService.getModelListByDTO(workplaceBacklogDTO);
-//        ExcelUtil.exportResponseDict(response, ExportWorkplaceBacklogVO.class, BeanConverterUtil.copyListProperties(list, ExportWorkplaceBacklogVO.class), "待办事项");
-//    }
-
 }

+ 35 - 0
platform-rest/src/main/java/com/platform/rest/controller/workplace/WorkplaceController.java

@@ -0,0 +1,35 @@
+package com.platform.rest.controller.workplace;
+
+import com.platform.common.util.R;
+import com.platform.dao.dto.workflow.WorkflowTaskBomDTO;
+import com.platform.service.workflow.WorkflowTaskBomService;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Description 工作台 控制器
+ * @Author lsq
+ * @Date 2024-08-07 08:46:03
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/work/place")
+public class WorkplaceController {
+
+    private final WorkflowTaskBomService workflowTaskBomService;
+
+    /**
+     * 获取待发起事项
+     * @param workflowTaskBomDTO
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @GetMapping("/wait/publish")
+    public R getById(WorkflowTaskBomDTO workflowTaskBomDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "10") int pageSize) {
+        return new R(workflowTaskBomService.selectWorkPlacePageList(workflowTaskBomDTO, pageNum, pageSize));
+    }
+}

+ 7 - 0
platform-service/src/main/java/com/platform/service/custom/impl/CustomFormDataServiceImpl.java

@@ -25,6 +25,7 @@ import com.platform.dao.mapper.custom.CustomFormBomFieldMapper;
 import com.platform.dao.mapper.custom.CustomFormBomMapper;
 import com.platform.dao.mapper.custom.CustomFormDataMapper;
 import com.platform.dao.mapper.custom.CustomFormMapper;
+import com.platform.dao.mapper.upms.SysUserDeptMapper;
 import com.platform.dao.mapper.workflow.WorkflowMapper;
 import com.platform.dao.mapper.workflow.WorkflowTaskBomMapper;
 import com.platform.dao.mapper.workflow.WorkflowTaskMapper;
@@ -33,6 +34,7 @@ import com.platform.service.base.impl.BaseServiceImpl;
 import com.platform.service.custom.CustomFormDataService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import tk.mybatis.mapper.weekend.Weekend;
 import tk.mybatis.mapper.weekend.WeekendCriteria;
@@ -65,6 +67,8 @@ public class CustomFormDataServiceImpl extends BaseServiceImpl<CustomFormDataMap
     private WorkflowTaskMapper workflowTaskMapper;
     @Resource
     private WorkflowTaskBomMapper workflowTaskBomMapper;
+    @Autowired
+    private SysUserDeptMapper sysUserDeptMapper;
 
     @Override
     public int batchDelete(List<String> ids) {
@@ -153,10 +157,13 @@ public class CustomFormDataServiceImpl extends BaseServiceImpl<CustomFormDataMap
         // 发起人
         task.setCreatedUserId(SecurityUtils.getUserInfo().getUserId());
         task.setCreatedUserName(SecurityUtils.getUserInfo().getRealName());
+        task.setCreatedTime(LocalDateTime.now());
         task.setFlowId(bom.getFlowId());
         task.setNodeSort(YesNoEnum.YES.getValue());
         task.setTaskName(getTaskName(task.getCreatedUserName(),flow.getName()));
         task.setStatus(FlowTaskStatusEnum.APPLY.getValue());
+        task.setApplyDeptId(sysUserDeptMapper.selectDeptIdByUserId(task.getCreatedUserId()));
+        task.setLimitTime(YesNoEnum.NO.getValue());
         workflowTaskMapper.insert(task);
     }
 

+ 11 - 0
platform-service/src/main/java/com/platform/service/workflow/WorkflowTaskBomService.java

@@ -1,5 +1,6 @@
 package com.platform.service.workflow;
 
+import com.platform.dao.bean.MyPage;
 import com.platform.dao.vo.query.workflow.WorkflowTaskBomVO;
 import com.platform.dao.dto.workflow.WorkflowTaskBomDTO;
 import com.platform.dao.entity.workflow.WorkflowTaskBom;
@@ -34,4 +35,14 @@ public interface WorkflowTaskBomService extends IBaseService<WorkflowTaskBom, Wo
      */
     AbstractPageResultBean<WorkflowTaskBomVO> selectPageList(WorkflowTaskBomDTO record, int pageNum, int pageSize);
 
+    /**
+     * 获取工作台的分页数据
+     * @param record
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    MyPage<WorkflowTaskBomVO> selectWorkPlacePageList(WorkflowTaskBomDTO record, int pageNum, int pageSize);
+
+    WorkflowTaskBomVO getVOById(String id);
 }

+ 37 - 0
platform-service/src/main/java/com/platform/service/workflow/impl/WorkflowTaskBomServiceImpl.java

@@ -2,9 +2,14 @@ package com.platform.service.workflow.impl;
 
 import com.github.pagehelper.PageHelper;
 import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.common.util.BeanConverterUtil;
+import com.platform.common.util.ListUtils;
+import com.platform.common.util.SecurityUtils;
 import com.platform.dao.bean.MyPage;
 import com.platform.dao.dto.workflow.WorkflowTaskBomDTO;
 import com.platform.dao.entity.workflow.WorkflowTaskBom;
+import com.platform.dao.enums.FlowTaskStatusEnum;
+import com.platform.dao.enums.YesNoEnum;
 import com.platform.dao.mapper.workflow.WorkflowTaskBomMapper;
 import com.platform.dao.vo.query.workflow.WorkflowTaskBomVO;
 import com.platform.service.base.impl.BaseServiceImpl;
@@ -45,6 +50,38 @@ public class WorkflowTaskBomServiceImpl extends BaseServiceImpl<WorkflowTaskBomM
         return new MyPage(mapper.selectList(record));
     }
 
+    @Override
+    public MyPage<WorkflowTaskBomVO> selectWorkPlacePageList(WorkflowTaskBomDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        record.setCreatedUserId(SecurityUtils.getUserInfo().getUserId());
+        if(record.getSearchType() != null){
+            List<Integer> statusList = ListUtils.newArrayList();
+            switch (record.getSearchType()){
+                case 1: // 待发事项
+                    statusList.add(FlowTaskStatusEnum.APPLY.getValue());
+                    statusList.add(FlowTaskStatusEnum.BACK.getValue());
+                    statusList.add(FlowTaskStatusEnum.CANCEL.getValue());
+                    break;
+            }
+            record.setStatusList(statusList);
+        }
+        return new MyPage(mapper.selectWorkPlaceList(record));
+    }
+
+    @Override
+    public WorkflowTaskBomVO getVOById(String id) {
+        WorkflowTaskBomVO vo = BeanConverterUtil.copyObjectProperties(mapper.selectByPrimaryKey(id), WorkflowTaskBomVO.class);
+        String userId = SecurityUtils.getUserInfo().getUserId();
+        if(userId.equals(vo.getCreatedUserId())){
+            WorkflowTaskBom bom = new WorkflowTaskBom();
+            bom.setId(id);
+            bom.setReadFlag(YesNoEnum.YES.getValue());
+            mapper.updateByPrimaryKeySelective(bom);
+        }
+        // 获取详情数据
+        return vo;
+    }
+
     @Override
     public AbstractPageResultBean<WorkflowTaskBom> selectPageInfo(WorkflowTaskBomDTO record, int pageNum, int pageSize) {
         PageHelper.startPage(pageNum, pageSize);