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
486a483e
Commit
486a483e
authored
Dec 13, 2022
by
穆龙飞
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
modify:增加名称+部门返回
parent
36ed9f33
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
117 additions
and
112 deletions
+117
-112
ChangeFlowBiz.java
...om/netease/mail/yanxuan/change/biz/biz/ChangeFlowBiz.java
+107
-112
ChangeFlowVO.java
...e/mail/yanxuan/change/dal/meta/model/vo/ChangeFlowVO.java
+10
-0
No files found.
yanxuan-qc-change-system-biz/src/main/java/com/netease/mail/yanxuan/change/biz/biz/ChangeFlowBiz.java
View file @
486a483e
...
@@ -6,28 +6,8 @@
...
@@ -6,28 +6,8 @@
*/
*/
package
com
.
netease
.
mail
.
yanxuan
.
change
.
biz
.
biz
;
package
com
.
netease
.
mail
.
yanxuan
.
change
.
biz
.
biz
;
import
java.io.ByteArrayOutputStream
;
import
cn.afterturn.easypoi.excel.ExcelExportUtil
;
import
java.io.IOException
;
import
cn.afterturn.easypoi.excel.entity.ExportParams
;
import
java.io.OutputStream
;
import
java.net.URLEncoder
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.validation.Valid
;
import
com.netease.mail.yanxuan.change.integration.flow.OrgPosDTO
;
import
com.netease.mail.yanxuan.change.integration.flow.UserQueryDTO
;
import
com.netease.mail.yanxuan.change.integration.flow.ius.IusRpcService
;
import
com.netease.mail.yanxuan.change.integration.flow.ius.rsp.IusUserInfoRsp
;
import
com.netease.yanxuan.flowx.sdk.meta.controller.communal.AjaxResponse
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.poi.ss.usermodel.Workbook
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.Assert
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageInfo
;
import
com.github.pagehelper.PageInfo
;
...
@@ -39,70 +19,56 @@ import com.netease.mail.yanxuan.change.biz.service.ChangeFlowService;
...
@@ -39,70 +19,56 @@ import com.netease.mail.yanxuan.change.biz.service.ChangeFlowService;
import
com.netease.mail.yanxuan.change.biz.service.InteriorChangeConfigService
;
import
com.netease.mail.yanxuan.change.biz.service.InteriorChangeConfigService
;
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.biz.service.change.ChangeTypeService
;
import
com.netease.mail.yanxuan.change.biz.service.change.ChangeTypeService
;
import
com.netease.mail.yanxuan.change.biz.service.rpc.FlowService
;
import
com.netease.mail.yanxuan.change.biz.service.rpc.*
;
import
com.netease.mail.yanxuan.change.biz.service.rpc.ItemService
;
import
com.netease.mail.yanxuan.change.biz.service.rpc.IusService
;
import
com.netease.mail.yanxuan.change.biz.service.rpc.SupplierSendService
;
import
com.netease.mail.yanxuan.change.biz.service.rpc.TodoService
;
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.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.enums.ChangeFlowEnum
;
import
com.netease.mail.yanxuan.change.common.enums.*
;
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.enums.OperateTypeEnum
;
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.ChangeConfig
;
import
com.netease.mail.yanxuan.change.dal.entity.*
;
import
com.netease.mail.yanxuan.change.dal.entity.ChangeExecRecord
;
import
com.netease.mail.yanxuan.change.dal.entity.ChangeFile
;
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.mapper.ChangeRecordMapper
;
import
com.netease.mail.yanxuan.change.dal.meta.model.po.ChangeCommanderPO
;
import
com.netease.mail.yanxuan.change.dal.meta.model.po.ChangeCommanderPO
;
import
com.netease.mail.yanxuan.change.dal.meta.model.po.ChangeConfigPo
;
import
com.netease.mail.yanxuan.change.dal.meta.model.po.ChangeConfigPo
;
import
com.netease.mail.yanxuan.change.dal.meta.model.po.ChangeGoodsPrincipalPO
;
import
com.netease.mail.yanxuan.change.dal.meta.model.po.ChangeGoodsPrincipalPO
;
import
com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeExecConfigReq
;
import
com.netease.mail.yanxuan.change.dal.meta.model.req.*
;
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.ChangeFlowDeliverReq
;
import
com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowFile
;
import
com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowListQueryReq
;
import
com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowSubmitReq
;
import
com.netease.mail.yanxuan.change.dal.meta.model.rpc.GoodsResponseRpc
;
import
com.netease.mail.yanxuan.change.dal.meta.model.rpc.GoodsResponseRpc
;
import
com.netease.mail.yanxuan.change.dal.meta.model.vo.BasicChangeFlowVO
;
import
com.netease.mail.yanxuan.change.dal.meta.model.vo.*
;
import
com.netease.mail.yanxuan.change.dal.meta.model.vo.CategoryInfoVO
;
import
com.netease.mail.yanxuan.change.dal.meta.model.vo.ChangeFlowExecVO
;
import
com.netease.mail.yanxuan.change.dal.meta.model.vo.ChangeFlowListVO
;
import
com.netease.mail.yanxuan.change.dal.meta.model.vo.ChangeFlowVO
;
import
com.netease.mail.yanxuan.change.dal.meta.model.vo.ItemBasicInfoVO
;
import
com.netease.mail.yanxuan.change.dal.meta.model.vo.ItemVO
;
import
com.netease.mail.yanxuan.change.dal.meta.model.vo.PageVO
;
import
com.netease.mail.yanxuan.change.integration.email.enums.EmailTemplateEnum
;
import
com.netease.mail.yanxuan.change.integration.email.enums.EmailTemplateEnum
;
import
com.netease.mail.yanxuan.change.integration.email.service.IEmailService
;
import
com.netease.mail.yanxuan.change.integration.email.service.IEmailService
;
import
com.netease.mail.yanxuan.change.integration.excel.ChangeFlowExcelDTO
;
import
com.netease.mail.yanxuan.change.integration.excel.ChangeFlowExcelDTO
;
import
com.netease.mail.yanxuan.change.integration.flow.UserQueryDTO
;
import
com.netease.mail.yanxuan.change.integration.flow.ius.IusRpcService
;
import
com.netease.mail.yanxuan.change.integration.flow.ius.req.IusDepartmentReq
;
import
com.netease.mail.yanxuan.change.integration.flow.ius.req.IusDepartmentReq
;
import
com.netease.mail.yanxuan.change.integration.flow.ius.rsp.IusUserInfoRsp
;
import
com.netease.mail.yanxuan.change.integration.flow.ius.rsp.SecondaryDepartments
;
import
com.netease.mail.yanxuan.change.integration.flow.ius.rsp.SecondaryDepartments
;
import
com.netease.mail.yanxuan.change.integration.item.SimplePhyCateGoryResultCo
;
import
com.netease.mail.yanxuan.change.integration.item.SimplePhyCateGoryResultCo
;
import
com.netease.mail.yanxuan.change.integration.item.meta.SpuTO
;
import
com.netease.mail.yanxuan.change.integration.item.meta.SpuTO
;
import
com.netease.mail.yanxuan.change.integration.item.param.BatchQuerySpuInfoParam
;
import
com.netease.mail.yanxuan.change.integration.item.param.BatchQuerySpuInfoParam
;
import
com.netease.mail.yanxuan.change.integration.item.param.CommonIdsParamQuery
;
import
com.netease.mail.yanxuan.change.integration.item.param.CommonIdsParamQuery
;
import
com.netease.mail.yanxuan.change.integration.todo.TaskCreateDTO
;
import
com.netease.mail.yanxuan.change.integration.todo.TaskCreateDTO
;
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
;
import
com.netease.yanxuan.flowx.sdk.meta.dto.base.UserBaseDTO
;
import
com.netease.yanxuan.flowx.sdk.meta.dto.base.UserBaseDTO
;
import
com.netease.yanxuan.flowx.sdk.meta.dto.base.UserReachDTO
;
import
com.netease.yanxuan.flowx.sdk.meta.dto.base.UserReachDTO
;
import
com.netease.yanxuan.flowx.sdk.meta.dto.exec.InterfaceInputDTO
;
import
com.netease.yanxuan.flowx.sdk.meta.dto.exec.InterfaceInputDTO
;
import
com.netease.yanxuan.flowx.sdk.meta.dto.exec.UserBaseContainerDTO
;
import
com.netease.yanxuan.flowx.sdk.meta.dto.exec.UserBaseContainerDTO
;
import
com.netease.yanxuan.flowx.sdk.meta.dto.flow.FlowCreateReqDTO
;
import
com.netease.yanxuan.flowx.sdk.meta.dto.flow.FlowCreateReqDTO
;
import
cn.afterturn.easypoi.excel.ExcelExportUtil
;
import
cn.afterturn.easypoi.excel.entity.ExportParams
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.poi.ss.usermodel.Workbook
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.Assert
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.validation.Valid
;
import
java.io.ByteArrayOutputStream
;
import
java.io.IOException
;
import
java.io.OutputStream
;
import
java.net.URLEncoder
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
/**
* @Author zcwang
* @Author zcwang
...
@@ -176,8 +142,8 @@ public class ChangeFlowBiz {
...
@@ -176,8 +142,8 @@ public class ChangeFlowBiz {
GoodsResponseRpc
goodsResponseRpc
=
null
;
GoodsResponseRpc
goodsResponseRpc
=
null
;
try
{
try
{
goodsResponseRpc
=
interiorChangeConfigService
.
queryCommanderInfo
(
goodsResponseRpc
=
interiorChangeConfigService
.
queryCommanderInfo
(
ChangeCommanderPO
.
builder
().
parentChangeClassId
(
parentChangeClassId
).
sonChangeClassId
(
sonChangeClassId
)
ChangeCommanderPO
.
builder
().
parentChangeClassId
(
parentChangeClassId
).
sonChangeClassId
(
sonChangeClassId
)
.
changeSupplierId
(
changeFlowCreateReq
.
getChangeSupplier
()).
goodsInfos
(
itemIds
).
build
());
.
changeSupplierId
(
changeFlowCreateReq
.
getChangeSupplier
()).
goodsInfos
(
itemIds
).
build
());
changeCommander
=
goodsResponseRpc
.
getEmail
();
changeCommander
=
goodsResponseRpc
.
getEmail
();
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
"[op:queryCommanderInfo] error, e:{}"
,
e
);
log
.
error
(
"[op:queryCommanderInfo] error, e:{}"
,
e
);
...
@@ -195,7 +161,7 @@ public class ChangeFlowBiz {
...
@@ -195,7 +161,7 @@ public class ChangeFlowBiz {
// 变更行动项不可为空,最多20项
// 变更行动项不可为空,最多20项
List
<
ChangeExecConfigReq
>
changeExecProject
=
changeFlowCreateReq
.
getChangeExecProject
();
List
<
ChangeExecConfigReq
>
changeExecProject
=
changeFlowCreateReq
.
getChangeExecProject
();
Assert
.
isTrue
(
changeExecProject
.
size
()
<=
appConfig
.
getChangeExecLimit
(),
Assert
.
isTrue
(
changeExecProject
.
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
,
"时间不可晚于下次执行时间"
);
...
@@ -207,7 +173,7 @@ public class ChangeFlowBiz {
...
@@ -207,7 +173,7 @@ public class ChangeFlowBiz {
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
,
JSON
.
toJSONString
(
content
),
FlowxOperationEnum
.
CREATE
.
getName
());
JSON
.
toJSONString
(
content
),
FlowxOperationEnum
.
CREATE
.
getName
());
// 创建工单
// 创建工单
String
flowId
=
flowService
.
createFlow
(
flowCreateReqDTO
);
String
flowId
=
flowService
.
createFlow
(
flowCreateReqDTO
);
// 查询工单详情
// 查询工单详情
...
@@ -218,7 +184,7 @@ public class ChangeFlowBiz {
...
@@ -218,7 +184,7 @@ public class ChangeFlowBiz {
changeFlowService
.
saveRecord
(
changeRecord
);
changeFlowService
.
saveRecord
(
changeRecord
);
// 保存变更行动方案记录
// 保存变更行动方案记录
List
<
ChangeExecRecord
>
changeExecRecords
=
buildChangeExecRecord
(
changeRecord
.
getId
(),
changeExecProject
);
List
<
ChangeExecRecord
>
changeExecRecords
=
buildChangeExecRecord
(
changeRecord
.
getId
(),
changeExecProject
);
changeExecRecords
.
forEach
(
exec
->
changeFlowExecService
.
saveRecord
(
exec
));
changeExecRecords
.
forEach
(
exec
->
changeFlowExecService
.
saveRecord
(
exec
));
List
<
ChangeFile
>
allFiles
=
new
ArrayList
<>();
List
<
ChangeFile
>
allFiles
=
new
ArrayList
<>();
// 变更前后图片/视频,非必填
// 变更前后图片/视频,非必填
List
<
ChangeFlowFile
>
changeFiles
=
changeFlowCreateReq
.
getChangeFiles
();
List
<
ChangeFlowFile
>
changeFiles
=
changeFlowCreateReq
.
getChangeFiles
();
...
@@ -231,7 +197,7 @@ public class ChangeFlowBiz {
...
@@ -231,7 +197,7 @@ public class ChangeFlowBiz {
allFiles
.
addAll
(
buildChangeFileRecord
(
changeRecord
.
getId
(),
uploadFiles
,
FileTypeEnum
.
UPLOAD
.
getType
()));
allFiles
.
addAll
(
buildChangeFileRecord
(
changeRecord
.
getId
(),
uploadFiles
,
FileTypeEnum
.
UPLOAD
.
getType
()));
}
}
if
(
CollectionUtils
.
isNotEmpty
(
allFiles
))
{
if
(
CollectionUtils
.
isNotEmpty
(
allFiles
))
{
allFiles
.
forEach
(
file
->
changeFileService
.
saveRecord
(
file
));
allFiles
.
forEach
(
file
->
changeFileService
.
saveRecord
(
file
));
}
}
// 创建代办
// 创建代办
TaskCreateDTO
todoTask
=
todoService
.
createTodoTask
(
changeRecord
);
TaskCreateDTO
todoTask
=
todoService
.
createTodoTask
(
changeRecord
);
...
@@ -241,8 +207,8 @@ public class ChangeFlowBiz {
...
@@ -241,8 +207,8 @@ public class ChangeFlowBiz {
if
(
changeCommander
.
equals
(
uid
))
{
if
(
changeCommander
.
equals
(
uid
))
{
log
.
debug
(
"[createAndSubmit] changeCommander:{}, uid:{}"
,
changeCommander
,
uid
);
log
.
debug
(
"[createAndSubmit] changeCommander:{}, uid:{}"
,
changeCommander
,
uid
);
String
nextNodeId
=
flowService
.
submitFlow
(
flowId
,
flowDataDTO
,
uid
,
String
nextNodeId
=
flowService
.
submitFlow
(
flowId
,
flowDataDTO
,
uid
,
ChangeFlowEnum
.
CHANGE_FLOW_SUBMIT
.
getTopoId
(),
JSON
.
toJSONString
(
content
),
true
,
ChangeFlowEnum
.
CHANGE_FLOW_SUBMIT
.
getTopoId
(),
JSON
.
toJSONString
(
content
),
true
,
FlowxOperationEnum
.
SUBMIT
.
getName
(),
"提交工单"
);
FlowxOperationEnum
.
SUBMIT
.
getName
(),
"提交工单"
);
if
(
null
==
nextNodeId
)
{
if
(
null
==
nextNodeId
)
{
throw
ExceptionFactory
.
createBiz
(
ResponseCode
.
SUBMIT_FLOW_ERROR
,
"首次提交节点失败"
);
throw
ExceptionFactory
.
createBiz
(
ResponseCode
.
SUBMIT_FLOW_ERROR
,
"首次提交节点失败"
);
}
}
...
@@ -261,7 +227,7 @@ public class ChangeFlowBiz {
...
@@ -261,7 +227,7 @@ public class ChangeFlowBiz {
param
.
put
(
"flowUrl"
,
changeRecord
.
getFlowId
());
param
.
put
(
"flowUrl"
,
changeRecord
.
getFlowId
());
param
.
put
(
"dataList"
,
changeExecRecords
);
param
.
put
(
"dataList"
,
changeExecRecords
);
ChangeConfigPo
changeConfigPo
=
changeConfigService
.
queryInfoPo
(
parentChangeClassId
,
sonChangeClassId
);
ChangeConfigPo
changeConfigPo
=
changeConfigService
.
queryInfoPo
(
parentChangeClassId
,
sonChangeClassId
);
StringBuilder
changeType
=
new
StringBuilder
(
""
);
StringBuilder
changeType
=
new
StringBuilder
();
try
{
try
{
changeType
.
append
(
changeConfigPo
.
getChangeTypes
().
get
(
0
).
getTypeName
());
changeType
.
append
(
changeConfigPo
.
getChangeTypes
().
get
(
0
).
getTypeName
());
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
@@ -273,12 +239,12 @@ public class ChangeFlowBiz {
...
@@ -273,12 +239,12 @@ public class ChangeFlowBiz {
log
.
error
(
"queryInfoPo error:{}"
,
JSON
.
toJSONString
(
changeConfigPo
));
log
.
error
(
"queryInfoPo error:{}"
,
JSON
.
toJSONString
(
changeConfigPo
));
}
}
String
subjectParam
=
changeRecord
.
getChangeSubject
()
+
changeType
.
toString
()
String
subjectParam
=
changeRecord
.
getChangeSubject
()
+
changeType
.
toString
()
+
changeRecord
.
getId
().
toString
();
+
changeRecord
.
getId
().
toString
();
qcSendEmail
(
changeCommander
,
subjectParam
,
EmailTemplateEnum
.
YX_QC_CHANGE_EXECUTE
,
param
);
qcSendEmail
(
changeCommander
,
subjectParam
,
EmailTemplateEnum
.
YX_QC_CHANGE_EXECUTE
,
param
);
// 如果是供应商,再次发送供应商邮件
// 如果是供应商,再次发送供应商邮件
if
(
changeFlowCreateReq
.
getCreateSource
().
equals
(
CreateSourceEnum
.
TONG_ZHOU
.
getType
()))
{
if
(
changeFlowCreateReq
.
getCreateSource
().
equals
(
CreateSourceEnum
.
TONG_ZHOU
.
getType
()))
{
sendSupplierEmail
.
sendSupplierEmail
(
changeRecord
.
getChangeSupplier
(),
subjectParam
,
sendSupplierEmail
.
sendSupplierEmail
(
changeRecord
.
getChangeSupplier
(),
subjectParam
,
EmailTemplateEnum
.
YX_QC_CHANGE_EXECUTE
,
param
);
EmailTemplateEnum
.
YX_QC_CHANGE_EXECUTE
,
param
);
}
}
return
flowId
;
return
flowId
;
}
}
...
@@ -287,7 +253,7 @@ public class ChangeFlowBiz {
...
@@ -287,7 +253,7 @@ public class ChangeFlowBiz {
param
.
put
(
"changeId"
,
changeRecord
.
getId
());
param
.
put
(
"changeId"
,
changeRecord
.
getId
());
param
.
put
(
"changeSubject"
,
changeRecord
.
getChangeSubject
());
param
.
put
(
"changeSubject"
,
changeRecord
.
getChangeSubject
());
ChangeConfigPo
changeConfigPo
=
changeConfigService
.
queryInfoPo
(
parentChangeClassId
,
sonChangeClassId
);
ChangeConfigPo
changeConfigPo
=
changeConfigService
.
queryInfoPo
(
parentChangeClassId
,
sonChangeClassId
);
StringBuilder
changeType
=
new
StringBuilder
(
""
);
StringBuilder
changeType
=
new
StringBuilder
();
try
{
try
{
changeType
.
append
(
changeConfigPo
.
getChangeTypes
().
get
(
0
).
getTypeName
());
changeType
.
append
(
changeConfigPo
.
getChangeTypes
().
get
(
0
).
getTypeName
());
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
@@ -305,20 +271,21 @@ public class ChangeFlowBiz {
...
@@ -305,20 +271,21 @@ public class ChangeFlowBiz {
// 如果是供应商,再次发送供应商邮件
// 如果是供应商,再次发送供应商邮件
if
(
changeFlowCreateReq
.
getCreateSource
().
equals
(
CreateSourceEnum
.
TONG_ZHOU
.
getType
()))
{
if
(
changeFlowCreateReq
.
getCreateSource
().
equals
(
CreateSourceEnum
.
TONG_ZHOU
.
getType
()))
{
sendSupplierEmail
.
sendSupplierEmail
(
changeRecord
.
getChangeSupplier
(),
subjectParam
,
sendSupplierEmail
.
sendSupplierEmail
(
changeRecord
.
getChangeSupplier
(),
subjectParam
,
EmailTemplateEnum
.
YX_QC_CHANGE_RELEASE_FLOW
,
param
);
EmailTemplateEnum
.
YX_QC_CHANGE_RELEASE_FLOW
,
param
);
}
}
return
flowId
;
return
flowId
;
}
}
/**
/**
* 严选QC端发送邮件
* 严选QC端发送邮件
*
* @param changeCommander 负责人
* @param changeCommander 负责人
* @param subjectParam 主体参数
* @param subjectParam 主体参数
* @param emailTemplateEnum 邮件模板
* @param emailTemplateEnum 邮件模板
* @param param 正文参数
* @param param 正文参数
*/
*/
public
void
qcSendEmail
(
String
changeCommander
,
String
subjectParam
,
EmailTemplateEnum
emailTemplateEnum
,
public
void
qcSendEmail
(
String
changeCommander
,
String
subjectParam
,
EmailTemplateEnum
emailTemplateEnum
,
Map
<
String
,
Object
>
param
)
{
Map
<
String
,
Object
>
param
)
{
try
{
try
{
IusDepartmentReq
iusDepartmentReq
=
new
IusDepartmentReq
();
IusDepartmentReq
iusDepartmentReq
=
new
IusDepartmentReq
();
iusDepartmentReq
.
setHasOrgPos
(
true
);
iusDepartmentReq
.
setHasOrgPos
(
true
);
...
@@ -334,10 +301,10 @@ public class ChangeFlowBiz {
...
@@ -334,10 +301,10 @@ public class ChangeFlowBiz {
// 变更管理QM,所有邮件都要发
// 变更管理QM,所有邮件都要发
ccList
.
add
(
appConfig
.
getChangeManageQM
());
ccList
.
add
(
appConfig
.
getChangeManageQM
());
iEmailService
.
sendEmail
(
Collections
.
singletonList
(
changeCommander
),
ccList
,
param
,
emailTemplateEnum
,
iEmailService
.
sendEmail
(
Collections
.
singletonList
(
changeCommander
),
ccList
,
param
,
emailTemplateEnum
,
subjectParam
);
subjectParam
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
"[op:qcSendEmail] error,changeCommander:{}, subjectParam:{}, e:{}"
,
changeCommander
,
subjectParam
,
log
.
error
(
"[op:qcSendEmail] error,changeCommander:{}, subjectParam:{}, e:{}"
,
changeCommander
,
subjectParam
,
e
);
e
);
}
}
}
}
...
@@ -355,7 +322,7 @@ public class ChangeFlowBiz {
...
@@ -355,7 +322,7 @@ public class ChangeFlowBiz {
}
}
private
List
<
ChangeExecRecord
>
buildChangeExecRecord
(
Long
changeRecordId
,
private
List
<
ChangeExecRecord
>
buildChangeExecRecord
(
Long
changeRecordId
,
List
<
ChangeExecConfigReq
>
changeExecProject
)
{
List
<
ChangeExecConfigReq
>
changeExecProject
)
{
return
changeExecProject
.
stream
().
map
(
c
->
{
return
changeExecProject
.
stream
().
map
(
c
->
{
ChangeExecRecord
changeExecRecord
=
new
ChangeExecRecord
();
ChangeExecRecord
changeExecRecord
=
new
ChangeExecRecord
();
changeExecRecord
.
setChangeRecordId
(
changeRecordId
);
changeExecRecord
.
setChangeRecordId
(
changeRecordId
);
...
@@ -415,7 +382,7 @@ public class ChangeFlowBiz {
...
@@ -415,7 +382,7 @@ public class ChangeFlowBiz {
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
));
if
(
ChangeSubjectEnum
.
PRODUCT
.
getType
().
equals
(
changeFlowCreateReq
.
getChangeSubject
()))
{
if
(
ChangeSubjectEnum
.
PRODUCT
.
getType
().
equals
(
changeFlowCreateReq
.
getChangeSubject
()))
{
// 当变更类型是商品时有值
// 当变更类型是商品时有值
...
@@ -462,11 +429,11 @@ public class ChangeFlowBiz {
...
@@ -462,11 +429,11 @@ public class ChangeFlowBiz {
}
}
private
String
checkUpdateAndSubmit
(
Long
flowId
,
FlowDataDTO
flowDataDTO
,
String
uid
,
ChangeRecord
changeRecord
,
private
String
checkUpdateAndSubmit
(
Long
flowId
,
FlowDataDTO
flowDataDTO
,
String
uid
,
ChangeRecord
changeRecord
,
String
currentNode
,
ChangeFlowSubmitReq
changeFlowSubmitReq
)
{
String
currentNode
,
ChangeFlowSubmitReq
changeFlowSubmitReq
)
{
ChangeFlowEnum
node
=
ChangeFlowEnum
.
getByNodeId
(
currentNode
);
ChangeFlowEnum
node
=
ChangeFlowEnum
.
getByNodeId
(
currentNode
);
Assert
.
notNull
(
node
,
"节点配置不存在"
);
Assert
.
notNull
(
node
,
"节点配置不存在"
);
log
.
debug
(
"[checkUpdateAndSubmit] flowId:{}, nodeEnum:{}, changeFlowSubmitReq:{}"
,
flowId
,
node
,
log
.
debug
(
"[checkUpdateAndSubmit] flowId:{}, nodeEnum:{}, changeFlowSubmitReq:{}"
,
flowId
,
node
,
JSON
.
toJSONString
(
changeFlowSubmitReq
));
JSON
.
toJSONString
(
changeFlowSubmitReq
));
// 工单流传
// 工单流传
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
());
...
@@ -502,8 +469,8 @@ public class ChangeFlowBiz {
...
@@ -502,8 +469,8 @@ public class ChangeFlowBiz {
changeRecord
.
setUpdateTime
(
DateUtils
.
getCurrentTime
());
changeRecord
.
setUpdateTime
(
DateUtils
.
getCurrentTime
());
// 提交工单
// 提交工单
String
submitNode
=
flowService
.
submitFlow
(
flowId
.
toString
(),
flowDataDTO
,
uid
,
String
submitNode
=
flowService
.
submitFlow
(
flowId
.
toString
(),
flowDataDTO
,
uid
,
ChangeFlowEnum
.
CHANGE_FLOW_SUBMIT
.
getTopoId
(),
JSON
.
toJSONString
(
content
),
true
,
ChangeFlowEnum
.
CHANGE_FLOW_SUBMIT
.
getTopoId
(),
JSON
.
toJSONString
(
content
),
true
,
FlowxOperationEnum
.
SUBMIT
.
getName
(),
"提交工单"
);
FlowxOperationEnum
.
SUBMIT
.
getName
(),
"提交工单"
);
// 更新工单数据
// 更新工单数据
changeRecord
.
setFlowNode
(
submitNode
);
changeRecord
.
setFlowNode
(
submitNode
);
changeRecord
.
setState
(
ChangeStatusEnum
.
IN
.
getStatus
());
changeRecord
.
setState
(
ChangeStatusEnum
.
IN
.
getStatus
());
...
@@ -514,8 +481,8 @@ public class ChangeFlowBiz {
...
@@ -514,8 +481,8 @@ public class ChangeFlowBiz {
log
.
info
(
"[CHANGE_FLOW_SUBMIT] delete changeExecCount:{}"
,
changeExecCount
);
log
.
info
(
"[CHANGE_FLOW_SUBMIT] delete changeExecCount:{}"
,
changeExecCount
);
// 保存变更行动方案记录
// 保存变更行动方案记录
List
<
ChangeExecRecord
>
changeExecRecords
=
buildChangeExecRecord
(
changeRecord
.
getId
(),
List
<
ChangeExecRecord
>
changeExecRecords
=
buildChangeExecRecord
(
changeRecord
.
getId
(),
changeFlowSubmitReq
.
getChangeExecProjectList
());
changeFlowSubmitReq
.
getChangeExecProjectList
());
changeExecRecords
.
forEach
(
exec
->
changeFlowExecService
.
saveRecord
(
exec
));
changeExecRecords
.
forEach
(
exec
->
changeFlowExecService
.
saveRecord
(
exec
));
// 更新附件,覆盖操作,先删除,后插入
// 更新附件,覆盖操作,先删除,后插入
List
<
ChangeFlowFile
>
files
=
changeFlowSubmitReq
.
getFiles
();
List
<
ChangeFlowFile
>
files
=
changeFlowSubmitReq
.
getFiles
();
if
(
CollectionUtils
.
isNotEmpty
(
files
))
{
if
(
CollectionUtils
.
isNotEmpty
(
files
))
{
...
@@ -534,11 +501,11 @@ public class ChangeFlowBiz {
...
@@ -534,11 +501,11 @@ public class ChangeFlowBiz {
param
.
put
(
"dataList"
,
changeExecRecords
);
param
.
put
(
"dataList"
,
changeExecRecords
);
String
subjectParam
=
changeRecord
.
getId
().
toString
();
String
subjectParam
=
changeRecord
.
getId
().
toString
();
qcSendEmail
(
changeRecord
.
getChangeCommander
(),
subjectParam
,
qcSendEmail
(
changeRecord
.
getChangeCommander
(),
subjectParam
,
EmailTemplateEnum
.
YX_QC_CHANGE_EXECUTE
,
param
);
EmailTemplateEnum
.
YX_QC_CHANGE_EXECUTE
,
param
);
// 如果是供应商,再次发送供应商邮件
// 如果是供应商,再次发送供应商邮件
if
(
changeRecord
.
getCreateSource
().
equals
(
CreateSourceEnum
.
TONG_ZHOU
.
getType
()))
{
if
(
changeRecord
.
getCreateSource
().
equals
(
CreateSourceEnum
.
TONG_ZHOU
.
getType
()))
{
sendSupplierEmail
.
sendSupplierEmail
(
changeRecord
.
getChangeSupplier
(),
subjectParam
,
sendSupplierEmail
.
sendSupplierEmail
(
changeRecord
.
getChangeSupplier
(),
subjectParam
,
EmailTemplateEnum
.
YX_QC_CHANGE_EXECUTE
,
param
);
EmailTemplateEnum
.
YX_QC_CHANGE_EXECUTE
,
param
);
}
}
return
submitNode
;
return
submitNode
;
case
CHANGE_FLOW_CONFIRM:
case
CHANGE_FLOW_CONFIRM:
...
@@ -564,13 +531,13 @@ public class ChangeFlowBiz {
...
@@ -564,13 +531,13 @@ public class ChangeFlowBiz {
}).
collect
(
Collectors
.
toList
());
}).
collect
(
Collectors
.
toList
());
// 完成直接完结
// 完成直接完结
String
confirmNode
=
flowService
.
submitFlow
(
flowId
.
toString
(),
flowDataDTO
,
uid
,
String
confirmNode
=
flowService
.
submitFlow
(
flowId
.
toString
(),
flowDataDTO
,
uid
,
ChangeFlowEnum
.
CHANGE_FLOW_CONFIRM
.
getTopoId
(),
JSON
.
toJSONString
(
content
),
true
,
ChangeFlowEnum
.
CHANGE_FLOW_CONFIRM
.
getTopoId
(),
JSON
.
toJSONString
(
content
),
true
,
FlowxOperationEnum
.
SUBMIT
.
getName
(),
"提交工单"
);
FlowxOperationEnum
.
SUBMIT
.
getName
(),
"提交工单"
);
changeRecord
.
setState
(
ChangeStatusEnum
.
END
.
getStatus
());
changeRecord
.
setState
(
ChangeStatusEnum
.
END
.
getStatus
());
changeRecord
.
setFlowNode
(
confirmNode
);
changeRecord
.
setFlowNode
(
confirmNode
);
changeRecord
.
setUpdateTime
(
DateUtils
.
getCurrentTime
());
changeRecord
.
setUpdateTime
(
DateUtils
.
getCurrentTime
());
changeFlowService
.
updateRecord
(
changeRecord
);
changeFlowService
.
updateRecord
(
changeRecord
);
changeExecRecordList
.
forEach
(
exec
->
changeFlowExecService
.
update
(
exec
));
changeExecRecordList
.
forEach
(
exec
->
changeFlowExecService
.
update
(
exec
));
todoService
.
progressTodoTask
(
changeRecord
,
OperateTypeEnum
.
FINISH
.
getType
());
todoService
.
progressTodoTask
(
changeRecord
,
OperateTypeEnum
.
FINISH
.
getType
());
// 发送邮件
// 发送邮件
HashMap
<
String
,
Object
>
finishPartMap
=
new
HashMap
<>();
HashMap
<
String
,
Object
>
finishPartMap
=
new
HashMap
<>();
...
@@ -578,8 +545,8 @@ public class ChangeFlowBiz {
...
@@ -578,8 +545,8 @@ public class ChangeFlowBiz {
finishPartMap
.
put
(
"changeSubject"
,
changeRecord
.
getChangeSubject
());
finishPartMap
.
put
(
"changeSubject"
,
changeRecord
.
getChangeSubject
());
finishPartMap
.
put
(
"flowUrl"
,
changeRecord
.
getFlowId
());
finishPartMap
.
put
(
"flowUrl"
,
changeRecord
.
getFlowId
());
ChangeConfigPo
changeConfigPo
=
changeConfigService
ChangeConfigPo
changeConfigPo
=
changeConfigService
.
queryInfoPo
(
changeRecord
.
getParentChangeClassId
(),
changeRecord
.
getSonChangeClassId
());
.
queryInfoPo
(
changeRecord
.
getParentChangeClassId
(),
changeRecord
.
getSonChangeClassId
());
StringBuilder
changeType
=
new
StringBuilder
(
""
);
StringBuilder
changeType
=
new
StringBuilder
();
try
{
try
{
changeType
.
append
(
changeConfigPo
.
getChangeTypes
().
get
(
0
).
getTypeName
());
changeType
.
append
(
changeConfigPo
.
getChangeTypes
().
get
(
0
).
getTypeName
());
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
@@ -592,13 +559,13 @@ public class ChangeFlowBiz {
...
@@ -592,13 +559,13 @@ public class ChangeFlowBiz {
}
}
//【已完结】变更主体+变更内容+工单ID 变更风险行动项已完结,请开始执行变更。
//【已完结】变更主体+变更内容+工单ID 变更风险行动项已完结,请开始执行变更。
String
finishSubjectParam
=
changeRecord
.
getChangeSubject
()
+
changeRecord
.
getChangeContent
()
String
finishSubjectParam
=
changeRecord
.
getChangeSubject
()
+
changeRecord
.
getChangeContent
()
+
changeRecord
.
getId
();
+
changeRecord
.
getId
();
qcSendEmail
(
changeRecord
.
getChangeCommander
(),
finishSubjectParam
,
qcSendEmail
(
changeRecord
.
getChangeCommander
(),
finishSubjectParam
,
EmailTemplateEnum
.
YX_QC_CHANGE_FINISH
,
finishPartMap
);
EmailTemplateEnum
.
YX_QC_CHANGE_FINISH
,
finishPartMap
);
// 如果是供应商,再次发送供应商邮件
// 如果是供应商,再次发送供应商邮件
if
(
changeRecord
.
getCreateSource
().
equals
(
CreateSourceEnum
.
TONG_ZHOU
.
getType
()))
{
if
(
changeRecord
.
getCreateSource
().
equals
(
CreateSourceEnum
.
TONG_ZHOU
.
getType
()))
{
sendSupplierEmail
.
sendSupplierEmail
(
changeRecord
.
getChangeSupplier
(),
finishSubjectParam
,
sendSupplierEmail
.
sendSupplierEmail
(
changeRecord
.
getChangeSupplier
(),
finishSubjectParam
,
EmailTemplateEnum
.
YX_QC_CHANGE_FINISH
,
finishPartMap
);
EmailTemplateEnum
.
YX_QC_CHANGE_FINISH
,
finishPartMap
);
}
}
return
confirmNode
;
return
confirmNode
;
case
CANCEL:
case
CANCEL:
...
@@ -607,8 +574,8 @@ public class ChangeFlowBiz {
...
@@ -607,8 +574,8 @@ public class ChangeFlowBiz {
Assert
.
isTrue
(
StringUtils
.
isNotBlank
(
cancelReason
),
"变更取消原因不可为空"
);
Assert
.
isTrue
(
StringUtils
.
isNotBlank
(
cancelReason
),
"变更取消原因不可为空"
);
changeRecord
.
setCancelReason
(
cancelReason
);
changeRecord
.
setCancelReason
(
cancelReason
);
String
cancelNode
=
flowService
.
submitFlow
(
flowId
.
toString
(),
flowDataDTO
,
uid
,
String
cancelNode
=
flowService
.
submitFlow
(
flowId
.
toString
(),
flowDataDTO
,
uid
,
ChangeFlowEnum
.
CHANGE_FLOW_CONFIRM
.
getTopoId
(),
JSON
.
toJSONString
(
content
),
true
,
ChangeFlowEnum
.
CHANGE_FLOW_CONFIRM
.
getTopoId
(),
JSON
.
toJSONString
(
content
),
true
,
FlowxOperationEnum
.
SUBMIT
.
getName
(),
"提交工单"
);
FlowxOperationEnum
.
SUBMIT
.
getName
(),
"提交工单"
);
changeRecord
.
setState
(
ChangeStatusEnum
.
CANCEL
.
getStatus
());
changeRecord
.
setState
(
ChangeStatusEnum
.
CANCEL
.
getStatus
());
changeRecord
.
setFlowNode
(
cancelNode
);
changeRecord
.
setFlowNode
(
cancelNode
);
changeRecord
.
setUpdateTime
(
DateUtils
.
getCurrentTime
());
changeRecord
.
setUpdateTime
(
DateUtils
.
getCurrentTime
());
...
@@ -623,7 +590,7 @@ public class ChangeFlowBiz {
...
@@ -623,7 +590,7 @@ public class ChangeFlowBiz {
cancelMap
.
put
(
"cancelReason"
,
changeRecord
.
getCancelReason
());
cancelMap
.
put
(
"cancelReason"
,
changeRecord
.
getCancelReason
());
String
cancelSubjectParam
=
changeRecord
.
getId
().
toString
();
String
cancelSubjectParam
=
changeRecord
.
getId
().
toString
();
qcSendEmail
(
changeRecord
.
getChangeCommander
(),
cancelSubjectParam
,
qcSendEmail
(
changeRecord
.
getChangeCommander
(),
cancelSubjectParam
,
EmailTemplateEnum
.
YX_QC_CHANGE_SUBMIT_CANCEL
,
cancelMap
);
EmailTemplateEnum
.
YX_QC_CHANGE_SUBMIT_CANCEL
,
cancelMap
);
// 如果是供应商,再次发送供应商邮件
// 如果是供应商,再次发送供应商邮件
if
(
changeRecord
.
getCreateSource
().
equals
(
CreateSourceEnum
.
TONG_ZHOU
.
getType
()))
{
if
(
changeRecord
.
getCreateSource
().
equals
(
CreateSourceEnum
.
TONG_ZHOU
.
getType
()))
{
sendSupplierEmail
.
sendSupplierEmail
(
changeRecord
.
getChangeSupplier
(),
cancelSubjectParam
,
sendSupplierEmail
.
sendSupplierEmail
(
changeRecord
.
getChangeSupplier
(),
cancelSubjectParam
,
...
@@ -650,7 +617,7 @@ public class ChangeFlowBiz {
...
@@ -650,7 +617,7 @@ public class ChangeFlowBiz {
changeRecord
.
setChangeConfirmResultTime
(
changeConfirmResultTime
);
changeRecord
.
setChangeConfirmResultTime
(
changeConfirmResultTime
);
changeRecord
.
setUpdateTime
(
DateUtils
.
getCurrentTime
());
changeRecord
.
setUpdateTime
(
DateUtils
.
getCurrentTime
());
changeFlowService
.
updateRecord
(
changeRecord
);
changeFlowService
.
updateRecord
(
changeRecord
);
changeExecRecords1
.
forEach
(
exec
->
changeFlowExecService
.
update
(
exec
));
changeExecRecords1
.
forEach
(
exec
->
changeFlowExecService
.
update
(
exec
));
// 变更行动项
// 变更行动项
return
null
;
return
null
;
default
:
default
:
...
@@ -673,7 +640,7 @@ public class ChangeFlowBiz {
...
@@ -673,7 +640,7 @@ public class ChangeFlowBiz {
return
changeRecord
;
return
changeRecord
;
}
}
private
void
checkNode
(
String
recordNode
,
List
<
String
>
checkNode
){
private
void
checkNode
(
String
recordNode
,
List
<
String
>
checkNode
)
{
Optional
<
String
>
nodeOptional
=
checkNode
.
stream
().
filter
(
check
->
check
.
equals
(
recordNode
)).
findAny
();
Optional
<
String
>
nodeOptional
=
checkNode
.
stream
().
filter
(
check
->
check
.
equals
(
recordNode
)).
findAny
();
if
(!
nodeOptional
.
isPresent
())
{
if
(!
nodeOptional
.
isPresent
())
{
throw
ExceptionFactory
.
createBiz
(
ResponseCode
.
NODE_ERROR
,
"工单已流转至其他节点"
);
throw
ExceptionFactory
.
createBiz
(
ResponseCode
.
NODE_ERROR
,
"工单已流转至其他节点"
);
...
@@ -703,8 +670,8 @@ public class ChangeFlowBiz {
...
@@ -703,8 +670,8 @@ public class ChangeFlowBiz {
content
.
put
(
"updateTime"
,
System
.
currentTimeMillis
());
content
.
put
(
"updateTime"
,
System
.
currentTimeMillis
());
content
.
put
(
CommonConstants
.
FLOW_OPERATION_KEY
,
FlowOperationTypeEnum
.
REFUSE
.
getValue
());
content
.
put
(
CommonConstants
.
FLOW_OPERATION_KEY
,
FlowOperationTypeEnum
.
REFUSE
.
getValue
());
String
nextNodeId
=
flowService
.
submitFlow
(
String
.
valueOf
(
flowId
),
flowDataDTO
,
uid
,
String
nextNodeId
=
flowService
.
submitFlow
(
String
.
valueOf
(
flowId
),
flowDataDTO
,
uid
,
ChangeFlowEnum
.
CHANGE_FLOW_SUBMIT
.
getTopoId
(),
JSON
.
toJSONString
(
content
),
false
,
ChangeFlowEnum
.
CHANGE_FLOW_SUBMIT
.
getTopoId
(),
JSON
.
toJSONString
(
content
),
false
,
FlowxOperationEnum
.
APPROVE_FAIL
.
getName
(),
"取消工单"
);
FlowxOperationEnum
.
APPROVE_FAIL
.
getName
(),
"取消工单"
);
log
.
info
(
"[cancel] flowId:{}, nextNodeId:{}"
,
flowId
,
nextNodeId
);
log
.
info
(
"[cancel] flowId:{}, nextNodeId:{}"
,
flowId
,
nextNodeId
);
// 填充更新数据
// 填充更新数据
changeRecord
.
setFlowNode
(
nextNodeId
);
changeRecord
.
setFlowNode
(
nextNodeId
);
...
@@ -723,7 +690,7 @@ public class ChangeFlowBiz {
...
@@ -723,7 +690,7 @@ public class ChangeFlowBiz {
// 如果是供应商,再次发送供应商邮件
// 如果是供应商,再次发送供应商邮件
if
(
changeRecord
.
getCreateSource
().
equals
(
CreateSourceEnum
.
TONG_ZHOU
.
getType
()))
{
if
(
changeRecord
.
getCreateSource
().
equals
(
CreateSourceEnum
.
TONG_ZHOU
.
getType
()))
{
sendSupplierEmail
.
sendSupplierEmail
(
changeRecord
.
getChangeSupplier
(),
cancelSubjectParam
,
sendSupplierEmail
.
sendSupplierEmail
(
changeRecord
.
getChangeSupplier
(),
cancelSubjectParam
,
EmailTemplateEnum
.
YX_QC_CHANGE_SUBMIT_CANCEL
,
cancelMap
);
EmailTemplateEnum
.
YX_QC_CHANGE_SUBMIT_CANCEL
,
cancelMap
);
}
}
return
changeFlowService
.
updateRecord
(
changeRecord
);
return
changeFlowService
.
updateRecord
(
changeRecord
);
}
}
...
@@ -734,11 +701,11 @@ public class ChangeFlowBiz {
...
@@ -734,11 +701,11 @@ public class ChangeFlowBiz {
// 获取附件
// 获取附件
List
<
ChangeFlowFile
>
changeFileList
=
changeFileService
.
getChangeFileList
(
changeRecord
.
getId
());
List
<
ChangeFlowFile
>
changeFileList
=
changeFileService
.
getChangeFileList
(
changeRecord
.
getId
());
return
BasicChangeFlowVO
.
builder
().
parentChangeClassId
(
changeRecord
.
getParentChangeClassId
())
return
BasicChangeFlowVO
.
builder
().
parentChangeClassId
(
changeRecord
.
getParentChangeClassId
())
.
sonChangeClassId
(
changeRecord
.
getSonChangeClassId
()).
changeSubject
(
changeRecord
.
getChangeSubject
())
.
sonChangeClassId
(
changeRecord
.
getSonChangeClassId
()).
changeSubject
(
changeRecord
.
getChangeSubject
())
.
changeItem
(
changeRecord
.
getChangeItem
()).
changeSupplier
(
changeRecord
.
getChangeSupplier
())
.
changeItem
(
changeRecord
.
getChangeItem
()).
changeSupplier
(
changeRecord
.
getChangeSupplier
())
.
changeReason
(
changeRecord
.
getChangeReason
()).
changeContent
(
changeRecord
.
getChangeContent
())
.
changeReason
(
changeRecord
.
getChangeReason
()).
changeContent
(
changeRecord
.
getChangeContent
())
.
changeRiskDesc
(
changeRecord
.
getChangeRiskDesc
()).
changeProfit
(
changeRecord
.
getChangeProfit
())
.
changeRiskDesc
(
changeRecord
.
getChangeRiskDesc
()).
changeProfit
(
changeRecord
.
getChangeProfit
())
.
changeProfitDesc
(
changeRecord
.
getChangeProfitDesc
()).
files
(
changeFileList
).
build
();
.
changeProfitDesc
(
changeRecord
.
getChangeProfitDesc
()).
files
(
changeFileList
).
build
();
}
}
public
ChangeFlowVO
detail
(
Long
flowId
)
{
public
ChangeFlowVO
detail
(
Long
flowId
)
{
...
@@ -784,14 +751,14 @@ public class ChangeFlowBiz {
...
@@ -784,14 +751,14 @@ public class ChangeFlowBiz {
List
<
Long
>
itemIds
=
itemList
.
stream
().
map
(
ItemVO:
:
getItemId
).
collect
(
Collectors
.
toList
());
List
<
Long
>
itemIds
=
itemList
.
stream
().
map
(
ItemVO:
:
getItemId
).
collect
(
Collectors
.
toList
());
// 批量查询spu信息
// 批量查询spu信息
List
<
SpuTO
>
spuTOS
=
itemService
.
batchQuerySpuInfo
(
BatchQuerySpuInfoParam
.
builder
().
ids
(
itemIds
)
List
<
SpuTO
>
spuTOS
=
itemService
.
batchQuerySpuInfo
(
BatchQuerySpuInfoParam
.
builder
().
ids
(
itemIds
)
.
commonProps
(
new
ArrayList
<>()).
spuProps
(
Arrays
.
asList
(
"itemSetupType"
,
"+"
)).
build
());
.
commonProps
(
new
ArrayList
<>()).
spuProps
(
Arrays
.
asList
(
"itemSetupType"
,
"+"
)).
build
());
log
.
debug
(
"[detail] spuTOS:{}"
,
JSON
.
toJSONString
(
spuTOS
));
log
.
debug
(
"[detail] spuTOS:{}"
,
JSON
.
toJSONString
(
spuTOS
));
// 批量查询物理类目
// 批量查询物理类目
Map
<
Long
,
List
<
SimplePhyCateGoryResultCo
>>
categoryChain
=
itemService
Map
<
Long
,
List
<
SimplePhyCateGoryResultCo
>>
categoryChain
=
itemService
.
queryBySpuIds
(
CommonIdsParamQuery
.
builder
().
ids
(
itemIds
).
build
());
.
queryBySpuIds
(
CommonIdsParamQuery
.
builder
().
ids
(
itemIds
).
build
());
// 查询商品对应负责人信息
// 查询商品对应负责人信息
Map
<
Long
,
ChangeGoodsPrincipalPO
>
longChangeGoodsPrincipalPOMap
=
interiorChangeConfigService
Map
<
Long
,
ChangeGoodsPrincipalPO
>
longChangeGoodsPrincipalPOMap
=
interiorChangeConfigService
.
queryGoodsPrincipalInfo
(
itemIds
);
.
queryGoodsPrincipalInfo
(
itemIds
);
List
<
ItemBasicInfoVO
>
itemBasicInfoVOS
=
itemList
.
stream
().
map
(
itemVO
->
{
List
<
ItemBasicInfoVO
>
itemBasicInfoVOS
=
itemList
.
stream
().
map
(
itemVO
->
{
ItemBasicInfoVO
itemBasicInfoVO
=
new
ItemBasicInfoVO
();
ItemBasicInfoVO
itemBasicInfoVO
=
new
ItemBasicInfoVO
();
Long
itemId
=
itemVO
.
getItemId
();
Long
itemId
=
itemVO
.
getItemId
();
...
@@ -852,16 +819,44 @@ public class ChangeFlowBiz {
...
@@ -852,16 +819,44 @@ public class ChangeFlowBiz {
changeFlowVO
.
setChangeResult
(
changeRecord
.
getChangeResult
());
changeFlowVO
.
setChangeResult
(
changeRecord
.
getChangeResult
());
changeFlowVO
.
setChangeResultDesc
(
changeRecord
.
getChangeResultDesc
());
changeFlowVO
.
setChangeResultDesc
(
changeRecord
.
getChangeResultDesc
());
changeFlowVO
.
setTopoId
(
ChangeFlowEnum
.
CHANGE_FLOW
.
getTopoId
());
changeFlowVO
.
setTopoId
(
ChangeFlowEnum
.
CHANGE_FLOW
.
getTopoId
());
try
{
Set
<
String
>
commanderList
=
new
HashSet
<>();
commanderList
.
add
(
changeRecord
.
getChangeCommander
());
commanderList
.
add
(
changeRecord
.
getCreator
());
IusDepartmentReq
iusDepartmentReq
=
new
IusDepartmentReq
();
iusDepartmentReq
.
setUids
(
new
ArrayList
<>(
commanderList
));
HashMap
<
String
,
List
<
SecondaryDepartments
>>
orgMap
=
iusService
.
queryDepartment
(
iusDepartmentReq
);
List
<
SecondaryDepartments
>
commander
=
orgMap
.
get
(
changeRecord
.
getChangeCommander
());
List
<
SecondaryDepartments
>
creator
=
orgMap
.
get
(
changeRecord
.
getCreator
());
if
(!
CollectionUtils
.
isEmpty
(
commander
))
{
Optional
<
SecondaryDepartments
>
anyOrg
=
commander
.
stream
().
filter
(
o
->
o
.
getOrgPosLevel
()
==
3
).
findAny
();
String
orgName
=
"无三级部门"
;
if
(
anyOrg
.
isPresent
())
{
orgName
=
anyOrg
.
get
().
getOrgPosName
();
}
changeFlowVO
.
setChangeCommanderView
(
commander
.
get
(
0
).
getUserName
()
+
"("
+
orgName
+
")"
);
}
if
(!
CollectionUtils
.
isEmpty
(
creator
))
{
Optional
<
SecondaryDepartments
>
anyOrg
=
creator
.
stream
().
filter
(
o
->
o
.
getOrgPosLevel
()
==
3
).
findAny
();
String
orgName
=
"无三级部门"
;
if
(
anyOrg
.
isPresent
())
{
orgName
=
anyOrg
.
get
().
getOrgPosName
();
}
changeFlowVO
.
setChangeCreatorView
(
creator
.
get
(
0
).
getUserName
()
+
"("
+
orgName
+
")"
);
}
}
catch
(
Exception
ex
)
{
log
.
error
(
"add org has ex"
,
ex
);
}
return
changeFlowVO
;
return
changeFlowVO
;
}
}
public
ChangeFlowListVO
query
(
Integer
page
,
Integer
pageSize
,
ChangeFlowListQueryReq
changeFlowListQueryReq
)
{
public
ChangeFlowListVO
query
(
Integer
page
,
Integer
pageSize
,
ChangeFlowListQueryReq
changeFlowListQueryReq
)
{
log
.
info
(
"[query] page:{}, pageSize:{}, changeFlowListQueryReq:{}"
,
page
,
pageSize
,
log
.
info
(
"[query] page:{}, pageSize:{}, changeFlowListQueryReq:{}"
,
page
,
pageSize
,
JSON
.
toJSONString
(
changeFlowListQueryReq
));
JSON
.
toJSONString
(
changeFlowListQueryReq
));
//进行分页
//进行分页
PageHelper
.
startPage
(
page
,
pageSize
);
PageHelper
.
startPage
(
page
,
pageSize
);
PageInfo
<
ChangeRecord
>
changeRecordPageInfo
=
new
PageInfo
<>(
PageInfo
<
ChangeRecord
>
changeRecordPageInfo
=
new
PageInfo
<>(
changeRecordMapper
.
selectByCondition
(
changeFlowListQueryReq
));
changeRecordMapper
.
selectByCondition
(
changeFlowListQueryReq
));
List
<
ChangeRecord
>
changeRecords
=
changeRecordPageInfo
.
getList
();
List
<
ChangeRecord
>
changeRecords
=
changeRecordPageInfo
.
getList
();
List
<
ChangeFlowVO
>
list
=
new
ArrayList
<>();
List
<
ChangeFlowVO
>
list
=
new
ArrayList
<>();
// 处理数据
// 处理数据
...
@@ -1049,7 +1044,7 @@ public class ChangeFlowBiz {
...
@@ -1049,7 +1044,7 @@ public class ChangeFlowBiz {
log
.
info
(
"[deliver] nodeId:{}"
,
changeRecord
.
getFlowNode
());
log
.
info
(
"[deliver] nodeId:{}"
,
changeRecord
.
getFlowNode
());
// 检查工单节点
// 检查工单节点
List
<
String
>
nodeList
=
Arrays
.
asList
(
ChangeFlowEnum
.
CHANGE_FLOW_SUBMIT
.
getNodeId
(),
List
<
String
>
nodeList
=
Arrays
.
asList
(
ChangeFlowEnum
.
CHANGE_FLOW_SUBMIT
.
getNodeId
(),
ChangeFlowEnum
.
CHANGE_FLOW_CONFIRM
.
getNodeId
());
ChangeFlowEnum
.
CHANGE_FLOW_CONFIRM
.
getNodeId
());
this
.
checkNode
(
changeRecord
.
getFlowNode
(),
nodeList
);
this
.
checkNode
(
changeRecord
.
getFlowNode
(),
nodeList
);
String
uid
=
RequestLocalBean
.
getUid
();
String
uid
=
RequestLocalBean
.
getUid
();
String
changeCommander
=
changeRecord
.
getChangeCommander
();
String
changeCommander
=
changeRecord
.
getChangeCommander
();
...
...
yanxuan-qc-change-system-dal/src/main/java/com/netease/mail/yanxuan/change/dal/meta/model/vo/ChangeFlowVO.java
View file @
486a483e
...
@@ -83,6 +83,11 @@ public class ChangeFlowVO {
...
@@ -83,6 +83,11 @@ public class ChangeFlowVO {
private
String
changeCommander
;
private
String
changeCommander
;
/**
/**
* 名称+部门
*/
private
String
changeCommanderView
;
/**
* 变更潜在风险描述
* 变更潜在风险描述
*/
*/
private
String
changeRiskDesc
;
private
String
changeRiskDesc
;
...
@@ -118,6 +123,11 @@ public class ChangeFlowVO {
...
@@ -118,6 +123,11 @@ public class ChangeFlowVO {
* 变更发起人
* 变更发起人
*/
*/
private
String
changeCreator
;
private
String
changeCreator
;
/**
* 名称+部门
*/
private
String
changeCreatorView
;
/**
/**
* 变更行动方案
* 变更行动方案
*/
*/
...
...
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