feat(REQ-3300) - 调整创建审批的逻辑,以及审批完成后的一些异常处理
This commit is contained in:
parent
d21a2d3bd2
commit
ff35b74ef0
@ -29,7 +29,7 @@ public abstract class BasicLogSupport {
|
|||||||
return buildLogUserInfo(oneUserInfo);
|
return buildLogUserInfo(oneUserInfo);
|
||||||
}
|
}
|
||||||
protected String buildLogUserInfo(OrgNodeUserBriefInfoResp user) {
|
protected String buildLogUserInfo(OrgNodeUserBriefInfoResp user) {
|
||||||
String userInfo = "";
|
String userInfo = "";
|
||||||
if (Objects.nonNull(user)) {
|
if (Objects.nonNull(user)) {
|
||||||
userInfo = user.getRealName() + "(" + user.getJob().getName() + "-" + user.getOrganizationalUnitName() + ")";
|
userInfo = user.getRealName() + "(" + user.getJob().getName() + "-" + user.getOrganizationalUnitName() + ")";
|
||||||
}
|
}
|
||||||
@ -37,10 +37,15 @@ public abstract class BasicLogSupport {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected OrgNodeUserBriefInfoResp getOneUserInfo(BpmnTaskDelegateAssigner assigner) {
|
protected OrgNodeUserBriefInfoResp getOneUserInfo(BpmnTaskDelegateAssigner assigner) {
|
||||||
|
if (Objects.isNull(assigner)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
List<OrgNodeUserBriefInfoResp> users = visaOrganizationalNodeUserGateway.listOrgNodeUsers(OrgNodeUserBriefInfoListReq.builder()
|
List<OrgNodeUserBriefInfoResp> users = visaOrganizationalNodeUserGateway.listOrgNodeUsers(OrgNodeUserBriefInfoListReq.builder()
|
||||||
.workspaceId(Long.valueOf(assigner.getTenantId()))
|
.workspaceId(Long.valueOf(assigner.getTenantId()))
|
||||||
.ouId(Long.valueOf(assigner.getOuId()))
|
.ouId(Long.valueOf(assigner.getOuId()))
|
||||||
.personIds(Lists.newArrayList(Long.valueOf(assigner.getPersonId())))
|
.personIds(Lists.newArrayList(Long.valueOf(assigner.getPersonId())))
|
||||||
|
.needUnit(true)
|
||||||
|
.needJob(true)
|
||||||
.build());
|
.build());
|
||||||
return CollectionUtils.isEmpty(users) ? null : users.get(0);
|
return CollectionUtils.isEmpty(users) ? null : users.get(0);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -173,11 +173,15 @@ public class ProcessInstanceAllEventHandler extends BasicLogSupport implements P
|
|||||||
changeRecordRelationService.updateById(changeRecordRelation);
|
changeRecordRelationService.updateById(changeRecordRelation);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
ChangeRecord visa = changeRecordService.getById(visaId);
|
||||||
if (Objects.equals(resultEnum, BpmnProcessInstanceResultEnum.APPROVED)) {
|
if (Objects.equals(resultEnum, BpmnProcessInstanceResultEnum.APPROVED)) {
|
||||||
|
changeRecordService.changeStatus(ChangeStatusRequest.builder()
|
||||||
|
.visaId(visaId)
|
||||||
|
.updateStatus(VisaStatusEnum.COMPLETED)
|
||||||
|
.build());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 回退到待提报或决策中
|
// 回退到待提报或决策中
|
||||||
ChangeRecord visa = changeRecordService.getById(visaId);
|
|
||||||
changeRecordService.changeStatus(ChangeStatusRequest.builder()
|
changeRecordService.changeStatus(ChangeStatusRequest.builder()
|
||||||
.visaId(visaId)
|
.visaId(visaId)
|
||||||
.updateStatus(Objects.isNull(visa.getImGroupId()) ? VisaStatusEnum.REPORT_FROM_APPROVE : VisaStatusEnum.DECIDING_FROM_APPROVE)
|
.updateStatus(Objects.isNull(visa.getImGroupId()) ? VisaStatusEnum.REPORT_FROM_APPROVE : VisaStatusEnum.DECIDING_FROM_APPROVE)
|
||||||
|
|||||||
@ -10,6 +10,8 @@ import cn.axzo.workflow.common.model.response.mq.ProcessTaskDTO;
|
|||||||
import cn.axzo.workflow.starter.handler.ProcessTaskEventHandler;
|
import cn.axzo.workflow.starter.handler.ProcessTaskEventHandler;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
import static cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum.APPROVED_AGRESS;
|
import static cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum.APPROVED_AGRESS;
|
||||||
import static cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum.TRANSMIT_APPROVE;
|
import static cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum.TRANSMIT_APPROVE;
|
||||||
|
|
||||||
@ -53,8 +55,8 @@ public class ProcessTaskAllEventHandler extends BasicLogSupport implements Proce
|
|||||||
ChangeRecordLog log = ChangeRecordLog.builder()
|
ChangeRecordLog log = ChangeRecordLog.builder()
|
||||||
.visaId(Long.valueOf(dto.getBusinessKey()))
|
.visaId(Long.valueOf(dto.getBusinessKey()))
|
||||||
.action(dto.getType().getTag())
|
.action(dto.getType().getTag())
|
||||||
.title(String.format(APPROVED_AGRESS.getTitle(), user.getRealName()))
|
.title(String.format(APPROVED_AGRESS.getTitle(), Objects.isNull(user) ? "" : user.getRealName()))
|
||||||
.content(String.format(APPROVED_AGRESS.getContent(), buildLogUserInfo(user)))
|
.content(String.format(APPROVED_AGRESS.getContent(), Objects.isNull(user) ? "系统自动通过" : buildLogUserInfo(user)))
|
||||||
.build();
|
.build();
|
||||||
eventProducer.send(VisaChangeLogPayload.form(log));
|
eventProducer.send(VisaChangeLogPayload.form(log));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -90,7 +90,6 @@ import cn.axzo.nanopart.visa.server.utils.Constants;
|
|||||||
import cn.axzo.orggateway.api.nodeuser.dto.OrgNodeUserDTO;
|
import cn.axzo.orggateway.api.nodeuser.dto.OrgNodeUserDTO;
|
||||||
import cn.axzo.orggateway.api.nodeuser.req.ListOrgNodeUserReq;
|
import cn.axzo.orggateway.api.nodeuser.req.ListOrgNodeUserReq;
|
||||||
import cn.axzo.orgmanax.dto.nodeuser.req.ListNodeUserReq;
|
import cn.axzo.orgmanax.dto.nodeuser.req.ListNodeUserReq;
|
||||||
import cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum;
|
|
||||||
import cn.axzo.workflow.common.model.dto.CooperationOrgDTO;
|
import cn.axzo.workflow.common.model.dto.CooperationOrgDTO;
|
||||||
import cn.axzo.workflow.common.model.dto.UploadFieldDTO;
|
import cn.axzo.workflow.common.model.dto.UploadFieldDTO;
|
||||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceAbortDTO;
|
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceAbortDTO;
|
||||||
@ -154,6 +153,7 @@ import static cn.axzo.nanopart.visa.api.constant.VisaConstant.MSG_CENTER_APP_COD
|
|||||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.WORKFLOW_PENDING_TOPIC;
|
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.WORKFLOW_PENDING_TOPIC;
|
||||||
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.WORKFLOW_VAR_VISA_TYPE_KEY;
|
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.WORKFLOW_VAR_VISA_TYPE_KEY;
|
||||||
import static cn.axzo.nanopart.visa.server.utils.Constants.DATE_FORMAT;
|
import static cn.axzo.nanopart.visa.server.utils.Constants.DATE_FORMAT;
|
||||||
|
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.PROCESSING;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author xudawei
|
* @author xudawei
|
||||||
@ -776,7 +776,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
|||||||
ChangeRecord changeRecord = new ChangeRecord();
|
ChangeRecord changeRecord = new ChangeRecord();
|
||||||
changeRecord.setId(visaId);
|
changeRecord.setId(visaId);
|
||||||
changeRecord.setApprovalId(processInstanceId);
|
changeRecord.setApprovalId(processInstanceId);
|
||||||
changeRecord.setApprovalStatus(BpmnProcessInstanceResultEnum.PROCESSING.getStatus());
|
changeRecord.setApprovalStatus(PROCESSING.getStatus());
|
||||||
updateById(changeRecord);
|
updateById(changeRecord);
|
||||||
|
|
||||||
// 设置关联表的审批信息
|
// 设置关联表的审批信息
|
||||||
@ -785,7 +785,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
|||||||
processRelation.setVarName(VisaRelationFieldEnum.PROCESS_INSTANCE.getCode());
|
processRelation.setVarName(VisaRelationFieldEnum.PROCESS_INSTANCE.getCode());
|
||||||
processRelation.setVarType(VisaRelationVarTypeEnum.STRING.getType());
|
processRelation.setVarType(VisaRelationVarTypeEnum.STRING.getType());
|
||||||
processRelation.setContent(processInstanceId);
|
processRelation.setContent(processInstanceId);
|
||||||
processRelation.setContentExt(BpmnProcessInstanceResultEnum.PROCESSING.getStatus());
|
processRelation.setContentExt(PROCESSING.getStatus());
|
||||||
changeRecordRelationService.save(processRelation);
|
changeRecordRelationService.save(processRelation);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1386,6 +1386,10 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
|||||||
req.setOperatorWorkspaceId(visa.getRelationWorkspaceId());
|
req.setOperatorWorkspaceId(visa.getRelationWorkspaceId());
|
||||||
validOperationPermission(req.getVisaId(), req.getOperatorPersonId(), req.getOperatorOuId(), req.getOperatorWorkspaceId());
|
validOperationPermission(req.getVisaId(), req.getOperatorPersonId(), req.getOperatorOuId(), req.getOperatorWorkspaceId());
|
||||||
|
|
||||||
|
AssertUtil.isTrue(!StringUtils.hasText(visa.getApprovalId())
|
||||||
|
|| (StringUtils.hasText(visa.getApprovalId()) && !Objects.equals(VisaStatusEnum.APPROVING.name(), visa.getApprovalStatus())),
|
||||||
|
"当前单据审批中,不允许操作");
|
||||||
|
|
||||||
// 组装 REQ 参数
|
// 组装 REQ 参数
|
||||||
VisaChangeApproveCreateReq createReq = buildVisaChangeApproveCreateReqByVisaId(req.getVisaId());
|
VisaChangeApproveCreateReq createReq = buildVisaChangeApproveCreateReqByVisaId(req.getVisaId());
|
||||||
AssertUtil.notNull(createReq, "未找到变洽签单据");
|
AssertUtil.notNull(createReq, "未找到变洽签单据");
|
||||||
@ -1398,10 +1402,6 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
|||||||
createReq.setOperatorOuId(req.getOperatorOuId());
|
createReq.setOperatorOuId(req.getOperatorOuId());
|
||||||
createReq.setOperatorPersonId(req.getOperatorPersonId());
|
createReq.setOperatorPersonId(req.getOperatorPersonId());
|
||||||
createReq.setRelationWorkspaceId(req.getOperatorWorkspaceId());
|
createReq.setRelationWorkspaceId(req.getOperatorWorkspaceId());
|
||||||
String processInstanceId = createProcessInstance(createReq, req.getVisaId());
|
|
||||||
|
|
||||||
// 更新主表中的审批字段,记录变量表的审批的信息
|
|
||||||
updateApprovalInfo(visa.getId(), processInstanceId);
|
|
||||||
|
|
||||||
// 更新主表状态
|
// 更新主表状态
|
||||||
changeStatus(ChangeStatusRequest.builder()
|
changeStatus(ChangeStatusRequest.builder()
|
||||||
@ -1411,6 +1411,10 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
|||||||
.ouId(req.getOperatorOuId())
|
.ouId(req.getOperatorOuId())
|
||||||
.workspaceId(req.getOperatorWorkspaceId())
|
.workspaceId(req.getOperatorWorkspaceId())
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
|
String processInstanceId = createProcessInstance(createReq, req.getVisaId());
|
||||||
|
// 更新主表中的审批字段,记录变量表的审批的信息
|
||||||
|
updateApprovalInfo(visa.getId(), processInstanceId);
|
||||||
return req.getVisaId();
|
return req.getVisaId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user