Commit f2eaa556 by 王志超

feat: 变更行动工单列表

parent c2113b8c
...@@ -4,6 +4,9 @@ import com.netease.mail.yanxuan.change.dal.entity.ChangeExecRecord; ...@@ -4,6 +4,9 @@ import com.netease.mail.yanxuan.change.dal.entity.ChangeExecRecord;
import java.util.List; import java.util.List;
/**
* @author TmindA
*/
public interface ChangeSubFlowService { public interface ChangeSubFlowService {
/** /**
......
...@@ -8,6 +8,9 @@ import org.springframework.stereotype.Service; ...@@ -8,6 +8,9 @@ import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
/**
* @author TmindA
*/
@Service @Service
public class ChangeSubFlowServiceImpl implements ChangeSubFlowService { public class ChangeSubFlowServiceImpl implements ChangeSubFlowService {
......
...@@ -51,5 +51,12 @@ public interface ChangeSubFlowRecordMapper extends tk.mybatis.mapper.common.Mapp ...@@ -51,5 +51,12 @@ public interface ChangeSubFlowRecordMapper extends tk.mybatis.mapper.common.Mapp
"</script>") "</script>")
List<ChangeSubFlowRecord> selectByChangeRecordIds(@Param("changeRecordIds") List<Long> changeRecordIds); List<ChangeSubFlowRecord> selectByChangeRecordIds(@Param("changeRecordIds") List<Long> changeRecordIds);
/**
* 根据条件查询变更行动工单列表
* @param queryReq 查询条件
* @return 变更行动工单列表
*/
List<ChangeSubFlowRecord> selectByCondition(com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeSubFlowListQueryReq queryReq);
} }
/**
* @(#)ChangeSubFlowListQueryReq.java, 2024/01/01.
* <p/>
* Copyright 2024 Netease, Inc. All rights reserved.
* NETEASE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package com.netease.mail.yanxuan.change.dal.meta.model.req;
import lombok.Data;
import java.util.List;
/**
* 变更行动工单列表查询请求
*
* @Author system
* @Date 2024/01/01
*/
@Data
public class ChangeSubFlowListQueryReq {
/**
* 变更工单ID(主单flowId)
*/
private Long flowId;
/**
* 变更行动工单ID(subFlowId)
*/
private String subFlowId;
/**
* 商品ID
*/
private String itemId;
/**
* 供应商
*/
private String supplier;
/**
* 变更行动人(姓名或邮箱)
*/
private String changeExecUser;
/**
* 变更行动部门
*/
private String changeExecDepartment;
/**
* 行动工单状态(subFlowNode)
*/
private String subFlowNode;
/**
* 开始时间(行动工单发起时间)
*/
private Long startTime;
/**
* 结束时间(行动工单发起时间)
*/
private Long endTime;
/**
* 数据可见范围:仅查看我跟进的工单(默认true)
* true: 仅展示当前用户相关的变更行动工单
* false: 展示所有变更行动工单
*/
private Boolean onlyMyFollowed;
/**
* 当前用户邮箱(用于数据可见范围过滤)
*/
private String currentUser;
/**
* 变更记录ID列表(用于过滤)
*/
private List<Long> changeRecordIds;
}
/**
* @(#)ChangeSubFlowListVO.java, 2024/01/01.
* <p/>
* Copyright 2024 Netease, Inc. All rights reserved.
* NETEASE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package com.netease.mail.yanxuan.change.dal.meta.model.vo;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 变更行动工单列表VO
*
* @Author system
* @Date 2024/01/01
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ChangeSubFlowListVO {
/**
* 分页信息
*/
private PageVO pageVo;
/**
* 变更行动工单列表
*/
private List<ChangeSubFlowVO> changeSubFlowList;
}
/**
* @(#)ChangeSubFlowVO.java, 2024/01/01.
* <p/>
* Copyright 2024 Netease, Inc. All rights reserved.
* NETEASE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package com.netease.mail.yanxuan.change.dal.meta.model.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 变更行动工单VO
*
* @Author system
* @Date 2024/01/01
*/
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
public class ChangeSubFlowVO {
/**
* 变更行动ID(subFlowId)
*/
private String subFlowId;
/**
* 变更ID(主单的flowId)
*/
private Long flowId;
/**
* 变更行动人邮箱
*/
private String changeExecUserEmail;
/**
* 变更行动人姓名
*/
private String changeExecUserName;
/**
* 变更行动人(姓名+邮箱)
*/
private String changeExecUserView;
/**
* 变更行动部门
*/
private String changeExecDepartment;
/**
* 行动工单状态(subFlowNode)
*/
private String subFlowNode;
/**
* 行动完成时间(变更行动工单的完成时间,或预期完成时间)
*/
private Long changeExecFinishTime;
/**
* 创建时间(行动工单发起时间)
*/
private Long createTime;
}
<?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.netease.mail.yanxuan.change.dal.mapper.ChangeSubFlowRecordMapper">
<resultMap id="BaseResultMap" type="com.netease.mail.yanxuan.change.dal.entity.ChangeSubFlowRecord">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="change_record_id" jdbcType="BIGINT" property="changeRecordId" />
<result column="sub_flow_id" jdbcType="VARCHAR" property="subFlowId" />
<result column="sub_flow_node" jdbcType="VARCHAR" property="subFlowNode" />
<result column="approver" jdbcType="VARCHAR" property="approver" />
<result column="create_time" jdbcType="BIGINT" property="createTime" />
<result column="update_time" jdbcType="BIGINT" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
id, change_record_id, sub_flow_id, sub_flow_node, approver, create_time, update_time
</sql>
<select id="selectByCondition" resultMap="BaseResultMap" parameterType="com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeSubFlowListQueryReq">
SELECT <include refid="Base_Column_List" />
FROM TB_YX_QC_CHANGE_SUB_FLOW_RECORD
<where>
<if test="subFlowId != null and subFlowId != ''">
and sub_flow_id = #{subFlowId}
</if>
<if test="subFlowNode != null and subFlowNode != ''">
and sub_flow_node = #{subFlowNode}
</if>
<if test="startTime != null">
and create_time >= #{startTime}
</if>
<if test="endTime != null">
and create_time <![CDATA[ <= ]]> #{endTime}
</if>
<if test="changeRecordIds != null and changeRecordIds.size() > 0">
and change_record_id in
<foreach collection="changeRecordIds" close=")" open="(" item="item" separator=",">
#{item}
</foreach>
</if>
</where>
order by create_time desc
</select>
</mapper>
...@@ -10,7 +10,10 @@ import com.netease.mail.yanxuan.change.biz.biz.ChangeSubFlowBiz; ...@@ -10,7 +10,10 @@ import com.netease.mail.yanxuan.change.biz.biz.ChangeSubFlowBiz;
import com.netease.mail.yanxuan.change.common.bean.AjaxResult; import com.netease.mail.yanxuan.change.common.bean.AjaxResult;
import com.netease.mail.yanxuan.change.dal.entity.ChangeExecRecord; import com.netease.mail.yanxuan.change.dal.entity.ChangeExecRecord;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeSubFlowCreateReq; import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeSubFlowCreateReq;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeSubFlowListQueryReq;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeSubFlowSubmitReq; import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeSubFlowSubmitReq;
import com.netease.mail.yanxuan.change.dal.meta.model.vo.ChangeFlowVO;
import com.netease.mail.yanxuan.change.dal.meta.model.vo.ChangeSubFlowListVO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -52,6 +55,62 @@ public class ChangeSubFlowController { ...@@ -52,6 +55,62 @@ public class ChangeSubFlowController {
} }
/** /**
* 变更行动工单列表查询
*
* @param page 页码
* @param pageSize 每页大小
* @param flowId 变更工单ID(主单flowId)
* @param subFlowId 变更行动工单ID
* @param itemId 商品ID
* @param supplier 供应商
* @param changeExecUser 变更行动人(姓名或邮箱)
* @param changeExecDepartment 变更行动部门
* @param subFlowNode 行动工单状态
* @param startTime 开始时间(行动工单发起时间)
* @param endTime 结束时间(行动工单发起时间)
* @param onlyMyFollowed 数据可见范围:仅查看我跟进的工单(默认true)
* @return 变更行动工单列表
*/
@GetMapping("/page")
public AjaxResult<ChangeSubFlowListVO> page(@RequestParam(name = "page", defaultValue = "1") Integer page,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
@RequestParam(name = "flowId", required = false) Long flowId,
@RequestParam(name = "subFlowId", required = false) String subFlowId,
@RequestParam(name = "itemId", required = false) String itemId,
@RequestParam(name = "supplier", required = false) String supplier,
@RequestParam(name = "changeExecUser", required = false) String changeExecUser,
@RequestParam(name = "changeExecDepartment", required = false) String changeExecDepartment,
@RequestParam(name = "subFlowNode", required = false) String subFlowNode,
@RequestParam(name = "startTime", required = false) Long startTime,
@RequestParam(name = "endTime", required = false) Long endTime,
@RequestParam(name = "onlyMyFollowed", defaultValue = "true") Boolean onlyMyFollowed) {
ChangeSubFlowListQueryReq queryReq = new ChangeSubFlowListQueryReq();
queryReq.setFlowId(flowId);
queryReq.setSubFlowId(subFlowId);
queryReq.setItemId(itemId);
queryReq.setSupplier(supplier);
queryReq.setChangeExecUser(changeExecUser);
queryReq.setChangeExecDepartment(changeExecDepartment);
queryReq.setSubFlowNode(subFlowNode);
queryReq.setStartTime(startTime);
queryReq.setEndTime(endTime);
queryReq.setOnlyMyFollowed(onlyMyFollowed);
return AjaxResult.success(changeSubFlowBiz.querySubFlowList(page, pageSize, queryReq));
}
/**
* 变更行动工单详情查询
* 说明:展示内容和主单的detail一样,但行动项只展示该变更行动工单下绑定的行动项
*
* @param subFlowId 变更行动工单ID(即topo)
* @return 变更工单详情
*/
@GetMapping("/detail")
public AjaxResult<ChangeFlowVO> detail(@RequestParam String subFlowId) {
return AjaxResult.success(changeSubFlowBiz.detailBySubFlowId(subFlowId));
}
/**
* 子流程提交 * 子流程提交
* *
* @return * @return
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment