Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
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
项目统一框架
amos-boot-biz
Commits
acae44b5
Commit
acae44b5
authored
Nov 01, 2021
by
xinglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
*)消防监督流程发送消息
parent
c21a500e
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
131 additions
and
33 deletions
+131
-33
WorkFlowEnum.java
.../com/yeejoin/amos/boot/biz/common/enums/WorkFlowEnum.java
+2
-1
PlanAuditServiceImpl.java
...pervision/business/service/impl/PlanAuditServiceImpl.java
+4
-2
PlanServiceImpl.java
...os/supervision/business/service/impl/PlanServiceImpl.java
+61
-23
PlanTaskServiceImpl.java
...upervision/business/service/impl/PlanTaskServiceImpl.java
+1
-1
AsyncTask.java
...va/com/yeejoin/amos/supervision/core/async/AsyncTask.java
+63
-6
No files found.
amos-boot-biz-common/src/main/java/com/yeejoin/amos/boot/biz/common/enums/WorkFlowEnum.java
View file @
acae44b5
...
...
@@ -18,7 +18,8 @@ public enum WorkFlowEnum {
GROUPNAME
(
"groupName"
,
"角色组的key"
),
NAME
(
"name"
,
"任务节点的key"
),
PROCESSINSTANCEID
(
"processInstanceId"
,
""
),
ASSIGN
(
"assignee"
,
"角色执行人key"
);
ASSIGN
(
"assignee"
,
"角色执行人key"
),
INFORMERLIST
(
"informerList"
,
"用户信息集合"
);
private
String
code
;
//对应菜单组件名称
private
String
desc
;
//描述
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-supervision-biz/src/main/java/com/yeejoin/amos/supervision/business/service/impl/PlanAuditServiceImpl.java
View file @
acae44b5
package
com
.
yeejoin
.
amos
.
supervision
.
business
.
service
.
impl
;
import
com.alibaba.fastjson.JSONObject
;
import
com.yeejoin.amos.boot.biz.common.bo.ReginParams
;
import
com.yeejoin.amos.boot.biz.common.service.IWorkflowExcuteService
;
import
com.yeejoin.amos.boot.biz.common.workflow.feign.WorkflowFeignService
;
...
...
@@ -22,7 +21,6 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -44,6 +42,9 @@ public class PlanAuditServiceImpl implements IPlanAuditService {
@Autowired
WorkflowFeignService
workflowFeignService
;
@Autowired
private
PlanServiceImpl
planService
;
@Override
@Transactional
public
Boolean
auditWorkFlow
(
PlanAuditLog
planAuditLog
,
Integer
status
,
String
condition
,
ReginParams
reginParams
)
throws
Exception
{
...
...
@@ -72,6 +73,7 @@ public class PlanAuditServiceImpl implements IPlanAuditService {
planAuditLog
.
setFlowJson
(
condition
);
planAuditLog
.
setRoleName
(
roleName
);
planAuditLogDao
.
save
(
planAuditLog
);
planService
.
getUserIdsByWorkflow
(
plan
,
instanceId
);
return
Boolean
.
TRUE
;
}
}
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-supervision-biz/src/main/java/com/yeejoin/amos/supervision/business/service/impl/PlanServiceImpl.java
View file @
acae44b5
package
com
.
yeejoin
.
amos
.
supervision
.
business
.
service
.
impl
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.toolkit.Sequence
;
import
com.google.common.base.Joiner
;
import
com.yeejoin.amos.boot.biz.common.bo.ReginParams
;
import
com.yeejoin.amos.boot.biz.common.enums.WorkFlowEnum
;
import
com.yeejoin.amos.boot.biz.common.service.IWorkflowExcuteService
;
import
com.yeejoin.amos.boot.biz.common.workflow.feign.WorkflowFeignService
;
import
com.yeejoin.amos.feign.privilege.model.AgencyUserModel
;
import
com.yeejoin.amos.supervision.business.constants.XJConstant
;
import
com.yeejoin.amos.supervision.business.dao.mapper.PlanMapper
;
...
...
@@ -15,6 +19,7 @@ import com.yeejoin.amos.supervision.common.enums.CheckTypeSuEnum;
import
com.yeejoin.amos.supervision.common.enums.DangerCheckTypeLevelEnum
;
import
com.yeejoin.amos.supervision.common.enums.PlanStatusEnum
;
import
com.yeejoin.amos.supervision.common.enums.WorkFlowBranchEnum
;
import
com.yeejoin.amos.supervision.core.async.AsyncTask
;
import
com.yeejoin.amos.supervision.core.common.request.AddPlanRequest
;
import
com.yeejoin.amos.supervision.core.common.response.PlanPointRespone
;
import
com.yeejoin.amos.supervision.core.util.DateUtil
;
...
...
@@ -30,6 +35,7 @@ import org.springframework.data.domain.PageImpl;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.ObjectUtils
;
import
org.typroject.tyboot.core.foundation.context.RequestContext
;
import
java.time.format.DateTimeFormatter
;
import
java.time.temporal.TemporalAccessor
;
...
...
@@ -74,6 +80,12 @@ public class PlanServiceImpl implements IPlanService {
private
IWorkflowExcuteService
workflowExcuteService
;
@Autowired
private
AsyncTask
asyncTask
;
@Autowired
WorkflowFeignService
workflowFeignService
;
@Autowired
private
IPlanAuditDao
planAuditDao
;
@Autowired
...
...
@@ -132,38 +144,38 @@ public class PlanServiceImpl implements IPlanService {
public
void
addPlan
(
HashMap
<
String
,
Object
>
map
,
ReginParams
reginParams
)
throws
Exception
{
// 新增路线
AddPlanRequest
addPlanRequest
=
(
AddPlanRequest
)
map
.
get
(
"param"
);
Plan
p
aram
=
addPlanRequest
.
getPlan
();
Plan
p
lan
=
addPlanRequest
.
getPlan
();
ReginParams
.
PersonIdentity
personIdentity
=
reginParams
.
getPersonIdentity
();
String
orgCode
=
map
.
get
(
"org_code"
)
==
null
?
""
:
map
.
get
(
"org_code"
).
toString
();
String
userId
=
personIdentity
.
getPersonSeq
();
p
aram
.
setOrgCode
(
orgCode
);
p
aram
.
setNextGenDate
(
DateUtil
.
getIntervalDate
(
new
Date
(),
0
));
p
aram
.
setCreateBy
(
userId
);
addPlanRequest
.
setPlan
(
p
aram
);
p
lan
.
setOrgCode
(
orgCode
);
p
lan
.
setNextGenDate
(
DateUtil
.
getIntervalDate
(
new
Date
(),
0
));
p
lan
.
setCreateBy
(
userId
);
addPlanRequest
.
setPlan
(
p
lan
);
Route
route
=
save
(
addPlanRequest
);
if
(!
ObjectUtils
.
isEmpty
(
route
))
{
p
aram
.
setRouteId
(
route
.
getId
());
p
lan
.
setRouteId
(
route
.
getId
());
//编辑计划
if
(
p
aram
.
getId
()
>
0
)
{
Plan
oriPlan
=
planDao
.
findById
(
p
aram
.
getId
()).
get
();
p
aram
.
setCreateDate
(
oriPlan
.
getCreateDate
());
p
aram
.
setCreateBy
(
oriPlan
.
getCreateBy
());
p
aram
.
setLastUpdBy
(
userId
);
p
aram
.
setFirstFlag
(
XJConstant
.
PLAN_FIRST_STATUS_YES
);
if
(
p
lan
.
getId
()
>
0
)
{
Plan
oriPlan
=
planDao
.
findById
(
p
lan
.
getId
()).
get
();
p
lan
.
setCreateDate
(
oriPlan
.
getCreateDate
());
p
lan
.
setCreateBy
(
oriPlan
.
getCreateBy
());
p
lan
.
setLastUpdBy
(
userId
);
p
lan
.
setFirstFlag
(
XJConstant
.
PLAN_FIRST_STATUS_YES
);
}
if
(
XJConstant
.
FIX_DATE_NO
.
equals
(
p
aram
.
getIsFixedDate
())
&&
(
XJConstant
.
PLAN_TYPE_MONTH
.
equals
(
param
.
getPlanType
())
||
XJConstant
.
PLAN_TYPE_YEAR
.
equals
(
param
.
getPlanType
())))
{
p
aram
.
setDayBegin
(
DateUtil
.
formatStrToTime
(
"00:00:00"
));
p
aram
.
setDayEnd
(
DateUtil
.
formatStrToTime
(
"23:59:59"
));
if
(
XJConstant
.
FIX_DATE_NO
.
equals
(
p
lan
.
getIsFixedDate
())
&&
(
XJConstant
.
PLAN_TYPE_MONTH
.
equals
(
plan
.
getPlanType
())
||
XJConstant
.
PLAN_TYPE_YEAR
.
equals
(
plan
.
getPlanType
())))
{
p
lan
.
setDayBegin
(
DateUtil
.
formatStrToTime
(
"00:00:00"
));
p
lan
.
setDayEnd
(
DateUtil
.
formatStrToTime
(
"23:59:59"
));
}
planDao
.
save
(
p
aram
);
Integer
status
=
p
aram
.
getStatus
();
planDao
.
save
(
p
lan
);
Integer
status
=
p
lan
.
getStatus
();
if
(
status
!=
null
&&
status
==
1
)
{
CheckTypeSuEnum
checkTypeSuEnum
=
CheckTypeSuEnum
.
getEumByCode
(
p
aram
.
getCheckTypeId
());
DangerCheckTypeLevelEnum
levelEnum
=
DangerCheckTypeLevelEnum
.
getEumByCode
(
p
aram
.
getCheckLevel
());
CheckTypeSuEnum
checkTypeSuEnum
=
CheckTypeSuEnum
.
getEumByCode
(
p
lan
.
getCheckTypeId
());
DangerCheckTypeLevelEnum
levelEnum
=
DangerCheckTypeLevelEnum
.
getEumByCode
(
p
lan
.
getCheckLevel
());
String
branch
=
workFlowExcuteBranch
(
levelEnum
.
getCondition
(),
checkTypeSuEnum
.
getCondition
());
try
{
String
processInstanceId
;
PlanAudit
audit
=
planAuditDao
.
findByPlanId
(
p
aram
.
getId
());
PlanAudit
audit
=
planAuditDao
.
findByPlanId
(
p
lan
.
getId
());
if
(
audit
!=
null
)
{
//执行一步
processInstanceId
=
audit
.
getProcessInstanceId
();
...
...
@@ -171,20 +183,22 @@ public class PlanServiceImpl implements IPlanService {
//更新时间
audit
.
setUpdateDate
(
new
Date
());
planAuditDao
.
save
(
audit
);
this
.
getUserIdsByWorkflow
(
plan
,
processInstanceId
);
//记录执行流水-启动节点
insertAuditLog
(
reginParams
,
p
aram
,
personIdentity
,
audit
);
insertAuditLog
(
reginParams
,
p
lan
,
personIdentity
,
audit
);
}
else
{
//启动
processInstanceId
=
workflowExcuteService
.
startAndComplete
(
processDefinitionKey
,
branch
);
audit
=
new
PlanAudit
();
audit
.
setPlanId
(
p
aram
.
getId
());
audit
.
setPlanId
(
p
lan
.
getId
());
audit
.
setBusinessKey
(
String
.
valueOf
(
sequence
.
nextId
()));
audit
.
setProcessDefinitionKey
(
processDefinitionKey
);
audit
.
setProcessInstanceId
(
processInstanceId
);
audit
.
setStartUserId
(
userId
);
planAuditDao
.
save
(
audit
);
//记录执行流水-启动节点
insertAuditLog
(
reginParams
,
param
,
personIdentity
,
audit
);
insertAuditLog
(
reginParams
,
plan
,
personIdentity
,
audit
);
this
.
getUserIdsByWorkflow
(
plan
,
processInstanceId
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"=============防火监督,计划提交,工作流启动失败!!!============="
);
...
...
@@ -193,6 +207,30 @@ public class PlanServiceImpl implements IPlanService {
}
}
/**
* 根据工作流获取下一审核人角色下的所有用户ID
* @return
*/
protected
List
<
String
>
getUserIdsByWorkflow
(
Plan
plan
,
String
processInstanceId
){
List
<
String
>
userIds
=
new
ArrayList
<>();
JSONObject
teskObject
=
workflowFeignService
.
getTaskList
(
processInstanceId
);
JSONArray
taskDetailArray
=
teskObject
.
getJSONArray
(
WorkFlowEnum
.
DATA
.
getCode
());
for
(
Object
obj
:
taskDetailArray
)
{
JSONObject
detail
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
obj
));
JSONArray
informerList
=
detail
.
getJSONArray
(
WorkFlowEnum
.
INFORMERLIST
.
getCode
());
if
(
informerList
.
size
()
>
0
)
{
userIds
=
informerList
.
stream
().
map
(
item
->
{
JSONObject
jsonItem
=
(
JSONObject
)
item
;
return
jsonItem
.
getString
(
"userId"
);
}).
collect
(
Collectors
.
toList
());
asyncTask
.
sendAddPlanMsg
(
RequestContext
.
cloneRequestContext
(),
plan
,
userIds
,
true
,
false
);
}
else
{
asyncTask
.
sendPlanMsgToLeadPeople
(
RequestContext
.
cloneRequestContext
(),
plan
);
}
}
return
userIds
;
}
private
void
insertAuditLog
(
ReginParams
reginParams
,
Plan
param
,
ReginParams
.
PersonIdentity
personIdentity
,
PlanAudit
audit
)
{
PlanAuditLog
planAuditLog
=
new
PlanAuditLog
();
planAuditLog
.
setPlanAuditId
(
audit
.
getId
());
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-supervision-biz/src/main/java/com/yeejoin/amos/supervision/business/service/impl/PlanTaskServiceImpl.java
View file @
acae44b5
...
...
@@ -532,7 +532,7 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
// 2.保存执行数据明细表
planTaskDetail
.
saveAndFlush
(
planTaskDetailInstance
);
// 推送消息
asyncTask
.
sendPlanMsg
(
RequestContext
.
cloneRequestContext
(),
plan
,
planId
);
asyncTask
.
sendPlanMsg
(
RequestContext
.
cloneRequestContext
(),
plan
);
}
// 定时任务监控
jobService
.
planTaskAddJob
(
planTask
);
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-supervision-biz/src/main/java/com/yeejoin/amos/supervision/core/async/AsyncTask.java
View file @
acae44b5
...
...
@@ -14,6 +14,7 @@ import com.yeejoin.amos.supervision.business.entity.mybatis.MsgSubscribeBo;
import
com.yeejoin.amos.supervision.business.param.PushMsgParam
;
import
com.yeejoin.amos.supervision.business.service.intfc.IMessageService
;
import
com.yeejoin.amos.supervision.business.service.intfc.ISafety3DDataSendService
;
import
com.yeejoin.amos.supervision.business.util.DateUtil
;
import
com.yeejoin.amos.supervision.business.util.Toke
;
import
com.yeejoin.amos.supervision.common.enums.JPushTypeEnum
;
import
com.yeejoin.amos.supervision.common.enums.MsgSubscribeEnum
;
...
...
@@ -45,6 +46,8 @@ import java.util.concurrent.Future;
public
class
AsyncTask
{
private
final
Logger
log
=
LoggerFactory
.
getLogger
(
AsyncTask
.
class
);
private
final
String
msgType
=
"supervision"
;
@Autowired
private
ISafety3DDataSendService
safety3DDataSend
;
...
...
@@ -304,15 +307,42 @@ public class AsyncTask {
}
/**
* 计划任务消息
* 提交计划任务消息
* @param requestContextModel
* @param plan
* @param userIds 发送用户id集合
* @param isSendWeb 发送web标识
* @param isSendApp 发送app标识
*/
@Async
public
void
sendAddPlanMsg
(
RequestContextModel
requestContextModel
,
Plan
plan
,
List
<
String
>
userIds
,
boolean
isSendWeb
,
boolean
isSendApp
){
MessageModel
model
=
new
MessageModel
();
model
.
setTitle
(
plan
.
getName
());
String
body
=
String
.
format
(
"计划名称:%s;检查类型:%s;创建时间:%s"
,
plan
.
getName
(),
plan
.
getCheckTypeName
(),
DateUtil
.
date2LongStr
(
new
Date
()));
model
.
setBody
(
body
);
try
{
model
.
setIsSendWeb
(
isSendWeb
);
model
.
setIsSendApp
(
isSendApp
);
model
.
setMsgType
(
msgType
);
model
.
setRelationId
(
String
.
valueOf
(
plan
.
getId
()));
model
.
setRecivers
(
userIds
);
// remoteSecurityService.addMessage(requestContextModel, model);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
/**
* 发送消息至检查组长
* @param plan
*/
@Async
public
void
sendPlanMsg
(
RequestContextModel
requestContextModel
,
Plan
plan
,
long
planId
){
public
void
sendPlanMsg
ToLeadPeople
(
RequestContextModel
requestContextModel
,
Plan
plan
){
MessageModel
model
=
new
MessageModel
();
model
.
setTitle
(
plan
.
getName
());
String
body
=
String
.
format
(
"任务批号:%s;类型:%s;执行人
:%s"
,
plan
Id
,
plan
.
getCheckTypeName
(),
plan
.
getMakerUserName
(
));
String
body
=
String
.
format
(
"计划名称:%s;检查类型:%s;创建时间
:%s"
,
plan
.
getName
(),
plan
.
getCheckTypeName
(),
DateUtil
.
date2LongStr
(
new
Date
()
));
model
.
setBody
(
body
);
String
leadPeopleIds
=
plan
.
getLeadPeopleIds
();
if
(!
ValidationUtil
.
isEmpty
(
plan
.
getUserId
())
&&
!
leadPeopleIds
.
contains
(
plan
.
getUserId
())){
...
...
@@ -320,9 +350,37 @@ public class AsyncTask {
}
try
{
List
<
String
>
recivers
=
remoteSecurityService
.
getAmosIdListByUserIds
(
requestContextModel
,
leadPeopleIds
);
model
.
setIsSendWeb
(
true
);
model
.
setIsSendApp
(
true
);
model
.
setMsgType
(
msgType
);
model
.
setRelationId
(
String
.
valueOf
(
plan
.
getId
()));
model
.
setRecivers
(
recivers
);
// remoteSecurityService.addMessage(requestContextModel, model);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
/**
* 发送消息至检查组员
* @param plan
*/
@Async
public
void
sendPlanMsg
(
RequestContextModel
requestContextModel
,
Plan
plan
){
MessageModel
model
=
new
MessageModel
();
model
.
setTitle
(
plan
.
getName
());
String
body
=
String
.
format
(
"计划名称:%s;检查类型:%s;创建时间:%s"
,
plan
.
getName
(),
plan
.
getCheckTypeName
(),
DateUtil
.
date2LongStr
(
new
Date
()));
model
.
setBody
(
body
);
String
leadPeopleIds
=
plan
.
getLeadPeopleIds
();
if
(!
ValidationUtil
.
isEmpty
(
plan
.
getUserId
())
&&
!
leadPeopleIds
.
contains
(
plan
.
getUserId
())){
leadPeopleIds
+=
","
+
plan
.
getUserId
();
}
try
{
List
<
String
>
recivers
=
remoteSecurityService
.
getAmosIdListByUserIds
(
requestContextModel
,
leadPeopleIds
);
model
.
setIsSendApp
(
true
);
model
.
setIsSendWeb
(
true
);
model
.
setMsgType
(
"supervision"
);
model
.
setMsgType
(
msgType
);
model
.
setRelationId
(
String
.
valueOf
(
plan
.
getId
()));
model
.
setRecivers
(
recivers
);
remoteSecurityService
.
addMessage
(
requestContextModel
,
model
);
...
...
@@ -349,5 +407,4 @@ public class AsyncTask {
}
return
afterFilterUserIds
;
}
}
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