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
13d4c293
Commit
13d4c293
authored
Mar 13, 2024
by
suhuiguang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.告知类修改并发问题
parent
bff0eab0
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
818 additions
and
595 deletions
+818
-595
JgMaintainNoticeDto.java
...join/amos/boot/module/jg/api/dto/JgMaintainNoticeDto.java
+0
-2
JgReformNoticeDto.java
...eejoin/amos/boot/module/jg/api/dto/JgReformNoticeDto.java
+7
-4
ApplicationRunnerImpl.java
...n/amos/boot/module/jg/biz/init/ApplicationRunnerImpl.java
+14
-1
JgInstallationNoticeServiceImpl.java
.../jg/biz/service/impl/JgInstallationNoticeServiceImpl.java
+251
-205
JgMaintainNoticeServiceImpl.java
...dule/jg/biz/service/impl/JgMaintainNoticeServiceImpl.java
+184
-131
JgReformNoticeServiceImpl.java
...module/jg/biz/service/impl/JgReformNoticeServiceImpl.java
+161
-107
JgTransferNoticeServiceImpl.java
...dule/jg/biz/service/impl/JgTransferNoticeServiceImpl.java
+201
-145
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/dto/JgMaintainNoticeDto.java
View file @
13d4c293
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jg
.
api
.
dto
;
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jg
.
api
.
dto
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.yeejoin.amos.boot.biz.common.dto.BaseDto
;
import
com.yeejoin.amos.boot.biz.common.dto.BaseDto
;
...
@@ -162,7 +161,6 @@ public class JgMaintainNoticeDto extends BaseDto {
...
@@ -162,7 +161,6 @@ public class JgMaintainNoticeDto extends BaseDto {
@ApiModelProperty
(
value
=
"接收机构机构代码"
)
@ApiModelProperty
(
value
=
"接收机构机构代码"
)
private
String
receiveOrgCode
;
private
String
receiveOrgCode
;
@TableField
(
exist
=
false
)
@ApiModelProperty
(
value
=
"告知设备列表"
)
@ApiModelProperty
(
value
=
"告知设备列表"
)
private
List
<
Map
<
String
,
Object
>>
deviceList
;
private
List
<
Map
<
String
,
Object
>>
deviceList
;
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-api/src/main/java/com/yeejoin/amos/boot/module/jg/api/dto/JgReformNoticeDto.java
View file @
13d4c293
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jg
.
api
.
dto
;
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jg
.
api
.
dto
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler
;
import
com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
...
@@ -131,11 +130,9 @@ public class JgReformNoticeDto extends BaseDto {
...
@@ -131,11 +130,9 @@ public class JgReformNoticeDto extends BaseDto {
private
String
entrustingUnitName
;
private
String
entrustingUnitName
;
@ApiModelProperty
(
value
=
"委托书附件"
)
@ApiModelProperty
(
value
=
"委托书附件"
)
@TableField
(
typeHandler
=
FastjsonTypeHandler
.
class
)
private
List
<
JSONObject
>
powerOfAttorney
;
private
List
<
JSONObject
>
powerOfAttorney
;
@ApiModelProperty
(
value
=
"施工合同附件"
)
@ApiModelProperty
(
value
=
"施工合同附件"
)
@TableField
(
typeHandler
=
FastjsonTypeHandler
.
class
)
private
List
<
JSONObject
>
constructionContract
;
private
List
<
JSONObject
>
constructionContract
;
@ApiModelProperty
(
value
=
"施工合同是否本单位与甲方直接签署"
)
@ApiModelProperty
(
value
=
"施工合同是否本单位与甲方直接签署"
)
...
@@ -163,7 +160,6 @@ public class JgReformNoticeDto extends BaseDto {
...
@@ -163,7 +160,6 @@ public class JgReformNoticeDto extends BaseDto {
private
String
equCategory
;
private
String
equCategory
;
/* ---------------- -------------- */
/* ---------------- -------------- */
@TableField
(
exist
=
false
)
@ApiModelProperty
(
value
=
"告知设备列表"
)
@ApiModelProperty
(
value
=
"告知设备列表"
)
private
List
<
Map
<
String
,
Object
>>
deviceList
;
private
List
<
Map
<
String
,
Object
>>
deviceList
;
...
@@ -228,4 +224,11 @@ public class JgReformNoticeDto extends BaseDto {
...
@@ -228,4 +224,11 @@ public class JgReformNoticeDto extends BaseDto {
@ApiModelProperty
(
value
=
"其他附件"
)
@ApiModelProperty
(
value
=
"其他附件"
)
private
String
otherAccessories
;
private
String
otherAccessories
;
/**
*工作流下一节点任务id
*/
@ApiModelProperty
(
value
=
"工作流下一节点任务id"
)
private
String
nextTaskId
;
}
}
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/init/ApplicationRunnerImpl.java
View file @
13d4c293
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jg
.
biz
.
init
;
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jg
.
biz
.
init
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgInstallationNotice
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistration
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistration
;
import
com.yeejoin.amos.boot.module.jg.biz.service.impl.CommonServiceImpl
;
import
com.yeejoin.amos.boot.module.jg.biz.service.impl.CommonServiceImpl
;
import
com.yeejoin.amos.boot.module.jg.biz.service.impl.JgInstallationNoticeServiceImpl
;
import
com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationServiceImpl
;
import
com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationServiceImpl
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum
;
import
org.springframework.boot.ApplicationArguments
;
import
org.springframework.boot.ApplicationArguments
;
...
@@ -20,18 +22,29 @@ public class ApplicationRunnerImpl implements ApplicationRunner {
...
@@ -20,18 +22,29 @@ public class ApplicationRunnerImpl implements ApplicationRunner {
private
CommonServiceImpl
commonService
;
private
CommonServiceImpl
commonService
;
public
ApplicationRunnerImpl
(
JgUseRegistrationServiceImpl
useRegistrationService
,
CommonServiceImpl
commonService
)
{
private
JgInstallationNoticeServiceImpl
installationNoticeService
;
public
ApplicationRunnerImpl
(
JgUseRegistrationServiceImpl
useRegistrationService
,
CommonServiceImpl
commonService
,
JgInstallationNoticeServiceImpl
installationNoticeService
)
{
this
.
commonService
=
commonService
;
this
.
commonService
=
commonService
;
this
.
useRegistrationService
=
useRegistrationService
;
this
.
useRegistrationService
=
useRegistrationService
;
this
.
installationNoticeService
=
installationNoticeService
;
}
}
@Override
@Override
public
void
run
(
ApplicationArguments
args
)
{
public
void
run
(
ApplicationArguments
args
)
{
// TODO 增加删除启动时, 完成时
// TODO 增加删除启动时, 完成时
// 使用登记数据初始化
List
<
JgUseRegistration
>
jgUseRegistrations
=
useRegistrationService
.
list
(
new
LambdaQueryWrapper
<
JgUseRegistration
>().
ne
(
JgUseRegistration:
:
getStatus
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getName
()));
List
<
JgUseRegistration
>
jgUseRegistrations
=
useRegistrationService
.
list
(
new
LambdaQueryWrapper
<
JgUseRegistration
>().
ne
(
JgUseRegistration:
:
getStatus
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getName
()));
jgUseRegistrations
.
forEach
(
jgUseRegistration
->
{
jgUseRegistrations
.
forEach
(
jgUseRegistration
->
{
commonService
.
saveExecuteFlowData2Redis
(
jgUseRegistration
.
getInstanceId
(),
useRegistrationService
.
buildInstanceRuntimeData
(
jgUseRegistration
));
commonService
.
saveExecuteFlowData2Redis
(
jgUseRegistration
.
getInstanceId
(),
useRegistrationService
.
buildInstanceRuntimeData
(
jgUseRegistration
));
});
});
// 安装告知数据初始化
List
<
JgInstallationNotice
>
jgInstallationNotices
=
installationNoticeService
.
list
(
new
LambdaQueryWrapper
<
JgInstallationNotice
>().
ne
(
JgInstallationNotice:
:
getNoticeStatus
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
()));
jgInstallationNotices
.
forEach
(
jgInstallation
->
{
commonService
.
saveExecuteFlowData2Redis
(
jgInstallation
.
getInstanceId
(),
installationNoticeService
.
buildInstanceRuntimeData
(
jgInstallation
));
});
}
}
}
}
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/JgInstallationNoticeServiceImpl.java
View file @
13d4c293
...
@@ -7,18 +7,17 @@ import com.alibaba.fastjson.JSONObject;
...
@@ -7,18 +7,17 @@ import com.alibaba.fastjson.JSONObject;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.github.pagehelper.util.StringUtil
;
import
com.yeejoin.amos.boot.biz.common.bo.ReginParams
;
import
com.yeejoin.amos.boot.biz.common.bo.ReginParams
;
import
com.yeejoin.amos.boot.biz.common.dao.mapper.DataDictionaryMapper
;
import
com.yeejoin.amos.boot.biz.common.dao.mapper.DataDictionaryMapper
;
import
com.yeejoin.amos.boot.biz.common.entity.DataDictionary
;
import
com.yeejoin.amos.boot.biz.common.entity.DataDictionary
;
import
com.yeejoin.amos.boot.biz.common.utils.DateUtils
;
import
com.yeejoin.amos.boot.biz.common.utils.DateUtils
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisKey
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisKey
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
import
com.yeejoin.amos.boot.module.jg.api.dto.JgInstallationNoticeDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.*
;
import
com.yeejoin.amos.boot.module.jg.api.dto.TaskMessageDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.TaskModelDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.WorkflowResultDto
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgInstallationNotice
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgInstallationNotice
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgInstallationNoticeEq
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgInstallationNoticeEq
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistration
;
import
com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum
;
import
com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum
;
import
com.yeejoin.amos.boot.module.jg.api.enums.CompanyTypeEnum
;
import
com.yeejoin.amos.boot.module.jg.api.enums.CompanyTypeEnum
;
import
com.yeejoin.amos.boot.module.jg.api.mapper.CommonMapper
;
import
com.yeejoin.amos.boot.module.jg.api.mapper.CommonMapper
;
...
@@ -46,6 +45,8 @@ import com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO;
...
@@ -46,6 +45,8 @@ import com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO;
import
com.yeejoin.amos.feign.workflow.model.ProcessTaskDTO
;
import
com.yeejoin.amos.feign.workflow.model.ProcessTaskDTO
;
import
com.yeejoin.amos.feign.workflow.model.TaskResultDTO
;
import
com.yeejoin.amos.feign.workflow.model.TaskResultDTO
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.redisson.api.RLock
;
import
org.redisson.api.RedissonClient
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
...
@@ -65,6 +66,7 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel;
...
@@ -65,6 +66,7 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
java.text.ParseException
;
import
java.text.ParseException
;
import
java.util.*
;
import
java.util.*
;
import
java.util.concurrent.TimeUnit
;
import
java.util.function.Function
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -159,6 +161,9 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
...
@@ -159,6 +161,9 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
@Autowired
@Autowired
private
CommonServiceImpl
commonService
;
private
CommonServiceImpl
commonService
;
@Autowired
private
RedissonClient
redissonClient
;
/**
/**
* 根据sequenceNbr查询
* 根据sequenceNbr查询
*
*
...
@@ -332,7 +337,7 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
...
@@ -332,7 +337,7 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
commonService
.
buildTaskModel
(
Collections
.
singletonList
(
taskModelDto
));
commonService
.
buildTaskModel
(
Collections
.
singletonList
(
taskModelDto
));
}
}
}
}
commonService
.
saveExecuteFlowData2Redis
(
notice
.
getInstanceId
(),
this
.
buildInstanceRuntimeData
(
notice
));
}
else
{
}
else
{
JgInstallationNotice
bean
=
new
JgInstallationNotice
();
JgInstallationNotice
bean
=
new
JgInstallationNotice
();
BeanUtils
.
copyProperties
(
noticeDto
,
bean
);
BeanUtils
.
copyProperties
(
noticeDto
,
bean
);
...
@@ -377,13 +382,6 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
...
@@ -377,13 +382,6 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
}
}
/**
/**
* 列表查询 示例
*/
public
List
<
JgInstallationNoticeDto
>
queryForJgInstallationNoticeList
()
{
return
this
.
queryForList
(
""
,
false
);
}
/**
* 批量删除
* 批量删除
*
*
* @param sequenceNbrs 主键
* @param sequenceNbrs 主键
...
@@ -533,16 +531,22 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
...
@@ -533,16 +531,22 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
// 暂存任务
// 暂存任务
buildTaskDraft
(
list
);
buildTaskDraft
(
list
);
}
}
List
<
JgInstallationNoticeEq
>
jgRelationEquipList
=
equipList
.
stream
().
map
(
jgRelationEquip
->
{
List
<
JgInstallationNoticeEq
>
jgRelationEquipList
=
equipList
.
stream
().
map
(
jgRelationEquip
->
{
List
<
JgInstallationNotice
>
collect
=
list
.
stream
().
filter
(
jgInstallationNotice
->
jgRelationEquip
.
getEquipTransferId
().
equals
(
jgInstallationNotice
.
getApplyNo
())).
collect
(
Collectors
.
toList
());
List
<
JgInstallationNotice
>
collect
=
list
.
stream
().
filter
(
jgInstallationNotice
->
jgRelationEquip
.
getEquipTransferId
().
equals
(
jgInstallationNotice
.
getApplyNo
())).
collect
(
Collectors
.
toList
());
Long
sequenceNbr
=
collect
.
get
(
0
).
getSequenceNbr
();
Long
sequenceNbr
=
collect
.
get
(
0
).
getSequenceNbr
();
return
jgRelationEquip
.
setEquipTransferId
(
String
.
valueOf
(
sequenceNbr
));
return
jgRelationEquip
.
setEquipTransferId
(
String
.
valueOf
(
sequenceNbr
));
}).
collect
(
Collectors
.
toList
());
}).
collect
(
Collectors
.
toList
());
jgInstallationNoticeEqMapper
.
insertBatchSomeColumn
(
jgRelationEquipList
);
jgInstallationNoticeEqMapper
.
insertBatchSomeColumn
(
jgRelationEquipList
);
this
.
updateRedisBatch
(
list
);
return
list
;
return
list
;
}
}
private
void
updateRedisBatch
(
List
<
JgInstallationNotice
>
jgInstallationNotices
)
{
jgInstallationNotices
.
stream
().
filter
(
n
->
StringUtil
.
isNotEmpty
(
n
.
getInstanceId
())).
forEach
(
jgInstallationNotice
->
{
commonService
.
saveExecuteFlowData2Redis
(
jgInstallationNotice
.
getInstanceId
(),
this
.
buildInstanceRuntimeData
(
jgInstallationNotice
));
});
}
/**
/**
* 暂存任务生成待办
* 暂存任务生成待办
* @param list 业务信息
* @param list 业务信息
...
@@ -777,233 +781,275 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
...
@@ -777,233 +781,275 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
}
}
@Transactional
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
cancel
(
JgInstallationNoticeDto
noticeDto
)
{
public
void
cancel
(
JgInstallationNoticeDto
noticeDto
)
{
JgInstallationNotice
jgInstallationNotice
=
this
.
baseMapper
.
selectById
(
noticeDto
.
getSequenceNbr
());
String
instanceId
=
noticeDto
.
getInstanceId
();
// 检查实际状态是否不等于期望状态
String
nextTaskId
=
noticeDto
.
getNextTaskId
();
commonService
.
checkExpectedStatus
(
jgInstallationNotice
.
getNoticeStatus
());
String
lockKey
=
CommonServiceImpl
.
buildJgExecuteLockKey
(
instanceId
);
RLock
lock
=
redissonClient
.
getLock
(
lockKey
);
ProcessTaskDTO
processTaskDTO
=
iCmWorkflowService
.
rollBack
(
jgInstallationNotice
.
getInstanceId
());
try
{
// 提取节点等信息
boolean
isLocked
=
lock
.
tryLock
(
0
,
180
,
TimeUnit
.
SECONDS
);
WorkflowResultDto
workflowResultDto
=
commonService
.
buildWorkFlowInfo
(
Collections
.
singletonList
(
processTaskDTO
)).
get
(
0
);
// 解决并发问题:多个人同时操作一个流程(并发执行通过、驳回、撤回)
jgInstallationNotice
.
setPromoter
(
""
);
if
(!
isLocked
){
jgInstallationNotice
.
setNextExecuteIds
(
workflowResultDto
.
getNextExecutorRoleIds
());
throw
new
BadRequest
(
"当前流程已经被执行!"
);
jgInstallationNotice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
}
jgInstallationNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
ROLLBACK
.
getCode
()));
// 流程执行时,状态及权限校验
jgInstallationNotice
.
setNextTaskId
(
workflowResultDto
.
getNextTaskId
());
commonService
.
checkForRevocationFlow
(
nextTaskId
,
instanceId
);
this
.
updateById
(
jgInstallationNotice
);
JgInstallationNotice
jgInstallationNotice
=
this
.
baseMapper
.
selectById
(
noticeDto
.
getSequenceNbr
());
TaskMessageDto
taskMessageDto
=
new
TaskMessageDto
();
ProcessTaskDTO
processTaskDTO
=
iCmWorkflowService
.
rollBack
(
jgInstallationNotice
.
getInstanceId
());
BeanUtils
.
copyProperties
(
jgInstallationNotice
,
taskMessageDto
);
// 提取节点等信息
JSONObject
jsonObject
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
taskMessageDto
));
WorkflowResultDto
workflowResultDto
=
commonService
.
buildWorkFlowInfo
(
Collections
.
singletonList
(
processTaskDTO
)).
get
(
0
);
jsonObject
.
put
(
"taskType"
,
BusinessTypeEnum
.
JG_INSTALLATION_NOTIFICATION
.
getCode
());
jgInstallationNotice
.
setPromoter
(
""
);
jsonObject
.
put
(
"nextExecuteUser"
,
jgInstallationNotice
.
getNextExecuteIds
());
jgInstallationNotice
.
setNextExecuteIds
(
workflowResultDto
.
getNextExecutorRoleIds
());
jsonObject
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
ROLLBACK
.
getName
());
jgInstallationNotice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
jsonObject
.
put
(
"flowStatus"
,
FlowStatusEnum
.
ROLLBACK
.
getCode
());
jgInstallationNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
ROLLBACK
.
getCode
()));
jsonObject
.
put
(
"nextTaskId"
,
jgInstallationNotice
.
getNextTaskId
());
jgInstallationNotice
.
setNextTaskId
(
workflowResultDto
.
getNextTaskId
());
commonService
.
rollbackTask
(
jgInstallationNotice
.
getInstanceId
(),
jsonObject
);
this
.
updateById
(
jgInstallationNotice
);
TaskMessageDto
taskMessageDto
=
new
TaskMessageDto
();
BeanUtils
.
copyProperties
(
jgInstallationNotice
,
taskMessageDto
);
JSONObject
jsonObject
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
taskMessageDto
));
jsonObject
.
put
(
"taskType"
,
BusinessTypeEnum
.
JG_INSTALLATION_NOTIFICATION
.
getCode
());
jsonObject
.
put
(
"nextExecuteUser"
,
jgInstallationNotice
.
getNextExecuteIds
());
jsonObject
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
ROLLBACK
.
getName
());
jsonObject
.
put
(
"flowStatus"
,
FlowStatusEnum
.
ROLLBACK
.
getCode
());
jsonObject
.
put
(
"nextTaskId"
,
jgInstallationNotice
.
getNextTaskId
());
commonService
.
rollbackTask
(
jgInstallationNotice
.
getInstanceId
(),
jsonObject
);
commonService
.
saveExecuteFlowData2Redis
(
instanceId
,
this
.
buildInstanceRuntimeData
(
jgInstallationNotice
));
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
finally
{
if
(
lock
.
isHeldByCurrentThread
()){
lock
.
unlock
();
}
}
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
accept
(
JgInstallationNoticeDto
dto
,
String
op
)
{
public
void
accept
(
JgInstallationNoticeDto
dto
,
String
op
)
{
ReginParams
reginParams
=
JSONObject
.
parseObject
(
redisUtils
.
get
(
RedisKey
.
buildReginKey
(
RequestContext
.
getExeUserId
(),
RequestContext
.
getToken
())).
toString
(),
ReginParams
.
class
);
String
instanceId
=
dto
.
getInstanceId
();
JgInstallationNotice
jgInstallationNotice
=
this
.
getById
(
dto
.
getSequenceNbr
());
String
nextTaskId
=
dto
.
getNextTaskId
();
// 检查实际状态是否不等于期望状态
String
lockKey
=
CommonServiceImpl
.
buildJgExecuteLockKey
(
instanceId
);
commonService
.
checkExpectedStatus
(
jgInstallationNotice
.
getNoticeStatus
());
RLock
lock
=
redissonClient
.
getLock
(
lockKey
);
jgInstallationNotice
.
setProcessAdvice
(
dto
.
getProcessAdvice
());
// 组装设备注册代码
StringBuilder
stringBuffer
=
new
StringBuilder
();
String
ym
=
null
;
try
{
try
{
ym
=
DateUtils
.
dateFormat
(
new
Date
(),
DateUtils
.
DATE_PATTERN_MM
);
boolean
isLocked
=
lock
.
tryLock
(
0
,
180
,
TimeUnit
.
SECONDS
);
}
catch
(
ParseException
e
)
{
// 解决并发问题:多个人同时操作一个流程(并发执行通过、驳回、撤回)
log
.
error
(
"日期转换失败:{}"
,
e
);
if
(!
isLocked
){
}
throw
new
BadRequest
(
"当前流程已经被执行!"
);
// 执行工作流并返回组装好的工作流信息
}
WorkflowResultDto
workflowResultDto
=
getWorkflowResultDto
(
op
,
jgInstallationNotice
);
// 流程执行时,状态及权限校验
jgInstallationNotice
.
setPromoter
(
reginParams
.
getUserModel
().
getUserId
());
commonService
.
checkForExecuteFlow
(
nextTaskId
,
instanceId
);
jgInstallationNotice
.
setNextTaskId
(
workflowResultDto
.
getNextTaskId
());
TaskV2Model
taskV2Model
=
new
TaskV2Model
();
JgInstallationNotice
jgInstallationNotice
=
this
.
getById
(
dto
.
getSequenceNbr
());
if
(
"0"
.
equals
(
op
))
{
jgInstallationNotice
.
setProcessAdvice
(
dto
.
getProcessAdvice
());
if
(
StringUtils
.
isEmpty
(
workflowResultDto
.
getNextExecutorRoleIds
()))
{
// 组装设备注册代码
LambdaQueryWrapper
<
JgInstallationNoticeEq
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
StringBuilder
stringBuffer
=
new
StringBuilder
();
queryWrapper
.
eq
(
JgInstallationNoticeEq:
:
getEquipTransferId
,
dto
.
getSequenceNbr
());
String
ym
=
null
;
JgInstallationNoticeEq
jgRelationEquip
=
jgInstallationNoticeEqMapper
.
selectOne
(
queryWrapper
);
try
{
LambdaQueryWrapper
<
OtherInfo
>
queryWrapper1
=
new
LambdaQueryWrapper
<>();
ym
=
DateUtils
.
dateFormat
(
new
Date
(),
DateUtils
.
DATE_PATTERN_MM
);
queryWrapper1
.
eq
(
OtherInfo:
:
getRecord
,
jgRelationEquip
.
getEquId
());
}
catch
(
ParseException
e
)
{
OtherInfo
tzsJgOtherInfo
=
tzsJgOtherInfoMapper
.
selectOne
(
queryWrapper1
);
log
.
error
(
"日期转换失败:{}"
,
e
);
LambdaQueryWrapper
<
RegistrationInfo
>
queryWrapper2
=
new
LambdaQueryWrapper
<>();
}
queryWrapper2
.
eq
(
RegistrationInfo:
:
getRecord
,
jgRelationEquip
.
getEquId
());
// 执行工作流并返回组装好的工作流信息
RegistrationInfo
tzsJgRegistrationInfo
=
tzsJgRegistrationInfoMapper
.
selectOne
(
queryWrapper2
);
WorkflowResultDto
workflowResultDto
=
getWorkflowResultDto
(
op
,
jgInstallationNotice
);
stringBuffer
.
append
(
tzsJgRegistrationInfo
.
getEquCategory
()).
append
(
jgInstallationNotice
.
getReceiveOrgCreditCode
()).
append
(
ym
);
jgInstallationNotice
.
setPromoter
(
RequestContext
.
getExeUserId
());
String
equCode
=
stringBuffer
.
toString
();
jgInstallationNotice
.
setNextTaskId
(
workflowResultDto
.
getNextTaskId
());
TaskV2Model
taskV2Model
=
new
TaskV2Model
();
ResponseModel
<
String
>
responseModel
=
tzsServiceFeignClient
.
deviceRegistrationCode
(
equCode
);
if
(
"0"
.
equals
(
op
))
{
String
deviceRegistrationCode
=
responseModel
.
getResult
();
if
(
StringUtils
.
isEmpty
(
workflowResultDto
.
getNextExecutorRoleIds
()))
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
LambdaQueryWrapper
<
JgInstallationNoticeEq
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
map
.
put
(
"code96333"
,
tzsJgOtherInfo
.
getCode96333
());
queryWrapper
.
eq
(
JgInstallationNoticeEq:
:
getEquipTransferId
,
dto
.
getSequenceNbr
());
map
.
put
(
"superviseCode"
,
tzsJgOtherInfo
.
getSupervisoryCode
());
JgInstallationNoticeEq
jgRelationEquip
=
jgInstallationNoticeEqMapper
.
selectOne
(
queryWrapper
);
map
.
put
(
"cityCode"
,
jgInstallationNotice
.
getCity
());
LambdaQueryWrapper
<
OtherInfo
>
queryWrapper1
=
new
LambdaQueryWrapper
<>();
map
.
put
(
"countyCode"
,
jgInstallationNotice
.
getCounty
());
queryWrapper1
.
eq
(
OtherInfo:
:
getRecord
,
jgRelationEquip
.
getEquId
());
map
.
put
(
"equCategory"
,
tzsJgRegistrationInfo
.
getEquCategory
());
OtherInfo
tzsJgOtherInfo
=
tzsJgOtherInfoMapper
.
selectOne
(
queryWrapper1
);
map
.
put
(
"isXiXian"
,
jgInstallationNotice
.
getIsXixian
()
==
null
?
"null"
:
jgInstallationNotice
.
getIsXixian
().
equals
(
"0"
)
?
"null"
:
"1"
);
LambdaQueryWrapper
<
RegistrationInfo
>
queryWrapper2
=
new
LambdaQueryWrapper
<>();
Map
<
String
,
Object
>
mapCode
;
queryWrapper2
.
eq
(
RegistrationInfo:
:
getRecord
,
jgRelationEquip
.
getEquId
());
ResponseModel
<
Map
<
String
,
Object
>>
code
=
tzsServiceFeignClient
.
createCode
(
map
);
RegistrationInfo
tzsJgRegistrationInfo
=
tzsJgRegistrationInfoMapper
.
selectOne
(
queryWrapper2
);
mapCode
=
code
.
getResult
();
stringBuffer
.
append
(
tzsJgRegistrationInfo
.
getEquCategory
()).
append
(
jgInstallationNotice
.
getReceiveOrgCreditCode
()).
append
(
ym
);
supervisoryCodeInfoMapper
.
updateStatusBySuperviseCode
(
mapCode
.
get
(
"superviseCode"
).
toString
());
String
equCode
=
stringBuffer
.
toString
();
jgInstallationNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
()));
jgInstallationNotice
.
setHandleDate
(
new
Date
());
ResponseModel
<
String
>
responseModel
=
tzsServiceFeignClient
.
deviceRegistrationCode
(
equCode
);
Map
<
String
,
Object
>
map1
=
new
HashMap
<>();
String
deviceRegistrationCode
=
responseModel
.
getResult
();
// 更新其他业务表
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
if
(!
ValidationUtil
.
isEmpty
(
mapCode
.
get
(
"code96333"
)))
{
map
.
put
(
"code96333"
,
tzsJgOtherInfo
.
getCode96333
());
tzsJgOtherInfo
.
setCode96333
(
mapCode
.
get
(
"code96333"
).
toString
());
map
.
put
(
"superviseCode"
,
tzsJgOtherInfo
.
getSupervisoryCode
());
map1
.
put
(
"CODE96333"
,
tzsJgOtherInfo
.
getCode96333
()
);
map
.
put
(
"cityCode"
,
jgInstallationNotice
.
getCity
());
}
map
.
put
(
"countyCode"
,
jgInstallationNotice
.
getCounty
());
tzsJgOtherInfo
.
setSupervisoryCode
(
mapCode
.
get
(
"superviseCode"
).
toString
());
map
.
put
(
"equCategory"
,
tzsJgRegistrationInfo
.
getEquCategory
());
//tzsJgRegistrationInfo.setEquCode(deviceRegistrationCode);
map
.
put
(
"isXiXian"
,
jgInstallationNotice
.
getIsXixian
()
==
null
?
"null"
:
jgInstallationNotice
.
getIsXixian
().
equals
(
"0"
)
?
"null"
:
"1"
);
//jgInstallationNotice.setEquRegisterCode(deviceRegistrationCode);
Map
<
String
,
Object
>
mapCode
;
jgInstallationNotice
.
setInformNumber
(
deviceRegistrationCode
);
ResponseModel
<
Map
<
String
,
Object
>>
code
=
tzsServiceFeignClient
.
createCode
(
map
);
mapCode
=
code
.
getResult
();
jgInstallationNotice
.
setSupervisoryCode
(
mapCode
.
get
(
"superviseCode"
).
toString
());
supervisoryCodeInfoMapper
.
updateStatusBySuperviseCode
(
mapCode
.
get
(
"superviseCode"
).
toString
());
Map
<
String
,
Map
<
String
,
Object
>>
objMap
=
new
HashMap
<>();
jgInstallationNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
()));
map1
.
put
(
"EQU_CODE"
,
tzsJgRegistrationInfo
.
getEquCode
()
);
jgInstallationNotice
.
setHandleDate
(
new
Date
());
map1
.
put
(
"SUPERVISORY_CODE"
,
tzsJgOtherInfo
.
getSupervisoryCode
());
Map
<
String
,
Object
>
map1
=
new
HashMap
<>();
map1
.
put
(
"USE_UNIT_CREDIT_CODE"
,
jgInstallationNotice
.
getUseUnitCreditCode
());
// 更新其他业务表
map1
.
put
(
"USE_UNIT_NAME"
,
jgInstallationNotice
.
getUseUnitName
());
if
(!
ValidationUtil
.
isEmpty
(
mapCode
.
get
(
"code96333"
)))
{
map1
.
put
(
"USC_UNIT_CREDIT_CODE"
,
jgInstallationNotice
.
getInstallUnitCreditCode
());
tzsJgOtherInfo
.
setCode96333
(
mapCode
.
get
(
"code96333"
).
toString
());
map1
.
put
(
"USC_UNIT_NAME"
,
jgInstallationNotice
.
getInstallUnitName
());
map1
.
put
(
"CODE96333"
,
tzsJgOtherInfo
.
getCode96333
()
);
// 安装告知去除该字段,使用登记时添加
}
tzsJgOtherInfo
.
setSupervisoryCode
(
mapCode
.
get
(
"superviseCode"
).
toString
());
//tzsJgRegistrationInfo.setEquCode(deviceRegistrationCode);
//jgInstallationNotice.setEquRegisterCode(deviceRegistrationCode);
jgInstallationNotice
.
setInformNumber
(
deviceRegistrationCode
);
jgInstallationNotice
.
setSupervisoryCode
(
mapCode
.
get
(
"superviseCode"
).
toString
());
Map
<
String
,
Map
<
String
,
Object
>>
objMap
=
new
HashMap
<>();
map1
.
put
(
"EQU_CODE"
,
tzsJgRegistrationInfo
.
getEquCode
()
);
map1
.
put
(
"SUPERVISORY_CODE"
,
tzsJgOtherInfo
.
getSupervisoryCode
());
map1
.
put
(
"USE_UNIT_CREDIT_CODE"
,
jgInstallationNotice
.
getUseUnitCreditCode
());
map1
.
put
(
"USE_UNIT_NAME"
,
jgInstallationNotice
.
getUseUnitName
());
map1
.
put
(
"USC_UNIT_CREDIT_CODE"
,
jgInstallationNotice
.
getInstallUnitCreditCode
());
map1
.
put
(
"USC_UNIT_NAME"
,
jgInstallationNotice
.
getInstallUnitName
());
// 安装告知去除该字段,使用登记时添加
// map1.put("ORG_BRANCH_CODE",jgInstallationNotice.getOrgBranchCode());
// map1.put("ORG_BRANCH_CODE",jgInstallationNotice.getOrgBranchCode());
// map1.put("ORG_BRANCH_NAME",jgInstallationNotice.getOrgBranchCode());
// map1.put("ORG_BRANCH_NAME",jgInstallationNotice.getOrgBranchCode());
map1
.
put
(
"USE_PLACE"
,
String
.
format
(
"%s/%s/%s"
,
jgInstallationNotice
.
getProvinceName
(),
jgInstallationNotice
.
getCityName
(),
jgInstallationNotice
.
getCounty
()));
map1
.
put
(
"USE_PLACE"
,
String
.
format
(
"%s/%s/%s"
,
jgInstallationNotice
.
getProvinceName
(),
jgInstallationNotice
.
getCityName
(),
jgInstallationNotice
.
getCounty
()));
map1
.
put
(
"ADDRESS"
,
String
.
format
(
"%s/%s"
,
jgInstallationNotice
.
getStreetName
(),
jgInstallationNotice
.
getAddress
()));
map1
.
put
(
"ADDRESS"
,
String
.
format
(
"%s/%s"
,
jgInstallationNotice
.
getStreetName
(),
jgInstallationNotice
.
getAddress
()));
objMap
.
put
(
tzsJgOtherInfo
.
getRecord
(),
map1
);
objMap
.
put
(
tzsJgOtherInfo
.
getRecord
(),
map1
);
jgInstallationNotice
.
setPromoter
(
""
);
jgInstallationNotice
.
setPromoter
(
""
);
tzsServiceFeignClient
.
commonUpdateEsDataByIds
(
objMap
);
tzsServiceFeignClient
.
commonUpdateEsDataByIds
(
objMap
);
tzsJgOtherInfoMapper
.
updateById
(
tzsJgOtherInfo
);
tzsJgOtherInfoMapper
.
updateById
(
tzsJgOtherInfo
);
tzsJgRegistrationInfoMapper
.
updateById
(
tzsJgRegistrationInfo
);
tzsJgRegistrationInfoMapper
.
updateById
(
tzsJgRegistrationInfo
);
// 更新施工信息表
// 更新施工信息表
IdxBizJgConstructionInfo
idxBizJgConstructionInfo
=
constructionInfoService
.
queryNewestDetailByRecord
(
jgRelationEquip
.
getEquId
());
IdxBizJgConstructionInfo
idxBizJgConstructionInfo
=
constructionInfoService
.
queryNewestDetailByRecord
(
jgRelationEquip
.
getEquId
());
if
(!
ObjectUtils
.
isEmpty
(
idxBizJgConstructionInfo
))
{
if
(!
ObjectUtils
.
isEmpty
(
idxBizJgConstructionInfo
))
{
idxBizJgConstructionInfo
.
setUscUnitCreditCode
(
jgInstallationNotice
.
getInstallUnitCreditCode
());
idxBizJgConstructionInfo
.
setUscUnitCreditCode
(
jgInstallationNotice
.
getInstallUnitCreditCode
());
idxBizJgConstructionInfo
.
setUscUnitName
(
jgInstallationNotice
.
getInstallUnitName
());
idxBizJgConstructionInfo
.
setUscUnitName
(
jgInstallationNotice
.
getInstallUnitName
());
idxBizJgConstructionInfo
.
setUscDate
(
jgInstallationNotice
.
getInstallStartDate
());
idxBizJgConstructionInfo
.
setUscDate
(
jgInstallationNotice
.
getInstallStartDate
());
// 获取施工类型id
// 获取施工类型id
LambdaQueryWrapper
<
DataDictionary
>
lambda
=
new
LambdaQueryWrapper
<>();
LambdaQueryWrapper
<
DataDictionary
>
lambda
=
new
LambdaQueryWrapper
<>();
lambda
.
eq
(
DataDictionary:
:
getType
,
CONSTRUCTION_TYPE
);
lambda
.
eq
(
DataDictionary:
:
getType
,
CONSTRUCTION_TYPE
);
lambda
.
eq
(
DataDictionary:
:
getName
,
CONSTRUCTION_TYPE_NAME
);
lambda
.
eq
(
DataDictionary:
:
getName
,
CONSTRUCTION_TYPE_NAME
);
List
<
DataDictionary
>
dataDictionaries
=
dataDictionaryMapper
.
selectList
(
lambda
);
List
<
DataDictionary
>
dataDictionaries
=
dataDictionaryMapper
.
selectList
(
lambda
);
if
(!
CollectionUtils
.
isEmpty
(
dataDictionaries
))
{
if
(!
CollectionUtils
.
isEmpty
(
dataDictionaries
))
{
idxBizJgConstructionInfo
.
setConstructionType
(
String
.
valueOf
(
dataDictionaries
.
get
(
0
).
getSequenceNbr
()));
idxBizJgConstructionInfo
.
setConstructionType
(
String
.
valueOf
(
dataDictionaries
.
get
(
0
).
getSequenceNbr
()));
}
constructionInfoService
.
saveOrUpdateData
(
idxBizJgConstructionInfo
);
}
}
constructionInfoService
.
saveOrUpdateData
(
idxBizJgConstructionInfo
);
// 使用信息表更新是否西咸
}
IdxBizJgUseInfo
useInfo
=
useInfoService
.
getOneData
(
jgRelationEquip
.
getEquId
());
// 使用信息表更新是否西咸
if
(!
ObjectUtils
.
isEmpty
(
useInfo
))
{
IdxBizJgUseInfo
useInfo
=
useInfoService
.
getOneData
(
jgRelationEquip
.
getEquId
());
useInfo
.
setUseUnitCreditCode
(
jgInstallationNotice
.
getUseUnitCreditCode
());
if
(!
ObjectUtils
.
isEmpty
(
useInfo
))
{
useInfo
.
setUseUnitName
(
jgInstallationNotice
.
getUseUnitName
());
useInfo
.
setUseUnitCreditCode
(
jgInstallationNotice
.
getUseUnitCreditCode
());
useInfo
.
setIsNotXiXian
(
jgInstallationNotice
.
getIsXixian
()
==
null
?
"0"
:
jgInstallationNotice
.
getIsXixian
());
useInfo
.
setUseUnitName
(
jgInstallationNotice
.
getUseUnitName
());
useInfoService
.
saveOrUpdateData
(
useInfo
);
useInfo
.
setIsNotXiXian
(
jgInstallationNotice
.
getIsXixian
()
==
null
?
"0"
:
jgInstallationNotice
.
getIsXixian
());
}
useInfoService
.
saveOrUpdateData
(
useInfo
);
// 修改属地 - 字段去除
}
// 修改属地 - 字段去除
// LambdaUpdateWrapper<SuperviseInfo> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
// LambdaUpdateWrapper<SuperviseInfo> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
// lambdaUpdateWrapper.eq(SuperviseInfo::getRecord, jgRelationEquip.getEquId());
// lambdaUpdateWrapper.eq(SuperviseInfo::getRecord, jgRelationEquip.getEquId());
// SuperviseInfo superviseInfo = new SuperviseInfo();
// SuperviseInfo superviseInfo = new SuperviseInfo();
// superviseInfo.setOrgBranchName(jgInstallationNotice.getOrgBranchName());
// superviseInfo.setOrgBranchName(jgInstallationNotice.getOrgBranchName());
// superviseInfo.setOrgBranchCode(jgInstallationNotice.getOrgBranchCode());
// superviseInfo.setOrgBranchCode(jgInstallationNotice.getOrgBranchCode());
// superviseInfoMapper.update(superviseInfo, lambdaUpdateWrapper);
// superviseInfoMapper.update(superviseInfo, lambdaUpdateWrapper);
// 修改使用信息
// 修改使用信息
LambdaUpdateWrapper
<
IdxBizJgUseInfo
>
lambda
=
new
LambdaUpdateWrapper
<>();
LambdaUpdateWrapper
<
IdxBizJgUseInfo
>
lambda
=
new
LambdaUpdateWrapper
<>();
lambda
.
eq
(
IdxBizJgUseInfo:
:
getRecord
,
jgRelationEquip
.
getEquId
());
lambda
.
eq
(
IdxBizJgUseInfo:
:
getRecord
,
jgRelationEquip
.
getEquId
());
IdxBizJgUseInfo
idxBizJgUseInfo
=
new
IdxBizJgUseInfo
();
IdxBizJgUseInfo
idxBizJgUseInfo
=
new
IdxBizJgUseInfo
();
idxBizJgUseInfo
.
setProvince
(
jgInstallationNotice
.
getProvince
());
idxBizJgUseInfo
.
setProvince
(
jgInstallationNotice
.
getProvince
());
idxBizJgUseInfo
.
setProvinceName
(
jgInstallationNotice
.
getProvinceName
());
idxBizJgUseInfo
.
setProvinceName
(
jgInstallationNotice
.
getProvinceName
());
idxBizJgUseInfo
.
setCity
(
jgInstallationNotice
.
getCity
());
idxBizJgUseInfo
.
setCity
(
jgInstallationNotice
.
getCity
());
idxBizJgUseInfo
.
setCityName
(
jgInstallationNotice
.
getCityName
());
idxBizJgUseInfo
.
setCityName
(
jgInstallationNotice
.
getCityName
());
idxBizJgUseInfo
.
setCounty
(
jgInstallationNotice
.
getCounty
());
idxBizJgUseInfo
.
setCounty
(
jgInstallationNotice
.
getCounty
());
idxBizJgUseInfo
.
setCountyName
(
jgInstallationNotice
.
getCountyName
());
idxBizJgUseInfo
.
setCountyName
(
jgInstallationNotice
.
getCountyName
());
idxBizJgUseInfo
.
setFactoryUseSiteStreet
(
jgInstallationNotice
.
getFactoryUseSiteStreet
());
idxBizJgUseInfo
.
setFactoryUseSiteStreet
(
jgInstallationNotice
.
getFactoryUseSiteStreet
());
idxBizJgUseInfo
.
setStreetName
(
jgInstallationNotice
.
getStreetName
());
idxBizJgUseInfo
.
setStreetName
(
jgInstallationNotice
.
getStreetName
());
idxBizJgUseInfo
.
setAddress
(
jgInstallationNotice
.
getAddress
());
idxBizJgUseInfo
.
setAddress
(
jgInstallationNotice
.
getAddress
());
idxBizJgUseInfo
.
setIsNotXiXian
(
jgInstallationNotice
.
getIsXixian
());
idxBizJgUseInfo
.
setIsNotXiXian
(
jgInstallationNotice
.
getIsXixian
());
idxBizJgUseInfoMapper
.
update
(
idxBizJgUseInfo
,
lambda
);
idxBizJgUseInfoMapper
.
update
(
idxBizJgUseInfo
,
lambda
);
// 上个代办改为已办
// 上个代办改为已办
HashMap
<
String
,
Object
>
taskMap
=
new
HashMap
<>();
HashMap
<
String
,
Object
>
taskMap
=
new
HashMap
<>();
taskMap
.
put
(
"taskStatus"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
());
taskMap
.
put
(
"taskStatus"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
());
taskMap
.
put
(
"taskStatusLabel"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getName
());
taskMap
.
put
(
"taskStatusLabel"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getName
());
taskMap
.
put
(
"relationId"
,
jgInstallationNotice
.
getInstanceId
());
taskMap
.
put
(
"relationId"
,
jgInstallationNotice
.
getInstanceId
());
taskMap
.
put
(
"flowStatus"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
());
taskMap
.
put
(
"flowStatus"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
());
taskMap
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getName
());
taskMap
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getName
());
TaskMessageDto
taskMessageDto
=
new
TaskMessageDto
();
TaskMessageDto
taskMessageDto
=
new
TaskMessageDto
();
BeanUtils
.
copyProperties
(
jgInstallationNotice
,
taskMessageDto
);
BeanUtils
.
copyProperties
(
jgInstallationNotice
,
taskMessageDto
);
taskMap
.
put
(
"model"
,
taskMessageDto
);
taskMap
.
put
(
"model"
,
taskMessageDto
);
taskV2Model
=
commonService
.
updateTaskModel
(
taskMap
);
taskV2Model
=
commonService
.
updateTaskModel
(
taskMap
);
}
else
{
jgInstallationNotice
.
setNextExecuteIds
(
workflowResultDto
.
getNextExecutorRoleIds
());
jgInstallationNotice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
if
(!
ObjectUtils
.
isEmpty
(
jgInstallationNotice
.
getInstanceStatus
()))
{
jgInstallationNotice
.
setInstanceStatus
(
jgInstallationNotice
.
getInstanceStatus
()
+
","
+
workflowResultDto
.
getNextExecutorRoleIds
());
}
else
{
}
else
{
jgInstallationNotice
.
setInstanceStatus
(
workflowResultDto
.
getNextExecutorRoleIds
());
jgInstallationNotice
.
setNextExecuteIds
(
workflowResultDto
.
getNextExecutorRoleIds
());
jgInstallationNotice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
if
(!
ObjectUtils
.
isEmpty
(
jgInstallationNotice
.
getInstanceStatus
()))
{
jgInstallationNotice
.
setInstanceStatus
(
jgInstallationNotice
.
getInstanceStatus
()
+
","
+
workflowResultDto
.
getNextExecutorRoleIds
());
}
else
{
jgInstallationNotice
.
setInstanceStatus
(
workflowResultDto
.
getNextExecutorRoleIds
());
}
jgInstallationNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
()));
// 上个代办改为已办
HashMap
<
String
,
Object
>
taskMap
=
new
HashMap
<>();
taskMap
.
put
(
"taskStatus"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
());
taskMap
.
put
(
"taskStatusLabel"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
taskMap
.
put
(
"flowStatus"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
());
taskMap
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
taskMap
.
put
(
"relationId"
,
jgInstallationNotice
.
getInstanceId
());
taskV2Model
=
commonService
.
updateTaskModel
(
taskMap
);
TaskModelDto
taskModelDto
=
new
TaskModelDto
();
BeanUtils
.
copyProperties
(
taskV2Model
,
taskModelDto
);
// 创建新的代办
taskModelDto
.
setTaskName
(
workflowResultDto
.
getNextTaskName
());
taskModelDto
.
setExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
taskModelDto
.
setFlowStatus
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
());
taskModelDto
.
setFlowStatusLabel
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
taskModelDto
.
setFlowCode
(
workflowResultDto
.
getNextTaskId
());
taskModelDto
.
setTaskStatusLabel
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
taskModelDto
.
setNextExecuteUser
(
workflowResultDto
.
getNextExecutorRoleIds
());
TaskMessageDto
taskMessageDto
=
new
TaskMessageDto
();
BeanUtils
.
copyProperties
(
jgInstallationNotice
,
taskMessageDto
);
taskModelDto
.
setModel
(
taskMessageDto
);
commonService
.
buildTaskModel
(
Collections
.
singletonList
(
taskModelDto
));
}
}
jgInstallationNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
()));
}
else
{
jgInstallationNotice
.
setPromoter
(
""
);
jgInstallationNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
REJECTED
.
getCode
()));
// 上个代办改为已办
// 上个代办改为已办
HashMap
<
String
,
Object
>
taskMap
=
new
HashMap
<>();
HashMap
<
String
,
Object
>
taskMap
=
new
HashMap
<>();
taskMap
.
put
(
"taskStatus"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
());
taskMap
.
put
(
"taskStatus"
,
jgInstallationNotice
.
getNoticeStatus
());
taskMap
.
put
(
"taskStatusLabel"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
taskMap
.
put
(
"taskStatusLabel"
,
FlowStatusEnum
.
REJECTED
.
getName
());
taskMap
.
put
(
"flowStatus"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
());
taskMap
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
taskMap
.
put
(
"relationId"
,
jgInstallationNotice
.
getInstanceId
());
taskMap
.
put
(
"relationId"
,
jgInstallationNotice
.
getInstanceId
());
taskMap
.
put
(
"flowStatus"
,
FlowStatusEnum
.
REJECTED
.
getCode
());
taskMap
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
REJECTED
.
getName
());
taskV2Model
=
commonService
.
updateTaskModel
(
taskMap
);
taskV2Model
=
commonService
.
updateTaskModel
(
taskMap
);
TaskModelDto
taskModelDto
=
new
TaskModelDto
();
TaskModelDto
taskModelDto
=
new
TaskModelDto
();
BeanUtils
.
copyProperties
(
taskV2Model
,
taskModelDto
);
BeanUtils
.
copyProperties
(
taskV2Model
,
taskModelDto
);
// 创建新的代办
// 创建新的代办
taskModelDto
.
setTaskName
(
workflowResultDto
.
getNextTaskName
());
taskModelDto
.
setTaskName
(
workflowResultDto
.
getNextTaskName
());
taskModelDto
.
setExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
taskModelDto
.
setFlowStatus
(
FlowStatusEnum
.
REJECTED
.
getCode
());
taskModelDto
.
setFlowStatus
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
());
taskModelDto
.
setFlowStatusLabel
(
FlowStatusEnum
.
REJECTED
.
getName
());
taskModelDto
.
setFlowStatusLabel
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
taskModelDto
.
setFlowCode
(
workflowResultDto
.
getNextTaskId
());
taskModelDto
.
setFlowCode
(
workflowResultDto
.
getNextTaskId
());
taskModelDto
.
setTaskStatusLabel
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
taskModelDto
.
setNextExecuteUser
(
workflowResultDto
.
getNextExecutorRoleIds
());
taskModelDto
.
setNextExecuteUser
(
workflowResultDto
.
getNextExecutorRoleIds
());
taskModelDto
.
setPageType
(
"edit"
);
TaskMessageDto
taskMessageDto
=
new
TaskMessageDto
();
TaskMessageDto
taskMessageDto
=
new
TaskMessageDto
();
BeanUtils
.
copyProperties
(
jgInstallationNotice
,
taskMessageDto
);
BeanUtils
.
copyProperties
(
jgInstallationNotice
,
taskMessageDto
);
taskModelDto
.
setExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
taskModelDto
.
setModel
(
taskMessageDto
);
taskModelDto
.
setModel
(
taskMessageDto
);
commonService
.
buildTaskModel
(
Collections
.
singletonList
(
taskModelDto
));
commonService
.
buildTaskModel
(
Collections
.
singletonList
(
taskModelDto
));
}
}
}
else
{
jgInstallationNotice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
jgInstallationNotice
.
setPromoter
(
""
);
jgInstallationNotice
.
setNextExecuteIds
(
workflowResultDto
.
getNextExecutorRoleIds
());
jgInstallationNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
REJECTED
.
getCode
()));
this
.
updateById
(
jgInstallationNotice
);
// 上个代办改为已办
commonService
.
saveExecuteFlowData2Redis
(
instanceId
,
this
.
buildInstanceRuntimeData
(
jgInstallationNotice
));
HashMap
<
String
,
Object
>
taskMap
=
new
HashMap
<>();
}
catch
(
InterruptedException
e
)
{
taskMap
.
put
(
"taskStatus"
,
jgInstallationNotice
.
getNoticeStatus
());
e
.
printStackTrace
();
taskMap
.
put
(
"taskStatusLabel"
,
FlowStatusEnum
.
REJECTED
.
getName
());
}
finally
{
taskMap
.
put
(
"relationId"
,
jgInstallationNotice
.
getInstanceId
());
if
(
lock
.
isHeldByCurrentThread
()){
taskMap
.
put
(
"flowStatus"
,
FlowStatusEnum
.
REJECTED
.
getCode
());
lock
.
unlock
();
taskMap
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
REJECTED
.
getName
());
}
taskV2Model
=
commonService
.
updateTaskModel
(
taskMap
);
TaskModelDto
taskModelDto
=
new
TaskModelDto
();
BeanUtils
.
copyProperties
(
taskV2Model
,
taskModelDto
);
// 创建新的代办
taskModelDto
.
setTaskName
(
workflowResultDto
.
getNextTaskName
());
taskModelDto
.
setFlowStatus
(
FlowStatusEnum
.
REJECTED
.
getCode
());
taskModelDto
.
setFlowStatusLabel
(
FlowStatusEnum
.
REJECTED
.
getName
());
taskModelDto
.
setFlowCode
(
workflowResultDto
.
getNextTaskId
());
taskModelDto
.
setNextExecuteUser
(
workflowResultDto
.
getNextExecutorRoleIds
());
taskModelDto
.
setPageType
(
"edit"
);
TaskMessageDto
taskMessageDto
=
new
TaskMessageDto
();
BeanUtils
.
copyProperties
(
jgInstallationNotice
,
taskMessageDto
);
taskModelDto
.
setExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
taskModelDto
.
setModel
(
taskMessageDto
);
commonService
.
buildTaskModel
(
Collections
.
singletonList
(
taskModelDto
));
}
}
jgInstallationNotice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
}
jgInstallationNotice
.
setNextExecuteIds
(
workflowResultDto
.
getNextExecutorRoleIds
());
this
.
updateById
(
jgInstallationNotice
);
public
InstanceRuntimeData
buildInstanceRuntimeData
(
JgInstallationNotice
jgInstallationNotice
)
{
return
InstanceRuntimeData
.
builder
()
.
nextExecuteUserIds
(
jgInstallationNotice
.
getNextExecuteUserIds
())
.
promoter
(
jgInstallationNotice
.
getPromoter
())
.
nextTaskId
(
jgInstallationNotice
.
getNextTaskId
())
.
build
();
}
}
...
...
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/JgMaintainNoticeServiceImpl.java
View file @
13d4c293
...
@@ -7,16 +7,14 @@ import com.alibaba.fastjson.JSONObject;
...
@@ -7,16 +7,14 @@ import com.alibaba.fastjson.JSONObject;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.github.pagehelper.util.StringUtil
;
import
com.yeejoin.amos.boot.biz.common.bo.ReginParams
;
import
com.yeejoin.amos.boot.biz.common.bo.ReginParams
;
import
com.yeejoin.amos.boot.biz.common.entity.DataDictionary
;
import
com.yeejoin.amos.boot.biz.common.entity.DataDictionary
;
import
com.yeejoin.amos.boot.biz.common.service.IDataDictionaryService
;
import
com.yeejoin.amos.boot.biz.common.service.IDataDictionaryService
;
import
com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl
;
import
com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl
;
import
com.yeejoin.amos.boot.biz.common.utils.DateUtils
;
import
com.yeejoin.amos.boot.biz.common.utils.DateUtils
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
import
com.yeejoin.amos.boot.module.jg.api.dto.JgMaintainNoticeDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.*
;
import
com.yeejoin.amos.boot.module.jg.api.dto.TaskMessageDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.TaskModelDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.WorkflowResultDto
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgMaintainNotice
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgMaintainNotice
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgMaintainNoticeEq
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgMaintainNoticeEq
;
import
com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum
;
import
com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum
;
...
@@ -30,10 +28,15 @@ import com.yeejoin.amos.boot.module.jg.biz.utils.WordTemplateUtils;
...
@@ -30,10 +28,15 @@ import com.yeejoin.amos.boot.module.jg.biz.utils.WordTemplateUtils;
import
com.yeejoin.amos.boot.module.ymt.api.entity.RegistrationInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.RegistrationInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.*
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.EquipmentCategoryMapper
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.OtherInfoMapper
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.RegistrationInfoMapper
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.SupervisoryCodeInfoMapper
;
import
com.yeejoin.amos.feign.systemctl.model.TaskV2Model
;
import
com.yeejoin.amos.feign.systemctl.model.TaskV2Model
;
import
com.yeejoin.amos.feign.workflow.Workflow
;
import
com.yeejoin.amos.feign.workflow.Workflow
;
import
com.yeejoin.amos.feign.workflow.model.*
;
import
com.yeejoin.amos.feign.workflow.model.*
;
import
org.redisson.api.RLock
;
import
org.redisson.api.RedissonClient
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -49,6 +52,7 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel;
...
@@ -49,6 +52,7 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel;
import
java.text.ParseException
;
import
java.text.ParseException
;
import
java.util.*
;
import
java.util.*
;
import
java.util.concurrent.TimeUnit
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
...
@@ -95,9 +99,6 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
...
@@ -95,9 +99,6 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
DataDictionaryServiceImpl
iDataDictionaryService
;
DataDictionaryServiceImpl
iDataDictionaryService
;
@Autowired
@Autowired
private
TzBaseUnitLicenceMapper
baseUnitLicenceMapper
;
@Autowired
private
CommonServiceImpl
commonService
;
private
CommonServiceImpl
commonService
;
@Autowired
@Autowired
...
@@ -109,6 +110,9 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
...
@@ -109,6 +110,9 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
@Autowired
@Autowired
JgInstallationNoticeServiceImpl
jgInstallationNoticeService
;
JgInstallationNoticeServiceImpl
jgInstallationNoticeService
;
@Autowired
private
RedissonClient
redissonClient
;
/**
/**
* 根据sequenceNbr查询
* 根据sequenceNbr查询
*
*
...
@@ -142,7 +146,7 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
...
@@ -142,7 +146,7 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
// 设备信息 "equCategory", "equDefine", "equRegisterCode", "produceCountry", "produceLicenseNum",
// 设备信息 "equCategory", "equDefine", "equRegisterCode", "produceCountry", "produceLicenseNum",
JgMaintainNoticeEq
jgMaintainNoticeEq
=
jgMaintainNoticeEqMapper
.
selectOne
(
new
LambdaQueryWrapper
<
JgMaintainNoticeEq
>().
eq
(
JgMaintainNoticeEq:
:
getEquipTransferId
,
sequenceNbr
));
JgMaintainNoticeEq
jgMaintainNoticeEq
=
jgMaintainNoticeEqMapper
.
selectOne
(
new
LambdaQueryWrapper
<
JgMaintainNoticeEq
>().
eq
(
JgMaintainNoticeEq:
:
getEquipTransferId
,
sequenceNbr
));
Map
<
String
,
Object
>
map
=
idxBizJgRegisterInfoService
.
getDetailFieldCamelCaseByRecord
(
jgMaintainNoticeEq
.
getEquId
());
Map
<
String
,
Object
>
map
=
idxBizJgRegisterInfoService
.
getDetailFieldCamelCaseByRecord
(
jgMaintainNoticeEq
.
getEquId
());
map
.
put
(
"uuseUnitCreditCode"
,
map
.
get
(
"useUnitCreditCode"
));
map
.
put
(
"uuseUnitCreditCode"
,
map
.
get
(
"useUnitCreditCode"
));
map
.
remove
(
"useUnitCreditCode"
);
map
.
remove
(
"useUnitCreditCode"
);
map
.
remove
(
"address"
);
map
.
remove
(
"address"
);
map
.
remove
(
"sequenceNbr"
);
map
.
remove
(
"sequenceNbr"
);
...
@@ -266,6 +270,7 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
...
@@ -266,6 +270,7 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
commonService
.
buildTaskModel
(
Collections
.
singletonList
(
taskModelDto
));
commonService
.
buildTaskModel
(
Collections
.
singletonList
(
taskModelDto
));
}
}
}
}
commonService
.
saveExecuteFlowData2Redis
(
notice
.
getInstanceId
(),
this
.
buildInstanceRuntimeData
(
notice
));
}
else
{
}
else
{
JgMaintainNotice
bean
=
new
JgMaintainNotice
();
JgMaintainNotice
bean
=
new
JgMaintainNotice
();
BeanUtils
.
copyProperties
(
noticeDto
,
bean
);
BeanUtils
.
copyProperties
(
noticeDto
,
bean
);
...
@@ -288,7 +293,7 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
...
@@ -288,7 +293,7 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
String
type
=
reginParams
.
getCompany
().
getLevel
();
String
type
=
reginParams
.
getCompany
().
getLevel
();
String
userId
=
reginParams
.
getUserModel
().
getUserId
();
String
userId
=
reginParams
.
getUserModel
().
getUserId
();
List
<
DataDictionary
>
dictionaries
=
dataDictionaryService
.
getByType
(
"WXLX"
);
List
<
DataDictionary
>
dictionaries
=
dataDictionaryService
.
getByType
(
"WXLX"
);
Page
<
JgMaintainNotice
>
noticePage
=
jgMaintainNoticeMapper
.
queryForPage
(
page
,
model
,
type
,
orgCode
,
userId
);
Page
<
JgMaintainNotice
>
noticePage
=
jgMaintainNoticeMapper
.
queryForPage
(
page
,
model
,
type
,
orgCode
,
userId
);
Page
<
JgMaintainNoticeDto
>
noticeDtoPage
=
new
Page
<>();
Page
<
JgMaintainNoticeDto
>
noticeDtoPage
=
new
Page
<>();
BeanUtils
.
copyProperties
(
noticePage
,
noticeDtoPage
,
"records"
);
BeanUtils
.
copyProperties
(
noticePage
,
noticeDtoPage
,
"records"
);
List
<
JgMaintainNoticeDto
>
records
=
noticePage
.
getRecords
().
stream
().
map
(
notice
->
{
List
<
JgMaintainNoticeDto
>
records
=
noticePage
.
getRecords
().
stream
().
map
(
notice
->
{
...
@@ -433,7 +438,7 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
...
@@ -433,7 +438,7 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
dto
.
setCreateUserName
(
reginParams
.
getUserModel
().
getRealName
());
dto
.
setCreateUserName
(
reginParams
.
getUserModel
().
getRealName
());
dto
.
setCreateUserId
(
reginParams
.
getUserModel
().
getUserId
());
dto
.
setCreateUserId
(
reginParams
.
getUserModel
().
getUserId
());
DataDictionary
dictionary
=
iDataDictionaryService
.
getByCode
(
dto
.
getMaintainType
(),
"WXLX"
);
DataDictionary
dictionary
=
iDataDictionaryService
.
getByCode
(
dto
.
getMaintainType
(),
"WXLX"
);
dto
.
setMaintainTypeDesc
(
dictionary
.
getName
());
dto
.
setMaintainTypeDesc
(
dictionary
.
getName
());
dto
.
setFullAddress
(
dto
.
getProvinceName
()
+
dto
.
getCityName
()
+
dto
.
getCountyName
()
+
dto
.
getStreetName
()
+
dto
.
getAddress
());
dto
.
setFullAddress
(
dto
.
getProvinceName
()
+
dto
.
getCityName
()
+
dto
.
getCountyName
()
+
dto
.
getStreetName
()
+
dto
.
getAddress
());
list
.
add
(
dto
);
list
.
add
(
dto
);
...
@@ -446,16 +451,22 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
...
@@ -446,16 +451,22 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
// 暂存任务
// 暂存任务
buildTaskDraft
(
list
);
buildTaskDraft
(
list
);
}
}
List
<
JgMaintainNoticeEq
>
jgRelationEquipList
=
equipList
.
stream
().
map
(
jgRelationEquip
->
{
List
<
JgMaintainNoticeEq
>
jgRelationEquipList
=
equipList
.
stream
().
map
(
jgRelationEquip
->
{
List
<
JgMaintainNotice
>
collect
=
list
.
stream
().
filter
(
JgMaintainNotice
->
jgRelationEquip
.
getEquipTransferId
().
equals
(
JgMaintainNotice
.
getApplyNo
())).
collect
(
Collectors
.
toList
());
List
<
JgMaintainNotice
>
collect
=
list
.
stream
().
filter
(
JgMaintainNotice
->
jgRelationEquip
.
getEquipTransferId
().
equals
(
JgMaintainNotice
.
getApplyNo
())).
collect
(
Collectors
.
toList
());
Long
sequenceNbr
=
collect
.
get
(
0
).
getSequenceNbr
();
Long
sequenceNbr
=
collect
.
get
(
0
).
getSequenceNbr
();
return
jgRelationEquip
.
setEquipTransferId
(
String
.
valueOf
(
sequenceNbr
));
return
jgRelationEquip
.
setEquipTransferId
(
String
.
valueOf
(
sequenceNbr
));
}).
collect
(
Collectors
.
toList
());
}).
collect
(
Collectors
.
toList
());
jgMaintainNoticeEqMapper
.
insertBatchSomeColumn
(
jgRelationEquipList
);
jgMaintainNoticeEqMapper
.
insertBatchSomeColumn
(
jgRelationEquipList
);
this
.
updateRedisBatch
(
list
);
return
list
;
return
list
;
}
}
private
void
updateRedisBatch
(
List
<
JgMaintainNotice
>
jgMaintainNotices
)
{
jgMaintainNotices
.
stream
().
filter
(
n
->
StringUtil
.
isNotEmpty
(
n
.
getInstanceId
())).
forEach
(
jgMaintainNotice
->
{
commonService
.
saveExecuteFlowData2Redis
(
jgMaintainNotice
.
getInstanceId
(),
this
.
buildInstanceRuntimeData
(
jgMaintainNotice
));
});
}
/**
/**
* 暂存任务生成待办
* 暂存任务生成待办
*
*
...
@@ -563,8 +574,9 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
...
@@ -563,8 +574,9 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
}
}
private
void
convertField
(
JgMaintainNoticeDto
model
)
{
private
void
convertField
(
JgMaintainNoticeDto
model
)
{
if
(
null
==
model
)
if
(
null
==
model
)
{
return
;
return
;
}
// 处理附件
// 处理附件
if
(!
ValidationUtil
.
isEmpty
(
model
.
getPowerOfAttorneyList
()))
{
if
(!
ValidationUtil
.
isEmpty
(
model
.
getPowerOfAttorneyList
()))
{
model
.
setPowerOfAttorney
(
JSON
.
toJSONString
(
model
.
getPowerOfAttorneyList
()));
model
.
setPowerOfAttorney
(
JSON
.
toJSONString
(
model
.
getPowerOfAttorneyList
()));
...
@@ -675,102 +687,165 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
...
@@ -675,102 +687,165 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
}
}
public
void
cancel
(
JgMaintainNoticeDto
noticeDto
)
{
public
void
cancel
(
JgMaintainNoticeDto
noticeDto
)
{
JgMaintainNotice
jgMaintainNotice
=
this
.
baseMapper
.
selectById
(
noticeDto
.
getSequenceNbr
());
String
instanceId
=
noticeDto
.
getInstanceId
();
// 检查实际状态是否不等于期望状态
String
nextTaskId
=
noticeDto
.
getNextTaskId
();
commonService
.
checkExpectedStatus
(
jgMaintainNotice
.
getNoticeStatus
());
String
lockKey
=
CommonServiceImpl
.
buildJgExecuteLockKey
(
instanceId
);
ProcessTaskDTO
processTaskDTO
=
cmWorkflowService
.
rollBack
(
jgMaintainNotice
.
getInstanceId
());
RLock
lock
=
redissonClient
.
getLock
(
lockKey
);
// 提取节点等信息
try
{
WorkflowResultDto
workflowResultDto
=
commonService
.
buildWorkFlowInfo
(
Collections
.
singletonList
(
processTaskDTO
)).
get
(
0
);
boolean
isLocked
=
lock
.
tryLock
(
0
,
180
,
TimeUnit
.
SECONDS
);
jgMaintainNotice
.
setPromoter
(
""
);
// 解决并发问题:多个人同时操作一个流程(并发执行通过、驳回、撤回)
jgMaintainNotice
.
setNextExecuteIds
(
workflowResultDto
.
getNextExecutorRoleIds
());
if
(!
isLocked
)
{
jgMaintainNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
ROLLBACK
.
getCode
()));
throw
new
BadRequest
(
"当前流程已经被执行!"
);
jgMaintainNotice
.
setNextTaskId
(
workflowResultDto
.
getNextTaskId
());
}
jgMaintainNotice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
// 流程执行时,状态及权限校验
updateById
(
jgMaintainNotice
);
commonService
.
checkForRevocationFlow
(
nextTaskId
,
instanceId
);
JgMaintainNotice
jgMaintainNotice
=
this
.
baseMapper
.
selectById
(
noticeDto
.
getSequenceNbr
());
// 删除待办
ProcessTaskDTO
processTaskDTO
=
cmWorkflowService
.
rollBack
(
jgMaintainNotice
.
getInstanceId
());
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
jgMaintainNotice
));
// 提取节点等信息
jsonObject
.
put
(
"nextExecuteUser"
,
jgMaintainNotice
.
getNextExecuteIds
());
WorkflowResultDto
workflowResultDto
=
commonService
.
buildWorkFlowInfo
(
Collections
.
singletonList
(
processTaskDTO
)).
get
(
0
);
jsonObject
.
put
(
"taskType"
,
BusinessTypeEnum
.
JG_MAINTENANCE_NOTIFICATION
.
getCode
());
jgMaintainNotice
.
setPromoter
(
""
);
jsonObject
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
ROLLBACK
.
getName
());
jgMaintainNotice
.
setNextExecuteIds
(
workflowResultDto
.
getNextExecutorRoleIds
());
jsonObject
.
put
(
"flowStatus"
,
FlowStatusEnum
.
ROLLBACK
.
getCode
());
jgMaintainNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
ROLLBACK
.
getCode
()));
jgMaintainNotice
.
setNextTaskId
(
workflowResultDto
.
getNextTaskId
());
commonService
.
rollbackTask
(
jgMaintainNotice
.
getInstanceId
(),
jsonObject
);
jgMaintainNotice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
updateById
(
jgMaintainNotice
);
// 删除待办
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
jgMaintainNotice
));
jsonObject
.
put
(
"nextExecuteUser"
,
jgMaintainNotice
.
getNextExecuteIds
());
jsonObject
.
put
(
"taskType"
,
BusinessTypeEnum
.
JG_MAINTENANCE_NOTIFICATION
.
getCode
());
jsonObject
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
ROLLBACK
.
getName
());
jsonObject
.
put
(
"flowStatus"
,
FlowStatusEnum
.
ROLLBACK
.
getCode
());
commonService
.
rollbackTask
(
jgMaintainNotice
.
getInstanceId
(),
jsonObject
);
commonService
.
saveExecuteFlowData2Redis
(
instanceId
,
this
.
buildInstanceRuntimeData
(
jgMaintainNotice
));
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
finally
{
if
(
lock
.
isHeldByCurrentThread
())
{
lock
.
unlock
();
}
}
}
public
InstanceRuntimeData
buildInstanceRuntimeData
(
JgMaintainNotice
jgMaintainNotice
)
{
return
InstanceRuntimeData
.
builder
()
.
nextExecuteUserIds
(
jgMaintainNotice
.
getNextExecuteUserIds
())
.
promoter
(
jgMaintainNotice
.
getPromoter
())
.
nextTaskId
(
jgMaintainNotice
.
getNextTaskId
())
.
build
();
}
}
@Transactional
@Transactional
public
void
accept
(
JgMaintainNoticeDto
dto
,
String
op
,
String
opinion
)
{
public
void
accept
(
JgMaintainNoticeDto
dto
,
String
op
,
String
opinion
)
{
JgMaintainNotice
jgMaintainNotice
=
this
.
jgMaintainNoticeMapper
.
selectById
(
dto
.
getSequenceNbr
());
String
instanceId
=
dto
.
getInstanceId
();
String
nextTaskId
=
dto
.
getNextTaskId
();
// 检查实际状态是否不等于期望状态
String
lockKey
=
CommonServiceImpl
.
buildJgExecuteLockKey
(
instanceId
);
commonService
.
checkExpectedStatus
(
jgMaintainNotice
.
getNoticeStatus
());
RLock
lock
=
redissonClient
.
getLock
(
lockKey
);
// 组装设备注册代码
StringBuilder
stringBuffer
=
new
StringBuilder
();
String
ym
=
null
;
try
{
try
{
ym
=
DateUtils
.
dateFormat
(
new
Date
(),
DateUtils
.
DATE_PATTERN_MM
);
boolean
isLocked
=
lock
.
tryLock
(
0
,
180
,
TimeUnit
.
SECONDS
);
}
catch
(
ParseException
e
)
{
// 解决并发问题:多个人同时操作一个流程(并发执行通过、驳回、撤回)
log
.
error
(
"日期转换失败:{}"
,
e
);
if
(!
isLocked
)
{
}
throw
new
BadRequest
(
"当前流程已经被执行!"
);
//组装信息
}
TaskResultDTO
taskResultDTO
=
assembleData
(
jgMaintainNotice
,
op
,
opinion
);
// 流程执行时,状态及权限校验
ProcessTaskDTO
processTaskDTO
=
cmWorkflowService
.
completeOrReject
(
jgMaintainNotice
.
getNextTaskId
(),
taskResultDTO
,
op
);
commonService
.
checkForExecuteFlow
(
nextTaskId
,
instanceId
);
JgMaintainNotice
jgMaintainNotice
=
this
.
jgMaintainNoticeMapper
.
selectById
(
dto
.
getSequenceNbr
());
// 提取节点等信息
// 组装设备注册代码
WorkflowResultDto
workflowResultDto
=
commonService
.
buildWorkFlowInfo
(
Collections
.
singletonList
(
processTaskDTO
)).
get
(
0
);
StringBuilder
stringBuffer
=
new
StringBuilder
();
TaskV2Model
taskV2Model
=
new
TaskV2Model
();
String
ym
=
null
;
if
(
"0"
.
equals
(
op
))
{
try
{
// 判断如果下一步执行角色列表为空则流程完成
ym
=
DateUtils
.
dateFormat
(
new
Date
(),
DateUtils
.
DATE_PATTERN_MM
);
if
(
StringUtils
.
isEmpty
(
workflowResultDto
.
getNextExecutorRoleIds
()))
{
}
catch
(
ParseException
e
)
{
LambdaQueryWrapper
<
JgMaintainNoticeEq
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
log
.
error
(
"日期转换失败:{}"
,
e
);
queryWrapper
.
eq
(
JgMaintainNoticeEq:
:
getEquipTransferId
,
dto
.
getSequenceNbr
());
}
JgMaintainNoticeEq
jgRelationEquip
=
jgMaintainNoticeEqMapper
.
selectOne
(
queryWrapper
);
//组装信息
LambdaQueryWrapper
<
RegistrationInfo
>
queryWrapper2
=
new
LambdaQueryWrapper
<>();
TaskResultDTO
taskResultDTO
=
assembleData
(
jgMaintainNotice
,
op
,
opinion
);
queryWrapper2
.
eq
(
RegistrationInfo:
:
getRecord
,
jgRelationEquip
.
getEquId
());
ProcessTaskDTO
processTaskDTO
=
cmWorkflowService
.
completeOrReject
(
jgMaintainNotice
.
getNextTaskId
(),
taskResultDTO
,
op
);
RegistrationInfo
tzsJgRegistrationInfo
=
tzsJgRegistrationInfoMapper
.
selectOne
(
queryWrapper2
);
stringBuffer
.
append
(
tzsJgRegistrationInfo
.
getEquCategory
()).
append
(
jgMaintainNotice
.
getReceiveCompanyCode
()).
append
(
ym
);
// 提取节点等信息
String
equCode
=
stringBuffer
.
toString
();
WorkflowResultDto
workflowResultDto
=
commonService
.
buildWorkFlowInfo
(
Collections
.
singletonList
(
processTaskDTO
)).
get
(
0
);
ResponseModel
<
String
>
responseModel
=
tzsServiceFeignClient
.
deviceRegistrationCode
(
equCode
);
TaskV2Model
taskV2Model
=
new
TaskV2Model
();
String
deviceRegistrationCode
=
responseModel
.
getResult
();
if
(
"0"
.
equals
(
op
))
{
jgMaintainNotice
.
setInformNumber
(
deviceRegistrationCode
);
// 判断如果下一步执行角色列表为空则流程完成
if
(
StringUtils
.
isEmpty
(
workflowResultDto
.
getNextExecutorRoleIds
()))
{
jgMaintainNotice
.
setAcceptDate
(
new
Date
());
LambdaQueryWrapper
<
JgMaintainNoticeEq
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
jgMaintainNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
()));
queryWrapper
.
eq
(
JgMaintainNoticeEq:
:
getEquipTransferId
,
dto
.
getSequenceNbr
());
jgMaintainNotice
.
setPromoter
(
""
);
JgMaintainNoticeEq
jgRelationEquip
=
jgMaintainNoticeEqMapper
.
selectOne
(
queryWrapper
);
jgMaintainNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
()));
LambdaQueryWrapper
<
RegistrationInfo
>
queryWrapper2
=
new
LambdaQueryWrapper
<>();
queryWrapper2
.
eq
(
RegistrationInfo:
:
getRecord
,
jgRelationEquip
.
getEquId
());
// 上个代办改为已办
RegistrationInfo
tzsJgRegistrationInfo
=
tzsJgRegistrationInfoMapper
.
selectOne
(
queryWrapper2
);
HashMap
<
String
,
Object
>
taskMap
=
new
HashMap
<>();
stringBuffer
.
append
(
tzsJgRegistrationInfo
.
getEquCategory
()).
append
(
jgMaintainNotice
.
getReceiveCompanyCode
()).
append
(
ym
);
taskMap
.
put
(
"taskStatus"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
());
String
equCode
=
stringBuffer
.
toString
();
taskMap
.
put
(
"taskStatusLabel"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getName
());
ResponseModel
<
String
>
responseModel
=
tzsServiceFeignClient
.
deviceRegistrationCode
(
equCode
);
taskMap
.
put
(
"relationId"
,
jgMaintainNotice
.
getInstanceId
());
String
deviceRegistrationCode
=
responseModel
.
getResult
();
taskMap
.
put
(
"flowStatus"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
());
jgMaintainNotice
.
setInformNumber
(
deviceRegistrationCode
);
taskMap
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getName
());
TaskMessageDto
taskMessageDto
=
new
TaskMessageDto
();
jgMaintainNotice
.
setAcceptDate
(
new
Date
());
BeanUtils
.
copyProperties
(
jgMaintainNotice
,
taskMessageDto
);
jgMaintainNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
()));
taskMap
.
put
(
"model"
,
taskMessageDto
);
jgMaintainNotice
.
setPromoter
(
""
);
commonService
.
updateTaskModel
(
taskMap
);
jgMaintainNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
()));
jgMaintainNotice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
// 上个代办改为已办
jgMaintainNotice
.
setNextTaskId
(
workflowResultDto
.
getNextTaskId
());
HashMap
<
String
,
Object
>
taskMap
=
new
HashMap
<>();
jgMaintainNoticeMapper
.
updateById
(
jgMaintainNotice
);
taskMap
.
put
(
"taskStatus"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
());
this
.
generateMaintainNoticeReport
(
jgMaintainNotice
.
getSequenceNbr
());
taskMap
.
put
(
"taskStatusLabel"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getName
());
}
else
{
taskMap
.
put
(
"relationId"
,
jgMaintainNotice
.
getInstanceId
());
jgMaintainNotice
.
setNextExecuteIds
(
workflowResultDto
.
getNextExecutorRoleIds
());
taskMap
.
put
(
"flowStatus"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
());
if
(!
ObjectUtils
.
isEmpty
(
jgMaintainNotice
.
getInstanceStatus
()))
{
taskMap
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getName
());
jgMaintainNotice
.
setInstanceStatus
(
jgMaintainNotice
.
getInstanceStatus
()
+
","
+
workflowResultDto
.
getNextExecutorRoleIds
());
TaskMessageDto
taskMessageDto
=
new
TaskMessageDto
();
BeanUtils
.
copyProperties
(
jgMaintainNotice
,
taskMessageDto
);
taskMap
.
put
(
"model"
,
taskMessageDto
);
commonService
.
updateTaskModel
(
taskMap
);
jgMaintainNotice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
jgMaintainNotice
.
setNextTaskId
(
workflowResultDto
.
getNextTaskId
());
jgMaintainNoticeMapper
.
updateById
(
jgMaintainNotice
);
this
.
generateMaintainNoticeReport
(
jgMaintainNotice
.
getSequenceNbr
());
}
else
{
}
else
{
jgMaintainNotice
.
setInstanceStatus
(
workflowResultDto
.
getNextExecutorRoleIds
());
jgMaintainNotice
.
setNextExecuteIds
(
workflowResultDto
.
getNextExecutorRoleIds
());
if
(!
ObjectUtils
.
isEmpty
(
jgMaintainNotice
.
getInstanceStatus
()))
{
jgMaintainNotice
.
setInstanceStatus
(
jgMaintainNotice
.
getInstanceStatus
()
+
","
+
workflowResultDto
.
getNextExecutorRoleIds
());
}
else
{
jgMaintainNotice
.
setInstanceStatus
(
workflowResultDto
.
getNextExecutorRoleIds
());
}
jgMaintainNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
()));
// 上个代办改为已办
HashMap
<
String
,
Object
>
taskMap
=
new
HashMap
<>();
taskMap
.
put
(
"taskStatus"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
());
taskMap
.
put
(
"taskStatusLabel"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
taskMap
.
put
(
"flowStatus"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
());
taskMap
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
taskMap
.
put
(
"relationId"
,
jgMaintainNotice
.
getInstanceId
());
taskV2Model
=
commonService
.
updateTaskModel
(
taskMap
);
TaskModelDto
taskModelDto
=
new
TaskModelDto
();
BeanUtils
.
copyProperties
(
taskV2Model
,
taskModelDto
);
// 创建新的代办
TaskMessageDto
taskMessageDto
=
new
TaskMessageDto
();
BeanUtils
.
copyProperties
(
jgMaintainNotice
,
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
(
workflowResultDto
.
getNextTaskId
());
taskModelDto
.
setTaskStatusLabel
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
taskModelDto
.
setNextExecuteUser
(
workflowResultDto
.
getNextExecutorRoleIds
());
commonService
.
buildTaskModel
(
Collections
.
singletonList
(
taskModelDto
));
jgMaintainNotice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
jgMaintainNotice
.
setNextTaskId
(
workflowResultDto
.
getNextTaskId
());
jgMaintainNoticeMapper
.
updateById
(
jgMaintainNotice
);
}
}
jgMaintainNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
()));
}
else
{
jgMaintainNotice
.
setPromoter
(
""
);
jgMaintainNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
REJECTED
.
getCode
()));
// 上个代办改为已办
// 上个代办改为已办
HashMap
<
String
,
Object
>
taskMap
=
new
HashMap
<>();
HashMap
<
String
,
Object
>
taskMap
=
new
HashMap
<>();
taskMap
.
put
(
"taskStatus"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
());
taskMap
.
put
(
"taskStatus"
,
jgMaintainNotice
.
getNoticeStatus
());
taskMap
.
put
(
"taskStatusLabel"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
taskMap
.
put
(
"taskStatusLabel"
,
FlowStatusEnum
.
REJECTED
.
getName
());
taskMap
.
put
(
"flowStatus"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
());
taskMap
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
taskMap
.
put
(
"relationId"
,
jgMaintainNotice
.
getInstanceId
());
taskMap
.
put
(
"relationId"
,
jgMaintainNotice
.
getInstanceId
());
taskMap
.
put
(
"flowStatus"
,
FlowStatusEnum
.
REJECTED
.
getCode
());
taskMap
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
REJECTED
.
getName
());
taskV2Model
=
commonService
.
updateTaskModel
(
taskMap
);
taskV2Model
=
commonService
.
updateTaskModel
(
taskMap
);
TaskModelDto
taskModelDto
=
new
TaskModelDto
();
TaskModelDto
taskModelDto
=
new
TaskModelDto
();
BeanUtils
.
copyProperties
(
taskV2Model
,
taskModelDto
);
BeanUtils
.
copyProperties
(
taskV2Model
,
taskModelDto
);
...
@@ -780,46 +855,24 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
...
@@ -780,46 +855,24 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
taskModelDto
.
setModel
(
taskMessageDto
);
taskModelDto
.
setModel
(
taskMessageDto
);
taskModelDto
.
setTaskName
(
workflowResultDto
.
getNextTaskName
());
taskModelDto
.
setTaskName
(
workflowResultDto
.
getNextTaskName
());
taskModelDto
.
setExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
taskModelDto
.
setExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
taskModelDto
.
setFlowStatus
(
FlowStatusEnum
.
TO_BE_PROCESS
ED
.
getCode
());
taskModelDto
.
setFlowStatus
(
FlowStatusEnum
.
REJECT
ED
.
getCode
());
taskModelDto
.
setFlowStatusLabel
(
FlowStatusEnum
.
TO_BE_PROCESS
ED
.
getName
());
taskModelDto
.
setFlowStatusLabel
(
FlowStatusEnum
.
REJECT
ED
.
getName
());
taskModelDto
.
setFlowCode
(
workflowResultDto
.
getNextTaskId
());
taskModelDto
.
setFlowCode
(
workflowResultDto
.
getNextTaskId
());
taskModelDto
.
setTaskStatusLabel
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
taskModelDto
.
setNextExecuteUser
(
workflowResultDto
.
getNextExecutorRoleIds
());
taskModelDto
.
setNextExecuteUser
(
workflowResultDto
.
getNextExecutorRoleIds
());
taskModelDto
.
setPageType
(
"edit"
);
commonService
.
buildTaskModel
(
Collections
.
singletonList
(
taskModelDto
));
commonService
.
buildTaskModel
(
Collections
.
singletonList
(
taskModelDto
));
jgMaintainNotice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
jgMaintainNotice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
jgMaintainNotice
.
setNextTaskId
(
workflowResultDto
.
getNextTaskId
());
jgMaintainNotice
.
setNextTaskId
(
workflowResultDto
.
getNextTaskId
());
jgMaintainNoticeMapper
.
updateById
(
jgMaintainNotice
);
jgMaintainNoticeMapper
.
updateById
(
jgMaintainNotice
);
}
}
}
else
{
commonService
.
saveExecuteFlowData2Redis
(
instanceId
,
this
.
buildInstanceRuntimeData
(
jgMaintainNotice
));
jgMaintainNotice
.
setPromoter
(
""
);
}
catch
(
InterruptedException
e
)
{
jgMaintainNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
REJECTED
.
getCode
()));
e
.
printStackTrace
();
// 上个代办改为已办
}
finally
{
HashMap
<
String
,
Object
>
taskMap
=
new
HashMap
<>();
if
(
lock
.
isHeldByCurrentThread
())
{
taskMap
.
put
(
"taskStatus"
,
jgMaintainNotice
.
getNoticeStatus
());
lock
.
unlock
();
taskMap
.
put
(
"taskStatusLabel"
,
FlowStatusEnum
.
REJECTED
.
getName
());
}
taskMap
.
put
(
"relationId"
,
jgMaintainNotice
.
getInstanceId
());
taskMap
.
put
(
"flowStatus"
,
FlowStatusEnum
.
REJECTED
.
getCode
());
taskMap
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
REJECTED
.
getName
());
taskV2Model
=
commonService
.
updateTaskModel
(
taskMap
);
TaskModelDto
taskModelDto
=
new
TaskModelDto
();
BeanUtils
.
copyProperties
(
taskV2Model
,
taskModelDto
);
// 创建新的代办
TaskMessageDto
taskMessageDto
=
new
TaskMessageDto
();
BeanUtils
.
copyProperties
(
jgMaintainNotice
,
taskMessageDto
);
taskModelDto
.
setModel
(
taskMessageDto
);
taskModelDto
.
setTaskName
(
workflowResultDto
.
getNextTaskName
());
taskModelDto
.
setExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
taskModelDto
.
setFlowStatus
(
FlowStatusEnum
.
REJECTED
.
getCode
());
taskModelDto
.
setFlowStatusLabel
(
FlowStatusEnum
.
REJECTED
.
getName
());
taskModelDto
.
setFlowCode
(
workflowResultDto
.
getNextTaskId
());
taskModelDto
.
setNextExecuteUser
(
workflowResultDto
.
getNextExecutorRoleIds
());
taskModelDto
.
setPageType
(
"edit"
);
commonService
.
buildTaskModel
(
Collections
.
singletonList
(
taskModelDto
));
jgMaintainNotice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
jgMaintainNotice
.
setNextTaskId
(
workflowResultDto
.
getNextTaskId
());
jgMaintainNoticeMapper
.
updateById
(
jgMaintainNotice
);
}
}
}
}
...
...
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/JgReformNoticeServiceImpl.java
View file @
13d4c293
...
@@ -6,14 +6,13 @@ import com.alibaba.fastjson.JSON;
...
@@ -6,14 +6,13 @@ import com.alibaba.fastjson.JSON;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.github.pagehelper.util.StringUtil
;
import
com.yeejoin.amos.boot.biz.common.bo.ReginParams
;
import
com.yeejoin.amos.boot.biz.common.bo.ReginParams
;
import
com.yeejoin.amos.boot.biz.common.utils.DateUtils
;
import
com.yeejoin.amos.boot.biz.common.utils.DateUtils
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisKey
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisKey
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
import
com.yeejoin.amos.boot.module.jg.api.dto.JgReformNoticeDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.*
;
import
com.yeejoin.amos.boot.module.jg.api.dto.TaskMessageDto
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgInstallationNotice
;
import
com.yeejoin.amos.boot.module.jg.api.dto.TaskModelDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.WorkflowResultDto
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgReformNotice
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgReformNotice
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgReformNoticeEq
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgReformNoticeEq
;
import
com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum
;
import
com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum
;
...
@@ -26,13 +25,18 @@ import com.yeejoin.amos.boot.module.jg.biz.utils.WordTemplateUtils;
...
@@ -26,13 +25,18 @@ import com.yeejoin.amos.boot.module.jg.biz.utils.WordTemplateUtils;
import
com.yeejoin.amos.boot.module.ymt.api.entity.RegistrationInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.RegistrationInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.*
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.EquipmentCategoryMapper
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.OtherInfoMapper
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.RegistrationInfoMapper
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.SupervisoryCodeInfoMapper
;
import
com.yeejoin.amos.feign.systemctl.model.TaskV2Model
;
import
com.yeejoin.amos.feign.systemctl.model.TaskV2Model
;
import
com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO
;
import
com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO
;
import
com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO
;
import
com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO
;
import
com.yeejoin.amos.feign.workflow.model.ProcessTaskDTO
;
import
com.yeejoin.amos.feign.workflow.model.ProcessTaskDTO
;
import
com.yeejoin.amos.feign.workflow.model.TaskResultDTO
;
import
com.yeejoin.amos.feign.workflow.model.TaskResultDTO
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.redisson.api.RLock
;
import
org.redisson.api.RedissonClient
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -48,6 +52,7 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel;
...
@@ -48,6 +52,7 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel;
import
java.text.ParseException
;
import
java.text.ParseException
;
import
java.util.*
;
import
java.util.*
;
import
java.util.concurrent.TimeUnit
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
java.util.stream.Stream
;
import
java.util.stream.Stream
;
...
@@ -89,8 +94,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
...
@@ -89,8 +94,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
RedisUtils
redisUtils
;
RedisUtils
redisUtils
;
@Autowired
@Autowired
private
JgReformNoticeMapper
jgReformNoticeMapper
;
private
JgReformNoticeMapper
jgReformNoticeMapper
;
@Autowired
private
TzBaseUnitLicenceMapper
baseUnitLicenceMapper
;
@Autowired
@Autowired
private
CommonServiceImpl
commonService
;
private
CommonServiceImpl
commonService
;
@Autowired
@Autowired
...
@@ -101,6 +105,9 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
...
@@ -101,6 +105,9 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
@Autowired
@Autowired
JgInstallationNoticeServiceImpl
jgInstallationNoticeService
;
JgInstallationNoticeServiceImpl
jgInstallationNoticeService
;
@Autowired
private
RedissonClient
redissonClient
;
/**
/**
* 根据sequenceNbr查询
* 根据sequenceNbr查询
*
*
...
@@ -130,7 +137,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
...
@@ -130,7 +137,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
}
}
String
[]
fields
=
{
"productPhoto"
,
"designDoc"
,
"designStandard"
,
"factoryStandard"
,
String
[]
fields
=
{
"productPhoto"
,
"designDoc"
,
"designStandard"
,
"factoryStandard"
,
"productQualityYieldProve"
,
"insUseMaintainExplain"
,
"inspectReport"
,
"productQualityYieldProve"
,
"insUseMaintainExplain"
,
"inspectReport"
,
"proxyStatementAttachment"
,
"installContractAttachment"
,
"otherAccessories"
};
"proxyStatementAttachment"
,
"installContractAttachment"
,
"otherAccessories"
};
// 设备信息
// 设备信息
List
<
Map
<
String
,
Object
>>
equipmentInfos
=
jgReformNoticeMapper
.
queryEquipInformation
(
sequenceNbr
);
List
<
Map
<
String
,
Object
>>
equipmentInfos
=
jgReformNoticeMapper
.
queryEquipInformation
(
sequenceNbr
);
Map
<
String
,
Object
>
equipMap
=
null
;
Map
<
String
,
Object
>
equipMap
=
null
;
...
@@ -155,9 +162,9 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
...
@@ -155,9 +162,9 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
installationInfo
.
put
(
"constructionManagerId"
,
notice
.
getConstructionManagerId
()
+
"_"
+
notice
.
getConstructionManager
());
installationInfo
.
put
(
"constructionManagerId"
,
notice
.
getConstructionManagerId
()
+
"_"
+
notice
.
getConstructionManager
());
return
Stream
.
concat
(
return
Stream
.
concat
(
installationInfo
.
entrySet
().
stream
(),
installationInfo
.
entrySet
().
stream
(),
equipMap
.
entrySet
().
stream
()
equipMap
.
entrySet
().
stream
()
)
)
.
filter
(
entry
->
entry
.
getValue
()
!=
null
)
.
filter
(
entry
->
entry
.
getValue
()
!=
null
)
.
collect
(
Collectors
.
toMap
(
Map
.
Entry
::
getKey
,
Map
.
Entry
::
getValue
,
(
existing
,
replacement
)
->
existing
));
.
collect
(
Collectors
.
toMap
(
Map
.
Entry
::
getKey
,
Map
.
Entry
::
getValue
,
(
existing
,
replacement
)
->
existing
));
...
@@ -206,10 +213,10 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
...
@@ -206,10 +213,10 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
jgReformNoticeMapper
.
updateById
(
notice
);
jgReformNoticeMapper
.
updateById
(
notice
);
//删除暂存
//删除暂存
commonService
.
deleteTaskModel
(
notice
.
getSequenceNbr
()
+
""
);
commonService
.
deleteTaskModel
(
notice
.
getSequenceNbr
()
+
""
);
// 如果为保存并提交,则创建代办
// 如果为保存并提交,则创建代办
this
.
buildTask
(
Collections
.
singletonList
(
notice
),
Collections
.
singletonList
(
workflowResultDto
));
this
.
buildTask
(
Collections
.
singletonList
(
notice
),
Collections
.
singletonList
(
workflowResultDto
));
}
else
{
}
else
{
TaskResultDTO
dto
=
new
TaskResultDTO
();
TaskResultDTO
dto
=
new
TaskResultDTO
();
dto
.
setResultCode
(
"approvalStatus"
);
dto
.
setResultCode
(
"approvalStatus"
);
dto
.
setTaskId
(
notice
.
getNextTaskId
());
dto
.
setTaskId
(
notice
.
getNextTaskId
());
...
@@ -243,6 +250,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
...
@@ -243,6 +250,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
// 创建新的代办
// 创建新的代办
this
.
createNewTodo
(
notice
,
workflowResultDto
,
taskV2Model
,
FlowStatusEnum
.
TO_BE_PROCESSED
);
this
.
createNewTodo
(
notice
,
workflowResultDto
,
taskV2Model
,
FlowStatusEnum
.
TO_BE_PROCESSED
);
}
}
commonService
.
saveExecuteFlowData2Redis
(
notice
.
getInstanceId
(),
this
.
buildInstanceRuntimeData
(
notice
));
}
else
{
}
else
{
JgReformNotice
bean
=
new
JgReformNotice
();
JgReformNotice
bean
=
new
JgReformNotice
();
BeanUtils
.
copyProperties
(
noticeDto
,
bean
);
BeanUtils
.
copyProperties
(
noticeDto
,
bean
);
...
@@ -347,7 +355,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
...
@@ -347,7 +355,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
@Override
@Override
@SuppressWarnings
({
"Duplicates"
,
"rawtypes"
})
@SuppressWarnings
({
"Duplicates"
,
"rawtypes"
})
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
List
<
JgReformNotice
>
saveNotice
(
String
submitType
,
Map
<
String
,
Object
>
JgReformNoticeDtoMap
,
ReginParams
reginParams
)
{
public
List
<
JgReformNotice
>
saveNotice
(
String
submitType
,
Map
<
String
,
Object
>
JgReformNoticeDtoMap
,
ReginParams
reginParams
)
{
JgReformNoticeDto
model
=
JSON
.
parseObject
(
JSONObject
.
toJSONString
(
JgReformNoticeDtoMap
.
get
(
TABLE_PAGE_ID
)),
JgReformNoticeDto
.
class
);
JgReformNoticeDto
model
=
JSON
.
parseObject
(
JSONObject
.
toJSONString
(
JgReformNoticeDtoMap
.
get
(
TABLE_PAGE_ID
)),
JgReformNoticeDto
.
class
);
convertField
(
model
);
convertField
(
model
);
// 获取告知设备列表
// 获取告知设备列表
...
@@ -385,11 +393,11 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
...
@@ -385,11 +393,11 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
dto
.
setCreateUserName
(
reginParams
.
getUserModel
().
getRealName
());
dto
.
setCreateUserName
(
reginParams
.
getUserModel
().
getRealName
());
dto
.
setCreateUserId
(
reginParams
.
getUserModel
().
getUserId
());
dto
.
setCreateUserId
(
reginParams
.
getUserModel
().
getUserId
());
dto
.
setCreateUserCompanyName
(
reginParams
.
getCompany
().
getCompanyName
());
dto
.
setCreateUserCompanyName
(
reginParams
.
getCompany
().
getCompanyName
());
dto
.
setEquCategory
(
Objects
.
toString
(
obj
.
get
(
"EQU_CATEGORY"
),
""
));
dto
.
setEquCategory
(
Objects
.
toString
(
obj
.
get
(
"EQU_CATEGORY"
),
""
));
dto
.
setEquListCode
(
Objects
.
toString
(
obj
.
get
(
"EQU_DEFINE"
),
""
));
dto
.
setEquListCode
(
Objects
.
toString
(
obj
.
get
(
"EQU_DEFINE"
),
""
));
dto
.
setSupervisoryCode
(
Objects
.
toString
(
obj
.
get
(
"SUPERVISORY_CODE"
),
""
));
dto
.
setSupervisoryCode
(
Objects
.
toString
(
obj
.
get
(
"SUPERVISORY_CODE"
),
""
));
dto
.
setEquList
(
Objects
.
toString
(
obj
.
get
(
"EQU_LIST"
),
""
));
dto
.
setEquList
(
Objects
.
toString
(
obj
.
get
(
"EQU_LIST"
),
""
));
dto
.
setFullAddress
(
Objects
.
toString
(
obj
.
get
(
"ADDRESS"
),
""
));
dto
.
setFullAddress
(
Objects
.
toString
(
obj
.
get
(
"ADDRESS"
),
""
));
if
(
SUBMIT_TYPE_FLOW
.
equals
(
submitType
))
{
if
(
SUBMIT_TYPE_FLOW
.
equals
(
submitType
))
{
WorkflowResultDto
workflowResult
=
workflowResultList
.
get
(
i
);
WorkflowResultDto
workflowResult
=
workflowResultList
.
get
(
i
);
...
@@ -398,7 +406,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
...
@@ -398,7 +406,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
dto
.
setPromoter
(
reginParams
.
getUserModel
().
getUserId
());
dto
.
setPromoter
(
reginParams
.
getUserModel
().
getUserId
());
dto
.
setNextTaskId
(
workflowResult
.
getNextTaskId
());
dto
.
setNextTaskId
(
workflowResult
.
getNextTaskId
());
dto
.
setNextExecuteUserIds
(
workflowResult
.
getNextExecutorUserIds
());
dto
.
setNextExecuteUserIds
(
workflowResult
.
getNextExecutorUserIds
());
}
else
{
}
else
{
dto
.
setNextExecuteUserIds
(
RequestContext
.
getExeUserId
());
dto
.
setNextExecuteUserIds
(
RequestContext
.
getExeUserId
());
}
}
dto
.
setInstallUnitName
(
reginParams
.
getCompany
().
getCompanyName
());
dto
.
setInstallUnitName
(
reginParams
.
getCompany
().
getCompanyName
());
...
@@ -423,22 +431,28 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
...
@@ -423,22 +431,28 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
if
(
SUBMIT_TYPE_FLOW
.
equals
(
submitType
))
{
if
(
SUBMIT_TYPE_FLOW
.
equals
(
submitType
))
{
this
.
buildTask
(
list
,
workflowResultList
);
this
.
buildTask
(
list
,
workflowResultList
);
}
else
{
}
else
{
this
.
saveTempReformNotice
(
list
);
this
.
saveTempReformNotice
(
list
);
}
}
List
<
JgReformNoticeEq
>
jgRelationEquipList
=
equipList
.
stream
().
map
(
jgRelationEquip
->
{
List
<
JgReformNoticeEq
>
jgRelationEquipList
=
equipList
.
stream
().
map
(
jgRelationEquip
->
{
List
<
JgReformNotice
>
collect
=
list
.
stream
().
filter
(
JgReformNotice
->
jgRelationEquip
.
getEquipTransferId
().
equals
(
JgReformNotice
.
getApplyNo
())).
collect
(
Collectors
.
toList
());
List
<
JgReformNotice
>
collect
=
list
.
stream
().
filter
(
JgReformNotice
->
jgRelationEquip
.
getEquipTransferId
().
equals
(
JgReformNotice
.
getApplyNo
())).
collect
(
Collectors
.
toList
());
Long
sequenceNbr
=
collect
.
get
(
0
).
getSequenceNbr
();
Long
sequenceNbr
=
collect
.
get
(
0
).
getSequenceNbr
();
return
jgRelationEquip
.
setEquipTransferId
(
String
.
valueOf
(
sequenceNbr
));
return
jgRelationEquip
.
setEquipTransferId
(
String
.
valueOf
(
sequenceNbr
));
}).
collect
(
Collectors
.
toList
());
}).
collect
(
Collectors
.
toList
());
jgReformNoticeEqMapper
.
insertBatchSomeColumn
(
jgRelationEquipList
);
jgReformNoticeEqMapper
.
insertBatchSomeColumn
(
jgRelationEquipList
);
this
.
updateRedisBatch
(
list
);
return
list
;
return
list
;
}
}
private
void
updateRedisBatch
(
List
<
JgReformNotice
>
jgReformNotices
)
{
jgReformNotices
.
stream
().
filter
(
n
->
StringUtil
.
isNotEmpty
(
n
.
getInstanceId
())).
forEach
(
jgReformNotice
->
{
commonService
.
saveExecuteFlowData2Redis
(
jgReformNotice
.
getInstanceId
(),
this
.
buildInstanceRuntimeData
(
jgReformNotice
));
});
}
/**
/**
* 批量暂存
* 批量暂存
*
* @param noticeList 移交信息
* @param noticeList 移交信息
*/
*/
private
void
saveTempReformNotice
(
List
<
JgReformNotice
>
noticeList
)
{
private
void
saveTempReformNotice
(
List
<
JgReformNotice
>
noticeList
)
{
...
@@ -456,7 +470,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
...
@@ -456,7 +470,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
.
taskContent
(
String
.
format
(
"来自%s【%s】的业务办理,【申请单号:%s】"
,
item
.
getEquList
(),
Objects
.
toString
(
item
.
getSupervisoryCode
(),
""
),
item
.
getApplyNo
()))
.
taskContent
(
String
.
format
(
"来自%s【%s】的业务办理,【申请单号:%s】"
,
item
.
getEquList
(),
Objects
.
toString
(
item
.
getSupervisoryCode
(),
""
),
item
.
getApplyNo
()))
.
taskCode
(
item
.
getApplyNo
())
.
taskCode
(
item
.
getApplyNo
())
.
taskType
(
BusinessTypeEnum
.
JG_MODIFICATION_NOTIFICATION
.
getCode
())
.
taskType
(
BusinessTypeEnum
.
JG_MODIFICATION_NOTIFICATION
.
getCode
())
.
relationId
(
item
.
getSequenceNbr
()
+
""
)
.
relationId
(
item
.
getSequenceNbr
()
+
""
)
.
build
();
.
build
();
}
}
...
@@ -634,13 +648,22 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
...
@@ -634,13 +648,22 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
*
*
* @param noticeDto 改造信息
* @param noticeDto 改造信息
*/
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
cancel
(
JgReformNoticeDto
noticeDto
)
{
public
void
cancel
(
JgReformNoticeDto
noticeDto
)
{
// 查询 改造信息
String
instanceId
=
noticeDto
.
getInstanceId
();
JgReformNotice
notice
=
baseMapper
.
selectById
(
noticeDto
.
getSequenceNbr
());
String
nextTaskId
=
noticeDto
.
getNextTaskId
();
String
lockKey
=
CommonServiceImpl
.
buildJgExecuteLockKey
(
instanceId
);
if
(
notice
!=
null
)
{
RLock
lock
=
redissonClient
.
getLock
(
lockKey
);
// 检查实际状态是否不等于期望状态
try
{
commonService
.
checkExpectedStatus
(
notice
.
getNoticeStatus
());
boolean
isLocked
=
lock
.
tryLock
(
0
,
180
,
TimeUnit
.
SECONDS
);
// 解决并发问题:多个人同时操作一个流程(并发执行通过、驳回、撤回)
if
(!
isLocked
)
{
throw
new
BadRequest
(
"当前流程已经被执行!"
);
}
// 流程执行时,状态及权限校验
commonService
.
checkForRevocationFlow
(
nextTaskId
,
instanceId
);
// 查询 改造信息
JgReformNotice
notice
=
baseMapper
.
selectById
(
noticeDto
.
getSequenceNbr
());
// 回滚工作流
// 回滚工作流
ProcessTaskDTO
processTaskDTO
=
cmWorkflowService
.
rollBack
(
noticeDto
.
getInstanceId
());
ProcessTaskDTO
processTaskDTO
=
cmWorkflowService
.
rollBack
(
noticeDto
.
getInstanceId
());
WorkflowResultDto
workflowResultDto
=
commonService
.
buildWorkFlowInfo
(
Collections
.
singletonList
(
processTaskDTO
)).
get
(
0
);
WorkflowResultDto
workflowResultDto
=
commonService
.
buildWorkFlowInfo
(
Collections
.
singletonList
(
processTaskDTO
)).
get
(
0
);
...
@@ -650,13 +673,19 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
...
@@ -650,13 +673,19 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
notice
.
setNextTaskId
(
workflowResultDto
.
getNextTaskId
());
notice
.
setNextTaskId
(
workflowResultDto
.
getNextTaskId
());
notice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
notice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
baseMapper
.
updateById
(
notice
);
baseMapper
.
updateById
(
notice
);
JSONObject
jsonObject
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
notice
));
JSONObject
jsonObject
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
notice
));
jsonObject
.
put
(
"nextExecuteUser"
,
notice
.
getNextExecuteIds
());
jsonObject
.
put
(
"nextExecuteUser"
,
notice
.
getNextExecuteIds
());
jsonObject
.
put
(
"taskType"
,
BusinessTypeEnum
.
JG_MODIFICATION_NOTIFICATION
.
getCode
());
jsonObject
.
put
(
"taskType"
,
BusinessTypeEnum
.
JG_MODIFICATION_NOTIFICATION
.
getCode
());
jsonObject
.
put
(
"flowStatus"
,
FlowStatusEnum
.
ROLLBACK
.
getCode
());
jsonObject
.
put
(
"flowStatus"
,
FlowStatusEnum
.
ROLLBACK
.
getCode
());
jsonObject
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
ROLLBACK
.
getName
());
jsonObject
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
ROLLBACK
.
getName
());
commonService
.
rollbackTask
(
notice
.
getInstanceId
(),
jsonObject
);
commonService
.
rollbackTask
(
notice
.
getInstanceId
(),
jsonObject
);
commonService
.
saveExecuteFlowData2Redis
(
instanceId
,
this
.
buildInstanceRuntimeData
(
notice
));
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
finally
{
if
(
lock
.
isHeldByCurrentThread
())
{
lock
.
unlock
();
}
}
}
}
}
...
@@ -667,93 +696,118 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
...
@@ -667,93 +696,118 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
* @param op 通过或驳回
* @param op 通过或驳回
*/
*/
public
void
accept
(
JgReformNoticeDto
dto
,
String
op
)
{
public
void
accept
(
JgReformNoticeDto
dto
,
String
op
)
{
ReginParams
reginParams
=
JSONObject
.
parseObject
(
redisUtils
.
get
(
RedisKey
.
buildReginKey
(
RequestContext
.
getExeUserId
(),
RequestContext
.
getToken
())).
toString
(),
ReginParams
.
class
);
String
instanceId
=
dto
.
getInstanceId
();
JgReformNotice
jgReformNotice
=
baseMapper
.
selectById
(
dto
.
getSequenceNbr
());
String
nextTaskId
=
dto
.
getNextTaskId
();
String
lockKey
=
CommonServiceImpl
.
buildJgExecuteLockKey
(
instanceId
);
// 检查实际状态是否不等于期望状态
RLock
lock
=
redissonClient
.
getLock
(
lockKey
);
commonService
.
checkExpectedStatus
(
jgReformNotice
.
getNoticeStatus
());
jgReformNotice
.
setCreateUserCompanyName
(
reginParams
.
getCompany
().
getCompanyName
());
// 组装设备注册代码
StringBuilder
stringBuffer
=
new
StringBuilder
();
String
ym
=
null
;
try
{
try
{
ym
=
DateUtils
.
dateFormat
(
new
Date
(),
DateUtils
.
DATE_PATTERN_MM
);
boolean
isLocked
=
lock
.
tryLock
(
0
,
180
,
TimeUnit
.
SECONDS
);
}
catch
(
ParseException
e
)
{
// 解决并发问题:多个人同时操作一个流程(并发执行通过、驳回、撤回)
log
.
error
(
"日期转换失败:{}"
,
e
.
getMessage
());
if
(!
isLocked
)
{
}
throw
new
BadRequest
(
"当前流程已经被执行!"
);
}
// 流程执行时,状态及权限校验
commonService
.
checkForExecuteFlow
(
nextTaskId
,
instanceId
);
ReginParams
reginParams
=
JSONObject
.
parseObject
(
redisUtils
.
get
(
RedisKey
.
buildReginKey
(
RequestContext
.
getExeUserId
(),
RequestContext
.
getToken
())).
toString
(),
ReginParams
.
class
);
JgReformNotice
jgReformNotice
=
baseMapper
.
selectById
(
dto
.
getSequenceNbr
());
jgReformNotice
.
setCreateUserCompanyName
(
reginParams
.
getCompany
().
getCompanyName
());
// 组装设备注册代码
StringBuilder
stringBuffer
=
new
StringBuilder
();
String
ym
=
null
;
try
{
ym
=
DateUtils
.
dateFormat
(
new
Date
(),
DateUtils
.
DATE_PATTERN_MM
);
}
catch
(
ParseException
e
)
{
log
.
error
(
"日期转换失败:{}"
,
e
.
getMessage
());
}
TaskResultDTO
workDto
=
new
TaskResultDTO
();
TaskResultDTO
workDto
=
new
TaskResultDTO
();
workDto
.
setResultCode
(
"approvalStatus"
);
workDto
.
setResultCode
(
"approvalStatus"
);
workDto
.
setTaskId
(
jgReformNotice
.
getNextTaskId
());
workDto
.
setTaskId
(
jgReformNotice
.
getNextTaskId
());
HashMap
<
String
,
Object
>
commMap
=
new
HashMap
<>();
HashMap
<
String
,
Object
>
commMap
=
new
HashMap
<>();
if
(
jgReformNotice
.
getNoticeStatus
().
equals
(
"6614"
)
||
jgReformNotice
.
getNoticeStatus
().
equals
(
"6615"
))
{
if
(
jgReformNotice
.
getNoticeStatus
().
equals
(
"6614"
)
||
jgReformNotice
.
getNoticeStatus
().
equals
(
"6615"
))
{
commMap
.
put
(
"approvalStatus"
,
"提交"
);
commMap
.
put
(
"approvalStatus"
,
"提交"
);
}
else
{
commMap
.
put
(
"approvalStatus"
,
op
);
}
workDto
.
setNextExecuteUserCompanyCode
(
"1"
.
equals
(
op
)
?
jgReformNotice
.
getInstallUnitCreditCode
()
:
jgReformNotice
.
getReceiveOrgCode
());
workDto
.
setVariable
(
commMap
);
workDto
.
setComment
(
dto
.
getRemark
());
ProcessTaskDTO
processTaskDTO
=
cmWorkflowService
.
completeOrReject
(
jgReformNotice
.
getNextTaskId
(),
workDto
,
op
);
WorkflowResultDto
workflowResultDto
=
commonService
.
buildWorkFlowInfo
(
Collections
.
singletonList
(
processTaskDTO
)).
get
(
0
);
jgReformNotice
.
setPromoter
(
reginParams
.
getUserModel
().
getUserId
());
jgReformNotice
.
setRemark
(
dto
.
getRemark
());
TaskV2Model
taskV2Model
;
if
(
"0"
.
equals
(
op
))
{
if
(
StringUtils
.
isEmpty
(
workflowResultDto
.
getNextExecutorRoleIds
()))
{
LambdaQueryWrapper
<
JgReformNoticeEq
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
JgReformNoticeEq:
:
getEquipTransferId
,
dto
.
getSequenceNbr
());
JgReformNoticeEq
jgRelationEquip
=
jgReformNoticeEqMapper
.
selectOne
(
queryWrapper
);
LambdaQueryWrapper
<
RegistrationInfo
>
queryWrapper2
=
new
LambdaQueryWrapper
<>();
queryWrapper2
.
eq
(
RegistrationInfo:
:
getRecord
,
jgRelationEquip
.
getEquId
());
RegistrationInfo
tzsJgRegistrationInfo
=
tzsJgRegistrationInfoMapper
.
selectOne
(
queryWrapper2
);
stringBuffer
.
append
(
tzsJgRegistrationInfo
.
getEquCategory
()).
append
(
jgReformNotice
.
getReceiveCompanyCode
()).
append
(
ym
);
String
equCode
=
stringBuffer
.
toString
();
ResponseModel
<
String
>
responseModel
=
tzsServiceFeignClient
.
deviceRegistrationCode
(
equCode
);
String
deviceRegistrationCode
=
responseModel
.
getResult
();
jgReformNotice
.
setInformNumber
(
deviceRegistrationCode
);
jgReformNotice
.
setAcceptDate
(
new
Date
());
jgReformNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
()));
jgReformNotice
.
setPromoter
(
""
);
this
.
updateLastTodo
(
jgReformNotice
,
FlowStatusEnum
.
TO_BE_FINISHED
);
this
.
updateById
(
jgReformNotice
);
this
.
generateInstallationNoticeReport
(
jgReformNotice
.
getSequenceNbr
());
}
else
{
}
else
{
jgReformNotice
.
setNextExecuteIds
(
workflowResultDto
.
getNextExecutorRoleIds
());
commMap
.
put
(
"approvalStatus"
,
op
);
if
(!
ObjectUtils
.
isEmpty
(
jgReformNotice
.
getInstanceStatus
()))
{
}
jgReformNotice
.
setInstanceStatus
(
jgReformNotice
.
getInstanceStatus
()
+
","
+
workflowResultDto
.
getNextExecutorRoleIds
());
workDto
.
setNextExecuteUserCompanyCode
(
"1"
.
equals
(
op
)
?
jgReformNotice
.
getInstallUnitCreditCode
()
:
jgReformNotice
.
getReceiveOrgCode
());
workDto
.
setVariable
(
commMap
);
workDto
.
setComment
(
dto
.
getRemark
());
ProcessTaskDTO
processTaskDTO
=
cmWorkflowService
.
completeOrReject
(
jgReformNotice
.
getNextTaskId
(),
workDto
,
op
);
WorkflowResultDto
workflowResultDto
=
commonService
.
buildWorkFlowInfo
(
Collections
.
singletonList
(
processTaskDTO
)).
get
(
0
);
jgReformNotice
.
setPromoter
(
reginParams
.
getUserModel
().
getUserId
());
jgReformNotice
.
setRemark
(
dto
.
getRemark
());
TaskV2Model
taskV2Model
;
if
(
"0"
.
equals
(
op
))
{
if
(
StringUtils
.
isEmpty
(
workflowResultDto
.
getNextExecutorRoleIds
()))
{
LambdaQueryWrapper
<
JgReformNoticeEq
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
JgReformNoticeEq:
:
getEquipTransferId
,
dto
.
getSequenceNbr
());
JgReformNoticeEq
jgRelationEquip
=
jgReformNoticeEqMapper
.
selectOne
(
queryWrapper
);
LambdaQueryWrapper
<
RegistrationInfo
>
queryWrapper2
=
new
LambdaQueryWrapper
<>();
queryWrapper2
.
eq
(
RegistrationInfo:
:
getRecord
,
jgRelationEquip
.
getEquId
());
RegistrationInfo
tzsJgRegistrationInfo
=
tzsJgRegistrationInfoMapper
.
selectOne
(
queryWrapper2
);
stringBuffer
.
append
(
tzsJgRegistrationInfo
.
getEquCategory
()).
append
(
jgReformNotice
.
getReceiveCompanyCode
()).
append
(
ym
);
String
equCode
=
stringBuffer
.
toString
();
ResponseModel
<
String
>
responseModel
=
tzsServiceFeignClient
.
deviceRegistrationCode
(
equCode
);
String
deviceRegistrationCode
=
responseModel
.
getResult
();
jgReformNotice
.
setInformNumber
(
deviceRegistrationCode
);
jgReformNotice
.
setAcceptDate
(
new
Date
());
jgReformNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
()));
jgReformNotice
.
setPromoter
(
""
);
this
.
updateLastTodo
(
jgReformNotice
,
FlowStatusEnum
.
TO_BE_FINISHED
);
this
.
updateById
(
jgReformNotice
);
this
.
generateInstallationNoticeReport
(
jgReformNotice
.
getSequenceNbr
());
}
else
{
}
else
{
jgReformNotice
.
setInstanceStatus
(
workflowResultDto
.
getNextExecutorRoleIds
());
jgReformNotice
.
setNextExecuteIds
(
workflowResultDto
.
getNextExecutorRoleIds
());
if
(!
ObjectUtils
.
isEmpty
(
jgReformNotice
.
getInstanceStatus
()))
{
jgReformNotice
.
setInstanceStatus
(
jgReformNotice
.
getInstanceStatus
()
+
","
+
workflowResultDto
.
getNextExecutorRoleIds
());
}
else
{
jgReformNotice
.
setInstanceStatus
(
workflowResultDto
.
getNextExecutorRoleIds
());
}
jgReformNotice
.
setPromoter
(
RequestContext
.
getExeUserId
());
jgReformNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
()));
jgReformNotice
.
setNextTaskId
(
workflowResultDto
.
getNextTaskId
());
// 上个代办改为已办
taskV2Model
=
this
.
updateLastTodo
(
jgReformNotice
,
FlowStatusEnum
.
TO_BE_FINISHED
);
// 创建新的代办
this
.
createNewTodo
(
jgReformNotice
,
workflowResultDto
,
taskV2Model
,
FlowStatusEnum
.
TO_BE_PROCESSED
);
jgReformNoticeMapper
.
updateById
(
jgReformNotice
);
}
}
jgReformNotice
.
setPromoter
(
RequestContext
.
getExeUserId
());
}
else
{
jgReformNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
()));
jgReformNotice
.
setPromoter
(
""
);
jgReformNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
REJECTED
.
getCode
()));
jgReformNotice
.
setSupervisoryCode
(
dto
.
getSupervisoryCode
());
jgReformNotice
.
setEquList
(
dto
.
getEquList
());
jgReformNotice
.
setNextTaskId
(
workflowResultDto
.
getNextTaskId
());
jgReformNotice
.
setNextTaskId
(
workflowResultDto
.
getNextTaskId
());
// 上个代办改为已办
jgReformNotice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
taskV2Model
=
this
.
updateLastTodo
(
jgReformNotice
,
FlowStatusEnum
.
TO_BE_FINISHED
);
//jgReformNotice.setInstanceId(workflowResultDto.getInstanceId());
// 创建新的代办
this
.
createNewTodo
(
jgReformNotice
,
workflowResultDto
,
taskV2Model
,
FlowStatusEnum
.
TO_BE_PROCESSED
);
// 上个代办改为驳回
taskV2Model
=
this
.
updateLastTodo
(
jgReformNotice
,
FlowStatusEnum
.
REJECTED
);
this
.
createNewTodo
(
jgReformNotice
,
workflowResultDto
,
taskV2Model
,
FlowStatusEnum
.
REJECTED
);
jgReformNoticeMapper
.
updateById
(
jgReformNotice
);
jgReformNoticeMapper
.
updateById
(
jgReformNotice
);
}
}
}
else
{
commonService
.
saveExecuteFlowData2Redis
(
instanceId
,
this
.
buildInstanceRuntimeData
(
jgReformNotice
));
jgReformNotice
.
setPromoter
(
""
);
}
catch
(
InterruptedException
e
)
{
jgReformNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
REJECTED
.
getCode
()));
e
.
printStackTrace
();
jgReformNotice
.
setSupervisoryCode
(
dto
.
getSupervisoryCode
());
}
finally
{
jgReformNotice
.
setEquList
(
dto
.
getEquList
());
if
(
lock
.
isHeldByCurrentThread
())
{
jgReformNotice
.
setNextTaskId
(
workflowResultDto
.
getNextTaskId
());
lock
.
unlock
();
jgReformNotice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
}
//jgReformNotice.setInstanceId(workflowResultDto.getInstanceId());
// 上个代办改为驳回
taskV2Model
=
this
.
updateLastTodo
(
jgReformNotice
,
FlowStatusEnum
.
REJECTED
);
this
.
createNewTodo
(
jgReformNotice
,
workflowResultDto
,
taskV2Model
,
FlowStatusEnum
.
REJECTED
);
jgReformNoticeMapper
.
updateById
(
jgReformNotice
);
}
}
}
}
public
InstanceRuntimeData
buildInstanceRuntimeData
(
JgReformNotice
jgReformNotice
)
{
return
InstanceRuntimeData
.
builder
()
.
nextExecuteUserIds
(
jgReformNotice
.
getNextExecuteUserIds
())
.
promoter
(
jgReformNotice
.
getPromoter
())
.
nextTaskId
(
jgReformNotice
.
getNextTaskId
())
.
build
();
}
/**
/**
* 上个代办改为已办
* 上个代办改为已办
*
*
...
...
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/JgTransferNoticeServiceImpl.java
View file @
13d4c293
...
@@ -7,14 +7,13 @@ import com.alibaba.fastjson.JSONObject;
...
@@ -7,14 +7,13 @@ import com.alibaba.fastjson.JSONObject;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.github.pagehelper.util.StringUtil
;
import
com.yeejoin.amos.boot.biz.common.bo.ReginParams
;
import
com.yeejoin.amos.boot.biz.common.bo.ReginParams
;
import
com.yeejoin.amos.boot.biz.common.utils.DateUtils
;
import
com.yeejoin.amos.boot.biz.common.utils.DateUtils
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisKey
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisKey
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
import
com.yeejoin.amos.boot.module.jg.api.dto.JgTransferNoticeDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.*
;
import
com.yeejoin.amos.boot.module.jg.api.dto.TaskMessageDto
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgMaintainNotice
;
import
com.yeejoin.amos.boot.module.jg.api.dto.TaskModelDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.WorkflowResultDto
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgTransferNotice
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgTransferNotice
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgTransferNoticeEq
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgTransferNoticeEq
;
import
com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum
;
import
com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum
;
...
@@ -35,6 +34,8 @@ import com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO;
...
@@ -35,6 +34,8 @@ import com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO;
import
com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO
;
import
com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO
;
import
com.yeejoin.amos.feign.workflow.model.ProcessTaskDTO
;
import
com.yeejoin.amos.feign.workflow.model.ProcessTaskDTO
;
import
com.yeejoin.amos.feign.workflow.model.TaskResultDTO
;
import
com.yeejoin.amos.feign.workflow.model.TaskResultDTO
;
import
org.redisson.api.RLock
;
import
org.redisson.api.RedissonClient
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -45,9 +46,12 @@ import org.springframework.util.StringUtils;
...
@@ -45,9 +46,12 @@ import org.springframework.util.StringUtils;
import
org.typroject.tyboot.core.foundation.context.RequestContext
;
import
org.typroject.tyboot.core.foundation.context.RequestContext
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.typroject.tyboot.core.restful.exception.instance.BadRequest
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
java.text.ParseException
;
import
java.text.ParseException
;
import
java.util.*
;
import
java.util.*
;
import
java.util.concurrent.TimeUnit
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
...
@@ -92,6 +96,9 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
...
@@ -92,6 +96,9 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
@Autowired
@Autowired
private
CommonServiceImpl
commonService
;
private
CommonServiceImpl
commonService
;
@Autowired
private
RedissonClient
redissonClient
;
/**
/**
* 根据sequenceNbr查询
* 根据sequenceNbr查询
*
*
...
@@ -313,6 +320,7 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
...
@@ -313,6 +320,7 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
commonService
.
buildTaskModel
(
Collections
.
singletonList
(
taskModelDto
));
commonService
.
buildTaskModel
(
Collections
.
singletonList
(
taskModelDto
));
}
}
}
}
commonService
.
saveExecuteFlowData2Redis
(
notice
.
getInstanceId
(),
this
.
buildInstanceRuntimeData
(
notice
));
}
else
{
}
else
{
JgTransferNotice
bean
=
new
JgTransferNotice
();
JgTransferNotice
bean
=
new
JgTransferNotice
();
BeanUtils
.
copyProperties
(
noticeDto
,
bean
);
BeanUtils
.
copyProperties
(
noticeDto
,
bean
);
...
@@ -324,10 +332,9 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
...
@@ -324,10 +332,9 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
/**
/**
* 分页查询
* 分页查询
*/
*/
@Override
public
Page
<
JgTransferNoticeDto
>
queryForJgTransferNoticePage
(
Page
<
JgTransferNotice
>
page
,
JgTransferNoticeDto
model
,
String
type
,
ReginParams
reginParams
)
{
public
Page
<
JgTransferNoticeDto
>
queryForJgTransferNoticePage
(
Page
<
JgTransferNotice
>
page
,
JgTransferNoticeDto
model
,
String
type
,
ReginParams
reginParams
)
{
String
orgCode
;
String
orgCode
=
reginParams
.
getCompany
().
getCompanyCode
();
orgCode
=
reginParams
.
getCompany
().
getCompanyCode
();
// model.setReceiveOrgCode(orgCode);
model
.
setTransferToUserIds
(
reginParams
.
getUserModel
().
getUserId
());
model
.
setTransferToUserIds
(
reginParams
.
getUserModel
().
getUserId
());
Page
<
JgTransferNotice
>
noticePage
=
jgTransferNoticeMapper
.
queryForPage
(
page
,
model
,
type
,
orgCode
);
Page
<
JgTransferNotice
>
noticePage
=
jgTransferNoticeMapper
.
queryForPage
(
page
,
model
,
type
,
orgCode
);
...
@@ -384,11 +391,17 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
...
@@ -384,11 +391,17 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
Long
sequenceNbr
=
collect
.
get
(
0
).
getSequenceNbr
();
Long
sequenceNbr
=
collect
.
get
(
0
).
getSequenceNbr
();
return
jgRelationEquip
.
setEquipTransferId
(
String
.
valueOf
(
sequenceNbr
));
return
jgRelationEquip
.
setEquipTransferId
(
String
.
valueOf
(
sequenceNbr
));
}).
collect
(
Collectors
.
toList
());
}).
collect
(
Collectors
.
toList
());
jgTransferNoticeEqMapper
.
insertBatchSomeColumn
(
jgRelationEquipList
);
jgTransferNoticeEqMapper
.
insertBatchSomeColumn
(
jgRelationEquipList
);
this
.
updateRedisBatch
(
list
);
return
list
;
return
list
;
}
}
private
void
updateRedisBatch
(
List
<
JgTransferNotice
>
jgTransferNotices
)
{
jgTransferNotices
.
stream
().
filter
(
n
->
StringUtil
.
isNotEmpty
(
n
.
getInstanceId
())).
forEach
(
jgTransferNotice
->
{
commonService
.
saveExecuteFlowData2Redis
(
jgTransferNotice
.
getInstanceId
(),
this
.
buildInstanceRuntimeData
(
jgTransferNotice
));
});
}
/**
/**
* 暂存任务生成待办
* 暂存任务生成待办
*
*
...
@@ -602,143 +615,207 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
...
@@ -602,143 +615,207 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
}
}
@Transactional
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
cancel
(
JgTransferNoticeDto
noticeDto
)
{
public
void
cancel
(
JgTransferNoticeDto
noticeDto
)
{
JgTransferNotice
jgInstallationNotice
=
this
.
baseMapper
.
selectById
(
noticeDto
.
getSequenceNbr
());
String
instanceId
=
noticeDto
.
getInstanceId
();
if
(
jgInstallationNotice
!=
null
)
{
String
nextTaskId
=
noticeDto
.
getNextTaskId
();
//检查实际状态是否不是待受理状态
String
lockKey
=
CommonServiceImpl
.
buildJgExecuteLockKey
(
instanceId
);
commonService
.
checkExpectedStatus
(
jgInstallationNotice
.
getNoticeStatus
());
RLock
lock
=
redissonClient
.
getLock
(
lockKey
);
try
{
boolean
isLocked
=
lock
.
tryLock
(
0
,
180
,
TimeUnit
.
SECONDS
);
// 解决并发问题:多个人同时操作一个流程(并发执行通过、驳回、撤回)
if
(!
isLocked
)
{
throw
new
BadRequest
(
"当前流程已经被执行!"
);
}
// 流程执行时,状态及权限校验
commonService
.
checkForRevocationFlow
(
nextTaskId
,
instanceId
);
JgTransferNotice
jgTransferNotice
=
this
.
baseMapper
.
selectById
(
noticeDto
.
getSequenceNbr
());
ProcessTaskDTO
processTaskDTO
=
iCmWorkflowService
.
rollBack
(
jg
Installation
Notice
.
getInstanceId
());
ProcessTaskDTO
processTaskDTO
=
iCmWorkflowService
.
rollBack
(
jg
Transfer
Notice
.
getInstanceId
());
// 提取节点等信息
// 提取节点等信息
WorkflowResultDto
workflowResultDto
=
commonService
.
buildWorkFlowInfo
(
Collections
.
singletonList
(
processTaskDTO
)).
get
(
0
);
WorkflowResultDto
workflowResultDto
=
commonService
.
buildWorkFlowInfo
(
Collections
.
singletonList
(
processTaskDTO
)).
get
(
0
);
jg
Installation
Notice
.
setPromoter
(
""
);
jg
Transfer
Notice
.
setPromoter
(
""
);
jg
Installation
Notice
.
setNextExecuteIds
(
workflowResultDto
.
getNextExecutorRoleIds
());
jg
Transfer
Notice
.
setNextExecuteIds
(
workflowResultDto
.
getNextExecutorRoleIds
());
jg
Installation
Notice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
jg
Transfer
Notice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
jg
Installation
Notice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
ROLLBACK
.
getCode
()));
jg
Transfer
Notice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
ROLLBACK
.
getCode
()));
jg
Installation
Notice
.
setNextTaskId
(
workflowResultDto
.
getNextTaskId
());
jg
Transfer
Notice
.
setNextTaskId
(
workflowResultDto
.
getNextTaskId
());
jgTransferNoticeMapper
.
updateById
(
jg
Installation
Notice
);
jgTransferNoticeMapper
.
updateById
(
jg
Transfer
Notice
);
TaskMessageDto
taskMessageDto
=
new
TaskMessageDto
();
TaskMessageDto
taskMessageDto
=
new
TaskMessageDto
();
BeanUtils
.
copyProperties
(
jg
Installation
Notice
,
taskMessageDto
);
BeanUtils
.
copyProperties
(
jg
Transfer
Notice
,
taskMessageDto
);
JSONObject
jsonObject
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
taskMessageDto
));
JSONObject
jsonObject
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
taskMessageDto
));
jsonObject
.
put
(
"taskType"
,
BusinessTypeEnum
.
JG_ADVICE_REMOVAL
.
getCode
());
jsonObject
.
put
(
"taskType"
,
BusinessTypeEnum
.
JG_ADVICE_REMOVAL
.
getCode
());
jsonObject
.
put
(
"nextExecuteUser"
,
jg
Installation
Notice
.
getNextExecuteIds
());
jsonObject
.
put
(
"nextExecuteUser"
,
jg
Transfer
Notice
.
getNextExecuteIds
());
jsonObject
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
ROLLBACK
.
getName
());
jsonObject
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
ROLLBACK
.
getName
());
jsonObject
.
put
(
"flowStatus"
,
FlowStatusEnum
.
ROLLBACK
.
getCode
());
jsonObject
.
put
(
"flowStatus"
,
FlowStatusEnum
.
ROLLBACK
.
getCode
());
jsonObject
.
put
(
"nextTaskId"
,
jgInstallationNotice
.
getNextTaskId
());
jsonObject
.
put
(
"nextTaskId"
,
jgTransferNotice
.
getNextTaskId
());
commonService
.
rollbackTask
(
jgInstallationNotice
.
getInstanceId
(),
jsonObject
);
commonService
.
rollbackTask
(
jgTransferNotice
.
getInstanceId
(),
jsonObject
);
commonService
.
saveExecuteFlowData2Redis
(
instanceId
,
this
.
buildInstanceRuntimeData
(
jgTransferNotice
));
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
finally
{
if
(
lock
.
isHeldByCurrentThread
())
{
lock
.
unlock
();
}
}
}
}
}
@Transactional
public
void
accept
(
JgTransferNoticeDto
dto
,
String
op
,
String
opinion
)
{
ReginParams
reginParams
=
JSONObject
.
parseObject
(
redisUtils
.
get
(
RedisKey
.
buildReginKey
(
RequestContext
.
getExeUserId
(),
RequestContext
.
getToken
())).
toString
(),
ReginParams
.
class
);
JgTransferNotice
jgTransferNotice
=
this
.
jgTransferNoticeMapper
.
selectById
(
dto
.
getSequenceNbr
());
// 检查实际状态是否不等于期望状态
public
InstanceRuntimeData
buildInstanceRuntimeData
(
JgTransferNotice
jgTransferNotice
)
{
commonService
.
checkExpectedStatus
(
jgTransferNotice
.
getNoticeStatus
());
return
InstanceRuntimeData
.
builder
()
.
nextExecuteUserIds
(
jgTransferNotice
.
getNextExecuteUserIds
())
.
promoter
(
jgTransferNotice
.
getPromoter
())
.
nextTaskId
(
jgTransferNotice
.
getNextTaskId
())
.
build
();
}
// 组装设备注册代码
@Transactional
(
rollbackFor
=
Exception
.
class
)
StringBuilder
stringBuffer
=
new
StringBuilder
();
public
void
accept
(
JgTransferNoticeDto
dto
,
String
op
,
String
opinion
)
{
String
ym
=
null
;
String
instanceId
=
dto
.
getInstanceId
();
String
nextTaskId
=
dto
.
getNextTaskId
();
String
lockKey
=
CommonServiceImpl
.
buildJgExecuteLockKey
(
instanceId
);
RLock
lock
=
redissonClient
.
getLock
(
lockKey
);
try
{
try
{
ym
=
DateUtils
.
dateFormat
(
new
Date
(),
DateUtils
.
DATE_PATTERN_MM
);
boolean
isLocked
=
lock
.
tryLock
(
0
,
180
,
TimeUnit
.
SECONDS
);
}
catch
(
ParseException
e
)
{
// 解决并发问题:多个人同时操作一个流程(并发执行通过、驳回、撤回)
log
.
error
(
"日期转换失败:{}"
,
e
);
if
(!
isLocked
)
{
}
throw
new
BadRequest
(
"当前流程已经被执行!"
);
// 执行工作流并返回组装好的工作流信息
}
WorkflowResultDto
workflowResultDto
=
getWorkflowResultDto
(
op
,
opinion
,
jgTransferNotice
);
// 流程执行时,状态及权限校验
commonService
.
checkForExecuteFlow
(
nextTaskId
,
instanceId
);
jgTransferNotice
.
setPromoter
(
reginParams
.
getUserModel
().
getUserId
());
JgTransferNotice
jgTransferNotice
=
this
.
jgTransferNoticeMapper
.
selectById
(
dto
.
getSequenceNbr
());
jgTransferNotice
.
setNextTaskId
(
workflowResultDto
.
getNextTaskId
());
TaskV2Model
taskV2Model
=
new
TaskV2Model
();
// 检查实际状态是否不等于期望状态
if
(
"0"
.
equals
(
op
))
{
commonService
.
checkExpectedStatus
(
jgTransferNotice
.
getNoticeStatus
());
if
(
StringUtils
.
isEmpty
(
workflowResultDto
.
getNextExecutorRoleIds
()))
{
LambdaQueryWrapper
<
JgTransferNoticeEq
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
// 组装设备注册代码
queryWrapper
.
eq
(
JgTransferNoticeEq:
:
getEquipTransferId
,
dto
.
getSequenceNbr
());
StringBuilder
stringBuffer
=
new
StringBuilder
();
JgTransferNoticeEq
jgTransferNoticeEq
=
jgTransferNoticeEqMapper
.
selectOne
(
queryWrapper
);
String
ym
=
null
;
LambdaQueryWrapper
<
RegistrationInfo
>
queryWrapper2
=
new
LambdaQueryWrapper
<>();
try
{
queryWrapper2
.
eq
(
RegistrationInfo:
:
getRecord
,
jgTransferNoticeEq
.
getEquId
());
ym
=
DateUtils
.
dateFormat
(
new
Date
(),
DateUtils
.
DATE_PATTERN_MM
);
RegistrationInfo
tzsJgRegistrationInfo
=
tzsJgRegistrationInfoMapper
.
selectOne
(
queryWrapper2
);
}
catch
(
ParseException
e
)
{
stringBuffer
.
append
(
tzsJgRegistrationInfo
.
getEquCategory
()).
append
(
jgTransferNotice
.
getReceiveCompanyCode
()).
append
(
ym
);
log
.
error
(
"日期转换失败:{}"
,
e
);
String
equCode
=
stringBuffer
.
toString
();
}
ResponseModel
<
String
>
responseModel
=
tzsServiceFeignClient
.
deviceRegistrationCode
(
equCode
);
// 执行工作流并返回组装好的工作流信息
String
deviceRegistrationCode
=
responseModel
.
getResult
();
WorkflowResultDto
workflowResultDto
=
getWorkflowResultDto
(
op
,
opinion
,
jgTransferNotice
);
jgTransferNotice
.
setInformNumber
(
deviceRegistrationCode
);
jgTransferNotice
.
setPromoter
(
RequestContext
.
getExeUserId
());
jgTransferNotice
.
setNextTaskId
(
workflowResultDto
.
getNextTaskId
());
jgTransferNotice
.
setPromoter
(
""
);
TaskV2Model
taskV2Model
=
new
TaskV2Model
();
jgTransferNotice
.
setHandleDate
(
new
Date
());
if
(
"0"
.
equals
(
op
))
{
jgTransferNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
()));
if
(
StringUtils
.
isEmpty
(
workflowResultDto
.
getNextExecutorRoleIds
()))
{
LambdaQueryWrapper
<
JgTransferNoticeEq
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
JgTransferNoticeEq:
:
getEquipTransferId
,
dto
.
getSequenceNbr
());
Map
<
String
,
Object
>
map1
=
new
HashMap
<>();
JgTransferNoticeEq
jgTransferNoticeEq
=
jgTransferNoticeEqMapper
.
selectOne
(
queryWrapper
);
Map
<
String
,
Map
<
String
,
Object
>>
objMap
=
new
HashMap
<>();
LambdaQueryWrapper
<
RegistrationInfo
>
queryWrapper2
=
new
LambdaQueryWrapper
<>();
map1
.
put
(
"USE_PLACE"
,
String
.
format
(
"%s/%s/%s"
,
jgTransferNotice
.
getProvinceName
(),
jgTransferNotice
.
getCityName
(),
jgTransferNotice
.
getCounty
()));
queryWrapper2
.
eq
(
RegistrationInfo:
:
getRecord
,
jgTransferNoticeEq
.
getEquId
());
map1
.
put
(
"ADDRESS"
,
String
.
format
(
"%s/%s"
,
jgTransferNotice
.
getStreetName
(),
jgTransferNotice
.
getAddress
()));
RegistrationInfo
tzsJgRegistrationInfo
=
tzsJgRegistrationInfoMapper
.
selectOne
(
queryWrapper2
);
objMap
.
put
(
jgTransferNoticeEq
.
getEquId
(),
map1
);
stringBuffer
.
append
(
tzsJgRegistrationInfo
.
getEquCategory
()).
append
(
jgTransferNotice
.
getReceiveCompanyCode
()).
append
(
ym
);
tzsServiceFeignClient
.
commonUpdateEsDataByIds
(
objMap
);
String
equCode
=
stringBuffer
.
toString
();
ResponseModel
<
String
>
responseModel
=
tzsServiceFeignClient
.
deviceRegistrationCode
(
equCode
);
// 修改使用信息
String
deviceRegistrationCode
=
responseModel
.
getResult
();
LambdaUpdateWrapper
<
IdxBizJgUseInfo
>
lambda
=
new
LambdaUpdateWrapper
<>();
lambda
.
eq
(
IdxBizJgUseInfo:
:
getRecord
,
jgTransferNoticeEq
.
getEquId
());
jgTransferNotice
.
setInformNumber
(
deviceRegistrationCode
);
IdxBizJgUseInfo
idxBizJgUseInfo
=
new
IdxBizJgUseInfo
();
idxBizJgUseInfo
.
setProvince
(
jgTransferNotice
.
getProvince
());
jgTransferNotice
.
setPromoter
(
""
);
idxBizJgUseInfo
.
setProvinceName
(
jgTransferNotice
.
getProvinceName
());
jgTransferNotice
.
setHandleDate
(
new
Date
());
idxBizJgUseInfo
.
setCity
(
jgTransferNotice
.
getCity
());
jgTransferNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
()));
idxBizJgUseInfo
.
setCityName
(
jgTransferNotice
.
getCityName
());
idxBizJgUseInfo
.
setCounty
(
jgTransferNotice
.
getCounty
());
idxBizJgUseInfo
.
setCountyName
(
jgTransferNotice
.
getCountyName
());
Map
<
String
,
Object
>
map1
=
new
HashMap
<>();
idxBizJgUseInfo
.
setFactoryUseSiteStreet
(
jgTransferNotice
.
getFactoryUseSiteStreet
());
Map
<
String
,
Map
<
String
,
Object
>>
objMap
=
new
HashMap
<>();
idxBizJgUseInfo
.
setStreetName
(
jgTransferNotice
.
getStreetName
());
map1
.
put
(
"USE_PLACE"
,
String
.
format
(
"%s/%s/%s"
,
jgTransferNotice
.
getProvinceName
(),
jgTransferNotice
.
getCityName
(),
jgTransferNotice
.
getCounty
()));
idxBizJgUseInfo
.
setAddress
(
jgTransferNotice
.
getAddress
());
map1
.
put
(
"ADDRESS"
,
String
.
format
(
"%s/%s"
,
jgTransferNotice
.
getStreetName
(),
jgTransferNotice
.
getAddress
()));
idxBizJgUseInfo
.
setIsNotXiXian
(
jgTransferNotice
.
getIsXixian
());
objMap
.
put
(
jgTransferNoticeEq
.
getEquId
(),
map1
);
idxBizJgUseInfoMapper
.
update
(
idxBizJgUseInfo
,
lambda
);
tzsServiceFeignClient
.
commonUpdateEsDataByIds
(
objMap
);
// 上个代办改为已办
// 修改使用信息
HashMap
<
String
,
Object
>
taskMap
=
new
HashMap
<>();
LambdaUpdateWrapper
<
IdxBizJgUseInfo
>
lambda
=
new
LambdaUpdateWrapper
<>();
taskMap
.
put
(
"taskStatus"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
());
lambda
.
eq
(
IdxBizJgUseInfo:
:
getRecord
,
jgTransferNoticeEq
.
getEquId
());
taskMap
.
put
(
"taskStatusLabel"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getName
());
IdxBizJgUseInfo
idxBizJgUseInfo
=
new
IdxBizJgUseInfo
();
taskMap
.
put
(
"relationId"
,
jgTransferNotice
.
getInstanceId
());
idxBizJgUseInfo
.
setProvince
(
jgTransferNotice
.
getProvince
());
taskMap
.
put
(
"flowStatus"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
());
idxBizJgUseInfo
.
setProvinceName
(
jgTransferNotice
.
getProvinceName
());
taskMap
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getName
());
idxBizJgUseInfo
.
setCity
(
jgTransferNotice
.
getCity
());
TaskMessageDto
taskMessageDto
=
new
TaskMessageDto
();
idxBizJgUseInfo
.
setCityName
(
jgTransferNotice
.
getCityName
());
BeanUtils
.
copyProperties
(
jgTransferNotice
,
taskMessageDto
);
idxBizJgUseInfo
.
setCounty
(
jgTransferNotice
.
getCounty
());
taskMap
.
put
(
"model"
,
taskMessageDto
);
idxBizJgUseInfo
.
setCountyName
(
jgTransferNotice
.
getCountyName
());
taskV2Model
=
commonService
.
updateTaskModel
(
taskMap
);
idxBizJgUseInfo
.
setFactoryUseSiteStreet
(
jgTransferNotice
.
getFactoryUseSiteStreet
());
idxBizJgUseInfo
.
setStreetName
(
jgTransferNotice
.
getStreetName
());
jgTransferNotice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
idxBizJgUseInfo
.
setAddress
(
jgTransferNotice
.
getAddress
());
jgTransferNotice
.
setNextExecuteIds
(
workflowResultDto
.
getNextExecutorRoleIds
());
idxBizJgUseInfo
.
setIsNotXiXian
(
jgTransferNotice
.
getIsXixian
());
jgTransferNoticeMapper
.
updateById
(
jgTransferNotice
);
idxBizJgUseInfoMapper
.
update
(
idxBizJgUseInfo
,
lambda
);
this
.
generateTransferNoticeReport
(
jgTransferNotice
.
getSequenceNbr
());
}
else
{
// 上个代办改为已办
jgTransferNotice
.
setNextExecuteIds
(
workflowResultDto
.
getNextExecutorRoleIds
());
HashMap
<
String
,
Object
>
taskMap
=
new
HashMap
<>();
jgTransferNotice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
taskMap
.
put
(
"taskStatus"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
());
if
(!
ObjectUtils
.
isEmpty
(
jgTransferNotice
.
getInstanceStatus
()))
{
taskMap
.
put
(
"taskStatusLabel"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getName
());
jgTransferNotice
.
setInstanceStatus
(
jgTransferNotice
.
getInstanceStatus
()
+
","
+
workflowResultDto
.
getNextExecutorRoleIds
());
taskMap
.
put
(
"relationId"
,
jgTransferNotice
.
getInstanceId
());
taskMap
.
put
(
"flowStatus"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
());
taskMap
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getName
());
TaskMessageDto
taskMessageDto
=
new
TaskMessageDto
();
BeanUtils
.
copyProperties
(
jgTransferNotice
,
taskMessageDto
);
taskMap
.
put
(
"model"
,
taskMessageDto
);
taskV2Model
=
commonService
.
updateTaskModel
(
taskMap
);
jgTransferNotice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
jgTransferNotice
.
setNextExecuteIds
(
workflowResultDto
.
getNextExecutorRoleIds
());
jgTransferNoticeMapper
.
updateById
(
jgTransferNotice
);
this
.
generateTransferNoticeReport
(
jgTransferNotice
.
getSequenceNbr
());
}
else
{
}
else
{
jgTransferNotice
.
setInstanceStatus
(
workflowResultDto
.
getNextExecutorRoleIds
());
jgTransferNotice
.
setNextExecuteIds
(
workflowResultDto
.
getNextExecutorRoleIds
());
jgTransferNotice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
if
(!
ObjectUtils
.
isEmpty
(
jgTransferNotice
.
getInstanceStatus
()))
{
jgTransferNotice
.
setInstanceStatus
(
jgTransferNotice
.
getInstanceStatus
()
+
","
+
workflowResultDto
.
getNextExecutorRoleIds
());
}
else
{
jgTransferNotice
.
setInstanceStatus
(
workflowResultDto
.
getNextExecutorRoleIds
());
}
jgTransferNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
()));
// 上个代办改为已办
HashMap
<
String
,
Object
>
taskMap
=
new
HashMap
<>();
taskMap
.
put
(
"taskStatus"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
());
taskMap
.
put
(
"taskStatusLabel"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
taskMap
.
put
(
"flowStatus"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
());
taskMap
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
taskMap
.
put
(
"relationId"
,
jgTransferNotice
.
getInstanceId
());
taskV2Model
=
commonService
.
updateTaskModel
(
taskMap
);
TaskModelDto
taskModelDto
=
new
TaskModelDto
();
BeanUtils
.
copyProperties
(
taskV2Model
,
taskModelDto
);
// 创建新的代办
taskModelDto
.
setTaskName
(
workflowResultDto
.
getNextTaskName
());
taskModelDto
.
setExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
taskModelDto
.
setFlowStatus
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
());
taskModelDto
.
setFlowStatusLabel
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
taskModelDto
.
setFlowCode
(
workflowResultDto
.
getNextTaskId
());
taskModelDto
.
setTaskStatusLabel
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
taskModelDto
.
setNextExecuteUser
(
workflowResultDto
.
getNextExecutorRoleIds
());
TaskMessageDto
taskMessageDto
=
new
TaskMessageDto
();
BeanUtils
.
copyProperties
(
jgTransferNotice
,
taskMessageDto
);
taskModelDto
.
setModel
(
taskMessageDto
);
commonService
.
buildTaskModel
(
Collections
.
singletonList
(
taskModelDto
));
jgTransferNotice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
jgTransferNotice
.
setNextExecuteIds
(
workflowResultDto
.
getNextExecutorRoleIds
());
jgTransferNoticeMapper
.
updateById
(
jgTransferNotice
);
}
}
jgTransferNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
()));
}
else
{
jgTransferNotice
.
setPromoter
(
""
);
jgTransferNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
REJECTED
.
getCode
()));
// 上个代办改为已办
// 上个代办改为已办
HashMap
<
String
,
Object
>
taskMap
=
new
HashMap
<>();
HashMap
<
String
,
Object
>
taskMap
=
new
HashMap
<>();
taskMap
.
put
(
"taskStatus"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
());
taskMap
.
put
(
"taskStatus"
,
jgTransferNotice
.
getNoticeStatus
());
taskMap
.
put
(
"taskStatusLabel"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
taskMap
.
put
(
"taskStatusLabel"
,
FlowStatusEnum
.
REJECTED
.
getName
());
taskMap
.
put
(
"flowStatus"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
());
taskMap
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
taskMap
.
put
(
"relationId"
,
jgTransferNotice
.
getInstanceId
());
taskMap
.
put
(
"relationId"
,
jgTransferNotice
.
getInstanceId
());
taskMap
.
put
(
"flowStatus"
,
FlowStatusEnum
.
REJECTED
.
getCode
());
taskMap
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
REJECTED
.
getName
());
taskV2Model
=
commonService
.
updateTaskModel
(
taskMap
);
taskV2Model
=
commonService
.
updateTaskModel
(
taskMap
);
TaskModelDto
taskModelDto
=
new
TaskModelDto
();
TaskModelDto
taskModelDto
=
new
TaskModelDto
();
BeanUtils
.
copyProperties
(
taskV2Model
,
taskModelDto
);
BeanUtils
.
copyProperties
(
taskV2Model
,
taskModelDto
);
// 创建新的代办
// 创建新的代办
taskModelDto
.
setTaskName
(
workflowResultDto
.
getNextTaskName
());
taskModelDto
.
setTaskName
(
workflowResultDto
.
getNextTaskName
());
taskModelDto
.
setExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
taskModelDto
.
setExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
taskModelDto
.
setFlowStatus
(
FlowStatusEnum
.
TO_BE_PROCESS
ED
.
getCode
());
taskModelDto
.
setFlowStatus
(
FlowStatusEnum
.
REJECT
ED
.
getCode
());
taskModelDto
.
setFlowStatusLabel
(
FlowStatusEnum
.
TO_BE_PROCESS
ED
.
getName
());
taskModelDto
.
setFlowStatusLabel
(
FlowStatusEnum
.
REJECT
ED
.
getName
());
taskModelDto
.
setFlowCode
(
workflowResultDto
.
getNextTaskId
());
taskModelDto
.
setFlowCode
(
workflowResultDto
.
getNextTaskId
());
taskModelDto
.
setTaskStatusLabel
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
taskModelDto
.
setNextExecuteUser
(
workflowResultDto
.
getNextExecutorRoleIds
());
taskModelDto
.
setNextExecuteUser
(
workflowResultDto
.
getNextExecutorRoleIds
());
taskModelDto
.
setPageType
(
"edit"
);
TaskMessageDto
taskMessageDto
=
new
TaskMessageDto
();
TaskMessageDto
taskMessageDto
=
new
TaskMessageDto
();
BeanUtils
.
copyProperties
(
jgTransferNotice
,
taskMessageDto
);
BeanUtils
.
copyProperties
(
jgTransferNotice
,
taskMessageDto
);
taskModelDto
.
setModel
(
taskMessageDto
);
taskModelDto
.
setModel
(
taskMessageDto
);
...
@@ -747,34 +824,13 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
...
@@ -747,34 +824,13 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
jgTransferNotice
.
setNextExecuteIds
(
workflowResultDto
.
getNextExecutorRoleIds
());
jgTransferNotice
.
setNextExecuteIds
(
workflowResultDto
.
getNextExecutorRoleIds
());
jgTransferNoticeMapper
.
updateById
(
jgTransferNotice
);
jgTransferNoticeMapper
.
updateById
(
jgTransferNotice
);
}
}
}
else
{
commonService
.
saveExecuteFlowData2Redis
(
instanceId
,
this
.
buildInstanceRuntimeData
(
jgTransferNotice
));
jgTransferNotice
.
setPromoter
(
""
);
}
catch
(
InterruptedException
e
)
{
jgTransferNotice
.
setNoticeStatus
(
String
.
valueOf
(
FlowStatusEnum
.
REJECTED
.
getCode
()));
e
.
printStackTrace
();
// 上个代办改为已办
}
finally
{
HashMap
<
String
,
Object
>
taskMap
=
new
HashMap
<>();
if
(
lock
.
isHeldByCurrentThread
())
{
taskMap
.
put
(
"taskStatus"
,
jgTransferNotice
.
getNoticeStatus
());
lock
.
unlock
();
taskMap
.
put
(
"taskStatusLabel"
,
FlowStatusEnum
.
REJECTED
.
getName
());
}
taskMap
.
put
(
"relationId"
,
jgTransferNotice
.
getInstanceId
());
taskMap
.
put
(
"flowStatus"
,
FlowStatusEnum
.
REJECTED
.
getCode
());
taskMap
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
REJECTED
.
getName
());
taskV2Model
=
commonService
.
updateTaskModel
(
taskMap
);
TaskModelDto
taskModelDto
=
new
TaskModelDto
();
BeanUtils
.
copyProperties
(
taskV2Model
,
taskModelDto
);
// 创建新的代办
taskModelDto
.
setTaskName
(
workflowResultDto
.
getNextTaskName
());
taskModelDto
.
setExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
taskModelDto
.
setFlowStatus
(
FlowStatusEnum
.
REJECTED
.
getCode
());
taskModelDto
.
setFlowStatusLabel
(
FlowStatusEnum
.
REJECTED
.
getName
());
taskModelDto
.
setFlowCode
(
workflowResultDto
.
getNextTaskId
());
taskModelDto
.
setNextExecuteUser
(
workflowResultDto
.
getNextExecutorRoleIds
());
taskModelDto
.
setPageType
(
"edit"
);
TaskMessageDto
taskMessageDto
=
new
TaskMessageDto
();
BeanUtils
.
copyProperties
(
jgTransferNotice
,
taskMessageDto
);
taskModelDto
.
setModel
(
taskMessageDto
);
commonService
.
buildTaskModel
(
Collections
.
singletonList
(
taskModelDto
));
jgTransferNotice
.
setNextExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
jgTransferNotice
.
setNextExecuteIds
(
workflowResultDto
.
getNextExecutorRoleIds
());
jgTransferNoticeMapper
.
updateById
(
jgTransferNotice
);
}
}
}
}
...
...
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