Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yanxuan-qc-change-system
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
yx-qc-change-flow
yanxuan-qc-change-system
Commits
e4b66ced
Commit
e4b66ced
authored
Nov 26, 2025
by
王志超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 变更行动工单列表,组装主单数据
parent
fd9f7de7
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
110 additions
and
23 deletions
+110
-23
ChangeFlowBiz.java
...om/netease/mail/yanxuan/change/biz/biz/ChangeFlowBiz.java
+3
-10
ChangeSubFlowBiz.java
...netease/mail/yanxuan/change/biz/biz/ChangeSubFlowBiz.java
+7
-4
ChangeSubFlowStatusEnum.java
.../yanxuan/change/common/enums/ChangeSubFlowStatusEnum.java
+77
-0
ChangeSubFlowRecord.java
...e/mail/yanxuan/change/dal/entity/ChangeSubFlowRecord.java
+6
-0
ChangeSubFlowListQueryReq.java
.../change/dal/meta/model/req/ChangeSubFlowListQueryReq.java
+3
-2
ChangeSubFlowVO.java
...ail/yanxuan/change/dal/meta/model/vo/ChangeSubFlowVO.java
+8
-2
ChangeSubFlowRecordMapper.xml
...in/resources/mybatis/mapper/ChangeSubFlowRecordMapper.xml
+4
-3
ChangeSubFlowController.java
...anxuan/change/web/controller/ChangeSubFlowController.java
+2
-2
No files found.
yanxuan-qc-change-system-biz/src/main/java/com/netease/mail/yanxuan/change/biz/biz/ChangeFlowBiz.java
View file @
e4b66ced
...
...
@@ -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
())
...
...
yanxuan-qc-change-system-biz/src/main/java/com/netease/mail/yanxuan/change/biz/biz/ChangeSubFlowBiz.java
View file @
e4b66ced
...
...
@@ -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
());
// 获取主单信息
...
...
yanxuan-qc-change-system-common/src/main/java/com/netease/mail/yanxuan/change/common/enums/ChangeSubFlowStatusEnum.java
0 → 100644
View file @
e4b66ced
/**
* 变更行动工单状态枚举
*
* @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
;
}
}
yanxuan-qc-change-system-dal/src/main/java/com/netease/mail/yanxuan/change/dal/entity/ChangeSubFlowRecord.java
View file @
e4b66ced
...
...
@@ -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"]
*/
...
...
yanxuan-qc-change-system-dal/src/main/java/com/netease/mail/yanxuan/change/dal/meta/model/req/ChangeSubFlowListQueryReq.java
View file @
e4b66ced
...
...
@@ -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
;
/**
* 开始时间(行动工单发起时间)
...
...
yanxuan-qc-change-system-dal/src/main/java/com/netease/mail/yanxuan/change/dal/meta/model/vo/ChangeSubFlowVO.java
View file @
e4b66ced
...
...
@@ -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
;
/**
* 行动完成时间(变更行动工单的完成时间,或预期完成时间)
...
...
yanxuan-qc-change-system-dal/src/main/resources/mybatis/mapper/ChangeSubFlowRecordMapper.xml
View file @
e4b66ced
...
...
@@ -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=
"s
ubFlowNode != null and subFlowNode != ''
"
>
and s
ub_flow_node = #{subFlowNode
}
<if
test=
"s
tatus != null
"
>
and s
tatus = #{status
}
</if>
<if
test=
"startTime != null"
>
and create_time >= #{startTime}
...
...
yanxuan-qc-change-system-web/src/main/java/com/netease/mail/yanxuan/change/web/controller/ChangeSubFlowController.java
View file @
e4b66ced
...
...
@@ -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
=
"s
ubFlowNode"
,
required
=
false
)
String
subFlowNode
,
@RequestParam
(
name
=
"s
tatus"
,
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
.
setS
ubFlowNode
(
subFlowNode
);
queryReq
.
setS
tatus
(
status
);
queryReq
.
setStartTime
(
startTime
);
queryReq
.
setEndTime
(
endTime
);
queryReq
.
setOnlyMyFollowed
(
onlyMyFollowed
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment