From 5a42a139d6b3cfa2051c7da17411594fe697d647 Mon Sep 17 00:00:00 2001 From: = <=> Date: Fri, 12 Jun 2026 16:07:11 +0800 Subject: [PATCH] commit --- .../service/impl/RetiredUserServiceImpl.java | 38 +++- .../components/module/retired/userEdit.vue | 205 ++++++------------ .../components/module/retired/userInfo.vue | 99 +++++---- .../zhgh/staffmanage/retired/list/index.html | 25 ++- 4 files changed, 167 insertions(+), 200 deletions(-) diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/service/impl/RetiredUserServiceImpl.java b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/service/impl/RetiredUserServiceImpl.java index fa8125b..66f09f4 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/service/impl/RetiredUserServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/service/impl/RetiredUserServiceImpl.java @@ -72,15 +72,19 @@ public class RetiredUserServiceImpl extends BaseServiceImpl implements u.education, u.academicDegree, u.nation, - null as campusName, + campusDict.name as campusName, u.unionGroupName, u.political, u.personType, u.userState, u.unitName as unitname, u.unionName as unionname, - null as threeUnitName + CASE WHEN userUnit.unitLevel = 3 THEN userUnit.name ELSE NULL END as threeUnitName FROM vw_user u + LEFT JOIN sys_unit userUnit ON userUnit.id = u.unitId + LEFT JOIN sys_dict campusParent ON campusParent.code = 'USER_CAMPUS' + LEFT JOIN sys_dict campusDict ON campusDict.parentId = campusParent.id + AND (campusDict.id = userUnit.xqid OR campusDict.code = userUnit.xqid OR campusDict.name = userUnit.xqid) $condition """); Cnd cnd = Cnd.NEW(); @@ -157,11 +161,15 @@ public class RetiredUserServiceImpl extends BaseServiceImpl implements u.memberTime, u.families, u.personalData, - null as campusName, - null as threeUnitName, + campusDict.name as campusName, + CASE WHEN userUnit.unitLevel = 3 THEN userUnit.name ELSE NULL END as threeUnitName, rg.groupName as retiredGroupName, rpb.partyBranchName as retiredPartyBranchName FROM vw_user u + LEFT JOIN sys_unit userUnit ON userUnit.id = u.unitId + LEFT JOIN sys_dict campusParent ON campusParent.code = 'USER_CAMPUS' + LEFT JOIN sys_dict campusDict ON campusDict.parentId = campusParent.id + AND (campusDict.id = userUnit.xqid OR campusDict.code = userUnit.xqid OR campusDict.name = userUnit.xqid) LEFT JOIN retired_group_unit rgu ON rgu.unitId = u.unitId LEFT JOIN retired_group rg ON rg.id = rgu.retiredGroupId LEFT JOIN retired_party_branch_user rpbu ON rpbu.userId = u.id @@ -226,7 +234,7 @@ public class RetiredUserServiceImpl extends BaseServiceImpl implements u.education, u.academicDegree, u.nation, - null as campusName, + campusDict.name as campusName, u.unionGroupName, u.personType, u.userState, @@ -234,6 +242,10 @@ public class RetiredUserServiceImpl extends BaseServiceImpl implements u.unionName as unionname FROM retired_user_change ruc LEFT JOIN vw_user u ON u.id = ruc.userId + LEFT JOIN sys_unit userUnit ON userUnit.id = u.unitId + LEFT JOIN sys_dict campusParent ON campusParent.code = 'USER_CAMPUS' + LEFT JOIN sys_dict campusDict ON campusDict.parentId = campusParent.id + AND (campusDict.id = userUnit.xqid OR campusDict.code = userUnit.xqid OR campusDict.name = userUnit.xqid) $condition """); Cnd cnd = Cnd.NEW(); @@ -264,18 +276,21 @@ public class RetiredUserServiceImpl extends BaseServiceImpl implements u.education, u.academicDegree, u.nation, - null as campusName, + campusDict.name as campusName, unionGroup.name as unionGroupName, u.personType, u.userState, n.name AS unitname, gh.name AS unionname, u.political, - null as threeUnitName, + CASE WHEN n.unitLevel = 3 THEN n.name ELSE NULL END as threeUnitName, rg.groupName AS retiredGroupName, rpb.partyBranchName AS retiredPartyBranchName FROM retired_user_history u LEFT JOIN sys_unit n ON n.id = u.unitId + LEFT JOIN sys_dict campusParent ON campusParent.code = 'USER_CAMPUS' + LEFT JOIN sys_dict campusDict ON campusDict.parentId = campusParent.id + AND (campusDict.id = n.xqid OR campusDict.code = n.xqid OR campusDict.name = n.xqid) LEFT JOIN sys_union gh ON gh.id = n.unionId LEFT JOIN sys_union_group unionGroup ON unionGroup.id = n.unionGroupId LEFT JOIN retired_group_unit rgu ON rgu.unitId = u.unitId @@ -306,6 +321,7 @@ public class RetiredUserServiceImpl extends BaseServiceImpl implements } private Sql retiredUserSql() { + // 当前库的 vw_user 不直接提供科室和校区名称,科室按三级单位显示,校区按单位 xqid 关联 USER_CAMPUS 字典显示。 return Sqls.create(""" SELECT u.id, @@ -321,17 +337,21 @@ public class RetiredUserServiceImpl extends BaseServiceImpl implements u.education, u.academicDegree, u.nation, - null as campusName, + campusDict.name as campusName, u.unionGroupName, u.personType, u.userState, u.unitName as unitname, u.unionName as unionname, u.political, - null as threeUnitName, + CASE WHEN userUnit.unitLevel = 3 THEN userUnit.name ELSE NULL END as threeUnitName, rg.groupName as retiredGroupName, rpb.partyBranchName as retiredPartyBranchName FROM vw_user u + LEFT JOIN sys_unit userUnit ON userUnit.id = u.unitId + LEFT JOIN sys_dict campusParent ON campusParent.code = 'USER_CAMPUS' + LEFT JOIN sys_dict campusDict ON campusDict.parentId = campusParent.id + AND (campusDict.id = userUnit.xqid OR campusDict.code = userUnit.xqid OR campusDict.name = userUnit.xqid) LEFT JOIN retired_group_unit rgu ON rgu.unitId = u.unitId LEFT JOIN retired_group rg ON rg.id = rgu.retiredGroupId LEFT JOIN retired_party_branch_user rpbu ON rpbu.userId = u.id diff --git a/src/main/resources/static/components/module/retired/userEdit.vue b/src/main/resources/static/components/module/retired/userEdit.vue index 687b5f7..277417a 100644 --- a/src/main/resources/static/components/module/retired/userEdit.vue +++ b/src/main/resources/static/components/module/retired/userEdit.vue @@ -17,6 +17,12 @@ + + + + + + @@ -26,12 +32,6 @@ - - - - - - - - + + + @@ -52,102 +52,34 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - + - - + - - - - - - - - + + + - - - + + + @@ -159,62 +91,25 @@ - - - - - - + - + - - - + + + - - - - - - - - - - - - - - - - - - - - + + + - - - - + + + @@ -293,6 +188,10 @@ module.exports = { handleUnitChange(unitId) { const unit = this.units.find(item => item.id === unitId) this.$set(this.formData, "unitName", unit ? unit.name : null) + const unionId = unit ? (unit.unionId || unit.unionid || null) : null + const unionName = unit ? (unit.unionName || unit.unionname || null) : null + this.$set(this.formData, "unionId", unionId) + this.$set(this.formData, "unionName", unionName) }, addFamily() { const families = (this.formData.families || []).concat([{}]) @@ -307,6 +206,40 @@ module.exports = { const units = await this.$businessTool.listUnit() this.$set(this, "units", units || []) }, + // 工龄不落库,根据参加工作时间实时计算,兼容 yyyy、yyyy-MM、yyyy-MM-dd 三种输入。 + workAgeText(val) { + const start = this.parseWorkDate(val) + if (!start) { + return "" + } + const today = new Date() + let years = today.getFullYear() - start.getFullYear() + if (today.getMonth() < start.getMonth() || + (today.getMonth() === start.getMonth() && today.getDate() < start.getDate())) { + years = years - 1 + } + if (years < 0) { + years = 0 + } + return years + "年" + }, + parseWorkDate(val) { + if (!val) { + return null + } + const parts = String(val).split("-") + const year = Number(parts[0]) + const month = parts.length > 1 ? Number(parts[1]) : 1 + const day = parts.length > 2 ? Number(parts[2]) : 1 + if (!year || !month || !day) { + return null + } + const date = new Date(year, month - 1, day) + if (isNaN(date.getTime())) { + return null + } + return date + }, normalizeUserData(user) { const data = Object.assign(this.defaultFormData(), user) // 详情数据可能来自视图或实体,统一把大小写差异字段整理成页面绑定的驼峰字段。 diff --git a/src/main/resources/static/components/module/retired/userInfo.vue b/src/main/resources/static/components/module/retired/userInfo.vue index d119532..3a9665c 100644 --- a/src/main/resources/static/components/module/retired/userInfo.vue +++ b/src/main/resources/static/components/module/retired/userInfo.vue @@ -8,61 +8,26 @@ {{ emptyText(formData.loginname) }} {{ emptyText(formData.username) }} - {{ emptyText(formData.sex) }} - - {{ emptyText(formData.nation) }} - {{ formatDate(formData.birthday) }} {{ emptyText(formData.nativePlace) }} + {{ emptyText(formData.sex) }} + {{ formatDate(formData.birthday) }} + {{ emptyText(formData.idCard) }} + {{ emptyText(formData.political) }} - {{ formatDate(formData.joinPartyDate) }} - {{ emptyText(formData.marriage) }} - - {{ emptyText(formData.education) }} - {{ emptyText(formData.academicDegree) }} - {{ emptyText(formData.position) }} + {{ displayDate(formData.arrivalAtSchoolDate) }} + {{ emptyText(formData.unitName) }} + {{ emptyText(formData.unionName) }} + {{ emptyText(formData.position) }} {{ emptyText(formData.professionalTitle) }} - {{ emptyText(formData.preparedBy) }} - {{ formatDate(formData.arrivalAtSchoolDate) }} - {{ formatDate(formData.teachingTime) }} - {{ formatDate(formData.memberTime) }} - {{ emptyText(formData.campusName) }} - - {{ emptyText(formData.unitName) }} - {{ emptyText(formData.unionName) }} - {{ emptyText(formData.unionGroupName) }} - - {{ emptyText(formData.threeUnitName) }} - {{ emptyText(formData.retiredGroupName) }} - {{ emptyText(formData.retiredPartyBranchName) }} + {{ formatDate(formData.retireDate) }} + {{ emptyText(formData.mobile) }} + {{ workAgeText(formData.arrivalAtSchoolDate) || '暂无' }} {{ emptyText(formData.userState) }} - {{ emptyText(formData.personType) }} - {{ formatDate(formData.retireDate) }} - - {{ emptyText(formData.idCard) }} - {{ emptyText(formData.mobile) }} - {{ emptyText(formData.email) }} - - - - - - - - - - - - -
- 暂无 -
+ {{ emptyText(formData.personType) }}
@@ -89,12 +54,52 @@ module.exports = { } return '暂无' }, + displayDate(val) { + if (!val) { + return '暂无' + } + return String(val) + }, emptyText(val) { if (val === undefined || val === null || val === '') { return '暂无' } return val }, + // 工龄不落库,根据参加工作时间实时计算,兼容 yyyy、yyyy-MM、yyyy-MM-dd 三种输入。 + workAgeText(val) { + const start = this.parseWorkDate(val) + if (!start) { + return "" + } + const today = new Date() + let years = today.getFullYear() - start.getFullYear() + if (today.getMonth() < start.getMonth() || + (today.getMonth() === start.getMonth() && today.getDate() < start.getDate())) { + years = years - 1 + } + if (years < 0) { + years = 0 + } + return years + "年" + }, + parseWorkDate(val) { + if (!val) { + return null + } + const parts = String(val).split("-") + const year = Number(parts[0]) + const month = parts.length > 1 ? Number(parts[1]) : 1 + const day = parts.length > 2 ? Number(parts[2]) : 1 + if (!year || !month || !day) { + return null + } + const date = new Date(year, month - 1, day) + if (isNaN(date.getTime())) { + return null + } + return date + }, getInfo() { if (this.id) { $.post('/platform/retired/list/userInfo', {userId: this.id}).then(res => { diff --git a/src/main/resources/views/platform/zhgh/staffmanage/retired/list/index.html b/src/main/resources/views/platform/zhgh/staffmanage/retired/list/index.html index 938b70a..6ccc830 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/retired/list/index.html +++ b/src/main/resources/views/platform/zhgh/staffmanage/retired/list/index.html @@ -71,7 +71,7 @@ layout("/layouts/platform.html"){ -