Browse Source

优化增补

guarantee-lsq 9 months ago
parent
commit
c389db79b5

+ 83 - 0
platform-dao/src/main/java/com/platform/dao/dto/workflow/WorkflowTaskRecordDTO.java

@@ -0,0 +1,83 @@
+package com.platform.dao.dto.workflow;
+
+import com.platform.common.bean.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * @Description 流程任务处理记录DTO
+ * @Author lsq
+ * @Date 2024-08-02 09:56:29
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class WorkflowTaskRecordDTO extends BaseDTO implements Serializable {
+
+    /**
+     * ID
+     */
+    private String id;
+    /**
+     * 任务ID
+     */
+    private String taskId;
+    /**
+     * 处理结果
+     */
+    private Integer handleStatus;
+    /**
+     * 处理备注
+     */
+    private String handleRemark;
+    /**
+     * 处理时间
+     */
+    private LocalDateTime createdTime;
+    /**
+     * 处理时间开始
+     */
+    private LocalDateTime createdTimeStart;
+    /**
+     * 处理时间结束
+     */
+    private LocalDateTime createdTimeEnd;
+    /**
+     * 处理人ID
+     */
+    private String createdUserId;
+    /**
+     * 处理人
+     */
+    private String createdUserName;
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+    /**
+     * 更新时间开始
+     */
+    private LocalDateTime updateTimeStart;
+    /**
+     * 更新时间结束
+     */
+    private LocalDateTime updateTimeEnd;
+    /**
+     * 更新人ID
+     */
+    private String updateUserId;
+    /**
+     * 更新人
+     */
+    private String updateUserName;
+    /**
+     * 关键字
+     */
+    private String keyword;
+
+}

+ 1 - 0
platform-dao/src/main/java/com/platform/dao/entity/workflow/WorkflowTask.java

@@ -91,4 +91,5 @@ public class WorkflowTask implements Serializable {
 
     private String taskName; // 审批任务名称  规则 发起人发起-审批流名称-日期
 
+
 }

+ 72 - 0
platform-dao/src/main/java/com/platform/dao/entity/workflow/WorkflowTaskRecord.java

@@ -0,0 +1,72 @@
+package com.platform.dao.entity.workflow;
+
+import com.platform.common.bean.DataScope;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * @Description 流程任务处理记录实体类
+ * @Author lsq
+ * @Date 2024-08-02 09:56:29
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@Table(name = "t_workflow_task_record")
+public class WorkflowTaskRecord implements Serializable {
+
+    /**
+     * ID
+     */
+    @Id
+    private String id;
+    /**
+     * 任务ID
+     */
+    private String taskId;
+    /**
+     * 处理结果
+     */
+    private Integer handleStatus;
+    /**
+     * 处理备注
+     */
+    private String handleRemark;
+    /**
+     * 处理时间
+     */
+    private LocalDateTime createdTime;
+    /**
+     * 处理人ID
+     */
+    private String createdUserId;
+    /**
+     * 处理人
+     */
+    private String createdUserName;
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+    /**
+     * 更新人ID
+     */
+    private String updateUserId;
+    /**
+     * 更新人
+     */
+    private String updateUserName;
+
+    /**
+     * 数据权限
+     */
+    @Transient
+    private DataScope dataScope;
+
+}

+ 26 - 0
platform-dao/src/main/java/com/platform/dao/mapper/workflow/WorkflowTaskRecordMapper.java

@@ -0,0 +1,26 @@
+package com.platform.dao.mapper.workflow;
+
+import com.platform.dao.dto.workflow.WorkflowTaskRecordDTO;
+import com.platform.dao.config.MyMapper;
+import com.platform.dao.entity.workflow.WorkflowTaskRecord;
+import com.platform.dao.vo.query.workflow.WorkflowTaskRecordVO;
+import org.springframework.stereotype.Component;
+import java.util.List;
+
+
+/**
+ * @Description 流程任务处理记录 mapper
+ * @Author lsq
+ * @Date 2024-08-02 09:56:29
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Component
+public interface WorkflowTaskRecordMapper extends MyMapper<WorkflowTaskRecord> {
+    /**
+     * 分页查询
+     * @param dto
+     * @return
+     */
+    List<WorkflowTaskRecordVO> selectList(WorkflowTaskRecordDTO dto);
+
+}

+ 81 - 0
platform-dao/src/main/java/com/platform/dao/vo/export/workflow/ExportWorkflowTaskRecordVO.java

@@ -0,0 +1,81 @@
+package com.platform.dao.vo.export.workflow;
+
+import com.platform.office.annotation.Excel;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+
+/**
+ * @Description 流程任务处理记录导出VO
+ * @Author lsq
+ * @Date 2024-08-02 09:56:29
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+public class ExportWorkflowTaskRecordVO implements Serializable {
+
+    /**
+   * ID
+   */
+          @Excel(name = "ID", orderNum = "1")
+      private String id;
+    
+    /**
+   * 任务ID
+   */
+          @Excel(name = "任务ID", orderNum = "2")
+      private String taskId;
+    
+    /**
+   * 处理结果
+   */
+          @Excel(name = "处理结果", orderNum = "3")
+      private Integer handleStatus;
+    
+    /**
+   * 处理备注
+   */
+          @Excel(name = "处理备注", orderNum = "4")
+      private String handleRemark;
+    
+    /**
+   * 处理时间
+   */
+          @Excel(name = "处理时间", orderNum = "5")
+      private LocalDateTime createdTime;
+    
+    /**
+   * 处理人ID
+   */
+          @Excel(name = "处理人ID", orderNum = "6")
+      private String createdUserId;
+    
+    /**
+   * 处理人
+   */
+          @Excel(name = "处理人", orderNum = "7")
+      private String createdUserName;
+    
+    /**
+   * 更新时间
+   */
+          @Excel(name = "更新时间", orderNum = "8")
+      private LocalDateTime updateTime;
+    
+    /**
+   * 更新人ID
+   */
+          @Excel(name = "更新人ID", orderNum = "9")
+      private String updateUserId;
+    
+    /**
+   * 更新人
+   */
+          @Excel(name = "更新人", orderNum = "10")
+      private String updateUserName;
+    
+  
+}

+ 64 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/workflow/WorkflowTaskRecordVO.java

@@ -0,0 +1,64 @@
+package com.platform.dao.vo.query.workflow;
+
+import com.platform.common.bean.BaseVO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * @Description 流程任务处理记录VO结果类
+ * @Author lsq
+ * @Date 2024-08-02 09:56:29
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class WorkflowTaskRecordVO extends BaseVO implements Serializable {
+
+    /**
+     * ID
+     */
+    private String id;
+    /**
+     * 任务ID
+     */
+    private String taskId;
+    /**
+     * 处理结果
+     */
+    private Integer handleStatus;
+    /**
+     * 处理备注
+     */
+    private String handleRemark;
+    /**
+     * 处理时间
+     */
+    private LocalDateTime createdTime;
+    /**
+     * 处理人ID
+     */
+    private String createdUserId;
+    /**
+     * 处理人
+     */
+    private String createdUserName;
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+    /**
+     * 更新人ID
+     */
+    private String updateUserId;
+    /**
+     * 更新人
+     */
+    private String updateUserName;
+
+
+}

+ 58 - 0
platform-dao/src/main/resources/mapper/workflow/WorkflowTaskRecordMapper.xml

@@ -0,0 +1,58 @@
+<?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.WorkflowTaskRecordMapper">
+    <sql id="List_Condition">
+        <if test="id != null and id != ''">
+            and record.id = #{id}
+        </if>
+        <if test="taskId != null and taskId != ''">
+            and record.task_id = #{taskId}
+        </if>
+        <if test="handleStatus != null">
+            and record.handle_status = #{handleStatus}
+        </if>
+        <if test="handleRemark != null and handleRemark != ''">
+            and record.handle_remark = #{handleRemark}
+        </if>
+        <if test="createdTimeStart != null">
+            and record.created_time <![CDATA[>=]]>; #{createdTimeStart}
+        </if>
+        <if test="createdTimeEnd != null">
+            and record.created_time <![CDATA[<=]]> #{createdTimeEnd}
+        </if>
+        <if test="createdTime != null">
+            and record.created_time = #{createdTime}
+        </if>
+        <if test="createdUserId != null and createdUserId != ''">
+            and record.created_user_id = #{createdUserId}
+        </if>
+        <if test="createdUserName != null and createdUserName != ''">
+            and record.created_user_name = #{createdUserName}
+        </if>
+        <if test="updateTimeStart != null">
+            and record.update_time <![CDATA[>=]]>; #{updateTimeStart}
+        </if>
+        <if test="updateTimeEnd != null">
+            and record.update_time <![CDATA[<=]]> #{updateTimeEnd}
+        </if>
+        <if test="updateTime != null">
+            and record.update_time = #{updateTime}
+        </if>
+        <if test="updateUserId != null and updateUserId != ''">
+            and record.update_user_id = #{updateUserId}
+        </if>
+        <if test="updateUserName != null and updateUserName != ''">
+            and record.update_user_name = #{updateUserName}
+        </if>
+        <if test="keyword != null and keyword != ''">
+            and record.id like concat(concat('%',#{keyword}),'%')
+        </if>
+    </sql>
+    <select id="selectList" parameterType="com.platform.dao.dto.workflow.WorkflowTaskRecordDTO" resultType="com.platform.dao.vo.query.workflow.WorkflowTaskRecordVO">
+        select record.*
+        from t_workflow_task_record as record
+        <where>
+            <include refid="List_Condition"/>
+        </where>
+    </select>
+</mapper>

+ 141 - 0
platform-rest/src/main/java/com/platform/rest/controller/workflow/WorkflowTaskRecordController.java

@@ -0,0 +1,141 @@
+package com.platform.rest.controller.workflow;
+
+import com.platform.common.util.R;
+import com.platform.dao.dto.workflow.WorkflowTaskRecordDTO;
+import com.platform.dao.entity.workflow.WorkflowTaskRecord;
+import com.platform.service.workflow.WorkflowTaskRecordService;
+import com.platform.dao.util.ExcelUtil;
+import com.platform.dao.vo.export.workflow.ExportWorkflowTaskRecordVO;
+import com.platform.dao.vo.query.workflow.WorkflowTaskRecordVO;
+import com.platform.common.util.BeanConverterUtil;
+import com.platform.common.validation.group.AddGroup;
+import com.platform.common.validation.group.UpdateGroup;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import lombok.AllArgsConstructor;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.rest.log.annotation.SysLog;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @Description 流程任务处理记录 控制器
+ * @Author lsq
+ * @Date 2024-08-02 09:56:29
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/workflow/record")
+public class WorkflowTaskRecordController {
+
+    private final WorkflowTaskRecordService workflowTaskRecordService;
+
+    /**
+     * 通过id查询单条记录
+     *
+     * @param id 主键
+     * @return R
+     */
+    @GetMapping("/{id}")
+    public R<WorkflowTaskRecord> getById(@PathVariable("id") String id) {
+        return new R<>(workflowTaskRecordService.getModelById(id));
+    }
+
+    /**
+     * 新增记录
+     *
+     * @param workflowTaskRecordDTO 流程任务处理记录DTO
+     * @return R
+     */
+    @SysLog("新增流程任务处理记录")
+    @PostMapping
+    @PreAuthorize("@pms.hasPermission('workflow-record-add')")
+    public R save(@Validated({AddGroup.class}) @RequestBody WorkflowTaskRecordDTO workflowTaskRecordDTO) {
+        return new R<>(workflowTaskRecordService.saveModelByDTO(workflowTaskRecordDTO));
+    }
+
+    /**
+     * 修改记录
+     *
+     * @param workflowTaskRecordDTO 流程任务处理记录DTO
+     * @return R
+     */
+    @SysLog("修改流程任务处理记录")
+    @PutMapping("/{id}")
+    @PreAuthorize("@pms.hasPermission('workflow-record-edit')")
+    public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody WorkflowTaskRecordDTO workflowTaskRecordDTO) {
+        workflowTaskRecordService.modModelByDTO(workflowTaskRecordDTO);
+        return new R<>();
+    }
+
+
+    /**
+     * 通过id删除一条记录
+     *
+     * @param id 主键
+     * @return R
+     */
+    @SysLog("删除流程任务处理记录")
+    @DeleteMapping("/{id}")
+    @PreAuthorize("@pms.hasPermission('workflow-record-del')")
+    public R removeById(@PathVariable String id) {
+        workflowTaskRecordService.deleteByPrimaryKey(id);
+        return new R<>();
+    }
+
+    /**
+     * 批量记录
+     *
+     * @param ids 主键
+     * @return R
+     */
+    @SysLog("批量删除流程任务处理记录")
+    @DeleteMapping("")
+    @PreAuthorize("@pms.hasPermission('workflow-record-del')")
+    public R removeIds(@RequestBody List<String> ids) {
+        workflowTaskRecordService.batchDelete(ids);
+        return new R<>();
+    }
+
+    /**
+     * 获取分页
+     *
+     * @param pageNum               当前页码
+     * @param pageSize              每页条数
+     * @param workflowTaskRecordDTO 流程任务处理记录DTO
+     * @return R
+     */
+    @GetMapping("/page")
+    public R<AbstractPageResultBean<WorkflowTaskRecordVO>> query(WorkflowTaskRecordDTO workflowTaskRecordDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+        return new R<>(workflowTaskRecordService.selectPageList(workflowTaskRecordDTO, pageNum, pageSize));
+    }
+
+    /**
+     * 获取列表
+     *
+     * @param workflowTaskRecordDTO 流程任务处理记录DTO
+     * @return R
+     */
+    @GetMapping("")
+    public R query(WorkflowTaskRecordDTO workflowTaskRecordDTO) {
+        return new R<>(workflowTaskRecordService.getModelListByDTO(workflowTaskRecordDTO));
+    }
+
+    /**
+     * 流程任务处理记录导出
+     *
+     * @param workflowTaskRecordDTO 流程任务处理记录DTO
+     * @return R
+     */
+    @GetMapping("/export")
+    @SysLog("流程任务处理记录导出")
+    @PreAuthorize("@pms.hasPermission('workflow-record-export')")
+    public void export(HttpServletResponse response, WorkflowTaskRecordDTO workflowTaskRecordDTO) {
+        List<WorkflowTaskRecord> list = workflowTaskRecordService.getModelListByDTO(workflowTaskRecordDTO);
+        ExcelUtil.exportResponseDict(response, ExportWorkflowTaskRecordVO.class, BeanConverterUtil.copyListProperties(list, ExportWorkflowTaskRecordVO.class), "流程任务处理记录");
+    }
+
+}

+ 2 - 0
platform-service/src/main/java/com/platform/service/workflow/WorkflowService.java

@@ -34,4 +34,6 @@ public interface WorkflowService extends IBaseService<Workflow, WorkflowDTO> {
      */
     AbstractPageResultBean<WorkflowVO> selectPageList(WorkflowDTO record, int pageNum, int pageSize);
 
+
+    Workflow saveByDTO(WorkflowDTO workflowDTO);
 }

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

@@ -0,0 +1,37 @@
+package com.platform.service.workflow;
+
+import com.platform.dao.vo.query.workflow.WorkflowTaskRecordVO;
+import com.platform.dao.dto.workflow.WorkflowTaskRecordDTO;
+import com.platform.dao.entity.workflow.WorkflowTaskRecord;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.service.base.IBaseService;
+
+import java.util.List;
+
+/**
+ * @Description 流程任务处理记录 service
+ * @Author lsq
+ * @Date 2024-08-02 09:56:29
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+public interface WorkflowTaskRecordService extends IBaseService<WorkflowTaskRecord, WorkflowTaskRecordDTO> {
+
+    /**
+     * 批量删除
+     *
+     * @param ids :
+     * @return :
+     */
+    int batchDelete(List<String> ids);
+
+    /**
+     * 分页查询
+     *
+     * @param record
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    AbstractPageResultBean<WorkflowTaskRecordVO> selectPageList(WorkflowTaskRecordDTO record, int pageNum, int pageSize);
+
+}

+ 12 - 5
platform-service/src/main/java/com/platform/service/workflow/impl/WorkflowServiceImpl.java

@@ -1,19 +1,18 @@
 package com.platform.service.workflow.impl;
 
+import com.github.pagehelper.PageHelper;
 import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.dao.bean.MyPage;
-import com.github.pagehelper.PageHelper;
-import com.platform.dao.vo.query.workflow.WorkflowVO;
 import com.platform.dao.dto.workflow.WorkflowDTO;
 import com.platform.dao.entity.workflow.Workflow;
 import com.platform.dao.mapper.workflow.WorkflowMapper;
+import com.platform.dao.vo.query.workflow.WorkflowVO;
+import com.platform.service.base.impl.BaseServiceImpl;
 import com.platform.service.workflow.WorkflowService;
+import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
-import com.platform.service.base.impl.BaseServiceImpl;
-import org.springframework.transaction.annotation.Transactional;
 import tk.mybatis.mapper.weekend.Weekend;
 import tk.mybatis.mapper.weekend.WeekendCriteria;
-import lombok.AllArgsConstructor;
 
 import java.util.List;
 
@@ -42,6 +41,14 @@ public class WorkflowServiceImpl extends BaseServiceImpl<WorkflowMapper, Workflo
         return new MyPage(mapper.selectList(record));
     }
 
+    @Override
+    public Workflow saveByDTO(WorkflowDTO workflowDTO) {
+        // 计算总节点数
+        // 计算层级数
+        // 解析json,生成workflowNode,发起表单或者其他审批根据workflowNode来生成任务
+        return null;
+    }
+
     @Override
     public AbstractPageResultBean<Workflow> selectPageInfo(WorkflowDTO record, int pageNum, int pageSize) {
         PageHelper.startPage(pageNum, pageSize);

+ 50 - 0
platform-service/src/main/java/com/platform/service/workflow/impl/WorkflowTaskRecordServiceImpl.java

@@ -0,0 +1,50 @@
+package com.platform.service.workflow.impl;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.dao.bean.MyPage;
+import com.github.pagehelper.PageHelper;
+import com.platform.dao.vo.query.workflow.WorkflowTaskRecordVO;
+import com.platform.dao.dto.workflow.WorkflowTaskRecordDTO;
+import com.platform.dao.entity.workflow.WorkflowTaskRecord;
+import com.platform.dao.mapper.workflow.WorkflowTaskRecordMapper;
+import com.platform.service.workflow.WorkflowTaskRecordService;
+import org.springframework.stereotype.Service;
+import com.platform.service.base.impl.BaseServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+import tk.mybatis.mapper.weekend.Weekend;
+import tk.mybatis.mapper.weekend.WeekendCriteria;
+import lombok.AllArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @Description 流程任务处理记录 service 实现类
+ * @Author lsq
+ * @Date 2024-08-02 09:56:29
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@AllArgsConstructor
+@Service("workflowTaskRecordService")
+public class WorkflowTaskRecordServiceImpl extends BaseServiceImpl<WorkflowTaskRecordMapper, WorkflowTaskRecord, WorkflowTaskRecordDTO> implements WorkflowTaskRecordService {
+
+    @Override
+    public int batchDelete(List<String> ids) {
+        Weekend<WorkflowTaskRecord> weekend = new Weekend<>(WorkflowTaskRecord.class);
+        WeekendCriteria<WorkflowTaskRecord, Object> weekendCriteria = weekend.weekendCriteria();
+        weekendCriteria.andIn(WorkflowTaskRecord::getId, ids);
+        mapper.deleteByExample(weekend);
+        return 1;
+    }
+
+    @Override
+    public AbstractPageResultBean<WorkflowTaskRecordVO> selectPageList(WorkflowTaskRecordDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage(mapper.selectList(record));
+    }
+
+    @Override
+    public AbstractPageResultBean<WorkflowTaskRecord> selectPageInfo(WorkflowTaskRecordDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage(mapper.selectList(record));
+    }
+
+                                                                                                                            }