feat(declare): 同一申报项目进行中只允许一条申报
- 新增 DeclareGuardService:按已通过/未处理驳回/待审核数判重,申报项目行加锁防连点 - 9 张申报表补 declare_id / declare_status / declare_remark,提交时写入并随审核结果回写 - 新增撤回、作废(强制放行)接口;挑战杯团队成员按手机号判重 - 申报项目支持配置允许重复提交与最多同时条数 - 迁移脚本 sql/20261102_add_declare_uniqueness.sql(含存量回填与重复清单)
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
package com.gxwebsoft.gxmu.model;
|
||||
|
||||
/**
|
||||
* 申报提交前的校验结果。
|
||||
*
|
||||
* <p>三种形态:不适用(模块不在申报规则内)、被拒绝(带用户可读原因)、通过(带解析出的申报项目 id)。</p>
|
||||
*/
|
||||
public class DeclareCheckResult {
|
||||
private final boolean applicable;
|
||||
private final String error;
|
||||
private final Integer declareId;
|
||||
|
||||
private DeclareCheckResult(boolean applicable, String error, Integer declareId) {
|
||||
this.applicable = applicable;
|
||||
this.error = error;
|
||||
this.declareId = declareId;
|
||||
}
|
||||
|
||||
public static DeclareCheckResult skip() {
|
||||
return new DeclareCheckResult(false, null, null);
|
||||
}
|
||||
|
||||
public static DeclareCheckResult reject(String error) {
|
||||
return new DeclareCheckResult(true, error, null);
|
||||
}
|
||||
|
||||
public static DeclareCheckResult pass(Integer declareId) {
|
||||
return new DeclareCheckResult(true, null, declareId);
|
||||
}
|
||||
|
||||
public boolean isApplicable() {
|
||||
return applicable;
|
||||
}
|
||||
|
||||
public boolean isRejected() {
|
||||
return error != null;
|
||||
}
|
||||
|
||||
public String getError() {
|
||||
return error;
|
||||
}
|
||||
|
||||
public Integer getDeclareId() {
|
||||
return declareId;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user