疗休养优化1.1

This commit is contained in:
2026-06-14 17:53:58 +08:00
parent f4f8387c1e
commit 6b892bb026
6 changed files with 63 additions and 11 deletions
@@ -39,14 +39,14 @@ public class TourSchoolUserAssignmentController {
}
/**
* 分页查询校工会分配记录,列表数据只来自人员分配表。
* 分页查询人员分配记录,列表数据只来自人员分配表,默认由前端传入校工会分配类别
*/
@At
@SaCheckPermission("tour.schoolUserAssignment")
public Result pageData(PageForm pageForm, Integer year, String settingId, String matterId, String unionId,
String personType, String keyword) {
String personType, String keyword, String assignSource) {
return Result.success(tourUserAssignmentService.schoolAssignmentPage(pageForm, year, settingId, matterId,
unionId, personType, keyword));
unionId, personType, keyword, assignSource));
}
/**
@@ -522,12 +522,31 @@ public class TourSignupController {
IFNULL(lot.allowOverReimbursement, 0) AS allowOverReimbursement,
s.allowFamily,
IFNULL(s.fillBedInfo, 1) AS fillBedInfo,
s.boardingPlace AS boardingPlaceOptions
s.boardingPlace AS boardingPlaceOptions,
IFNULL(sc.signupCount, 0) AS signupCount,
IFNULL(sc.familyCount, 0) AS familyCount
FROM tour_matter m
INNER JOIN tour_line l ON l.id = m.lineId
LEFT JOIN tour_travel_agency a ON a.id = l.travelAgencyId
LEFT JOIN tour_setting_lot lot ON lot.id = l.lotId
LEFT JOIN tour_setting s ON s.id = m.settingId
LEFT JOIN (
SELECT
t.matterId,
COUNT(1) + SUM(IFNULL(f.familyCount, 0)) AS signupCount,
SUM(IFNULL(f.familyCount, 0)) AS familyCount
FROM tour_ledger t
LEFT JOIN (
SELECT ledgerId, COUNT(1) AS familyCount
FROM tour_ledger_family
WHERE delFlag = 0
GROUP BY ledgerId
) f ON f.ledgerId = t.id
WHERE t.delFlag = 0
AND t.matterId IS NOT NULL
AND t.matterId <> ''
GROUP BY t.matterId
) sc ON sc.matterId = m.id
WHERE m.delFlag = 0
AND m.enabled = 1
AND m.id = @matterId
@@ -20,10 +20,11 @@ public interface TourUserAssignmentService extends BaseService<TourUserAssignmen
* @param unionId 所属分工会ID
* @param personType 人员类型:FORMAL 正式人员,BACKUP 替补人员
* @param keyword 姓名或工号关键字
* @param assignSource 分配类别:SCHOOL_UNION 校工会分配,BRANCH_UNION 分工会分配;为空时查询全部
* @return 校工会分配记录分页数据
*/
Pagination<NutMap> schoolAssignmentPage(PageForm pageForm, Integer year, String settingId, String matterId,
String unionId, String personType, String keyword);
String unionId, String personType, String keyword, String assignSource);
/**
* 分页查询校工会可分配候选人,候选人来自疗休养配置的可参加人员范围,并排除同一配置下已分配人员。
@@ -45,7 +45,7 @@ public class TourUserAssignmentServiceImpl extends BaseServiceImpl<TourUserAssig
@Override
public Pagination<NutMap> schoolAssignmentPage(PageForm pageForm, Integer year, String settingId, String matterId,
String unionId, String personType, String keyword) {
String unionId, String personType, String keyword, String assignSource) {
Sql sql = Sqls.create("""
SELECT
a.*,
@@ -63,7 +63,8 @@ public class TourUserAssignmentServiceImpl extends BaseServiceImpl<TourUserAssig
""");
Cnd cnd = Cnd.NEW();
cnd.and("a.delFlag", "=", false);
cnd.and("a.assignSource", "=", TourUserAssignment.ASSIGN_SOURCE_SCHOOL_UNION);
// 分配类别由页面筛选控制;为空时校工会页面可查看全部来源,默认值仍由前端传入校工会分配。
cnd.andEX("a.assignSource", "=", assignSource);
cnd.andEX("s.`year`", "=", year);
cnd.andEX("a.settingId", "=", settingId);
cnd.andEX("a.matterId", "=", matterId);
@@ -1182,6 +1183,8 @@ public class TourUserAssignmentServiceImpl extends BaseServiceImpl<TourUserAssig
cnd.orderBy("a.lineName", orderBy);
} else if ("personType".equals(orderName)) {
cnd.orderBy("a.personType", orderBy);
} else if ("assignSource".equals(orderName)) {
cnd.orderBy("a.assignSource", orderBy);
} else if ("assignedAt".equals(orderName)) {
cnd.orderBy("a.assignedAt", orderBy);
}