diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/retired/group/controller/RetiredGroupManageController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/group/controller/RetiredGroupManageController.java new file mode 100644 index 0000000..fa36f84 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/group/controller/RetiredGroupManageController.java @@ -0,0 +1,110 @@ +package com.budwk.app.zhgh.staffmanage.retired.group.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import com.budwk.app.base.param.PageForm; +import com.budwk.app.base.result.Result; +import com.budwk.app.zhgh.staffmanage.retired.group.models.RetiredGroup; +import com.budwk.app.zhgh.staffmanage.retired.group.service.RetiredGroupService; +import lombok.extern.slf4j.Slf4j; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.ioc.aop.Aop; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +@Slf4j +@IocBean +@Ok("json:full") +@At("/platform/retired/group/manage") +public class RetiredGroupManageController { + + @Inject + private RetiredGroupService retiredGroupService; + + @At("") + @Ok("beetl:/platform/zhgh/staffmanage/retired/group/manage/index.html") + @SaCheckPermission("retired.group.manage") + public void index() { + } + + @At + @SaCheckPermission("retired.group.manage") + public Result getTree() { + return Result.success(retiredGroupService.getTree()); + } + + @At + @SaCheckPermission("retired.group.manage") + public Result doSetGroup(@Param("..") RetiredGroup retiredGroup) { + retiredGroupService.saveGroup(retiredGroup); + return Result.success(); + } + + @At + @SaCheckPermission("retired.group.manage") + public Result groupPageData(PageForm pageForm) { + return Result.success(retiredGroupService.groupPageData(pageForm)); + } + + @At + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("retired.group.manage") + public Result deleteGroup(String id) { + retiredGroupService.deleteGroup(id); + return Result.success(); + } + + @At + @SaCheckPermission("retired.group.manage") + public Result componentUnitPageData(PageForm pageForm, String groupId) { + return Result.success(retiredGroupService.componentUnitPageData(pageForm, groupId)); + } + + @At + @SaCheckPermission("retired.group.manage") + public Result groupComponentUnit(String groupId) { + return Result.success(retiredGroupService.groupComponentUnit(groupId)); + } + + @At + @SaCheckPermission("retired.group.manage") + public Result notSetUnit(String groupId) { + return Result.success(retiredGroupService.notSetUnit(groupId)); + } + + @At + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("retired.group.manage") + public Result doSetComponentUnit(String groupId, @Param("units") String[] units) { + retiredGroupService.setComponentUnit(groupId, units); + return Result.success(); + } + + @At + @SaCheckPermission("retired.group.manage") + public Result groupUser(PageForm pageForm, String groupId) { + return Result.success(retiredGroupService.groupUser(pageForm, groupId)); + } + + @At + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("retired.group.manage") + public Result setGroupLeader(String userId, String groupId) { + retiredGroupService.setGroupLeader(userId, groupId); + return Result.success(); + } + + @At + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("retired.group.manage") + public Result removeGroupLeader(String userId, String groupId) { + retiredGroupService.removeGroupLeader(userId, groupId); + return Result.success(); + } +} + + + + diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/retired/group/controller/RetiredGroupStatisticsController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/group/controller/RetiredGroupStatisticsController.java new file mode 100644 index 0000000..7507d6b --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/group/controller/RetiredGroupStatisticsController.java @@ -0,0 +1,43 @@ +package com.budwk.app.zhgh.staffmanage.retired.group.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import com.budwk.app.base.result.Result; +import com.budwk.app.zhgh.staffmanage.retired.group.service.RetiredGroupService; +import lombok.extern.slf4j.Slf4j; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +@Slf4j +@IocBean +@Ok("json:full") +@At("/platform/retired/group/statistics") +public class RetiredGroupStatisticsController { + + @Inject + private RetiredGroupService retiredGroupService; + + @At("") + @Ok("beetl:/platform/zhgh/staffmanage/retired/group/statistics/index.html") + @SaCheckPermission("retired.group.statistics") + public void index() { + } + + @At + @SaCheckPermission("retired.group.statistics") + public Result data(@Param("retiredGroupId") String retiredGroupId) { + return Result.success(retiredGroupService.statisticsData(retiredGroupId)); + } + + @At + @SaCheckPermission("retired.group.statistics") + public Result retiredGroup() { + return Result.success(retiredGroupService.options()); + } +} + + + + diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/retired/group/models/RetiredGroup.java b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/group/models/RetiredGroup.java new file mode 100644 index 0000000..c0e6fee --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/group/models/RetiredGroup.java @@ -0,0 +1,42 @@ +package com.budwk.app.zhgh.staffmanage.retired.group.models; + +import com.budwk.app.base.model.BaseModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.nutz.dao.entity.annotation.ColDefine; +import org.nutz.dao.entity.annotation.ColType; +import org.nutz.dao.entity.annotation.Column; +import org.nutz.dao.entity.annotation.Comment; +import org.nutz.dao.entity.annotation.Many; +import org.nutz.dao.entity.annotation.Name; +import org.nutz.dao.entity.annotation.Table; +import org.nutz.dao.interceptor.annotation.PrevInsert; + +import java.util.List; + +@Data +@EqualsAndHashCode(callSuper = true) +@Table("retired_group") +@Comment("离退休小组") +public class RetiredGroup extends BaseModel { + + @Name + @Comment("ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) + private String id; + + @Column + @Comment("小组名称") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String groupName; + + @Column + @Comment("小组代码") + @ColDefine(type = ColType.INT) + private Integer groupCode; + + @Many(target = RetiredGroupUnit.class, field = "retiredGroupId", key = "id") + private List retiredGroupUnitList; +} + diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/retired/group/models/RetiredGroupUnit.java b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/group/models/RetiredGroupUnit.java new file mode 100644 index 0000000..fb50cf2 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/group/models/RetiredGroupUnit.java @@ -0,0 +1,36 @@ +package com.budwk.app.zhgh.staffmanage.retired.group.models; + +import com.budwk.app.base.model.BaseModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.nutz.dao.entity.annotation.ColDefine; +import org.nutz.dao.entity.annotation.ColType; +import org.nutz.dao.entity.annotation.Column; +import org.nutz.dao.entity.annotation.Comment; +import org.nutz.dao.entity.annotation.Name; +import org.nutz.dao.entity.annotation.Table; +import org.nutz.dao.interceptor.annotation.PrevInsert; + +@Data +@EqualsAndHashCode(callSuper = true) +@Table("retired_group_unit") +@Comment("离退休小组组成单位") +public class RetiredGroupUnit extends BaseModel { + + @Name + @Comment("ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) + private String id; + + @Column + @Comment("小组ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String retiredGroupId; + + @Column + @Comment("单位ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String unitId; +} + diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/retired/group/service/RetiredGroupService.java b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/group/service/RetiredGroupService.java new file mode 100644 index 0000000..6af96c3 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/group/service/RetiredGroupService.java @@ -0,0 +1,52 @@ +package com.budwk.app.zhgh.staffmanage.retired.group.service; + +import com.budwk.app.base.page.Pagination; +import com.budwk.app.base.param.PageForm; +import com.budwk.app.base.service.BaseService; +import com.budwk.app.zhgh.staffmanage.retired.group.models.RetiredGroup; +import org.nutz.lang.util.NutMap; + +import java.util.List; + +public interface RetiredGroupService extends BaseService { + + /** 查询离退休小组树。 */ + List getTree(); + + /** 新增或修改离退休小组。 */ + void saveGroup(RetiredGroup retiredGroup); + + /** 分页查询离退休小组。 */ + Pagination groupPageData(PageForm pageForm); + + /** 删除离退休小组及其单位关联。 */ + void deleteGroup(String id); + + /** 分页查询小组组成单位。 */ + Pagination componentUnitPageData(PageForm pageForm, String groupId); + + /** 查询小组已配置单位 ID。 */ + List groupComponentUnit(String groupId); + + /** 查询可配置到当前小组的单位。 */ + List notSetUnit(String groupId); + + /** 保存小组组成单位。 */ + void setComponentUnit(String groupId, String[] units); + + /** 分页查询小组覆盖的离退休人员。 */ + Pagination groupUser(PageForm pageForm, String groupId); + + /** 设置小组负责人。 */ + void setGroupLeader(String userId, String groupId); + + /** 取消小组负责人。 */ + void removeGroupLeader(String userId, String groupId); + + /** 查询小组统计数据。 */ + List statisticsData(String retiredGroupId); + + /** 查询全部小组选项。 */ + List options(); +} + diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/retired/group/service/impl/RetiredGroupServiceImpl.java b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/group/service/impl/RetiredGroupServiceImpl.java new file mode 100644 index 0000000..f341817 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/group/service/impl/RetiredGroupServiceImpl.java @@ -0,0 +1,222 @@ +package com.budwk.app.zhgh.staffmanage.retired.group.service.impl; + +import cn.dev33.satoken.stp.StpUtil; +import cn.hutool.core.util.StrUtil; +import com.budwk.app.base.page.Pagination; +import com.budwk.app.base.param.PageForm; +import com.budwk.app.base.service.impl.BaseServiceImpl; +import com.budwk.app.sys.models.Sys_user_role; +import com.budwk.app.web.commons.auth.utils.AuthUtil; +import com.budwk.app.zhgh.staffmanage.retired.group.models.RetiredGroup; +import com.budwk.app.zhgh.staffmanage.retired.group.models.RetiredGroupUnit; +import com.budwk.app.zhgh.staffmanage.retired.group.service.RetiredGroupService; +import org.nutz.dao.Chain; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; +import org.nutz.dao.util.Daos; +import org.nutz.dao.util.cri.SqlExpressionGroup; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.Lang; +import org.nutz.lang.util.NutMap; + +import java.util.Arrays; +import java.util.List; + +@IocBean(args = {"refer:dao"}) +public class RetiredGroupServiceImpl extends BaseServiceImpl implements RetiredGroupService { + private static final String GROUP_LEADER_ROLE_CODE = "BRANCH_UNION_GROUP_LEADER"; + private static final List RETIRED_STATES = List.of("退休", "离休", "离退休"); + + public RetiredGroupServiceImpl(Dao dao) { + super(dao); + } + + @Override + public List getTree() { + NutMap topMap = NutMap.NEW().addv("label", "离退休小组").addv("id", "1"); + Sql sql = Sqls.create("select id, groupName as label from retired_group $condition"); + Cnd cnd = Cnd.NEW(); + cnd.asc("groupCode"); + appendGroupScope(cnd, "id"); + sql.setCondition(cnd); + topMap.put("children", listMap(sql)); + return List.of(topMap); + } + + @Override + public void saveGroup(RetiredGroup retiredGroup) { + dao().insertOrUpdate(retiredGroup); + } + + @Override + public Pagination groupPageData(PageForm pageForm) { + Sql sql = Sqls.create("select * from retired_group $condition"); + Cnd cnd = Cnd.NEW(); + appendGroupScope(cnd, "id"); + if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) { + SqlExpressionGroup seg = new SqlExpressionGroup(); + seg.orLike("groupName", pageForm.getSearchKeyword()); + seg.orLike("groupCode", pageForm.getSearchKeyword()); + cnd.and(seg); + } + cnd.asc("groupCode"); + sql.setCondition(cnd); + return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + } + + @Override + public void deleteGroup(String id) { + dao().clear(RetiredGroup.class, Cnd.where("id", "=", id)); + dao().clear(RetiredGroupUnit.class, Cnd.where("retiredGroupId", "=", id)); + } + + @Override + public Pagination componentUnitPageData(PageForm pageForm, String groupId) { + Sql sql = Sqls.create("select * from sys_unit $condition"); + Cnd cnd = Cnd.NEW(); + cnd.and("id", "in", Sqls.create("select unitId from retired_group_unit where retiredGroupId = @retiredGroupId").setParam("retiredGroupId", groupId)); + if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) { + cnd.and(Cnd.likeEX("name", pageForm.getSearchKeyword())); + } + sql.setCondition(cnd); + return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + } + + @Override + public List groupComponentUnit(String groupId) { + Sql sql = Sqls.create("select unitId from retired_group_unit where retiredGroupId = @groupId").setParam("groupId", groupId); + return (List) Daos.query(dao(), sql.toString(), Sqls.callback.strs()); + } + + @Override + public List notSetUnit(String groupId) { + Sql sql = Sqls.create(""" + select id, name, unitcode + from sys_unit + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.or("id", "in", Sqls.create("select unitId from retired_group_unit where retiredGroupId = @retiredGroupId").setParam("retiredGroupId", groupId)); + cnd.or("id", "not in", Sqls.create("select unitId from retired_group_unit where retiredGroupId != @retiredGroupId").setParam("retiredGroupId", groupId)); + cnd.and("unitLevel", "=", 2); + cnd.asc("unitcode"); + sql.setCondition(cnd); + return listMap(sql); + } + + @Override + public void setComponentUnit(String groupId, String[] units) { + dao().clear(RetiredGroupUnit.class, Cnd.where("retiredGroupId", "=", groupId)); + if (units == null || units.length == 0) { + return; + } + List insertGroupUnits = Arrays.stream(units).map(v -> { + RetiredGroupUnit groupUnit = new RetiredGroupUnit(); + groupUnit.setRetiredGroupId(groupId); + groupUnit.setUnitId(v); + return groupUnit; + }).toList(); + dao().insert(insertGroupUnits); + } + + @Override + public Pagination groupUser(PageForm pageForm, String groupId) { + Sql sql = Sqls.create(""" + SELECT + u.id, + u.loginname, + u.username, + u.sex, + DATE(u.birthday) AS birthday, + u.mobile, + u.personType, + u.userState, + u.unitName as unitname, + u.unionName as unionname, + GROUP_CONCAT(DISTINCT r.code) as roleCode, + IFNULL(GROUP_CONCAT(DISTINCT r.name), '组员') as roleName + FROM vw_user u + LEFT JOIN sys_user_role sur ON sur.userId = u.id AND sur.unionGroupId = @groupId + LEFT JOIN sys_role r ON r.id = sur.roleId + $condition + """); + sql.setParam("groupId", groupId); + Cnd cnd = Cnd.NEW(); + cnd.and("u.unitId", "in", Sqls.create("select unitId from retired_group_unit where retiredGroupId = @retiredGroupId").setParam("retiredGroupId", groupId)); + cnd.and("u.userState", "in", RETIRED_STATES); + if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) { + SqlExpressionGroup seg = new SqlExpressionGroup(); + seg.orLike("u.username", pageForm.getSearchKeyword()); + seg.orLike("u.loginname", pageForm.getSearchKeyword()); + cnd.and(seg); + } + cnd.groupBy("u.id"); + cnd.desc("r.name"); + sql.setCondition(cnd); + return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + } + + @Override + public void setGroupLeader(String userId, String groupId) { + String roleId = groupLeaderRoleId(); + dao().clear(Sys_user_role.class, Cnd.where("userId", "=", userId).and("roleId", "=", roleId)); + Sys_user_role role = new Sys_user_role(); + role.setUserId(userId); + role.setRoleId(roleId); + role.setUnionGroupId(groupId); + dao().insert(role); + } + + @Override + public void removeGroupLeader(String userId, String groupId) { + String roleId = groupLeaderRoleId(); + dao().clear(Sys_user_role.class, Cnd.where("userId", "=", userId) + .and("roleId", "=", roleId) + .and("unionGroupId", "=", groupId)); + } + + @Override + public List statisticsData(String retiredGroupId) { + Sql sql = Sqls.create(""" + SELECT + g.id, + g.groupName, + g.groupCode, + COUNT(u.userState) AS retireCount, + GROUP_CONCAT(DISTINCT n.name) as componentUnit + FROM retired_group g + LEFT JOIN retired_group_unit rgu ON rgu.retiredGroupId = g.id + LEFT JOIN sys_unit n on n.id = rgu.unitId + LEFT JOIN vw_user u ON u.unitId = rgu.unitId AND u.userState IN ('退休', '离休', '离退休') + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.andEX("g.id", "=", retiredGroupId); + appendGroupScope(cnd, "g.id"); + cnd.groupBy("g.id", "g.groupName", "g.groupCode"); + cnd.asc("g.groupCode"); + sql.setCondition(cnd); + return listMap(sql); + } + + @Override + public List options() { + return query(Cnd.NEW().asc("groupCode")); + } + + private void appendGroupScope(Cnd cnd, String groupIdColumn) { + if (!AuthUtil.hasRoleOr("ltbzr", "ltbfzr", "ltbms", "sysadmin", "SYSADMIN") && StpUtil.hasRole("ltbxzzz")) { + cnd.and(groupIdColumn, "in", Sqls.create("select unionGroupId from sys_user_role where userId = @userId and roleId = @roleId") + .setParam("userId", StpUtil.getLoginIdAsString()) + .setParam("roleId", groupLeaderRoleId())); + } + } + + private String groupLeaderRoleId() { + // 当前库角色 ID 可能和参考项目不同,按角色编码取 ID,避免硬编码旧数据导致组长无法回显。 + return dao().fetch("sys_role", Cnd.where("code", "=", GROUP_LEADER_ROLE_CODE)).getString("id"); + } +} + diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/retired/partyBranch/controller/RetiredPartyBranchManageController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/partyBranch/controller/RetiredPartyBranchManageController.java new file mode 100644 index 0000000..a7e31e4 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/partyBranch/controller/RetiredPartyBranchManageController.java @@ -0,0 +1,117 @@ +package com.budwk.app.zhgh.staffmanage.retired.partyBranch.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import com.budwk.app.base.param.PageForm; +import com.budwk.app.base.result.Result; +import com.budwk.app.zhgh.staffmanage.retired.partyBranch.models.RetiredPartyBranch; +import com.budwk.app.zhgh.staffmanage.retired.partyBranch.service.RetiredPartyBranchService; +import lombok.extern.slf4j.Slf4j; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.ioc.aop.Aop; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +@Slf4j +@IocBean +@Ok("json:full") +@At("/platform/retired/partyBranch/manage") +public class RetiredPartyBranchManageController { + + @Inject + private RetiredPartyBranchService retiredPartyBranchService; + + @At("") + @Ok("beetl:/platform/zhgh/staffmanage/retired/partyBranch/manage/index.html") + @SaCheckPermission("retired.partyBranch.manage") + public void index() { + } + + @At + @SaCheckPermission("retired.partyBranch.manage") + public Result getTree() { + return Result.success(retiredPartyBranchService.getTree()); + } + + @At + @SaCheckPermission("retired.partyBranch.manage") + public Result doSetPartyBranch(@Param("..") RetiredPartyBranch retiredPartyBranch) { + retiredPartyBranchService.savePartyBranch(retiredPartyBranch); + return Result.success(); + } + + @At + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("retired.partyBranch.manage") + public Result deletePartyBranch(String id) { + retiredPartyBranchService.deletePartyBranch(id); + return Result.success(); + } + + @At + @SaCheckPermission("retired.partyBranch.manage") + public Result partyBranchPageData(PageForm pageForm) { + return Result.success(retiredPartyBranchService.partyBranchPageData(pageForm)); + } + + @At + @SaCheckPermission("retired.partyBranch.manage") + public Result partyBranchUserPageData(PageForm pageForm, String partyBranchId) { + return Result.success(retiredPartyBranchService.partyBranchUserPageData(pageForm, partyBranchId)); + } + + @At + @SaCheckPermission("retired.partyBranch.manage") + public Result queryNonSetUser(String val) { + return Result.success(retiredPartyBranchService.queryNonSetUser(val)); + } + + @At + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("retired.partyBranch.manage") + public Result doAddBranchPartyUser(String partyBranchId, @Param("userIds") String[] userIds) { + retiredPartyBranchService.addBranchPartyUser(partyBranchId, userIds); + return Result.success(); + } + + @At + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("retired.partyBranch.manage") + public Result deleteUser(String userId, String partyBranchId) { + retiredPartyBranchService.deleteUser(userId, partyBranchId); + return Result.success(); + } + + @At + @SaCheckPermission("retired.partyBranch.manage") + public Result queryUserByPartyBranchId(String partyBranchId, String val) { + return Result.success(retiredPartyBranchService.queryUserByPartyBranchId(partyBranchId, val)); + } + + @At + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("retired.partyBranch.manage") + public Result doAddCommitteeUser(String partyBranchId, String userId, String roleCode) { + retiredPartyBranchService.addCommitteeUser(partyBranchId, userId, roleCode); + return Result.success(); + } + + @At + @SaCheckPermission("retired.partyBranch.manage") + public Result partyBranchCommitteePageData(PageForm pageForm, String partyBranchId) { + return Result.success(retiredPartyBranchService.partyBranchCommitteePageData(pageForm, partyBranchId)); + } + + @At + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("retired.partyBranch.manage") + public Result deleteCommittee(String userId, String partyBranchId) { + retiredPartyBranchService.deleteCommittee(userId, partyBranchId); + return Result.success(); + } +} + + + diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/retired/partyBranch/controller/RetiredPartyBranchStatisticsController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/partyBranch/controller/RetiredPartyBranchStatisticsController.java new file mode 100644 index 0000000..ca4eb4b --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/partyBranch/controller/RetiredPartyBranchStatisticsController.java @@ -0,0 +1,43 @@ +package com.budwk.app.zhgh.staffmanage.retired.partyBranch.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import com.budwk.app.base.result.Result; +import com.budwk.app.zhgh.staffmanage.retired.partyBranch.service.RetiredPartyBranchService; +import lombok.extern.slf4j.Slf4j; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +@Slf4j +@IocBean +@Ok("json:full") +@At("/platform/retired/partyBranch/statistics") +public class RetiredPartyBranchStatisticsController { + + @Inject + private RetiredPartyBranchService retiredPartyBranchService; + + @At("") + @Ok("beetl:/platform/zhgh/staffmanage/retired/partyBranch/statistics/index.html") + @SaCheckPermission("retired.partyBranch.statistics") + public void index() { + } + + @At + @SaCheckPermission("retired.partyBranch.statistics") + public Result data(@Param("retiredPartyBranchId") String retiredPartyBranchId) { + return Result.success(retiredPartyBranchService.statisticsData(retiredPartyBranchId)); + } + + @At + @SaCheckPermission("retired.partyBranch.statistics") + public Result retiredPartyBranch() { + return Result.success(retiredPartyBranchService.options()); + } +} + + + + diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/retired/partyBranch/models/RetiredPartyBranch.java b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/partyBranch/models/RetiredPartyBranch.java new file mode 100644 index 0000000..5ae1520 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/partyBranch/models/RetiredPartyBranch.java @@ -0,0 +1,36 @@ +package com.budwk.app.zhgh.staffmanage.retired.partyBranch.models; + +import com.budwk.app.base.model.BaseModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.nutz.dao.entity.annotation.ColDefine; +import org.nutz.dao.entity.annotation.ColType; +import org.nutz.dao.entity.annotation.Column; +import org.nutz.dao.entity.annotation.Comment; +import org.nutz.dao.entity.annotation.Name; +import org.nutz.dao.entity.annotation.Table; +import org.nutz.dao.interceptor.annotation.PrevInsert; + +@Data +@EqualsAndHashCode(callSuper = true) +@Table("retired_party_branch") +@Comment("离退休党支部") +public class RetiredPartyBranch extends BaseModel { + + @Name + @Comment("ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) + private String id; + + @Column + @Comment("党支部名称") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String partyBranchName; + + @Column + @Comment("党支部代码") + @ColDefine(type = ColType.INT) + private Integer partyBranchCode; +} + diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/retired/partyBranch/models/RetiredPartyBranchUser.java b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/partyBranch/models/RetiredPartyBranchUser.java new file mode 100644 index 0000000..e5f2416 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/partyBranch/models/RetiredPartyBranchUser.java @@ -0,0 +1,41 @@ +package com.budwk.app.zhgh.staffmanage.retired.partyBranch.models; + +import com.budwk.app.base.model.BaseModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.nutz.dao.entity.annotation.ColDefine; +import org.nutz.dao.entity.annotation.ColType; +import org.nutz.dao.entity.annotation.Column; +import org.nutz.dao.entity.annotation.Comment; +import org.nutz.dao.entity.annotation.Name; +import org.nutz.dao.entity.annotation.Table; +import org.nutz.dao.interceptor.annotation.PrevInsert; + +@Data +@EqualsAndHashCode(callSuper = true) +@Table("retired_party_branch_user") +@Comment("离退休党支部人员") +public class RetiredPartyBranchUser extends BaseModel { + + @Name + @Comment("ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) + private String id; + + @Column + @Comment("党支部ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String partyBranchId; + + @Column + @Comment("用户ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String userId; + + @Column + @Comment("党支部委员角色编码") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String roleCode; +} + diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/retired/partyBranch/service/RetiredPartyBranchService.java b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/partyBranch/service/RetiredPartyBranchService.java new file mode 100644 index 0000000..fe8d5dd --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/partyBranch/service/RetiredPartyBranchService.java @@ -0,0 +1,55 @@ +package com.budwk.app.zhgh.staffmanage.retired.partyBranch.service; + +import com.budwk.app.base.page.Pagination; +import com.budwk.app.base.param.PageForm; +import com.budwk.app.base.service.BaseService; +import com.budwk.app.zhgh.staffmanage.retired.partyBranch.models.RetiredPartyBranch; +import org.nutz.lang.util.NutMap; + +import java.util.List; + +public interface RetiredPartyBranchService extends BaseService { + + /** 查询离退休党支部树。 */ + List getTree(); + + /** 新增或修改离退休党支部。 */ + void savePartyBranch(RetiredPartyBranch retiredPartyBranch); + + /** 删除离退休党支部及其人员关联。 */ + void deletePartyBranch(String id); + + /** 分页查询离退休党支部。 */ + Pagination partyBranchPageData(PageForm pageForm); + + /** 分页查询党支部人员。 */ + Pagination partyBranchUserPageData(PageForm pageForm, String partyBranchId); + + /** 查询未设置党支部的离退休人员。 */ + List queryNonSetUser(String val); + + /** 批量添加党支部人员。 */ + void addBranchPartyUser(String partyBranchId, String[] userIds); + + /** 删除党支部人员。 */ + void deleteUser(String userId, String partyBranchId); + + /** 查询党支部下可设为委员的人员。 */ + List queryUserByPartyBranchId(String partyBranchId, String val); + + /** 设置党支部委员角色。 */ + void addCommitteeUser(String partyBranchId, String userId, String roleCode); + + /** 分页查询党支部委员。 */ + Pagination partyBranchCommitteePageData(PageForm pageForm, String partyBranchId); + + /** 删除党支部委员角色。 */ + void deleteCommittee(String userId, String partyBranchId); + + /** 查询党支部统计数据。 */ + List statisticsData(String retiredPartyBranchId); + + /** 查询全部党支部选项。 */ + List options(); +} + diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/retired/partyBranch/service/impl/RetiredPartyBranchServiceImpl.java b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/partyBranch/service/impl/RetiredPartyBranchServiceImpl.java new file mode 100644 index 0000000..77192a8 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/partyBranch/service/impl/RetiredPartyBranchServiceImpl.java @@ -0,0 +1,232 @@ +package com.budwk.app.zhgh.staffmanage.retired.partyBranch.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.budwk.app.base.page.Pagination; +import com.budwk.app.base.param.PageForm; +import com.budwk.app.base.service.impl.BaseServiceImpl; +import com.budwk.app.zhgh.staffmanage.retired.partyBranch.models.RetiredPartyBranch; +import com.budwk.app.zhgh.staffmanage.retired.partyBranch.models.RetiredPartyBranchUser; +import com.budwk.app.zhgh.staffmanage.retired.partyBranch.service.RetiredPartyBranchService; +import org.nutz.dao.Chain; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; +import org.nutz.dao.util.cri.SqlExpressionGroup; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.util.NutMap; + +import java.util.Arrays; +import java.util.List; + +@IocBean(args = {"refer:dao"}) +public class RetiredPartyBranchServiceImpl extends BaseServiceImpl implements RetiredPartyBranchService { + private static final List RETIRED_STATES = List.of("退休", "离休", "离退休"); + + public RetiredPartyBranchServiceImpl(Dao dao) { + super(dao); + } + + @Override + public List getTree() { + NutMap topMap = NutMap.NEW().addv("label", "离退休党支部").addv("id", "1"); + Sql sql = Sqls.create("select id, partyBranchName as label from retired_party_branch order by partyBranchCode"); + topMap.put("children", listMap(sql)); + return List.of(topMap); + } + + @Override + public void savePartyBranch(RetiredPartyBranch retiredPartyBranch) { + dao().insertOrUpdate(retiredPartyBranch); + } + + @Override + public void deletePartyBranch(String id) { + dao().delete(RetiredPartyBranch.class, id); + dao().clear(RetiredPartyBranchUser.class, Cnd.where("partyBranchId", "=", id)); + } + + @Override + public Pagination partyBranchPageData(PageForm pageForm) { + Sql sql = Sqls.create("select * from retired_party_branch $condition"); + Cnd cnd = Cnd.NEW(); + if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) { + SqlExpressionGroup seg = new SqlExpressionGroup(); + seg.orLike("partyBranchName", pageForm.getSearchKeyword()); + seg.orLike("partyBranchCode", pageForm.getSearchKeyword()); + cnd.and(seg); + } + cnd.asc("partyBranchCode"); + sql.setCondition(cnd); + return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + } + + @Override + public Pagination partyBranchUserPageData(PageForm pageForm, String partyBranchId) { + Sql sql = Sqls.create(""" + SELECT + u.id, + u.loginname, + u.username, + u.sex, + u.birthday, + u.mobile, + u.personType, + u.userState, + u.unitName as unitname, + u.unionName as unionname + FROM retired_party_branch_user rpbu + LEFT JOIN vw_user u ON u.id = rpbu.userId + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.and("rpbu.partyBranchId", "=", partyBranchId); + if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) { + SqlExpressionGroup seg = new SqlExpressionGroup(); + seg.orLike("u.username", pageForm.getSearchKeyword()); + seg.orLike("u.loginname", pageForm.getSearchKeyword()); + cnd.and(seg); + } + sql.setCondition(cnd); + return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + } + + @Override + public List queryNonSetUser(String val) { + Sql sql = Sqls.create(""" + SELECT + u.id, + u.username, + u.loginname, + u.unitName as unitname, + u.userState, + u.political + FROM vw_user u + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.and("u.userState", "in", RETIRED_STATES); + cnd.and("u.id", "not in", Sqls.create("select userId from retired_party_branch_user")); + if (StrUtil.isNotBlank(val)) { + SqlExpressionGroup seg = new SqlExpressionGroup(); + seg.orLike("u.username", val); + seg.orLike("u.loginname", val); + cnd.and(seg); + } + sql.setCondition(cnd); + return listPageMap(1, 10, sql).getList(); + } + + @Override + public void addBranchPartyUser(String partyBranchId, String[] userIds) { + if (userIds == null || userIds.length == 0) { + return; + } + List users = Arrays.stream(userIds).map(v -> { + RetiredPartyBranchUser partyBranchUser = new RetiredPartyBranchUser(); + partyBranchUser.setPartyBranchId(partyBranchId); + partyBranchUser.setUserId(v); + return partyBranchUser; + }).toList(); + dao().insert(users); + } + + @Override + public void deleteUser(String userId, String partyBranchId) { + dao().clear(RetiredPartyBranchUser.class, Cnd.where("userId", "=", userId).and("partyBranchId", "=", partyBranchId)); + } + + @Override + public List queryUserByPartyBranchId(String partyBranchId, String val) { + Sql sql = Sqls.create(""" + SELECT + u.id, + u.username, + u.loginname, + u.unitName as unitname + FROM retired_party_branch_user rpbu + LEFT JOIN vw_user u ON u.id = rpbu.userId + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.and("u.userState", "in", RETIRED_STATES); + cnd.and("rpbu.partyBranchId", "=", partyBranchId); + if (StrUtil.isNotBlank(val)) { + SqlExpressionGroup seg = new SqlExpressionGroup(); + seg.orLike("u.username", val); + seg.orLike("u.loginname", val); + cnd.and(seg); + } + sql.setCondition(cnd); + return listMap(sql); + } + + @Override + public void addCommitteeUser(String partyBranchId, String userId, String roleCode) { + dao().update(RetiredPartyBranchUser.class, Chain.make("roleCode", roleCode), Cnd.where("partyBranchId", "=", partyBranchId).and("userId", "=", userId)); + } + + @Override + public Pagination partyBranchCommitteePageData(PageForm pageForm, String partyBranchId) { + Sql sql = Sqls.create(""" + SELECT + u.id, + u.loginname, + u.username, + u.sex, + u.birthday, + u.mobile, + u.personType, + u.userState, + u.unitName as unitname, + u.unionName as unionname, + dict.name as roleName + FROM retired_party_branch_user rpbu + LEFT JOIN sys_dict dict ON dict.code = rpbu.roleCode + LEFT JOIN vw_user u ON u.id = rpbu.userId + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.and("rpbu.roleCode", "is not", null); + cnd.and("rpbu.partyBranchId", "=", partyBranchId); + if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) { + SqlExpressionGroup seg = new SqlExpressionGroup(); + seg.orLike("u.username", pageForm.getSearchKeyword()); + seg.orLike("u.loginname", pageForm.getSearchKeyword()); + cnd.and(seg); + } + sql.setCondition(cnd); + return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + } + + @Override + public void deleteCommittee(String userId, String partyBranchId) { + dao().update(RetiredPartyBranchUser.class, Chain.make("roleCode", null), Cnd.where("userId", "=", userId).and("partyBranchId", "=", partyBranchId)); + } + + @Override + public List statisticsData(String retiredPartyBranchId) { + Sql sql = Sqls.create(""" + SELECT + rpb.id, + rpb.partyBranchName, + rpb.partyBranchCode, + count(rpbu.userId) AS userCount + FROM retired_party_branch rpb + LEFT JOIN retired_party_branch_user rpbu ON rpbu.partyBranchId = rpb.id + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.andEX("rpb.id", "=", retiredPartyBranchId); + cnd.groupBy("rpb.id"); + cnd.asc("rpb.partyBranchCode"); + sql.setCondition(cnd); + return listMap(sql); + } + + @Override + public List options() { + return query(Cnd.NEW().asc("partyBranchCode")); + } +} + diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/constant/RetiredUserChangeType.java b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/constant/RetiredUserChangeType.java new file mode 100644 index 0000000..3eb03c9 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/constant/RetiredUserChangeType.java @@ -0,0 +1,16 @@ +package com.budwk.app.zhgh.staffmanage.retired.user.constant; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@AllArgsConstructor +@Getter +public enum RetiredUserChangeType { + JOB_TO_RETIRED("在职转离退休", 1), + RETIRED_TO_DEAD("离退休转去世", 2); + + private final String desc; + private final int code; +} + + diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/controller/RetiredChangeController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/controller/RetiredChangeController.java new file mode 100644 index 0000000..5366469 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/controller/RetiredChangeController.java @@ -0,0 +1,42 @@ +package com.budwk.app.zhgh.staffmanage.retired.user.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import com.budwk.app.base.param.PageForm; +import com.budwk.app.base.result.Result; +import com.budwk.app.zhgh.staffmanage.retired.user.service.RetiredUserService; +import lombok.extern.slf4j.Slf4j; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +@Slf4j +@IocBean +@Ok("json:full") +@At("/platform/retired/change") +public class RetiredChangeController { + + @Inject + private RetiredUserService retiredUserService; + + @At("") + @Ok("beetl:/platform/zhgh/staffmanage/retired/change/index.html") + @SaCheckPermission("retired.change") + public void index() { + } + + @At + @SaCheckPermission("retired.change") + public Result pageData(PageForm pageForm, + Integer year, + @Param("unitId") String unitId, + @Param("unionId") String unionId, + @Param("changeType") Integer changeType) { + return Result.success(retiredUserService.changePageData(pageForm, year, unitId, unionId, changeType)); + } +} + + + + diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/controller/RetiredHistoryController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/controller/RetiredHistoryController.java new file mode 100644 index 0000000..c70523e --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/controller/RetiredHistoryController.java @@ -0,0 +1,61 @@ +package com.budwk.app.zhgh.staffmanage.retired.user.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import com.budwk.app.base.param.PageForm; +import com.budwk.app.base.result.Result; +import com.budwk.app.zhgh.staffmanage.retired.group.service.RetiredGroupService; +import com.budwk.app.zhgh.staffmanage.retired.partyBranch.service.RetiredPartyBranchService; +import com.budwk.app.zhgh.staffmanage.retired.user.service.RetiredUserService; +import lombok.extern.slf4j.Slf4j; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +@Slf4j +@IocBean +@Ok("json:full") +@At("/platform/retired/history") +public class RetiredHistoryController { + + @Inject + private RetiredUserService retiredUserService; + @Inject + private RetiredGroupService retiredGroupService; + @Inject + private RetiredPartyBranchService retiredPartyBranchService; + + @At("") + @Ok("beetl:/platform/zhgh/staffmanage/retired/history/index.html") + @SaCheckPermission("retired.history") + public void index() { + } + + @At + @SaCheckPermission("retired.history") + public Result pageData(PageForm pageForm, + @Param("year") Integer year, + @Param("unitId") String unitId, + @Param("unionId") String unionId, + @Param("retiredGroupId") String retiredGroupId, + @Param("retiredPartyBranchId") String retiredPartyBranchId) { + return Result.success(retiredUserService.historyPageData(pageForm, year, unitId, unionId, retiredGroupId, retiredPartyBranchId)); + } + + @At + @SaCheckPermission("retired.history") + public Result retiredGroup() { + return Result.success(retiredGroupService.options()); + } + + @At + @SaCheckPermission("retired.history") + public Result retiredPartyBranch() { + return Result.success(retiredPartyBranchService.options()); + } +} + + + + diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/controller/RetiredListController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/controller/RetiredListController.java new file mode 100644 index 0000000..b16ae29 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/controller/RetiredListController.java @@ -0,0 +1,121 @@ +package com.budwk.app.zhgh.staffmanage.retired.user.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import com.budwk.app.base.param.PageForm; +import com.budwk.app.base.result.Result; +import com.budwk.app.zhgh.staffmanage.retired.group.service.RetiredGroupService; +import com.budwk.app.zhgh.staffmanage.retired.partyBranch.service.RetiredPartyBranchService; +import com.budwk.app.zhgh.staffmanage.retired.user.service.RetiredUserService; +import lombok.extern.slf4j.Slf4j; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.ioc.aop.Aop; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +import java.util.Date; + +@Slf4j +@IocBean +@Ok("json:full") +@At("/platform/retired/list") +public class RetiredListController { + + @Inject + private RetiredUserService retiredUserService; + @Inject + private RetiredGroupService retiredGroupService; + @Inject + private RetiredPartyBranchService retiredPartyBranchService; + + @At("") + @Ok("beetl:/platform/zhgh/staffmanage/retired/list/index.html") + @SaCheckPermission("retired.list") + public void index() { + } + + @At + @SaCheckPermission("retired.list") + public Result pageData(PageForm pageForm, + @Param("unitId") String unitId, + @Param("unionId") String unionId, + @Param("retiredGroupId") String retiredGroupId, + @Param("retiredPartyBranchId") String retiredPartyBranchId) { + return Result.success(retiredUserService.pageData(pageForm, unitId, unionId, retiredGroupId, retiredPartyBranchId)); + } + + @At + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("retired.list") + public Result changeToDie(String userId, Date deathDate) { + retiredUserService.changeToDie(userId, deathDate); + return Result.success(); + } + + @At + @SaCheckPermission("retired.list") + public Result nonRetiredUserPageData(PageForm pageForm) { + return Result.success(retiredUserService.nonRetiredUserPageData(pageForm)); + } + + @At + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("retired.list") + public Result doBatchJoinRetire(@Param("userIds") String[] userIds) { + retiredUserService.batchJoinRetire(userIds); + return Result.success(); + } + + @At + @SaCheckPermission("retired.list") + public Result retiredGroup() { + return Result.success(retiredGroupService.options()); + } + + @At + @SaCheckPermission("retired.list") + public Result retiredPartyBranch() { + return Result.success(retiredPartyBranchService.options()); + } + + @At + @SaCheckPermission("retired.list") + public Result backUp() { + retiredUserService.backUp(); + return Result.success(); + } + + @At + @SaCheckPermission("retired.list") + public Result userInfo(String userId) { + return Result.success(retiredUserService.userInfo(userId)); + } + + @At + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("retired.list") + public Result doSubmit(@Param("user") String user, @Param("userId") String userId) { + retiredUserService.submit(user, userId); + return Result.success(); + } + + @At + @SaCheckPermission("retired.list") + public Result getInfo(String id) { + return Result.success(retiredUserService.getInfo(id)); + } + + @At + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("retired.list") + public Result doDelete(String id) { + retiredUserService.deleteRetired(id); + return Result.success(); + } +} + + + + diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/controller/RetiredStatisticsController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/controller/RetiredStatisticsController.java new file mode 100644 index 0000000..af5d9c7 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/controller/RetiredStatisticsController.java @@ -0,0 +1,60 @@ +package com.budwk.app.zhgh.staffmanage.retired.user.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import com.budwk.app.base.param.PageForm; +import com.budwk.app.base.result.Result; +import com.budwk.app.zhgh.staffmanage.retired.group.service.RetiredGroupService; +import com.budwk.app.zhgh.staffmanage.retired.partyBranch.service.RetiredPartyBranchService; +import com.budwk.app.zhgh.staffmanage.retired.user.service.RetiredUserService; +import lombok.extern.slf4j.Slf4j; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +@Slf4j +@IocBean +@Ok("json:full") +@At("/platform/retired/statistics") +public class RetiredStatisticsController { + + @Inject + private RetiredUserService retiredUserService; + @Inject + private RetiredGroupService retiredGroupService; + @Inject + private RetiredPartyBranchService retiredPartyBranchService; + + @At("") + @Ok("beetl:/platform/zhgh/staffmanage/retired/statistics/index.html") + @SaCheckPermission("retired.statistics") + public void index() { + } + + @At + @SaCheckPermission("retired.statistics") + public Result pageData(PageForm pageForm, + @Param("unitId") String unitId, + @Param("unionId") String unionId, + @Param("retiredGroupId") String retiredGroupId, + @Param("retiredPartyBranchId") String retiredPartyBranchId) { + return Result.success(retiredUserService.statisticsPageData(pageForm, unitId, unionId, retiredGroupId, retiredPartyBranchId)); + } + + @At + @SaCheckPermission("retired.statistics") + public Result retiredGroup() { + return Result.success(retiredGroupService.options()); + } + + @At + @SaCheckPermission("retired.statistics") + public Result retiredPartyBranch() { + return Result.success(retiredPartyBranchService.options()); + } +} + + + + diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/models/RetiredUserChange.java b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/models/RetiredUserChange.java new file mode 100644 index 0000000..27a4238 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/models/RetiredUserChange.java @@ -0,0 +1,43 @@ +package com.budwk.app.zhgh.staffmanage.retired.user.models; + +import com.budwk.app.base.model.BaseModel; +import com.budwk.app.zhgh.staffmanage.retired.user.constant.RetiredUserChangeType; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.nutz.dao.entity.annotation.ColDefine; +import org.nutz.dao.entity.annotation.ColType; +import org.nutz.dao.entity.annotation.Column; +import org.nutz.dao.entity.annotation.Comment; +import org.nutz.dao.entity.annotation.Name; +import org.nutz.dao.entity.annotation.Table; +import org.nutz.dao.interceptor.annotation.PrevInsert; + +import java.util.Date; + +@Data +@EqualsAndHashCode(callSuper = true) +@Table("retired_user_change") +@Comment("离退休人员变动记录") +public class RetiredUserChange extends BaseModel { + + @Name + @Comment("ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) + private String id; + + @Column + @Comment("用户ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String userId; + + @Column + @Comment("变动时间") + @ColDefine(type = ColType.DATETIME) + private Date changeDate; +@Column + @Comment("变动类型") + @ColDefine(type = ColType.INT) + private Integer changeType; +} + diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/models/RetiredUserHistory.java b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/models/RetiredUserHistory.java new file mode 100644 index 0000000..3734416 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/models/RetiredUserHistory.java @@ -0,0 +1,33 @@ +package com.budwk.app.zhgh.staffmanage.retired.user.models; + +import com.budwk.app.sys.models.Sys_user; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.nutz.dao.entity.annotation.ColDefine; +import org.nutz.dao.entity.annotation.ColType; +import org.nutz.dao.entity.annotation.Column; +import org.nutz.dao.entity.annotation.Comment; +import org.nutz.dao.entity.annotation.Name; +import org.nutz.dao.entity.annotation.Table; +import org.nutz.dao.interceptor.annotation.PrevInsert; + +@Data +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = true) +@Table("retired_user_history") +@Comment("离退休人员年度历史快照") +public class RetiredUserHistory extends Sys_user { + + @Name + @Comment("ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) + private String id; + + @Column + @Comment("年度") + @ColDefine(type = ColType.INT, width = 4) + private Integer year; +} + diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/service/RetiredUserService.java b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/service/RetiredUserService.java new file mode 100644 index 0000000..4260a8f --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/service/RetiredUserService.java @@ -0,0 +1,49 @@ +package com.budwk.app.zhgh.staffmanage.retired.user.service; + +import com.budwk.app.base.page.Pagination; +import com.budwk.app.base.param.PageForm; +import com.budwk.app.base.service.BaseService; +import com.budwk.app.sys.models.Sys_user; +import org.nutz.lang.util.NutMap; + +import java.util.Date; + +public interface RetiredUserService extends BaseService { + + /** 分页查询离退休人员名单。 */ + Pagination pageData(PageForm pageForm, String unitId, String unionId, String retiredGroupId, String retiredPartyBranchId); + + /** 将离退休人员设置为去世并写入变动记录。 */ + void changeToDie(String userId, Date deathDate); + + /** 分页查询可加入离退休名单的人员。 */ + Pagination nonRetiredUserPageData(PageForm pageForm); + + /** 批量将人员设置为离退休。 */ + void batchJoinRetire(String[] userIds); + + /** 按当前年度备份离退休人员快照。 */ + void backUp(); + + /** 查询人员详情展示数据。 */ + NutMap userInfo(String userId); + + /** 新增或修改离退休人员,userJson 为前端表单 JSON。 */ + void submit(String userJson, String userId); + + /** 查询人员编辑数据。 */ + Sys_user getInfo(String id); + + /** 将人员移出离退休名单。 */ + void deleteRetired(String id); + + /** 分页查询离退休人员变动记录。 */ + Pagination changePageData(PageForm pageForm, Integer year, String unitId, String unionId, Integer changeType); + + /** 分页查询离退休人员历史快照。 */ + Pagination historyPageData(PageForm pageForm, Integer year, String unitId, String unionId, String retiredGroupId, String retiredPartyBranchId); + + /** 分页查询离退休统计明细。 */ + Pagination statisticsPageData(PageForm pageForm, String unitId, String unionId, String retiredGroupId, String retiredPartyBranchId); +} + 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 new file mode 100644 index 0000000..fa8125b --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/retired/user/service/impl/RetiredUserServiceImpl.java @@ -0,0 +1,393 @@ +package com.budwk.app.zhgh.staffmanage.retired.user.service.impl; + +import cn.dev33.satoken.stp.StpUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import com.budwk.app.base.page.Pagination; +import com.budwk.app.base.param.PageForm; +import com.budwk.app.base.service.impl.BaseServiceImpl; +import com.budwk.app.sys.models.Sys_user; +import com.budwk.app.web.commons.auth.utils.AuthUtil; +import com.budwk.app.zhgh.staffmanage.retired.user.constant.RetiredUserChangeType; +import com.budwk.app.zhgh.staffmanage.retired.user.models.RetiredUserChange; +import com.budwk.app.zhgh.staffmanage.retired.user.models.RetiredUserHistory; +import com.budwk.app.zhgh.staffmanage.retired.user.service.RetiredUserService; +import org.nutz.dao.Chain; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; +import org.nutz.dao.util.Daos; +import org.nutz.dao.util.cri.SqlExpressionGroup; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.json.Json; +import org.nutz.lang.Lang; +import org.nutz.lang.random.R; +import org.nutz.lang.util.NutMap; +import org.springframework.beans.BeanUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +@IocBean(args = {"refer:dao"}) +public class RetiredUserServiceImpl extends BaseServiceImpl implements RetiredUserService { + private static final String GROUP_LEADER_ROLE_CODE = "BRANCH_UNION_GROUP_LEADER"; + private static final List RETIRED_STATES = List.of("退休", "离休", "离退休"); + + public RetiredUserServiceImpl(Dao dao) { + super(dao); + } + + @Override + public Pagination pageData(PageForm pageForm, String unitId, String unionId, String retiredGroupId, String retiredPartyBranchId) { + Sql sql = retiredUserSql(); + Cnd cnd = retiredUserCnd(pageForm, unitId, unionId, retiredGroupId, retiredPartyBranchId); + sql.setCondition(cnd); + return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + } + + @Override + public void changeToDie(String userId, Date deathDate) { + Date changeDate = deathDate == null ? new Date() : deathDate; + update(Chain.make("userState", "死亡").add("personType", "去世人员"), Cnd.where("id", "=", userId)); + insertChange(userId, RetiredUserChangeType.RETIRED_TO_DEAD, changeDate); + } + + @Override + public Pagination nonRetiredUserPageData(PageForm pageForm) { + Sql sql = Sqls.create(""" + SELECT + u.id, + u.loginname, + u.username, + u.sex, + u.birthday, + u.mobile, + u.idCard, + u.position, + u.professionalTitle, + u.preparedBy, + u.education, + u.academicDegree, + u.nation, + null as campusName, + u.unionGroupName, + u.political, + u.personType, + u.userState, + u.unitName as unitname, + u.unionName as unionname, + null as threeUnitName + FROM vw_user u + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.and("u.userState", "not in", RETIRED_STATES); + cnd.and("u.userState", "!=", "死亡"); + appendSearch(cnd, pageForm, "u"); + appendUserScope(cnd, "u.unitId"); + sql.setCondition(cnd); + return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + } + + @Override + public void batchJoinRetire(String[] userIds) { + if (userIds == null || userIds.length == 0) { + return; + } + update(Chain.make("userState", "退休").add("personType", "离退休人员").add("retireDate", new Date()), Cnd.where("id", "in", userIds)); + List changes = Arrays.stream(userIds).map(userId -> buildChange(userId, RetiredUserChangeType.JOB_TO_RETIRED, new Date())).toList(); + dao().insert(changes); + } + + @Override + public void backUp() { + dao().clear(RetiredUserHistory.class, Cnd.where("year", "=", DateUtil.thisYear())); + List users = query(Cnd.where("userState", "in", RETIRED_STATES)); + if (Lang.isEmpty(users)) { + return; + } + List histories = new ArrayList<>(); + for (Sys_user user : users) { + RetiredUserHistory history = new RetiredUserHistory(); + BeanUtils.copyProperties(user, history, "password", "salt"); + history.setId(R.UU32()); + history.setYear(DateUtil.thisYear()); + histories.add(history); + } + dao().fastInsert(histories); + } + + @Override + public NutMap userInfo(String userId) { + Sql sql = Sqls.create(""" + SELECT + u.id, + u.loginname, + u.username, + u.sex, + u.birthday, + u.political, + u.joinPartyDate, + u.nation, + u.nativePlace, + u.idCardType, + u.idCard, + u.mobile, + u.education, + u.marriage, + u.academicDegree, + u.position, + u.professionalTitle, + u.preparedBy, + u.arrivalAtSchoolDate, + u.teachingTime, + u.userState, + u.personType, + u.retireDate, + u.email, + u.unitId, + u.unitName, + u.unionId, + u.unionName, + u.unionGroupId, + u.unionGroupName, + u.memberTime, + u.families, + u.personalData, + null as campusName, + null as threeUnitName, + rg.groupName as retiredGroupName, + rpb.partyBranchName as retiredPartyBranchName + FROM vw_user u + 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 + LEFT JOIN retired_party_branch rpb ON rpb.id = rpbu.partyBranchId + WHERE u.id = @id + """).setParam("id", userId); + return (NutMap) Daos.query(dao(), sql.toString(), Sqls.callback.map()); + } + @Override + public void submit(String userJson, String userId) { + if (StrUtil.isBlank(userJson)) { + throw new RuntimeException("人员信息不能为空"); + } + // 前端按 JSON 字符串提交表单,统一在 service 层解析,避免 controller 承担公共参数处理。 + Sys_user user = Json.fromJson(Sys_user.class, userJson); + if (StrUtil.isBlank(userId)) { + if (StrUtil.isBlank(user.getUserState())) { + user.setUserState("退休"); + } + if (StrUtil.isBlank(user.getPersonType())) { + user.setPersonType("离退休人员"); + } + if (user.getRetireDate() == null) { + user.setRetireDate(new Date()); + } + dao().insert(user); + insertChange(user.getId(), RetiredUserChangeType.JOB_TO_RETIRED, new Date()); + } else { + if (StrUtil.isBlank(user.getId())) { + user.setId(userId); + } + dao().updateIgnoreNull(user); + } + } +@Override + public Sys_user getInfo(String id) { + return dao().fetch(Sys_user.class, id); + } + + @Override + public void deleteRetired(String id) { + update(Chain.make("userState", "在职").add("personType", null).add("retireDate", null), Cnd.where("id", "=", id)); + dao().clear(RetiredUserChange.class, Cnd.where("userId", "=", id)); + } + + @Override + public Pagination changePageData(PageForm pageForm, Integer year, String unitId, String unionId, Integer changeType) { + Sql sql = Sqls.create(""" + SELECT + ruc.id, + ruc.changeDate, + ruc.changeType, + u.loginname, + u.username, + u.sex, + u.birthday, + u.mobile, + u.idCard, + u.position, + u.professionalTitle, + u.preparedBy, + u.education, + u.academicDegree, + u.nation, + null as campusName, + u.unionGroupName, + u.personType, + u.userState, + u.unitName as unitname, + u.unionName as unionname + FROM retired_user_change ruc + LEFT JOIN vw_user u ON u.id = ruc.userId + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.andEX("u.unitId", "=", unitId); + cnd.andEX("u.unionId", "=", unionId); + cnd.andEX("YEAR(ruc.changeDate)", "=", year); + cnd.andEX("ruc.changeType", "=", changeType); + appendUserScope(cnd, "u.unitId"); + appendSearch(cnd, pageForm, "u"); + sql.setCondition(cnd); + return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + } + + @Override + public Pagination historyPageData(PageForm pageForm, Integer year, String unitId, String unionId, String retiredGroupId, String retiredPartyBranchId) { + Sql sql = Sqls.create(""" + SELECT + u.id, + u.loginname, + u.username, + u.sex, + u.birthday, + u.mobile, + u.idCard, + u.position, + u.professionalTitle, + u.preparedBy, + u.education, + u.academicDegree, + u.nation, + null as campusName, + unionGroup.name as unionGroupName, + u.personType, + u.userState, + n.name AS unitname, + gh.name AS unionname, + u.political, + null 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_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 + LEFT JOIN retired_group rg ON rg.id = rgu.retiredGroupId + LEFT JOIN retired_party_branch_user rpbu ON rpbu.userId = u.id + LEFT JOIN retired_party_branch rpb ON rpb.id = rpbu.partyBranchId + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.andEX("u.unitId", "=", unitId); + cnd.andEX("gh.id", "=", unionId); + cnd.andEX("u.year", "=", year); + cnd.andEX("rg.id", "=", retiredGroupId); + cnd.andEX("rpb.id", "=", retiredPartyBranchId); + appendSearch(cnd, pageForm, "u"); + appendUserScope(cnd, "u.unitId"); + cnd.groupBy("u.id"); + sql.setCondition(cnd); + return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + } + + @Override + public Pagination statisticsPageData(PageForm pageForm, String unitId, String unionId, String retiredGroupId, String retiredPartyBranchId) { + Sql sql = retiredUserSql(); + Cnd cnd = retiredUserCnd(pageForm, unitId, unionId, retiredGroupId, retiredPartyBranchId); + sql.setCondition(cnd); + return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + } + + private Sql retiredUserSql() { + return Sqls.create(""" + SELECT + u.id, + u.loginname, + u.username, + u.sex, + u.birthday, + u.mobile, + u.idCard, + u.position, + u.professionalTitle, + u.preparedBy, + u.education, + u.academicDegree, + u.nation, + null as campusName, + u.unionGroupName, + u.personType, + u.userState, + u.unitName as unitname, + u.unionName as unionname, + u.political, + null as threeUnitName, + rg.groupName as retiredGroupName, + rpb.partyBranchName as retiredPartyBranchName + FROM vw_user u + 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 + LEFT JOIN retired_party_branch rpb ON rpb.id = rpbu.partyBranchId + $condition + """); + } + + private Cnd retiredUserCnd(PageForm pageForm, String unitId, String unionId, String retiredGroupId, String retiredPartyBranchId) { + Cnd cnd = Cnd.NEW(); + cnd.and("u.userState", "in", RETIRED_STATES); + cnd.andEX("u.unitId", "=", unitId); + cnd.andEX("u.unionId", "=", unionId); + cnd.andEX("rg.id", "=", retiredGroupId); + cnd.andEX("rpb.id", "=", retiredPartyBranchId); + appendSearch(cnd, pageForm, "u"); + appendUserScope(cnd, "u.unitId"); + cnd.groupBy("u.id"); + return cnd; + } + + private void appendSearch(Cnd cnd, PageForm pageForm, String alias) { + if (pageForm != null && StrUtil.isNotBlank(pageForm.getSearchKeyword())) { + SqlExpressionGroup seg = new SqlExpressionGroup(); + seg.orLike(alias + ".loginname", pageForm.getSearchKeyword()); + seg.orLike(alias + ".username", pageForm.getSearchKeyword()); + cnd.and(seg); + } + } + + private void appendUserScope(Cnd cnd, String unitColumn) { + if (!AuthUtil.hasRoleOr("ltbzr", "ltbfzr", "ltbms", "sysadmin", "SYSADMIN") && StpUtil.hasRole("ltbxzzz")) { + cnd.and(unitColumn, "in", Sqls.create(""" + select rgu.unitId + from retired_group_unit rgu + inner join sys_user_role sur on rgu.retiredGroupId = sur.unionGroupId + where sur.userId = @userId and sur.roleId = @roleId + """).setParam("userId", StpUtil.getLoginIdAsString()).setParam("roleId", groupLeaderRoleId())); + } + } + + private String groupLeaderRoleId() { + // 当前库角色 ID 可能和参考项目不同,按角色编码取 ID,保证离退休小组长数据范围正确。 + return dao().fetch("sys_role", Cnd.where("code", "=", GROUP_LEADER_ROLE_CODE)).getString("id"); + } + + private void insertChange(String userId, RetiredUserChangeType type, Date changeDate) { + dao().insert(buildChange(userId, type, changeDate)); + } + + private RetiredUserChange buildChange(String userId, RetiredUserChangeType type, Date changeDate) { + RetiredUserChange change = new RetiredUserChange(); + change.setUserId(userId); + change.setChangeDate(changeDate); + change.setChangeType(type.getCode()); + return change; + } +} + diff --git a/src/main/resources/static/components/module/retired/userEdit.vue b/src/main/resources/static/components/module/retired/userEdit.vue new file mode 100644 index 0000000..687b5f7 --- /dev/null +++ b/src/main/resources/static/components/module/retired/userEdit.vue @@ -0,0 +1,363 @@ +/** +*Desc: +*Create by: jug +*Create time:2023/11/20/16:49 +*/ + + + + + diff --git a/src/main/resources/static/components/module/retired/userInfo.vue b/src/main/resources/static/components/module/retired/userInfo.vue new file mode 100644 index 0000000..d119532 --- /dev/null +++ b/src/main/resources/static/components/module/retired/userInfo.vue @@ -0,0 +1,168 @@ +/** +*Desc: +*Create by: jug +*Create time:2023/7/25/9:14 +*/ + + + + + diff --git a/src/main/resources/static/components/plugins/TreeLayout.vue b/src/main/resources/static/components/plugins/TreeLayout.vue new file mode 100644 index 0000000..248de28 --- /dev/null +++ b/src/main/resources/static/components/plugins/TreeLayout.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/src/main/resources/views/platform/zhgh/staffmanage/retired/change/index.html b/src/main/resources/views/platform/zhgh/staffmanage/retired/change/index.html new file mode 100644 index 0000000..99b2ea8 --- /dev/null +++ b/src/main/resources/views/platform/zhgh/staffmanage/retired/change/index.html @@ -0,0 +1,184 @@ + + +
+ + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/src/main/resources/views/platform/zhgh/staffmanage/retired/group/manage/index.html b/src/main/resources/views/platform/zhgh/staffmanage/retired/group/manage/index.html new file mode 100644 index 0000000..8d61979 --- /dev/null +++ b/src/main/resources/views/platform/zhgh/staffmanage/retired/group/manage/index.html @@ -0,0 +1,514 @@ + + +
+ + + + + + + + + + + + + + + + + + + + 取消 + 确定 + + + + +
+ +
+ + 取消 + 确定 + +
+ +
+ + + + + diff --git a/src/main/resources/views/platform/zhgh/staffmanage/retired/group/statistics/index.html b/src/main/resources/views/platform/zhgh/staffmanage/retired/group/statistics/index.html new file mode 100644 index 0000000..8f61eb3 --- /dev/null +++ b/src/main/resources/views/platform/zhgh/staffmanage/retired/group/statistics/index.html @@ -0,0 +1,99 @@ + + +
+ + + + + + + + + + + + + + + +
+ + + diff --git a/src/main/resources/views/platform/zhgh/staffmanage/retired/history/index.html b/src/main/resources/views/platform/zhgh/staffmanage/retired/history/index.html new file mode 100644 index 0000000..af4a1b9 --- /dev/null +++ b/src/main/resources/views/platform/zhgh/staffmanage/retired/history/index.html @@ -0,0 +1,196 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + +
+ + + + + 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 new file mode 100644 index 0000000..938b70a --- /dev/null +++ b/src/main/resources/views/platform/zhgh/staffmanage/retired/list/index.html @@ -0,0 +1,379 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 取 消 + 确定 + + + +
+ + + + + diff --git a/src/main/resources/views/platform/zhgh/staffmanage/retired/partyBranch/manage/index.html b/src/main/resources/views/platform/zhgh/staffmanage/retired/partyBranch/manage/index.html new file mode 100644 index 0000000..5138a25 --- /dev/null +++ b/src/main/resources/views/platform/zhgh/staffmanage/retired/partyBranch/manage/index.html @@ -0,0 +1,595 @@ + + +
+ + + + + + + + + + + + + + + + + + + + 取消 + 确定 + + + + + + + + + + + + + + 取消 + 确定 + + + + + + + + + + + + + + + + + + + 取消 + 确定 + + +
+ + + + + diff --git a/src/main/resources/views/platform/zhgh/staffmanage/retired/partyBranch/statistics/index.html b/src/main/resources/views/platform/zhgh/staffmanage/retired/partyBranch/statistics/index.html new file mode 100644 index 0000000..8a2564b --- /dev/null +++ b/src/main/resources/views/platform/zhgh/staffmanage/retired/partyBranch/statistics/index.html @@ -0,0 +1,99 @@ + + +
+ + + + + + + + + + + + + + +
+ + + diff --git a/src/main/resources/views/platform/zhgh/staffmanage/retired/statistics/index.html b/src/main/resources/views/platform/zhgh/staffmanage/retired/statistics/index.html new file mode 100644 index 0000000..777c6a7 --- /dev/null +++ b/src/main/resources/views/platform/zhgh/staffmanage/retired/statistics/index.html @@ -0,0 +1,198 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +