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
933e7902
Commit
933e7902
authored
Nov 21, 2022
by
“zcwang”
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
modify: 取消变更
parent
1532953a
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
99 additions
and
64 deletions
+99
-64
scheme.sql
doc/scheme.sql
+2
-2
ChangeFlowBiz.java
...om/netease/mail/yanxuan/change/biz/biz/ChangeFlowBiz.java
+46
-27
ResponseCode.java
...netease/mail/yanxuan/change/common/bean/ResponseCode.java
+2
-18
ChangeStatusEnum.java
...se/mail/yanxuan/change/common/enums/ChangeStatusEnum.java
+3
-2
ChangeSubjectEnum.java
...e/mail/yanxuan/change/common/enums/ChangeSubjectEnum.java
+3
-3
ChangeRecord.java
.../netease/mail/yanxuan/change/dal/entity/ChangeRecord.java
+1
-1
ChangeFlowCancelReq.java
...anxuan/change/dal/meta/model/req/ChangeFlowCancelReq.java
+32
-0
ChangeFlowCreateReq.java
...anxuan/change/dal/meta/model/req/ChangeFlowCreateReq.java
+2
-1
ChangeFlowSubmitReq.java
...anxuan/change/dal/meta/model/req/ChangeFlowSubmitReq.java
+1
-1
ChangeFlowController.java
...l/yanxuan/change/web/controller/ChangeFlowController.java
+7
-9
No files found.
doc/scheme.sql
View file @
933e7902
...
@@ -62,8 +62,8 @@ CREATE TABLE `TB_YX_QC_CHANGE_RECORD`
...
@@ -62,8 +62,8 @@ CREATE TABLE `TB_YX_QC_CHANGE_RECORD`
`change_profit`
int
(
11
)
NOT
NULL
DEFAULT
'0'
COMMENT
'变更收益'
,
`change_profit`
int
(
11
)
NOT
NULL
DEFAULT
'0'
COMMENT
'变更收益'
,
`change_profit_desc`
varchar
(
550
)
NOT
NULL
DEFAULT
''
COMMENT
'变更收益说明'
,
`change_profit_desc`
varchar
(
550
)
NOT
NULL
DEFAULT
''
COMMENT
'变更收益说明'
,
`change_confirm_result_time`
bigint
(
20
)
NOT
NULL
DEFAULT
'0'
COMMENT
'变更结果确认时间'
,
`change_confirm_result_time`
bigint
(
20
)
NOT
NULL
DEFAULT
'0'
COMMENT
'变更结果确认时间'
,
`state`
int
(
2
)
NOT
NULL
DEFAULT
'0'
COMMENT
'工单状态'
,
`state`
int
(
2
)
NOT
NULL
DEFAULT
'0'
COMMENT
'工单状态
,1进行中,2取消完结,3延期,4正常完结
'
,
`
is_cancel`
int
(
2
)
NOT
NULL
DEFAULT
'0'
COMMENT
'是否被取消
'
,
`
cancel_reason`
varchar
(
550
)
NOT
NULL
DEFAULT
''
COMMENT
'取消原因
'
,
`change_result`
int
(
2
)
NOT
NULL
DEFAULT
'0'
COMMENT
'变更结论'
,
`change_result`
int
(
2
)
NOT
NULL
DEFAULT
'0'
COMMENT
'变更结论'
,
`create_source`
int
(
2
)
NOT
NULL
DEFAULT
'0'
COMMENT
'创建端(普通or同舟)'
,
`create_source`
int
(
2
)
NOT
NULL
DEFAULT
'0'
COMMENT
'创建端(普通or同舟)'
,
`create_supplier`
varchar
(
20
)
NOT
NULL
DEFAULT
''
COMMENT
'创建人所属供应商(同舟创建)'
,
`create_supplier`
varchar
(
20
)
NOT
NULL
DEFAULT
''
COMMENT
'创建人所属供应商(同舟创建)'
,
...
...
yanxuan-qc-change-system-biz/src/main/java/com/netease/mail/yanxuan/change/biz/biz/ChangeFlowBiz.java
View file @
933e7902
...
@@ -24,7 +24,6 @@ import com.netease.mail.yanxuan.change.biz.meta.exception.ExceptionFactory;
...
@@ -24,7 +24,6 @@ import com.netease.mail.yanxuan.change.biz.meta.exception.ExceptionFactory;
import
com.netease.mail.yanxuan.change.biz.service.ChangeFlowService
;
import
com.netease.mail.yanxuan.change.biz.service.ChangeFlowService
;
import
com.netease.mail.yanxuan.change.biz.service.change.ChangeConfigService
;
import
com.netease.mail.yanxuan.change.biz.service.change.ChangeConfigService
;
import
com.netease.mail.yanxuan.change.common.bean.CommonConstants
;
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.bean.ResponseCode
;
import
com.netease.mail.yanxuan.change.common.bean.ResponseCodeEnum
;
import
com.netease.mail.yanxuan.change.common.bean.ResponseCodeEnum
;
import
com.netease.mail.yanxuan.change.common.enums.ChangeFlowEnum
;
import
com.netease.mail.yanxuan.change.common.enums.ChangeFlowEnum
;
...
@@ -35,8 +34,9 @@ import com.netease.mail.yanxuan.change.common.enums.FlowxOperationEnum;
...
@@ -35,8 +34,9 @@ import com.netease.mail.yanxuan.change.common.enums.FlowxOperationEnum;
import
com.netease.mail.yanxuan.change.common.util.DateUtils
;
import
com.netease.mail.yanxuan.change.common.util.DateUtils
;
import
com.netease.mail.yanxuan.change.dal.entity.ChangeRecord
;
import
com.netease.mail.yanxuan.change.dal.entity.ChangeRecord
;
import
com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeExecConfigReq
;
import
com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeExecConfigReq
;
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.ChangeFlowCreateReq
;
import
com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowReq
;
import
com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlow
Submit
Req
;
import
com.netease.mail.yanxuan.change.integration.flow.FlowRpcService
;
import
com.netease.mail.yanxuan.change.integration.flow.FlowRpcService
;
import
com.netease.yanxuan.flowx.sdk.meta.controller.communal.AjaxResponse
;
import
com.netease.yanxuan.flowx.sdk.meta.controller.communal.AjaxResponse
;
import
com.netease.yanxuan.flowx.sdk.meta.dto.base.FlowDataDTO
;
import
com.netease.yanxuan.flowx.sdk.meta.dto.base.FlowDataDTO
;
...
@@ -67,12 +67,10 @@ public class ChangeFlowBiz {
...
@@ -67,12 +67,10 @@ public class ChangeFlowBiz {
public
String
createAndSubmit
(
ChangeFlowCreateReq
changeFlowCreateReq
)
{
public
String
createAndSubmit
(
ChangeFlowCreateReq
changeFlowCreateReq
)
{
// String uid = RequestLocalBean.getUid();
// String uid = RequestLocalBean.getUid();
String
uid
=
"
1
"
;
String
uid
=
"
x@mesg.com
"
;
// String userName = RequestLocalBean.getName();
// String userName = RequestLocalBean.getName();
String
userName
=
"x@mesg.com"
;
// 校验变更主体
// 校验变更主体
Boolean
containsChangeSubject
=
ChangeSubjectEnum
.
getByType
(
changeFlowCreateReq
.
getChangeSubject
());
checkSubject
(
changeFlowCreateReq
);
Assert
.
isTrue
(
containsChangeSubject
,
"变更主体不存在"
);
// 检验是否需要资料
// 检验是否需要资料
// ChangeConfig changeConfig = changeConfigService.queryChangeConfig(changeFlowCreateReq.getSonChangeClassId());
// ChangeConfig changeConfig = changeConfigService.queryChangeConfig(changeFlowCreateReq.getSonChangeClassId());
// Assert.notNull(changeConfig, "二级变更类型不存在");
// Assert.notNull(changeConfig, "二级变更类型不存在");
...
@@ -83,19 +81,18 @@ public class ChangeFlowBiz {
...
@@ -83,19 +81,18 @@ public class ChangeFlowBiz {
// 变更行动项不可为空,最多20项
// 变更行动项不可为空,最多20项
Assert
.
isTrue
(
changeFlowCreateReq
.
getChangeExecProject
().
size
()
<=
appConfig
.
getChangeExecLimit
(),
Assert
.
isTrue
(
changeFlowCreateReq
.
getChangeExecProject
().
size
()
<=
appConfig
.
getChangeExecLimit
(),
"变更行动方案配置数超限"
);
"变更行动方案配置数超限"
);
// 结束时间不可晚于第二天定时任务执行时间
// 结束时间不可晚于第二天定时任务执行时间
Long
tomorrowSpecificTime
=
DateUtils
.
getTomorrowSpecificTime
(
"09:00:00"
);
Long
tomorrowSpecificTime
=
DateUtils
.
getTomorrowSpecificTime
(
"09:00:00"
);
Assert
.
isTrue
(
changeFlowCreateReq
.
getChangeConfirmResultTime
()
>=
tomorrowSpecificTime
,
"时间不可晚于下次执行时间"
);
Assert
.
isTrue
(
changeFlowCreateReq
.
getChangeConfirmResultTime
()
>=
tomorrowSpecificTime
,
"时间不可晚于下次执行时间"
);
Map
<
String
,
Object
>
content
=
new
HashMap
<>(
10
);
Map
<
String
,
Object
>
content
=
new
HashMap
<>(
10
);
content
.
put
(
"createUserName"
,
u
serName
);
content
.
put
(
"createUserName"
,
u
id
);
content
.
put
(
"createUser"
,
uid
);
content
.
put
(
"createUser"
,
uid
);
content
.
put
(
"createTime"
,
System
.
currentTimeMillis
());
content
.
put
(
"createTime"
,
System
.
currentTimeMillis
());
content
.
put
(
"updateTime"
,
System
.
currentTimeMillis
());
content
.
put
(
"updateTime"
,
System
.
currentTimeMillis
());
content
.
put
(
CommonConstants
.
FLOW_OPERATION_KEY
,
FlowOperationTypeEnum
.
PASS
.
getValue
());
content
.
put
(
CommonConstants
.
FLOW_OPERATION_KEY
,
FlowOperationTypeEnum
.
PASS
.
getValue
());
// 组装工单创建数据
// 组装工单创建数据
FlowCreateReqDTO
flowCreateReqDTO
=
buildFlowCreateReqDTO
(
ChangeFlowEnum
.
CHANGE_FLOW_START
.
getTopoId
(),
uid
,
FlowCreateReqDTO
flowCreateReqDTO
=
buildFlowCreateReqDTO
(
ChangeFlowEnum
.
CHANGE_FLOW_START
.
getTopoId
(),
uid
,
userName
,
JSON
.
toJSONString
(
content
),
FlowxOperationEnum
.
CREATE
.
getName
());
JSON
.
toJSONString
(
content
),
FlowxOperationEnum
.
CREATE
.
getName
());
// 创建工单
// 创建工单
String
flowId
=
createFlow
(
flowCreateReqDTO
);
String
flowId
=
createFlow
(
flowCreateReqDTO
);
// 查询工单详情
// 查询工单详情
...
@@ -110,7 +107,7 @@ public class ChangeFlowBiz {
...
@@ -110,7 +107,7 @@ public class ChangeFlowBiz {
// 如果发起人=变更负责人
// 如果发起人=变更负责人
if
(
true
)
{
if
(
true
)
{
List
<
String
>
nextNodeIdList
=
submitFlow
(
flowId
,
flowDataDTO
,
uid
,
userName
,
List
<
String
>
nextNodeIdList
=
submitFlow
(
flowId
,
flowDataDTO
,
uid
,
ChangeFlowEnum
.
CHANGE_FLOW_START
.
getTopoId
(),
JSON
.
toJSONString
(
content
));
ChangeFlowEnum
.
CHANGE_FLOW_START
.
getTopoId
(),
JSON
.
toJSONString
(
content
));
if
(
CollectionUtils
.
isEmpty
(
nextNodeIdList
))
{
if
(
CollectionUtils
.
isEmpty
(
nextNodeIdList
))
{
throw
ExceptionFactory
.
createBiz
(
ResponseCode
.
SUBMIT_FLOW_ERROR
,
"首次提交节点失败"
);
throw
ExceptionFactory
.
createBiz
(
ResponseCode
.
SUBMIT_FLOW_ERROR
,
"首次提交节点失败"
);
...
@@ -120,6 +117,23 @@ public class ChangeFlowBiz {
...
@@ -120,6 +117,23 @@ public class ChangeFlowBiz {
return
flowId
;
return
flowId
;
}
}
private
void
checkSubject
(
ChangeFlowCreateReq
changeFlowCreateReq
)
{
ChangeSubjectEnum
type
=
ChangeSubjectEnum
.
getByType
(
changeFlowCreateReq
.
getChangeSubject
());
Assert
.
notNull
(
type
,
"变更主体不存在"
);
switch
(
type
)
{
case
PRODUCT:
Assert
.
isTrue
(
StringUtils
.
isNotBlank
(
changeFlowCreateReq
.
getChangeItems
()),
" 变更商品不可为空"
);
break
;
case
SUPPLIER:
Assert
.
isTrue
(
StringUtils
.
isNotBlank
(
changeFlowCreateReq
.
getChangeSupplier
()),
" 变更供应商不可为空"
);
break
;
case
OTHER:
break
;
default
:
throw
ExceptionFactory
.
createBiz
(
ResponseCode
.
CHANGE_SUBJECT_ERROR
,
"变更主体类型错误"
);
}
}
private
FlowDataDTO
flowDetail
(
String
flowId
)
{
private
FlowDataDTO
flowDetail
(
String
flowId
)
{
// 查询工单详情,根据详情提交
// 查询工单详情,根据详情提交
FlowDataDTO
flowDataDTO
;
FlowDataDTO
flowDataDTO
;
...
@@ -135,24 +149,22 @@ public class ChangeFlowBiz {
...
@@ -135,24 +149,22 @@ public class ChangeFlowBiz {
return
flowDataDTO
;
return
flowDataDTO
;
}
}
private
FlowCreateReqDTO
buildFlowCreateReqDTO
(
String
topoId
,
String
uid
,
String
userName
,
String
content
,
private
FlowCreateReqDTO
buildFlowCreateReqDTO
(
String
topoId
,
String
uid
,
String
content
,
String
operateResult
)
{
String
operateResult
)
{
FlowCreateReqDTO
flowCreateReqDTO
=
new
FlowCreateReqDTO
();
FlowCreateReqDTO
flowCreateReqDTO
=
new
FlowCreateReqDTO
();
flowCreateReqDTO
.
setTopoId
(
topoId
);
flowCreateReqDTO
.
setTopoId
(
topoId
);
flowCreateReqDTO
.
setUid
(
uid
);
flowCreateReqDTO
.
setUid
(
uid
);
flowCreateReqDTO
.
setUserName
(
u
serName
);
flowCreateReqDTO
.
setUserName
(
u
id
);
flowCreateReqDTO
.
setOperateResult
(
operateResult
);
flowCreateReqDTO
.
setOperateResult
(
operateResult
);
flowCreateReqDTO
.
setWorkOrderId
(
StringUtils
.
joinWith
(
"-"
,
topoId
,
UUID
.
randomUUID
().
toString
()));
flowCreateReqDTO
.
setWorkOrderId
(
StringUtils
.
joinWith
(
"-"
,
topoId
,
UUID
.
randomUUID
().
toString
()));
return
flowCreateReqDTO
;
return
flowCreateReqDTO
;
}
}
private
List
<
String
>
submitFlow
(
String
flowId
,
FlowDataDTO
flowDataDTO
,
String
uid
,
String
userName
,
String
topoId
,
private
List
<
String
>
submitFlow
(
String
flowId
,
FlowDataDTO
flowDataDTO
,
String
uid
,
String
topoId
,
String
content
)
{
String
content
)
{
NodeSubmitReqDTO
nodeSubmitReqDTO
=
new
NodeSubmitReqDTO
();
NodeSubmitReqDTO
nodeSubmitReqDTO
=
new
NodeSubmitReqDTO
();
nodeSubmitReqDTO
.
setFlowId
(
flowId
);
nodeSubmitReqDTO
.
setFlowId
(
flowId
);
nodeSubmitReqDTO
.
setNodeId
(
flowDataDTO
.
getFlowMeta
().
getCurrNodeDataList
().
get
(
0
).
getNodeId
());
nodeSubmitReqDTO
.
setNodeId
(
flowDataDTO
.
getFlowMeta
().
getCurrNodeDataList
().
get
(
0
).
getNodeId
());
nodeSubmitReqDTO
.
setUid
(
uid
);
nodeSubmitReqDTO
.
setUid
(
uid
);
nodeSubmitReqDTO
.
setUserName
(
u
serName
);
nodeSubmitReqDTO
.
setUserName
(
u
id
);
nodeSubmitReqDTO
.
setTopoId
(
topoId
);
nodeSubmitReqDTO
.
setTopoId
(
topoId
);
nodeSubmitReqDTO
.
setContent
(
content
);
nodeSubmitReqDTO
.
setContent
(
content
);
nodeSubmitReqDTO
.
setOperateResult
(
FlowxOperationEnum
.
SUBMIT
.
getName
());
nodeSubmitReqDTO
.
setOperateResult
(
FlowxOperationEnum
.
SUBMIT
.
getName
());
...
@@ -178,7 +190,8 @@ public class ChangeFlowBiz {
...
@@ -178,7 +190,8 @@ public class ChangeFlowBiz {
private
String
createFlow
(
FlowCreateReqDTO
flowCreateReqDTO
)
{
private
String
createFlow
(
FlowCreateReqDTO
flowCreateReqDTO
)
{
// 先创建工单,创建完成后直接提交
// 先创建工单,创建完成后直接提交
log
.
info
(
"[createFlow] flowCreateReqDTO={}"
,
flowCreateReqDTO
);
log
.
info
(
"[createFlow] flowCreateReqDTO={}"
,
flowCreateReqDTO
);
AjaxResponse
<
String
>
flowCreateResponse
=
flowRpcService
.
create
(
CommonConstants
.
FLOWX_PRODUCT
,
flowCreateReqDTO
);
AjaxResponse
<
String
>
flowCreateResponse
=
flowRpcService
.
create
(
CommonConstants
.
FLOWX_PRODUCT
,
flowCreateReqDTO
);
String
flowId
;
String
flowId
;
if
(
ResponseCodeEnum
.
SUCCESS
.
getCode
()
==
flowCreateResponse
.
getCode
())
{
if
(
ResponseCodeEnum
.
SUCCESS
.
getCode
()
==
flowCreateResponse
.
getCode
())
{
flowId
=
flowCreateResponse
.
getData
();
flowId
=
flowCreateResponse
.
getData
();
...
@@ -191,7 +204,8 @@ public class ChangeFlowBiz {
...
@@ -191,7 +204,8 @@ public class ChangeFlowBiz {
return
flowId
;
return
flowId
;
}
}
private
ChangeRecord
buildRecord
(
String
flowId
,
String
nodeId
,
ChangeFlowCreateReq
changeFlowCreateReq
,
String
changeCommander
)
{
private
ChangeRecord
buildRecord
(
String
flowId
,
String
nodeId
,
ChangeFlowCreateReq
changeFlowCreateReq
,
String
changeCommander
)
{
ChangeRecord
changeRecord
=
new
ChangeRecord
();
ChangeRecord
changeRecord
=
new
ChangeRecord
();
changeRecord
.
setFlowId
(
Long
.
parseLong
(
flowId
));
changeRecord
.
setFlowId
(
Long
.
parseLong
(
flowId
));
changeRecord
.
setFlowNode
(
nodeId
);
changeRecord
.
setFlowNode
(
nodeId
);
...
@@ -199,15 +213,16 @@ public class ChangeFlowBiz {
...
@@ -199,15 +213,16 @@ public class ChangeFlowBiz {
changeRecord
.
setParentChangeClassId
(
changeFlowCreateReq
.
getParentChangeClassId
());
changeRecord
.
setParentChangeClassId
(
changeFlowCreateReq
.
getParentChangeClassId
());
changeRecord
.
setSonChangeClassId
(
changeFlowCreateReq
.
getSonChangeClassId
());
changeRecord
.
setSonChangeClassId
(
changeFlowCreateReq
.
getSonChangeClassId
());
changeRecord
.
setChangeLevel
(
changeFlowCreateReq
.
getChangeLevel
());
changeRecord
.
setChangeLevel
(
changeFlowCreateReq
.
getChangeLevel
());
// todo: 查询负责人
changeRecord
.
setChangeCommander
(
changeCommander
);
changeRecord
.
setChangeCommander
(
""
);
changeRecord
.
setChangeDepartment
(
changeFlowCreateReq
.
getChangeDepartment
());
changeRecord
.
setChangeDepartment
(
changeFlowCreateReq
.
getChangeDepartment
());
List
<
ChangeExecConfigReq
>
changeExecProject
=
changeFlowCreateReq
.
getChangeExecProject
();
List
<
ChangeExecConfigReq
>
changeExecProject
=
changeFlowCreateReq
.
getChangeExecProject
();
List
<
String
>
execDepartmentList
=
changeExecProject
.
stream
().
map
(
ChangeExecConfigReq:
:
getChangeExecDepartment
)
List
<
String
>
execDepartmentList
=
changeExecProject
.
stream
().
map
(
ChangeExecConfigReq:
:
getChangeExecDepartment
)
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
changeRecord
.
setParticipateChangeExecDepartment
(
JSON
.
toJSONString
(
execDepartmentList
));
changeRecord
.
setParticipateChangeExecDepartment
(
JSON
.
toJSONString
(
execDepartmentList
));
// todo: 当变更类型是商品时有值
if
(
ChangeSubjectEnum
.
PRODUCT
.
getType
().
equals
(
changeFlowCreateReq
.
getChangeSubject
()))
{
// 当变更类型是商品时有值
changeRecord
.
setChangeItem
(
changeFlowCreateReq
.
getChangeItems
());
changeRecord
.
setChangeItem
(
changeFlowCreateReq
.
getChangeItems
());
}
// todo: 当变更类型是供应商时有效
// todo: 当变更类型是供应商时有效
changeRecord
.
setChangeSupplier
(
changeFlowCreateReq
.
getChangeSupplier
());
changeRecord
.
setChangeSupplier
(
changeFlowCreateReq
.
getChangeSupplier
());
changeRecord
.
setChangeReason
(
changeFlowCreateReq
.
getChangeReason
());
changeRecord
.
setChangeReason
(
changeFlowCreateReq
.
getChangeReason
());
...
@@ -226,20 +241,19 @@ public class ChangeFlowBiz {
...
@@ -226,20 +241,19 @@ public class ChangeFlowBiz {
return
changeRecord
;
return
changeRecord
;
}
}
public
String
submit
(
ChangeFlow
Req
changeFlow
Req
)
{
public
String
submit
(
ChangeFlow
SubmitReq
changeFlowSubmit
Req
)
{
log
.
info
(
"[submit
] changeFlowReq:{}"
,
JSON
.
toJSONString
(
changeFlow
Req
));
log
.
info
(
"[submit
Flow] changeFlowReq:{}"
,
JSON
.
toJSONString
(
changeFlowSubmit
Req
));
Long
flowId
=
changeFlowReq
.
getFlowId
();
Long
flowId
=
changeFlow
Submit
Req
.
getFlowId
();
// 查询工单有效性
// 查询工单有效性
ChangeRecord
changeRecord
=
changeFlowService
.
getByFlowId
(
flowId
);
ChangeRecord
changeRecord
=
changeFlowService
.
getByFlowId
(
flowId
);
if
(
changeRecord
==
null
)
{
if
(
changeRecord
==
null
)
{
throw
ExceptionFactory
.
createBiz
(
ResponseCode
.
ERROR_FLOW_ID
,
"工单id不存在"
);
throw
ExceptionFactory
.
createBiz
(
ResponseCode
.
ERROR_FLOW_ID
,
"工单id不存在"
);
}
}
if
(!
changeRecord
.
getFlowNode
().
equals
(
changeFlowReq
.
getCurrentNodeId
()))
{
if
(!
changeRecord
.
getFlowNode
().
equals
(
changeFlow
Submit
Req
.
getCurrentNodeId
()))
{
throw
ExceptionFactory
.
createBiz
(
ResponseCode
.
NODE_ERROR
,
"工单已流转至其他节点"
);
throw
ExceptionFactory
.
createBiz
(
ResponseCode
.
NODE_ERROR
,
"工单已流转至其他节点"
);
}
}
// todo:检验操作权限
// todo:检验操作权限
// String uid = RequestLocalBean.getUid();
// String uid = RequestLocalBean.getUid();
String
userName
=
RequestLocalBean
.
getName
();
String
uid
=
"1"
;
String
uid
=
"1"
;
String
changeCommander
=
changeRecord
.
getChangeCommander
();
String
changeCommander
=
changeRecord
.
getChangeCommander
();
if
(!
uid
.
equals
(
changeCommander
))
{
if
(!
uid
.
equals
(
changeCommander
))
{
...
@@ -251,11 +265,16 @@ public class ChangeFlowBiz {
...
@@ -251,11 +265,16 @@ public class ChangeFlowBiz {
Map
<
String
,
Object
>
content
=
new
HashMap
<>(
CommonConstants
.
INIT_HASH_MAP_SIZE
);
Map
<
String
,
Object
>
content
=
new
HashMap
<>(
CommonConstants
.
INIT_HASH_MAP_SIZE
);
content
.
put
(
"updateTime"
,
System
.
currentTimeMillis
());
content
.
put
(
"updateTime"
,
System
.
currentTimeMillis
());
content
.
put
(
CommonConstants
.
FLOW_OPERATION_KEY
,
FlowOperationTypeEnum
.
PASS
.
getValue
());
content
.
put
(
CommonConstants
.
FLOW_OPERATION_KEY
,
FlowOperationTypeEnum
.
PASS
.
getValue
());
List
<
String
>
nextNodeList
=
this
.
submitFlow
(
flowId
.
toString
(),
flowDataDTO
,
uid
,
userName
,
List
<
String
>
nextNodeList
=
this
.
submitFlow
(
flowId
.
toString
(),
flowDataDTO
,
uid
,
ChangeFlowEnum
.
CHANGE_FLOW_SUBMIT
.
getTopoId
(),
JSON
.
toJSONString
(
content
));
ChangeFlowEnum
.
CHANGE_FLOW_SUBMIT
.
getTopoId
(),
JSON
.
toJSONString
(
content
));
if
(
CollectionUtils
.
isEmpty
(
nextNodeList
))
{
if
(
CollectionUtils
.
isEmpty
(
nextNodeList
))
{
return
ChangeFlowEnum
.
END
.
getNodeId
();
return
ChangeFlowEnum
.
END
.
getNodeId
();
}
}
return
nextNodeList
.
get
(
0
);
return
nextNodeList
.
get
(
0
);
}
}
public
Boolean
cancel
(
ChangeFlowCancelReq
req
)
{
log
.
info
(
"[cancel] req:{}"
,
JSON
.
toJSONString
(
req
));
return
false
;
}
}
}
yanxuan-qc-change-system-common/src/main/java/com/netease/mail/yanxuan/change/common/bean/ResponseCode.java
View file @
933e7902
...
@@ -120,30 +120,14 @@ public enum ResponseCode {
...
@@ -120,30 +120,14 @@ public enum ResponseCode {
NO_GOOD_TASK
(
802
,
"不是商品任务"
),
NO_GOOD_TASK
(
802
,
"不是商品任务"
),
//----------10xx-----------
CREATE_FLOW_ERROR
(
1001
,
"创建工单错误"
),
CREATE_FLOW_ERROR
(
1001
,
"创建工单错误"
),
DETAIL_FLOW_ERROR
(
1002
,
"查询工单详情错误"
),
DETAIL_FLOW_ERROR
(
1002
,
"查询工单详情错误"
),
SUBMIT_FLOW_ERROR
(
1002
,
"提交工单错误"
),
SUBMIT_FLOW_ERROR
(
1002
,
"提交工单错误"
),
ERROR_FLOW_ID
(
1003
,
"工单id不存在"
),
ERROR_FLOW_ID
(
1003
,
"工单id不存在"
),
NODE_ERROR
(
1004
,
"工单已流转至其他节点"
),
NODE_ERROR
(
1004
,
"工单已流转至其他节点"
),
NO_AUTH
(
1005
,
"没有当前节点操作权限"
),
NO_AUTH
(
1005
,
"没有当前节点操作权限"
),
CHANGE_SUBJECT_ERROR
(
1006
,
"变更主体类型错误"
),
//----------10xx-----------
NO_DATA
(
1007
,
"无数据"
),
STEP_NOT_ENOUGH
(
1008
,
"步数不足"
),
ALREADY_DO
(
1009
,
"已完成"
),
NOT_FINISH
(
1011
,
"未完成"
),
FINISH_GUIDE
(
1012
,
"完成新手奖励"
),
RECEIVE_GUIDE
(
1013
,
"完成新手奖励"
),
NOT_IN_DMP
(
1014
,
"未命中DMP分组"
),
NOT_BIND_PHONE
(
1015
,
"未绑定手机号"
),
/**
* 名字已经被使用
*/
NAME_EXIST
(
2000
,
"NAME_IS_USED"
),
/**
/**
* 无权限
* 无权限
...
...
yanxuan-qc-change-system-common/src/main/java/com/netease/mail/yanxuan/change/common/enums/ChangeStatusEnum.java
View file @
933e7902
...
@@ -13,8 +13,9 @@ package com.netease.mail.yanxuan.change.common.enums;
...
@@ -13,8 +13,9 @@ package com.netease.mail.yanxuan.change.common.enums;
public
enum
ChangeStatusEnum
{
public
enum
ChangeStatusEnum
{
IN
(
1
,
"进行中"
),
IN
(
1
,
"进行中"
),
CANCEL
(
2
,
"取消"
),
CANCEL
(
2
,
"取消完结"
),
END
(
3
,
"完结"
);
DELAY
(
3
,
"延期"
),
END
(
4
,
"完结"
);
private
Integer
status
;
private
Integer
status
;
...
...
yanxuan-qc-change-system-common/src/main/java/com/netease/mail/yanxuan/change/common/enums/ChangeSubjectEnum.java
View file @
933e7902
...
@@ -34,13 +34,13 @@ public enum ChangeSubjectEnum {
...
@@ -34,13 +34,13 @@ public enum ChangeSubjectEnum {
return
desc
;
return
desc
;
}
}
public
static
Boolean
getByType
(
Integer
type
)
{
public
static
ChangeSubjectEnum
getByType
(
Integer
type
)
{
for
(
ChangeSubjectEnum
value
:
ChangeSubjectEnum
.
values
())
{
for
(
ChangeSubjectEnum
value
:
ChangeSubjectEnum
.
values
())
{
if
(
value
.
getType
().
equals
(
type
))
{
if
(
value
.
getType
().
equals
(
type
))
{
return
tr
ue
;
return
val
ue
;
}
}
}
}
return
false
;
return
null
;
}
}
public
static
ChangeSubjectEnum
getChangeSubjectEnum
(
Integer
id
){
public
static
ChangeSubjectEnum
getChangeSubjectEnum
(
Integer
id
){
...
...
yanxuan-qc-change-system-dal/src/main/java/com/netease/mail/yanxuan/change/dal/entity/ChangeRecord.java
View file @
933e7902
...
@@ -128,7 +128,7 @@ public class ChangeRecord {
...
@@ -128,7 +128,7 @@ public class ChangeRecord {
private
Integer
state
;
private
Integer
state
;
/**
/**
*
是否被取消
*
取消原因
*/
*/
private
String
cancelReason
;
private
String
cancelReason
;
...
...
yanxuan-qc-change-system-dal/src/main/java/com/netease/mail/yanxuan/change/dal/meta/model/req/ChangeFlowCancelReq.java
0 → 100644
View file @
933e7902
/**
* @(#)ChangeFlowCancelReq.java, 2022/11/21.
* <p/>
* Copyright 2022 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
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.Size
;
import
lombok.Data
;
/**
* @Author zcwang
* @Date 2022/11/21
*/
@Data
public
class
ChangeFlowCancelReq
{
/**
* 工单id
*/
@NotNull
(
message
=
"工单id不能为空"
)
private
Long
flowId
;
@NotBlank
(
message
=
"取消原因不能为空"
)
@Size
(
max
=
200
,
message
=
"取消原因限制200字"
)
private
String
cancelReason
;
}
\ No newline at end of file
yanxuan-qc-change-system-dal/src/main/java/com/netease/mail/yanxuan/change/dal/meta/model/req/ChangeFlowCreateReq.java
View file @
933e7902
...
@@ -86,8 +86,9 @@ public class ChangeFlowCreateReq {
...
@@ -86,8 +86,9 @@ public class ChangeFlowCreateReq {
private
List
<
ChangeFlowFile
>
files
;
private
List
<
ChangeFlowFile
>
files
;
/**
/**
* 变更潜在风险
* 变更潜在风险
描述
*/
*/
@NotBlank
(
message
=
"变更潜在风险描述不能为空"
)
private
String
changeRiskDesc
;
private
String
changeRiskDesc
;
/**
/**
...
...
yanxuan-qc-change-system-dal/src/main/java/com/netease/mail/yanxuan/change/dal/meta/model/req/ChangeFlowReq.java
→
yanxuan-qc-change-system-dal/src/main/java/com/netease/mail/yanxuan/change/dal/meta/model/req/ChangeFlow
Submit
Req.java
View file @
933e7902
...
@@ -19,7 +19,7 @@ import lombok.Data;
...
@@ -19,7 +19,7 @@ import lombok.Data;
* @Date 2022/11/14
* @Date 2022/11/14
*/
*/
@Data
@Data
public
class
ChangeFlowReq
{
public
class
ChangeFlow
Submit
Req
{
/**
/**
* 工单id
* 工单id
...
...
yanxuan-qc-change-system-web/src/main/java/com/netease/mail/yanxuan/change/web/controller/ChangeFlowController.java
View file @
933e7902
...
@@ -6,8 +6,6 @@
...
@@ -6,8 +6,6 @@
*/
*/
package
com
.
netease
.
mail
.
yanxuan
.
change
.
web
.
controller
;
package
com
.
netease
.
mail
.
yanxuan
.
change
.
web
.
controller
;
import
java.util.List
;
import
javax.validation.Valid
;
import
javax.validation.Valid
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -22,8 +20,9 @@ import com.netease.mail.yanxuan.change.biz.biz.ChangeFlowBiz;
...
@@ -22,8 +20,9 @@ import com.netease.mail.yanxuan.change.biz.biz.ChangeFlowBiz;
import
com.netease.mail.yanxuan.change.biz.config.TitleConfig
;
import
com.netease.mail.yanxuan.change.biz.config.TitleConfig
;
import
com.netease.mail.yanxuan.change.common.bean.AjaxResult
;
import
com.netease.mail.yanxuan.change.common.bean.AjaxResult
;
import
com.netease.mail.yanxuan.change.biz.service.ChangeFlowService
;
import
com.netease.mail.yanxuan.change.biz.service.ChangeFlowService
;
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.ChangeFlowCreateReq
;
import
com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowReq
;
import
com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlow
Submit
Req
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -71,7 +70,7 @@ public class ChangeFlowController {
...
@@ -71,7 +70,7 @@ public class ChangeFlowController {
}
}
/**
/**
* 发起变更,自动跳转到第一个节点
* 发起变更,
如果发起人=审核人,
自动跳转到第一个节点
* @return
* @return
*/
*/
@PostMapping
(
"/create"
)
@PostMapping
(
"/create"
)
...
@@ -85,8 +84,8 @@ public class ChangeFlowController {
...
@@ -85,8 +84,8 @@ public class ChangeFlowController {
* @return
* @return
*/
*/
@PostMapping
(
"/submit"
)
@PostMapping
(
"/submit"
)
public
AjaxResult
<
String
>
submit
(
@RequestBody
@Valid
ChangeFlow
Req
changeFlow
Req
)
{
public
AjaxResult
<
String
>
submit
(
@RequestBody
@Valid
ChangeFlow
SubmitReq
changeFlowSubmit
Req
)
{
return
AjaxResult
.
success
(
changeFlowBiz
.
submit
(
changeFlowReq
));
return
AjaxResult
.
success
(
changeFlowBiz
.
submit
(
changeFlow
Submit
Req
));
}
}
/**
/**
...
@@ -103,9 +102,8 @@ public class ChangeFlowController {
...
@@ -103,9 +102,8 @@ public class ChangeFlowController {
* @return
* @return
*/
*/
@GetMapping
(
"/cancel"
)
@GetMapping
(
"/cancel"
)
public
AjaxResult
<
Void
>
cancel
()
{
public
AjaxResult
<
Boolean
>
cancel
(
@RequestBody
@Valid
ChangeFlowCancelReq
changeFlowCancelReq
)
{
return
AjaxResult
.
success
(
changeFlowBiz
.
cancel
(
changeFlowCancelReq
));
return
AjaxResult
.
success
();
}
}
/**
/**
...
...
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