diff --git a/backend/ruoyi-modules/ruoyi-zsjy/src/main/java/org/dromara/zsjy/service/impl/ZsjyEnrollmentProcessServiceImpl.java b/backend/ruoyi-modules/ruoyi-zsjy/src/main/java/org/dromara/zsjy/service/impl/ZsjyEnrollmentProcessServiceImpl.java index 3babe347..f1ed8f5e 100644 --- a/backend/ruoyi-modules/ruoyi-zsjy/src/main/java/org/dromara/zsjy/service/impl/ZsjyEnrollmentProcessServiceImpl.java +++ b/backend/ruoyi-modules/ruoyi-zsjy/src/main/java/org/dromara/zsjy/service/impl/ZsjyEnrollmentProcessServiceImpl.java @@ -16,7 +16,9 @@ import org.dromara.zsjy.domain.bo.ZsjyEnrollmentProcessBo; import org.dromara.zsjy.domain.vo.ZsjyEnrollmentProcessVo; import org.dromara.zsjy.domain.vo.ZsjyEnrollmentRegisterExportVo; import org.dromara.zsjy.domain.ZsjyEnrollmentProcess; +import org.dromara.zsjy.domain.ZsjyEnrollmentInfo; import org.dromara.zsjy.mapper.ZsjyEnrollmentProcessMapper; +import org.dromara.zsjy.mapper.ZsjyEnrollmentInfoMapper; import org.dromara.zsjy.service.IZsjyEnrollmentProcessService; import java.util.List; @@ -24,6 +26,7 @@ import java.util.Collection; import java.util.Date; import java.util.Set; import java.util.ArrayList; +import java.util.LinkedHashSet; import java.text.SimpleDateFormat; /** @@ -37,7 +40,11 @@ import java.text.SimpleDateFormat; @Service public class ZsjyEnrollmentProcessServiceImpl implements IZsjyEnrollmentProcessService { + /** 报名状态:待审核 */ + private static final String ENROLLMENT_STATUS_PENDING = "0"; + private final ZsjyEnrollmentProcessMapper baseMapper; + private final ZsjyEnrollmentInfoMapper enrollmentInfoMapper; /** * 查询招生录取流程状态 @@ -167,10 +174,42 @@ public class ZsjyEnrollmentProcessServiceImpl implements IZsjyEnrollmentProcessS @Override @Transactional(rollbackFor = Exception.class) public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (ids == null || ids.isEmpty()) { + return false; + } if (isValid) { // 可以添加删除前的校验逻辑 } - return baseMapper.deleteBatchIds(ids) > 0; + + Set enrollmentIds = new LinkedHashSet<>(); + for (Long id : ids) { + ZsjyEnrollmentProcess process = baseMapper.selectById(id); + if (process != null && process.getEnrollmentId() != null) { + enrollmentIds.add(process.getEnrollmentId()); + } + } + + boolean deleted = baseMapper.deleteBatchIds(ids) > 0; + if (deleted) { + for (Long enrollmentId : enrollmentIds) { + revertEnrollmentToPendingAudit(enrollmentId); + } + } + return deleted; + } + + /** + * 删除流程后,将对应报名信息回退为待审核状态(不触发流程同步,避免重新创建流程) + */ + private void revertEnrollmentToPendingAudit(Long enrollmentId) { + ZsjyEnrollmentInfo enrollmentInfo = enrollmentInfoMapper.selectById(enrollmentId); + if (enrollmentInfo == null) { + log.warn("删除流程后回退报名状态失败,报名记录不存在,enrollmentId={}", enrollmentId); + return; + } + enrollmentInfo.setEnrollmentStatus(ENROLLMENT_STATUS_PENDING); + enrollmentInfoMapper.updateById(enrollmentInfo); + log.info("删除流程后已将报名ID:{} 状态回退为待审核", enrollmentId); } /**