fix: 80849 法规采购流程-驳回给发起节点,添加数据后提交,提示数据库中已存在该记录
This commit is contained in:
+12
@@ -334,6 +334,18 @@ public class ActFlowCommonService {
|
||||
processAllService.updateById(process);
|
||||
}
|
||||
|
||||
public void updateProcessAllWithProjectId(String processInstanceId, String userId, String prcName, String prcMes,
|
||||
Integer prcType, Date dueTime, String projectId) {
|
||||
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
|
||||
process.setCreateUserId(userId);
|
||||
process.setPrcName(prcName);
|
||||
process.setPrcMes(prcMes);
|
||||
process.setDueTime(dueTime);
|
||||
process.setPrcType(prcType);
|
||||
process.setProjectId(projectId);
|
||||
processAllService.updateById(process);
|
||||
}
|
||||
|
||||
public StandTypeVO getStandTypeByStandNo(String standardNo) {
|
||||
LambdaUpdateWrapper<EnterpriseStandardPlan> espWrapper = new LambdaUpdateWrapper<>();
|
||||
espWrapper.eq(EnterpriseStandardPlan::getNewEnStandardNo, standardNo);
|
||||
|
||||
+65
-65
@@ -24,84 +24,84 @@ import java.util.List;
|
||||
/**
|
||||
* @Description: 法规采购流程表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2023-11-14
|
||||
* @Date: 2023-11-14
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Api(tags="法规采购流程表")
|
||||
@Api(tags = "法规采购流程表")
|
||||
@RestController
|
||||
@RequestMapping("/process/fb/processFbStandardPurchase")
|
||||
@Slf4j
|
||||
public class ProcessFbStandardPurchaseController extends JeroController<ProcessFbStandardPurchase, IProcessFbStandardPurchaseService> {
|
||||
@Autowired
|
||||
private IProcessFbStandardPurchaseService processFbStandardPurchaseService;
|
||||
@Autowired
|
||||
private IProcessFbStandardPurchaseService processFbStandardPurchaseService;
|
||||
|
||||
@GetMapping("/queryProcessInfoVO")
|
||||
@AutoLog(value = "法规采购流程表-查询流程信息")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "draftId", value = "草稿id"),
|
||||
@ApiImplicitParam(name = "processInstanceId", value = "流程实例id"),
|
||||
@ApiImplicitParam(name = "taskId", value = "任务id")
|
||||
})
|
||||
@ApiOperation("法规采购流程表-查询流程信息")
|
||||
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);
|
||||
}
|
||||
@GetMapping("/queryProcessInfoVO")
|
||||
@AutoLog(value = "法规采购流程表-查询流程信息")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "draftId", value = "草稿id"),
|
||||
@ApiImplicitParam(name = "processInstanceId", value = "流程实例id"),
|
||||
@ApiImplicitParam(name = "taskId", value = "任务id")
|
||||
})
|
||||
@ApiOperation("法规采购流程表-查询流程信息")
|
||||
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);
|
||||
}
|
||||
|
||||
@AutoLog(value = "法规采购流程表-发起流程")
|
||||
@ApiOperation(value = "法规采购流程表-发起流程", notes = "流程处理-发起流程")
|
||||
@PostMapping(value = "/startProcess")
|
||||
public Result<T> startProcess(@Validated @RequestBody ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO) {
|
||||
processFbStandardPurchaseService.startProcess(processInfoVO);
|
||||
return Result.OK();
|
||||
}
|
||||
@AutoLog(value = "法规采购流程表-发起流程")
|
||||
@ApiOperation(value = "法规采购流程表-发起流程", notes = "流程处理-发起流程")
|
||||
@PostMapping(value = "/startProcess")
|
||||
public Result<T> startProcess(@Validated @RequestBody ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO) {
|
||||
processFbStandardPurchaseService.startProcess(processInfoVO);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@AutoLog(value = "法规采购流程表-同意")
|
||||
@ApiOperation(value="法规采购流程表-同意", notes="法规采购流程表-同意")
|
||||
@PostMapping("/agree")
|
||||
public Result<T> agree(@Validated @RequestBody ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO) {
|
||||
processFbStandardPurchaseService.approveTask(processInfoVO, true);
|
||||
return Result.OK();
|
||||
}
|
||||
@AutoLog(value = "法规采购流程表-同意")
|
||||
@ApiOperation(value = "法规采购流程表-同意", notes = "法规采购流程表-同意")
|
||||
@PostMapping("/agree")
|
||||
public Result<T> agree(@Validated @RequestBody ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO) {
|
||||
processFbStandardPurchaseService.approveTask(processInfoVO, true);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@AutoLog(value = "法规采购流程表-驳回")
|
||||
@ApiOperation(value="法规采购流程表-驳回", notes="法规采购流程表-驳回")
|
||||
@PostMapping("/reject")
|
||||
public Result<T> reject(@Validated @RequestBody ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO) {
|
||||
processFbStandardPurchaseService.approveTask(processInfoVO, false);
|
||||
return Result.OK();
|
||||
}
|
||||
@AutoLog(value = "法规采购流程表-驳回")
|
||||
@ApiOperation(value = "法规采购流程表-驳回", notes = "法规采购流程表-驳回")
|
||||
@PostMapping("/reject")
|
||||
public Result<T> reject(@Validated @RequestBody ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO) {
|
||||
processFbStandardPurchaseService.approveTask(processInfoVO, false);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@AutoLog(value = "法规采购流程表-转办")
|
||||
@ApiOperation(value="法规采购流程表-转办", notes="法规采购流程表-转办")
|
||||
@PostMapping(value = "/transfer")
|
||||
public Result<T> transfer(@RequestBody TransferVO transferVO) {
|
||||
processFbStandardPurchaseService.transfer(transferVO.getTaskId(), transferVO.getUserId());
|
||||
return Result.OK();
|
||||
}
|
||||
@AutoLog(value = "法规采购流程表-转办")
|
||||
@ApiOperation(value = "法规采购流程表-转办", notes = "法规采购流程表-转办")
|
||||
@PostMapping(value = "/transfer")
|
||||
public Result<T> transfer(@RequestBody TransferVO transferVO) {
|
||||
processFbStandardPurchaseService.transfer(transferVO.getTaskId(), transferVO.getUserId());
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@AutoLog(value = "法规采购流程表-保存为草稿")
|
||||
@ApiOperation(value = "法规采购流程表-保存为草稿", notes = "法规采购流程表-保存为草稿")
|
||||
@PostMapping(value = "/saveToDraft")
|
||||
public Result<T> saveToDraft(@Validated @RequestBody ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO) {
|
||||
processFbStandardPurchaseService.saveToDraft(processInfoVO);
|
||||
return Result.OK();
|
||||
}
|
||||
@AutoLog(value = "法规采购流程表-保存为草稿")
|
||||
@ApiOperation(value = "法规采购流程表-保存为草稿", notes = "法规采购流程表-保存为草稿")
|
||||
@PostMapping(value = "/saveToDraft")
|
||||
public Result<T> saveToDraft(@Validated @RequestBody ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO) {
|
||||
processFbStandardPurchaseService.saveToDraft(processInfoVO);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@AutoLog(value = "法规采购流程表-导出")
|
||||
@ApiOperation(value = "法规采购流程表-导出", notes = "法规采购流程表-导出")
|
||||
@GetMapping(value = "/exportXls")
|
||||
public ModelAndView exportXls(@RequestParam(name = "businessId") String businessId) {
|
||||
return processFbStandardPurchaseService.exportXls(businessId);
|
||||
}
|
||||
@AutoLog(value = "法规采购流程表-导出")
|
||||
@ApiOperation(value = "法规采购流程表-导出", notes = "法规采购流程表-导出")
|
||||
@GetMapping(value = "/exportXls")
|
||||
public ModelAndView exportXls(@RequestParam(name = "businessId") String businessId) {
|
||||
return processFbStandardPurchaseService.exportXls(businessId);
|
||||
}
|
||||
|
||||
@AutoLog(value = "法规采购流程表-抄送")
|
||||
@ApiOperation(value = "法规采购流程表-抄送", notes = "法规采购流程表-抄送")
|
||||
@GetMapping(value = "/carbonCopy")
|
||||
public Result<T> carbonCopy(@RequestParam(name = "processInstanceId") String processInstanceId,
|
||||
@RequestParam(name = "userIds") String userIds) {
|
||||
processFbStandardPurchaseService.carbonCopy(processInstanceId, userIds);
|
||||
return Result.OK();
|
||||
}
|
||||
@AutoLog(value = "法规采购流程表-抄送")
|
||||
@ApiOperation(value = "法规采购流程表-抄送", notes = "法规采购流程表-抄送")
|
||||
@GetMapping(value = "/carbonCopy")
|
||||
public Result<T> carbonCopy(@RequestParam(name = "processInstanceId") String processInstanceId,
|
||||
@RequestParam(name = "userIds") String userIds) {
|
||||
processFbStandardPurchaseService.carbonCopy(processInstanceId, userIds);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+92
-19
@@ -1,5 +1,6 @@
|
||||
package com.jero.modules.activiti.process.fb.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.api.vo.ResultCommon;
|
||||
@@ -8,18 +9,28 @@ import com.jero.common.system.base.controller.JeroController;
|
||||
import com.jero.common.util.UUIDUtils;
|
||||
import com.jero.modules.activiti.entity.ProcessAll;
|
||||
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
||||
import com.jero.modules.activiti.process.common.entity.CommonVO;
|
||||
import com.jero.modules.activiti.process.common.entity.CounterSignNodeNameConstants;
|
||||
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
|
||||
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
|
||||
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.dto.BasicTaskInfoDTO;
|
||||
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;
|
||||
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
|
||||
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
||||
import com.jero.modules.activiti.service.ProcessNodeLinkService;
|
||||
import com.jero.modules.activiti.service.WorkCenterService;
|
||||
import com.jero.modules.activiti.util.SpringContextUtil;
|
||||
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
||||
import com.jero.modules.sys.utils.UserUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.activiti.engine.RuntimeService;
|
||||
import org.activiti.engine.TaskService;
|
||||
import org.activiti.engine.runtime.ProcessInstance;
|
||||
import org.activiti.engine.task.Task;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
|
||||
@@ -30,6 +41,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -37,7 +49,7 @@ import java.util.Map;
|
||||
/**
|
||||
* @Description: 法规采购流程表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2023-11-14
|
||||
* @Date: 2023-11-14
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Service
|
||||
@@ -52,6 +64,18 @@ public class ProcessFbStandardPurchaseServiceImpl extends ServiceImpl<ProcessFbS
|
||||
@Resource
|
||||
private ProcessDraftService processDraftService;
|
||||
|
||||
@Resource
|
||||
private ActFlowCommonService actFlowCommonService;
|
||||
|
||||
@Resource
|
||||
private RuntimeService runtimeService;
|
||||
|
||||
@Resource
|
||||
private ProcessNodeLinkService processNodeLinkService;
|
||||
|
||||
@Resource
|
||||
private TaskService taskService;
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/14 14:08
|
||||
@@ -77,7 +101,7 @@ public class ProcessFbStandardPurchaseServiceImpl extends ServiceImpl<ProcessFbS
|
||||
**/
|
||||
@Override
|
||||
public void startProcess(ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO) {
|
||||
String processName = addBusinessInfo(processInfoVO);// 保存业务信息
|
||||
addBusinessInfo(processInfoVO);// 保存业务信息
|
||||
|
||||
Map<String, Object> userInfoMap = processInfoVO.getUserInfoMap(); // 用户变量map
|
||||
userInfoMap.put("engineer", CurrentUserUtil.getId()); // 第一个任务节点设置成自己
|
||||
@@ -103,9 +127,9 @@ public class ProcessFbStandardPurchaseServiceImpl extends ServiceImpl<ProcessFbS
|
||||
* @Date: 2023/11/14 14:18
|
||||
* @Description: 添加业务信息
|
||||
**/
|
||||
private String addBusinessInfo(ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO) {
|
||||
private void addBusinessInfo(ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO) {
|
||||
List<ProcessFbStandardPurchase> businessInfoList = processInfoVO.getBusinessInfoDTO();
|
||||
if (CollectionUtils.isEmpty(businessInfoList)) return "";
|
||||
if (CollectionUtils.isEmpty(businessInfoList)) return;
|
||||
String businessId = businessInfoList.get(0).getBusinessId();
|
||||
if (StringUtils.isBlank(businessId)) {
|
||||
businessId = UUIDUtils.randomUUID20();
|
||||
@@ -128,8 +152,6 @@ public class ProcessFbStandardPurchaseServiceImpl extends ServiceImpl<ProcessFbS
|
||||
remove(removeWrapper); // 先删除历史数据
|
||||
|
||||
saveOrUpdateBatch(businessInfoList, businessInfoList.size()); // 保存到数据库
|
||||
|
||||
return businessInfoList.get(0).getStandardNumber() + "-" + businessInfoList.get(0).getStandardName() + "-" + "采购";
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -139,17 +161,68 @@ public class ProcessFbStandardPurchaseServiceImpl extends ServiceImpl<ProcessFbS
|
||||
**/
|
||||
@Override
|
||||
public void approveTask(ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO, boolean pass) {
|
||||
List<ProcessFbStandardPurchase> businessInfoList = processInfoVO.getBusinessInfoDTO();
|
||||
addBusinessInfo(processInfoVO);
|
||||
processInfoVO.setBusinessId(businessInfoList.get(0).getBusinessId());
|
||||
processHandleService.approveTask(processInfoVO, pass);
|
||||
|
||||
BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO();
|
||||
String processInstanceId = basicProcessInfoDTO.getProcessInstanceId();
|
||||
// 如果流程结束
|
||||
if (pass && processHandleService.isProcessFinish(processInstanceId)) {
|
||||
log.info("《法规采购流程》结束,流程名称:{}", basicProcessInfoDTO.getProcessName());
|
||||
String userId = UserUtils.getUserId();
|
||||
CommonVO commonVO = this.transferCommonVo(processInfoVO);
|
||||
Map<String, Object> flowUser = processInfoVO.getUserInfoMap();
|
||||
String taskId = commonVO.getTaskId();
|
||||
if (StrUtil.isBlank(taskId) || !actFlowCommonService.taskExists(taskId)) {
|
||||
throw new JeroBootException(ResultCommon.TASK_NOT_EXISTS);
|
||||
}
|
||||
// 获取流程实例ID
|
||||
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
|
||||
// 获取流程实例对象
|
||||
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
|
||||
.processInstanceId(processInstanceId).singleResult();
|
||||
// 获取流程定义ID
|
||||
String processDefinitionId = processInstance.getProcessDefinitionId();
|
||||
List<ProcessFbStandardPurchase> data = processInfoVO.getBusinessInfoDTO();
|
||||
if (data != null) {
|
||||
addBusinessInfo(processInfoVO); // 保存业务信息
|
||||
// 根据流程实例id更新流程总表
|
||||
String prcName = commonVO.getPrcName();
|
||||
String prcMes = commonVO.getPrcMes();
|
||||
Date dueTime = commonVO.getDueTime();
|
||||
Integer prcType = ProcessTypeEnum.FB_STANDARD_PURCHASE.getValue();
|
||||
actFlowCommonService.updateProcessAllWithProjectId(processInstanceId, userId,
|
||||
prcName, prcMes, prcType, dueTime, data.get(0).getBusinessId());
|
||||
}
|
||||
if (flowUser != null) {
|
||||
Map<String, Object> variables = setVariables(flowUser);
|
||||
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
||||
// 获取执行id
|
||||
String executionId = task.getExecutionId();
|
||||
// 设置流程变量
|
||||
runtimeService.setVariables(executionId, variables);
|
||||
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, flowUser);
|
||||
}
|
||||
// 设置流程变量
|
||||
runtimeService.setVariable(processInstanceId, "pass", pass);
|
||||
// 更新审批表为完成,填充数据
|
||||
actFlowCommonService.updateApprovalInfo(commonVO, taskId, pass);
|
||||
// 审批节点
|
||||
actFlowCommonService.completeTask(taskId, userId);
|
||||
// 删除草稿
|
||||
actFlowCommonService.removeDraft(commonVO);
|
||||
}
|
||||
|
||||
private CommonVO transferCommonVo(ProcessInfoVO processInfoVO) {
|
||||
CommonVO commonVO = new CommonVO();
|
||||
BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO();
|
||||
BasicTaskInfoDTO basicTaskInfoDTO = processInfoVO.getBasicTaskInfoDTO();
|
||||
commonVO.setTaskId(basicTaskInfoDTO.getTaskId());
|
||||
commonVO.setPrcName(basicProcessInfoDTO.getProcessName());
|
||||
commonVO.setPrcMes(basicProcessInfoDTO.getProcessDescription());
|
||||
commonVO.setDueTime(basicProcessInfoDTO.getProcessDueDate());
|
||||
commonVO.setProcessInstanceId(basicProcessInfoDTO.getProcessInstanceId());
|
||||
commonVO.setCommitFile(basicTaskInfoDTO.getHandleFile());
|
||||
commonVO.setCommitText(basicTaskInfoDTO.getHandleText());
|
||||
return commonVO;
|
||||
}
|
||||
|
||||
private Map<String, Object> setVariables(Map<String, Object> flowUser) {
|
||||
// 删除所有后缀是“_dictText”的变量
|
||||
flowUser.entrySet().removeIf(entry -> entry.getKey().endsWith("_dictText"));
|
||||
return flowUser;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -191,8 +264,8 @@ public class ProcessFbStandardPurchaseServiceImpl extends ServiceImpl<ProcessFbS
|
||||
|
||||
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
|
||||
mv.addObject(JeroController.CLASS, ProcessFbStandardPurchase.class);
|
||||
ExportParams exportParams=new ExportParams();
|
||||
mv.addObject(JeroController.PARAMS,exportParams);
|
||||
ExportParams exportParams = new ExportParams();
|
||||
mv.addObject(JeroController.PARAMS, exportParams);
|
||||
mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
|
||||
return mv;
|
||||
}
|
||||
@@ -213,6 +286,6 @@ public class ProcessFbStandardPurchaseServiceImpl extends ServiceImpl<ProcessFbS
|
||||
IProcessFbStandardPurchaseService processFbStandardPurchaseService = SpringContextUtil.getBean(IProcessFbStandardPurchaseService.class);
|
||||
processFbStandardPurchaseService.remove(
|
||||
new LambdaQueryWrapper<ProcessFbStandardPurchase>()
|
||||
.eq(ProcessFbStandardPurchase::getBusinessId, processAll.getProjectId()));
|
||||
.eq(ProcessFbStandardPurchase::getBusinessId, processAll.getProjectId()));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user