feat(REQ-3300): 删除按钮

This commit is contained in:
chenwenjian 2025-02-10 16:43:12 +08:00
parent f1f77e2d24
commit 3a53fd28b1
6 changed files with 80 additions and 0 deletions

View File

@ -3,6 +3,7 @@ package cn.axzo.nanopart.visa.api.changerecord;
import cn.axzo.framework.domain.web.result.ApiPageResult;
import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.nanopart.visa.api.request.ChangeRecordButtonOperationReq;
import cn.axzo.nanopart.visa.api.request.ChangeRecordDeleteReq;
import cn.axzo.nanopart.visa.api.request.ChangeStatusRequest;
import cn.axzo.nanopart.visa.api.request.FetchVisaAllConfirmReq;
import cn.axzo.nanopart.visa.api.request.VisaChangeApproveCreateReq;
@ -140,4 +141,11 @@ public interface ChangeRecordApi {
@PostMapping("/api/visa/change/execute")
ApiResult<Void> executeChangeRecord(@Validated @RequestBody ChangeRecordButtonOperationReq req);
/**
* 变洽签删除按钮
*
* @return void
*/
@PostMapping("/api/visa/change/delete")
ApiResult<Void> delete(@Validated @RequestBody ChangeRecordDeleteReq req);
}

View File

@ -0,0 +1,32 @@
package cn.axzo.nanopart.visa.api.request;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
/**
* @author chenwenjian
* @version 1.0
* @date 2025/2/10 16:21
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ChangeRecordDeleteReq {
/**
* 变洽签证id
*/
@NotNull(message = "变洽签id 不能为空")
private Long visaId;
/**
* 操作人 personId
*/
@NotNull(message = "操作人 personId 不能为空")
private Long operatorPersonId;
}

View File

@ -191,6 +191,11 @@ public class VisaDetailByIdResponse {
*/
private VisaStatusEnum status;
/**
* 群组ID
*/
private Long imGroupId;
/**
* 最终审批ID
*/

View File

@ -6,6 +6,7 @@ import cn.axzo.framework.domain.web.result.PageData;
import cn.axzo.nanopart.visa.api.changerecord.ChangeRecordApi;
import cn.axzo.nanopart.visa.api.enums.VisaButtonTypeEnum;
import cn.axzo.nanopart.visa.api.request.ChangeRecordButtonOperationReq;
import cn.axzo.nanopart.visa.api.request.ChangeRecordDeleteReq;
import cn.axzo.nanopart.visa.api.request.ChangeStatusRequest;
import cn.axzo.nanopart.visa.api.request.FetchVisaAllConfirmReq;
import cn.axzo.nanopart.visa.api.request.VisaChangeApproveCreateReq;
@ -126,4 +127,10 @@ public class ChangeRecordController implements ChangeRecordApi {
changeRecordService.doExecute(req);
return ApiResult.ok();
}
@Override
public ApiResult<Void> delete(ChangeRecordDeleteReq req) {
changeRecordService.delete(req);
return ApiResult.ok();
}
}

View File

@ -3,6 +3,7 @@ package cn.axzo.nanopart.visa.server.service;
import cn.axzo.framework.domain.web.result.PageData;
import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum;
import cn.axzo.nanopart.visa.api.request.ChangeRecordButtonOperationReq;
import cn.axzo.nanopart.visa.api.request.ChangeRecordDeleteReq;
import cn.axzo.nanopart.visa.api.request.ChangeStatusRequest;
import cn.axzo.nanopart.visa.api.request.VisaChangeApproveCreateReq;
import cn.axzo.nanopart.visa.api.request.VisaChangeApproveOnlyReq;
@ -118,4 +119,7 @@ public interface ChangeRecordService extends IService<ChangeRecord> {
void reDecision(ChangeRecordButtonOperationReq req);
void doExecute(ChangeRecordButtonOperationReq req);
void delete(ChangeRecordDeleteReq req);
}

View File

@ -35,6 +35,7 @@ import cn.axzo.nanopart.visa.api.enums.VisaRelationVarTypeEnum;
import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum;
import cn.axzo.nanopart.visa.api.enums.VisaTypeEnum;
import cn.axzo.nanopart.visa.api.request.ChangeRecordButtonOperationReq;
import cn.axzo.nanopart.visa.api.request.ChangeRecordDeleteReq;
import cn.axzo.nanopart.visa.api.request.ChangeStatusRequest;
import cn.axzo.nanopart.visa.api.request.ImGroupOperationClearReq;
import cn.axzo.nanopart.visa.api.request.VisaChangeApproveCreateReq;
@ -388,6 +389,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
.changeContextAndDescriptionList(this.buildDesc(visaId)) //发生内容及说明
.status(visa.getStatus()) //状态TO_REPORT:待提报;DECIDING:决策中;EXECUTING:执行中;APPROVING:审批中;COMPLETED:已完成;FORBIDED:已废除;REPORT_FROM_APPROVE:审批到待提报;DECIDING_FROM_APPROVE:审批到决策中 EXECUTING
.attach(this.buildAttachUploadFile(visaId)) // 附件
.imGroupId(visa.getImGroupId()) // 群组ID
.approvalId(visa.getApprovalId()) //最终审批ID
.approvalStatus(visa.getApprovalStatus()) //最终审批状态
.build();
@ -1365,6 +1367,28 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
.build());
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(ChangeRecordDeleteReq req) {
ChangeRecord record = this.getById(req.getVisaId());
if (Objects.isNull(record)) {
log.info("no record id = {} to be deleted", req.getVisaId());
return;
}
// 删除主记录
lambdaUpdate()
.eq(ChangeRecord::getId, req.getVisaId())
.setSql("is_delete = id")
.set(ChangeRecord::getUpdateBy, req.getOperatorPersonId())
.update();
// 删除相关单位确认人变更说明附件关联单据等
changeRecordConfirmService.deleteByVisaId(req.getVisaId(),
Arrays.asList(VisaConfirmBizTypeEnum.CONFIRM, VisaConfirmBizTypeEnum.CREATE));
changeRecordRelationService.deleteByVisaId(req.getVisaId(),
Arrays.asList(VisaRelationFieldEnum.ATTACHMENT, VisaRelationFieldEnum.CONTENT_DESCRIPTION));
changeRecordBillService.deleteByVisaId(req.getVisaId());
}
/**
* 通过变更单id构建审批提交对象
*