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
deaccab3
Commit
deaccab3
authored
Jul 23, 2024
by
王果
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
21052 启用停用校验设备是否在流程中
parent
b809ee89
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
269 additions
and
155 deletions
+269
-155
JgEnableDisableMapper.java
...amos/boot/module/jg/api/mapper/JgEnableDisableMapper.java
+3
-0
JgEnableDisableMapper.xml
...g-api/src/main/resources/mapper/JgEnableDisableMapper.xml
+10
-0
JgEnableDisableEquipUsedCheckImpl.java
...g/biz/service/impl/JgEnableDisableEquipUsedCheckImpl.java
+55
-0
JgEnableDisableServiceImpl.java
...odule/jg/biz/service/impl/JgEnableDisableServiceImpl.java
+201
-155
No files found.
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-api/src/main/java/com/yeejoin/amos/boot/module/jg/api/mapper/JgEnableDisableMapper.java
View file @
deaccab3
...
...
@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.jg.api.mapper;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.CompanyEquipCountDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.EquipBizCountDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.JgEnableDisableDto
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgEnableDisable
;
...
...
@@ -29,4 +30,6 @@ public interface JgEnableDisableMapper extends BaseMapper<JgEnableDisable> {
Map
<
String
,
Object
>
getDetail
(
@Param
(
"sequenceNbr"
)
Long
sequenceNbr
);
List
<
EquipBizCountDto
>
queryStoppedDeviceStaticListData
(
DPFilterParamDto
dpFilterParamDto
);
List
<
CompanyEquipCountDto
>
queryForFlowingEquipList
();
}
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-api/src/main/resources/mapper/JgEnableDisableMapper.xml
View file @
deaccab3
...
...
@@ -151,4 +151,14 @@
c.equ_category,
c.equ_define
</select>
<select
id=
"queryForFlowingEquipList"
resultType=
"com.yeejoin.amos.boot.module.jg.api.dto.CompanyEquipCountDto"
>
select a.use_unit_credit_code as companyCode,
group_concat(b.certificate_seq) as records
from tzs_jg_change_registration_name a,
tzs_jg_change_registration_name_eq b
where a.sequence_nbr = b.name_change_registration_id
and a.audit_status in ('三级待受理', '二级待受理', '一级待受理')
GROUP BY a.use_unit_credit_code
</select>
</mapper>
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/impl/JgEnableDisableEquipUsedCheckImpl.java
0 → 100644
View file @
deaccab3
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jg
.
biz
.
service
.
impl
;
import
com.yeejoin.amos.boot.module.jg.api.dto.CompanyEquipCountDto
;
import
com.yeejoin.amos.boot.module.jg.api.mapper.JgEnableDisableMapper
;
import
com.yeejoin.amos.boot.module.jg.api.mapper.JgInstallationNoticeMapper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.redisson.api.RBucket
;
import
org.redisson.api.RedissonClient
;
import
org.springframework.stereotype.Component
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
/**
* @author Administrator
*/
@Component
@Slf4j
public
class
JgEnableDisableEquipUsedCheckImpl
extends
BaseEquipUsedCheckService
{
private
RedissonClient
redissonClient
;
private
String
bizType
=
"deactivateEnable"
;
private
JgEnableDisableMapper
mapper
;
public
JgEnableDisableEquipUsedCheckImpl
(
RedissonClient
redissonClient
,
JgEnableDisableMapper
mapper
)
{
this
.
redissonClient
=
redissonClient
;
this
.
mapper
=
mapper
;
}
@Override
public
RedissonClient
getRedisClient
()
{
return
redissonClient
;
}
@Override
public
String
getApplyBizType
()
{
return
bizType
;
}
@Override
public
void
init
()
{
// 初始化已经完成或者在流程中安装告知的设备数据
List
<
CompanyEquipCountDto
>
companyEquipCountDtos
=
mapper
.
queryForFlowingEquipList
();
companyEquipCountDtos
.
forEach
(
c
->
{
RBucket
<
Set
<
String
>>
rBucket
=
redissonClient
.
getBucket
(
getFlowingEquipRedisKey
(
c
.
getCompanyCode
(),
bizType
));
rBucket
.
set
(
Arrays
.
stream
(
c
.
getRecords
().
split
(
","
)).
collect
(
Collectors
.
toSet
()));
});
}
}
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/impl/JgEnableDisableServiceImpl.java
View file @
deaccab3
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jg
.
biz
.
service
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Sequence
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.boot.biz.common.bo.ReginParams
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisKey
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
import
com.yeejoin.amos.boot.module.jg.api.dto.*
;
import
com.yeejoin.amos.boot.module.jg.api.entity.*
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgEnableDisable
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgEnableDisableEq
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgRegistrationHistory
;
import
com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum
;
import
com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum
;
import
com.yeejoin.amos.boot.module.jg.api.mapper.JgEnableDisableEqMapper
;
...
...
@@ -19,6 +22,9 @@ import com.yeejoin.amos.boot.module.jg.api.mapper.JgMaintainNoticeMapper;
import
com.yeejoin.amos.boot.module.jg.api.mapper.JgRegistrationHistoryMapper
;
import
com.yeejoin.amos.boot.module.jg.api.service.IJgEnableDisableService
;
import
com.yeejoin.amos.boot.module.jg.api.vo.SortVo
;
import
com.yeejoin.amos.boot.module.jg.biz.config.LocalBadRequest
;
import
com.yeejoin.amos.boot.module.jg.biz.context.EquipUsedCheckStrategyContext
;
import
com.yeejoin.amos.boot.module.jg.biz.context.FlowingEquipRedisContext
;
import
com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient
;
import
com.yeejoin.amos.boot.module.jg.biz.service.ICmWorkflowService
;
import
com.yeejoin.amos.boot.module.jg.biz.service.IIdxBizJgRegisterInfoService
;
...
...
@@ -37,15 +43,13 @@ import org.redisson.api.RLock;
import
org.redisson.api.RedissonClient
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.StringUtils
;
import
org.typroject.tyboot.core.foundation.context.RequestContext
;
import
com.baomidou.mybatisplus.core.toolkit.Sequence
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.springframework.stereotype.Service
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
org.typroject.tyboot.core.restful.exception.instance.BadRequest
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
...
...
@@ -74,14 +78,14 @@ public class JgEnableDisableServiceImpl extends BaseService<JgEnableDisableDto,
JgEnableDisableEqMapper
jgEnableDisableEqMapper
;
@Autowired
JgMaintainNoticeMapper
jgMaintainNoticeMapper
;
JgMaintainNoticeMapper
jgMaintainNoticeMapper
;
@Autowired
TzsServiceFeignClient
tzsServiceFeignClient
;
@Autowired
IIdxBizJgRegisterInfoService
idxBizJgRegisterInfoService
;
private
final
List
<
String
>
NOT_FLOWING_STATE
=
Arrays
.
asList
(
"使用单位待提交"
,
"一级受理已驳回"
,
"使用单位已撤回"
,
"已作废"
,
"已完成"
);
private
final
String
PROCESS_DEFINITION_KEY
=
"deactivateEnable"
;
...
...
@@ -117,142 +121,182 @@ public class JgEnableDisableServiceImpl extends BaseService<JgEnableDisableDto,
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
List
<
JgEnableDisable
>
saveOrUpdate
(
JSONObject
map
,
ReginParams
reginParams
)
{
JgEnableDisable
jgEnableDisable
=
new
JgEnableDisable
();
if
(!
"null"
.
equals
(
String
.
valueOf
(
map
.
get
(
"sequenceNbr"
))))
{
jgEnableDisable
=
this
.
baseMapper
.
selectById
(
String
.
valueOf
(
map
.
get
(
"sequenceNbr"
)));
jgEnableDisable
.
setRemark
(
map
.
get
(
"remark"
).
toString
());
}
else
{
// 获取申请编号
ResponseModel
<
List
<
String
>>
listResponseModel
=
tzsServiceFeignClient
.
applicationFormCode
(
ApplicationFormTypeEnum
.
getCode
.
get
(
String
.
valueOf
(
map
.
get
(
"businessCode"
))),
1
);
jgEnableDisable
.
setApplyNo
(
listResponseModel
.
getResult
().
get
(
0
));
jgEnableDisable
.
setSequenceNbr
(
sequence
.
nextId
());
}
jgEnableDisable
.
setCreateDate
(
new
Date
());
String
submit
=
String
.
valueOf
(
map
.
get
(
"submit"
));
String
pageType
=
String
.
valueOf
(
map
.
get
(
"formType"
));
List
<
Map
<
String
,
Object
>>
equipments
=
(
List
<
Map
<
String
,
Object
>>)
map
.
get
(
"equipments"
);
String
businessCode
=
ObjectUtils
.
isEmpty
(
map
.
get
(
"applyType"
))?
String
.
valueOf
(
map
.
get
(
"businessCode"
)):
String
.
valueOf
(
map
.
get
(
"applyType"
));
// 接收机构
String
[]
receiveOrgCode
=
String
.
valueOf
(
map
.
getString
(
"receiveOrgCode"
)).
split
(
"_"
);
List
<
WorkflowResultDto
>
workflowResultList
=
new
ArrayList
<>();
try
{
JgEnableDisable
jgEnableDisable
=
new
JgEnableDisable
();
if
(!
"null"
.
equals
(
String
.
valueOf
(
map
.
get
(
"sequenceNbr"
))))
{
jgEnableDisable
=
this
.
baseMapper
.
selectById
(
String
.
valueOf
(
map
.
get
(
"sequenceNbr"
)));
jgEnableDisable
.
setRemark
(
map
.
get
(
"remark"
).
toString
());
}
else
{
// 获取申请编号
ResponseModel
<
List
<
String
>>
listResponseModel
=
tzsServiceFeignClient
.
applicationFormCode
(
ApplicationFormTypeEnum
.
getCode
.
get
(
String
.
valueOf
(
map
.
get
(
"businessCode"
))),
1
);
jgEnableDisable
.
setApplyNo
(
listResponseModel
.
getResult
().
get
(
0
));
jgEnableDisable
.
setSequenceNbr
(
sequence
.
nextId
());
}
jgEnableDisable
.
setCreateDate
(
new
Date
());
String
submit
=
String
.
valueOf
(
map
.
get
(
"submit"
));
String
pageType
=
String
.
valueOf
(
map
.
get
(
"formType"
));
List
<
Map
<
String
,
Object
>>
equipments
=
(
List
<
Map
<
String
,
Object
>>)
map
.
get
(
"equipments"
);
if
(
SUBMIT_TYPE_FLOW
.
equals
(
submit
))
{
//校验设备不能再多个流程中
this
.
repeatUsedEquipCheck
(
equipments
,
reginParams
.
getCompany
().
getCompanyCode
());
}
String
businessCode
=
ObjectUtils
.
isEmpty
(
map
.
get
(
"applyType"
))
?
String
.
valueOf
(
map
.
get
(
"businessCode"
))
:
String
.
valueOf
(
map
.
get
(
"applyType"
));
// 接收机构
String
[]
receiveOrgCode
=
String
.
valueOf
(
map
.
getString
(
"receiveOrgCode"
)).
split
(
"_"
);
List
<
WorkflowResultDto
>
workflowResultList
=
new
ArrayList
<>();
WorkflowResultDto
workflowResultDto
=
new
WorkflowResultDto
();
List
<
ProcessTaskDTO
>
processTaskDTOS
=
new
ArrayList
<>();
jgEnableDisable
.
setOtherAccessories
(
JSONObject
.
toJSONString
(
Optional
.
ofNullable
(
map
.
get
(
"otherAccessories"
)).
orElse
(
Collections
.
emptyMap
())));
if
(
SUBMIT_TYPE_FLOW
.
equals
(
submit
))
{
if
(
map
.
containsKey
(
"instanceId"
)
&&
!
ObjectUtils
.
isEmpty
(
map
.
get
(
"instanceId"
)))
{
// 只调用执行API,返回下个节点信息,用于填充业务字段
//组装信息
TaskResultDTO
dto
=
new
TaskResultDTO
();
dto
.
setResultCode
(
"approvalStatus"
);
dto
.
setTaskId
(
jgEnableDisable
.
getNextTaskId
());
HashMap
<
String
,
Object
>
commMap
=
new
HashMap
<>();
if
(
FlowStatusEnum
.
REJECTED
.
getName
().
equals
(
jgEnableDisable
.
getAuditStatus
())
||
FlowStatusEnum
.
ROLLBACK
.
getName
().
equals
(
jgEnableDisable
.
getAuditStatus
()))
{
commMap
.
put
(
"approvalStatus"
,
"提交"
);
//下一节点执行人单位(下节点接收机构code)
dto
.
setNextExecuteUserCompanyCode
(
jgEnableDisable
.
getReceiveCompanyCode
());
}
else
{
commMap
.
put
(
"approvalStatus"
,
submit
);
//下一节点执行人单位(下节点接收机构code)
dto
.
setNextExecuteUserCompanyCode
(
jgEnableDisable
.
getUseUnitCreditCode
());
}
WorkflowResultDto
workflowResultDto
=
new
WorkflowResultDto
();
List
<
ProcessTaskDTO
>
processTaskDTOS
=
new
ArrayList
<>();
jgEnableDisable
.
setOtherAccessories
(
JSONObject
.
toJSONString
(
Optional
.
ofNullable
(
map
.
get
(
"otherAccessories"
)).
orElse
(
Collections
.
emptyMap
())));
if
(
SUBMIT_TYPE_FLOW
.
equals
(
submit
))
{
if
(
map
.
containsKey
(
"instanceId"
)
&&
!
ObjectUtils
.
isEmpty
(
map
.
get
(
"instanceId"
))){
// 只调用执行API,返回下个节点信息,用于填充业务字段
//组装信息
TaskResultDTO
dto
=
new
TaskResultDTO
();
dto
.
setResultCode
(
"approvalStatus"
);
dto
.
setTaskId
(
jgEnableDisable
.
getNextTaskId
());
HashMap
<
String
,
Object
>
commMap
=
new
HashMap
<>();
if
(
FlowStatusEnum
.
REJECTED
.
getName
().
equals
(
jgEnableDisable
.
getAuditStatus
())
||
FlowStatusEnum
.
ROLLBACK
.
getName
().
equals
(
jgEnableDisable
.
getAuditStatus
()))
{
commMap
.
put
(
"approvalStatus"
,
"提交"
);
//下一节点执行人单位(下节点接收机构code)
dto
.
setNextExecuteUserCompanyCode
(
jgEnableDisable
.
getReceiveCompanyCode
());
dto
.
setVariable
(
commMap
);
ProcessTaskDTO
processTaskDTO
=
iCmWorkflowService
.
completeOrReject
(
jgEnableDisable
.
getNextTaskId
(),
dto
,
"0"
);
processTaskDTOS
.
add
(
processTaskDTO
);
// 提取节点等信息
workflowResultDto
=
commonService
.
buildWorkFlowInfo
(
Collections
.
singletonList
(
processTaskDTO
)).
get
(
0
);
workflowResultList
.
add
(
workflowResultDto
);
if
(!
ObjectUtils
.
isEmpty
(
jgEnableDisable
.
getExecuteSequence
()))
{
jgEnableDisable
.
setExecuteSequence
(
jgEnableDisable
.
getExecuteSequence
()
+
","
+
workflowResultDto
.
getNextExecutorRoleIds
());
}
else
{
jgEnableDisable
.
setExecuteSequence
(
workflowResultDto
.
getNextExecutorRoleIds
());
}
jgEnableDisable
.
setPromoter
(
RequestContext
.
getExeUserId
());
jgEnableDisable
.
setNextExecutorIds
(
String
.
join
(
","
,
workflowResultDto
.
getNextExecutorRoleIds
()));
jgEnableDisable
.
setAuditStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
()));
jgEnableDisable
.
setNextTaskId
(
workflowResultDto
.
getNextTaskId
());
jgEnableDisable
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
this
.
baseMapper
.
updateById
(
jgEnableDisable
);
// 上个代办改为已办
HashMap
<
String
,
Object
>
map1
=
new
HashMap
<>();
map1
.
put
(
"taskStatus"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
());
map1
.
put
(
"taskStatusLabel"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
map1
.
put
(
"relationId"
,
jgEnableDisable
.
getInstanceId
());
map1
.
put
(
"flowStatus"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
());
map1
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
TaskV2Model
taskV2Model
=
commonService
.
updateTaskModel
(
map1
);
if
(
ObjectUtils
.
isEmpty
(
taskV2Model
))
{
TaskModelDto
taskModelDto
=
new
TaskModelDto
();
BeanUtils
.
copyProperties
(
taskV2Model
,
taskModelDto
);
// 创建新的代办
TaskMessageDto
taskMessageDto
=
new
TaskMessageDto
();
BeanUtils
.
copyProperties
(
jgEnableDisable
,
taskMessageDto
);
taskModelDto
.
setModel
(
taskMessageDto
);
taskModelDto
.
setTaskName
(
workflowResultDto
.
getNextTaskName
());
taskModelDto
.
setExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
taskModelDto
.
setFlowStatus
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
());
taskModelDto
.
setFlowStatusLabel
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
taskModelDto
.
setFlowCode
(
jgEnableDisable
.
getNextTaskId
());
taskModelDto
.
setNextExecuteUser
(
workflowResultDto
.
getNextExecutorRoleIds
());
commonService
.
buildTaskModel
(
Collections
.
singletonList
(
taskModelDto
));
}
}
else
{
commMap
.
put
(
"approvalStatus"
,
submit
);
//下一节点执行人单位(下节点接收机构code)
dto
.
setNextExecuteUserCompanyCode
(
jgEnableDisable
.
getUseUnitCreditCode
());
// 启动工作流并返回信息
workflowResultList
=
workFlowInfo
(
submit
,
jgEnableDisable
,
receiveOrgCode
[
0
]);
//业务数据组装等
businessData
(
submit
,
reginParams
,
jgEnableDisable
,
map
,
workflowResultList
);
// 关联设备表
for
(
Map
<
String
,
Object
>
equipment
:
equipments
)
{
JgEnableDisableEq
jgEnableDisableEq
=
new
JgEnableDisableEq
();
jgEnableDisableEq
.
setEquId
(
String
.
valueOf
(
equipment
.
get
(
"SEQUENCE_NBR"
)));
jgEnableDisableEq
.
setEnableDisableApplyId
(
jgEnableDisable
.
getSequenceNbr
().
toString
());
jgEnableDisableEqService
.
saveOrUpdate
(
jgEnableDisableEq
);
}
}
dto
.
setVariable
(
commMap
);
ProcessTaskDTO
processTaskDTO
=
iCmWorkflowService
.
completeOrReject
(
jgEnableDisable
.
getNextTaskId
(),
dto
,
"0"
);
processTaskDTOS
.
add
(
processTaskDTO
);
// 提取节点等信息
workflowResultDto
=
commonService
.
buildWorkFlowInfo
(
Collections
.
singletonList
(
processTaskDTO
)).
get
(
0
);
workflowResultList
.
add
(
workflowResultDto
);
if
(!
ObjectUtils
.
isEmpty
(
jgEnableDisable
.
getExecuteSequence
()))
{
jgEnableDisable
.
setExecuteSequence
(
jgEnableDisable
.
getExecuteSequence
()
+
","
+
workflowResultDto
.
getNextExecutorRoleIds
());
}
else
{
jgEnableDisable
.
setExecuteSequence
(
workflowResultDto
.
getNextExecutorRoleIds
());
}
jgEnableDisable
.
setPromoter
(
RequestContext
.
getExeUserId
());
jgEnableDisable
.
setNextExecutorIds
(
String
.
join
(
","
,
workflowResultDto
.
getNextExecutorRoleIds
()));
jgEnableDisable
.
setAuditStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
()));
jgEnableDisable
.
setNextTaskId
(
workflowResultDto
.
getNextTaskId
());
jgEnableDisable
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
commonService
.
saveExecuteFlowData2Redis
(
jgEnableDisable
.
getInstanceId
(),
buildInstanceRuntimeData
(
jgEnableDisable
));
}
else
{
jgEnableDisable
.
setNextExecuteUserIds
(
reginParams
.
getUserModel
().
getUserId
());
jgEnableDisable
.
setCreateUserId
(
reginParams
.
getUserModel
().
getUserId
());
jgEnableDisable
.
setCreateUserName
(
reginParams
.
getUserModel
().
getRealName
());
jgEnableDisable
.
setUseUnitCreditCode
(
reginParams
.
getCompany
().
getCompanyCode
());
jgEnableDisable
.
setUseUnitName
(
reginParams
.
getCompany
().
getCompanyName
());
jgEnableDisable
.
setReceiveCompanyCode
(
receiveOrgCode
[
0
]);
jgEnableDisable
.
setReceiveOrgName
(
receiveOrgCode
[
1
]);
jgEnableDisable
.
setRemark
(
map
.
get
(
"remark"
)
==
null
?
""
:
map
.
get
(
"remark"
).
toString
());
jgEnableDisable
.
setApplyDate
(
new
Date
());
jgEnableDisable
.
setApplyType
(
String
.
valueOf
(
map
.
get
(
"applyType"
)));
jgEnableDisable
.
setAuditStatus
(
ObjectUtils
.
isEmpty
(
jgEnableDisable
.
getAuditStatus
())
?
FlowStatusEnum
.
TO_BE_SUBMITTED
.
getName
()
:
jgEnableDisable
.
getAuditStatus
());
}
// 仅保存
this
.
saveOrUpdate
(
jgEnableDisable
);
if
(
"add"
.
equals
(
pageType
))
{
buildTask
(
Arrays
.
asList
(
jgEnableDisable
),
businessCode
,
workflowResultList
,
Boolean
.
FALSE
);
}
else
{
// 编辑
jgEnableDisable
.
setSequenceNbr
(
Long
.
valueOf
(
String
.
valueOf
(
map
.
get
(
"sequenceNbr"
))));
this
.
baseMapper
.
updateById
(
jgEnableDisable
);
// 上个代办改为已办
HashMap
<
String
,
Object
>
map1
=
new
HashMap
<>();
map1
.
put
(
"taskStatus"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
());
map1
.
put
(
"taskStatusLabel"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
map1
.
put
(
"relationId"
,
jgEnableDisable
.
getInstanceId
());
map1
.
put
(
"flowStatus"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
());
map1
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
TaskV2Model
taskV2Model
=
commonService
.
updateTaskModel
(
map1
);
if
(
ObjectUtils
.
isEmpty
(
taskV2Model
))
{
TaskModelDto
taskModelDto
=
new
TaskModelDto
();
BeanUtils
.
copyProperties
(
taskV2Model
,
taskModelDto
);
// 创建新的代办
TaskMessageDto
taskMessageDto
=
new
TaskMessageDto
();
BeanUtils
.
copyProperties
(
jgEnableDisable
,
taskMessageDto
);
taskModelDto
.
setModel
(
taskMessageDto
);
taskModelDto
.
setTaskName
(
workflowResultDto
.
getNextTaskName
());
taskModelDto
.
setExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
taskModelDto
.
setFlowStatus
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
());
taskModelDto
.
setFlowStatusLabel
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
taskModelDto
.
setFlowCode
(
jgEnableDisable
.
getNextTaskId
());
taskModelDto
.
setNextExecuteUser
(
workflowResultDto
.
getNextExecutorRoleIds
());
commonService
.
buildTaskModel
(
Collections
.
singletonList
(
taskModelDto
));
}
LambdaQueryWrapper
<
JgEnableDisableEq
>
lambda
=
new
QueryWrapper
<
JgEnableDisableEq
>().
lambda
();
lambda
.
eq
(
JgEnableDisableEq:
:
getEnableDisableApplyId
,
String
.
valueOf
(
map
.
get
(
"sequenceNbr"
)));
jgEnableDisableEqService
.
getBaseMapper
().
delete
(
lambda
);
}
if
(!
SUBMIT_TYPE_FLOW
.
equals
(
submit
))
{
// 暂存任务
buildTaskDraft
(
jgEnableDisable
);
}
else
{
// 启动工作流并返回信息
workflowResultList
=
workFlowInfo
(
submit
,
jgEnableDisable
,
receiveOrgCode
[
0
]);
//业务数据组装等
businessData
(
submit
,
reginParams
,
jgEnableDisable
,
map
,
workflowResultList
);
// 关联设备表
for
(
Map
<
String
,
Object
>
equipment
:
equipments
)
{
JgEnableDisableEq
jgEnableDisableEq
=
new
JgEnableDisableEq
();
jgEnableDisableEq
.
setEquId
(
String
.
valueOf
(
equipment
.
get
(
"SEQUENCE_NBR"
)));
jgEnableDisableEq
.
setEnableDisableApplyId
(
jgEnableDisable
.
getSequenceNbr
().
toString
());
jgEnableDisableEqService
.
saveOrUpdate
(
jgEnableDisableEq
);
}
buildTask
(
Arrays
.
asList
(
jgEnableDisable
),
businessCode
,
workflowResultList
,
Boolean
.
TRUE
);
}
commonService
.
saveExecuteFlowData2Redis
(
jgEnableDisable
.
getInstanceId
(),
buildInstanceRuntimeData
(
jgEnableDisable
));
}
else
{
jgEnableDisable
.
setNextExecuteUserIds
(
reginParams
.
getUserModel
().
getUserId
());
jgEnableDisable
.
setCreateUserId
(
reginParams
.
getUserModel
().
getUserId
());
jgEnableDisable
.
setCreateUserName
(
reginParams
.
getUserModel
().
getRealName
());
jgEnableDisable
.
setUseUnitCreditCode
(
reginParams
.
getCompany
().
getCompanyCode
());
jgEnableDisable
.
setUseUnitName
(
reginParams
.
getCompany
().
getCompanyName
());
jgEnableDisable
.
setReceiveCompanyCode
(
receiveOrgCode
[
0
]);
jgEnableDisable
.
setReceiveOrgName
(
receiveOrgCode
[
1
]);
jgEnableDisable
.
setRemark
(
map
.
get
(
"remark"
)
==
null
?
""
:
map
.
get
(
"remark"
).
toString
());
jgEnableDisable
.
setApplyDate
(
new
Date
());
jgEnableDisable
.
setApplyType
(
String
.
valueOf
(
map
.
get
(
"applyType"
)));
jgEnableDisable
.
setAuditStatus
(
ObjectUtils
.
isEmpty
(
jgEnableDisable
.
getAuditStatus
())
?
FlowStatusEnum
.
TO_BE_SUBMITTED
.
getName
()
:
jgEnableDisable
.
getAuditStatus
());
}
// 仅保存
this
.
saveOrUpdate
(
jgEnableDisable
);
if
(
"add"
.
equals
(
pageType
))
{
buildTask
(
Arrays
.
asList
(
jgEnableDisable
),
businessCode
,
workflowResultList
,
Boolean
.
FALSE
);
}
else
{
// 编辑
jgEnableDisable
.
setSequenceNbr
(
Long
.
valueOf
(
String
.
valueOf
(
map
.
get
(
"sequenceNbr"
))));
this
.
baseMapper
.
updateById
(
jgEnableDisable
);
LambdaQueryWrapper
<
JgEnableDisableEq
>
lambda
=
new
QueryWrapper
<
JgEnableDisableEq
>().
lambda
();
lambda
.
eq
(
JgEnableDisableEq:
:
getEnableDisableApplyId
,
String
.
valueOf
(
map
.
get
(
"sequenceNbr"
)));
jgEnableDisableEqService
.
getBaseMapper
().
delete
(
lambda
);
// 保存历史表
commonService
.
saveOrUpdateHistory
(
this
.
getRegistrationClass
(
jgEnableDisable
),
map
,
null
,
jgEnableDisable
.
getSequenceNbr
().
toString
());
return
Collections
.
singletonList
(
jgEnableDisable
);
}
catch
(
BadRequest
|
LocalBadRequest
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
this
.
rollBackForDelRedisData
();
throw
e
;
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
this
.
rollBackForDelRedisData
();
throw
new
BadRequest
(
"保存失败!"
);
}
finally
{
FlowingEquipRedisContext
.
clean
();
}
if
(!
SUBMIT_TYPE_FLOW
.
equals
(
submit
)){
// 暂存任务
buildTaskDraft
(
jgEnableDisable
);
}
else
{
buildTask
(
Arrays
.
asList
(
jgEnableDisable
),
businessCode
,
workflowResultList
,
Boolean
.
TRUE
);
}
private
void
repeatUsedEquipCheck
(
List
<
Map
<
String
,
Object
>>
equipList
,
String
companyCode
)
{
equipList
.
forEach
(
equipMap
->
EquipUsedCheckStrategyContext
.
getUsedStrategy
(
PROCESS_DEFINITION_KEY
)
.
equipRepeatUsedCheck
(
String
.
valueOf
(
equipMap
.
get
(
"record"
)),
companyCode
));
}
/**
* 删除 redis校验重复引用设备的数据
*/
private
void
delRepeatUseEquipData
(
JgEnableDisable
notice
)
{
if
(
NOT_FLOWING_STATE
.
contains
(
notice
.
getAuditStatus
()))
{
LambdaQueryWrapper
<
JgEnableDisableEq
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
JgEnableDisableEq:
:
getEnableDisableApplyId
,
notice
.
getSequenceNbr
());
List
<
JgEnableDisableEq
>
noticeEqList
=
jgEnableDisableEqService
.
list
(
queryWrapper
);
noticeEqList
.
forEach
(
noticeEq
->
EquipUsedCheckStrategyContext
.
getUsedStrategy
(
PROCESS_DEFINITION_KEY
)
.
delDataForCheckEquipRepeatUsed
(
Collections
.
singletonList
(
noticeEq
.
getEquId
()),
notice
.
getUseUnitCreditCode
()));
}
// 保存历史表
commonService
.
saveOrUpdateHistory
(
this
.
getRegistrationClass
(
jgEnableDisable
),
map
,
null
,
jgEnableDisable
.
getSequenceNbr
().
toString
());
return
Collections
.
singletonList
(
jgEnableDisable
);
}
private
String
getRegistrationClass
(
JgEnableDisable
jgEnableDisable
){
private
void
rollBackForDelRedisData
()
{
FlowingEquipRedisContext
.
getContext
().
forEach
(
e
->
{
EquipUsedCheckStrategyContext
.
getUsedStrategy
(
PROCESS_DEFINITION_KEY
)
.
delDataForCheckWithKey
(
e
.
getData
(),
e
.
getRedisKey
());
});
}
private
String
getRegistrationClass
(
JgEnableDisable
jgEnableDisable
)
{
// SB_QY启用,SB_TY停用
if
(
APPLY_TYPE_QY
.
equals
(
jgEnableDisable
.
getApplyType
()))
{
if
(
APPLY_TYPE_QY
.
equals
(
jgEnableDisable
.
getApplyType
()))
{
return
BusinessTypeEnum
.
JG_EQUIPMENT_START
.
getName
();
}
else
{
return
BusinessTypeEnum
.
JG_EQUIPMENT_STOP
.
getName
();
...
...
@@ -261,6 +305,7 @@ public class JgEnableDisableServiceImpl extends BaseService<JgEnableDisableDto,
/**
* 暂存任务生成待办
*
* @param jgEnableDisable 业务信息
*/
private
void
buildTaskDraft
(
JgEnableDisable
jgEnableDisable
)
{
...
...
@@ -327,14 +372,14 @@ public class JgEnableDisableServiceImpl extends BaseService<JgEnableDisableDto,
/**
* 插入代办
*/
private
void
buildTask
(
List
<
JgEnableDisable
>
list
,
String
businessCode
,
List
<
WorkflowResultDto
>
workflowResultList
,
Boolean
bool
)
{
String
taskType
=
businessCode
.
equals
(
ApplicationFormTypeEnum
.
SBQY
.
getBusinessCode
())?
BusinessTypeEnum
.
JG_EQUIPMENT_START
.
getCode
():
BusinessTypeEnum
.
JG_EQUIPMENT_STOP
.
getCode
();
String
taskTypeLabel
=
businessCode
.
equals
(
ApplicationFormTypeEnum
.
SBQY
.
getBusinessCode
())?
BusinessTypeEnum
.
JG_EQUIPMENT_START
.
getName
():
BusinessTypeEnum
.
JG_EQUIPMENT_STOP
.
getName
();
private
void
buildTask
(
List
<
JgEnableDisable
>
list
,
String
businessCode
,
List
<
WorkflowResultDto
>
workflowResultList
,
Boolean
bool
)
{
String
taskType
=
businessCode
.
equals
(
ApplicationFormTypeEnum
.
SBQY
.
getBusinessCode
())
?
BusinessTypeEnum
.
JG_EQUIPMENT_START
.
getCode
()
:
BusinessTypeEnum
.
JG_EQUIPMENT_STOP
.
getCode
();
String
taskTypeLabel
=
businessCode
.
equals
(
ApplicationFormTypeEnum
.
SBQY
.
getBusinessCode
())
?
BusinessTypeEnum
.
JG_EQUIPMENT_START
.
getName
()
:
BusinessTypeEnum
.
JG_EQUIPMENT_STOP
.
getName
();
List
<
TaskModelDto
>
taskModelDtoList
=
new
ArrayList
<>();
list
.
forEach
(
item
->
{
TaskModelDto
taskModelDto
=
new
TaskModelDto
();
taskModelDto
.
setFlowCreateDate
(
item
.
getCreateDate
());
if
(
workflowResultList
.
size
()>
0
)
{
if
(
workflowResultList
.
size
()
>
0
)
{
taskModelDto
.
setTaskName
(
workflowResultList
.
get
(
0
).
getNextTaskName
());
// 工作流API返回
taskModelDto
.
setExecuteUserIds
(
workflowResultList
.
get
(
0
).
getNextExecutorUserIds
());
// 工作流API返回
}
...
...
@@ -358,27 +403,26 @@ public class JgEnableDisableServiceImpl extends BaseService<JgEnableDisableDto,
taskModelDtoList
.
add
(
taskModelDto
);
if
(
bool
)
{
// 删除暂存时生成的待办
commonService
.
deleteTasksByRelationId
(
item
.
getSequenceNbr
()
+
""
);
commonService
.
deleteTasksByRelationId
(
item
.
getSequenceNbr
()
+
""
);
}
});
if
(
bool
)
{
if
(
bool
)
{
commonService
.
buildTaskModel
(
taskModelDtoList
);
}
}
public
Page
<
Map
<
String
,
Object
>>
pageList
(
Page
<
Map
<
String
,
Object
>>
page
,
String
sort
,
JgEnableDisableDto
dto
)
{
public
Page
<
Map
<
String
,
Object
>>
pageList
(
Page
<
Map
<
String
,
Object
>>
page
,
String
sort
,
JgEnableDisableDto
dto
)
{
ReginParams
reginParams
=
JSONObject
.
parseObject
(
redisUtils
.
get
(
RedisKey
.
buildReginKey
(
RequestContext
.
getExeUserId
(),
RequestContext
.
getToken
())).
toString
(),
ReginParams
.
class
);
if
(
"company"
.
equals
(
reginParams
.
getCompany
().
getLevel
()))
{
dto
.
setUseUnitCreditCode
(
reginParams
.
getCompany
().
getCompanyCode
());
}
else
{
dto
.
setReceiveCompanyCode
(
reginParams
.
getCompany
().
getCompanyCode
());
}
String
level
=
reginParams
.
getCompany
().
getLevel
();
String
userId
=
reginParams
.
getUserModel
().
getUserId
();
String
level
=
reginParams
.
getCompany
().
getLevel
();
String
userId
=
reginParams
.
getUserModel
().
getUserId
();
SortVo
sortMap
=
commonService
.
sortFieldConversion
(
sort
);
return
this
.
baseMapper
.
pageList
(
page
,
sortMap
,
dto
,
level
,
userId
);
return
this
.
baseMapper
.
pageList
(
page
,
sortMap
,
dto
,
level
,
userId
);
}
...
...
@@ -398,14 +442,14 @@ public class JgEnableDisableServiceImpl extends BaseService<JgEnableDisableDto,
}
/**
* 工作流启动并执行
* @param submitType 是否提交
*
* @param submitType 是否提交
* @param jgEnableDisable 业务数据
* @return 工作流返回相关数据
*/
private
List
<
WorkflowResultDto
>
workFlowInfo
(
String
submitType
,
JgEnableDisable
jgEnableDisable
,
String
receiveOrgCode
)
{
private
List
<
WorkflowResultDto
>
workFlowInfo
(
String
submitType
,
JgEnableDisable
jgEnableDisable
,
String
receiveOrgCode
)
{
if
(
SUBMIT_TYPE_FLOW
.
equals
(
submitType
))
{
ActWorkflowBatchDTO
actWorkflowBatchDTO
=
new
ActWorkflowBatchDTO
();
List
<
ActWorkflowStartDTO
>
list
=
new
ArrayList
<>();
...
...
@@ -435,7 +479,7 @@ public class JgEnableDisableServiceImpl extends BaseService<JgEnableDisableDto,
try
{
boolean
isLocked
=
lock
.
tryLock
(
0
,
180
,
TimeUnit
.
SECONDS
);
// 解决并发问题:多个人同时操作一个流程(并发执行通过、驳回、撤回)
if
(!
isLocked
)
{
if
(!
isLocked
)
{
throw
new
BadRequest
(
"当前流程已经被执行!请重新打开页面查看并执行!"
);
}
// 流程执行时,状态及权限校验
...
...
@@ -531,10 +575,11 @@ public class JgEnableDisableServiceImpl extends BaseService<JgEnableDisableDto,
// redis流程实时数据更新
commonService
.
saveExecuteFlowData2Redis
(
instanceId
,
this
.
buildInstanceRuntimeData
(
jgEnableDisable
));
this
.
delRepeatUseEquipData
(
jgEnableDisable
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
finally
{
if
(
lock
.
isHeldByCurrentThread
())
{
if
(
lock
.
isHeldByCurrentThread
())
{
lock
.
unlock
();
}
}
...
...
@@ -546,7 +591,7 @@ public class JgEnableDisableServiceImpl extends BaseService<JgEnableDisableDto,
lambdaEq
.
eq
(
JgEnableDisableEq:
:
getEnableDisableApplyId
,
jgEnableDisable
.
getSequenceNbr
());
JgEnableDisableEq
jgScrapCancelEq
=
jgEnableDisableEqMapper
.
selectOne
(
lambdaEq
);
IdxBizJgUseInfo
idxBizJgUseInfo
=
new
IdxBizJgUseInfo
();
if
(
APPLY_TYPE_QY
.
equals
(
jgEnableDisable
.
getApplyType
()))
{
if
(
APPLY_TYPE_QY
.
equals
(
jgEnableDisable
.
getApplyType
()))
{
// 1启用
idxBizJgUseInfo
.
setEquState
(
String
.
valueOf
(
EquimentEnum
.
ZAIYONG
.
getCode
()));
}
else
{
...
...
@@ -568,15 +613,16 @@ public class JgEnableDisableServiceImpl extends BaseService<JgEnableDisableDto,
try
{
tzsServiceFeignClient
.
commonUpdateEsDataByIds
(
resultMap
);
}
catch
(
Exception
e
)
{
log
.
error
(
"更新es失败"
,
e
.
getCause
());
log
.
error
(
"更新es失败"
,
e
.
getCause
());
}
}
/**
* 执行工作流并返回组装好的工作流信息
* @param op 是否通过
* @param opinion 备注信息
*
* @param op 是否通过
* @param opinion 备注信息
* @param jgEnableDisable 业务信息
* @return 返回组装好的工作流信息
*/
...
...
@@ -607,7 +653,7 @@ public class JgEnableDisableServiceImpl extends BaseService<JgEnableDisableDto,
try
{
boolean
isLocked
=
lock
.
tryLock
(
0
,
180
,
TimeUnit
.
SECONDS
);
// 解决并发问题:多个人同时操作一个流程(并发执行通过、驳回、撤回)
if
(!
isLocked
)
{
if
(!
isLocked
)
{
throw
new
BadRequest
(
"当前流程已经被执行!请重新打开页面查看并执行!"
);
}
// 流程执行时,状态及权限校验
...
...
@@ -623,7 +669,6 @@ public class JgEnableDisableServiceImpl extends BaseService<JgEnableDisableDto,
jgEnableDisable
.
setNextTaskId
(
workflowResultDto
.
getNextTaskId
());
jgEnableDisable
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
updateById
(
jgEnableDisable
);
// 删除待办
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
jgEnableDisable
));
jsonObject
.
put
(
"nextExecuteUser"
,
jgEnableDisable
.
getNextExecutorIds
());
...
...
@@ -634,10 +679,11 @@ public class JgEnableDisableServiceImpl extends BaseService<JgEnableDisableDto,
// redis流程实时数据更新
commonService
.
saveExecuteFlowData2Redis
(
instanceId
,
this
.
buildInstanceRuntimeData
(
jgEnableDisable
));
this
.
delRepeatUseEquipData
(
jgEnableDisable
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
finally
{
if
(
lock
.
isHeldByCurrentThread
())
{
if
(
lock
.
isHeldByCurrentThread
())
{
lock
.
unlock
();
}
}
...
...
@@ -710,7 +756,7 @@ public class JgEnableDisableServiceImpl extends BaseService<JgEnableDisableDto,
public
void
deleteMessage
(
Long
sequenceNbr
)
{
JgEnableDisable
jgEnableDisable
=
this
.
baseMapper
.
selectById
(
sequenceNbr
);
// 删除代办 + 中止流程
commonService
.
deleteTaskModel
(
String
.
valueOf
(
sequenceNbr
),
jgEnableDisable
.
getInstanceId
());
commonService
.
deleteTaskModel
(
String
.
valueOf
(
sequenceNbr
),
jgEnableDisable
.
getInstanceId
());
// 删除单子
this
.
baseMapper
.
deleteById
(
sequenceNbr
);
// 删除单子对应eq
...
...
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