疗休养优化1.1
This commit is contained in:
+3
-3
@@ -39,14 +39,14 @@ public class TourSchoolUserAssignmentController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询校工会分配记录,列表数据只来自人员分配表。
|
* 分页查询人员分配记录,列表数据只来自人员分配表,默认由前端传入校工会分配类别。
|
||||||
*/
|
*/
|
||||||
@At
|
@At
|
||||||
@SaCheckPermission("tour.schoolUserAssignment")
|
@SaCheckPermission("tour.schoolUserAssignment")
|
||||||
public Result pageData(PageForm pageForm, Integer year, String settingId, String matterId, String unionId,
|
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,
|
return Result.success(tourUserAssignmentService.schoolAssignmentPage(pageForm, year, settingId, matterId,
|
||||||
unionId, personType, keyword));
|
unionId, personType, keyword, assignSource));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+20
-1
@@ -522,12 +522,31 @@ public class TourSignupController {
|
|||||||
IFNULL(lot.allowOverReimbursement, 0) AS allowOverReimbursement,
|
IFNULL(lot.allowOverReimbursement, 0) AS allowOverReimbursement,
|
||||||
s.allowFamily,
|
s.allowFamily,
|
||||||
IFNULL(s.fillBedInfo, 1) AS fillBedInfo,
|
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
|
FROM tour_matter m
|
||||||
INNER JOIN tour_line l ON l.id = m.lineId
|
INNER JOIN tour_line l ON l.id = m.lineId
|
||||||
LEFT JOIN tour_travel_agency a ON a.id = l.travelAgencyId
|
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_lot lot ON lot.id = l.lotId
|
||||||
LEFT JOIN tour_setting s ON s.id = m.settingId
|
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
|
WHERE m.delFlag = 0
|
||||||
AND m.enabled = 1
|
AND m.enabled = 1
|
||||||
AND m.id = @matterId
|
AND m.id = @matterId
|
||||||
|
|||||||
+2
-1
@@ -20,10 +20,11 @@ public interface TourUserAssignmentService extends BaseService<TourUserAssignmen
|
|||||||
* @param unionId 所属分工会ID
|
* @param unionId 所属分工会ID
|
||||||
* @param personType 人员类型:FORMAL 正式人员,BACKUP 替补人员
|
* @param personType 人员类型:FORMAL 正式人员,BACKUP 替补人员
|
||||||
* @param keyword 姓名或工号关键字
|
* @param keyword 姓名或工号关键字
|
||||||
|
* @param assignSource 分配类别:SCHOOL_UNION 校工会分配,BRANCH_UNION 分工会分配;为空时查询全部
|
||||||
* @return 校工会分配记录分页数据
|
* @return 校工会分配记录分页数据
|
||||||
*/
|
*/
|
||||||
Pagination<NutMap> schoolAssignmentPage(PageForm pageForm, Integer year, String settingId, String matterId,
|
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);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询校工会可分配候选人,候选人来自疗休养配置的可参加人员范围,并排除同一配置下已分配人员。
|
* 分页查询校工会可分配候选人,候选人来自疗休养配置的可参加人员范围,并排除同一配置下已分配人员。
|
||||||
|
|||||||
+5
-2
@@ -45,7 +45,7 @@ public class TourUserAssignmentServiceImpl extends BaseServiceImpl<TourUserAssig
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Pagination<NutMap> schoolAssignmentPage(PageForm pageForm, Integer year, String settingId, String matterId,
|
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("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
a.*,
|
a.*,
|
||||||
@@ -63,7 +63,8 @@ public class TourUserAssignmentServiceImpl extends BaseServiceImpl<TourUserAssig
|
|||||||
""");
|
""");
|
||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
cnd.and("a.delFlag", "=", false);
|
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("s.`year`", "=", year);
|
||||||
cnd.andEX("a.settingId", "=", settingId);
|
cnd.andEX("a.settingId", "=", settingId);
|
||||||
cnd.andEX("a.matterId", "=", matterId);
|
cnd.andEX("a.matterId", "=", matterId);
|
||||||
@@ -1182,6 +1183,8 @@ public class TourUserAssignmentServiceImpl extends BaseServiceImpl<TourUserAssig
|
|||||||
cnd.orderBy("a.lineName", orderBy);
|
cnd.orderBy("a.lineName", orderBy);
|
||||||
} else if ("personType".equals(orderName)) {
|
} else if ("personType".equals(orderName)) {
|
||||||
cnd.orderBy("a.personType", orderBy);
|
cnd.orderBy("a.personType", orderBy);
|
||||||
|
} else if ("assignSource".equals(orderName)) {
|
||||||
|
cnd.orderBy("a.assignSource", orderBy);
|
||||||
} else if ("assignedAt".equals(orderName)) {
|
} else if ("assignedAt".equals(orderName)) {
|
||||||
cnd.orderBy("a.assignedAt", orderBy);
|
cnd.orderBy("a.assignedAt", orderBy);
|
||||||
}
|
}
|
||||||
|
|||||||
+32
-3
@@ -37,6 +37,11 @@ layout("/layouts/platform.html"){
|
|||||||
<el-option label="替补人员" value="BACKUP"></el-option>
|
<el-option label="替补人员" value="BACKUP"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</search-item>
|
</search-item>
|
||||||
|
<search-item label="分配类别">
|
||||||
|
<el-select v-model="pageForm.assignSource" clearable placeholder="请选择分配类别" style="width: 100%">
|
||||||
|
<el-option v-for="item in assignSourceOptions" :key="item.value" :label="item.label" :value="item.value"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</search-item>
|
||||||
<search-item label="姓名/工号">
|
<search-item label="姓名/工号">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="pageForm.keyword"
|
v-model="pageForm.keyword"
|
||||||
@@ -75,6 +80,11 @@ layout("/layouts/platform.html"){
|
|||||||
<el-table-column label="线路" prop="lineName" min-width="200" sortable="custom" align="center" header-align="center" show-overflow-tooltip></el-table-column>
|
<el-table-column label="线路" prop="lineName" min-width="200" sortable="custom" align="center" header-align="center" show-overflow-tooltip></el-table-column>
|
||||||
<el-table-column label="出行时间" prop="travelPeriod" min-width="180" align="center" header-align="center" show-overflow-tooltip></el-table-column>
|
<el-table-column label="出行时间" prop="travelPeriod" min-width="180" align="center" header-align="center" show-overflow-tooltip></el-table-column>
|
||||||
<el-table-column label="乘车地点" prop="boardingPlace" min-width="140" align="center" header-align="center" show-overflow-tooltip></el-table-column>
|
<el-table-column label="乘车地点" prop="boardingPlace" min-width="140" align="center" header-align="center" show-overflow-tooltip></el-table-column>
|
||||||
|
<el-table-column label="分配类别" prop="assignSource" width="120" sortable="custom" align="center" header-align="center">
|
||||||
|
<template slot-scope="{row}">
|
||||||
|
<el-tag size="mini" :type="row.assignSource === 'BRANCH_UNION' ? 'warning' : 'primary'">{{ assignSourceText(row.assignSource) }}</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="人员类型" prop="personType" width="110" sortable="custom" align="center" header-align="center">
|
<el-table-column label="人员类型" prop="personType" width="110" sortable="custom" align="center" header-align="center">
|
||||||
<template slot-scope="{row}">
|
<template slot-scope="{row}">
|
||||||
<el-tag size="mini" :type="row.personType === 'BACKUP' ? 'warning' : 'success'">{{ personTypeText(row.personType) }}</el-tag>
|
<el-tag size="mini" :type="row.personType === 'BACKUP' ? 'warning' : 'success'">{{ personTypeText(row.personType) }}</el-tag>
|
||||||
@@ -88,9 +98,9 @@ layout("/layouts/platform.html"){
|
|||||||
<el-table-column label="分配时间" prop="assignedAt" width="170" sortable="custom" align="center" header-align="center" show-overflow-tooltip></el-table-column>
|
<el-table-column label="分配时间" prop="assignedAt" width="170" sortable="custom" align="center" header-align="center" show-overflow-tooltip></el-table-column>
|
||||||
<el-table-column label="操作" width="320" align="center" header-align="center" fixed="right">
|
<el-table-column label="操作" width="320" align="center" header-align="center" fixed="right">
|
||||||
<template slot-scope="{row}">
|
<template slot-scope="{row}">
|
||||||
<el-button v-if="!row.matterId && row.personType !== 'BACKUP'" size="mini" type="primary" @click="openSelectMatter(row)">选择线路</el-button>
|
<el-button v-if="isSchoolUnionAssignment(row) && !row.matterId && row.personType !== 'BACKUP'" size="mini" type="primary" @click="openSelectMatter(row)">选择线路</el-button>
|
||||||
<el-button v-if="isCancelled(row) && $auth.hasPermission('tour.schoolUserAssignment.cancelRestore')" size="mini" type="warning" @click="restoreCancel(row)">取消退出</el-button>
|
<el-button v-if="isSchoolUnionAssignment(row) && isCancelled(row) && $auth.hasPermission('tour.schoolUserAssignment.cancelRestore')" size="mini" type="warning" @click="restoreCancel(row)">取消退出</el-button>
|
||||||
<el-button size="mini" type="danger" @click="doDelete(row)">删除</el-button>
|
<el-button v-if="isSchoolUnionAssignment(row)" size="mini" type="danger" @click="doDelete(row)">删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@@ -283,6 +293,10 @@ layout("/layouts/platform.html"){
|
|||||||
return {
|
return {
|
||||||
settingOptions: [],
|
settingOptions: [],
|
||||||
pageMatterOptions: [],
|
pageMatterOptions: [],
|
||||||
|
assignSourceOptions: [
|
||||||
|
{label: "校工会分配", value: "SCHOOL_UNION"},
|
||||||
|
{label: "分工会分配", value: "BRANCH_UNION"}
|
||||||
|
],
|
||||||
assignSettingOptions: [],
|
assignSettingOptions: [],
|
||||||
assignMatterOptions: [],
|
assignMatterOptions: [],
|
||||||
unionOptions: [],
|
unionOptions: [],
|
||||||
@@ -305,6 +319,7 @@ layout("/layouts/platform.html"){
|
|||||||
matterId: "",
|
matterId: "",
|
||||||
unionId: "",
|
unionId: "",
|
||||||
personType: "",
|
personType: "",
|
||||||
|
assignSource: "SCHOOL_UNION",
|
||||||
keyword: ""
|
keyword: ""
|
||||||
},
|
},
|
||||||
assignForm: {
|
assignForm: {
|
||||||
@@ -366,6 +381,8 @@ layout("/layouts/platform.html"){
|
|||||||
this.pageForm.matterId = ""
|
this.pageForm.matterId = ""
|
||||||
this.pageForm.unionId = ""
|
this.pageForm.unionId = ""
|
||||||
this.pageForm.personType = ""
|
this.pageForm.personType = ""
|
||||||
|
// 页面打开和重置后默认查看校工会分配,清空该筛选项时后端会查询全部来源。
|
||||||
|
this.pageForm.assignSource = "SCHOOL_UNION"
|
||||||
this.pageForm.keyword = ""
|
this.pageForm.keyword = ""
|
||||||
this.loadSettingOptions()
|
this.loadSettingOptions()
|
||||||
},
|
},
|
||||||
@@ -667,6 +684,18 @@ layout("/layouts/platform.html"){
|
|||||||
personTypeText(personType) {
|
personTypeText(personType) {
|
||||||
return personType === "BACKUP" ? "替补人员" : "正式人员"
|
return personType === "BACKUP" ? "替补人员" : "正式人员"
|
||||||
},
|
},
|
||||||
|
assignSourceText(assignSource) {
|
||||||
|
if (assignSource === "SCHOOL_UNION") {
|
||||||
|
return "校工会分配"
|
||||||
|
}
|
||||||
|
if (assignSource === "BRANCH_UNION") {
|
||||||
|
return "分工会分配"
|
||||||
|
}
|
||||||
|
return assignSource || ""
|
||||||
|
},
|
||||||
|
isSchoolUnionAssignment(row) {
|
||||||
|
return row && row.assignSource === "SCHOOL_UNION"
|
||||||
|
},
|
||||||
isCancelled(row) {
|
isCancelled(row) {
|
||||||
return row && (row.cancelled === true || row.cancelled === 1)
|
return row && (row.cancelled === true || row.cancelled === 1)
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -306,7 +306,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
}
|
}
|
||||||
return this.canModifySignup() ? "修改报名" : "审核中"
|
return this.canModifySignup() ? "修改报名" : "审核中"
|
||||||
}
|
}
|
||||||
return "我要报名"
|
return "我要核对信息"
|
||||||
},
|
},
|
||||||
detailActionType() {
|
detailActionType() {
|
||||||
return this.canRevokeSignup() ? "danger" : "info"
|
return this.canRevokeSignup() ? "danger" : "info"
|
||||||
|
|||||||
Reference in New Issue
Block a user