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
40bf550a
Commit
40bf550a
authored
Jul 18, 2024
by
王果
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
21052 维保备案限制设备不能多次出现在执行的流程中
parent
e17d2186
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
110 additions
and
16 deletions
+110
-16
JgMaintenanceContractMapper.java
...oot/module/jg/api/mapper/JgMaintenanceContractMapper.java
+3
-0
JgMaintenanceContractMapper.xml
...src/main/resources/mapper/JgMaintenanceContractMapper.xml
+10
-0
JgMaintenanceContractController.java
...le/jg/biz/controller/JgMaintenanceContractController.java
+3
-4
JgMaintenanceContractServiceImpl.java
...jg/biz/service/impl/JgMaintenanceContractServiceImpl.java
+39
-12
MaintenanceContractEquipUsedCheckImpl.java
...z/service/impl/MaintenanceContractEquipUsedCheckImpl.java
+55
-0
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/JgMaintenanceContractMapper.java
View file @
40bf550a
...
...
@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.jg.api.mapper;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.boot.module.jg.api.dto.CompanyEquipCountDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.JgMaintenanceContractDto
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgMaintenanceContract
;
import
com.yeejoin.amos.boot.module.jg.api.vo.SortVo
;
...
...
@@ -30,4 +31,6 @@ public interface JgMaintenanceContractMapper extends BaseMapper<JgMaintenanceCon
void
updatePromoter
(
@Param
(
"id"
)
Long
id
);
List
<
Map
<
String
,
Object
>>
selectEquipList
(
@Param
(
"id"
)
Long
id
);
List
<
CompanyEquipCountDto
>
queryForFlowingEquipList
();
}
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-api/src/main/resources/mapper/JgMaintenanceContractMapper.xml
View file @
40bf550a
...
...
@@ -155,4 +155,14 @@
left JOIN idx_biz_jg_register_info jri on mc.equ_id = jri.RECORD
WHERE mc.equip_transfer_id = #{id}
</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_maintenance_contract a,
tzs_jg_maintenance_contract_eq b
where a.sequence_nbr = b.equip_transfer_id
and a.status in ('监管单位待受理','维保单位待受理')
GROUP BY a.use_unit_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/controller/JgMaintenanceContractController.java
View file @
40bf550a
...
...
@@ -13,8 +13,6 @@ import com.yeejoin.amos.boot.module.jg.api.vo.JgMaintenanceContractVo;
import
com.yeejoin.amos.boot.module.jg.biz.service.impl.JgMaintenanceContractServiceImpl
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -23,6 +21,7 @@ import org.typroject.tyboot.core.foundation.enumeration.UserType;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
java.util.Map
;
/**
...
...
@@ -176,8 +175,8 @@ public class JgMaintenanceContractController extends BaseController {
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PostMapping
(
value
=
"/cancelApplication"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"维保备案作废"
,
notes
=
"维保备案作废"
)
public
ResponseModel
<
JgMaintenanceContract
>
cancelApplication
(
@RequestBody
JgMaintenanceContractDto
dto
){
JgMaintenanceContract
result
=
jgMaintenanceContractServiceImpl
.
cancelApplication
(
dto
.
getSequenceNbr
(),
dto
.
getCancelReason
());
public
ResponseModel
<
JgMaintenanceContract
>
cancelApplication
(
@RequestBody
JgMaintenanceContractDto
dto
)
{
JgMaintenanceContract
result
=
jgMaintenanceContractServiceImpl
.
cancelApplication
(
dto
.
getSequenceNbr
(),
dto
.
getCancelReason
());
return
ResponseHelper
.
buildResponse
(
result
);
}
}
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/JgMaintenanceContractServiceImpl.java
View file @
40bf550a
...
...
@@ -25,6 +25,7 @@ import com.yeejoin.amos.boot.module.jg.api.service.IJgInstallationNoticeService;
import
com.yeejoin.amos.boot.module.jg.api.service.IJgMaintenanceContractService
;
import
com.yeejoin.amos.boot.module.jg.api.vo.JgMaintenanceContractVo
;
import
com.yeejoin.amos.boot.module.jg.api.vo.SortVo
;
import
com.yeejoin.amos.boot.module.jg.biz.context.EquipUsedCheckStrategyContext
;
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.IIdxBizJgUseInfoService
;
...
...
@@ -72,6 +73,7 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
public
static
final
String
SUBMIT_DATA
=
"0"
;
public
static
final
String
SUBMIT_TYPE_FLOW
=
"1"
;
public
static
final
String
WB_PROCESS_DEFINITION_KEY
=
"maintenanceFiling"
;
private
final
List
<
String
>
NOT_FLOWING_STATE
=
Arrays
.
asList
(
"使用单位待提交"
,
"维保单位已驳回"
,
"使用单位已撤回"
,
"已作废"
,
"已完成"
);
@Autowired
TzsServiceFeignClient
tzsServiceFeignClient
;
...
...
@@ -211,6 +213,7 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
ProcessTaskDTO
complete
=
workflowService
.
completeOrReject
(
taskId
,
dto
,
operate
);
// 更新下一步执行人、创建待办
updateExecuteIds
(
instanceId
,
id
,
operate
,
complete
);
this
.
delRepeatUseEquipData
(
contract
.
getSequenceNbr
(),
contract
.
getStatus
(),
contract
.
getUseUnitCode
());
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
finally
{
...
...
@@ -220,6 +223,22 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
}
}
/**
* 删除 redis校验重复引用设备的数据
*/
private
void
delRepeatUseEquipData
(
Long
id
,
String
status
,
String
companyCode
)
{
List
<
JgMaintenanceContractEq
>
list
=
jgMaintenanceContractEqService
.
lambdaQuery
().
eq
(
JgMaintenanceContractEq:
:
getEquipTransferId
,
id
).
list
();
// 获取单位变更设备列表
if
(
CollectionUtils
.
isEmpty
(
list
))
{
return
;
}
List
<
String
>
records
=
list
.
stream
().
map
(
JgMaintenanceContractEq:
:
getEquId
).
collect
(
Collectors
.
toList
());
if
(
NOT_FLOWING_STATE
.
contains
(
status
))
{
EquipUsedCheckStrategyContext
.
getUsedStrategy
(
WB_PROCESS_DEFINITION_KEY
)
.
delDataForCheckEquipRepeatUsed
(
records
,
companyCode
);
}
}
public
InstanceRuntimeData
buildInstanceRuntimeData
(
JgMaintenanceContract
jgMaintenanceContract
)
{
return
InstanceRuntimeData
.
builder
()
.
nextExecuteUserIds
(
jgMaintenanceContract
.
getNextExecuteUserIds
())
...
...
@@ -256,7 +275,7 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
list
.
forEach
(
seq
->
{
JgMaintenanceContract
jgMaintenanceContract
=
this
.
baseMapper
.
selectById
(
seq
);
// 删除待办 及 中止流程
commonService
.
deleteTaskModel
(
String
.
valueOf
(
jgMaintenanceContract
.
getSequenceNbr
()),
jgMaintenanceContract
.
getInstanceId
());
commonService
.
deleteTaskModel
(
String
.
valueOf
(
jgMaintenanceContract
.
getSequenceNbr
()),
jgMaintenanceContract
.
getInstanceId
());
// 删除业务单
this
.
baseMapper
.
deleteById
(
seq
);
// 删除对应eq
...
...
@@ -370,6 +389,7 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
// redis流程实时数据更新
commonService
.
saveExecuteFlowData2Redis
(
instanceId
,
this
.
buildInstanceRuntimeData
(
contract
));
this
.
delRepeatUseEquipData
(
contract
.
getSequenceNbr
(),
contract
.
getStatus
(),
contract
.
getUseUnitCode
());
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
finally
{
...
...
@@ -441,9 +461,9 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
jgMaintenanceContractEqService
.
getBaseMapper
().
delete
(
lambda
);
}
// 更新关联设备信息
List
<
JgMaintenanceContractEq
>
equipList
=
new
ArrayList
<>();
if
(!
CollectionUtils
.
isEmpty
(
equipmentLists
))
{
contract
.
setEquNum
(
equipmentLists
.
size
());
List
<
JgMaintenanceContractEq
>
equipList
=
new
ArrayList
<>();
equipmentLists
.
forEach
(
x
->
{
JgMaintenanceContractEq
equip
=
new
JgMaintenanceContractEq
();
equip
.
setEquId
(
String
.
valueOf
(
x
.
get
(
"SEQUENCE_NBR"
)));
...
...
@@ -546,6 +566,11 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
updateById
(
contract
);
// 设备数据存历史数据,在流程完成时使用
commonService
.
saveOrUpdateHistory
(
BusinessTypeEnum
.
JG_MAINTENANCE_RECORD
.
getName
(),
JSON
.
parseArray
(
JSON
.
toJSONString
(
equipmentLists
)),
null
,
contract
.
getSequenceNbr
().
toString
());
if
(
SUBMIT_TYPE_FLOW
.
equals
(
submit
))
{
//放在最后面防止前面有异常
//如果是提交,用于校验设备是否已经在流程中,如果不在标记设备已经在流程中
equipList
.
forEach
(
equip
->
EquipUsedCheckStrategyContext
.
getUsedStrategy
(
WB_PROCESS_DEFINITION_KEY
)
.
equipRepeatUsedCheck
(
String
.
valueOf
(
equip
.
getEquId
()),
reginParams
.
getCompany
().
getCompanyCode
()));
}
return
Collections
.
singletonList
(
contract
);
}
...
...
@@ -784,37 +809,39 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
return
null
;
}
private
void
processElseDataByStatus
(
FlowStatusEnum
oldNoticeStatus
,
JgMaintenanceContract
maintenanceC
ontract
)
{
private
void
processElseDataByStatus
(
FlowStatusEnum
oldNoticeStatus
,
JgMaintenanceContract
c
ontract
)
{
switch
(
oldNoticeStatus
)
{
case
TO_BE_SUBMITTED:
// 1.写入历史表
this
.
saveHisDataBeforeUpdate
(
maintenanceC
ontract
);
this
.
saveHisDataBeforeUpdate
(
c
ontract
);
// 2.删除暂存时生成的待办
commonService
.
deleteTasksAndStopProcess
(
maintenanceContract
.
getInstanceId
(),
"监管单位主动作废"
);
commonService
.
deleteTasksAndStopProcess
(
contract
.
getInstanceId
(),
"监管单位主动作废"
);
break
;
case
TO_BE_FINISHED:
// 1.回退表单
updateIdxBizJgRegisterInfo
(
maintenanceC
ontract
);
updateIdxBizJgRegisterInfo
(
c
ontract
);
break
;
default
:
// 流程中(驳回、撤回等)
// 1.待办任务更新为已完成
this
.
finishedTask
(
maintenanceC
ontract
);
this
.
finishedTask
(
c
ontract
);
// 2.终止流程-工作流报错暂时注释掉
iCmWorkflowService
.
stopProcess
(
maintenanceContract
.
getInstanceId
(),
maintenanceC
ontract
.
getCancelReason
());
iCmWorkflowService
.
stopProcess
(
contract
.
getInstanceId
(),
c
ontract
.
getCancelReason
());
// 3.写入历史表
this
.
saveHisDataBeforeUpdate
(
maintenanceContract
);
this
.
saveHisDataBeforeUpdate
(
contract
);
// 4、释放流程中设备
this
.
delRepeatUseEquipData
(
contract
.
getSequenceNbr
(),
contract
.
getStatus
(),
contract
.
getUseUnitCode
());
}
}
private
void
updateIdxBizJgRegisterInfo
(
JgMaintenanceContract
maintenanceContract
)
{
LambdaQueryWrapper
<
JgMaintenanceContractEq
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
JgMaintenanceContractEq:
:
getEquipTransferId
,
maintenanceContract
.
getSequenceNbr
());
List
<
JgMaintenanceContractEq
>
equipmentLists
=
maintenanceContractEqMapper
.
selectList
(
queryWrapper
);
if
(!
CollectionUtils
.
isEmpty
(
equipmentLists
))
{
List
<
String
>
list
=
equipmentLists
.
stream
().
filter
(
t
->
t
.
getEquId
()
!=
null
).
map
(
JgMaintenanceContractEq:
:
getEquId
).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
equipmentLists
))
{
List
<
String
>
list
=
equipmentLists
.
stream
().
filter
(
t
->
t
.
getEquId
()
!=
null
).
map
(
JgMaintenanceContractEq:
:
getEquId
).
collect
(
Collectors
.
toList
());
maintenanceContractEqMapper
.
updateIdxBizJgRegisterInfo
(
list
);
}
}
...
...
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/MaintenanceContractEquipUsedCheckImpl.java
0 → 100644
View file @
40bf550a
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.JgChangeRegistrationUnitMapper
;
import
com.yeejoin.amos.boot.module.jg.api.mapper.JgMaintenanceContractMapper
;
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
MaintenanceContractEquipUsedCheckImpl
extends
BaseEquipUsedCheckService
{
private
RedissonClient
redissonClient
;
private
String
bizType
=
"maintenanceFiling"
;
private
JgMaintenanceContractMapper
maintenanceContractMapper
;
public
MaintenanceContractEquipUsedCheckImpl
(
RedissonClient
redissonClient
,
JgMaintenanceContractMapper
maintenanceContractMapper
)
{
this
.
redissonClient
=
redissonClient
;
this
.
maintenanceContractMapper
=
maintenanceContractMapper
;
}
@Override
public
RedissonClient
getRedisClient
()
{
return
redissonClient
;
}
@Override
public
String
getApplyBizType
()
{
return
bizType
;
}
@Override
public
void
init
()
{
// 初始化已经完成或者在流程中安装告知的设备数据
List
<
CompanyEquipCountDto
>
companyEquipCountDtos
=
maintenanceContractMapper
.
queryForFlowingEquipList
();
companyEquipCountDtos
.
forEach
(
c
->
{
RBucket
<
Set
<
String
>>
rBucket
=
redissonClient
.
getBucket
(
getFlowingEquipRedisKey
(
c
.
getCompanyCode
(),
bizType
));
rBucket
.
set
(
Arrays
.
stream
(
c
.
getRecords
().
split
(
","
)).
collect
(
Collectors
.
toSet
()));
});
}
}
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