fix: 修复流程发起报错Bug
This commit is contained in:
+12
-8
@@ -1,8 +1,10 @@
|
|||||||
package com.jero.modules.activiti.process.common.entity;
|
package com.jero.modules.activiti.process.common.entity;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
@@ -18,47 +20,49 @@ public class CommonVO {
|
|||||||
* 任务ID
|
* 任务ID
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty("任务ID")
|
@ApiModelProperty("任务ID")
|
||||||
String taskId;
|
private String taskId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 备注
|
* 备注
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty("备注")
|
@ApiModelProperty("备注")
|
||||||
String commitText;
|
private String commitText;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 附件
|
* 附件
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty("附件")
|
@ApiModelProperty("附件")
|
||||||
String commitFile;
|
private String commitFile;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 同意驳回标识
|
* 同意驳回标识
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty("同意驳回标识")
|
@ApiModelProperty("同意驳回标识")
|
||||||
Integer commitFlag;
|
private Integer commitFlag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 同意驳回标识
|
* 同意驳回标识
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty("同意驳回标识")
|
@ApiModelProperty("同意驳回标识")
|
||||||
boolean pass;
|
private boolean pass;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 流程名称
|
* 流程名称
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty("流程名称")
|
@ApiModelProperty("流程名称")
|
||||||
String prcName;
|
private String prcName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 截止日期
|
* 截止日期
|
||||||
*/
|
*/
|
||||||
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||||
@ApiModelProperty("截止日期")
|
@ApiModelProperty("截止日期")
|
||||||
Date dueTime;
|
private Date dueTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 流程描述
|
* 流程描述
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty("流程描述")
|
@ApiModelProperty("流程描述")
|
||||||
String prcMes;
|
private String prcMes;
|
||||||
}
|
}
|
||||||
|
|||||||
+8
-8
@@ -2,12 +2,6 @@ package com.jero.modules.activiti.process.common.service;
|
|||||||
|
|
||||||
import com.jero.common.exception.JeroBootException;
|
import com.jero.common.exception.JeroBootException;
|
||||||
import com.jero.common.system.api.ISysBaseAPI;
|
import com.jero.common.system.api.ISysBaseAPI;
|
||||||
import com.jero.common.system.vo.LoginUser;
|
|
||||||
import com.jero.modules.activiti.process.common.entity.CenterQueryVO;
|
|
||||||
import com.jero.modules.activiti.process.common.enums.ProcessType;
|
|
||||||
import com.jero.modules.activiti.process.esInitChange.entity.vo.InitChangeDataVO;
|
|
||||||
import com.jero.modules.activiti.util.SpringContextUtil;
|
|
||||||
import com.jero.modules.sys.utils.UserUtils;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.activiti.engine.RepositoryService;
|
import org.activiti.engine.RepositoryService;
|
||||||
import org.activiti.engine.RuntimeService;
|
import org.activiti.engine.RuntimeService;
|
||||||
@@ -152,7 +146,7 @@ public class ActFlowCommonService {
|
|||||||
return processDefinition.getKey();
|
return processDefinition.getKey();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void autoCompleteFirstTask(String userId, String processInstanceId, String processDefinitionId) {
|
public void autoCompleteFirstTask(String userId, String processInstanceId, String processDefinitionId, Map<String, Object> variables) {
|
||||||
// 自动完成第一个任务
|
// 自动完成第一个任务
|
||||||
List<Map<String, Object>> taskList = this.myTaskList(userId);
|
List<Map<String, Object>> taskList = this.myTaskList(userId);
|
||||||
if (!CollectionUtils.isEmpty(taskList)) {
|
if (!CollectionUtils.isEmpty(taskList)) {
|
||||||
@@ -164,10 +158,16 @@ public class ActFlowCommonService {
|
|||||||
log.info("当前用户ID:{},相关联的流程定义ID:{}", userId, map.get("processDefinitionId").toString());
|
log.info("当前用户ID:{},相关联的流程定义ID:{}", userId, map.get("processDefinitionId").toString());
|
||||||
log.info("匹配到的任务ID:{}", map.get("taskId").toString());
|
log.info("匹配到的任务ID:{}", map.get("taskId").toString());
|
||||||
|
|
||||||
this.completeTask(map.get("taskId").toString(), userId, map);
|
this.completeTask(map.get("taskId").toString(), userId, variables);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getProcessInstanceIdByTaskId(String taskId) {
|
||||||
|
// 使用流程引擎根据taskId找到流程实例Id
|
||||||
|
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
||||||
|
return task.getProcessInstanceId();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+1
-1
@@ -88,7 +88,7 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnua
|
|||||||
// 流程实例Id
|
// 流程实例Id
|
||||||
String processInstanceId = processInstance.getProcessInstanceId();
|
String processInstanceId = processInstance.getProcessInstanceId();
|
||||||
// 自动完成第一个任务
|
// 自动完成第一个任务
|
||||||
actFlowCommonService.autoCompleteFirstTask(userId, processDefinitionId, processInstanceId);
|
actFlowCommonService.autoCompleteFirstTask(userId, processDefinitionId, processInstanceId, variables);
|
||||||
// TODO 保存数据
|
// TODO 保存数据
|
||||||
log.info("【启动流程】- 成功,processDefinitionId:{}", processDefinitionId);
|
log.info("【启动流程】- 成功,processDefinitionId:{}", processDefinitionId);
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-6
@@ -70,16 +70,13 @@ public class ProcessESInitChangeController {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存到待办
|
* 保存到待办
|
||||||
* @param taskId
|
* @param initChangeDataVO
|
||||||
* @param esInitChangeList
|
|
||||||
*/
|
*/
|
||||||
@AutoLog(value = "企标立项变更流程-保存")
|
@AutoLog(value = "企标立项变更流程-保存")
|
||||||
@ApiOperation(value="企标立项变更流程-保存", notes="企标立项变更流程-保存")
|
@ApiOperation(value="企标立项变更流程-保存", notes="企标立项变更流程-保存")
|
||||||
@PostMapping("/save")
|
@PostMapping("/save")
|
||||||
public Result<?> save(@RequestParam(value = "taskId", required = false) String taskId,
|
public Result<?> save(@RequestBody InitChangeDataVO initChangeDataVO) {
|
||||||
@RequestBody List<ProcessEsInitChange> esInitChangeList) {
|
initChangeService.saveToDraft(initChangeDataVO);
|
||||||
// TODO 按照Demo重写
|
|
||||||
initChangeService.saveToDraft(taskId, esInitChangeList);
|
|
||||||
return Result.OK();
|
return Result.OK();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-3
@@ -37,10 +37,9 @@ public interface ProcessEsInitChangeService extends IService<ProcessEsInitChange
|
|||||||
/**
|
/**
|
||||||
* 保存到草稿
|
* 保存到草稿
|
||||||
*
|
*
|
||||||
* @param taskId
|
* @param initChangeData
|
||||||
* @param esInitChange
|
|
||||||
*/
|
*/
|
||||||
void saveToDraft(String taskId, List<ProcessEsInitChange> esInitChange);
|
void saveToDraft(InitChangeDataVO initChangeData);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 软删除实例数据
|
* 软删除实例数据
|
||||||
|
|||||||
+37
-21
@@ -9,9 +9,12 @@ 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.CommitFlagEnum;
|
import com.jero.modules.activiti.enums.CommitFlagEnum;
|
||||||
import com.jero.modules.activiti.enums.FinishFlagEnum;
|
import com.jero.modules.activiti.enums.FinishFlagEnum;
|
||||||
|
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
||||||
import com.jero.modules.activiti.process.common.entity.CommonVO;
|
import com.jero.modules.activiti.process.common.entity.CommonVO;
|
||||||
|
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.ActFlowCommonService;
|
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
|
||||||
|
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
|
||||||
import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange;
|
import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange;
|
||||||
import com.jero.modules.activiti.process.esInitChange.entity.vo.FlowUserInfoVO;
|
import com.jero.modules.activiti.process.esInitChange.entity.vo.FlowUserInfoVO;
|
||||||
import com.jero.modules.activiti.process.esInitChange.entity.vo.InitChangeDataVO;
|
import com.jero.modules.activiti.process.esInitChange.entity.vo.InitChangeDataVO;
|
||||||
@@ -19,15 +22,16 @@ import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChang
|
|||||||
import com.jero.modules.activiti.process.esInitChange.mapper.ProcessEsInitChangeMapper;
|
import com.jero.modules.activiti.process.esInitChange.mapper.ProcessEsInitChangeMapper;
|
||||||
import com.jero.modules.activiti.service.ProcessAllService;
|
import com.jero.modules.activiti.service.ProcessAllService;
|
||||||
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||||
|
import com.jero.modules.activiti.service.ProcessNodeLinkService;
|
||||||
import com.jero.modules.laws.enterprise.service.ESSequenceNumberProvider;
|
import com.jero.modules.laws.enterprise.service.ESSequenceNumberProvider;
|
||||||
import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil;
|
import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil;
|
||||||
import com.jero.modules.sys.utils.UserUtils;
|
import com.jero.modules.sys.utils.UserUtils;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.activiti.engine.TaskService;
|
import org.activiti.engine.TaskService;
|
||||||
import org.activiti.engine.runtime.ProcessInstance;
|
import org.activiti.engine.runtime.ProcessInstance;
|
||||||
import org.activiti.engine.task.Task;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -58,12 +62,17 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
|
|||||||
@Resource
|
@Resource
|
||||||
private EnterpriseStandardUtil esUtil;
|
private EnterpriseStandardUtil esUtil;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ProcessDraftService processDraftService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ProcessNodeLinkService processNodeLinkService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public InitChangeDataVO getHandleData(String taskId) {
|
public InitChangeDataVO getHandleData(String taskId) {
|
||||||
InitChangeDataVO initChangeDataVO = new InitChangeDataVO();
|
InitChangeDataVO initChangeDataVO = new InitChangeDataVO();
|
||||||
// 使用流程引擎根据taskId找到流程实例Id
|
// 使用流程引擎根据taskId找到流程实例Id
|
||||||
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
|
||||||
String processInstanceId = task.getProcessInstanceId();
|
|
||||||
// 获取流程通用数据
|
// 获取流程通用数据
|
||||||
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
|
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
|
||||||
CommonVO commonVO = new CommonVO();
|
CommonVO commonVO = new CommonVO();
|
||||||
@@ -100,17 +109,19 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
|
|||||||
String processDefinitionId = processInstance.getProcessDefinitionId();
|
String processDefinitionId = processInstance.getProcessDefinitionId();
|
||||||
String processInstanceId = processInstance.getId();
|
String processInstanceId = processInstance.getId();
|
||||||
// 自动完成第一个任务
|
// 自动完成第一个任务
|
||||||
actFlowCommonService.autoCompleteFirstTask(userId, processInstanceId, processDefinitionId);
|
actFlowCommonService.autoCompleteFirstTask(userId, processInstanceId, processDefinitionId, variables);
|
||||||
// 设置流程实例Id
|
// 设置流程实例Id
|
||||||
for (ProcessEsInitChange esInitChange : esInitChangeList) {
|
for (ProcessEsInitChange esInitChange : esInitChangeList) {
|
||||||
esInitChange.setProcessInstanceId(processInstance.getId());
|
esInitChange.setProcessInstanceId(processInstance.getId());
|
||||||
}
|
}
|
||||||
// 保存到业务流程表
|
// 保存到业务流程表
|
||||||
saveBatch(esInitChangeList);
|
saveBatch(esInitChangeList);
|
||||||
|
// 保存选人信息
|
||||||
|
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, variables);
|
||||||
|
|
||||||
// 根据流程实例id更新流程总表
|
// 根据流程实例id更新流程总表
|
||||||
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
|
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
|
||||||
process.setCreateUserId(UserUtils.getUserId());
|
process.setCreateUserId(userId);
|
||||||
process.setPrcName(initChangeData.getCommonVO().getPrcName());
|
process.setPrcName(initChangeData.getCommonVO().getPrcName());
|
||||||
process.setPrcMes(initChangeData.getCommonVO().getPrcMes());
|
process.setPrcMes(initChangeData.getCommonVO().getPrcMes());
|
||||||
process.setDueTime(initChangeData.getCommonVO().getDueTime());
|
process.setDueTime(initChangeData.getCommonVO().getDueTime());
|
||||||
@@ -142,7 +153,7 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
|
|||||||
map.put("pass", pass);
|
map.put("pass", pass);
|
||||||
//更新审批表为完成,填充数据
|
//更新审批表为完成,填充数据
|
||||||
ProcessApprovalRecord approvalRecord = processApprovalRecordService.getToDoByTaskId(taskId);
|
ProcessApprovalRecord approvalRecord = processApprovalRecordService.getToDoByTaskId(taskId);
|
||||||
approvalRecord.setCommitFlag(pass? CommitFlagEnum.PASS.getValue() : CommitFlagEnum.REJECT.getValue());
|
approvalRecord.setCommitFlag(pass ? CommitFlagEnum.PASS.getValue() : CommitFlagEnum.REJECT.getValue());
|
||||||
approvalRecord.setCommitText(commonVO.getCommitText());
|
approvalRecord.setCommitText(commonVO.getCommitText());
|
||||||
approvalRecord.setCommitFile(commonVO.getCommitFile());
|
approvalRecord.setCommitFile(commonVO.getCommitFile());
|
||||||
approvalRecord.setFinishFlag(FinishFlagEnum.COMPLETE.getValue());
|
approvalRecord.setFinishFlag(FinishFlagEnum.COMPLETE.getValue());
|
||||||
@@ -153,21 +164,26 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void saveToDraft(String taskId, List<ProcessEsInitChange> esInitChange) {
|
public void saveToDraft(InitChangeDataVO initChangeData) {
|
||||||
// saveOrUpdateBatch(esInitChange);
|
CommonVO commonVO = initChangeData.getCommonVO();
|
||||||
// // 先删后增
|
String taskId = commonVO.getTaskId();
|
||||||
// LambdaUpdateWrapper<ProcessDraft> draftWrapper = new LambdaUpdateWrapper<>();
|
List<ProcessEsInitChange> esInitChange = initChangeData.getDataList();
|
||||||
// draftWrapper.in(ProcessDraft::getBusinessId, esInitChange.stream().map(ProcessEsInitChange::getId).collect(Collectors.toList()));
|
saveOrUpdateBatch(esInitChange);
|
||||||
// processDraftService.remove(draftWrapper);
|
// 先删后增
|
||||||
// List<ProcessDraft> draftList = new ArrayList<>();
|
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
|
||||||
// for (ProcessEsInitChange esInitChangeItem : esInitChange) {
|
LambdaUpdateWrapper<ProcessDraft> draftWrapper = new LambdaUpdateWrapper<>();
|
||||||
// ProcessDraft draft = new ProcessDraft();
|
draftWrapper.in(ProcessDraft::getProjectId, esInitChange.stream().map(ProcessEsInitChange::getId).collect(Collectors.toList()));
|
||||||
// draft.setDraftId(UUID.randomUUID().toString());
|
processDraftService.remove(draftWrapper);
|
||||||
// draft.setBusinessId(esInitChangeItem.getId());
|
List<ProcessDraft> draftList = new ArrayList<>();
|
||||||
// draft.setProcessKey(ProcessType.ES_INIT_CHANGE.getProcessKey());
|
for (ProcessEsInitChange esInitChangeItem : esInitChange) {
|
||||||
// draftList.add(draft);
|
ProcessDraft draft = new ProcessDraft();
|
||||||
// }
|
draft.setProjectId(esInitChangeItem.getId());
|
||||||
// processDraftService.saveBatch(draftList);
|
draft.setProcessInstanceId(processInstanceId);
|
||||||
|
draft.setPrcName(commonVO.getPrcName());
|
||||||
|
draft.setPrcType(ProcessTypeEnum.B.getValue());
|
||||||
|
draftList.add(draft);
|
||||||
|
}
|
||||||
|
processDraftService.saveBatch(draftList);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, Object> setVariables(InitChangeDataVO initChangeData) {
|
public Map<String, Object> setVariables(InitChangeDataVO initChangeData) {
|
||||||
|
|||||||
Reference in New Issue
Block a user