Ver código fonte

wuzhen update zsjy0701

“wuzhen” 4 meses atrás
pai
commit
9360306b67

+ 21 - 0
backend/ruoyi-modules/ruoyi-zsjy/src/main/java/org/dromara/zsjy/service/impl/ZsjyEnrollmentProcessServiceImpl.java

@@ -27,6 +27,8 @@ import java.util.Date;
 import java.util.Set;
 import java.util.ArrayList;
 import java.util.LinkedHashSet;
+import java.util.Arrays;
+import java.util.Map;
 import java.text.SimpleDateFormat;
 
 /**
@@ -77,6 +79,8 @@ public class ZsjyEnrollmentProcessServiceImpl implements IZsjyEnrollmentProcessS
         // 计算分页偏移量
         long offset = (page.getCurrent() - 1) * page.getSize();
 
+        normalizeCurrentStatusListParam(bo);
+
         // 获取总记录数,这里我们需要先执行一次查询
         List<ZsjyEnrollmentProcessVo> allRecords = baseMapper.selectAllProcessWithInfoAudit(bo);
 
@@ -99,6 +103,23 @@ public class ZsjyEnrollmentProcessServiceImpl implements IZsjyEnrollmentProcessS
         return TableDataInfo.build(result);
     }
 
+    /**
+     * 将 params.currentStatusList(逗号分隔字符串)转换为 List,供 Mapper IN 查询使用
+     */
+    private void normalizeCurrentStatusListParam(ZsjyEnrollmentProcessBo bo) {
+        if (bo == null || bo.getParams() == null) {
+            return;
+        }
+        Map<String, Object> params = bo.getParams();
+        Object statusList = params.get("currentStatusList");
+        if (statusList instanceof String str && StringUtils.isNotBlank(str)) {
+            params.put("currentStatusList", Arrays.stream(str.split(","))
+                .map(String::trim)
+                .filter(StringUtils::isNotBlank)
+                .toList());
+        }
+    }
+
     /**
      * 查询符合条件的招生录取流程状态列表
      *

+ 12 - 0
backend/ruoyi-modules/ruoyi-zsjy/src/main/resources/mapper/zsjy/ZsjyEnrollmentProcessMapper.xml

@@ -166,6 +166,18 @@
         <if test="currentStatus != null and currentStatus != ''">
             AND (ei.enrollment_status = #{currentStatus} OR p.current_status = #{currentStatus})
         </if>
+        <if test="params != null and params.currentStatusList != null and params.currentStatusList.size() > 0">
+            AND (
+                ei.enrollment_status IN
+                <foreach collection="params.currentStatusList" item="status" open="(" separator="," close=")">
+                    #{status}
+                </foreach>
+                OR p.current_status IN
+                <foreach collection="params.currentStatusList" item="status" open="(" separator="," close=")">
+                    #{status}
+                </foreach>
+            )
+        </if>
         <if test="params != null and params.majorId != null and params.majorId != ''">
             AND ei.major_code = #{params.majorId}
         </if>

+ 15 - 8
web/src/views/zsjy/enrollmentProcess/index.vue

@@ -286,13 +286,24 @@ const formDialogVisible = ref(false);
 const isEdit = ref(false);
 const currentProcess = ref<Partial<EnrollmentProcessVO>>({});
 
+/** 本页列表展示的状态:录取处理中(2)、待最终确认(3) */
+const LIST_STATUS_VALUES = '2,3';
+
+/** 设置列表默认查询条件 */
+const applyListStatusFilter = () => {
+  queryParams.value.currentStatus = undefined;
+  queryParams.value.isCompleted = 0;
+  queryParams.value.params = {
+    ...(queryParams.value.params || {}),
+    currentStatusList: LIST_STATUS_VALUES
+  };
+};
+
 /** 查询流程列表 */
 const getList = async () => {
   loading.value = true;
   try {
-    // 设置查询参数,只查询录取处理中且未完成的数据
-    queryParams.value.currentStatus = '2'; // 只查询录取处理中的数据
-    queryParams.value.isCompleted = 0; // 只查询未完成的数据
+    applyListStatusFilter();
 
     const res = await listEnrollmentProcess(queryParams.value);
 
@@ -327,7 +338,7 @@ const getList = async () => {
       });
 
     processList.value = processedList;
-    total.value = processedList.length; // 更新总数为过滤后的数量
+    total.value = res.total ?? processedList.length;
   } catch (error) {
     console.error('获取流程列表失败:', error);
 
@@ -674,10 +685,6 @@ const isCompleted = (row: any): boolean => {
 /** 初始化 */
 onMounted(async () => {
   try {
-    // 设置默认查询参数
-    queryParams.value.currentStatus = '2'; // 录取处理中
-    queryParams.value.isCompleted = 0; // 未完成
-
     // 处理路由参数
     const route = useRoute();
     if (route && route.query) {