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
9a9585d9
Commit
9a9585d9
authored
Jan 11, 2024
by
LiuLin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix(JG):设备移交代码修改
parent
9dcc050c
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
324 additions
and
242 deletions
+324
-242
TaskModelDto.java
...com/yeejoin/amos/boot/module/jg/api/dto/TaskModelDto.java
+6
-0
JgEquipTransfer.java
...ejoin/amos/boot/module/jg/api/entity/JgEquipTransfer.java
+3
-0
JgEquipTransferServiceImpl.java
...odule/jg/biz/service/impl/JgEquipTransferServiceImpl.java
+315
-242
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/TaskModelDto.java
View file @
9a9585d9
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jg
.
api
.
dto
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.Date
;
...
...
@@ -9,6 +12,9 @@ import java.util.Date;
* @author Administrator
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public
class
TaskModelDto
{
/**
* 工作流创建时间
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-api/src/main/java/com/yeejoin/amos/boot/module/jg/api/entity/JgEquipTransfer.java
View file @
9a9585d9
...
...
@@ -150,4 +150,7 @@ public class JgEquipTransfer extends BaseEntity {
*/
@TableField
(
value
=
"next_task_id"
)
private
String
nextTaskId
;
@TableField
(
value
=
"create_user_company_name"
)
private
String
createUserCompanyName
;
}
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/JgEquipTransferServiceImpl.java
View file @
9a9585d9
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jg
.
biz
.
service
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.map.MapBuilder
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.yeejoin.amos.boot.biz.common.bo.ReginParams
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisKey
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
import
com.yeejoin.amos.boot.module.jg.api.dto.*
;
import
com.yeejoin.amos.boot.module.jg.api.entity.*
;
import
com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum
;
import
com.yeejoin.amos.boot.module.jg.api.mapper.JgEquipTransferEqMapper
;
import
com.yeejoin.amos.boot.module.jg.api.mapper.JgEquipTransferMapper
;
import
com.yeejoin.amos.boot.module.jg.api.service.IJgEquipTransferService
;
import
com.yeejoin.amos.boot.module.jg.api.dto.JgEquipTransferDto
;
import
com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient
;
import
com.yeejoin.amos.boot.module.ymt.api.common.BaseException
;
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.mapper.OtherInfoMapper
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.RegistrationInfoMapper
;
import
com.yeejoin.amos.component.feign.model.FeignClientResult
;
import
com.yeejoin.amos.feign.workflow.Workflow
;
import
com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO
;
import
com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO
;
import
com.yeejoin.amos.feign.workflow.model.AjaxResult
;
import
com.yeejoin.amos.feign.workflow.model.TaskResultDTO
;
import
com.yeejoin.amos.feign.systemctl.model.TaskV2Model
;
import
com.yeejoin.amos.feign.workflow.model.*
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -41,158 +38,187 @@ import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
java.util.stream.IntStream
;
/**
* 设备移交服务实现类
*
* @author
system_generator
* @author
LiuLin
* @date 2023-12-20
*/
@Slf4j
@Service
public
class
JgEquipTransferServiceImpl
extends
BaseService
<
JgEquipTransferDto
,
JgEquipTransfer
,
JgEquipTransferMapper
>
implements
IJgEquipTransferService
{
private
static
final
String
EQUIP_TRANSFER_PROCESS_KEY
=
"equipmentHandover"
;
private
static
final
String
SUBMIT_TYPE_FLOW
=
"1"
;
@Autowired
JgEquipTransferEqMapper
jgEquipTransferEqMapper
;
@Autowired
OtherInfoMapper
tzsJgOtherInfoMapper
;
@Autowired
RegistrationInfoMapper
tzsJgRegistrationInfoMapper
;
@Autowired
RedisUtils
redisUtils
;
@Autowired
TzsServiceFeignClient
tzsServiceFeignClient
;
@Autowired
CmWorkflowServiceImpl
workflowService
;
@Autowired
CommonServiceImpl
commonService
;
@Autowired
CmWorkflowServiceImpl
cmWorkflowService
;
@Transactional
(
rollbackFor
=
{
Exception
.
class
,
BaseException
.
class
})
public
void
saveTransfer
(
String
submitType
,
JSONObject
jsonObjectMap
,
ReginParams
reginParams
)
{
String
[]
taskName
=
new
String
[]{
"流程结束"
};
JgEquipTransferDto
model
=
BeanUtil
.
toBeanIgnoreError
(
jsonObjectMap
.
get
(
"model"
),
JgEquipTransferDto
.
class
);
JgEquipTransferDto
model
=
JSON
.
parseObject
(
JSONObject
.
toJSONString
(
jsonObjectMap
),
JgEquipTransferDto
.
class
);
// 字段转换
convertField
(
model
);
// 获取告知设备列表
List
<
Map
<
String
,
Object
>>
deviceList
=
model
.
getDeviceList
();
if
(
CollectionUtils
.
isEmpty
(
deviceList
))
{
return
;
}
ResponseModel
<
List
<
String
>>
listResponseModel
=
tzsServiceFeignClient
.
applicationFormCode
(
ApplicationFormTypeEnum
.
SBYJ
.
getCode
(),
deviceList
.
size
());
if
(!
org
.
springframework
.
util
.
ObjectUtils
.
isEmpty
(
listResponseModel
)
&&
listResponseModel
.
getStatus
()
!=
HttpStatus
.
OK
.
value
())
{
log
.
error
(
"告知单获取失败: {}"
,
listResponseModel
.
getMessage
());
throw
new
BadRequest
(
"告知单生成失败!"
);
}
List
<
String
>
applyNoList
=
listResponseModel
.
getResult
();
if
(
CollectionUtils
.
isEmpty
(
applyNoList
))
{
log
.
error
(
"告知单返回为空"
);
throw
new
BadRequest
(
"告知单生成失败!"
);
}
handleResponseModel
(
listResponseModel
,
"告知单获取失败: "
);
List
<
String
>
applyNoList
=
listResponseModel
.
getResult
();
handleApplyNoList
(
applyNoList
);
ArrayList
<
String
>
roleListFirst
=
new
ArrayList
<>();
ArrayList
<
String
>
roleListSecond
=
new
ArrayList
<>();
ArrayList
<
String
>
instanceIdList
=
new
ArrayList
<>();
if
(
SUBMIT_TYPE_FLOW
.
equals
(
submitType
))
{
ActWorkflowBatchDTO
actWorkflowBatchDTO
=
new
ActWorkflowBatchDTO
();
List
<
ActWorkflowStartDTO
>
list
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
deviceList
.
size
();
i
++
)
{
ActWorkflowStartDTO
dto
=
new
ActWorkflowStartDTO
();
dto
.
setProcessDefinitionKey
(
EQUIP_TRANSFER_PROCESS_KEY
);
dto
.
setBusinessKey
(
String
.
valueOf
(
i
));
list
.
add
(
dto
);
}
actWorkflowBatchDTO
.
setProcess
(
list
);
try
{
FeignClientResult
result
=
Workflow
.
taskV2Client
.
startByVariableBatch
(
actWorkflowBatchDTO
);
List
<
Object
>
returnList
=
(
List
<
Object
>)
result
.
getResult
();
for
(
Object
obj
:
returnList
)
{
JSONObject
jsonObject
=
JSON
.
parseObject
(
JSONObject
.
toJSONString
(
obj
));
String
instanceId
=
jsonObject
.
getString
(
"id"
);
instanceIdList
.
add
(
instanceId
);
// 查询下节点任务
if
(
returnList
.
get
(
0
).
equals
(
obj
))
{
getNext
(
roleListFirst
,
instanceId
,
taskName
);
}
// 推动下一个节点
AjaxResult
ajaxResult
=
Workflow
.
taskClient
.
getTask
(
instanceId
);
JSONObject
dataObject
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
ajaxResult
.
get
(
"data"
)));
String
taskId
=
dataObject
.
getString
(
"id"
);
//组装信息
TaskResultDTO
dto
=
new
TaskResultDTO
();
dto
.
setResultCode
(
"approvalStatus"
);
dto
.
setTaskId
(
taskId
);
dto
.
setComment
(
"提交流程"
);
HashMap
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"approvalStatus"
,
"0"
);
dto
.
setVariable
(
map
);
//执行流程
AjaxResult
ajaxResult1
;
try
{
ajaxResult1
=
Workflow
.
taskClient
.
completeByTask
(
taskId
,
dto
);
if
(
ajaxResult1
.
get
(
"code"
).
equals
(
200
))
{
getNext
(
roleListSecond
,
instanceId
,
taskName
);
}
else
{
log
.
error
(
"提交失败"
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"提交失败:{}"
,
e
.
getMessage
());
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
"提交失败:{}"
,
e
.
getMessage
());
}
}
List
<
WorkflowResultDto
>
workflowResultList
=
workFlowInfo
(
submitType
,
deviceList
);
List
<
JgEquipTransfer
>
list
=
new
ArrayList
<>();
List
<
JgEquipTransferEq
>
equipTransferEqList
=
new
ArrayList
<>();
deviceList
.
forEach
(
obj
->
{
JgEquipTransferEq
jgEquipTransferEq
=
new
JgEquipTransferEq
();
JgEquipTransfer
dto
=
new
JgEquipTransfer
();
BeanUtils
.
copyProperties
(
model
,
dto
);
int
i
=
deviceList
.
indexOf
(
obj
);
IntStream
.
range
(
0
,
deviceList
.
size
()).
forEach
(
i
->
{
Map
<
String
,
Object
>
obj
=
deviceList
.
get
(
i
);
String
applyNo
=
applyNoList
.
get
(
i
);
dto
.
setApplyNo
(
applyNo
);
dto
.
setApplyDate
(
new
Date
());
if
(
SUBMIT_TYPE_FLOW
.
equals
(
submitType
))
{
dto
.
setNextExecuteIds
(
String
.
join
(
","
,
roleListSecond
));
dto
.
setInstanceStatus
(
String
.
join
(
","
,
roleListFirst
));
dto
.
setPromoter
(
reginParams
.
getUserModel
().
getUserId
());
dto
.
setApplyStatus
(
taskName
[
0
]);
}
jgEquipTransferEq
.
setEquId
(
String
.
valueOf
(
obj
.
get
(
"SEQUENCE_NBR"
)));
jgEquipTransferEq
.
setEquipTransferId
(
applyNo
);
if
(!
CollectionUtils
.
isEmpty
(
instanceIdList
))
{
dto
.
setInstanceId
(
instanceIdList
.
get
(
i
));
dto
.
setApplyStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
()));
}
else
{
dto
.
setApplyStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_SUBMITTED
.
getCode
()));
}
JgEquipTransferEq
jgEquipTransferEq
=
buildJgEquipTransferEq
(
obj
,
applyNo
);
JgEquipTransfer
dto
=
buildJgEquipTransfer
(
model
,
applyNo
,
reginParams
,
submitType
,
workflowResultList
,
i
);
dto
.
setCreateUserName
(
reginParams
.
getUserModel
().
getRealName
());
dto
.
setCreateUserId
(
reginParams
.
getUserModel
().
getUserId
());
dto
.
setCreateUserCompanyName
(
reginParams
.
getCompany
().
getCompanyName
());
list
.
add
(
dto
);
equipTransferEqList
.
add
(
jgEquipTransferEq
);
});
this
.
baseMapper
.
insertBatchSomeColumn
(
list
);
List
<
JgEquipTransferEq
>
jgEquipTransferEqList
=
equipTransferEqList
.
stream
().
map
(
transferEq
->
{
List
<
JgEquipTransfer
>
collect
=
list
.
stream
().
filter
(
transfer
->
transferEq
.
getEquipTransferId
().
equals
(
transfer
.
getApplyNo
())).
collect
(
Collectors
.
toList
()
);
Long
sequenceNbr
=
collect
.
get
(
0
).
getSequenceNbr
();
return
transferEq
.
setEquipTransferId
(
String
.
valueOf
(
sequenceNbr
));
}).
collect
(
Collectors
.
toList
()
);
if
(
SUBMIT_TYPE_FLOW
.
equals
(
submitType
))
{
buildTask
(
list
,
workflowResultList
);
}
List
<
JgEquipTransferEq
>
jgEquipTransferEqList
=
buildJgEquipTransferEqList
(
equipTransferEqList
,
list
);
jgEquipTransferEqMapper
.
insertBatchSomeColumn
(
jgEquipTransferEqList
);
}
private
JgEquipTransferEq
buildJgEquipTransferEq
(
Map
<
String
,
Object
>
obj
,
String
applyNo
)
{
JgEquipTransferEq
jgEquipTransferEq
=
new
JgEquipTransferEq
();
jgEquipTransferEq
.
setEquId
(
String
.
valueOf
(
obj
.
get
(
"SEQUENCE_NBR"
)));
jgEquipTransferEq
.
setEquipTransferId
(
applyNo
);
return
jgEquipTransferEq
;
}
private
JgEquipTransfer
buildJgEquipTransfer
(
JgEquipTransferDto
model
,
String
applyNo
,
ReginParams
reginParams
,
String
submitType
,
List
<
WorkflowResultDto
>
workflowResultList
,
int
i
)
{
JgEquipTransfer
dto
=
new
JgEquipTransfer
();
BeanUtils
.
copyProperties
(
model
,
dto
);
dto
.
setApplyNo
(
applyNo
);
dto
.
setApplyDate
(
new
Date
());
if
(
SUBMIT_TYPE_FLOW
.
equals
(
submitType
))
{
WorkflowResultDto
workflowResult
=
workflowResultList
.
get
(
i
);
dto
.
setNextExecuteIds
(
workflowResult
.
getNextExecutorRoleIds
());
dto
.
setInstanceStatus
(
workflowResult
.
getNextExecutorRoleIds
()
+
","
+
workflowResult
.
getExecutorRoleIds
());
dto
.
setPromoter
(
reginParams
.
getUserModel
().
getUserId
());
dto
.
setNextTaskId
(
workflowResult
.
getNextTaskId
());
}
return
dto
;
}
private
List
<
JgEquipTransferEq
>
buildJgEquipTransferEqList
(
List
<
JgEquipTransferEq
>
equipTransferEqList
,
List
<
JgEquipTransfer
>
list
)
{
return
equipTransferEqList
.
stream
()
.
map
(
transferEq
->
{
Long
sequenceNbr
=
list
.
stream
()
.
filter
(
transfer
->
transferEq
.
getEquipTransferId
().
equals
(
transfer
.
getApplyNo
()))
.
findFirst
()
.
map
(
JgEquipTransfer:
:
getSequenceNbr
)
.
orElse
(
null
);
return
transferEq
.
setEquipTransferId
(
String
.
valueOf
(
sequenceNbr
));
})
.
collect
(
Collectors
.
toList
());
}
private
void
handleResponseModel
(
ResponseModel
<
List
<
String
>>
listResponseModel
,
String
errorMessagePrefix
)
{
if
(
listResponseModel
==
null
||
listResponseModel
.
getStatus
()
!=
HttpStatus
.
OK
.
value
())
{
log
.
error
(
errorMessagePrefix
+
"{}"
,
listResponseModel
!=
null
?
listResponseModel
.
getMessage
()
:
"null"
);
throw
new
BadRequest
(
"告知单生成失败!"
);
}
}
private
void
handleApplyNoList
(
List
<
String
>
applyNoList
)
{
if
(
CollectionUtils
.
isEmpty
(
applyNoList
))
{
log
.
error
(
"告知单返回为空"
);
throw
new
BadRequest
(
"告知单生成失败!"
);
}
}
/**
* 插入代办
*/
private
void
buildTask
(
List
<
JgEquipTransfer
>
list
,
List
<
WorkflowResultDto
>
workflowResultList
)
{
if
(
CollectionUtils
.
isEmpty
(
list
)
||
CollectionUtils
.
isEmpty
(
workflowResultList
))
{
return
;
}
WorkflowResultDto
workflowResultDto
=
workflowResultList
.
get
(
0
);
List
<
TaskModelDto
>
taskModelDtoList
=
list
.
stream
().
map
(
item
->
buildTaskModelDto
(
item
,
workflowResultDto
)).
collect
(
Collectors
.
toList
());
commonService
.
buildTaskModel
(
taskModelDtoList
);
}
private
TaskModelDto
buildTaskModelDto
(
JgEquipTransfer
item
,
WorkflowResultDto
workflowResultDto
)
{
return
TaskModelDto
.
builder
()
.
flowCreateDate
(
item
.
getCreateDate
())
.
taskName
(
workflowResultDto
.
getNextTaskName
())
.
taskCode
(
item
.
getApplyNo
())
.
taskType
(
BusinessTypeEnum
.
JG_EQUIPMENT_HANDOVER
.
getCode
())
.
taskTypeLabel
(
BusinessTypeEnum
.
JG_EQUIPMENT_HANDOVER
.
getName
())
.
relationId
(
item
.
getInstanceId
())
.
executeUserIds
(
workflowResultDto
.
getNextExecutorUserIds
())
.
taskStatus
(
commonService
.
getDictionaryCodeByName
(
item
.
getApplyStatus
()))
.
taskStatusLabel
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
())
.
startUserId
(
item
.
getCreateUserId
())
.
startUser
(
item
.
getCreateUserName
())
.
startUserCompanyName
(
item
.
getCreateUserCompanyName
())
.
startDate
(
item
.
getCreateDate
())
.
model
(
item
)
.
nextExecuteUser
(
item
.
getNextExecuteIds
())
.
build
();
}
private
List
<
WorkflowResultDto
>
workFlowInfo
(
String
submitType
,
List
<
Map
<
String
,
Object
>>
deviceList
)
{
if
(!
SUBMIT_TYPE_FLOW
.
equals
(
submitType
))
{
return
new
ArrayList
<>();
}
ActWorkflowBatchDTO
actWorkflowBatchDTO
=
new
ActWorkflowBatchDTO
();
List
<
ActWorkflowStartDTO
>
list
=
deviceList
.
stream
()
.
map
(
item
->
{
ActWorkflowStartDTO
dto
=
new
ActWorkflowStartDTO
();
dto
.
setProcessDefinitionKey
(
EQUIP_TRANSFER_PROCESS_KEY
);
dto
.
setBusinessKey
(
item
.
get
(
"SEQUENCE_NBR"
).
toString
());
dto
.
setCompleteFirstTask
(
Boolean
.
TRUE
);
return
dto
;
})
.
collect
(
Collectors
.
toList
());
actWorkflowBatchDTO
.
setProcess
(
list
);
List
<
ProcessTaskDTO
>
processTaskDTOS
=
cmWorkflowService
.
startBatch
(
actWorkflowBatchDTO
);
// 组装工作流返回的数据
return
commonService
.
buildWorkFlowInfo
(
processTaskDTOS
);
}
private
void
convertField
(
JgEquipTransferDto
model
)
{
if
(
null
==
model
)
return
;
...
...
@@ -207,45 +233,6 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
}
}
void
getNext
(
ArrayList
<
String
>
roleListFirst
,
String
instanceId
,
String
[]
taskName
)
{
AjaxResult
aj
=
Workflow
.
taskClient
.
getTaskNoAuth
(
instanceId
);
JSONObject
taskNoAuth
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
aj
.
get
(
"data"
)));
if
(!
org
.
springframework
.
util
.
ObjectUtils
.
isEmpty
(
taskNoAuth
))
{
String
nextTaskId
=
taskNoAuth
.
getString
(
"id"
);
AjaxResult
taskGroupName
=
Workflow
.
taskClient
.
getTaskGroupName
(
nextTaskId
);
taskName
[
0
]
=
taskNoAuth
.
getString
(
"name"
);
JSONArray
data
=
JSON
.
parseArray
(
JSON
.
toJSONString
(
taskGroupName
.
get
(
"data"
)));
for
(
Object
datum
:
data
)
{
if
(((
Map
)
datum
).
containsKey
(
"groupId"
))
{
roleListFirst
.
add
(((
Map
)
datum
).
get
(
"groupId"
).
toString
());
}
}
}
}
/**
* 启动工作流
*
* @param businessKey businessKey
* @return s
* @throws Exception e
*/
public
String
startFlow
(
String
businessKey
)
throws
Exception
{
// 重新开启工作流
ActWorkflowStartDTO
dto
=
new
ActWorkflowStartDTO
();
dto
.
setProcessDefinitionKey
(
EQUIP_TRANSFER_PROCESS_KEY
);
dto
.
setBusinessKey
(
StringUtils
.
defaultString
(
businessKey
,
"1"
));
AjaxResult
ajaxResult
=
Workflow
.
taskClient
.
startByVariable
(
dto
);
if
(
log
.
isDebugEnabled
())
{
log
.
debug
(
"开启工作流结果:{}"
,
ajaxResult
);
}
if
(
ajaxResult
==
null
||
(
ajaxResult
.
get
(
AjaxResult
.
CODE_TAG
)
!=
null
&&
!
"200"
.
equals
(
ajaxResult
.
get
(
AjaxResult
.
CODE_TAG
).
toString
())))
{
throw
new
BaseException
(
"开启工作流错误"
);
}
return
((
Map
<?,
?>)
ajaxResult
.
get
(
"data"
)).
get
(
"id"
).
toString
();
}
@Override
public
Page
<
JgEquipTransferDto
>
queryForJgEquipTransferPage
(
Page
<
JgEquipTransferDto
>
page
,
JgEquipTransferDto
dto
,
String
type
,
ReginParams
reginParams
)
{
Page
<
JgEquipTransferDto
>
equipTransferPage
=
this
.
baseMapper
.
queryForPage
(
page
,
dto
,
type
,
reginParams
.
getCompany
().
getCompanyCode
());
...
...
@@ -303,130 +290,216 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
}
public
void
accept
(
JgEquipTransferDto
jgEquipTransferDto
,
String
op
)
{
String
[]
taskName
=
new
String
[]{
"流程结束"
};
String
userId
=
RequestContext
.
getExeUserId
();
ReginParams
reginParams
=
JSONObject
.
parseObject
(
redisUtils
.
get
(
RedisKey
.
buildReginKey
(
RequestContext
.
getExeUserId
(),
RequestContext
.
getToken
())).
toString
(),
ReginParams
.
class
);
JgEquipTransfer
jgEquipTransfer
=
this
.
baseMapper
.
selectById
(
jgEquipTransferDto
.
getSequenceNbr
());
ProcessTaskDTO
processTaskDTO
;
WorkflowResultDto
workflowResultDto
;
TaskResultDTO
workDto
=
new
TaskResultDTO
();
workDto
.
setResultCode
(
"approvalStatus"
);
workDto
.
setTaskId
(
jgEquipTransfer
.
getNextTaskId
());
HashMap
<
String
,
Object
>
commMap
=
new
HashMap
<>();
if
(
jgEquipTransfer
.
getApplyStatus
().
equals
(
"6614"
)
||
jgEquipTransfer
.
getApplyStatus
().
equals
(
"6615"
))
{
commMap
.
put
(
"approvalStatus"
,
"提交"
);
}
else
{
commMap
.
put
(
"approvalStatus"
,
op
);
}
workDto
.
setVariable
(
commMap
);
workDto
.
setComment
(
jgEquipTransferDto
.
getProcessAdvice
());
processTaskDTO
=
cmWorkflowService
.
complete
(
jgEquipTransfer
.
getNextTaskId
(),
workDto
);
// 提取节点等信息
workflowResultDto
=
commonService
.
buildWorkFlowInfo
(
Collections
.
singletonList
(
processTaskDTO
)).
get
(
0
);
jgEquipTransfer
.
setPromoter
(
reginParams
.
getUserModel
().
getUserId
());
TaskV2Model
taskV2Model
=
new
TaskV2Model
();
jgEquipTransfer
.
setProcessAdvice
(
jgEquipTransferDto
.
getProcessAdvice
());
JgEquipTransferEq
jgEquipTransferEq
=
jgEquipTransferEqMapper
.
selectOne
(
Wrappers
.<
JgEquipTransferEq
>
lambdaQuery
().
select
(
JgEquipTransferEq:
:
getEquId
)
.
eq
(
JgEquipTransferEq:
:
getEquipTransferId
,
jgEquipTransferDto
.
getSequenceNbr
()));
ArrayList
<
String
>
roleList
=
new
ArrayList
<>();
boolean
submit
=
submit
(
jgEquipTransfer
,
op
);
if
(
submit
)
{
getNext
(
roleList
,
jgEquipTransferDto
.
getInstanceId
(),
taskName
);
jgEquipTransfer
.
setApplyStatus
(
taskName
[
0
]);
if
(
"0"
.
equals
(
op
))
{
if
(
roleList
.
isEmpty
())
{
jgEquipTransfer
.
setApplyStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
()));
jgEquipTransfer
.
setPromoter
(
""
);
if
(
jgEquipTransferEq
!=
null
){
Map
<
String
,
Map
<
String
,
Object
>>
resultMap
=
new
HashMap
<>();
Map
<
String
,
Object
>
esParamMap
=
new
HashMap
<>();
esParamMap
.
put
(
"USC_UNIT_NAME"
,
jgEquipTransfer
.
getInstallUnitName
());
esParamMap
.
put
(
"USC_UNIT_CREDIT_CODE"
,
jgEquipTransfer
.
getInstallUnitName
());
resultMap
.
put
(
jgEquipTransferEq
.
getEquId
(),
esParamMap
);
tzsServiceFeignClient
.
commonUpdateEsDataByIds
(
resultMap
);
}
}
else
{
jgEquipTransfer
.
setNextExecuteIds
(
String
.
join
(
","
,
roleList
));
if
(!
ObjectUtils
.
isEmpty
(
jgEquipTransfer
.
getInstanceStatus
()))
{
jgEquipTransfer
.
setInstanceStatus
(
jgEquipTransfer
.
getInstanceStatus
()
+
","
+
String
.
join
(
","
,
roleList
));
}
else
{
jgEquipTransfer
.
setInstanceStatus
(
String
.
join
(
","
,
roleList
));
}
jgEquipTransfer
.
setPromoter
(
userId
);
jgEquipTransfer
.
setApplyStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
()));
if
(
"0"
.
equals
(
op
))
{
if
(
StringUtils
.
isEmpty
(
workflowResultDto
.
getNextExecutorRoleIds
()))
{
jgEquipTransfer
.
setApplyStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
()));
jgEquipTransfer
.
setPromoter
(
""
);
if
(
jgEquipTransferEq
!=
null
){
Map
<
String
,
Map
<
String
,
Object
>>
resultMap
=
MapBuilder
.<
String
,
Map
<
String
,
Object
>>
create
()
.
put
(
jgEquipTransferEq
.
getEquId
(),
MapBuilder
.<
String
,
Object
>
create
()
.
put
(
"USC_UNIT_NAME"
,
jgEquipTransfer
.
getInstallUnitName
())
.
put
(
"USC_UNIT_CREDIT_CODE"
,
jgEquipTransfer
.
getInstallUnitName
())
.
build
())
.
build
();
tzsServiceFeignClient
.
commonUpdateEsDataByIds
(
resultMap
);
}
// 上个代办改为已办
taskV2Model
=
commonService
.
updateTaskModel
(
MapBuilder
.<
String
,
Object
>
create
()
.
put
(
"taskStatus"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
())
.
put
(
"taskStatusLabel"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getName
())
.
put
(
"relationId"
,
jgEquipTransfer
.
getInstanceId
())
.
build
());
}
else
{
//驳回
jgEquipTransfer
.
setPromoter
(
""
);
jgEquipTransfer
.
setApplyStatus
(
String
.
valueOf
(
FlowStatusEnum
.
REJECTED
.
getCode
()));
}
updateById
(
jgEquipTransfer
);
}
}
jgEquipTransfer
.
setNextExecuteIds
(
workflowResultDto
.
getNextExecutorRoleIds
());
if
(!
ObjectUtils
.
isEmpty
(
jgEquipTransfer
.
getInstanceStatus
()))
{
jgEquipTransfer
.
setInstanceStatus
(
jgEquipTransfer
.
getInstanceStatus
()
+
","
+
workflowResultDto
.
getNextExecutorRoleIds
());
}
else
{
jgEquipTransfer
.
setInstanceStatus
(
workflowResultDto
.
getNextExecutorRoleIds
());
}
jgEquipTransfer
.
setPromoter
(
userId
);
jgEquipTransfer
.
setApplyStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
()));
// 上个代办改为已办
commonService
.
updateTaskModel
(
MapBuilder
.<
String
,
Object
>
create
()
.
put
(
"taskStatus"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
())
.
put
(
"taskStatusLabel"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getName
())
.
put
(
"relationId"
,
jgEquipTransfer
.
getInstanceId
())
.
build
());
// 创建新的代办
TaskModelDto
taskModelDto
=
TaskModelDto
.
builder
()
.
flowCreateDate
(
taskV2Model
.
getFlowCreateDate
())
.
taskName
(
workflowResultDto
.
getNextTaskName
())
.
taskCode
(
taskV2Model
.
getTaskCode
())
.
taskType
(
taskV2Model
.
getTaskType
())
.
taskTypeLabel
(
taskV2Model
.
getTaskTypeLabel
())
.
relationId
(
taskV2Model
.
getRelationId
())
.
executeUserIds
(
workflowResultDto
.
getNextExecutorUserIds
())
.
taskStatus
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
())
.
taskStatusLabel
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
())
.
startUserId
(
taskV2Model
.
getStartUserId
())
.
startUser
(
taskV2Model
.
getStartUser
())
.
startDate
(
taskV2Model
.
getStartDate
())
.
model
(
jgEquipTransfer
)
.
nextExecuteUser
(
workflowResultDto
.
getNextExecutorRoleIds
())
.
build
();
commonService
.
buildTaskModel
(
Collections
.
singletonList
(
taskModelDto
));
public
boolean
submit
(
JgEquipTransfer
transfer
,
String
op
)
{
AjaxResult
ajaxResult
=
Workflow
.
taskClient
.
getTask
(
transfer
.
getInstanceId
());
JSONObject
dataObject
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
ajaxResult
.
get
(
"data"
)));
String
taskId
=
dataObject
.
getString
(
"id"
);
//组装信息
TaskResultDTO
dto
=
new
TaskResultDTO
();
dto
.
setResultCode
(
"approvalStatus"
);
dto
.
setTaskId
(
taskId
);
dto
.
setComment
(
"提交流程"
);
HashMap
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"approvalStatus"
,
op
);
dto
.
setVariable
(
map
);
//执行流程
AjaxResult
ajaxResult1
;
try
{
ajaxResult1
=
Workflow
.
taskClient
.
completeByTask
(
taskId
,
dto
);
return
ajaxResult1
.
get
(
"code"
).
equals
(
200
);
}
catch
(
Exception
e
)
{
log
.
error
(
"提交失败:{}"
,
e
.
getMessage
());
return
false
;
}
}
else
{
//驳回
jgEquipTransfer
.
setPromoter
(
""
);
jgEquipTransfer
.
setApplyStatus
(
String
.
valueOf
(
FlowStatusEnum
.
REJECTED
.
getCode
()));
// 上个代办改为已办
commonService
.
updateTaskModel
(
MapBuilder
.<
String
,
Object
>
create
()
.
put
(
"taskStatus"
,
commonService
.
getDictionaryCodeByName
(
jgEquipTransfer
.
getApplyStatus
()))
.
put
(
"taskStatusLabel"
,
jgEquipTransfer
.
getApplyStatus
())
.
put
(
"relationId"
,
jgEquipTransfer
.
getInstanceId
())
.
build
());
TaskModelDto
taskModelDto
=
new
TaskModelDto
();
BeanUtils
.
copyProperties
(
taskV2Model
,
taskModelDto
);
// 创建新的代办
taskModelDto
.
setModel
(
jgEquipTransfer
);
taskModelDto
.
setTaskName
(
workflowResultDto
.
getNextTaskName
());
taskModelDto
.
setExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
taskModelDto
.
setTaskStatus
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
());
taskModelDto
.
setTaskStatusLabel
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
taskModelDto
.
setNextExecuteUser
(
workflowResultDto
.
getNextExecutorRoleIds
());
commonService
.
buildTaskModel
(
Collections
.
singletonList
(
taskModelDto
));
}
updateById
(
jgEquipTransfer
);
}
/**
* 撤回
* @param equipTransferInfo equipTransferInfo
*/
public
void
cancel
(
JgEquipTransferDto
equipTransferInfo
)
{
FeignClientResult
ajaxResult
=
Workflow
.
taskV2Client
.
rollBack
(
equipTransferInfo
.
getInstanceId
());
JgEquipTransfer
equipTransfer
=
this
.
baseMapper
.
selectById
(
equipTransferInfo
.
getSequenceNbr
());
if
(
ajaxResult
.
getStatus
()
==
200
)
{
equipTransfer
.
setApplyStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_SUBMITTED
.
getCode
()));
equipTransfer
.
setPromoter
(
""
);
this
.
baseMapper
.
updateById
(
equipTransfer
);
}
ProcessTaskDTO
processTaskDTO
=
cmWorkflowService
.
rollBack
(
equipTransferInfo
.
getInstanceId
());
WorkflowResultDto
workflowResultDto
=
commonService
.
buildWorkFlowInfo
(
Collections
.
singletonList
(
processTaskDTO
)).
get
(
0
);
equipTransfer
.
setPromoter
(
""
);
equipTransfer
.
setNextExecuteIds
(
workflowResultDto
.
getNextExecutorRoleIds
());
equipTransfer
.
setApplyStatus
(
String
.
valueOf
(
FlowStatusEnum
.
ROLLBACK
.
getCode
()));
this
.
baseMapper
.
updateById
(
equipTransfer
);
commonService
.
deleteTaskModel
(
equipTransfer
.
getInstanceId
());
commonService
.
rollbackTask
(
equipTransfer
.
getInstanceId
());
}
public
JgEquipTransferDto
updateEquipTransfer
(
String
submitType
,
JgEquipTransferDto
equipTransferDto
,
String
op
)
{
if
(
Objects
.
isNull
(
equipTransferDto
)
||
StringUtils
.
isEmpty
(
submitType
))
throw
new
IllegalArgumentException
(
"参数不能为空"
);
String
[]
taskName
=
new
String
[]{
"流程结束"
};
ReginParams
reginParams
=
JSONObject
.
parseObject
(
redisUtils
.
get
(
RedisKey
.
buildReginKey
(
RequestContext
.
getExeUserId
(),
RequestContext
.
getToken
())).
toString
(),
ReginParams
.
class
);
// 字段转换
this
.
convertField
(
equipTransferDto
);
ArrayList
<
String
>
roleListFirst
=
new
ArrayList
<>(
);
ArrayList
<
String
>
roleListSecond
=
new
ArrayList
<>(
);
equipTransferDto
.
setPromoter
(
reginParams
.
getUserModel
().
getUserId
()
);
JgEquipTransfer
transfer
=
this
.
getById
(
equipTransferDto
.
getSequenceNbr
()
);
if
(
SUBMIT_TYPE_FLOW
.
equals
(
submitType
))
{
AjaxResult
ajaxResult
;
// 发起流程
if
(!
org
.
springframework
.
util
.
StringUtils
.
hasText
(
equipTransferDto
.
getInstanceId
()))
{
// 发起流程
ProcessTaskDTO
processTaskDTO
;
WorkflowResultDto
workflowResultDto
;
ActWorkflowBatchDTO
actWorkflowBatchDTO
=
new
ActWorkflowBatchDTO
();
List
<
ActWorkflowStartDTO
>
list
=
new
ArrayList
<>();
ActWorkflowStartDTO
dto
=
new
ActWorkflowStartDTO
();
dto
.
setProcessDefinitionKey
(
EQUIP_TRANSFER_PROCESS_KEY
);
dto
.
setBusinessKey
(
"1"
);
try
{
ajaxResult
=
Workflow
.
taskClient
.
startByVariable
(
dto
);
String
instanceId
=
((
Map
)
ajaxResult
.
get
(
"data"
)).
get
(
"id"
).
toString
();
equipTransferDto
.
setInstanceId
(
instanceId
);
// 查询下节点任务
getNext
(
roleListFirst
,
instanceId
,
taskName
);
equipTransferDto
.
setInstanceStatus
(
String
.
join
(
","
,
roleListFirst
));
}
catch
(
Exception
e
)
{
log
.
error
(
"提交失败:{}"
,
e
.
getMessage
());
throw
new
RuntimeException
(
e
);
dto
.
setBusinessKey
(
equipTransferDto
.
getSequenceNbr
().
toString
());
dto
.
setCompleteFirstTask
(
Boolean
.
TRUE
);
list
.
add
(
dto
);
actWorkflowBatchDTO
.
setProcess
(
list
);
processTaskDTO
=
cmWorkflowService
.
startBatch
(
actWorkflowBatchDTO
).
get
(
0
);
// 提取节点等信息
workflowResultDto
=
commonService
.
buildWorkFlowInfo
(
Collections
.
singletonList
(
processTaskDTO
)).
get
(
0
);
BeanUtils
.
copyProperties
(
equipTransferDto
,
transfer
);
if
(!
ObjectUtils
.
isEmpty
(
transfer
.
getInstanceStatus
()))
{
transfer
.
setInstanceStatus
(
transfer
.
getInstanceStatus
()
+
","
+
workflowResultDto
.
getNextExecutorRoleIds
());
}
else
{
transfer
.
setInstanceStatus
(
workflowResultDto
.
getNextExecutorRoleIds
());
}
}
JgEquipTransfer
transfer
=
new
JgEquipTransfer
();
BeanUtils
.
copyProperties
(
equipTransferDto
,
transfer
);
boolean
submit
=
submit
(
transfer
,
op
);
if
(
submit
)
{
// 查询下节点任务
getNext
(
roleListSecond
,
transfer
.
getInstanceId
(),
taskName
);
transfer
.
setApplyStatus
(
taskName
[
0
]);
if
(!
org
.
springframework
.
util
.
ObjectUtils
.
isEmpty
(
transfer
.
getInstanceStatus
()))
{
transfer
.
setInstanceStatus
(
transfer
.
getInstanceStatus
()
+
","
+
roleListSecond
);
transfer
.
setPromoter
(
RequestContext
.
getExeUserId
());
transfer
.
setNextExecuteIds
(
String
.
join
(
","
,
workflowResultDto
.
getNextExecutorRoleIds
()));
transfer
.
setApplyStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
()));
updateById
(
transfer
);
// 如果为保存并提交,则创建代办
buildTask
(
Collections
.
singletonList
(
transfer
),
Collections
.
singletonList
(
workflowResultDto
));
}
else
{
ProcessTaskDTO
processTaskDTO
=
new
ProcessTaskDTO
();
WorkflowResultDto
workflowResultDto
=
new
WorkflowResultDto
();
TaskResultDTO
dto
=
new
TaskResultDTO
();
dto
.
setResultCode
(
"approvalStatus"
);
dto
.
setTaskId
(
transfer
.
getNextTaskId
());
HashMap
<
String
,
Object
>
commMap
=
new
HashMap
<>();
if
(
transfer
.
getApplyStatus
().
equals
(
"6614"
)
||
transfer
.
getApplyStatus
().
equals
(
"6615"
))
{
commMap
.
put
(
"approvalStatus"
,
"提交"
);
}
else
{
commMap
.
put
(
"approvalStatus"
,
op
);
}
dto
.
setVariable
(
commMap
);
processTaskDTO
=
cmWorkflowService
.
complete
(
transfer
.
getNextTaskId
(),
dto
);
// 提取节点等信息
workflowResultDto
=
commonService
.
buildWorkFlowInfo
(
Collections
.
singletonList
(
processTaskDTO
)).
get
(
0
);
BeanUtils
.
copyProperties
(
equipTransferDto
,
transfer
);
if
(!
ObjectUtils
.
isEmpty
(
transfer
.
getInstanceStatus
()))
{
transfer
.
setInstanceStatus
(
transfer
.
getInstanceStatus
()
+
","
+
workflowResultDto
.
getNextExecutorRoleIds
());
}
else
{
transfer
.
setInstanceStatus
(
String
.
join
(
","
,
roleListSecond
));
transfer
.
setInstanceStatus
(
workflowResultDto
.
getNextExecutorRoleIds
(
));
}
transfer
.
setPromoter
(
RequestContext
.
getExeUserId
());
transfer
.
setNextExecuteIds
(
String
.
join
(
","
,
roleListSecond
));
transfer
.
setNextExecuteIds
(
String
.
join
(
","
,
workflowResultDto
.
getNextExecutorRoleIds
()
));
transfer
.
setApplyStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
()));
updateById
(
transfer
);
// 上个代办改为已办
HashMap
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"taskStatus"
,
commonService
.
getDictionaryCodeByName
(
transfer
.
getApplyStatus
()));
map
.
put
(
"taskStatusLabel"
,
transfer
.
getApplyStatus
());
map
.
put
(
"relationId"
,
transfer
.
getInstanceId
());
TaskV2Model
taskV2Model
=
commonService
.
updateTaskModel
(
map
);
TaskModelDto
taskModelDto
=
new
TaskModelDto
();
BeanUtils
.
copyProperties
(
taskV2Model
,
taskModelDto
);
// 创建新的代办
taskModelDto
.
setModel
(
transfer
);
taskModelDto
.
setTaskName
(
workflowResultDto
.
getNextTaskName
());
taskModelDto
.
setExecuteUserIds
(
workflowResultDto
.
getNextExecutorUserIds
());
taskModelDto
.
setTaskStatus
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getCode
());
taskModelDto
.
setTaskStatusLabel
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
taskModelDto
.
setNextExecuteUser
(
workflowResultDto
.
getNextExecutorRoleIds
());
commonService
.
buildTaskModel
(
Collections
.
singletonList
(
taskModelDto
));
}
}
else
{
JgEquipTransfer
bean
=
new
JgEquipTransfer
();
...
...
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