fix(征求意见流程): 80293

This commit is contained in:
yjz
2024-02-04 16:31:32 +08:00
parent 1e3de27b65
commit 6cafb32ee0
4 changed files with 66 additions and 11 deletions
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.jero.common.api.dto.message.SendMessageDTO; import com.jero.common.api.dto.message.SendMessageDTO;
import com.jero.common.api.vo.SendMessageAPI; import com.jero.common.api.vo.SendMessageAPI;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.SnowflakeUtils; import com.jero.common.util.SnowflakeUtils;
import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.entity.ProcessAll;
@@ -19,6 +20,10 @@ import com.jero.modules.activiti.enums.ProcessStatusEnum;
import com.jero.modules.activiti.process.common.entity.ProcessDraft; import com.jero.modules.activiti.process.common.entity.ProcessDraft;
import com.jero.modules.activiti.process.common.enums.ProcessType; import com.jero.modules.activiti.process.common.enums.ProcessType;
import com.jero.modules.activiti.process.common.service.ProcessDraftService; import com.jero.modules.activiti.process.common.service.ProcessDraftService;
import com.jero.modules.activiti.process.esAbolish.entity.ProcessEsAbolish;
import com.jero.modules.activiti.process.esAbolish.service.ProcessEsAbolishService;
import com.jero.modules.activiti.process.esArchive.entity.ProcessEsArchive;
import com.jero.modules.activiti.process.esArchive.service.ProcessEsArchiveService;
import com.jero.modules.activiti.process.esinspectplan.common.EsInspectPlanCommon; import com.jero.modules.activiti.process.esinspectplan.common.EsInspectPlanCommon;
import com.jero.modules.activiti.process.esinspectplan.entity.ProcessEsInspectPlan; import com.jero.modules.activiti.process.esinspectplan.entity.ProcessEsInspectPlan;
import com.jero.modules.activiti.process.esinspectplan.entity.ProcessEsInspectPlanOpinion; import com.jero.modules.activiti.process.esinspectplan.entity.ProcessEsInspectPlanOpinion;
@@ -74,6 +79,8 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
private final EnterpriseStandardInspectService enterpriseStandardInspectService; private final EnterpriseStandardInspectService enterpriseStandardInspectService;
private final EnterpriseStandardInspectObjectService enterpriseStandardInspectObjectService; private final EnterpriseStandardInspectObjectService enterpriseStandardInspectObjectService;
private final IProcessEsInspectPlanOpinionService processEsInspectPlanOpinionService; private final IProcessEsInspectPlanOpinionService processEsInspectPlanOpinionService;
private final ProcessEsAbolishService processEsAbolishService;
private final ProcessEsArchiveService processEsArchiveService;
public EsInspectPlanFlowServiceImpl(ProcessAllService processAllService, public EsInspectPlanFlowServiceImpl(ProcessAllService processAllService,
ProcessApprovalRecordService processApprovalRecordService, ProcessApprovalRecordService processApprovalRecordService,
ProcessDraftService processDraftService, ProcessDraftService processDraftService,
@@ -85,7 +92,9 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
SendMessageAPI sendMessageAPI, SendMessageAPI sendMessageAPI,
EnterpriseStandardInspectService enterpriseStandardInspectService, EnterpriseStandardInspectService enterpriseStandardInspectService,
EnterpriseStandardInspectObjectService enterpriseStandardInspectObjectService, EnterpriseStandardInspectObjectService enterpriseStandardInspectObjectService,
IProcessEsInspectPlanOpinionService processEsInspectPlanOpinionService) { IProcessEsInspectPlanOpinionService processEsInspectPlanOpinionService,
ProcessEsAbolishService processEsAbolishService,
ProcessEsArchiveService processEsArchiveService) {
this.processAllService = processAllService; this.processAllService = processAllService;
this.processApprovalRecordService = processApprovalRecordService; this.processApprovalRecordService = processApprovalRecordService;
this.processDraftService = processDraftService; this.processDraftService = processDraftService;
@@ -98,6 +107,8 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
this.enterpriseStandardInspectService = enterpriseStandardInspectService; this.enterpriseStandardInspectService = enterpriseStandardInspectService;
this.enterpriseStandardInspectObjectService = enterpriseStandardInspectObjectService; this.enterpriseStandardInspectObjectService = enterpriseStandardInspectObjectService;
this.processEsInspectPlanOpinionService = processEsInspectPlanOpinionService; this.processEsInspectPlanOpinionService = processEsInspectPlanOpinionService;
this.processEsAbolishService = processEsAbolishService;
this.processEsArchiveService = processEsArchiveService;
} }
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
@@ -161,7 +172,7 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
private void handleBusinessData(EsInspectPlanFlowVO esInspectPlanFlowVO) { private void handleBusinessData(EsInspectPlanFlowVO esInspectPlanFlowVO) {
List<ProcessEsInspectPlan> processEsInspectPlanList = esInspectPlanFlowVO.getProcessEsInspectPlanList(); List<ProcessEsInspectPlan> processEsInspectPlanList = esInspectPlanFlowVO.getProcessEsInspectPlanList();
// 删除数据 // 删除数据
if (StringUtils.isNotBlank(esInspectPlanFlowVO.getProcessAllDelIds())){ if (StringUtils.isNotBlank(esInspectPlanFlowVO.getProcessAllDelIds())) {
List<String> idList = Arrays.asList(esInspectPlanFlowVO.getProcessAllDelIds().split(",")); List<String> idList = Arrays.asList(esInspectPlanFlowVO.getProcessAllDelIds().split(","));
processEsInspectPlanService.removeByIds(idList); processEsInspectPlanService.removeByIds(idList);
processEsInspectPlanOpinionService.removeByIds(idList); processEsInspectPlanOpinionService.removeByIds(idList);
@@ -169,7 +180,10 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
ProcessAll processAll = esInspectPlanFlowVO.getProcessAll(); ProcessAll processAll = esInspectPlanFlowVO.getProcessAll();
String projectId = processAll.getProjectId(); String projectId = processAll.getProjectId();
List<ProcessEsInspectPlan> updateProcessEsInspectPlanList = processEsInspectPlanList.stream() // 废止/封存判断
List<ProcessEsInspectPlan> updateProcessEsInspectPlanList = null;
checkout(updateProcessEsInspectPlanList);
updateProcessEsInspectPlanList = processEsInspectPlanList.stream()
.filter(v -> StringUtils.isNotBlank(v.getId())) .filter(v -> StringUtils.isNotBlank(v.getId()))
.map(v -> { .map(v -> {
v.setProjectId(projectId); v.setProjectId(projectId);
@@ -191,7 +205,7 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// 处理意见 // 处理意见
if (EsInspectPlanCommon.PROCESS_NODE_2.equals(processAll.getNodeId())){ if (EsInspectPlanCommon.PROCESS_NODE_2.equals(processAll.getNodeId())) {
ArrayList<ProcessEsInspectPlanOpinion> processEsInspectPlanOpinions = new ArrayList<>(); ArrayList<ProcessEsInspectPlanOpinion> processEsInspectPlanOpinions = new ArrayList<>();
for (ProcessEsInspectPlan processEsInspectPlan : processEsInspectPlanList) { for (ProcessEsInspectPlan processEsInspectPlan : processEsInspectPlanList) {
if (!Objects.isNull(processEsInspectPlan.getProcessEsInspectPlanOpinion())) { if (!Objects.isNull(processEsInspectPlan.getProcessEsInspectPlanOpinion())) {
@@ -206,6 +220,46 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
} }
} }
private void checkout(List<ProcessEsInspectPlan> processEsInspectPlanList){
List<String> errorList = new ArrayList<>();
for (ProcessEsInspectPlan processEsInspectPlan : processEsInspectPlanList) {
String inspectNo = processEsInspectPlan.getInspectNo();
// 企标废止
ProcessEsAbolish processEsAbolish = processEsAbolishService.getOne(
new LambdaQueryWrapper<ProcessEsAbolish>()
.eq(ProcessEsAbolish::getStandardNumber, inspectNo)
.orderByDesc(ProcessEsAbolish::getCreateTime)
.last("limit 1"), false);
if (!Objects.isNull(processEsAbolish)){
ProcessAll processAll = processAllService.getOne(
new LambdaQueryWrapper<ProcessAll>()
.eq(ProcessAll::getProcessInstanceId, processEsAbolish.getProcessInstanceId()));
if (!Objects.isNull(processEsAbolish)
&& ProcessStatusEnum.INCOMPLETE.getValue().equals(processAll.getPrcStatus())){
errorList.add(inspectNo);
}
}
// 企标封存
ProcessEsArchive processEsArchive = processEsArchiveService.getOne(
new LambdaQueryWrapper<ProcessEsArchive>()
.eq(ProcessEsArchive::getStandardNumber, inspectNo)
.orderByDesc(ProcessEsArchive::getCreateTime)
.last("limit 1"), false);
if (!Objects.isNull(processEsArchive)){
ProcessAll processAll = processAllService.getOne(
new LambdaQueryWrapper<ProcessAll>()
.eq(ProcessAll::getProcessInstanceId, processEsArchive.getProcessInstanceId()));
if (!Objects.isNull(processAll)
&& ProcessStatusEnum.INCOMPLETE.getValue().equals(processAll.getPrcStatus())){
errorList.add(inspectNo);
}
}
}
if (!errorList.isEmpty()){
throw new JeroBootException("企标编号为" + String.join(",", errorList) + "的数据已在企标废止/封存流程进行中,不可发起!");
}
}
@Override @Override
public void flowSave(EsInspectPlanFlowVO esInspectPlanFlowVO) { public void flowSave(EsInspectPlanFlowVO esInspectPlanFlowVO) {
@@ -755,7 +755,11 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
.eq(ProcessFbStandardConsultation::getId, businessId) .eq(ProcessFbStandardConsultation::getId, businessId)
.set(ProcessFbStandardConsultation::getConsultationEndDate, date) .set(ProcessFbStandardConsultation::getConsultationEndDate, date)
.set(ProcessFbStandardConsultation::getUpdateTime, date)); .set(ProcessFbStandardConsultation::getUpdateTime, date));
// 删除超期待办
processApprovalRecordService.remove(
new LambdaQueryWrapper<ProcessApprovalRecord>()
.eq(ProcessApprovalRecord::getProcessInstanceId, processInstanceId)
.eq(ProcessApprovalRecord::getOverDue, YesOrNoEnum.YES.getValue()));
// 发送邮件 // 发送邮件
try { try {
sendMessage(businessId); sendMessage(businessId);
@@ -2,7 +2,6 @@ package com.jero.modules.activiti.service;
import cn.hutool.core.collection.CollStreamUtil; import cn.hutool.core.collection.CollStreamUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
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.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -10,13 +9,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.dto.message.SendMessageDTO; import com.jero.common.api.dto.message.SendMessageDTO;
import com.jero.common.api.vo.Result;
import com.jero.common.api.vo.ResultCommon; import com.jero.common.api.vo.ResultCommon;
import com.jero.common.api.vo.SendMessageAPI; import com.jero.common.api.vo.SendMessageAPI;
import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.exception.JeroBootException; import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.LoginUser;
import com.jero.modules.activiti.controller.WorkCenterController;
import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.enums.FinishFlagEnum; import com.jero.modules.activiti.enums.FinishFlagEnum;
@@ -29,10 +26,8 @@ import com.jero.modules.activiti.process.common.service.ProcessDraftService;
import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPProjectStatus; import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPProjectStatus;
import com.jero.modules.activiti.process.esRevision.entity.ProcessEsRevision; import com.jero.modules.activiti.process.esRevision.entity.ProcessEsRevision;
import com.jero.modules.activiti.process.esRevision.service.EsRevisionService; import com.jero.modules.activiti.process.esRevision.service.EsRevisionService;
import com.jero.modules.activiti.util.SpringContextUtil;
import com.jero.modules.activiti.vo.DelegateTaskParam; import com.jero.modules.activiti.vo.DelegateTaskParam;
import com.jero.modules.activiti.vo.ResolveTaskParam; import com.jero.modules.activiti.vo.ResolveTaskParam;
import com.jero.modules.laws.common.constant.FieldCommon;
import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon; import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon;
import com.jero.modules.laws.common.util.CurrentUserUtil; import com.jero.modules.laws.common.util.CurrentUserUtil;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan; import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
@@ -42,7 +37,6 @@ import org.activiti.engine.HistoryService;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import org.activiti.engine.task.Task; import org.activiti.engine.task.Task;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -114,6 +108,7 @@ public class ProcessAllService extends ServiceImpl<ProcessAllMapper, ProcessAll>
wrapper.select("process_instance_id","group_concat(user_id) as user_id"); wrapper.select("process_instance_id","group_concat(user_id) as user_id");
wrapper.lambda().in(ProcessApprovalRecord::getProcessInstanceId,collect) wrapper.lambda().in(ProcessApprovalRecord::getProcessInstanceId,collect)
.eq(ProcessApprovalRecord::getFinishFlag,FinishFlagEnum.INCOMPLETE.getValue()) .eq(ProcessApprovalRecord::getFinishFlag,FinishFlagEnum.INCOMPLETE.getValue())
.eq(ProcessApprovalRecord::getOverDue, YesOrNoEnum.NO.getValue())
.groupBy(ProcessApprovalRecord::getProcessInstanceId); .groupBy(ProcessApprovalRecord::getProcessInstanceId);
List<ProcessApprovalRecord> approvalRecordList = approvalRecordService.list(wrapper); List<ProcessApprovalRecord> approvalRecordList = approvalRecordService.list(wrapper);
Map<String, String> userMap = CollStreamUtil.toMap(approvalRecordList, ProcessApprovalRecord::getProcessInstanceId, ProcessApprovalRecord::getUserId); Map<String, String> userMap = CollStreamUtil.toMap(approvalRecordList, ProcessApprovalRecord::getProcessInstanceId, ProcessApprovalRecord::getUserId);
@@ -5,6 +5,7 @@ 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.api.ISysBaseAPI;
import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.entity.ProcessApprovalRecord;
@@ -47,6 +48,7 @@ public class ProcessApprovalRecordService extends ServiceImpl<ProcessApprovalRec
if (StringUtils.isNotBlank(processApprovalRecord.getFinishFlagSearch())){ if (StringUtils.isNotBlank(processApprovalRecord.getFinishFlagSearch())){
wrapper.in("finish_flag", Arrays.asList(processApprovalRecord.getFinishFlagSearch().split(","))); wrapper.in("finish_flag", Arrays.asList(processApprovalRecord.getFinishFlagSearch().split(",")));
} }
wrapper.eq("over_due", YesOrNoEnum.NO.getValue());
wrapper.eq("process_instance_id", processApprovalRecord.getProcessInstanceId()); wrapper.eq("process_instance_id", processApprovalRecord.getProcessInstanceId());
wrapper.last("ORDER BY IF(ISNULL(create_time), 1, 0) DESC ,create_time DESC, end_time DESC"); wrapper.last("ORDER BY IF(ISNULL(create_time), 1, 0) DESC ,create_time DESC, end_time DESC");
Page<ProcessApprovalRecord> pageList = this.page(page, wrapper); Page<ProcessApprovalRecord> pageList = this.page(page, wrapper);