From e9e6a4d4be6422b51a1b2d4841d56965034c4154 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=9C=E5=AD=A6=E6=88=90?= <1274337408@qq.com> Date: Tue, 20 Oct 2026 11:13:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E4=BC=9A=E7=AE=A1=E7=90=86=EF=BC=9A?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E2=80=98=E5=AF=BC=E5=87=BA=E5=9F=BA=E5=B1=82?= =?UTF-8?q?=E5=B9=B2=E9=83=A8=E2=80=99=E6=8C=89=E9=92=AE(=E6=94=B9?= =?UTF-8?q?=E6=88=90=E6=A0=B9=E6=8D=AE=E7=9C=9F=E5=AE=9E=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=EF=BC=8C=E6=89=80=E5=B1=9E=E5=B7=A5=E4=BC=9A?= =?UTF-8?q?=E8=AF=BB=E7=94=A8=E6=88=B7=E7=9A=84)=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sys/controller/SysUnionController.java | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/budwk/app/sys/controller/SysUnionController.java b/src/main/java/com/budwk/app/sys/controller/SysUnionController.java index 84724d1..fdf9771 100644 --- a/src/main/java/com/budwk/app/sys/controller/SysUnionController.java +++ b/src/main/java/com/budwk/app/sys/controller/SysUnionController.java @@ -507,29 +507,29 @@ public class SysUnionController { public void exportCadre(HttpServletResponse response) { Sql sql = Sqls.create(""" SELECT - userInfo.loginname AS loginName, - userInfo.username AS userName, - branchUnion.`name` AS unionName, - userInfo.mobile, - GROUP_CONCAT(DISTINCT businessRole.`name` ORDER BY roleDict.location SEPARATOR '、') AS roleName + u.loginname AS loginName, + u.username AS userName, + IFNULL(MAX(branchUnion.`name`), '') AS unionName, + u.mobile, + GROUP_CONCAT(DISTINCT role.`name` ORDER BY role.sort ASC SEPARATOR '、') AS roleName FROM - sys_user_role assignedRole - INNER JOIN sys_role businessRole ON businessRole.id = assignedRole.roleId - INNER JOIN sys_dict roleParent ON roleParent.`code` = 'BRANCH_UNION_ROLES' - INNER JOIN sys_dict roleDict ON roleDict.parentId = roleParent.id - AND roleDict.`code` = businessRole.`code` - INNER JOIN vw_user userInfo ON userInfo.id = assignedRole.userId - INNER JOIN sys_union branchUnion ON branchUnion.id = assignedRole.unionId + sys_role role + INNER JOIN sys_user_role ur ON role.id = ur.roleId + INNER JOIN sys_user u ON u.id = ur.userId + LEFT JOIN vw_user currentUser ON currentUser.id = u.id + LEFT JOIN sys_union branchUnion ON branchUnion.id = COALESCE(NULLIF(currentUser.unionId, ''), NULLIF(ur.unionId, '')) + INNER JOIN sys_dict roleDict ON roleDict.`code` = role.`code` + INNER JOIN sys_dict roleParent ON roleParent.id = roleDict.parentId + AND roleParent.`code` = 'BRANCH_UNION_ROLES' $condition """); Cnd cnd = Cnd.NEW(); if (AuthUtil.hasRole(RoleConstant.BRANCH_UNION_CHAIRMAN.name())) { - cnd.and("assignedRole.unionId", "=", SecurityUtil.getUnionId()); + cnd.and("COALESCE(NULLIF(currentUser.unionId, ''), NULLIF(ur.unionId, ''))", "=", SecurityUtil.getUnionId()); } - cnd.groupBy("assignedRole.userId"); - cnd.groupBy("assignedRole.unionId"); - cnd.asc("branchUnion.unionCode"); - cnd.asc("userInfo.loginname"); + cnd.groupBy("ur.userId"); + cnd.asc("MIN(branchUnion.unionCode)"); + cnd.asc("u.loginname"); sql.setCondition(cnd); List list = sysUnionService.listMap(sql); for (int i = 0; i < list.size(); i++) {