fix(征求意见流程): 临时提交
This commit is contained in:
+11
@@ -0,0 +1,11 @@
|
||||
package com.jero.modules.activiti.process.fb.job;
|
||||
|
||||
/**
|
||||
* @ClassName: DesignEngineerOverDueJob3
|
||||
* @Description:
|
||||
* @Author: yjz
|
||||
* @Date: 2024-01-31 10:59
|
||||
* @Version: 1.0
|
||||
**/
|
||||
public class DepartLeaderStartOverDueJob {
|
||||
}
|
||||
+4
-8
@@ -35,7 +35,7 @@ import java.util.stream.Collectors;
|
||||
**/
|
||||
@Slf4j
|
||||
@Transactional(rollbackFor = RuntimeException.class)
|
||||
public class OverDueJob implements Job {
|
||||
public class DesignEngineerOverDueJob implements Job {
|
||||
@Resource
|
||||
private IProcessFbStandardConsultationService processFbStandardConsultationService;
|
||||
@Resource
|
||||
@@ -48,17 +48,13 @@ public class OverDueJob implements Job {
|
||||
private TaskService taskService;
|
||||
|
||||
/**
|
||||
* 征求意见流程-超过征求意见结束日期,存在设计师未提交意见时,应该汇总生成一条待办给下一节点
|
||||
* 征求意见流程-超过征求意见结束日期,存在设计师未提交意见时,直接流转到下一节点任务
|
||||
* @param jobExecutionContext
|
||||
* @throws JobExecutionException
|
||||
*/
|
||||
@Override
|
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||
|
||||
|
||||
|
||||
|
||||
log.info("征求意见流程-超过征求意见结束日期,存在设计师未提交意见时,应该汇总生成一条待办给下一节点定时任务开始");
|
||||
log.info("征求意见流程-超过征求意见结束日期,存在设计师未提交意见时,直接流转到下一节点任务开始");
|
||||
// 查询所有未完成的 设计工程师填写征求意见 节点
|
||||
List<String> designEngineerNodeList = Arrays.asList(ConsultationTaskKey.DESIGN_ENGINEER_1,
|
||||
ConsultationTaskKey.DESIGN_ENGINEER_2);
|
||||
@@ -112,6 +108,6 @@ public class OverDueJob implements Job {
|
||||
}
|
||||
}
|
||||
}
|
||||
log.info("征求意见流程-超过征求意见结束日期,存在设计师未提交意见时,应该汇总生成一条待办给下一节点定时任务结束");
|
||||
log.info("征求意见流程-超过征求意见结束日期,存在设计师未提交意见时,直接流转到下一节点任务开始");
|
||||
}
|
||||
}
|
||||
+93
@@ -0,0 +1,93 @@
|
||||
package com.jero.modules.activiti.process.fb.job;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
||||
import com.jero.modules.activiti.process.fb.common.ConsultationTaskKey;
|
||||
import com.jero.modules.activiti.process.fb.common.FbCommon;
|
||||
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.process.fb.vo.NodeDispose;
|
||||
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.activiti.engine.RuntimeService;
|
||||
import org.activiti.engine.TaskService;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
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.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @ClassName: DesignEngineerOverDueJob2
|
||||
* @Description:
|
||||
* @Author: yjz
|
||||
* @Date: 2024-01-31 10:59
|
||||
* @Version: 1.0
|
||||
**/
|
||||
@Slf4j
|
||||
@Transactional(rollbackFor = RuntimeException.class)
|
||||
public class ModuleOwnerStartOverDueJob implements Job {
|
||||
@Resource
|
||||
private IProcessFbStandardConsultationService processFbStandardConsultationService;
|
||||
@Resource
|
||||
private IProcessFbConsultationUserLinkService processFbConsultationUserLinkService;
|
||||
@Resource
|
||||
private IProcessFbConsultationListService processFbConsultationListService;
|
||||
@Resource
|
||||
private ProcessApprovalRecordService processApprovalRecordService;
|
||||
@Resource
|
||||
private TaskService taskService;
|
||||
@Resource
|
||||
private RuntimeService runtimeService;
|
||||
|
||||
/**
|
||||
* 征求意见流程-超过征求意见结束日期,模块负责人部分未分发时
|
||||
* @param jobExecutionContext
|
||||
* @throws JobExecutionException
|
||||
*/
|
||||
@Override
|
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||
log.info("征求意见流程-超过征求意见结束日期,模块负责人 部分/全部 未分发时任务开始");
|
||||
// 查询超过征求意见结束日期的模块负责人分发节点情况
|
||||
List<NodeDispose> nodeDisposeCount =
|
||||
processFbStandardConsultationService.findNodeDisposeCount(ConsultationTaskKey.MODULE_OWNER_START);
|
||||
if (CollectionUtils.isNotEmpty(nodeDisposeCount)){
|
||||
// 部分未完成
|
||||
List<NodeDispose> sectorUnFinishedList = nodeDisposeCount.stream()
|
||||
.filter(v -> !v.getUnFinished().equals(v.getCount()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 全部未完成
|
||||
List<NodeDispose> allUnFinishedList = nodeDisposeCount.stream()
|
||||
.filter(v -> v.getUnFinished().equals(v.getCount()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
List<String> processInstanceIdList = sectorUnFinishedList.stream()
|
||||
.map(NodeDispose::getProcessInstanceId)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 部分未完成审批数据
|
||||
List<ProcessApprovalRecord> processApprovalRecordList = processApprovalRecordService.list(
|
||||
new LambdaQueryWrapper<ProcessApprovalRecord>()
|
||||
.in(ProcessApprovalRecord::getProcessInstanceId, processInstanceIdList)
|
||||
.isNull(ProcessApprovalRecord::getEndTime));
|
||||
|
||||
for (ProcessApprovalRecord processApprovalRecord : processApprovalRecordList) {
|
||||
// 设置网关条件
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put(FbCommon.VARIABLE_PASS_FIRST, "overDue");
|
||||
runtimeService.setVariablesLocal(processApprovalRecord.getProcessInstanceId(), map);
|
||||
// 完成任务
|
||||
taskService.complete(processApprovalRecord.getTaskId());
|
||||
}
|
||||
}
|
||||
log.info("征求意见流程-超过征求意见结束日期,模块负责人 部分/全部 未分发时任务结束");
|
||||
}
|
||||
}
|
||||
+10
@@ -2,6 +2,10 @@ package com.jero.modules.activiti.process.fb.mapper;
|
||||
|
||||
import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardConsultation;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.jero.modules.activiti.process.fb.vo.NodeDispose;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 标准征求意见流程表
|
||||
@@ -11,4 +15,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
*/
|
||||
public interface ProcessFbStandardConsultationMapper extends BaseMapper<ProcessFbStandardConsultation> {
|
||||
|
||||
/**
|
||||
* 已超期节点任务处理数量查询
|
||||
* @param nodeId
|
||||
* @return
|
||||
*/
|
||||
List<NodeDispose> findNodeDisposeCount(@Param("nodeId") String nodeId);
|
||||
}
|
||||
|
||||
+15
@@ -15,4 +15,19 @@
|
||||
<result column="related_file" property="relatedFile" />
|
||||
<result column="consultation_due_date" property="consultationDueDate" />
|
||||
</resultMap>
|
||||
|
||||
<select id="findNodeDisposeCount" resultType="com.jero.modules.activiti.process.fb.vo.NodeDispose">
|
||||
SELECT * FROM (
|
||||
SELECT COUNT(*) count,
|
||||
SUM(IF(par.end_time IS NULL, 1, 0)) unFinished,
|
||||
SUM(IF(par.end_time IS NOT NULL, 1, 0)) finished,
|
||||
par.process_instance_id
|
||||
FROM process_approval_record par
|
||||
LEFT JOIN process_all pa ON par.process_instance_id = pa.process_instance_id
|
||||
LEFT JOIN process_fb_standard_consultation pfsc ON pa.project_id = pfsc.id
|
||||
WHERE node_id = #{nodeId}
|
||||
AND pfsc.consultation_due_date < DATE_FORMAT(NOW(), '%Y-%m-%d')
|
||||
GROUP BY par.process_instance_id) t
|
||||
where finished <> count
|
||||
</select>
|
||||
</mapper>
|
||||
+9
-1
@@ -1,8 +1,9 @@
|
||||
package com.jero.modules.activiti.process.fb.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jero.modules.activiti.process.fb.entity.ProcessFbConsultationUserLink;
|
||||
import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardConsultation;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jero.modules.activiti.process.fb.vo.NodeDispose;
|
||||
import com.jero.modules.activiti.process.fb.vo.ProcessFbStandardConsultationVO;
|
||||
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
||||
|
||||
@@ -64,4 +65,11 @@ public interface IProcessFbStandardConsultationService extends IService<ProcessF
|
||||
* @Description: 根据任务id和业务id查询关联表集合
|
||||
**/
|
||||
List<ProcessFbConsultationUserLink> listByTaskIdAndBusinessId(String taskId, String businessId);
|
||||
|
||||
/**
|
||||
* 已超期节点任务处理数量查询
|
||||
* @param nodeId
|
||||
* @return
|
||||
*/
|
||||
List<NodeDispose> findNodeDisposeCount(String nodeId);
|
||||
}
|
||||
|
||||
+9
@@ -28,6 +28,7 @@ import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardConsultation
|
||||
import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardPurchase;
|
||||
import com.jero.modules.activiti.process.fb.mapper.ProcessFbStandardConsultationMapper;
|
||||
import com.jero.modules.activiti.process.fb.service.*;
|
||||
import com.jero.modules.activiti.process.fb.vo.NodeDispose;
|
||||
import com.jero.modules.activiti.process.fb.vo.ProcessFbStandardConsultationVO;
|
||||
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
||||
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||
@@ -90,6 +91,9 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
|
||||
|
||||
@Resource
|
||||
private ProcessDraftService processDraftService;
|
||||
|
||||
@Resource
|
||||
private ProcessFbStandardConsultationMapper processFbStandardConsultationMapper;
|
||||
|
||||
public static final String EXCEPTION = "目前还未开发,请联系管理员";
|
||||
|
||||
@@ -568,6 +572,11 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
|
||||
return processFbConsultationUserLinkService.list(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<NodeDispose> findNodeDisposeCount(String nodeId) {
|
||||
return processFbStandardConsultationMapper.findNodeDisposeCount(nodeId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/13 16:00
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.jero.modules.activiti.process.fb.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @ClassName: NodeDispose
|
||||
* @Description:
|
||||
* @Author: yjz
|
||||
* @Date: 2024-01-31 11:06
|
||||
* @Version: 1.0
|
||||
**/
|
||||
@Data
|
||||
public class NodeDispose implements Serializable {
|
||||
/**总数*/
|
||||
@ApiModelProperty(value = "总数")
|
||||
private Long count;
|
||||
/**未完成数量*/
|
||||
@ApiModelProperty(value = "未完成数量")
|
||||
private Long unFinished;
|
||||
/**已完成数量*/
|
||||
@ApiModelProperty(value = "已完成数量")
|
||||
private Long finished;
|
||||
/**流程实例id*/
|
||||
@ApiModelProperty(value = "流程实例id")
|
||||
private String processInstanceId;
|
||||
}
|
||||
Reference in New Issue
Block a user