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
caab6266
Commit
caab6266
authored
Jul 23, 2024
by
王果
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
27994 注销报废限制设备不能多次出现在执行的流程中
parent
41e16c4c
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
323 additions
and
164 deletions
+323
-164
JgScrapCancelMapper.java
...n/amos/boot/module/jg/api/mapper/JgScrapCancelMapper.java
+3
-0
JgScrapCancelMapper.xml
...-jg-api/src/main/resources/mapper/JgScrapCancelMapper.xml
+9
-0
JgScrapCancelEquipUsedCheckImpl.java
.../jg/biz/service/impl/JgScrapCancelEquipUsedCheckImpl.java
+54
-0
JgScrapCancelServiceImpl.java
.../module/jg/biz/service/impl/JgScrapCancelServiceImpl.java
+257
-164
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/JgScrapCancelMapper.java
View file @
caab6266
...
@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.jg.api.mapper;
...
@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.jg.api.mapper;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto
;
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.EquipBizCountDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.JgScrapCancelDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.JgScrapCancelDto
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgScrapCancel
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgScrapCancel
;
...
@@ -48,4 +49,6 @@ public interface JgScrapCancelMapper extends BaseMapper<JgScrapCancel> {
...
@@ -48,4 +49,6 @@ public interface JgScrapCancelMapper extends BaseMapper<JgScrapCancel> {
List
<
EquipBizCountDto
>
queryScrappedDeviceStaticListData
(
DPFilterParamDto
dpFilterParamDto
);
List
<
EquipBizCountDto
>
queryScrappedDeviceStaticListData
(
DPFilterParamDto
dpFilterParamDto
);
Integer
getScrappedDeviceCount
(
@Param
(
"dpFilterParamDto"
)
DPFilterParamDto
dpFilterParamDto
);
Integer
getScrappedDeviceCount
(
@Param
(
"dpFilterParamDto"
)
DPFilterParamDto
dpFilterParamDto
);
List
<
CompanyEquipCountDto
>
queryForFlowingEquipList
();
}
}
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-api/src/main/resources/mapper/JgScrapCancelMapper.xml
View file @
caab6266
...
@@ -281,4 +281,13 @@
...
@@ -281,4 +281,13 @@
c.equ_category
c.equ_category
</select>
</select>
<select
id=
"queryForFlowingEquipList"
resultType=
"com.yeejoin.amos.boot.module.jg.api.dto.CompanyEquipCountDto"
>
select a.use_unit_code as companyCode,
group_concat(b.equ_id ) as records
from tzs_jg_scrap_cancel a,
tzs_jg_scrap_cancel_eq b
where a.sequence_nbr = b.equip_transfer_id
and a.audit_status in ('三级待受理', '二级待受理', '一级待受理')
GROUP BY a.use_unit_code
</select>
</mapper>
</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/JgScrapCancelEquipUsedCheckImpl.java
0 → 100644
View file @
caab6266
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.JgScrapCancelMapper
;
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
JgScrapCancelEquipUsedCheckImpl
extends
BaseEquipUsedCheckService
{
private
RedissonClient
redissonClient
;
private
String
bizType
=
"jgScrapCancelAdd"
;
private
JgScrapCancelMapper
mapper
;
public
JgScrapCancelEquipUsedCheckImpl
(
RedissonClient
redissonClient
,
JgScrapCancelMapper
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/JgScrapCancelServiceImpl.java
View file @
caab6266
...
@@ -23,6 +23,9 @@ import com.yeejoin.amos.boot.module.jg.api.mapper.JgScrapCancelMapper;
...
@@ -23,6 +23,9 @@ import com.yeejoin.amos.boot.module.jg.api.mapper.JgScrapCancelMapper;
import
com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationManageMapper
;
import
com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationManageMapper
;
import
com.yeejoin.amos.boot.module.jg.api.service.IJgScrapCancelService
;
import
com.yeejoin.amos.boot.module.jg.api.service.IJgScrapCancelService
;
import
com.yeejoin.amos.boot.module.jg.api.vo.SortVo
;
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.feign.TzsServiceFeignClient
;
import
com.yeejoin.amos.boot.module.jg.biz.service.IIdxBizJgRegisterInfoService
;
import
com.yeejoin.amos.boot.module.jg.biz.service.IIdxBizJgRegisterInfoService
;
import
com.yeejoin.amos.boot.module.jg.flc.api.fegin.WorkFlowFeignService
;
import
com.yeejoin.amos.boot.module.jg.flc.api.fegin.WorkFlowFeignService
;
...
@@ -71,6 +74,8 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
...
@@ -71,6 +74,8 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
private
static
final
String
SUBMIT_TYPE_FLOW
=
"1"
;
private
static
final
String
SUBMIT_TYPE_FLOW
=
"1"
;
private
static
final
String
PAGE_KEY
=
"jgScrapCancelAdd"
;
private
static
final
String
PAGE_KEY
=
"jgScrapCancelAdd"
;
private
static
final
String
template
=
"%s发起%s%s业务申请,【申请单号:%s】"
;
private
static
final
String
template
=
"%s发起%s%s业务申请,【申请单号:%s】"
;
private
final
List
<
String
>
NOT_FLOWING_STATE
=
Arrays
.
asList
(
"使用单位待提交"
,
"一级受理已驳回"
,
"使用单位已撤回"
,
"已作废"
,
"已完成"
);
@Autowired
@Autowired
WorkFlowFeignService
workFlowFeginService
;
WorkFlowFeignService
workFlowFeginService
;
@Autowired
@Autowired
...
@@ -178,94 +183,164 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
...
@@ -178,94 +183,164 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@GlobalTransactional
(
rollbackFor
=
Exception
.
class
)
@GlobalTransactional
(
rollbackFor
=
Exception
.
class
)
public
JgScrapCancelDto
save
(
String
submitType
,
Map
<
String
,
Object
>
mapParams
)
{
public
JgScrapCancelDto
save
(
String
submitType
,
Map
<
String
,
Object
>
mapParams
)
{
ReginParams
reginParams
=
this
.
getSelectedOrgInfo
();
try
{
Map
<
String
,
Object
>
noticeParams
=
(
Map
)
mapParams
.
get
(
PAGE_KEY
);
ReginParams
reginParams
=
this
.
getSelectedOrgInfo
();
String
[]
receiveOrg
=
String
.
valueOf
(
noticeParams
.
get
(
"receiveOrgCreditCode"
)).
split
(
"_"
);
Map
<
String
,
Object
>
noticeParams
=
(
Map
)
mapParams
.
get
(
PAGE_KEY
);
noticeParams
.
remove
(
"record"
);
String
[]
receiveOrg
=
String
.
valueOf
(
noticeParams
.
get
(
"receiveOrgCreditCode"
)).
split
(
"_"
);
String
[]
taskName
=
new
String
[]{
"流程结束"
};
noticeParams
.
remove
(
"record"
);
JgScrapCancelDto
model
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
noticeParams
),
JgScrapCancelDto
.
class
);
String
[]
taskName
=
new
String
[]{
"流程结束"
};
model
.
setReceiveOrgCode
(
receiveOrg
[
0
]);
JgScrapCancelDto
model
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
noticeParams
),
JgScrapCancelDto
.
class
);
model
.
setReceiveCompanyCode
(
receiveOrg
[
0
]);
model
.
setReceiveOrgCode
(
receiveOrg
[
0
]);
model
.
setReceiveOrgName
(
receiveOrg
[
1
]);
model
.
setReceiveCompanyCode
(
receiveOrg
[
0
]);
// 字段转换
model
.
setReceiveOrgName
(
receiveOrg
[
1
]);
convertField
(
model
);
// 字段转换
// 获取告知单号 调整之前YZBF为ZX,
convertField
(
model
);
ResponseModel
<
List
<
String
>>
listResponseModel
=
tzsServiceFeignClient
.
applicationFormCode
(
ApplicationFormTypeEnum
.
getCode
.
get
(
String
.
valueOf
(
noticeParams
.
get
(
"businessCode"
))),
1
);
// 获取告知单号 调整之前YZBF为ZX,
if
(!
ObjectUtils
.
isEmpty
(
listResponseModel
)
&&
listResponseModel
.
getStatus
()
!=
HttpStatus
.
OK
.
value
())
{
ResponseModel
<
List
<
String
>>
listResponseModel
=
tzsServiceFeignClient
.
applicationFormCode
(
ApplicationFormTypeEnum
.
getCode
.
get
(
String
.
valueOf
(
noticeParams
.
get
(
"businessCode"
))),
1
);
log
.
error
(
" 获取告知单号失败"
);
if
(!
ObjectUtils
.
isEmpty
(
listResponseModel
)
&&
listResponseModel
.
getStatus
()
!=
HttpStatus
.
OK
.
value
())
{
throw
new
BadRequest
(
"获取告知单号失败"
);
log
.
error
(
" 获取告知单号失败"
);
}
throw
new
BadRequest
(
"获取告知单号失败"
);
}
String
instanceId
=
""
;
String
instanceId
=
""
;
String
nextTaskId
=
""
;
String
nextTaskId
=
""
;
String
nextUserIds
=
""
;
String
nextUserIds
=
""
;
List
<
ProcessTaskDTO
>
processTaskDTOS
;
List
<
ProcessTaskDTO
>
processTaskDTOS
;
List
<
String
>
roleListNext
=
new
ArrayList
<>();
List
<
String
>
roleListNext
=
new
ArrayList
<>();
List
<
String
>
roleListAll
=
new
ArrayList
<>();
List
<
String
>
roleListAll
=
new
ArrayList
<>();
List
<
String
>
applyNoList
=
listResponseModel
.
getResult
();
List
<
String
>
applyNoList
=
listResponseModel
.
getResult
();
if
(
CollectionUtils
.
isEmpty
(
applyNoList
))
{
if
(
CollectionUtils
.
isEmpty
(
applyNoList
))
{
return
null
;
return
null
;
}
}
// 判断当前是否为提交
// 判断当前是否为提交
List
<
WorkflowResultDto
>
workflowResultDtos
=
null
;
List
<
WorkflowResultDto
>
workflowResultDtos
=
null
;
if
(
SUBMIT_TYPE_FLOW
.
equals
(
submitType
))
{
if
(
SUBMIT_TYPE_FLOW
.
equals
(
submitType
))
{
// 发起流程
List
<
JgScrapCancelEq
>
JgScrapCancelEqList
=
getCancelEqs
(
noticeParams
);
ActWorkflowBatchDTO
actWorkflowBatchDTO
=
new
ActWorkflowBatchDTO
();
this
.
repeatUsedEquipCheck
(
JgScrapCancelEqList
,
reginParams
.
getCompany
().
getCompanyCode
());
List
<
ActWorkflowStartDTO
>
list
=
new
ArrayList
<>();
// 发起流程
ActWorkflowBatchDTO
actWorkflowBatchDTO
=
new
ActWorkflowBatchDTO
();
ActWorkflowStartDTO
dto
=
new
ActWorkflowStartDTO
();
List
<
ActWorkflowStartDTO
>
list
=
new
ArrayList
<>();
dto
.
setProcessDefinitionKey
(
"scrapCancelNew"
);
dto
.
setBusinessKey
(
applyNoList
.
get
(
0
));
ActWorkflowStartDTO
dto
=
new
ActWorkflowStartDTO
();
dto
.
setCompleteFirstTask
(
Boolean
.
TRUE
);
dto
.
setProcessDefinitionKey
(
"scrapCancelNew"
);
// 下一节点执行人单位(下节点接收机构code)
dto
.
setBusinessKey
(
applyNoList
.
get
(
0
));
dto
.
setNextExecuteUserCompanyCode
(
model
.
getReceiveCompanyCode
());
dto
.
setCompleteFirstTask
(
Boolean
.
TRUE
);
list
.
add
(
dto
);
// 下一节点执行人单位(下节点接收机构code)
dto
.
setNextExecuteUserCompanyCode
(
model
.
getReceiveCompanyCode
());
actWorkflowBatchDTO
.
setProcess
(
list
);
list
.
add
(
dto
);
processTaskDTOS
=
cmWorkflowService
.
startBatch
(
actWorkflowBatchDTO
);
this
.
buildRoleList
(
processTaskDTOS
,
roleListNext
,
roleListAll
);
actWorkflowBatchDTO
.
setProcess
(
list
);
instanceId
=
processTaskDTOS
.
get
(
0
).
getProcessInstance
().
getId
();
processTaskDTOS
=
cmWorkflowService
.
startBatch
(
actWorkflowBatchDTO
);
nextTaskId
=
processTaskDTOS
.
get
(
0
).
getNextTask
().
get
(
0
).
getId
();
this
.
buildRoleList
(
processTaskDTOS
,
roleListNext
,
roleListAll
);
taskName
[
0
]
=
processTaskDTOS
.
get
(
0
).
getNextTask
().
get
(
0
).
getName
();
instanceId
=
processTaskDTOS
.
get
(
0
).
getProcessInstance
().
getId
();
workflowResultDtos
=
commonService
.
buildWorkFlowInfo
(
processTaskDTOS
);
nextTaskId
=
processTaskDTOS
.
get
(
0
).
getNextTask
().
get
(
0
).
getId
();
nextUserIds
=
workflowResultDtos
.
get
(
0
).
getNextExecutorUserIds
();
taskName
[
0
]
=
processTaskDTOS
.
get
(
0
).
getNextTask
().
get
(
0
).
getName
();
this
.
buildRoleList
(
processTaskDTOS
,
roleListNext
,
roleListAll
);
workflowResultDtos
=
commonService
.
buildWorkFlowInfo
(
processTaskDTOS
);
nextUserIds
=
workflowResultDtos
.
get
(
0
).
getNextExecutorUserIds
();
this
.
buildRoleList
(
processTaskDTOS
,
roleListNext
,
roleListAll
);
}
JgScrapCancel
jgScrapCancel
=
new
JgScrapCancel
();
BeanUtils
.
copyProperties
(
model
,
jgScrapCancel
);
String
applyNo
=
applyNoList
.
get
(
0
);
jgScrapCancel
.
setApplyNo
(
applyNo
);
jgScrapCancel
.
setCreateDate
(
new
Date
());
jgScrapCancel
.
setNextExecuteIds
(
String
.
join
(
","
,
roleListNext
));
jgScrapCancel
.
setInstanceStatus
(
String
.
join
(
","
,
roleListAll
));
jgScrapCancel
.
setPromoter
(
reginParams
.
getUserModel
().
getUserId
());
jgScrapCancel
.
setNextTaskId
(
Objects
.
isNull
(
workflowResultDtos
)
?
null
:
workflowResultDtos
.
get
(
0
).
getNextTaskId
());
if
(!
StringUtils
.
isEmpty
(
instanceId
))
{
jgScrapCancel
.
setInstanceId
(
instanceId
);
jgScrapCancel
.
setNextTaskId
(
nextTaskId
);
jgScrapCancel
.
setNextExecuteUserIds
(
nextUserIds
);
jgScrapCancel
.
setAuditStatus
(
String
.
valueOf
(
WorkFlowStatusEnum
.
CANCEL_RECEIVE
.
getPass
()));
}
else
{
jgScrapCancel
.
setAuditStatus
(
String
.
valueOf
(
WorkFlowStatusEnum
.
CANCEL_SUBMIT
.
getPass
()));
}
jgScrapCancel
.
setUseUnitCode
(
reginParams
.
getCompany
().
getCompanyCode
());
jgScrapCancel
.
setUseUnitName
(
reginParams
.
getCompany
().
getCompanyName
());
jgScrapCancel
.
setCreateUserId
(
RequestContext
.
getExeUserId
());
this
.
setUseRegisterInfo
(
jgScrapCancel
,
noticeParams
);
this
.
save
(
jgScrapCancel
);
// 新增代办
this
.
createTaskModel
(
jgScrapCancel
,
taskName
[
0
],
submitType
,
nextUserIds
);
// 保存设备关系表
saveEquip
(
noticeParams
,
jgScrapCancel
);
jgScrapCancel
.
setCancelTypeDesc
(
getRegistrationClass
(
jgScrapCancel
.
getCancelType
()));
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
noticeParams
));
commonService
.
saveExecuteFlowData2Redis
(
instanceId
,
buildInstanceRuntimeData
(
jgScrapCancel
));
String
equListName
=
EquipmentClassifityEnum
.
getNameByCode
(
jsonObject
.
get
(
"equListCode"
).
toString
());
save2HisData
(
jsonObject
,
jgScrapCancel
.
getSequenceNbr
().
toString
());
JgScrapCancelDto
dto
=
new
JgScrapCancelDto
();
BeanUtil
.
copyProperties
(
jgScrapCancel
,
dto
);
dto
.
setEquListName
(
equListName
);
return
dto
;
}
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
();
}
}
JgScrapCancel
jgScrapCancel
=
new
JgScrapCancel
();
}
BeanUtils
.
copyProperties
(
model
,
jgScrapCancel
);
String
applyNo
=
applyNoList
.
get
(
0
);
private
List
<
JgScrapCancelEq
>
getCancelEqs
(
Map
<
String
,
Object
>
noticeParams
)
{
jgScrapCancel
.
setApplyNo
(
applyNo
);
List
<
JgScrapCancelEq
>
JgScrapCancelEqList
=
new
ArrayList
<>();
jgScrapCancel
.
setCreateDate
(
new
Date
());
// 判断是否是报废气瓶业务处理
jgScrapCancel
.
setNextExecuteIds
(
String
.
join
(
","
,
roleListNext
));
if
(
CancelTypeEnum
.
SCRAPPED
.
getCode
().
equals
(
noticeParams
.
get
(
"cancelType"
))
&&
jgScrapCancel
.
setInstanceStatus
(
String
.
join
(
","
,
roleListAll
));
CylinderTypeEnum
.
CYLINDER
.
getCode
().
equals
(
noticeParams
.
get
(
"EQU_CATEGORY_CODE"
)))
{
jgScrapCancel
.
setPromoter
(
reginParams
.
getUserModel
().
getUserId
());
List
<
Map
<
String
,
Object
>>
list
=
(
List
<
Map
<
String
,
Object
>>)
noticeParams
.
get
(
"equipments"
);
jgScrapCancel
.
setNextTaskId
(
Objects
.
isNull
(
workflowResultDtos
)
?
null
:
workflowResultDtos
.
get
(
0
).
getNextTaskId
());
for
(
Map
<
String
,
Object
>
equip
:
list
)
{
if
(!
StringUtils
.
isEmpty
(
instanceId
))
{
JgScrapCancelEq
jgScrapCancelEq
=
new
JgScrapCancelEq
();
jgScrapCancel
.
setInstanceId
(
instanceId
);
jgScrapCancelEq
.
setEquId
(
equip
.
get
(
"SEQUENCE_NBR"
).
toString
());
jgScrapCancel
.
setNextTaskId
(
nextTaskId
);
JgScrapCancelEqList
.
add
(
jgScrapCancelEq
);
jgScrapCancel
.
setNextExecuteUserIds
(
nextUserIds
);
}
jgScrapCancel
.
setAuditStatus
(
String
.
valueOf
(
WorkFlowStatusEnum
.
CANCEL_RECEIVE
.
getPass
()));
}
else
{
}
else
{
jgScrapCancel
.
setAuditStatus
(
String
.
valueOf
(
WorkFlowStatusEnum
.
CANCEL_SUBMIT
.
getPass
()));
List
<
Map
<
String
,
Object
>>
certificates
;
// 证列表
if
(
CylinderTypeEnum
.
SPECIAL_CYLINDER
.
getCode
().
equals
(
noticeParams
.
get
(
"EQU_CATEGORY_CODE"
)))
{
certificates
=
(
List
<
Map
<
String
,
Object
>>)
noticeParams
.
get
(
"cylCertificates"
);
}
else
{
certificates
=
(
List
<
Map
<
String
,
Object
>>)
noticeParams
.
get
(
"certificates"
);
}
// 使用登记证表idList
List
<
String
>
registrationIdList
=
certificates
.
stream
().
map
(
item
->
item
.
get
(
"sequenceNbr"
).
toString
()).
collect
(
Collectors
.
toList
());
List
<
JSONObject
>
equipmentList
=
jgUseRegistrationManageService
.
queryEquByCertificateSeqList
(
registrationIdList
.
stream
().
map
(
Long:
:
parseLong
).
collect
(
Collectors
.
toList
()));
for
(
JSONObject
equip
:
equipmentList
)
{
JgScrapCancelEq
jgScrapCancelEq
=
new
JgScrapCancelEq
();
jgScrapCancelEq
.
setEquId
(
equip
.
getString
(
"SEQUENCE_NBR"
));
JgScrapCancelEqList
.
add
(
jgScrapCancelEq
);
}
}
}
jgScrapCancel
.
setUseUnitCode
(
reginParams
.
getCompany
().
getCompanyCode
());
return
JgScrapCancelEqList
;
jgScrapCancel
.
setUseUnitName
(
reginParams
.
getCompany
().
getCompanyName
());
}
jgScrapCancel
.
setCreateUserId
(
RequestContext
.
getExeUserId
());
this
.
setUseRegisterInfo
(
jgScrapCancel
,
noticeParams
);
private
void
repeatUsedEquipCheck
(
List
<
JgScrapCancelEq
>
eqList
,
String
companyCode
)
{
this
.
save
(
jgScrapCancel
);
eqList
.
forEach
(
cancelEq
->
EquipUsedCheckStrategyContext
.
getUsedStrategy
(
PAGE_KEY
)
// 新增代办
.
registrationRepeatUsedCheck
(
cancelEq
.
getEquId
(),
companyCode
));
this
.
createTaskModel
(
jgScrapCancel
,
taskName
[
0
],
submitType
,
nextUserIds
);
}
// 保存设备关系表
saveEquip
(
noticeParams
,
jgScrapCancel
);
/**
jgScrapCancel
.
setCancelTypeDesc
(
getRegistrationClass
(
jgScrapCancel
.
getCancelType
()));
* 删除 redis校验重复引用设备的数据
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
noticeParams
));
*/
commonService
.
saveExecuteFlowData2Redis
(
instanceId
,
buildInstanceRuntimeData
(
jgScrapCancel
));
private
void
delRepeatUseEquipData
(
JgScrapCancel
notice
)
{
String
equListName
=
EquipmentClassifityEnum
.
getNameByCode
(
jsonObject
.
get
(
"equListCode"
).
toString
());
if
(
NOT_FLOWING_STATE
.
contains
(
notice
.
getAuditStatus
()))
{
save2HisData
(
jsonObject
,
jgScrapCancel
.
getSequenceNbr
().
toString
());
LambdaQueryWrapper
<
JgScrapCancelEq
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
JgScrapCancelDto
dto
=
new
JgScrapCancelDto
();
queryWrapper
.
eq
(
JgScrapCancelEq:
:
getEquipTransferId
,
notice
.
getSequenceNbr
());
BeanUtil
.
copyProperties
(
jgScrapCancel
,
dto
);
List
<
JgScrapCancelEq
>
noticeEqList
=
jgScrapCancelEqService
.
list
(
queryWrapper
);
dto
.
setEquListName
(
equListName
);
noticeEqList
.
forEach
(
noticeEq
->
EquipUsedCheckStrategyContext
.
getUsedStrategy
(
PAGE_KEY
)
return
dto
;
.
delDataForCheckEquipRepeatUsed
(
Collections
.
singletonList
(
noticeEq
.
getEquId
()),
notice
.
getUseUnitCode
())
);
}
}
private
void
rollBackForDelRedisData
()
{
FlowingEquipRedisContext
.
getContext
().
forEach
(
e
->
EquipUsedCheckStrategyContext
.
getUsedStrategy
(
PAGE_KEY
)
.
delDataForCheckWithKey
(
e
.
getData
(),
e
.
getRedisKey
()));
}
}
/**
/**
...
@@ -435,90 +510,106 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
...
@@ -435,90 +510,106 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
@GlobalTransactional
(
rollbackFor
=
Exception
.
class
)
@GlobalTransactional
(
rollbackFor
=
Exception
.
class
)
public
JgScrapCancelDto
updateInfo
(
String
submitType
,
JgScrapCancelDto
jgScrapCancelDto
,
String
op
,
JSONObject
pageData
)
{
public
JgScrapCancelDto
updateInfo
(
String
submitType
,
JgScrapCancelDto
jgScrapCancelDto
,
String
op
,
JSONObject
pageData
)
{
if
(
Objects
.
isNull
(
jgScrapCancelDto
)
||
StringUtils
.
isEmpty
(
submitType
))
{
try
{
throw
new
IllegalArgumentException
(
"参数不能为空"
);
}
if
(
Objects
.
isNull
(
jgScrapCancelDto
)
||
StringUtils
.
isEmpty
(
submitType
))
{
// 字段转换
throw
new
IllegalArgumentException
(
"参数不能为空"
);
this
.
convertField
(
jgScrapCancelDto
);
}
List
<
String
>
roleListNext
=
new
ArrayList
<>();
// 字段转换
List
<
String
>
roleListAll
=
new
ArrayList
<>();
this
.
convertField
(
jgScrapCancelDto
);
if
(
SUBMIT_TYPE_FLOW
.
equals
(
submitType
))
{
List
<
String
>
roleListNext
=
new
ArrayList
<>();
// 更新并提交
List
<
String
>
roleListAll
=
new
ArrayList
<>();
// 发起流程
if
(
SUBMIT_TYPE_FLOW
.
equals
(
submitType
))
{
if
(!
StringUtils
.
hasText
(
jgScrapCancelDto
.
getInstanceId
()))
{
ReginParams
reginParams
=
JSONObject
.
parseObject
(
redisUtils
.
get
(
RedisKey
.
buildReginKey
(
RequestContext
.
getExeUserId
(),
RequestContext
.
getToken
())).
toString
(),
ReginParams
.
class
);
// 未进流程直接发起并执行
List
<
JgScrapCancelEq
>
JgScrapCancelEqList
=
getCancelEqs
(
pageData
);
List
<
ProcessTaskDTO
>
processTasks
;
this
.
repeatUsedEquipCheck
(
JgScrapCancelEqList
,
reginParams
.
getCompany
().
getCompanyCode
());
ActWorkflowBatchDTO
actWorkflowBatchDTO
=
new
ActWorkflowBatchDTO
();
// 更新并提交
List
<
ActWorkflowStartDTO
>
list
=
new
ArrayList
<>();
// 发起流程
ActWorkflowStartDTO
dto
=
new
ActWorkflowStartDTO
();
if
(!
StringUtils
.
hasText
(
jgScrapCancelDto
.
getInstanceId
()))
{
dto
.
setProcessDefinitionKey
(
"scrapCancelNew"
);
// 未进流程直接发起并执行
dto
.
setBusinessKey
(
jgScrapCancelDto
.
getApplyNo
());
List
<
ProcessTaskDTO
>
processTasks
;
dto
.
setCompleteFirstTask
(
true
);
ActWorkflowBatchDTO
actWorkflowBatchDTO
=
new
ActWorkflowBatchDTO
();
dto
.
setNextExecuteUserCompanyCode
(
jgScrapCancelDto
.
getReceiveCompanyCode
());
List
<
ActWorkflowStartDTO
>
list
=
new
ArrayList
<>();
list
.
add
(
dto
);
ActWorkflowStartDTO
dto
=
new
ActWorkflowStartDTO
();
actWorkflowBatchDTO
.
setProcess
(
list
);
dto
.
setProcessDefinitionKey
(
"scrapCancelNew"
);
processTasks
=
cmWorkflowService
.
startBatch
(
actWorkflowBatchDTO
);
dto
.
setBusinessKey
(
jgScrapCancelDto
.
getApplyNo
());
String
instanceId
=
processTasks
.
get
(
0
).
getProcessInstance
().
getId
();
dto
.
setCompleteFirstTask
(
true
);
String
nextTaskId
=
processTasks
.
get
(
0
).
getNextTask
().
get
(
0
).
getId
();
dto
.
setNextExecuteUserCompanyCode
(
jgScrapCancelDto
.
getReceiveCompanyCode
());
String
taskName
=
processTasks
.
get
(
0
).
getNextTask
().
get
(
0
).
getName
();
list
.
add
(
dto
);
this
.
buildRoleList
(
processTasks
,
roleListNext
,
roleListAll
);
actWorkflowBatchDTO
.
setProcess
(
list
);
List
<
WorkflowResultDto
>
workflowResultDtos
=
commonService
.
buildWorkFlowInfo
(
processTasks
);
processTasks
=
cmWorkflowService
.
startBatch
(
actWorkflowBatchDTO
);
String
nextUserIds
=
workflowResultDtos
.
get
(
0
).
getNextExecutorUserIds
();
String
instanceId
=
processTasks
.
get
(
0
).
getProcessInstance
().
getId
();
jgScrapCancelDto
.
setInstanceStatus
(
String
.
join
(
","
,
roleListAll
));
String
nextTaskId
=
processTasks
.
get
(
0
).
getNextTask
().
get
(
0
).
getId
();
jgScrapCancelDto
.
setInstanceId
(
instanceId
);
String
taskName
=
processTasks
.
get
(
0
).
getNextTask
().
get
(
0
).
getName
();
jgScrapCancelDto
.
setNextExecuteIds
(
String
.
join
(
","
,
roleListNext
));
this
.
buildRoleList
(
processTasks
,
roleListNext
,
roleListAll
);
jgScrapCancelDto
.
setNextTaskId
(
nextTaskId
);
List
<
WorkflowResultDto
>
workflowResultDtos
=
commonService
.
buildWorkFlowInfo
(
processTasks
);
jgScrapCancelDto
.
setNextExecuteUserIds
(
nextUserIds
);
String
nextUserIds
=
workflowResultDtos
.
get
(
0
).
getNextExecutorUserIds
();
jgScrapCancelDto
.
setAuditStatus
(
WorkFlowStatusEnum
.
CANCEL_RECEIVE
.
getPass
());
// 创建待办
JgScrapCancel
bean
=
new
JgScrapCancel
();
BeanUtil
.
copyProperties
(
jgScrapCancelDto
,
bean
);
commonService
.
deleteTasksByRelationId
(
String
.
valueOf
(
jgScrapCancelDto
.
getSequenceNbr
()));
createTaskModel
(
bean
,
taskName
,
"1"
,
nextUserIds
);
}
else
{
// 已经在流程中,执行一步
ProcessTaskDTO
processTaskDTO
=
submit
(
jgScrapCancelDto
);
String
nextTaskId
=
processTaskDTO
.
getNextTask
().
get
(
0
).
getId
();
String
taskName
=
processTaskDTO
.
getNextTask
().
get
(
0
).
getName
();
this
.
buildRoleList
(
Collections
.
singletonList
(
processTaskDTO
),
roleListNext
,
roleListAll
);
List
<
WorkflowResultDto
>
workflowResultDtos
=
commonService
.
buildWorkFlowInfo
(
Collections
.
singletonList
(
processTaskDTO
));
String
nextUserIds
=
workflowResultDtos
.
get
(
0
).
getNextExecutorUserIds
();
// 查询下节点任务
if
(!
ObjectUtils
.
isEmpty
(
jgScrapCancelDto
.
getInstanceStatus
()))
{
jgScrapCancelDto
.
setInstanceStatus
(
jgScrapCancelDto
.
getInstanceStatus
()
+
","
+
String
.
join
(
""
,
roleListNext
));
}
else
{
jgScrapCancelDto
.
setInstanceStatus
(
String
.
join
(
","
,
roleListAll
));
jgScrapCancelDto
.
setInstanceStatus
(
String
.
join
(
","
,
roleListAll
));
jgScrapCancelDto
.
setInstanceId
(
instanceId
);
jgScrapCancelDto
.
setNextExecuteIds
(
String
.
join
(
","
,
roleListNext
));
jgScrapCancelDto
.
setNextTaskId
(
nextTaskId
);
jgScrapCancelDto
.
setNextExecuteUserIds
(
nextUserIds
);
jgScrapCancelDto
.
setAuditStatus
(
WorkFlowStatusEnum
.
CANCEL_RECEIVE
.
getPass
());
// 创建待办
JgScrapCancel
bean
=
new
JgScrapCancel
();
BeanUtil
.
copyProperties
(
jgScrapCancelDto
,
bean
);
commonService
.
deleteTasksByRelationId
(
String
.
valueOf
(
jgScrapCancelDto
.
getSequenceNbr
()));
createTaskModel
(
bean
,
taskName
,
"1"
,
nextUserIds
);
}
else
{
// 已经在流程中,执行一步
ProcessTaskDTO
processTaskDTO
=
submit
(
jgScrapCancelDto
);
String
nextTaskId
=
processTaskDTO
.
getNextTask
().
get
(
0
).
getId
();
String
taskName
=
processTaskDTO
.
getNextTask
().
get
(
0
).
getName
();
this
.
buildRoleList
(
Collections
.
singletonList
(
processTaskDTO
),
roleListNext
,
roleListAll
);
List
<
WorkflowResultDto
>
workflowResultDtos
=
commonService
.
buildWorkFlowInfo
(
Collections
.
singletonList
(
processTaskDTO
));
String
nextUserIds
=
workflowResultDtos
.
get
(
0
).
getNextExecutorUserIds
();
// 查询下节点任务
if
(!
ObjectUtils
.
isEmpty
(
jgScrapCancelDto
.
getInstanceStatus
()))
{
jgScrapCancelDto
.
setInstanceStatus
(
jgScrapCancelDto
.
getInstanceStatus
()
+
","
+
String
.
join
(
""
,
roleListNext
));
}
else
{
jgScrapCancelDto
.
setInstanceStatus
(
String
.
join
(
","
,
roleListAll
));
}
jgScrapCancelDto
.
setPromoter
(
RequestContext
.
getExeUserId
());
jgScrapCancelDto
.
setNextExecuteIds
(
String
.
join
(
","
,
roleListNext
));
jgScrapCancelDto
.
setAuditStatus
(
String
.
valueOf
(
WorkFlowStatusEnum
.
CANCEL_RECEIVE
.
getPass
()));
jgScrapCancelDto
.
setNextTaskId
(
nextTaskId
);
// 更新下一步可执行人
jgScrapCancelDto
.
setNextExecuteUserIds
(
nextUserIds
);
JgScrapCancel
jgScrapCancel
=
new
JgScrapCancel
();
BeanUtils
.
copyProperties
(
jgScrapCancelDto
,
jgScrapCancel
);
updateTaskModel
(
jgScrapCancelDto
,
"0"
);
createTaskModel
(
jgScrapCancel
,
taskName
,
"1"
,
nextUserIds
);
}
}
jgScrapCancelDto
.
setPromoter
(
RequestContext
.
getExeUserId
());
JgScrapCancel
cancel
=
new
JgScrapCancel
();
jgScrapCancelDto
.
setNextExecuteIds
(
String
.
join
(
","
,
roleListNext
));
BeanUtils
.
copyProperties
(
jgScrapCancelDto
,
cancel
);
jgScrapCancelDto
.
setAuditStatus
(
String
.
valueOf
(
WorkFlowStatusEnum
.
CANCEL_RECEIVE
.
getPass
()));
this
.
setUseRegisterInfo
(
cancel
,
new
HashMap
<>(
pageData
));
jgScrapCancelDto
.
setNextTaskId
(
nextTaskId
);
this
.
updateById
(
cancel
);
// 更新下一步可执行人
jgScrapCancelDto
.
setNextExecuteUserIds
(
nextUserIds
);
JgScrapCancel
jgScrapCancel
=
new
JgScrapCancel
();
JgScrapCancel
jgScrapCancel
=
new
JgScrapCancel
();
BeanUtils
.
copyProperties
(
jgScrapCancelDto
,
jgScrapCancel
);
BeanUtils
.
copyProperties
(
jgScrapCancelDto
,
jgScrapCancel
,
"useUnitName"
,
"useUnitName"
);
updateTaskModel
(
jgScrapCancelDto
,
"0"
);
this
.
insertJgScrapCancelEqAfterDelete
(
jgScrapCancel
,
pageData
);
createTaskModel
(
jgScrapCancel
,
taskName
,
"1"
,
nextUserIds
);
commonService
.
saveExecuteFlowData2Redis
(
jgScrapCancel
.
getInstanceId
(),
buildInstanceRuntimeData
(
jgScrapCancel
));
}
}
else
{
JgScrapCancel
cancel
=
new
JgScrapCancel
();
// 更新操作
BeanUtils
.
copyProperties
(
jgScrapCancelDto
,
cancel
);
JgScrapCancel
bean
=
new
JgScrapCancel
();
this
.
setUseRegisterInfo
(
cancel
,
new
HashMap
<>(
pageData
));
BeanUtils
.
copyProperties
(
jgScrapCancelDto
,
bean
);
this
.
updateById
(
cancel
);
bean
.
setCancelCertificate
(
JSON
.
toJSONString
(
jgScrapCancelDto
.
getCancelCertificateList
()));
JgScrapCancel
jgScrapCancel
=
new
JgScrapCancel
();
this
.
setUseRegisterInfo
(
bean
,
new
HashMap
<>(
pageData
));
BeanUtils
.
copyProperties
(
jgScrapCancelDto
,
jgScrapCancel
,
"useUnitName"
,
"useUnitName"
);
this
.
updateById
(
bean
);
this
.
insertJgScrapCancelEqAfterDelete
(
jgScrapCancel
,
pageData
);
this
.
insertJgScrapCancelEqAfterDelete
(
bean
,
pageData
);
commonService
.
saveExecuteFlowData2Redis
(
jgScrapCancel
.
getInstanceId
(),
buildInstanceRuntimeData
(
jgScrapCancel
));
}
}
else
{
commonService
.
saveOrUpdateHistory
(
getRegistrationClass
(
jgScrapCancelDto
.
getCancelType
()),
pageData
,
""
,
jgScrapCancelDto
.
getSequenceNbr
().
toString
());
// 更新操作
return
jgScrapCancelDto
;
JgScrapCancel
bean
=
new
JgScrapCancel
();
}
catch
(
BadRequest
|
LocalBadRequest
e
)
{
BeanUtils
.
copyProperties
(
jgScrapCancelDto
,
bean
);
log
.
error
(
e
.
getMessage
(),
e
);
bean
.
setCancelCertificate
(
JSON
.
toJSONString
(
jgScrapCancelDto
.
getCancelCertificateList
()));
this
.
rollBackForDelRedisData
();
this
.
setUseRegisterInfo
(
bean
,
new
HashMap
<>(
pageData
));
throw
e
;
this
.
updateById
(
bean
);
}
catch
(
Exception
e
)
{
this
.
insertJgScrapCancelEqAfterDelete
(
bean
,
pageData
);
log
.
error
(
e
.
getMessage
(),
e
);
this
.
rollBackForDelRedisData
();
throw
new
BadRequest
(
"保存失败!"
);
}
finally
{
FlowingEquipRedisContext
.
clean
();
}
}
commonService
.
saveOrUpdateHistory
(
getRegistrationClass
(
jgScrapCancelDto
.
getCancelType
()),
pageData
,
""
,
jgScrapCancelDto
.
getSequenceNbr
().
toString
());
return
jgScrapCancelDto
;
}
}
private
void
insertJgScrapCancelEqAfterDelete
(
JgScrapCancel
jgScrapCancel
,
JSONObject
pageData
)
{
private
void
insertJgScrapCancelEqAfterDelete
(
JgScrapCancel
jgScrapCancel
,
JSONObject
pageData
)
{
...
@@ -723,6 +814,7 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
...
@@ -723,6 +814,7 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
// redis流程实时数据更新
// redis流程实时数据更新
commonService
.
saveExecuteFlowData2Redis
(
instanceId
,
this
.
buildInstanceRuntimeData
(
jgScrapCancel
));
commonService
.
saveExecuteFlowData2Redis
(
instanceId
,
this
.
buildInstanceRuntimeData
(
jgScrapCancel
));
this
.
delRepeatUseEquipData
(
jgScrapCancel
);
}
catch
(
InterruptedException
e
)
{
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
finally
{
}
finally
{
...
@@ -780,6 +872,7 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
...
@@ -780,6 +872,7 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
// redis流程实时数据更新
// redis流程实时数据更新
commonService
.
saveExecuteFlowData2Redis
(
instanceId
,
this
.
buildInstanceRuntimeData
(
jgScrapCancel
));
commonService
.
saveExecuteFlowData2Redis
(
instanceId
,
this
.
buildInstanceRuntimeData
(
jgScrapCancel
));
this
.
delRepeatUseEquipData
(
jgScrapCancel
);
}
catch
(
InterruptedException
e
)
{
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
finally
{
}
finally
{
...
...
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