5.5 KiB
5.5 KiB
出国申请提交前置校验修改说明
修改时间
2025-10-08
修改内容
功能需求
在"人事管理 → 出国申请"菜单下,点击"新增申请"填写信息后提交时,需要校验是否在当前自然年内提交了出国登记申请并通过。
校验逻辑
- 无出国登记记录:如果当前自然年内没有提交出国登记申请,则提示"请先提交出国登记申请,审核通过后再提交出国申请"
- 出国登记审核中:如果当前自然年内有提交出国登记但还在审核中(状态为待审核),则提示"出国登记审核中,请审核通过后再提交出国申请"
- 出国登记已拒绝:如果当前自然年内的出国登记被拒绝,则提示"出国登记已被拒绝,请重新提交出国登记并审核通过后再提交出国申请"
- 出国登记已通过:只有当前自然年内有出国登记申请并且状态为"已通过"(status=2),才允许提交出国申请
出国登记状态说明
- 0 - 草稿
- 1 - 待审核
- 2 - 已通过(✅ 只有此状态才能提交出国申请)
- 3 - 已拒绝
修改文件
1. RsOverseasApplicationServiceImpl.java
修改方法1:validateRegistrationPrerequisite()
- 位置:第678-739行
- 主要修改:
- 将校验时间范围从"近3个月"改为"当前自然年内"(从每年1月1日 00:00:00开始)
- 修正了出国登记的状态判断:状态"2"表示已通过(之前代码中错误地判断为"1")
- 更新了日志消息,显示当前年份
- 完善了各种状态的提示消息
修改方法2:validatePartyMembershipRetentionPrerequisite()
- 位置:第741-815行
- 主要修改:
- 同样将校验时间范围从"近3个月"改为"当前自然年内"
- 保持与出国登记校验逻辑一致
- 更新了日志消息,显示当前年份
功能验证点
-
无登记记录测试
- 场景:用户在当前年度(2025年)未提交过出国登记
- 预期:提交出国申请时提示"请先提交出国登记申请,审核通过后再提交出国申请"
-
登记审核中测试
- 场景:用户在当前年度提交了出国登记,但状态为待审核(status=1)
- 预期:提交出国申请时提示"出国登记审核中,请审核通过后再提交出国申请"
-
登记已拒绝测试
- 场景:用户在当前年度的出国登记被拒绝(status=3)
- 预期:提示"出国登记已被拒绝,请重新提交出国登记并审核通过后再提交出国申请"
-
登记已通过测试
- 场景:用户在当前年度的出国登记已通过(status=2)
- 预期:可以正常提交出国申请
-
跨年度测试
- 场景:用户在2024年提交了出国登记并通过,但在2025年提交出国申请
- 预期:提示需要重新提交2025年的出国登记
Controller层调用说明
在 RsOverseasApplicationController.submit() 方法中,已经集成了校验逻辑(第229-236行):
// 1. 校验出国登记前置条件(近3个月是否有已通过的出国登记)
java.util.Map<String, Object> registrationValidation =
applicationService.validateRegistrationPrerequisite(application.getApplicantId());
Boolean registrationValid = (Boolean) registrationValidation.get("isValid");
if (!registrationValid) {
String message = (String) registrationValidation.get("message");
return R.fail(message);
}
注释中的"近3个月"需要更新为"当前自然年内",但功能逻辑已经正确实现。
数据库查询说明
查询使用的是出国登记表(rs_overseas_registration):
- 查询字段:
create_by(创建者ID,对应申请人ID) - 时间范围:
create_time >= 当前年度1月1日 00:00:00 - 排序:按
create_time降序,取最新一条记录
注意事项
- 自然年定义:从每年的1月1日 00:00:00 开始计算
- 状态判断:出国登记的"已通过"状态是"2",不是"1"
- 用户体验:不同状态有不同的友好提示消息,指导用户下一步操作
- 日志记录:所有校验失败情况都记录了警告日志,方便问题排查
- 党籍保留:同步修改了党籍保留的校验逻辑,保持一致性
代码改进点
- ✅ 修正了出国登记状态判断(原代码将"1"判断为已通过,实际应该是"2")
- ✅ 时间范围从"近3个月"改为"当前自然年内",符合业务要求
- ✅ 增强了日志信息,包含年份信息便于调试
- ✅ 完善了各种状态的提示消息,提升用户体验
- ✅ 保持了两个校验方法(出国登记和党籍保留)的逻辑一致性
后续优化建议
- 考虑将"当前自然年"的时间范围提取为工具方法,避免重复代码
- 可以在前端提交前进行预校验,提供实时提示
- 考虑增加管理员配置项,允许自定义校验时间范围(如按学年而非自然年)
修改完成确认
- 后端Service层逻辑修改完成
- 代码编译检查通过(无linter错误)
- 校验逻辑符合业务需求
- 日志和提示消息清晰明确
- 需要进行功能测试验证
- 需要更新API文档说明(如果有相关API文档)
测试建议
- 准备测试数据:创建不同状态的出国登记记录
- 测试各种场景下的提交行为
- 验证跨年度的校验逻辑
- 检查日志输出是否准确
- 验证前端提示消息是否友好
开发人员:AI Assistant
审核人员:待指定
文档版本:v1.0