feat(declare): 同一申报项目进行中只允许一条申报

- 新增 DeclareGuardService:按已通过/未处理驳回/待审核数判重,申报项目行加锁防连点
- 9 张申报表补 declare_id / declare_status / declare_remark,提交时写入并随审核结果回写
- 新增撤回、作废(强制放行)接口;挑战杯团队成员按手机号判重
- 申报项目支持配置允许重复提交与最多同时条数
- 迁移脚本 sql/20261102_add_declare_uniqueness.sql(含存量回填与重复清单)
This commit is contained in:
2026-11-02 19:28:56 +08:00
parent 76c9edd4be
commit 0e4986330a
28 changed files with 1089 additions and 15 deletions
@@ -14,6 +14,9 @@ import com.gxwebsoft.gxmu.entity.QmgcForm;
import com.gxwebsoft.gxmu.param.QmgcFormParam;
import com.gxwebsoft.gxmu.service.QmgcFormService;
import com.gxwebsoft.gxmu.service.ReviewFlowStarterService;
import com.gxwebsoft.gxmu.model.DeclareCheckResult;
import com.gxwebsoft.gxmu.service.DeclareGuardService;
import org.springframework.transaction.annotation.Transactional;
import com.gxwebsoft.gxmu.util.GxmuQueryHelper;
import com.gxwebsoft.gxmu.util.QmgcDocxExportUtil;
import io.swagger.annotations.Api;
@@ -41,6 +44,8 @@ public class QmgcFormController extends BaseController {
@Resource
private ReviewFlowStarterService reviewFlowStarterService;
@Resource
private DeclareGuardService declareGuardService;
@Resource
private FileRecordService fileRecordService;
@Value("${config.upload-path}")
@@ -134,11 +139,21 @@ public class QmgcFormController extends BaseController {
@OperationLog
@ApiOperation("添加青马工程培训班学员登记表")
@PostMapping()
@Transactional(rollbackFor = Exception.class)
public ApiResult<?> save(@RequestBody QmgcForm qmgcForm) {
User loginUser = getLoginUser();
if (loginUser != null) {
qmgcForm.setUserId(loginUser.getUserId());
}
DeclareCheckResult declareCheck = declareGuardService.checkBeforeCreate("gxmu_qmgc_form",
qmgcForm.getDeclareId(), qmgcForm.getYear(), qmgcForm.getUserId());
if (declareCheck.isRejected()) {
return fail(declareCheck.getError());
}
if (declareCheck.getDeclareId() != null) {
qmgcForm.setDeclareId(declareCheck.getDeclareId());
}
qmgcForm.setDeclareStatus(1);
if (qmgcFormService.save(qmgcForm)) {
reviewFlowStarterService.startReview("gxmu_qmgc_form", qmgcForm.getId());
return success("添加成功");
@@ -187,4 +202,4 @@ public class QmgcFormController extends BaseController {
}
return String.valueOf(java.time.LocalDate.now().getYear());
}
}
}