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
740963d5
Commit
740963d5
authored
Nov 24, 2022
by
“zcwang”
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add: 定时任务执行
parent
88e265ee
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
154 additions
and
9 deletions
+154
-9
pom.xml
pom.xml
+11
-0
ChangeFlowBiz.java
...om/netease/mail/yanxuan/change/biz/biz/ChangeFlowBiz.java
+18
-7
ChangeFlowService.java
...se/mail/yanxuan/change/biz/service/ChangeFlowService.java
+12
-0
ChangeFlowServiceImpl.java
...anxuan/change/biz/service/impl/ChangeFlowServiceImpl.java
+8
-0
AutoSubmit.java
.../com/netease/mail/yanxuan/change/biz/task/AutoSubmit.java
+101
-0
ChangeRecordMapper.java
...se/mail/yanxuan/change/dal/mapper/ChangeRecordMapper.java
+4
-2
No files found.
pom.xml
View file @
740963d5
...
...
@@ -378,6 +378,17 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
com.netease.mail.yanxuan
</groupId>
<artifactId>
dschedule-boot-starter
</artifactId>
<version>
1.0.6-RELEASE
</version>
<exclusions>
<exclusion>
<artifactId>
fastjson
</artifactId>
<groupId>
com.alibaba
</groupId>
</exclusion>
</exclusions>
</dependency>
<!--qc -->
<!-- <dependency>-->
<!-- <groupId>com.netease.yanxuan</groupId>-->
...
...
yanxuan-qc-change-system-biz/src/main/java/com/netease/mail/yanxuan/change/biz/biz/ChangeFlowBiz.java
View file @
740963d5
...
...
@@ -8,6 +8,7 @@ package com.netease.mail.yanxuan.change.biz.biz;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -232,7 +233,7 @@ public class ChangeFlowBiz {
}
}
p
rivate
FlowDataDTO
flowDetail
(
String
flowId
)
{
p
ublic
FlowDataDTO
flowDetail
(
String
flowId
)
{
// 查询工单详情,根据详情提交
FlowDataDTO
flowDataDTO
;
AjaxResponse
<
FlowDataDTO
>
flowDetailResponse
=
flowRpcService
.
getDetail
(
CommonConstants
.
FLOWX_PRODUCT
,
flowId
);
...
...
@@ -258,7 +259,7 @@ public class ChangeFlowBiz {
return
flowCreateReqDTO
;
}
p
rivate
String
submitFlow
(
String
flowId
,
FlowDataDTO
flowDataDTO
,
String
uid
,
String
topoId
,
String
content
)
{
p
ublic
String
submitFlow
(
String
flowId
,
FlowDataDTO
flowDataDTO
,
String
uid
,
String
topoId
,
String
content
)
{
NodeSubmitReqDTO
nodeSubmitReqDTO
=
new
NodeSubmitReqDTO
();
nodeSubmitReqDTO
.
setFlowId
(
flowId
);
nodeSubmitReqDTO
.
setNodeId
(
flowDataDTO
.
getFlowMeta
().
getCurrNodeDataList
().
get
(
0
).
getNodeId
());
...
...
@@ -661,15 +662,25 @@ public class ChangeFlowBiz {
// 根据工单flowId获取审批人,创建工单时设置,唯一
String
flowId
=
interfaceInput
.
getPublicFieldDTO
().
getFlowMeta
().
getFlowId
();
String
nodeId
=
interfaceInput
.
getPublicFieldDTO
().
getFlowMeta
().
getCurrNodeDataList
().
get
(
0
).
getNodeId
();
ChangeRecord
changeRecord
=
changeFlowService
.
getByFlowId
(
Long
.
valueOf
(
flowId
));
String
changeCommander
=
changeRecord
.
getChangeCommander
();
if
(
null
==
changeCommander
)
{
throw
ExceptionFactory
.
createBiz
(
ResponseCode
.
OPERATOR_NOT_EXIST
,
ResponseCode
.
OPERATOR_NOT_EXIST
.
getMsg
());
log
.
info
(
"[getOperator] flowId:{}, nodeId:{}"
,
flowId
,
nodeId
);
ChangeRecord
changeRecord
;
changeRecord
=
changeFlowService
.
getByFlowId
(
Long
.
valueOf
(
flowId
));
log
.
info
(
"[getOperator] first time get changeCommander:{}"
,
changeRecord
);
// 创建工单后落库,此时审批人还未落库,工单平台无法查询到审批人,方法休眠500ms
if
(
changeRecord
==
null
)
{
try
{
Thread
.
sleep
(
500
);
changeRecord
=
changeFlowService
.
getByFlowId
(
Long
.
valueOf
(
flowId
));
log
.
info
(
"[getOperator] second time get changeCommander:{}"
,
changeRecord
);
}
catch
(
Exception
e
)
{
log
.
info
(
"[getOperator] flowId:{}, nodeId:{}, e={}"
,
flowId
,
nodeId
,
e
);
}
}
String
changeCommander
=
changeRecord
.
getChangeCommander
();
UserReachDTO
userReachDTO
=
new
UserReachDTO
();
userReachDTO
.
setUserName
(
changeCommander
);
userReachDTO
.
setUid
(
changeCommander
);
List
<
UserReachDTO
>
totalUserList
=
Arrays
.
as
List
(
userReachDTO
);
List
<
UserReachDTO
>
totalUserList
=
Collections
.
singleton
List
(
userReachDTO
);
UserBaseContainerDTO
userBaseContainer
=
new
UserBaseContainerDTO
();
userBaseContainer
.
setUserList
(
totalUserList
);
return
userBaseContainer
;
...
...
yanxuan-qc-change-system-biz/src/main/java/com/netease/mail/yanxuan/change/biz/service/ChangeFlowService.java
View file @
740963d5
...
...
@@ -50,4 +50,15 @@ public interface ChangeFlowService {
* @return
*/
ChangeRecord
getById
(
Long
id
);
/**
* 根据状态及时间获取数据
*
* @param entityId
* @param nodeId1
* @param nodeId2
* @param currentTime
* @return
*/
List
<
ChangeRecord
>
getByStatusAndTime
(
Long
entityId
,
String
nodeId1
,
String
nodeId2
,
long
currentTime
);
}
\ No newline at end of file
yanxuan-qc-change-system-biz/src/main/java/com/netease/mail/yanxuan/change/biz/service/impl/ChangeFlowServiceImpl.java
View file @
740963d5
...
...
@@ -6,6 +6,8 @@
*/
package
com
.
netease
.
mail
.
yanxuan
.
change
.
biz
.
service
.
impl
;
import
java.util.List
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -52,4 +54,9 @@ public class ChangeFlowServiceImpl implements ChangeFlowService {
public
ChangeRecord
getById
(
Long
id
)
{
return
changeRecordMapper
.
selectByPrimaryKey
(
id
);
}
@Override
public
List
<
ChangeRecord
>
getByStatusAndTime
(
Long
entityId
,
String
nodeId1
,
String
nodeId2
,
long
currentTime
)
{
return
changeRecordMapper
.
getByStatusAndTime
(
entityId
,
nodeId1
,
nodeId2
,
currentTime
);
}
}
\ No newline at end of file
yanxuan-qc-change-system-biz/src/main/java/com/netease/mail/yanxuan/change/biz/task/AutoSubmit.java
0 → 100644
View file @
740963d5
/**
* @(#)AutoSubmit.java, 2022/11/24.
* <p/>
* Copyright 2022 Netease, Inc. All rights reserved.
* NETEASE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package
com
.
netease
.
mail
.
yanxuan
.
change
.
biz
.
task
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
com.alibaba.fastjson.JSON
;
import
com.netease.mail.yanxuan.change.biz.biz.ChangeFlowBiz
;
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.common.bean.CommonConstants
;
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.ChangeStatusEnum
;
import
com.netease.mail.yanxuan.change.common.enums.FlowOperationTypeEnum
;
import
com.netease.mail.yanxuan.change.common.util.DateUtils
;
import
com.netease.mail.yanxuan.change.dal.entity.ChangeRecord
;
import
com.netease.mail.yanxuan.dschedule.core.biz.model.ReturnT
;
import
com.netease.mail.yanxuan.dschedule.core.handler.IJobHandler
;
import
com.netease.mail.yanxuan.dschedule.core.handler.annotation.JobHandler
;
import
com.netease.yanxuan.flowx.sdk.meta.dto.base.FlowDataDTO
;
import
lombok.extern.slf4j.Slf4j
;
/**
* @Author zcwang
* @Date 2022/11/24
*/
@Component
@Slf4j
@JobHandler
(
"AutoSubmit"
)
public
class
AutoSubmit
extends
IJobHandler
{
@Autowired
private
ChangeFlowService
changeFlowService
;
@Autowired
private
ChangeFlowBiz
changeFlowBiz
;
@Override
public
ReturnT
<
String
>
execute
(
String
...
strings
)
throws
Exception
{
log
.
info
(
"AutoSubmit start"
);
// 查询今天时间之前的数据
long
currentTime
=
DateUtils
.
getCurrentTime
();
Long
entityId
=
0L
;
while
(
true
)
{
List
<
ChangeRecord
>
records
=
changeFlowService
.
getByStatusAndTime
(
entityId
,
ChangeFlowEnum
.
CHANGE_FLOW_EXE
.
getNodeId
(),
ChangeFlowEnum
.
CHANGE_FLOW_CONFIRM
.
getNodeId
(),
currentTime
);
if
(
CollectionUtils
.
isEmpty
(
records
))
{
break
;
}
records
.
forEach
(
this
::
progressRecord
);
List
<
Long
>
idList
=
records
.
stream
().
map
(
ChangeRecord:
:
getId
).
collect
(
Collectors
.
toList
());
entityId
=
idList
.
stream
().
max
(
Long:
:
compare
).
get
();
}
return
null
;
}
private
void
progressRecord
(
ChangeRecord
changeRecord
)
{
Long
flowId
=
changeRecord
.
getFlowId
();
String
flowNode
=
changeRecord
.
getFlowNode
();
String
uid
=
changeRecord
.
getChangeCommander
();
// 执行变更节点,提交节点
if
(
ChangeFlowEnum
.
CHANGE_FLOW_EXE
.
getNodeId
().
equals
(
flowNode
))
{
// 获取工单详情
FlowDataDTO
flowDataDTO
=
changeFlowBiz
.
flowDetail
(
flowId
.
toString
());
if
(
flowDataDTO
==
null
)
{
log
.
debug
(
"[progressRecord] get flowDataDTO error, flowId{}"
,
flowId
);
}
// 工单流传
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
());
try
{
String
execNode
=
changeFlowBiz
.
submitFlow
(
flowId
.
toString
(),
flowDataDTO
,
uid
,
ChangeFlowEnum
.
CHANGE_FLOW_EXE
.
getTopoId
(),
JSON
.
toJSONString
(
content
));
// 更新工单数据
changeRecord
.
setFlowNode
(
execNode
);
changeRecord
.
setUpdateTime
(
DateUtils
.
getCurrentTime
());
changeFlowService
.
updateRecord
(
changeRecord
);
// todo: 发送邮件
}
catch
(
Exception
e
)
{
log
.
debug
(
"[progressRecord] submit error, flowId{}"
,
flowId
);
}
}
else
if
(
ChangeFlowEnum
.
CHANGE_FLOW_CONFIRM
.
getNodeId
().
equals
(
flowNode
))
{
// todo: 发送邮件
}
}
}
\ No newline at end of file
yanxuan-qc-change-system-dal/src/main/java/com/netease/mail/yanxuan/change/dal/mapper/ChangeRecordMapper.java
View file @
740963d5
...
...
@@ -26,4 +26,7 @@ public interface ChangeRecordMapper extends tk.mybatis.mapper.common.Mapper<Chan
ChangeRecord
selectByFlowId
(
@Param
(
"flowId"
)
Long
flowId
);
List
<
ChangeRecord
>
selectByCondition
(
ChangeFlowListQueryReq
changeFlowListQueryReq
);
}
\ No newline at end of file
@Select
(
"select * from TB_YX_QC_CHANGE_RECORD where id > #{entityId} and `flowNode` in (#{nodeId1}, #{nodeId2}) and changeConfirmResultTime <= #{currentTime} limit 200"
)
List
<
ChangeRecord
>
getByStatusAndTime
(
Long
entityId
,
String
nodeId1
,
String
nodeId2
,
long
currentTime
);
}
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