Commit e4b66ced by 王志超

feat: 变更行动工单列表,组装主单数据

parent fd9f7de7
......@@ -16,6 +16,7 @@ import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import com.netease.mail.yanxuan.change.common.enums.*;
import com.netease.mail.yanxuan.change.dal.meta.model.vo.*;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -47,16 +48,6 @@ import com.netease.mail.yanxuan.change.biz.service.rpc.SupplierService;
import com.netease.mail.yanxuan.change.common.bean.CommonConstants;
import com.netease.mail.yanxuan.change.common.bean.RequestLocalBean;
import com.netease.mail.yanxuan.change.common.bean.ResponseCode;
import com.netease.mail.yanxuan.change.common.enums.ChangeFlowEnum;
import com.netease.mail.yanxuan.change.common.enums.ChangeCommanderEnum;
import com.netease.mail.yanxuan.change.common.enums.ChangeResultEnum;
import com.netease.mail.yanxuan.change.common.enums.ChangeStatusEnum;
import com.netease.mail.yanxuan.change.common.enums.ChangeSubjectEnum;
import com.netease.mail.yanxuan.change.common.enums.CreateSourceEnum;
import com.netease.mail.yanxuan.change.common.enums.FileTypeEnum;
import com.netease.mail.yanxuan.change.common.enums.FlowOperationTypeEnum;
import com.netease.mail.yanxuan.change.common.enums.FlowxOperationEnum;
import com.netease.mail.yanxuan.change.common.enums.NeedFileEnum;
import com.netease.mail.yanxuan.change.common.util.DateUtils;
import com.netease.mail.yanxuan.change.dal.entity.ChangeConfig;
import com.netease.mail.yanxuan.change.dal.entity.ChangeExecRecord;
......@@ -387,10 +378,12 @@ public class ChangeFlowBiz {
// 创建变更行动工单记录
// 变更行动工单审批人:第一次新建时就是行动人
String approverJson = JSON.toJSONString(Collections.singletonList(execUserEmail));
// 初始状态:待确认行动方案
ChangeSubFlowRecord subFlowRecord = ChangeSubFlowRecord.builder()
.changeRecordId(changeRecord.getId())
.subFlowId(subFlowId)
.subFlowNode(subNodeId)
.status(ChangeSubFlowStatusEnum.WAIT_CONFIRM_ACTION_PLAN.getStatus())
.approver(approverJson)
.createTime(DateUtils.getCurrentTime())
.updateTime(DateUtils.getCurrentTime())
......
......@@ -13,6 +13,7 @@ import com.netease.mail.yanxuan.change.common.bean.CommonConstants;
import com.netease.mail.yanxuan.change.common.bean.RequestLocalBean;
import com.netease.mail.yanxuan.change.common.bean.ResponseCode;
import com.netease.mail.yanxuan.change.common.enums.ChangeFlowEnum;
import com.netease.mail.yanxuan.change.common.enums.ChangeSubFlowStatusEnum;
import com.netease.mail.yanxuan.change.common.enums.FlowOperationTypeEnum;
import com.netease.mail.yanxuan.change.common.enums.FlowxOperationEnum;
import com.netease.mail.yanxuan.change.common.util.DateUtils;
......@@ -182,6 +183,7 @@ public class ChangeSubFlowBiz {
FlowxOperationEnum.SUBMIT.getName(), "提交工单", execRecord.getCreateTime());
// 更新行动工单节点ID
subFlowRecord.setSubFlowNode(nextNodeId);
// TODO: 根据业务逻辑设置状态 subFlowRecord.setStatus(...)
subFlowRecord.setUpdateTime(DateUtils.getCurrentTime());
changeSubFlowRecordService.update(subFlowRecord);
return nextNodeId;
......@@ -193,6 +195,7 @@ public class ChangeSubFlowBiz {
FlowxOperationEnum.SUBMIT.getName(), "提交工单", execRecord.getCreateTime());
// 更新行动工单节点ID
subFlowRecord.setSubFlowNode(execNodeId);
// TODO: 根据业务逻辑设置状态 subFlowRecord.setStatus(...)
subFlowRecord.setUpdateTime(DateUtils.getCurrentTime());
changeSubFlowRecordService.update(subFlowRecord);
return execNodeId;
......@@ -204,6 +207,7 @@ public class ChangeSubFlowBiz {
FlowxOperationEnum.SUBMIT.getName(), "提交工单", execRecord.getCreateTime());
// 更新行动工单节点ID
subFlowRecord.setSubFlowNode(confirmNodeId);
// TODO: 根据业务逻辑设置状态 subFlowRecord.setStatus(...)
subFlowRecord.setUpdateTime(DateUtils.getCurrentTime());
changeSubFlowRecordService.update(subFlowRecord);
return confirmNodeId;
......@@ -230,6 +234,7 @@ public class ChangeSubFlowBiz {
FlowxOperationEnum.SUBMIT.getName(), "提交工单", execRecord.getCreateTime());
// 更新行动工单节点ID
subFlowRecord.setSubFlowNode(endNodeId);
// TODO: 根据业务逻辑设置状态 subFlowRecord.setStatus(...)
subFlowRecord.setUpdateTime(DateUtils.getCurrentTime());
changeSubFlowRecordService.update(subFlowRecord);
......@@ -379,9 +384,6 @@ public class ChangeSubFlowBiz {
queryReq.setSubFlowIds(subFlowIds);
}
// 第三步:将查询条件填充到 queryReq,用 changeRecordIds + subFlowIds + 其他条件(subFlowNode, startTime, endTime)直接查询子单
// 清空主单和行动项相关的查询条件,因为已经通过 changeRecordIds 和 subFlowIds 过滤了
queryReq.setOnlyMyFollowed(null);
queryReq.setCurrentUser(null);
......@@ -429,7 +431,8 @@ public class ChangeSubFlowBiz {
for (ChangeSubFlowRecord subFlowRecord : subFlowRecords) {
ChangeSubFlowVO vo = new ChangeSubFlowVO();
vo.setSubFlowId(subFlowRecord.getSubFlowId());
vo.setSubFlowNode(subFlowRecord.getSubFlowNode());
vo.setStatus(subFlowRecord.getStatus());
vo.setStatusDesc(ChangeSubFlowStatusEnum.getDescByStatus(subFlowRecord.getStatus()));
vo.setCreateTime(subFlowRecord.getCreateTime());
// 获取主单信息
......
/**
* 变更行动工单状态枚举
*
* @Author system
* @Date 2024/01/01
*/
package com.netease.mail.yanxuan.change.common.enums;
import lombok.Getter;
/**
* 变更行动工单状态枚举
*/
@Getter
public enum ChangeSubFlowStatusEnum {
/**
* 待确认行动方案
*/
WAIT_CONFIRM_ACTION_PLAN(1, "待确认行动方案"),
/**
* 待审批行动方案
*/
WAIT_APPROVE_ACTION_PLAN(2, "待审批行动方案"),
/**
* 待审批变更方案
*/
WAIT_APPROVE_CHANGE_PLAN(3, "待审批变更方案"),
/**
* 待提交执行结果
*/
WAIT_SUBMIT_RESULT(4, "待提交执行结果"),
/**
* 已完结
*/
FINISHED(5, "已完结"),
/**
* 已取消
*/
CANCELLED(6, "已取消");
private final Integer status;
private final String desc;
ChangeSubFlowStatusEnum(Integer status, String desc) {
this.status = status;
this.desc = desc;
}
/**
* 根据状态值获取枚举
*/
public static ChangeSubFlowStatusEnum getByStatus(Integer status) {
if (status == null) {
return null;
}
for (ChangeSubFlowStatusEnum statusEnum : values()) {
if (statusEnum.getStatus().equals(status)) {
return statusEnum;
}
}
return null;
}
/**
* 根据状态值获取描述
*/
public static String getDescByStatus(Integer status) {
ChangeSubFlowStatusEnum statusEnum = getByStatus(status);
return statusEnum != null ? statusEnum.getDesc() : null;
}
}
......@@ -52,6 +52,12 @@ public class ChangeSubFlowRecord {
private String subFlowNode;
/**
* 变更行动工单状态
* @see com.netease.mail.yanxuan.change.common.enums.ChangeSubFlowStatusEnum
*/
private Integer status;
/**
* 变更行动工单审批人(JSON格式,存储审批人列表,第一次新建时就是行动人)
* 格式:["user1@example.com", "user2@example.com"]
*/
......
......@@ -49,9 +49,10 @@ public class ChangeSubFlowListQueryReq {
private String changeExecDepartment;
/**
* 行动工单状态(subFlowNode)
* 行动工单状态
* @see com.netease.mail.yanxuan.change.common.enums.ChangeSubFlowStatusEnum
*/
private String subFlowNode;
private Integer status;
/**
* 开始时间(行动工单发起时间)
......
......@@ -53,9 +53,15 @@ public class ChangeSubFlowVO {
private String changeExecDepartment;
/**
* 行动工单状态(subFlowNode)
* 行动工单状态
* @see com.netease.mail.yanxuan.change.common.enums.ChangeSubFlowStatusEnum
*/
private String subFlowNode;
private Integer status;
/**
* 行动工单状态描述
*/
private String statusDesc;
/**
* 行动完成时间(变更行动工单的完成时间,或预期完成时间)
......
......@@ -6,13 +6,14 @@
<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="status" jdbcType="INTEGER" property="status" />
<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
id, change_record_id, sub_flow_id, sub_flow_node, status, approver, create_time, update_time
</sql>
<select id="selectByCondition" resultMap="BaseResultMap" parameterType="com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeSubFlowListQueryReq">
......@@ -22,8 +23,8 @@
<if test="subFlowId != null and subFlowId != ''">
and sub_flow_id = #{subFlowId}
</if>
<if test="subFlowNode != null and subFlowNode != ''">
and sub_flow_node = #{subFlowNode}
<if test="status != null">
and status = #{status}
</if>
<if test="startTime != null">
and create_time >= #{startTime}
......
......@@ -80,7 +80,7 @@ public class ChangeSubFlowController {
@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 = "status", required = false) Integer status,
@RequestParam(name = "startTime", required = false) Long startTime,
@RequestParam(name = "endTime", required = false) Long endTime,
@RequestParam(name = "onlyMyFollowed", defaultValue = "true") Boolean onlyMyFollowed) {
......@@ -91,7 +91,7 @@ public class ChangeSubFlowController {
queryReq.setSupplier(supplier);
queryReq.setChangeExecUser(changeExecUser);
queryReq.setChangeExecDepartment(changeExecDepartment);
queryReq.setSubFlowNode(subFlowNode);
queryReq.setStatus(status);
queryReq.setStartTime(startTime);
queryReq.setEndTime(endTime);
queryReq.setOnlyMyFollowed(onlyMyFollowed);
......
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