feat(REQ-3300) - 增加审批结束后,回退单据状态的逻辑

This commit is contained in:
wangli 2025-02-06 23:49:04 +08:00
parent a8d01d2ca4
commit 9194506e2a
3 changed files with 19 additions and 5 deletions

View File

@ -24,9 +24,10 @@ public interface ChangeRecordRelationApi {
@PostMapping("/api/visa/relation/list")
ApiResult<List<VisaRelationResp>> listByVisaId(@Validated @RequestBody VisaRelationReq req) ;
@PostMapping("/api/visa/relation/add")
ApiResult<Boolean> relationAdd(@Validated @RequestBody ImGroupOperationReq req);
@PostMapping("/api/visa/relation/im/operation")
ApiResult<Boolean> saveImOperationParticipate(@Validated @RequestBody ImGroupOperationReq req);
@PostMapping("/api/visa/relation/im/tips")
ApiResult<ImGroupTipsResp> queryImGroupTips(@Validated @RequestBody ImGroupTipsQueryReq req);
}

View File

@ -37,7 +37,7 @@ public class ChangeRecordRelationController implements ChangeRecordRelationApi {
}
@Override
public ApiResult<Boolean> relationAdd(ImGroupOperationReq req) {
public ApiResult<Boolean> saveImOperationParticipate(ImGroupOperationReq req) {
return ApiResult.ok(changeRecordRelationService.saveImOperationParticipate(req));
}

View File

@ -1,6 +1,8 @@
package cn.axzo.nanopart.visa.server.mq.listener.workflow.process;
import cn.axzo.framework.rocketmq.EventProducer;
import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum;
import cn.axzo.nanopart.visa.api.request.ChangeStatusRequest;
import cn.axzo.nanopart.visa.server.domain.ChangeRecord;
import cn.axzo.nanopart.visa.server.domain.ChangeRecordLog;
import cn.axzo.nanopart.visa.server.domain.ChangeRecordRelation;
@ -16,6 +18,7 @@ import cn.axzo.workflow.starter.handler.ProcessInstanceEventHandler;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.Objects;
import static cn.axzo.nanopart.visa.api.constant.VisaConstant.WORKFLOW_VAR_VISA_TYPE_KEY;
import static cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum.APPROVE_COMPLETED;
@ -133,8 +136,9 @@ public class ProcessInstanceAllEventHandler extends BasicLogSupport implements P
private void updateChangeRecordApprovalStatus(ProcessInstanceDTO dto, BpmnProcessInstanceResultEnum resultEnum) {
// 更新主表审批信息
Long visaId = Long.valueOf(dto.getBusinessKey());
changeRecordService.lambdaQuery()
.eq(ChangeRecord::getId, Long.valueOf(dto.getBusinessKey()))
.eq(ChangeRecord::getId, visaId)
.eq(ChangeRecord::getApprovalId, dto.getProcessInstanceId())
.eq(ChangeRecord::getIsDelete, 0)
.oneOpt()
@ -146,7 +150,7 @@ public class ProcessInstanceAllEventHandler extends BasicLogSupport implements P
// 更新关联表审批信息
changeRecordRelationService.lambdaQuery()
.eq(ChangeRecordRelation::getVisaId, Long.valueOf(dto.getBusinessKey()))
.eq(ChangeRecordRelation::getVisaId, visaId)
.eq(ChangeRecordRelation::getVarName, PROCESS_INSTANCE.getCode())
.eq(ChangeRecordRelation::getContent, dto.getProcessInstanceId())
.oneOpt()
@ -155,5 +159,14 @@ public class ProcessInstanceAllEventHandler extends BasicLogSupport implements P
changeRecordRelationService.updateById(changeRecordRelation);
});
if (Objects.equals(resultEnum, BpmnProcessInstanceResultEnum.APPROVED)) {
return;
}
// 回退到待提报或决策中
ChangeRecord visa = changeRecordService.getById(visaId);
changeRecordService.changeStatus(ChangeStatusRequest.builder()
.visaId(visaId)
.updateStatus(Objects.isNull(visa.getImGroupId()) ? VisaStatusEnum.REPORT_FROM_APPROVE : VisaStatusEnum.DECIDING_FROM_APPROVE)
.build());
}
}