Ver Fonte

wuzhen update zsjy2

“wuzhen” há 4 meses atrás
pai
commit
ba17da9dc1

+ 40 - 1
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<Long> ids, Boolean isValid) {
+        if (ids == null || ids.isEmpty()) {
+            return false;
+        }
         if (isValid) {
             // 可以添加删除前的校验逻辑
         }
-        return baseMapper.deleteBatchIds(ids) > 0;
+
+        Set<Long> 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);
     }
 
     /**