fix(标准法规入库/变更流程): 保存逻辑修改

This commit is contained in:
yjz
2024-01-09 14:47:56 +08:00
parent e9d0b9bc25
commit c274714700
11 changed files with 140 additions and 50 deletions
@@ -42,8 +42,8 @@ public class ProcessFbEntryChangeController extends JeroController<ProcessFbEntr
@ApiImplicitParam(name = "taskId", value = "任务id")
})
@ApiOperation("标准法规入库_变更流程-查询流程信息")
public Result<ProcessInfoVO<ProcessFbEntryChange>> queryProcessInfoVO(String draftId, String processInstanceId, String taskId){
ProcessInfoVO<ProcessFbEntryChange> processInfoVO = processFbEntryChangeService.queryProcessInfoVO(draftId, processInstanceId, taskId);
public Result<ProcessInfoVO<ProcessFbEntryChange>> queryProcessInfoVO(String draftId, String processInstanceId, String taskId, String projectId){
ProcessInfoVO<ProcessFbEntryChange> processInfoVO = processFbEntryChangeService.queryProcessInfoVO(draftId, processInstanceId, taskId, projectId);
return Result.OK(processInfoVO);
}
@@ -3,22 +3,21 @@ package com.jero.modules.activiti.process.fb.controller;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.aspect.annotation.DictPoint;
import com.jero.common.system.base.controller.JeroController;
import com.jero.modules.activiti.process.common.entity.TransferVO;
import com.jero.modules.activiti.process.fb.entity.ProcessFbEntryChange;
import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardConsultation;
import com.jero.modules.activiti.process.fb.service.IProcessFbStandardConsultationService;
import com.jero.modules.activiti.process.fb.vo.ProcessFbStandardConsultationVO;
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.Api;
/**
@@ -44,8 +43,8 @@ public class ProcessFbStandardConsultationController extends JeroController<Proc
@ApiImplicitParam(name = "processInstanceId", value = "流程实例id")
})
@ApiOperation("标准征求意见流程-查询流程信息")
public Result<ProcessInfoVO<ProcessFbStandardConsultationVO>> queryProcessInfoVO(String draftId, String processInstanceId, String taskId){
ProcessInfoVO<ProcessFbStandardConsultationVO> processInfoVO = processFbStandardConsultationService.queryProcessInfoVO(draftId, processInstanceId, taskId);
public Result<ProcessInfoVO<ProcessFbStandardConsultationVO>> queryProcessInfoVO(String draftId, String processInstanceId, String taskId, String projectId){
ProcessInfoVO<ProcessFbStandardConsultationVO> processInfoVO = processFbStandardConsultationService.queryProcessInfoVO(draftId, processInstanceId, taskId, projectId);
return Result.OK(processInfoVO);
}
@@ -43,8 +43,8 @@ public class ProcessFbStandardPurchaseController extends JeroController<ProcessF
@ApiImplicitParam(name = "taskId", value = "任务id")
})
@ApiOperation("法规采购流程表-查询流程信息")
public Result<ProcessInfoVO<List<ProcessFbStandardPurchase>>> queryProcessInfoVO(String draftId, String processInstanceId, String taskId){
ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO = processFbStandardPurchaseService.queryProcessInfoVO(draftId, processInstanceId, taskId);
public Result<ProcessInfoVO<List<ProcessFbStandardPurchase>>> queryProcessInfoVO(String draftId, String processInstanceId, String taskId, String projectId){
ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO = processFbStandardPurchaseService.queryProcessInfoVO(draftId, processInstanceId, taskId, projectId);
return Result.OK(processInfoVO);
}
@@ -58,5 +58,5 @@ public interface IProcessFbEntryChangeService extends IService<ProcessFbEntryCha
* @Date: 2023/11/8 11:12
* @Description: 查询流程信息
**/
ProcessInfoVO<ProcessFbEntryChange> queryProcessInfoVO(String draftId, String processInstanceId, String taskId);
ProcessInfoVO<ProcessFbEntryChange> queryProcessInfoVO(String draftId, String processInstanceId, String taskId, String projectId);
}
@@ -56,7 +56,7 @@ public interface IProcessFbStandardConsultationService extends IService<ProcessF
* @Date: 2023/11/16 15:13
* @Description: 查询流程信息
**/
ProcessInfoVO<ProcessFbStandardConsultationVO> queryProcessInfoVO(String draftId, String processInstanceId, String taskId);
ProcessInfoVO<ProcessFbStandardConsultationVO> queryProcessInfoVO(String draftId, String processInstanceId, String taskId, String projectId);
/**
* @Author: liao
@@ -20,7 +20,7 @@ public interface IProcessFbStandardPurchaseService extends IService<ProcessFbSta
* @Date: 2023/11/14 14:07
* @Description: 查询流程信息
**/
ProcessInfoVO<List<ProcessFbStandardPurchase>> queryProcessInfoVO(String draftId, String processInstanceId, String taskId);
ProcessInfoVO<List<ProcessFbStandardPurchase>> queryProcessInfoVO(String draftId, String processInstanceId, String taskId, String projectId);
/**
* @Author: liao
@@ -3,7 +3,6 @@ package com.jero.modules.activiti.process.fb.service;
import com.jero.modules.activiti.process.fb.dto.ProcessDTO;
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
import org.activiti.engine.runtime.ProcessInstance;
import org.apache.poi.ss.formula.functions.T;
import java.util.List;
import java.util.Map;
@@ -93,6 +92,7 @@ public interface IProcessHandleService {
**/
void deleteMyDraft(String taskId, String businessId, Integer processType);
/**
* @Author: liao
* @Date: 2023/11/8 11:16
@@ -100,6 +100,13 @@ public interface IProcessHandleService {
**/
ProcessInfoVO queryProcessInfoVO(String draftId, String processInstanceId, String taskId);
/**
* @Author: liao
* @Date: 2023/11/8 11:16
* @Description: 查询流程信息
**/
ProcessInfoVO queryProcessInfoVO(String draftId, String processInstanceId, String taskId, String projectId);
/**
* @Author: liao
* @Date: 2023/11/8 13:36
@@ -2,9 +2,12 @@ package com.jero.modules.activiti.process.fb.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.dto.message.SendMessageDTO;
import com.jero.common.api.vo.ResultCommon;
import com.jero.common.api.vo.SendMessageAPI;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.common.util.UUIDUtils;
import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.process.fb.common.ProcessDefinitionKey;
@@ -14,25 +17,19 @@ import com.jero.modules.activiti.process.fb.mapper.ProcessFbEntryChangeMapper;
import com.jero.modules.activiti.process.fb.service.IProcessFbEntryChangeService;
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
import com.jero.modules.laws.common.constant.DictCommon;
import com.jero.modules.laws.common.constant.FieldCommon;
import com.jero.common.api.vo.ResultCommon;
import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon;
import com.jero.modules.laws.common.mapper.LawsCommonMapper;
import com.jero.modules.laws.common.service.ILawsCommonService;
import com.jero.modules.laws.common.util.CurrentUserUtil;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.tag.entity.LawsTag;
import com.jero.modules.tag.enums.TableNameEnum;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.jero.common.exception.JeroBootException;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import javax.annotation.Resource;
import java.util.*;
@@ -326,8 +323,8 @@ public class ProcessFbEntryChangeServiceImpl extends ServiceImpl<ProcessFbEntryC
* @Description: 查询流程信息
**/
@Override
public ProcessInfoVO<ProcessFbEntryChange> queryProcessInfoVO(String draftId, String processInstanceId, String taskId) {
ProcessInfoVO processInfoVO = processHandleService.queryProcessInfoVO(draftId, processInstanceId, taskId);
public ProcessInfoVO<ProcessFbEntryChange> queryProcessInfoVO(String draftId, String processInstanceId, String taskId, String projectId) {
ProcessInfoVO processInfoVO = processHandleService.queryProcessInfoVO(draftId, processInstanceId, taskId, projectId);
ProcessFbEntryChange processFbEntryChange = getById(processInfoVO.getBusinessId());
Map<String, Object> map = JSON.parseObject(processFbEntryChange.getBusinessJson(), Map.class);
@@ -310,8 +310,8 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
* @Description: 查询流程信息
**/
@Override
public ProcessInfoVO<ProcessFbStandardConsultationVO> queryProcessInfoVO(String draftId, String processInstanceId, String taskId) {
ProcessInfoVO processInfoVO = processHandleService.queryProcessInfoVO(draftId, processInstanceId, taskId);
public ProcessInfoVO<ProcessFbStandardConsultationVO> queryProcessInfoVO(String draftId, String processInstanceId, String taskId, String projectId) {
ProcessInfoVO processInfoVO = processHandleService.queryProcessInfoVO(draftId, processInstanceId, taskId, projectId);
ProcessFbStandardConsultationVO processFbStandardConsultationVO = new ProcessFbStandardConsultationVO();
processInfoVO.setBusinessInfoDTO(processFbStandardConsultationVO);
@@ -1,13 +1,14 @@
package com.jero.modules.activiti.process.fb.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.ResultCommon;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.util.UUIDUtils;
import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.process.fb.common.ProcessDefinitionKey;
import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO;
import com.jero.modules.activiti.process.fb.entity.ProcessFbEntryChange;
import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardPurchase;
import com.jero.modules.activiti.process.fb.mapper.ProcessFbStandardPurchaseMapper;
import com.jero.modules.activiti.process.fb.service.IProcessFbStandardPurchaseService;
@@ -20,11 +21,8 @@ import org.apache.commons.lang3.StringUtils;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.jero.common.exception.JeroBootException;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
@@ -52,8 +50,8 @@ public class ProcessFbStandardPurchaseServiceImpl extends ServiceImpl<ProcessFbS
* @Description: 查询流程信息
**/
@Override
public ProcessInfoVO<List<ProcessFbStandardPurchase>> queryProcessInfoVO(String draftId, String processInstanceId, String taskId) {
ProcessInfoVO processInfoVO = processHandleService.queryProcessInfoVO(draftId, processInstanceId, taskId);
public ProcessInfoVO<List<ProcessFbStandardPurchase>> queryProcessInfoVO(String draftId, String processInstanceId, String taskId, String projectId) {
ProcessInfoVO processInfoVO = processHandleService.queryProcessInfoVO(draftId, processInstanceId, taskId, projectId);
LambdaQueryWrapper<ProcessFbStandardPurchase> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ProcessFbStandardPurchase::getBusinessId, processInfoVO.getBusinessId());
@@ -1,7 +1,8 @@
package com.jero.modules.activiti.process.fb.service.impl;
import cn.hutool.core.collection.CollStreamUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.jero.common.api.vo.ResultCommon;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
@@ -11,7 +12,6 @@ import com.jero.modules.activiti.enums.CommitFlagEnum;
import com.jero.modules.activiti.enums.FinishFlagEnum;
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
import com.jero.modules.activiti.process.fb.common.FbCommon;
import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO;
import com.jero.modules.activiti.process.fb.dto.BasicTaskInfoDTO;
import com.jero.modules.activiti.process.fb.dto.ProcessDTO;
@@ -20,7 +20,6 @@ import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.activiti.service.ProcessNodeLinkService;
import com.jero.common.api.vo.ResultCommon;
import com.jero.modules.activiti.service.ProcessNodeService;
import com.jero.modules.laws.common.util.CurrentUserUtil;
import lombok.extern.slf4j.Slf4j;
@@ -28,13 +27,9 @@ import org.activiti.engine.HistoryService;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.history.HistoricTaskInstanceQuery;
import org.activiti.engine.runtime.Execution;
import org.activiti.engine.runtime.ExecutionQuery;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.activiti.engine.task.TaskInfo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -71,6 +66,8 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
@Resource
private ProcessDraftService processDraftService; // 流程草稿表
private static final String SAVE_BY_DRAFT = "2";
/**
* @Author: liao
* @Date: 2023/11/2 17:04
@@ -169,6 +166,36 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
System.out.println("任务id: " + taskId);
System.out.println("变量: " + variables);
System.out.println("=======================================================================");
if (!pass) {
log.info("==========流程驳回,若驳回到的节点之前经过转办,则驳回到转办人手里方法开始==========");
// 驳回的节点
List<ProcessApprovalRecord> processApprovalRecordList = processApprovalRecordService.list(
new LambdaQueryWrapper<ProcessApprovalRecord>()
.eq(ProcessApprovalRecord::getProcessInstanceId, processInstanceId)
.orderByDesc(ProcessApprovalRecord::getCreateTime));
if (!processApprovalRecordList.isEmpty()){
ProcessApprovalRecord processApprovalRecord = processApprovalRecordList.get(0);
processApprovalRecordList.remove(0);
Optional<ProcessApprovalRecord> optional = processApprovalRecordList.stream().filter(v ->
v.getTaskName().equals(processApprovalRecord.getTaskName())
&& v.getNodeId().equals(processApprovalRecord.getNodeId())).findFirst();
optional.ifPresent(v -> {
// 是否转办过
if (StringUtils.isNotBlank(v.getTransferBy())){
// 转办给转办人
taskService.setAssignee(processApprovalRecord.getTaskId(), v.getUserId());
// 更新流程审批记录表
processApprovalRecordService.update(
new LambdaUpdateWrapper<ProcessApprovalRecord>()
.eq(ProcessApprovalRecord::getTaskId, processApprovalRecord.getTaskId())
.set(ProcessApprovalRecord::getUserId, v.getUserId())
.set(ProcessApprovalRecord::getOriginUserId, v.getUserId()));
}
});
}
log.info("==========流程驳回,若驳回到的节点之前经过转办,则驳回到转办人手里方法结束==========");
}
}
/**
@@ -309,21 +336,24 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
// 删除自己的草稿
deleteMyDraft(taskId, processInfoVO.getBusinessId(), basicProcessInfoDTO.getProcessType());
// 非发起节点不保存到草稿
BasicTaskInfoDTO basicTaskInfoDTO1 = processInfoVO.getBasicTaskInfoDTO();
if (StringUtils.isBlank(basicTaskInfoDTO1.getTaskId()) || SAVE_BY_DRAFT.equals(processInfoVO.getSaveSource())){
ProcessDraft processDraft = new ProcessDraft();
processDraft.setProjectId(processInfoVO.getBusinessId()); // 业务id
processDraft.setProcessInstanceId(basicProcessInfoDTO.getProcessInstanceId()); // 流程实例id
processDraft.setPrcName(basicProcessInfoDTO.getProcessName()); // 流程名称
processDraft.setPrcType(basicProcessInfoDTO.getProcessType()); // 流程类型
processDraft.setProcessDueDate(basicProcessInfoDTO.getProcessDueDate()); // 流程信息-截止日期
processDraft.setProcessDescription(basicProcessInfoDTO.getProcessDescription()); // 流程信息-流程说明
processDraft.setTaskId(taskId); // 任务id
processDraft.setHandleText(handleText); // 流程审批信息-备注
processDraft.setHandleFile(handleFile); // 流程审批信息-附件
processDraft.setUserId(CurrentUserUtil.getId()); // 用户id
processDraft.setInfoJsonStr(processInfoVO.getInfoJsonStr());//草稿信息json字符串
ProcessDraft processDraft = new ProcessDraft();
processDraft.setProjectId(processInfoVO.getBusinessId()); // 业务id
processDraft.setProcessInstanceId(basicProcessInfoDTO.getProcessInstanceId()); // 流程实例id
processDraft.setPrcName(basicProcessInfoDTO.getProcessName()); // 流程名称
processDraft.setPrcType(basicProcessInfoDTO.getProcessType()); // 流程类型
processDraft.setProcessDueDate(basicProcessInfoDTO.getProcessDueDate()); // 流程信息-截止日期
processDraft.setProcessDescription(basicProcessInfoDTO.getProcessDescription()); // 流程信息-流程说明
processDraft.setTaskId(taskId); // 任务id
processDraft.setHandleText(handleText); // 流程审批信息-备注
processDraft.setHandleFile(handleFile); // 流程审批信息-附件
processDraft.setUserId(CurrentUserUtil.getId()); // 用户id
processDraft.setInfoJsonStr(processInfoVO.getInfoJsonStr());//草稿信息json字符串
processDraftService.save(processDraft);
processDraftService.save(processDraft);
}
}
@Override
@@ -392,6 +422,64 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
.singleResult().getId();
}
/**
* @Author: liao
* @Date: 2023/11/8 11:16
* @Description: 查询流程信息
**/
@Override
public ProcessInfoVO queryProcessInfoVO(String draftId, String processInstanceId, String taskId, String projectId) {
if (StringUtils.isBlank(draftId) && StringUtils.isBlank(taskId)) {
throw new JeroBootException(ResultCommon.NO_PERMISSION);
}
if (StringUtils.isNotBlank(taskId)) {
isMyTask(taskId);
}
ProcessInfoVO processInfoVO = new ProcessInfoVO();
// 流程信息
BasicProcessInfoDTO basicProcessInfoDTO = new BasicProcessInfoDTO();
processInfoVO.setBasicProcessInfoDTO(basicProcessInfoDTO);
// 审批信息
BasicTaskInfoDTO basicTaskInfoDTO = new BasicTaskInfoDTO();
processInfoVO.setBasicTaskInfoDTO(basicTaskInfoDTO);
// 流程信息
if (StringUtils.isNotBlank(projectId)) {
// ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId);
ProcessAll processAll = processAllService.getOne(new LambdaQueryWrapper<ProcessAll>().eq(ProcessAll::getProjectId, projectId), false);
if (!Objects.isNull(processAll)) {
basicProcessInfoDTO.setProcessInstanceId(processAll.getProcessInstanceId());
basicProcessInfoDTO.setProcessType(processAll.getPrcType());
basicProcessInfoDTO.setProcessName(processAll.getPrcName());
basicProcessInfoDTO.setProcessDescription(processAll.getMes());
basicProcessInfoDTO.setProcessDueDate(processAll.getDueTime());
processInfoVO.setBusinessId(processAll.getProjectId());
}
}
// 审批信息
if (StringUtils.isNotBlank(draftId)) {
ProcessDraft processDraft = processDraftService.getById(draftId);
if (!CurrentUserUtil.getId().equals(processDraft.getUserId())) {
throw new JeroBootException(ResultCommon.NO_PERMISSION);
}
if (!Objects.isNull(processDraft)) {
basicTaskInfoDTO.setTaskId(processDraft.getTaskId());
basicTaskInfoDTO.setHandleText(processDraft.getHandleText());
basicTaskInfoDTO.setHandleFile(processDraft.getHandleFile());
processInfoVO.setDraftId(draftId);
basicProcessInfoDTO.setProcessType(processDraft.getPrcType());
basicProcessInfoDTO.setProcessName(processDraft.getPrcName());
basicProcessInfoDTO.setProcessDescription(processDraft.getProcessDescription());
basicProcessInfoDTO.setProcessDueDate(processDraft.getProcessDueDate());
processInfoVO.setInfoJsonStr(processDraft.getInfoJsonStr());
}
}
return processInfoVO;
}
/**
* @Author: liao
* @Date: 2023/11/8 11:16
@@ -442,6 +530,7 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
basicProcessInfoDTO.setProcessName(processDraft.getPrcName());
basicProcessInfoDTO.setProcessDescription(processDraft.getProcessDescription());
basicProcessInfoDTO.setProcessDueDate(processDraft.getProcessDueDate());
processInfoVO.setInfoJsonStr(processDraft.getInfoJsonStr());
}
}