fix(bug): 临时提交
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
package com.jero.modules.activiti.process.fb.job;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
||||
import com.jero.modules.activiti.process.fb.common.ConsultationTaskKey;
|
||||
import com.jero.modules.activiti.process.fb.entity.ProcessFbConsultationList;
|
||||
import com.jero.modules.activiti.process.fb.entity.ProcessFbConsultationUserLink;
|
||||
import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardConsultation;
|
||||
import com.jero.modules.activiti.process.fb.service.IProcessFbConsultationListService;
|
||||
import com.jero.modules.activiti.process.fb.service.IProcessFbConsultationUserLinkService;
|
||||
import com.jero.modules.activiti.process.fb.service.IProcessFbStandardConsultationService;
|
||||
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.activiti.engine.TaskService;
|
||||
import org.activiti.engine.task.Task;
|
||||
import org.quartz.Job;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobExecutionException;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @ClassName: OverDueJob
|
||||
* @Description:
|
||||
* @Author: yjz
|
||||
* @Date: 2024-01-30 09:22
|
||||
* @Version: 1.0
|
||||
**/
|
||||
@Slf4j
|
||||
@Transactional(rollbackFor = RuntimeException.class)
|
||||
public class OverDueJob implements Job {
|
||||
@Resource
|
||||
private IProcessFbStandardConsultationService processFbStandardConsultationService;
|
||||
@Resource
|
||||
private IProcessFbConsultationUserLinkService processFbConsultationUserLinkService;
|
||||
@Resource
|
||||
private IProcessFbConsultationListService processFbConsultationListService;
|
||||
@Resource
|
||||
private ProcessApprovalRecordService processApprovalRecordService;
|
||||
@Resource
|
||||
private TaskService taskService;
|
||||
|
||||
/**
|
||||
* 征求意见流程-超过征求意见结束日期,存在设计师未提交意见时,应该汇总生成一条待办给下一节点
|
||||
* @param jobExecutionContext
|
||||
* @throws JobExecutionException
|
||||
*/
|
||||
@Override
|
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||
|
||||
|
||||
|
||||
|
||||
log.info("征求意见流程-超过征求意见结束日期,存在设计师未提交意见时,应该汇总生成一条待办给下一节点定时任务开始");
|
||||
// 查询所有未完成的 设计工程师填写征求意见 节点
|
||||
List<String> designEngineerNodeList = Arrays.asList(ConsultationTaskKey.DESIGN_ENGINEER_1,
|
||||
ConsultationTaskKey.DESIGN_ENGINEER_2);
|
||||
List<ProcessApprovalRecord> nodeList = processApprovalRecordService.list(
|
||||
new LambdaQueryWrapper<ProcessApprovalRecord>()
|
||||
.in(ProcessApprovalRecord::getNodeId, designEngineerNodeList)
|
||||
.isNull(ProcessApprovalRecord::getEndTime));
|
||||
if (!nodeList.isEmpty()){
|
||||
// 查询节点相关的流程的征求意见结束日期 < 当前日期的
|
||||
List<String> projectIdList = nodeList.stream()
|
||||
.map(ProcessApprovalRecord::getProjectId)
|
||||
.collect(Collectors.toList());
|
||||
List<ProcessFbStandardConsultation> fbStandardConsultationList = processFbStandardConsultationService.list(
|
||||
new LambdaQueryWrapper<ProcessFbStandardConsultation>()
|
||||
.in(ProcessFbStandardConsultation::getId, projectIdList)
|
||||
.lt(ProcessFbStandardConsultation::getConsultationDueDate, new Date()));
|
||||
if (!fbStandardConsultationList.isEmpty()){
|
||||
List<String> idList = fbStandardConsultationList.stream()
|
||||
.map(ProcessFbStandardConsultation::getId)
|
||||
.collect(Collectors.toList());
|
||||
// 过滤符合条件的待办
|
||||
nodeList = nodeList.stream()
|
||||
.filter(v -> idList.contains(v.getProjectId()))
|
||||
.collect(Collectors.toList());
|
||||
for (ProcessApprovalRecord processApprovalRecord : nodeList) {
|
||||
// 获取任务信息
|
||||
Task task = taskService.createTaskQuery().taskId(processApprovalRecord.getTaskId()).singleResult();
|
||||
String executionId = task.getExecutionId();
|
||||
// 查询用户关联表
|
||||
ProcessFbConsultationUserLink userLink = processFbConsultationUserLinkService.getOne(
|
||||
new LambdaQueryWrapper<ProcessFbConsultationUserLink>()
|
||||
.eq(ProcessFbConsultationUserLink::getParentExecutionId, executionId)
|
||||
.eq(ProcessFbConsultationUserLink::getDesignEngineerId,
|
||||
processApprovalRecord.getUserId())
|
||||
.eq(ProcessFbConsultationUserLink::getBusinessId,
|
||||
processApprovalRecord.getProjectId()));
|
||||
if (!Objects.isNull(userLink)){
|
||||
// 修改流程相关业务数据
|
||||
LambdaUpdateWrapper<ProcessFbConsultationList> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.eq(ProcessFbConsultationList::getBusinessId, processApprovalRecord.getProjectId());
|
||||
updateWrapper.eq(ProcessFbConsultationList::getDesignEngineerId, userLink.getDesignEngineerId());
|
||||
updateWrapper.eq(ProcessFbConsultationList::getUserLinkId, userLink.getId());
|
||||
updateWrapper.set(ProcessFbConsultationList::getModificationBefore, null);
|
||||
updateWrapper.set(ProcessFbConsultationList::getModificationAfter, null);
|
||||
updateWrapper.set(ProcessFbConsultationList::getModificationReason, "无意见");
|
||||
processFbConsultationListService.update(updateWrapper);
|
||||
}
|
||||
|
||||
// 完成任务
|
||||
taskService.complete(processApprovalRecord.getTaskId());
|
||||
}
|
||||
}
|
||||
}
|
||||
log.info("征求意见流程-超过征求意见结束日期,存在设计师未提交意见时,应该汇总生成一条待办给下一节点定时任务结束");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user