update 优化添加抄送人

This commit is contained in:
AprilWind 2024-12-04 17:48:44 +08:00
parent 51a3bc9c4e
commit 8291680871

View File

@ -210,38 +210,37 @@ public class FlwTaskServiceImpl implements IFlwTaskService, AssigneeService {
* @param wfCopyList 抄送人 * @param wfCopyList 抄送人
*/ */
private void setCopy(FlowTask task, List<WfCopy> wfCopyList) { private void setCopy(FlowTask task, List<WfCopy> wfCopyList) {
if (CollUtil.isEmpty(wfCopyList)) {
return;
}
// 添加抄送人记录 // 添加抄送人记录
if (CollUtil.isNotEmpty(wfCopyList)) { FlowHisTask flowHisTask = flowHisTaskMapper.selectOne(new LambdaQueryWrapper<>(FlowHisTask.class).eq(FlowHisTask::getTaskId, task.getId()));
FlowHisTask flowHisTask = flowHisTaskMapper.selectOne(new LambdaQueryWrapper<>(FlowHisTask.class).eq(FlowHisTask::getTaskId, task.getId())); FlowNode flowNode = new FlowNode();
FlowNode flowNode = new FlowNode(); flowNode.setNodeCode(flowHisTask.getTargetNodeCode());
flowNode.setNodeCode(flowHisTask.getTargetNodeCode()); flowNode.setNodeName(flowHisTask.getTargetNodeName());
flowNode.setNodeName(flowHisTask.getTargetNodeName()); //生成新的任务id
//生成新的任务id long taskId = identifierGenerator.nextId(null).longValue();
long taskId = identifierGenerator.nextId(null).longValue(); task.setId(taskId);
task.setId(taskId); task.setNodeName("【抄送】" + task.getNodeName());
task.setNodeName("【抄送】" + task.getNodeName()); Date updateTime = new Date(flowHisTask.getUpdateTime().getTime() - 1000);
Date updateTime = new Date(flowHisTask.getUpdateTime().getTime()-1000); FlowParams flowParams = FlowParams.build();
FlowParams flowParams = FlowParams.build(); flowParams.skipType(SkipType.NONE.getKey());
flowParams.skipType(SkipType.NONE.getKey()); flowParams.hisStatus(TaskStatusEnum.COPY.getStatus());
flowParams.hisStatus(TaskStatusEnum.COPY.getStatus()); flowParams.message("【抄送给】" + StreamUtils.join(wfCopyList, WfCopy::getUserName));
flowParams.message("【抄送给】" + StreamUtils.join(wfCopyList, WfCopy::getUserName)); HisTask hisTask = hisTaskService.setSkipHisTask(task, flowNode, flowParams);
HisTask hisTask = hisTaskService.setSkipHisTask(task, flowNode, flowParams); hisTask.setCreateTime(updateTime);
hisTask.setCreateTime(updateTime); hisTask.setUpdateTime(updateTime);
hisTask.setUpdateTime(updateTime); hisTaskService.save(hisTask);
hisTaskService.save(hisTask); List<User> userList = wfCopyList.stream()
//保存抄送人员 .map(wfCopy -> {
List<User> userList = new ArrayList<>();
for (WfCopy wfCopy : wfCopyList) {
FlowUser flowUser = new FlowUser(); FlowUser flowUser = new FlowUser();
flowUser.setType(TaskAssigneeType.COPY.getCode()); flowUser.setType(TaskAssigneeType.COPY.getCode());
flowUser.setProcessedBy(wfCopy.getUserId()); flowUser.setProcessedBy(wfCopy.getUserId());
flowUser.setAssociated(taskId); flowUser.setAssociated(taskId);
userList.add(flowUser); return flowUser;
} }).collect(Collectors.toList());
if (CollUtil.isNotEmpty(userList)) { // 批量保存抄送人员
userService.saveBatch(userList); userService.saveBatch(userList);
}
}
} }
/** /**