Merge remote-tracking branch 'origin/feature/REQ-3581' into feature/REQ-3581

This commit is contained in:
yanglin 2025-02-21 10:35:15 +08:00
commit 1a484c2c2d
7 changed files with 125 additions and 1 deletions

View File

@ -7,6 +7,7 @@ import cn.axzo.nanopart.visa.api.request.ChangeStatusRequest;
import cn.axzo.nanopart.visa.api.request.CheckVisaWithVisaIdReq;
import cn.axzo.nanopart.visa.api.request.FetchVisaAllConfirmReq;
import cn.axzo.nanopart.visa.api.request.GetBillIfRelatedReq;
import cn.axzo.nanopart.visa.api.request.UpdateVisaChangeReq;
import cn.axzo.nanopart.visa.api.request.VisaChangeApproveCreateReq;
import cn.axzo.nanopart.visa.api.request.VisaChangeApproveOnlyReq;
import cn.axzo.nanopart.visa.api.request.VisaChangeDiscussCreateReq;
@ -174,4 +175,12 @@ public interface ChangeRecordApi {
@PostMapping("/api/visa/change/list")
ApiPageResult<VisaSearchResp> list(@RequestBody @Validated VisaSearchReq req);
/**
* 更新变更签证记录
* @param req
* @return
*/
@PostMapping("/api/visa/change/update")
ApiResult<Void> update(@RequestBody @Validated UpdateVisaChangeReq req);
}

View File

@ -0,0 +1,48 @@
package cn.axzo.nanopart.visa.api.request;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UpdateVisaChangeReq {
/**
* 变更签证id
*/
@NotNull(message = "变更签证id不能为空")
private Long visaId;
/**
* 变更签证更新操作人personId
*/
@NotNull(message = "操作人不能为空")
private Long operatorId;
/**
* 变更签证用印操作
*/
private VisaStampAction visaStampAction;
/**
* 更新场景用于记录日志
*/
private String scene;
@Getter
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public enum VisaStampAction {
COMPLETE("完成用印");
private String desc;
}
}

View File

@ -0,0 +1,17 @@
package cn.axzo.nanopart.visa.server.config;
import cn.axzo.foundation.result.IResultCode;
import cn.axzo.nanopart.visa.api.enums.VisaStampStatusEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum BizResultCode implements IResultCode {
CHANGE_RECORD_NOT_FOUND("100001", "变更签证记录不存在"),
VISA_STAMP_STATUS_ERROR("100002", "变更签证记录用印状态错误");
private String errorCode;
private String errorMessage;
}

View File

@ -10,6 +10,7 @@ import cn.axzo.nanopart.visa.api.request.ChangeStatusRequest;
import cn.axzo.nanopart.visa.api.request.CheckVisaWithVisaIdReq;
import cn.axzo.nanopart.visa.api.request.FetchVisaAllConfirmReq;
import cn.axzo.nanopart.visa.api.request.GetBillIfRelatedReq;
import cn.axzo.nanopart.visa.api.request.UpdateVisaChangeReq;
import cn.axzo.nanopart.visa.api.request.VisaChangeApproveCreateReq;
import cn.axzo.nanopart.visa.api.request.VisaChangeApproveOnlyReq;
import cn.axzo.nanopart.visa.api.request.VisaChangeDiscussCreateReq;
@ -181,4 +182,10 @@ public class ChangeRecordController implements ChangeRecordApi {
return ApiResult.ok(changeRecordBillService.getBillIfRelated(req));
}
@Override
public ApiResult<Void> update(UpdateVisaChangeReq req) {
changeRecordService.update(req);
return ApiResult.ok();
}
}

View File

@ -3,6 +3,8 @@ package cn.axzo.nanopart.visa.server.domain;
import cn.axzo.nanopart.visa.api.enums.VisaStampStatusEnum;
import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum;
import cn.axzo.nanopart.visa.api.enums.VisaTypeEnum;
import cn.axzo.nanopart.visa.api.request.UpdateVisaChangeReq;
import cn.axzo.nanopart.visa.server.config.BizResultCode;
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@ -10,6 +12,8 @@ import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.google.common.collect.HashBasedTable;
import com.google.common.collect.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -19,6 +23,7 @@ import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.util.Date;
import java.util.Optional;
/**
* @author xudawei
@ -162,4 +167,13 @@ public class ChangeRecord extends BaseEntity<ChangeRecord> {
@TableField(value = "update_by")
private Long updateBy;
private static final Table<VisaStampStatusEnum, UpdateVisaChangeReq.VisaStampAction, VisaStampStatusEnum> VISA_STAMP_STATUS_ACTION = HashBasedTable.create();
static {
VISA_STAMP_STATUS_ACTION.put(VisaStampStatusEnum.WITH_PRINT, UpdateVisaChangeReq.VisaStampAction.COMPLETE, VisaStampStatusEnum.USED_PRINTS);
}
public VisaStampStatusEnum nextStampStatus(UpdateVisaChangeReq.VisaStampAction action) {
return Optional.ofNullable(VISA_STAMP_STATUS_ACTION.get(this.getStampStatus(), action)).orElseThrow(BizResultCode.VISA_STAMP_STATUS_ERROR::toException);
}
}

View File

@ -5,6 +5,7 @@ import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum;
import cn.axzo.nanopart.visa.api.request.ChangeRecordButtonOperationReq;
import cn.axzo.nanopart.visa.api.request.ChangeStatusRequest;
import cn.axzo.nanopart.visa.api.request.CheckVisaWithVisaIdReq;
import cn.axzo.nanopart.visa.api.request.UpdateVisaChangeReq;
import cn.axzo.nanopart.visa.api.request.VisaChangeApproveCreateReq;
import cn.axzo.nanopart.visa.api.request.VisaChangeApproveOnlyReq;
import cn.axzo.nanopart.visa.api.request.VisaChangeDiscussCreateReq;
@ -145,4 +146,5 @@ public interface ChangeRecordService extends IService<ChangeRecord> {
*/
PageData<VisaSearchResp> list(VisaSearchReq req);
void update(UpdateVisaChangeReq req);
}

View File

@ -16,6 +16,7 @@ import cn.axzo.basics.report.api.req.ReportFileReq;
import cn.axzo.basics.report.api.sheet.SheetWrapper;
import cn.axzo.digital.req.ListRectifyOrderReq;
import cn.axzo.digital.resp.RectifyOrderResp;
import cn.axzo.foundation.exception.Axssert;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.framework.domain.ServiceException;
import cn.axzo.framework.domain.web.result.PageData;
@ -40,6 +41,7 @@ import cn.axzo.nanopart.visa.api.enums.VisaConfirmBizTypeEnum;
import cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum;
import cn.axzo.nanopart.visa.api.enums.VisaRelationFieldEnum;
import cn.axzo.nanopart.visa.api.enums.VisaRelationVarTypeEnum;
import cn.axzo.nanopart.visa.api.enums.VisaStampStatusEnum;
import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum;
import cn.axzo.nanopart.visa.api.enums.VisaTypeEnum;
import cn.axzo.nanopart.visa.api.request.ChangeRecordButtonOperationReq;
@ -47,6 +49,7 @@ import cn.axzo.nanopart.visa.api.request.ChangeStatusRequest;
import cn.axzo.nanopart.visa.api.request.CheckVisaWithVisaIdReq;
import cn.axzo.nanopart.visa.api.request.GetBillIfRelatedReq;
import cn.axzo.nanopart.visa.api.request.ImGroupOperationClearReq;
import cn.axzo.nanopart.visa.api.request.UpdateVisaChangeReq;
import cn.axzo.nanopart.visa.api.request.VisaChangeApproveCreateReq;
import cn.axzo.nanopart.visa.api.request.VisaChangeApproveOnlyReq;
import cn.axzo.nanopart.visa.api.request.VisaChangeDiscussCreateReq;
@ -162,6 +165,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_INITIATOR_NAME;
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.server.config.BizResultCode.CHANGE_RECORD_NOT_FOUND;
import static cn.axzo.nanopart.visa.server.utils.Constants.DATE_FORMAT;
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.PROCESSING;
@ -1855,7 +1859,6 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
// this.validVisaChangeForm(this.buildVisaChangeApproveCreateReqByVisaId(req.getVisaId()));
}
/**
* 查询变更签证集合
*/
@ -1921,4 +1924,28 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
return visaIds;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(UpdateVisaChangeReq req) {
ChangeRecord oldValue = this.getById(req.getVisaId());
Axssert.checkNonNull(oldValue, CHANGE_RECORD_NOT_FOUND);
ChangeRecord update = toUpdate(req, oldValue);
this.updateById(update);
}
public ChangeRecord toUpdate(UpdateVisaChangeReq req, ChangeRecord oldValue) {
ChangeRecord result = ChangeRecord.builder()
.updateBy(req.getOperatorId())
.build();
result.setId(req.getVisaId());
if (Objects.nonNull(req.getVisaStampAction())) {
result.setStampStatus(oldValue.nextStampStatus(req.getVisaStampAction()));
}
return result;
}
}