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
胡园园
yanxuan-qc-change-system
Commits
7863360b
Commit
7863360b
authored
Nov 23, 2022
by
“zcwang”
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
modify: 提交工单
parent
dcf0c65c
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
161 additions
and
12 deletions
+161
-12
ChangeFlowBiz.java
...om/netease/mail/yanxuan/change/biz/biz/ChangeFlowBiz.java
+118
-5
ChangeFlowExecService.java
...ail/yanxuan/change/biz/service/ChangeFlowExecService.java
+3
-0
ChangeFlowExecServiceImpl.java
...an/change/biz/service/impl/ChangeFlowExecServiceImpl.java
+6
-1
ChangeFlowEnum.java
...ease/mail/yanxuan/change/common/enums/ChangeFlowEnum.java
+10
-0
ChangeResultEnum.java
...se/mail/yanxuan/change/common/enums/ChangeResultEnum.java
+8
-1
ChangeExecProject.java
.../yanxuan/change/dal/meta/model/req/ChangeExecProject.java
+11
-0
ChangeFlowSubmitReq.java
...anxuan/change/dal/meta/model/req/ChangeFlowSubmitReq.java
+5
-5
No files found.
yanxuan-qc-change-system-biz/src/main/java/com/netease/mail/yanxuan/change/biz/biz/ChangeFlowBiz.java
View file @
7863360b
...
...
@@ -48,6 +48,7 @@ import com.netease.mail.yanxuan.change.dal.entity.ChangeRecord;
import
com.netease.mail.yanxuan.change.dal.entity.ChangeType
;
import
com.netease.mail.yanxuan.change.dal.mapper.ChangeRecordMapper
;
import
com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeExecConfigReq
;
import
com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeExecProject
;
import
com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowCancelReq
;
import
com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowCreateReq
;
import
com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowFile
;
...
...
@@ -286,8 +287,9 @@ public class ChangeFlowBiz {
// 当变更类型是商品时有值
changeRecord
.
setChangeItem
(
changeFlowCreateReq
.
getChangeItems
());
}
// todo: 当变更类型是供应商时有效
if
(
ChangeSubjectEnum
.
SUPPLIER
.
getType
().
equals
(
changeFlowCreateReq
.
getChangeSubject
()))
{
changeRecord
.
setChangeSupplier
(
changeFlowCreateReq
.
getChangeSupplier
());
}
changeRecord
.
setChangeReason
(
changeFlowCreateReq
.
getChangeReason
());
changeRecord
.
setChangeContent
(
changeFlowCreateReq
.
getChangeContent
());
changeRecord
.
setChangeRiskDesc
(
changeFlowCreateReq
.
getChangeRiskDesc
());
...
...
@@ -296,7 +298,6 @@ public class ChangeFlowBiz {
changeRecord
.
setChangeConfirmResultTime
(
changeFlowCreateReq
.
getChangeConfirmResultTime
());
changeRecord
.
setState
(
ChangeStatusEnum
.
IN
.
getStatus
());
// 变更结论
changeRecord
.
setChangeResult
(
ChangeResultEnum
.
INIT
.
getStatus
());
changeRecord
.
setCreateSource
(
changeFlowCreateReq
.
getCreateSource
());
changeRecord
.
setCreateSupplier
(
changeFlowCreateReq
.
getChangeSupplier
());
changeRecord
.
setCreateTime
(
DateUtils
.
getCurrentTime
());
...
...
@@ -322,16 +323,128 @@ public class ChangeFlowBiz {
if
(
flowDataDTO
==
null
)
{
throw
ExceptionFactory
.
createBiz
(
ResponseCode
.
DETAIL_FLOW_ERROR
,
"工单查询错误,不存在"
);
}
return
checkUpdateAndSubmit
(
flowId
,
flowDataDTO
,
uid
,
changeRecord
,
changeRecord
.
getFlowNode
(),
changeFlowSubmitReq
);
}
private
String
checkUpdateAndSubmit
(
Long
flowId
,
FlowDataDTO
flowDataDTO
,
String
uid
,
ChangeRecord
changeRecord
,
String
currentNode
,
ChangeFlowSubmitReq
changeFlowSubmitReq
)
{
ChangeFlowEnum
node
=
ChangeFlowEnum
.
getByNodeId
(
currentNode
);
Assert
.
notNull
(
node
,
"节点配置不存在"
);
log
.
debug
(
"[checkUpdateAndSubmit] floeId:{}, nodeEnum:{}"
,
flowId
,
node
);
// 工单流传
Map
<
String
,
Object
>
content
=
new
HashMap
<>(
CommonConstants
.
INIT_HASH_MAP_SIZE
);
content
.
put
(
"updateTime"
,
System
.
currentTimeMillis
());
content
.
put
(
CommonConstants
.
FLOW_OPERATION_KEY
,
FlowOperationTypeEnum
.
PASS
.
getValue
());
String
nextNodeId
=
this
.
submitFlow
(
flowId
.
toString
(),
flowDataDTO
,
uid
,
switch
(
node
)
{
// 变更申请提交节点,可以修改数据,以新的数据为准
case
CHANGE_FLOW_SUBMIT:
changeRecord
.
setParentChangeClassId
(
changeFlowSubmitReq
.
getParentChangeClassId
());
changeRecord
.
setSonChangeClassId
(
changeFlowSubmitReq
.
getSonChangeClassId
());
List
<
ChangeExecProject
>
changeExecProjectList
=
changeFlowSubmitReq
.
getChangeExecProjectList
();
List
<
String
>
execDepartmentList
=
changeExecProjectList
.
stream
().
map
(
ChangeExecProject:
:
getChangeExecDepartment
)
.
collect
(
Collectors
.
toList
());
changeRecord
.
setParticipateChangeExecDepartment
(
JSON
.
toJSONString
(
execDepartmentList
));
changeRecord
.
setChangeItem
(
changeFlowSubmitReq
.
getChangeItems
());
changeRecord
.
setChangeSupplier
(
changeFlowSubmitReq
.
getChangeSupplier
());
changeRecord
.
setChangeReason
(
changeFlowSubmitReq
.
getChangeReason
());
changeRecord
.
setChangeContent
(
changeFlowSubmitReq
.
getChangeContent
());
changeRecord
.
setChangeRiskDesc
(
changeFlowSubmitReq
.
getChangeRiskDesc
());
changeRecord
.
setChangeChecking
(
changeFlowSubmitReq
.
getChangeChecking
());
changeRecord
.
setChangeProfit
(
changeFlowSubmitReq
.
getChangeProfit
());
changeRecord
.
setChangeProfitDesc
(
changeFlowSubmitReq
.
getChangeProfitDesc
());
changeRecord
.
setChangeConfirmResultTime
(
changeFlowSubmitReq
.
getChangeConfirmResultTime
());
changeRecord
.
setUpdateTime
(
DateUtils
.
getCurrentTime
());
String
submitNode
=
this
.
submitFlow
(
flowId
.
toString
(),
flowDataDTO
,
uid
,
ChangeFlowEnum
.
CHANGE_FLOW_SUBMIT
.
getTopoId
(),
JSON
.
toJSONString
(
content
));
changeRecord
.
setFlowNode
(
nextNodeId
);
changeRecord
.
setFlowNode
(
submitNode
);
changeRecord
.
setUpdateTime
(
DateUtils
.
getCurrentTime
());
changeFlowService
.
updateRecord
(
changeRecord
);
return
nextNodeId
;
// todo: 发送邮件
return
submitNode
;
case
CHANGE_FLOW_CONFIRM:
Integer
changeResult
=
changeFlowSubmitReq
.
getChangeResult
();
ChangeResultEnum
changeResultStatus
=
ChangeResultEnum
.
getByStatus
(
changeResult
);
Assert
.
notNull
(
changeResultStatus
,
"变更结论类型错误"
);
// 填写变更结论
changeRecord
.
setChangeResult
(
changeResultStatus
.
getStatus
());
// 填写备注
changeRecord
.
setRemark
(
changeFlowSubmitReq
.
getRemark
());
switch
(
changeResultStatus
)
{
case
FINISH_ALL:
case
FINISH_PART:
List
<
ChangeExecProject
>
execProjectList
=
changeFlowSubmitReq
.
getChangeExecProjectList
();
List
<
ChangeExecRecord
>
changeExecRecords
=
execProjectList
.
stream
().
map
(
exec
->
{
Long
changeExecFinishTime
=
exec
.
getChangeExecFinishTime
();
Assert
.
notNull
(
changeExecFinishTime
,
"行动完成时间不可为空"
+
exec
.
getChangeTemplateId
());
String
changeExecFinishDesc
=
exec
.
getChangeExecFinishDesc
();
Assert
.
isTrue
(
StringUtils
.
isNotBlank
(
changeExecFinishDesc
),
"行动完成时间不可为空"
+
exec
.
getChangeTemplateId
());
ChangeExecRecord
changeExecRecord
=
new
ChangeExecRecord
();
changeExecRecord
.
setId
(
exec
.
getChangeTemplateId
());
changeExecRecord
.
setChangeExecFinishTime
(
exec
.
getChangeExecFinishTime
());
changeExecRecord
.
setChangeExecFinishDesc
(
exec
.
getChangeExecFinishDesc
());
return
changeExecRecord
;
}).
collect
(
Collectors
.
toList
());
// 完成直接完结
String
confirmNode
=
this
.
submitFlow
(
flowId
.
toString
(),
flowDataDTO
,
uid
,
ChangeFlowEnum
.
CHANGE_FLOW_CONFIRM
.
getTopoId
(),
JSON
.
toJSONString
(
content
));
changeRecord
.
setFlowNode
(
confirmNode
);
changeRecord
.
setUpdateTime
(
DateUtils
.
getCurrentTime
());
changeFlowService
.
updateRecord
(
changeRecord
);
changeExecRecords
.
forEach
(
exec
->
changeFlowExecService
.
update
(
exec
));
//todo: 发送邮件
return
confirmNode
;
case
CANCEL:
// 取消填写取消原因
String
cancelReason
=
changeFlowSubmitReq
.
getCancelReason
();
Assert
.
isTrue
(
StringUtils
.
isNotBlank
(
cancelReason
),
"变更取消原因不可为空"
);
changeRecord
.
setCancelReason
(
cancelReason
);
String
cancelNode
=
this
.
submitFlow
(
flowId
.
toString
(),
flowDataDTO
,
uid
,
ChangeFlowEnum
.
CHANGE_FLOW_CONFIRM
.
getTopoId
(),
JSON
.
toJSONString
(
content
));
changeRecord
.
setFlowNode
(
cancelNode
);
changeRecord
.
setUpdateTime
(
DateUtils
.
getCurrentTime
());
changeFlowService
.
updateRecord
(
changeRecord
);
//todo: 发送邮件
return
confirmNode
;
case
DELAY:
// 延期不流转工单
long
changeConfirmResultTime
=
changeFlowSubmitReq
.
getChangeConfirmResultTime
();
Long
tomorrowSpecificTime
=
DateUtils
.
getTomorrowSpecificTime
(
"09:00:00"
);
Assert
.
isTrue
(
changeConfirmResultTime
>=
tomorrowSpecificTime
,
"时间不可晚于下次执行时间"
);
List
<
ChangeExecProject
>
execProjectList1
=
changeFlowSubmitReq
.
getChangeExecProjectList
();
List
<
ChangeExecRecord
>
changeExecRecords1
=
execProjectList1
.
stream
().
map
(
exec
->
{
Long
changeExecFinishTime
=
exec
.
getChangeExecFinishTime
();
Assert
.
notNull
(
changeExecFinishTime
,
"行动完成时间不可为空"
+
exec
.
getChangeTemplateId
());
String
changeExecFinishDesc
=
exec
.
getChangeExecFinishDesc
();
Assert
.
isTrue
(
StringUtils
.
isNotBlank
(
changeExecFinishDesc
),
"行动完成时间不可为空"
+
exec
.
getChangeTemplateId
());
ChangeExecRecord
changeExecRecord
=
new
ChangeExecRecord
();
changeExecRecord
.
setId
(
exec
.
getChangeTemplateId
());
changeExecRecord
.
setChangeExecFinishTime
(
exec
.
getChangeExecFinishTime
());
changeExecRecord
.
setChangeExecFinishDesc
(
exec
.
getChangeExecFinishDesc
());
return
changeExecRecord
;
}).
collect
(
Collectors
.
toList
());
// 更改变更结果确认时间
changeRecord
.
setChangeConfirmResultTime
(
changeConfirmResultTime
);
changeRecord
.
setUpdateTime
(
DateUtils
.
getCurrentTime
());
changeFlowService
.
updateRecord
(
changeRecord
);
changeExecRecords1
.
forEach
(
exec
->
changeFlowExecService
.
update
(
exec
));
// 变更行动项
//todo: 发送邮件
return
null
;
default
:
return
null
;
}
// 其他几点,不可提交
case
CHANGE_FLOW_EXE:
case
CHANGE_FLOW_START:
case
END:
default
:
throw
ExceptionFactory
.
createBiz
(
ResponseCode
.
NODE_ERROR
,
"不可提交节点"
+
currentNode
);
}
}
private
ChangeRecord
getFlowInfo
(
Long
flowId
)
{
...
...
yanxuan-qc-change-system-biz/src/main/java/com/netease/mail/yanxuan/change/biz/service/ChangeFlowExecService.java
View file @
7863360b
...
...
@@ -30,4 +30,6 @@ public interface ChangeFlowExecService {
* @param changeExecRecordList
*/
void
batchSaveRecord
(
List
<
ChangeExecRecord
>
changeExecRecordList
);
Boolean
update
(
ChangeExecRecord
exec
);
}
\ No newline at end of file
yanxuan-qc-change-system-biz/src/main/java/com/netease/mail/yanxuan/change/biz/service/impl/ChangeFlowExecServiceImpl.java
View file @
7863360b
...
...
@@ -17,7 +17,6 @@ import org.springframework.stereotype.Service;
import
com.netease.mail.yanxuan.change.biz.service.ChangeFlowExecService
;
import
com.netease.mail.yanxuan.change.dal.entity.ChangeExecRecord
;
import
com.netease.mail.yanxuan.change.dal.mapper.ChangeExecRecordMapper
;
import
com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeExecConfigReq
;
import
com.netease.mail.yanxuan.change.dal.meta.model.vo.ChangeFlowExecVO
;
/**
...
...
@@ -49,4 +48,9 @@ public class ChangeFlowExecServiceImpl implements ChangeFlowExecService {
public
void
batchSaveRecord
(
List
<
ChangeExecRecord
>
changeExecRecordList
)
{
changeExecRecordMapper
.
insertList
(
changeExecRecordList
);
}
@Override
public
Boolean
update
(
ChangeExecRecord
changeExecRecord
)
{
return
changeExecRecordMapper
.
updateByPrimaryKeySelective
(
changeExecRecord
)
>
0
;
}
}
\ No newline at end of file
yanxuan-qc-change-system-common/src/main/java/com/netease/mail/yanxuan/change/common/enums/ChangeFlowEnum.java
View file @
7863360b
...
...
@@ -33,4 +33,13 @@ public enum ChangeFlowEnum {
this
.
name
=
name
;
this
.
topoId
=
topoId
;
}
public
static
ChangeFlowEnum
getByNodeId
(
String
nodeId
)
{
for
(
ChangeFlowEnum
value
:
ChangeFlowEnum
.
values
())
{
if
(
value
.
getNodeId
().
equals
(
nodeId
))
{
return
value
;
}
}
return
null
;
}
}
\ No newline at end of file
yanxuan-qc-change-system-common/src/main/java/com/netease/mail/yanxuan/change/common/enums/ChangeResultEnum.java
View file @
7863360b
...
...
@@ -12,7 +12,6 @@ package com.netease.mail.yanxuan.change.common.enums;
*/
public
enum
ChangeResultEnum
{
INIT
(
0
,
"初始化"
),
FINISH_ALL
(
1
,
"完成变更管理,风险可控,可实施变更"
),
FINISH_PART
(
2
,
"完成变更管理,部分风险不可控,待修订变更方案"
),
CANCEL
(
3
,
"不通过,变更取消"
),
...
...
@@ -25,6 +24,14 @@ public enum ChangeResultEnum {
this
.
status
=
status
;
this
.
desc
=
desc
;
}
public
static
ChangeResultEnum
getByStatus
(
Integer
status
)
{
for
(
ChangeResultEnum
value
:
ChangeResultEnum
.
values
())
{
if
(
value
.
getStatus
().
equals
(
status
))
{
return
value
;
}
}
return
null
;
}
public
Integer
getStatus
()
{
return
status
;
...
...
yanxuan-qc-change-system-dal/src/main/java/com/netease/mail/yanxuan/change/dal/meta/model/req/ChangeExecProject.java
View file @
7863360b
...
...
@@ -42,4 +42,14 @@ public class ChangeExecProject {
* 变更验证措施
*/
private
String
changeChecking
;
/**
* 行动完成时间
*/
private
Long
changeExecFinishTime
;
/**
* 行动完成情况
*/
private
String
changeExecFinishDesc
;
}
\ No newline at end of file
yanxuan-qc-change-system-dal/src/main/java/com/netease/mail/yanxuan/change/dal/meta/model/req/ChangeFlowSubmitReq.java
View file @
7863360b
...
...
@@ -36,11 +36,11 @@ public class ChangeFlowSubmitReq {
/**
* 一级类型id
*/
private
int
parentChangeClassId
;
private
Long
parentChangeClassId
;
/**
* 二级类型id
*/
private
int
sonChangeClassId
;
private
Long
sonChangeClassId
;
/**
* 变更商品
*/
...
...
@@ -90,11 +90,11 @@ public class ChangeFlowSubmitReq {
/**
* 变更结论
*/
private
Long
changeResult
;
private
Integer
changeResult
;
/**
* 原因说明(取消时存在)
*
取消
原因说明(取消时存在)
*/
private
String
c
hangeResultDesc
;
private
String
c
ancelReason
;
/**
* 备注
*/
...
...
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