Commit 2dad400e authored by suhuiguang's avatar suhuiguang

feat(检验检测):计划排期

1.增加容错接口
parent 388ba502
......@@ -286,4 +286,16 @@ public class JyjcInspectionApplication extends BaseEntity {
*/
@TableField(value = "inspect_app_url")
private String inspectAppUrl;
/**
* 接收人
*/
@TableField(value = "receive_user_id")
private String receiveUserId;
/**
* 接收人名称
*/
@TableField(value = "receive_user_name")
private String receiveUserName;
}
......@@ -214,6 +214,13 @@ public class JyjcInspectionApplicationModel extends BaseModel {
@ApiModelProperty(value = "报检申请表文件路径")
private String inspectAppUrl;
@ApiModelProperty(value = "接收人")
private String receiveUserId;
@ApiModelProperty(value = "接收人名称")
private String receiveUserName;
public String getProcessInstanceId() {
return this.instanceId != null ? this.instanceId : this.processInstanceId;
}
......
......@@ -75,4 +75,11 @@ public class InspectionPlanController extends BaseController {
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/workBench/create")
@ApiOperation(httpMethod = "PUT", value = "人工下发计划排期待办", notes = "人工下发计划排期待办")
public ResponseModel<Boolean> workBenchCreate(@RequestParam String applicationSeq) {
return ResponseHelper.buildResponse(inspectionPlanService.workBenchCreate(applicationSeq));
}
}
......@@ -56,6 +56,39 @@ public class InspectionPlanCommonServiceImpl {
private final static String msgTpl = "%s申请单号:%s,进行%s";
void createdTaskModel(JyjcCmTask model, JyjcInspectionApplication application) {
TaskModelDto dto = new TaskModelDto();
TaskMessageDto ta = new TaskMessageDto();
ta.setInstanceId(model.getInstanceId());
ta.setStatus(model.getStatus());
ta.setPromoter(model.getPromoter());
ta.setSequenceNbr(Long.parseLong(model.getSSeq()));
ta.setProcessInstanceId(model.getInstanceId());
ta.setProcessKey(model.getProcessKey());
ta.setNextTaskId(model.getNextTaskId());
ta.setBizType(model.getSType());
dto.setModel(ta);
dto.setFlowCreateDate(new Date());
dto.setTaskName(model.getStatus());
dto.setFlowCode(model.getNextTaskId());
dto.setTaskContent(this.buildTaskContent(model.getNextTaskCode(), application));
dto.setTaskCode(model.getNextTaskCode());
dto.setTaskType(BusinessTypeEnum.INSPECTION_PLAN.getCode());
dto.setTaskTypeLabel(BusinessTypeEnum.INSPECTION_PLAN.getName());
dto.setRelationId(model.getInstanceId());
dto.setExecuteUserIds(model.getNextExecuteUserIds());
dto.setTaskStatus(commonService.getDictionaryCodeByName(model.getStatus()));
dto.setTaskStatusLabel(model.getStatus());
dto.setFlowStatus(dto.getTaskStatus());
dto.setFlowStatusLabel(model.getStatus());
dto.setStartUserId(application.getReceiveUserId());
dto.setStartUser(application.getReceiveUserName());
dto.setStartUserCompanyName(application.getInspectionUnitName());
dto.setStartDate(new Date());
dto.setNextExecuteUser(model.getNextExecuteUserIds());
dto.setPageType("edit");
taskModelService.buildTaskModel(Collections.singletonList(dto));
}
void createdTaskModel(JyjcCmTask model, ReginParams reginParams, JyjcInspectionApplication application) {
TaskModelDto dto = new TaskModelDto();
......
......@@ -66,6 +66,8 @@ public class InspectionPlanServiceImpl extends InspectionPlanCommonServiceImpl
private final JyjcCmTaskServiceImpl cmTaskService;
private final WorkBenchTaskCreateServiceImpl workBenchTaskCreateService;
private final static String msgTpl = "%s申请单号:%s,进行%s";
/**
......@@ -178,7 +180,7 @@ public class InspectionPlanServiceImpl extends InspectionPlanCommonServiceImpl
dto.setNextExecuteUserCompanyCode(application.getInspectionUnitCode());
map.put("approvalStatus", operate);
// 任务接收人
map.put("assignee", this.getAssigneeUserId(planModel));
map.put("nextTaskAssignee", this.getAssigneeUserId(planModel));
dto.setResultCode("approvalStatus");
dto.setVariable(map);// 1-驳回 0-通过
ProcessTaskDTO complete = cmWorkflowService.completeOrReject(nextTaskId, dto, operate);
......@@ -318,9 +320,25 @@ public class InspectionPlanServiceImpl extends InspectionPlanCommonServiceImpl
}
private String getDictNameByCode(String code) {
DataDictionary dataDictionary = dataDictionaryService.getByCode(code, "JGGZZZ");
return dataDictionary != null ? dataDictionary.getName() : "";
public Boolean workBenchCreate(String applicationSeq) {
JyjcCmTask jyjcCmTask = cmTaskService.getOneBySSeq(applicationSeq);
if(jyjcCmTask != null && jyjcCmTask.getInstanceId() != null) {
taskModelService.deleteTaskModel(jyjcCmTask.getInstanceId());
cmTaskService.removeById(jyjcCmTask.getSequenceNbr());
}
JyjcInspectionApplication application = inspectionApplicationService.getById(applicationSeq);
if(application.getStatus().equals(String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode()))){
log.info("人工创建计划排期待办开始:「{}」", applicationSeq);
LambdaUpdateWrapper<JyjcInspectionApplication> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(BaseEntity::getSequenceNbr, applicationSeq);
updateWrapper.set(JyjcInspectionApplication::getInspectionChargePerson, null);
updateWrapper.set(JyjcInspectionApplication::getPlanData, null);
inspectionApplicationService.update(updateWrapper);
workBenchTaskCreateService.createOneTask(application);
log.info("人工进行创建计划排期待办成功:「{}」", applicationSeq);
} else {
log.warn("人工进行创建计划排期待办失败,非法的计划状态:「{}」", application.getStatus());
}
return true;
}
}
......@@ -818,6 +818,8 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
jyjcInspectionApplication.setPromoter("");
jyjcInspectionApplication.setNextExecuteIds("");
jyjcInspectionApplication.setNextTaskId("");
jyjcInspectionApplication.setReceiveUserId(RequestContext.getExeUserId());
jyjcInspectionApplication.setReceiveUserName(reginParams.getUserModel().getRealName());
this.updateById(jyjcInspectionApplication);
BeanUtils.copyProperties(jyjcInspectionApplication, model);
TaskV2Model taskV2Model = updateTaskModel(model);
......
......@@ -51,6 +51,18 @@ public class WorkBenchTaskCreateServiceImpl extends InspectionPlanCommonServiceI
commonService.saveExecuteFlowData2Redis(cmTask.getInstanceId(), this.buildInstanceRuntimeData(cmTask));
}
public void createOneTask(JyjcInspectionApplication application) {
log.info("开始创建工作台待办:{}", application);
// 启动流程
List<WorkflowResultDto> workflowResultDtos = startProcess(application);
// 保存数据
JyjcCmTask cmTask = saveJyjcCmTask(application, workflowResultDtos);
// 创建待办
createdTaskModel(cmTask, application);
// 缓存执行节点信息
commonService.saveExecuteFlowData2Redis(cmTask.getInstanceId(), this.buildInstanceRuntimeData(cmTask));
}
private List<WorkflowResultDto> startProcess(JyjcInspectionApplication application) {
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
......@@ -61,7 +73,7 @@ public class WorkBenchTaskCreateServiceImpl extends InspectionPlanCommonServiceI
dto.setCompleteFirstTask(true);
HashMap<String, Object> variables = new HashMap<>();
// 指定下一节点执行人,谁受理谁执行
variables.put("nextAssignee", RequestContext.getExeUserId());
variables.put("nextTaskAssignee", RequestContext.getExeUserId());
dto.setVariables(variables);
list.add(dto);
actWorkflowBatchDTO.setProcess(list);
......
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