Browse Source

抄送查询重构

caixiaofeng 6 months ago
parent
commit
154fbe7262

+ 0 - 58
flow-app/src/main/resources/mapper/workflow/FlowCcDao.xml

@@ -1,58 +0,0 @@
-<?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.flow.dao.FlowCcDao">
-
-    <resultMap id="BaseResultMap" type="com.flow.entity.FlowCc">
-        <result property="id" column="id" jdbcType="INTEGER"/>
-        <result property="name" column="name" jdbcType="VARCHAR"/>
-        <result property="instanceId" column="instance_id" jdbcType="VARCHAR"/>
-        <result property="instanceName" column="instance_name" jdbcType="VARCHAR"/>
-        <result property="startUserId" column="start_user_id" jdbcType="VARCHAR"/>
-        <result property="definitionId" column="definition_id" jdbcType="VARCHAR"/>
-        <result property="startTime" column="start_time" jdbcType="TIMESTAMP"/>
-        <result property="nodeId" column="node_id" jdbcType="VARCHAR"/>
-        <result property="userId" column="user_id" jdbcType="VARCHAR"/>
-        <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
-    </resultMap>
-
-
-    <select id="list" resultMap="BaseResultMap">
-        select
-            cc.id,
-            cc.name,
-            cc.instance_id,
-            HP.NAME_ as instance_name,
-            HP.START_USER_ID_ as start_user_id,
-            HP.START_TIME_ as start_time,
-            cc.definition_id,
-            cc.node_id,
-            cc.user_id,
-            cc.create_time
-        from flow_cc cc
-        inner join ACT_HI_PROCINST HP on cc.instance_id = HP.ID_
-        <where>
-            AND user_id = '${@com.flow.common.core.util.SecurityContextUtil@getUserId()}'
-            <if test="query.name != null and query.name != ''">
-                AND cc.name like CONCAT('%',#{query.name},'%')
-            </if>
-            <if test="query.instanceName != null and query.instanceName != ''">
-                AND HP.NAME_ like CONCAT('%',#{query.instanceName},'%')
-            </if>
-            <if test="query.startUserId != null and query.startUserId != ''">
-                AND HP.START_USER_ID_ = #{query.startUserId}
-            </if>
-            <if test="query.modelCode != null and query.modelCode != ''">
-                and HP.PROC_DEF_ID_ like CONCAT(#{query.modelCode},'%')
-            </if>
-            <if test="query.definitionId != null and query.definitionId != ''">
-                AND cc.definition_id = #{query.definitionId}
-            </if>
-            <if test="query.nodeId != null and query.nodeId != ''">
-                AND cc.node_id = #{query.nodeId}
-            </if>
-        </where>
-        ORDER BY
-        cc.id DESC
-    </select>
-
-</mapper>

+ 36 - 21
flow-app/src/main/resources/mapper/workflow/FlowInstanceDao.xml

@@ -31,31 +31,46 @@
             ACT_HI_PROCINST HP
                 LEFT JOIN flow_instance RE ON HP.ID_ = RE.id
     </sql>
+    <sql id="instanceWheres">
+        <if test="query.startUserId != null and query.startUserId != ''">
+            AND HP.START_USER_ID_ = #{query.startUserId}
+        </if>
+        <if test="query.status!= null">
+            AND RE.status = #{query.status}
+        </if>
+        <if test="query.name!= null and query.name!= ''">
+            AND HP.NAME_ like CONCAT('%',#{query.name},'%')
+        </if>
+        <if test="query.modelCode!= null and query.modelCode!= ''">
+            AND HP.PROC_DEF_ID_ like CONCAT(#{query.modelCode},'%')
+        </if>
+        <if test="query.definitionId!= null and query.definitionId!= ''">
+            AND HP.PROC_DEF_ID_ = #{query.definitionId}
+        </if>
+        <if test="query.startDates != null and query.startDates.size()>1">
+            AND HP.START_TIME_ between #{query.startDates[0]} and #{query.startDates[1]}
+        </if>
+        <if test="query.endDates != null and query.endDates.size()>1">
+            AND HP.END_TIME_ between #{query.endDates[0]} and #{query.endDates[1]}
+        </if>
+    </sql>
 
     <select id="list" resultMap="BaseResultMap">
         <include refid="instanceColumns"></include>
         <where>
-            <if test="query.startUserId != null and query.startUserId != ''">
-                AND HP.START_USER_ID_ = #{query.startUserId}
-            </if>
-            <if test="query.status!= null">
-                AND RE.status = #{query.status}
-            </if>
-            <if test="query.name!= null and query.name!= ''">
-                AND HP.NAME_ like CONCAT('%',#{query.name},'%')
-            </if>
-            <if test="query.modelCode!= null and query.modelCode!= ''">
-                AND HP.PROC_DEF_ID_ like CONCAT(#{query.modelCode},'%')
-            </if>
-            <if test="query.definitionId!= null and query.definitionId!= ''">
-                AND HP.PROC_DEF_ID_ = #{query.definitionId}
-            </if>
-            <if test="query.startDates != null and query.startDates.size()>1">
-                AND HP.START_TIME_ between #{query.startDates[0]} and #{query.startDates[1]}
-            </if>
-            <if test="query.endDates != null and query.endDates.size()>1">
-                AND HP.END_TIME_ between #{query.endDates[0]} and #{query.endDates[1]}
-            </if>
+            <include refid="instanceWheres"></include>
+        </where>
+        ORDER BY
+        HP.ID_ DESC
+    </select>
+    <select id="copy" resultType="com.flow.entity.FlowInstance">
+        <include refid="instanceColumns"></include>
+        LEFT JOIN ACT_HI_ENTITYLINK HE ON
+        HE.PROC_INST_ID_ = RE.id AND
+        HE.TYPE_ = 'copy' AND
+        USER_ID_ = '${@com.flow.common.core.util.SecurityContextUtil@getUserId()}'
+        <where>
+            <include refid="instanceWheres"></include>
         </where>
         ORDER BY
         HP.ID_ DESC

+ 0 - 13
flow-workflow/flow-workflow-api/src/main/java/com/flow/service/FlowCcService.java

@@ -1,13 +0,0 @@
-package com.flow.service;
-
-import com.flow.common.core.model.PageResult;
-import com.flow.common.mybatis.service.BaseService;
-import com.flow.entity.FlowCc;
-import com.flow.model.FlowCcQuery;
-
-
-public interface FlowCcService extends BaseService<FlowCc> {
-
-    PageResult<FlowCc> list(FlowCcQuery flowCcQuery);
-
-}

+ 7 - 0
flow-workflow/flow-workflow-api/src/main/java/com/flow/service/FlowInstanceService.java

@@ -20,6 +20,13 @@ public interface FlowInstanceService extends BaseService<FlowInstance> {
      */
     PageResult<FlowInstance> list(FlowInstanceQuery flowInstanceQuery);
 
+    /**
+     * 抄送列表
+     * @param flowInstanceQuery
+     * @return
+     */
+    PageResult<FlowInstance> copy(FlowInstanceQuery flowInstanceQuery);
+
     /**
      * 获取流程实例
      * @param instanceId

+ 0 - 13
flow-workflow/flow-workflow-biz/src/main/java/com/flow/dao/FlowCcDao.java

@@ -1,13 +0,0 @@
-package com.flow.dao;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.flow.common.mybatis.dao.BaseDao;
-import com.flow.entity.FlowCc;
-import com.flow.model.FlowCcQuery;
-import org.apache.ibatis.annotations.Param;
-
-public interface FlowCcDao extends BaseDao<FlowCc> {
-
-    IPage<FlowCc> list(@Param("page") IPage<FlowCc> page, @Param("query") FlowCcQuery flowCcQuery);
-
-}

+ 2 - 0
flow-workflow/flow-workflow-biz/src/main/java/com/flow/dao/FlowInstanceDao.java

@@ -11,5 +11,7 @@ public interface FlowInstanceDao extends BaseDao<FlowInstance> {
 
     IPage<FlowInstance> list(@Param("page") IPage<FlowInstance> page, @Param("query") FlowInstanceQuery flowInstanceQuery);
 
+    IPage<FlowInstance> copy(@Param("page") IPage<FlowInstance> page, @Param("query") FlowInstanceQuery flowInstanceQuery);
+
     FlowInstance getInstance(String instanceId);
 }

+ 0 - 28
flow-workflow/flow-workflow-biz/src/main/java/com/flow/service/impl/FlowCcServiceImpl.java

@@ -1,28 +0,0 @@
-package com.flow.service.impl;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.flow.common.core.model.PageResult;
-import com.flow.common.mybatis.service.impl.BaseServiceImpl;
-import com.flow.dao.FlowCcDao;
-import com.flow.entity.FlowCc;
-import com.flow.model.FlowCcQuery;
-import com.flow.service.FlowCcService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-@Service
-public class FlowCcServiceImpl extends BaseServiceImpl<FlowCcDao, FlowCc> implements FlowCcService {
-    @Autowired
-    private FlowCcDao flowCcDao;
-
-    @Override
-    public PageResult<FlowCc> list(FlowCcQuery flowCcQuery) {
-        Page<FlowCc> page = new Page<>(
-                flowCcQuery.getPage(),
-                flowCcQuery.getLimit()
-        );
-        IPage<FlowCc> iPage = flowCcDao.list(page, flowCcQuery);
-        return new PageResult<>(iPage.getTotal(), iPage.getRecords());
-    }
-}

+ 4 - 1
flow-workflow/flow-workflow-biz/src/main/java/com/flow/service/impl/FlowDefineServiceImpl.java

@@ -29,7 +29,10 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
-import java.util.*;
+import java.util.Calendar;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 import java.util.concurrent.TimeUnit;
 
 @Service

+ 10 - 0
flow-workflow/flow-workflow-biz/src/main/java/com/flow/service/impl/FlowInstanceServiceImpl.java

@@ -69,6 +69,16 @@ public class FlowInstanceServiceImpl extends BaseServiceImpl<FlowInstanceDao, Fl
         return new PageResult<>(iPage.getTotal(), iPage.getRecords());
     }
 
+    @Override
+    public PageResult<FlowInstance> copy(FlowInstanceQuery flowInstanceQuery) {
+        Page<FlowInstance> page = new Page<>(
+                flowInstanceQuery.getPage(),
+                flowInstanceQuery.getLimit()
+        );
+        IPage<FlowInstance> iPage = flowInstanceDao.copy(page, flowInstanceQuery);
+        return new PageResult<>(iPage.getTotal(), iPage.getRecords());
+    }
+
     @Override
     public FlowInstance getInstance(String instanceId) {
         return flowInstanceDao.getInstance(instanceId);

+ 0 - 27
flow-workflow/flow-workflow-controller/src/main/java/com/flow/controller/FlowCcController.java

@@ -1,27 +0,0 @@
-package com.flow.controller;
-
-import com.flow.common.core.model.PageResult;
-import com.flow.common.core.model.Result;
-import com.flow.entity.FlowCc;
-import com.flow.model.FlowCcQuery;
-import com.flow.service.FlowCcService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-
-@RestController
-@RequestMapping("/cc")
-public class FlowCcController {
-    @Autowired
-    private FlowCcService flowCcService;
-
-    @GetMapping
-    public Result<PageResult<FlowCc>> list(FlowCcQuery flowCcQuery) {
-        PageResult<FlowCc> pageResult = flowCcService.list(flowCcQuery);
-        return Result.success(pageResult);
-    }
-
-
-}

+ 6 - 0
flow-workflow/flow-workflow-controller/src/main/java/com/flow/controller/FlowInstanceController.java

@@ -28,6 +28,12 @@ public class FlowInstanceController {
         return Result.success(pageResult);
     }
 
+    @GetMapping("/copy")
+    public Result<PageResult<FlowInstance>> copy(FlowInstanceQuery flowInstanceQuery) {
+        PageResult<FlowInstance> pageResult = flowInstanceService.list(flowInstanceQuery);
+        return Result.success(pageResult);
+    }
+
     @GetMapping("/{instanceId}")
     public Result<FlowInstance> getInstance(@PathVariable String instanceId) {
         return Result.success(flowInstanceService.getInstance(instanceId));

+ 0 - 31
flow-workflow/flow-workflow-entity/src/main/java/com/flow/entity/FlowCc.java

@@ -1,31 +0,0 @@
-package com.flow.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
-import lombok.Data;
-
-import java.time.LocalDateTime;
-
-@TableName(value = "flow_cc", autoResultMap = true)
-@Data
-public class FlowCc {
-    @JsonSerialize(using = ToStringSerializer.class)
-    @TableId(type = IdType.AUTO)
-    private Long id;
-    private String name;
-    private String instanceId;
-    @TableField(exist = false)
-    private String instanceName;
-    @TableField(exist = false)
-    private String startUserId;
-    @TableField(exist = false)
-    private LocalDateTime startTime;
-    private String definitionId;
-    private String nodeId;
-    private String userId;
-    private LocalDateTime createTime;
-}

+ 0 - 23
flow-workflow/flow-workflow-entity/src/main/java/com/flow/model/FlowCcQuery.java

@@ -1,23 +0,0 @@
-package com.flow.model;
-
-import com.flow.common.core.model.Query;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.time.LocalDate;
-import java.util.List;
-
-@EqualsAndHashCode(callSuper = true)
-@Data
-public class FlowCcQuery extends Query {
-    private String id;
-    private String name;
-    private String instanceId;
-    private String instanceName;
-    private String nodeId;
-    private String modelCode;
-    private String definitionId;
-    private String startUserId;
-    private List<LocalDate> startDates;
-    private List<LocalDate> endDates;
-}