Commit 2523ee2a authored by 王果's avatar 王果

下节点单位下无审核人异常信息处理

parent a60e9f7d
......@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.jg.biz.service.ICmWorkflowService;
import com.yeejoin.amos.component.feign.config.InnerInvokException;
import com.yeejoin.amos.component.feign.utils.FeignUtil;
import com.yeejoin.amos.feign.workflow.Workflow;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO;
......@@ -25,7 +26,13 @@ public class CmWorkflowServiceImpl implements ICmWorkflowService {
List<ProcessTaskDTO> processTasks;
try {
log.info("开始请求工作流启动接口:/start/batch,请求参数:{}", JSONObject.toJSONString(params));
processTasks = FeignUtil.remoteCall(() -> Workflow.taskV2Client.startForBatch(params));
processTasks = Workflow.taskV2Client.startForBatch(params).getResult();
} catch (InnerInvokException e) {
//拦截无审核人异常信息
String devMessage = e.getDevMessage();
devMessage = devMessage.contains(";") ? devMessage.split(";")[0] : devMessage;
log.error(devMessage);
throw new RuntimeException(devMessage);
} catch (Exception e) {
log.error("调用工作流批量启动失败", e);
throw new RuntimeException("调用工作流批量启动失败");
......@@ -38,7 +45,13 @@ public class CmWorkflowServiceImpl implements ICmWorkflowService {
ProcessTaskDTO processTaskDTO;
try {
log.info("开始请求工作流完成任务接口:/complete/standard/{taskId},请求参数:{},{}", taskId, JSONObject.toJSONString(data));
processTaskDTO = FeignUtil.remoteCall(() -> Workflow.taskV2Client.completeByTaskFroStandard(taskId, data));
processTaskDTO = Workflow.taskV2Client.completeByTaskFroStandard(taskId, data).getResult();
} catch (InnerInvokException e) {
//拦截无审核人异常信息
String devMessage = e.getDevMessage();
devMessage = devMessage.contains(";") ? devMessage.split(";")[0] : devMessage;
log.error(devMessage);
throw new RuntimeException(devMessage);
} catch (Exception e) {
log.error("调用工作流完成任务接口失败", e);
throw new RuntimeException("调用工作流完成任务接口失败");
......
......@@ -182,7 +182,8 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
// 更新下一步执行人、创建待办
updateExecuteIds(instanceId, id, operate, complete);
} catch (Exception e) {
e.printStackTrace();
log.error("提交失败:{}", e);
throw new BadRequest(e.getMessage());
}
}
......@@ -302,7 +303,7 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
* 新增维保合同
*/
@Transactional(rollbackFor = Exception.class)
public Boolean saveOrSubmit(String submit, Map<String, Object> map, ReginParams reginParams) {
public List<JgMaintenanceContract> saveOrSubmit(String submit, Map<String, Object> map, ReginParams reginParams) {
JgMaintenanceContractDto contractDto = JSON.parseObject(JSON.toJSONString(map), JgMaintenanceContractDto.class);
List<Map<String, Object>> equipmentLists = (List<Map<String, Object>>) map.get("equipmentLists");
CompanyBo company = reginParams.getCompany();
......@@ -312,7 +313,7 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
ResponseModel<List<String>> listResponseModel = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.WBBA.getCode(), 1);
if (!ObjectUtils.isEmpty(listResponseModel) && listResponseModel.getStatus() != HttpStatus.OK.value()) {
log.error("告知单获取失败");
return false;
return null;
}
String wbApplyNo = listResponseModel.getResult().get(0);
contractDto.setApplyNo(wbApplyNo);
......@@ -373,39 +374,34 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
//新增提交
if (StringUtils.isEmpty(contract.getInstanceId())) {
//没有InstanceId需要发起流程
try {
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(WB_PROCESS_DEFINITION_KEY);
dto.setBusinessKey(contract.getApplyNo());
dto.setCompleteFirstTask(true);
//下一节点执行人单位(下节点接收机构code)
dto.setNextExecuteUserCompanyCode(contract.getMaintenanceUnitCode());
list.add(dto);
actWorkflowBatchDTO.setProcess(list);
List<ProcessTaskDTO> processTasks = workflowService.startBatch(actWorkflowBatchDTO);
String instanceId = processTasks.get(0).getProcessInstance().getId();
String nextTaskId = processTasks.get(0).getNextTask().get(0).getId();
String taskName = processTasks.get(0).getNextTask().get(0).getName();
this.buildRoleList(processTasks, roleListNext, roleListAll);
List<WorkflowResultDto> workflowResultDtos = commonService.buildWorkFlowInfo(processTasks);
String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
contract.setInstanceStatus(String.join(",", roleListAll));
contract.setInstanceId(instanceId);
contract.setNextExecuteIds(String.join(",", roleListNext));
contract.setNextTaskId(nextTaskId);
contract.setStatus(String.valueOf(WorkFlowStatusEnum.MAIN_RECEIVE.getPass()));
contract.setNextExecuteUserIds(nextUserIds);
commonService.deleteTaskModel(contract.getSequenceNbr() + "");
// 创建待办
JgMaintenanceContract bean = new JgMaintenanceContract();
BeanUtil.copyProperties(contract, bean);
createTaskModel(bean, taskName, "1", nextUserIds);
} catch (Exception e) {
log.error("提交失败:{}", e);
throw new BadRequest("提交失败" + e.getMessage());
}
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(WB_PROCESS_DEFINITION_KEY);
dto.setBusinessKey(contract.getApplyNo());
dto.setCompleteFirstTask(true);
//下一节点执行人单位(下节点接收机构code)
dto.setNextExecuteUserCompanyCode(contract.getMaintenanceUnitCode());
list.add(dto);
actWorkflowBatchDTO.setProcess(list);
List<ProcessTaskDTO> processTasks = workflowService.startBatch(actWorkflowBatchDTO);
String instanceId = processTasks.get(0).getProcessInstance().getId();
String nextTaskId = processTasks.get(0).getNextTask().get(0).getId();
String taskName = processTasks.get(0).getNextTask().get(0).getName();
this.buildRoleList(processTasks, roleListNext, roleListAll);
List<WorkflowResultDto> workflowResultDtos = commonService.buildWorkFlowInfo(processTasks);
String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
contract.setInstanceStatus(String.join(",", roleListAll));
contract.setInstanceId(instanceId);
contract.setNextExecuteIds(String.join(",", roleListNext));
contract.setNextTaskId(nextTaskId);
contract.setStatus(String.valueOf(WorkFlowStatusEnum.MAIN_RECEIVE.getPass()));
contract.setNextExecuteUserIds(nextUserIds);
commonService.deleteTaskModel(contract.getSequenceNbr() + "");
// 创建待办
JgMaintenanceContract bean = new JgMaintenanceContract();
BeanUtil.copyProperties(contract, bean);
createTaskModel(bean, taskName, "1", nextUserIds);
} else {
// 有InstanceId,执行一步
ProcessTaskDTO processTaskDTO = this.submit("0", contract);
......@@ -440,7 +436,7 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
commonService.buildTaskModel(modelDtos);
}
updateById(contract);
return true;
return Collections.singletonList(contract);
}
public ProcessTaskDTO submit(String op, JgMaintenanceContract contract) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment