From 9817f9b84bd6f0973971ba29f193af15dc406893 Mon Sep 17 00:00:00 2001 From: wanggeng888 <450292408@qq.com> Date: Sun, 14 Feb 2021 22:09:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=9F=BA=E7=A1=80=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=EF=BC=88=E7=BB=84=E7=BB=87=E9=83=A8=E9=97=A8=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../department/IDepartmentCheckService.java | 14 + .../IDepartmentUserBaseService.java | 14 + .../interfaces/user/IUserBaseService.java | 18 + .../dtos/department/DepartmentUserDTO.java | 131 ++++--- .../main/java/ink/wgink/pojo/vos/IdsVO.java | 41 +++ .../common/component/SecurityComponent.java | 6 + .../resources/templates/area/list-tree.html | 4 +- .../resources/templates/data/list-tree.html | 4 +- .../api/DepartmentUserController.java | 25 -- .../controller/api/DepartmentController.java | 55 +-- .../api/DepartmentUserController.java | 88 +++++ .../route/DepartmentRouteController.java | 27 +- .../route/DepartmentUserRouteController.java | 35 ++ .../dao/IDepartmentAdjustmentDao.java | 11 +- .../department/dao/IDepartmentDao.java | 8 +- .../dao/IDepartmentUserAdjustmentDao.java | 11 +- .../department/dao/IDepartmentUserDao.java | 18 +- .../enmus/DepartmentAdjustmentTypeEnum.java | 2 +- .../listener/excel/DepartmentExcel.java | 2 +- .../listener/excel/DepartmentExcelError.java | 2 +- .../excel/DepartmentExcelListener.java | 2 +- .../department/pojo/vos/DepartmentVO.java | 2 +- .../pojo/vos/MergeDepartmentInfoVO.java | 2 +- .../pojo/vos/MergeNewDepartmentInfoVO.java | 2 +- .../pojo/vos/SplitDepartmentInfoVO.java | 2 +- .../pojo/vos/SplitDepartmentVO.java | 2 +- .../service/IDepartmentAdjustmentService.java | 4 +- .../service/IDepartmentService.java | 30 +- .../IDepartmentUserAdjustmentService.java | 8 +- .../service/IDepartmentUserService.java | 8 +- .../impl/DepartmentAdjustmentServiceImpl.java | 12 +- .../service/impl/DepartmentServiceImpl.java | 75 ++-- .../DepartmentUserAdjustmentServiceImpl.java | 6 +- .../impl/DepartmentUserServiceImpl.java | 76 +++- .../startup/ServiceDepartmentStartUp.java | 58 +++ .../mapper/department-adjustment-mapper.xml | 18 +- .../mybatis/mapper/department-mapper.xml | 50 ++- .../department-user-adjustment-mapper.xml | 20 +- .../mybatis/mapper/department-user-mapper.xml | 27 +- .../templates/department/get-merge.html | 4 +- .../resources/templates/department/get.html | 44 +-- .../templates/department/list-split.html | 10 +- .../templates/department/list-tree-user.html | 4 +- .../templates/department/list-tree.html | 8 +- .../resources/templates/department/list.html | 175 ++++----- .../templates/department/save-merge.html | 18 +- .../templates/department/save-split.html | 16 +- .../resources/templates/department/save.html | 27 +- .../templates/department/update-split.html | 16 +- .../templates/department/update.html | 30 +- .../upload/upload-excel-template.xls | Bin 0 -> 18944 bytes .../department/upload/upload-excel.html | 21 +- .../templates/department/user/list.html | 274 ++++++++++++++ .../department/user/select-user.html | 344 ++++++++++++++++++ .../menu/startup/ServiceMenuStartUp.java | 35 +- .../resources/mybatis/mapper/menu-mapper.xml | 3 +- .../role/controller/api/RoleController.java | 10 +- .../controller/api/RoleGroupController.java | 2 +- .../role/dao/IRoleDao.java | 4 +- .../role/dao/IRoleGroupDao.java | 2 +- .../role/dao/IRoleMenuDao.java | 2 +- .../role/dao/IRolePermissionDao.java | 2 +- .../role/pojo/pos/RolePO.java | 2 +- .../role/pojo/vos/RoleDataAuthorityVO.java | 2 +- .../role/pojo/vos/RolePermissionVO.java | 2 +- .../role/pojo/vos/RoleUserAuthorityVO.java | 2 +- .../pojo/vos/RoleUserAuthorizationVO.java | 2 +- .../role/pojo/vos/RoleVO.java | 2 +- .../role/service/IRoleGroupService.java | 2 +- .../role/service/IRoleMenuService.java | 2 +- .../role/service/IRolePermissionService.java | 4 +- .../role/service/IRoleService.java | 4 +- .../service/impl/RoleGroupServiceImpl.java | 2 +- .../service/impl/RoleMenuServiceImpl.java | 4 +- .../impl/RolePermissionServiceImpl.java | 8 +- .../role/service/impl/RoleServiceImpl.java | 16 +- .../mybatis/mapper/role-permission-mapper.xml | 2 +- .../user/controller/api/UserController.java | 21 +- .../controller/route/UserRouteController.java | 2 +- .../service/user/dao/IUserAdjustmentDao.java | 49 +++ .../user/dao/IUserDao.java | 4 +- .../user/enums/UserUpdateTypeEnum.java | 27 ++ .../user/excel/UserExcel.java | 2 +- .../user/excel/UserExcelError.java | 2 +- .../user/excel/UserExcelListener.java | 2 +- .../user/pojo/bos/UserAdjustmentBO.java | 121 ++++++ .../service/user/pojo/dtos/UserLogDTO.java | 113 ++++++ .../user/pojo/pos/UserPO.java | 2 +- .../user/pojo/vos/RestPasswordVO.java | 2 +- .../user/pojo/vos/UpdateUsernameVO.java | 2 +- .../user/pojo/vos/UserVO.java | 2 +- .../user/service/IUserAdjustmentService.java | 37 ++ .../user/service/IUserService.java | 8 +- .../impl/UserAdjustmentServiceImpl.java | 48 +++ .../user/service/impl/UserServiceImpl.java | 85 ++++- .../user/startup/ServiceUserStartUp.java | 10 +- .../mybatis/mapper/user-adjustment-mapper.xml | 98 +++++ .../resources/mybatis/mapper/user-mapper.xml | 14 +- .../main/resources/templates/user/list.html | 20 +- .../templates/user/upload/upload-excel.html | 15 +- 100 files changed, 2207 insertions(+), 506 deletions(-) create mode 100644 basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentCheckService.java create mode 100644 basic-pojo/src/main/java/ink/wgink/pojo/vos/IdsVO.java delete mode 100644 service-department/src/main/java/ink/wgink/module/department/controller/api/DepartmentUserController.java rename service-department/src/main/java/ink/wgink/{module => service}/department/controller/api/DepartmentController.java (90%) create mode 100644 service-department/src/main/java/ink/wgink/service/department/controller/api/DepartmentUserController.java rename service-department/src/main/java/ink/wgink/{module => service}/department/controller/route/DepartmentRouteController.java (66%) create mode 100644 service-department/src/main/java/ink/wgink/service/department/controller/route/DepartmentUserRouteController.java rename service-department/src/main/java/ink/wgink/{module => service}/department/dao/IDepartmentAdjustmentDao.java (75%) rename service-department/src/main/java/ink/wgink/{module => service}/department/dao/IDepartmentDao.java (96%) rename service-department/src/main/java/ink/wgink/{module => service}/department/dao/IDepartmentUserAdjustmentDao.java (75%) rename service-department/src/main/java/ink/wgink/{module => service}/department/dao/IDepartmentUserDao.java (72%) rename service-department/src/main/java/ink/wgink/{module => service}/department/enmus/DepartmentAdjustmentTypeEnum.java (93%) rename service-department/src/main/java/ink/wgink/{module => service}/department/listener/excel/DepartmentExcel.java (98%) rename service-department/src/main/java/ink/wgink/{module => service}/department/listener/excel/DepartmentExcelError.java (98%) rename service-department/src/main/java/ink/wgink/{module => service}/department/listener/excel/DepartmentExcelListener.java (96%) rename service-department/src/main/java/ink/wgink/{module => service}/department/pojo/vos/DepartmentVO.java (99%) rename service-department/src/main/java/ink/wgink/{module => service}/department/pojo/vos/MergeDepartmentInfoVO.java (96%) rename service-department/src/main/java/ink/wgink/{module => service}/department/pojo/vos/MergeNewDepartmentInfoVO.java (96%) rename service-department/src/main/java/ink/wgink/{module => service}/department/pojo/vos/SplitDepartmentInfoVO.java (95%) rename service-department/src/main/java/ink/wgink/{module => service}/department/pojo/vos/SplitDepartmentVO.java (96%) rename service-department/src/main/java/ink/wgink/{module => service}/department/service/IDepartmentAdjustmentService.java (91%) rename service-department/src/main/java/ink/wgink/{module => service}/department/service/IDepartmentService.java (91%) rename service-department/src/main/java/ink/wgink/{module => service}/department/service/IDepartmentUserAdjustmentService.java (65%) rename service-department/src/main/java/ink/wgink/{module => service}/department/service/IDepartmentUserService.java (84%) rename service-department/src/main/java/ink/wgink/{module => service}/department/service/impl/DepartmentAdjustmentServiceImpl.java (86%) rename service-department/src/main/java/ink/wgink/{module => service}/department/service/impl/DepartmentServiceImpl.java (96%) rename service-department/src/main/java/ink/wgink/{module => service}/department/service/impl/DepartmentUserAdjustmentServiceImpl.java (80%) rename service-department/src/main/java/ink/wgink/{module => service}/department/service/impl/DepartmentUserServiceImpl.java (58%) create mode 100644 service-department/src/main/java/ink/wgink/service/department/startup/ServiceDepartmentStartUp.java create mode 100644 service-department/src/main/resources/templates/department/upload/upload-excel-template.xls create mode 100644 service-department/src/main/resources/templates/department/user/list.html create mode 100644 service-department/src/main/resources/templates/department/user/select-user.html rename service-role/src/main/java/ink/wgink/{module => service}/role/controller/api/RoleController.java (97%) rename service-role/src/main/java/ink/wgink/{module => service}/role/controller/api/RoleGroupController.java (98%) rename service-role/src/main/java/ink/wgink/{module => service}/role/dao/IRoleDao.java (98%) rename service-role/src/main/java/ink/wgink/{module => service}/role/dao/IRoleGroupDao.java (94%) rename service-role/src/main/java/ink/wgink/{module => service}/role/dao/IRoleMenuDao.java (89%) rename service-role/src/main/java/ink/wgink/{module => service}/role/dao/IRolePermissionDao.java (97%) rename service-role/src/main/java/ink/wgink/{module => service}/role/pojo/pos/RolePO.java (98%) rename service-role/src/main/java/ink/wgink/{module => service}/role/pojo/vos/RoleDataAuthorityVO.java (97%) rename service-role/src/main/java/ink/wgink/{module => service}/role/pojo/vos/RolePermissionVO.java (97%) rename service-role/src/main/java/ink/wgink/{module => service}/role/pojo/vos/RoleUserAuthorityVO.java (97%) rename service-role/src/main/java/ink/wgink/{module => service}/role/pojo/vos/RoleUserAuthorizationVO.java (95%) rename service-role/src/main/java/ink/wgink/{module => service}/role/pojo/vos/RoleVO.java (97%) rename service-role/src/main/java/ink/wgink/{module => service}/role/service/IRoleGroupService.java (93%) rename service-role/src/main/java/ink/wgink/{module => service}/role/service/IRoleMenuService.java (88%) rename service-role/src/main/java/ink/wgink/{module => service}/role/service/IRolePermissionService.java (91%) rename service-role/src/main/java/ink/wgink/{module => service}/role/service/IRoleService.java (98%) rename service-role/src/main/java/ink/wgink/{module => service}/role/service/impl/RoleGroupServiceImpl.java (95%) rename service-role/src/main/java/ink/wgink/{module => service}/role/service/impl/RoleMenuServiceImpl.java (82%) rename service-role/src/main/java/ink/wgink/{module => service}/role/service/impl/RolePermissionServiceImpl.java (95%) rename service-role/src/main/java/ink/wgink/{module => service}/role/service/impl/RoleServiceImpl.java (97%) rename service-user/src/main/java/ink/wgink/{module => service}/user/controller/api/UserController.java (90%) rename service-user/src/main/java/ink/wgink/{module => service}/user/controller/route/UserRouteController.java (97%) create mode 100644 service-user/src/main/java/ink/wgink/service/user/dao/IUserAdjustmentDao.java rename service-user/src/main/java/ink/wgink/{module => service}/user/dao/IUserDao.java (96%) create mode 100644 service-user/src/main/java/ink/wgink/service/user/enums/UserUpdateTypeEnum.java rename service-user/src/main/java/ink/wgink/{module => service}/user/excel/UserExcel.java (98%) rename service-user/src/main/java/ink/wgink/{module => service}/user/excel/UserExcelError.java (98%) rename service-user/src/main/java/ink/wgink/{module => service}/user/excel/UserExcelListener.java (97%) create mode 100644 service-user/src/main/java/ink/wgink/service/user/pojo/bos/UserAdjustmentBO.java create mode 100644 service-user/src/main/java/ink/wgink/service/user/pojo/dtos/UserLogDTO.java rename service-user/src/main/java/ink/wgink/{module => service}/user/pojo/pos/UserPO.java (99%) rename service-user/src/main/java/ink/wgink/{module => service}/user/pojo/vos/RestPasswordVO.java (96%) rename service-user/src/main/java/ink/wgink/{module => service}/user/pojo/vos/UpdateUsernameVO.java (97%) rename service-user/src/main/java/ink/wgink/{module => service}/user/pojo/vos/UserVO.java (98%) create mode 100644 service-user/src/main/java/ink/wgink/service/user/service/IUserAdjustmentService.java rename service-user/src/main/java/ink/wgink/{module => service}/user/service/IUserService.java (89%) create mode 100644 service-user/src/main/java/ink/wgink/service/user/service/impl/UserAdjustmentServiceImpl.java rename service-user/src/main/java/ink/wgink/{module => service}/user/service/impl/UserServiceImpl.java (71%) rename service-user/src/main/java/ink/wgink/{module => service}/user/startup/ServiceUserStartUp.java (86%) create mode 100644 service-user/src/main/resources/mybatis/mapper/user-adjustment-mapper.xml diff --git a/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentCheckService.java b/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentCheckService.java new file mode 100644 index 00000000..de55a963 --- /dev/null +++ b/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentCheckService.java @@ -0,0 +1,14 @@ +package ink.wgink.interfaces.department; + +/** + * When you feel like quitting. Think about why you started + * 当你想要放弃的时候,想想当初你为何开始 + * + * @ClassName: IDepartmentCheckService + * @Description: 组织部门检查 + * @Author: wanggeng + * @Date: 2021/2/12 8:44 下午 + * @Version: 1.0 + */ +public interface IDepartmentCheckService { +} diff --git a/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentUserBaseService.java b/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentUserBaseService.java index 4cc727fe..0023ae3b 100644 --- a/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentUserBaseService.java +++ b/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentUserBaseService.java @@ -1,5 +1,9 @@ package ink.wgink.interfaces.department; +import ink.wgink.pojo.ListPage; +import ink.wgink.pojo.dtos.department.DepartmentUserDTO; +import ink.wgink.pojo.result.SuccessResultList; + import java.util.List; /** @@ -29,4 +33,14 @@ public interface IDepartmentUserBaseService { * @return */ List listUserIdByDepartmentIds(List departmentIds); + + /** + * 用户列表 + * + * @param departmentId 部门ID + * @param page + * @return + */ + SuccessResultList> listPage(String departmentId, ListPage page); + } diff --git a/basic-interface/src/main/java/ink/wgink/interfaces/user/IUserBaseService.java b/basic-interface/src/main/java/ink/wgink/interfaces/user/IUserBaseService.java index 7417b6ed..e8ce9e61 100644 --- a/basic-interface/src/main/java/ink/wgink/interfaces/user/IUserBaseService.java +++ b/basic-interface/src/main/java/ink/wgink/interfaces/user/IUserBaseService.java @@ -1,6 +1,7 @@ package ink.wgink.interfaces.user; import ink.wgink.pojo.ListPage; +import ink.wgink.pojo.dtos.department.DepartmentUserDTO; import ink.wgink.pojo.dtos.user.UserDTO; import ink.wgink.pojo.result.SuccessResultList; @@ -67,4 +68,21 @@ public interface IUserBaseService { */ SuccessResultList> listPage(ListPage page); + /** + * 用户分页列表 + * + * @param userIds 用户ID列表 + * @param page + * @return + */ + SuccessResultList> listPageByIds(List userIds, ListPage page); + + /** + * 用户ID分页列表 + * + * @param excludeUserIds 不包含的用户ID + * @param page + * @return + */ + SuccessResultList> listPageByExcludeUserIds(List excludeUserIds, ListPage page); } diff --git a/basic-pojo/src/main/java/ink/wgink/pojo/dtos/department/DepartmentUserDTO.java b/basic-pojo/src/main/java/ink/wgink/pojo/dtos/department/DepartmentUserDTO.java index cba12368..9126f986 100644 --- a/basic-pojo/src/main/java/ink/wgink/pojo/dtos/department/DepartmentUserDTO.java +++ b/basic-pojo/src/main/java/ink/wgink/pojo/dtos/department/DepartmentUserDTO.java @@ -1,5 +1,7 @@ package ink.wgink.pojo.dtos.department; +import ink.wgink.pojo.dtos.user.UserDTO; + import java.io.Serializable; /** @@ -13,38 +15,43 @@ public class DepartmentUserDTO implements Serializable { private static final long serialVersionUID = -2899875759045646539L; private String userId; - private String departmentId; private String userUsername; private String userName; private String userPhone; private String userEmail; - private String userUKey; - private String userUKeyElectronicSecretKey; private Integer loginType; - private String departmentName; private Integer userType; private Integer userState; private String userAvatar; + private String departmentId; + private String departmentName; private String userSort; + public DepartmentUserDTO() { + } + + public DepartmentUserDTO(UserDTO userDTO) { + this.userId = userDTO.getUserId(); + this.userUsername = userDTO.getUserUsername(); + this.userName = userDTO.getUserName(); + this.userPhone = userDTO.getUserPhone(); + this.userEmail = userDTO.getUserEmail(); + this.loginType = userDTO.getLoginType(); + this.userType = userDTO.getUserType(); + this.userState = userDTO.getUserState(); + this.userAvatar = userDTO.getUserAvatar(); + } + public String getUserId() { - return userId == null ? "" : userId.trim(); + return userId == null ? "" : userId; } public void setUserId(String userId) { this.userId = userId; } - public String getDepartmentId() { - return departmentId == null ? "" : departmentId.trim(); - } - - public void setDepartmentId(String departmentId) { - this.departmentId = departmentId; - } - public String getUserUsername() { - return userUsername == null ? "" : userUsername.trim(); + return userUsername == null ? "" : userUsername; } public void setUserUsername(String userUsername) { @@ -52,7 +59,7 @@ public class DepartmentUserDTO implements Serializable { } public String getUserName() { - return userName == null ? "" : userName.trim(); + return userName == null ? "" : userName; } public void setUserName(String userName) { @@ -60,7 +67,7 @@ public class DepartmentUserDTO implements Serializable { } public String getUserPhone() { - return userPhone == null ? "" : userPhone.trim(); + return userPhone == null ? "" : userPhone; } public void setUserPhone(String userPhone) { @@ -68,47 +75,23 @@ public class DepartmentUserDTO implements Serializable { } public String getUserEmail() { - return userEmail == null ? "" : userEmail.trim(); + return userEmail == null ? "" : userEmail; } public void setUserEmail(String userEmail) { this.userEmail = userEmail; } - public String getUserUKey() { - return userUKey == null ? "" : userUKey; - } - - public void setUserUKey(String userUKey) { - this.userUKey = userUKey; - } - - public String getUserUKeyElectronicSecretKey() { - return userUKeyElectronicSecretKey == null ? "" : userUKeyElectronicSecretKey.trim(); - } - - public void setUserUKeyElectronicSecretKey(String userUKeyElectronicSecretKey) { - this.userUKeyElectronicSecretKey = userUKeyElectronicSecretKey; - } - public Integer getLoginType() { - return loginType; + return loginType == null ? 0 : loginType; } public void setLoginType(Integer loginType) { this.loginType = loginType; } - public String getDepartmentName() { - return departmentName == null ? "" : departmentName.trim(); - } - - public void setDepartmentName(String departmentName) { - this.departmentName = departmentName; - } - public Integer getUserType() { - return userType; + return userType == null ? 0 : userType; } public void setUserType(Integer userType) { @@ -116,7 +99,7 @@ public class DepartmentUserDTO implements Serializable { } public Integer getUserState() { - return userState; + return userState == null ? 0 : userState; } public void setUserState(Integer userState) { @@ -124,15 +107,31 @@ public class DepartmentUserDTO implements Serializable { } public String getUserAvatar() { - return userAvatar == null ? "" : userAvatar.trim(); + return userAvatar == null ? "" : userAvatar; } public void setUserAvatar(String userAvatar) { this.userAvatar = userAvatar; } + public String getDepartmentId() { + return departmentId == null ? "" : departmentId; + } + + public void setDepartmentId(String departmentId) { + this.departmentId = departmentId; + } + + public String getDepartmentName() { + return departmentName == null ? "" : departmentName; + } + + public void setDepartmentName(String departmentName) { + this.departmentName = departmentName; + } + public String getUserSort() { - return userSort == null ? "" : userSort.trim(); + return userSort == null ? "" : userSort; } public void setUserSort(String userSort) { @@ -142,34 +141,30 @@ public class DepartmentUserDTO implements Serializable { @Override public String toString() { final StringBuilder sb = new StringBuilder("{"); - sb.append("\"userId\":") - .append("\"").append(userId).append("\""); - sb.append(",\"departmentId\":") - .append("\"").append(departmentId).append("\""); - sb.append(",\"userUsername\":") - .append("\"").append(userUsername).append("\""); - sb.append(",\"userName\":") - .append("\"").append(userName).append("\""); - sb.append(",\"userPhone\":") - .append("\"").append(userPhone).append("\""); - sb.append(",\"userEmail\":") - .append("\"").append(userEmail).append("\""); - sb.append(",\"userUKey\":") - .append("\"").append(userUKey).append("\""); - sb.append(",\"userUKeyElectronicSecretKey\":") - .append("\"").append(userUKeyElectronicSecretKey).append("\""); + sb.append("\"userId\":\"") + .append(userId).append('\"'); + sb.append(",\"userUsername\":\"") + .append(userUsername).append('\"'); + sb.append(",\"userName\":\"") + .append(userName).append('\"'); + sb.append(",\"userPhone\":\"") + .append(userPhone).append('\"'); + sb.append(",\"userEmail\":\"") + .append(userEmail).append('\"'); sb.append(",\"loginType\":") .append(loginType); - sb.append(",\"departmentName\":") - .append("\"").append(departmentName).append("\""); sb.append(",\"userType\":") .append(userType); sb.append(",\"userState\":") .append(userState); - sb.append(",\"userAvatar\":") - .append("\"").append(userAvatar).append("\""); - sb.append(",\"userSort\":") - .append("\"").append(userSort).append("\""); + sb.append(",\"userAvatar\":\"") + .append(userAvatar).append('\"'); + sb.append(",\"departmentId\":\"") + .append(departmentId).append('\"'); + sb.append(",\"departmentName\":\"") + .append(departmentName).append('\"'); + sb.append(",\"userSort\":\"") + .append(userSort).append('\"'); sb.append('}'); return sb.toString(); } diff --git a/basic-pojo/src/main/java/ink/wgink/pojo/vos/IdsVO.java b/basic-pojo/src/main/java/ink/wgink/pojo/vos/IdsVO.java new file mode 100644 index 00000000..fc0b3b1c --- /dev/null +++ b/basic-pojo/src/main/java/ink/wgink/pojo/vos/IdsVO.java @@ -0,0 +1,41 @@ +package ink.wgink.pojo.vos; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.util.ArrayList; +import java.util.List; + +/** + * When you feel like quitting. Think about why you started + * 当你想要放弃的时候,想想当初你为何开始 + * + * @ClassName: IdsVO + * @Description: Id列表VO + * @Author: wanggeng + * @Date: 2021/2/14 10:17 上午 + * @Version: 1.0 + */ +@ApiModel +public class IdsVO { + + @ApiModelProperty(name = "ids", value = "ID列表") + private List ids; + + public List getIds() { + return ids == null ? new ArrayList() : ids; + } + + public void setIds(List ids) { + this.ids = ids; + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("{"); + sb.append("\"ids\":") + .append(ids); + sb.append('}'); + return sb.toString(); + } +} diff --git a/common/src/main/java/ink/wgink/common/component/SecurityComponent.java b/common/src/main/java/ink/wgink/common/component/SecurityComponent.java index e4d77282..e378b38a 100644 --- a/common/src/main/java/ink/wgink/common/component/SecurityComponent.java +++ b/common/src/main/java/ink/wgink/common/component/SecurityComponent.java @@ -55,6 +55,12 @@ public class SecurityComponent { if (user instanceof UserInfoBO) { userInfoBO = (UserInfoBO) user; } + if (userInfoBO == null) { + userInfoBO = new UserInfoBO(); + userInfoBO.setUserId("1"); + userInfoBO.setUserName("admin"); + userInfoBO.setUserUsername("admin"); + } return userInfoBO; } diff --git a/module-dictionary/src/main/resources/templates/area/list-tree.html b/module-dictionary/src/main/resources/templates/area/list-tree.html index 3b6fcca8..9565635d 100644 --- a/module-dictionary/src/main/resources/templates/area/list-tree.html +++ b/module-dictionary/src/main/resources/templates/area/list-tree.html @@ -15,7 +15,7 @@
-
+
@@ -24,7 +24,7 @@
-
+
diff --git a/module-dictionary/src/main/resources/templates/data/list-tree.html b/module-dictionary/src/main/resources/templates/data/list-tree.html index 32217a35..9ef7c888 100644 --- a/module-dictionary/src/main/resources/templates/data/list-tree.html +++ b/module-dictionary/src/main/resources/templates/data/list-tree.html @@ -15,7 +15,7 @@
-
+
@@ -24,7 +24,7 @@
-
+
diff --git a/service-department/src/main/java/ink/wgink/module/department/controller/api/DepartmentUserController.java b/service-department/src/main/java/ink/wgink/module/department/controller/api/DepartmentUserController.java deleted file mode 100644 index 4d4547a4..00000000 --- a/service-department/src/main/java/ink/wgink/module/department/controller/api/DepartmentUserController.java +++ /dev/null @@ -1,25 +0,0 @@ -package ink.wgink.module.department.controller.api; - -import ink.wgink.interfaces.consts.ISystemConstant; -import io.swagger.annotations.Api; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * When you feel like quitting. Think about why you started - * 当你想要放弃的时候,想想当初你为何开始 - * - * @ClassName: DepartmentUserController - * @Description: 组织部门用户 - * @Author: wanggeng - * @Date: 2021/1/28 4:19 下午 - * @Version: 1.0 - */ -@Api(tags = ISystemConstant.API_TAGS_SYSTEM_PREFIX + "组织部门用户") -@RestController -@RequestMapping(ISystemConstant.API_PREFIX + "/department/user") -public class DepartmentUserController { - - - -} diff --git a/service-department/src/main/java/ink/wgink/module/department/controller/api/DepartmentController.java b/service-department/src/main/java/ink/wgink/service/department/controller/api/DepartmentController.java similarity index 90% rename from service-department/src/main/java/ink/wgink/module/department/controller/api/DepartmentController.java rename to service-department/src/main/java/ink/wgink/service/department/controller/api/DepartmentController.java index 992674f1..efa7ad9c 100644 --- a/service-department/src/main/java/ink/wgink/module/department/controller/api/DepartmentController.java +++ b/service-department/src/main/java/ink/wgink/service/department/controller/api/DepartmentController.java @@ -1,18 +1,19 @@ -package ink.wgink.module.department.controller.api; +package ink.wgink.service.department.controller.api; import ink.wgink.annotation.CheckRequestBodyAnnotation; import ink.wgink.common.base.DefaultBaseController; import ink.wgink.exceptions.ParamsException; +import ink.wgink.interfaces.consts.IFileConstant; import ink.wgink.interfaces.consts.ISystemConstant; import ink.wgink.pojo.ListPage; import ink.wgink.pojo.dtos.ZTreeDTO; import ink.wgink.pojo.dtos.department.DepartmentDTO; import ink.wgink.pojo.result.*; -import ink.wgink.module.department.pojo.vos.DepartmentVO; -import ink.wgink.module.department.pojo.vos.MergeDepartmentInfoVO; -import ink.wgink.module.department.pojo.vos.MergeNewDepartmentInfoVO; -import ink.wgink.module.department.pojo.vos.SplitDepartmentVO; -import ink.wgink.module.department.service.IDepartmentService; +import ink.wgink.service.department.pojo.vos.DepartmentVO; +import ink.wgink.service.department.pojo.vos.MergeDepartmentInfoVO; +import ink.wgink.service.department.pojo.vos.MergeNewDepartmentInfoVO; +import ink.wgink.service.department.pojo.vos.SplitDepartmentVO; +import ink.wgink.service.department.service.IDepartmentService; import io.swagger.annotations.*; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -74,7 +75,7 @@ public class DepartmentController extends DefaultBaseController { @ApiOperation(value = "重置组织部门编码", notes = "重置组织部门编码接口") @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) - @PutMapping("restcode") + @PutMapping("resetcode") public SuccessResult resetCode() { departmentService.resetCode(); return new SuccessResult(); @@ -111,6 +112,23 @@ public class DepartmentController extends DefaultBaseController { return new SuccessResult(); } + @ApiOperation(value = "导入Excel", notes = "导入Excel") + @ApiImplicitParams({ + @ApiImplicitParam(name = "excel", value = "文件名称", paramType = "query"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @PostMapping("importexcel") + public UploadExcelResultDTO importExcel(MultipartFile excel) throws Exception { + if (Objects.isNull(excel)) { + throw new ParamsException("Excel不能为空"); + } + if (!excel.getOriginalFilename().endsWith(IFileConstant.EXCEL_SUFFIX_XLS) && + !excel.getOriginalFilename().endsWith(IFileConstant.EXCEL_SUFFIX_XLSX)) { + throw new ParamsException("文件格式为Excel"); + } + return departmentService.importExcel(excel); + } + @ApiOperation(value = "组织部门列表", notes = "组织部门列表接口") @ApiImplicitParams({ @ApiImplicitParam(name = "departmentParentId", value = "组织部门上级ID", paramType = "path") @@ -158,31 +176,16 @@ public class DepartmentController extends DefaultBaseController { @ApiImplicitParam(name = "endTime", value = "结束时间", paramType = "query", dataType = "String") }) @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) - @GetMapping("listpagedepartment") - public SuccessResultList> listPageDepartment(ListPage page) { + @GetMapping("listpage") + public SuccessResultList> listPage(ListPage page) { Map params = requestParams(); String departmentParentId = "0"; if (!StringUtils.isBlank(params.get("parentId") == null ? null : params.get("parentId").toString())) { departmentParentId = params.get("parentId").toString(); } + params.put("departmentParentId", departmentParentId); page.setParams(params); - return departmentService.listPageByParentId(departmentParentId, page); - } - - @ApiOperation(value = "保存部门Excel(文件上传)", notes = "保存部门Excel接口(文件上传)") - @ApiImplicitParams({ - @ApiImplicitParam(name = "excel", value = "文件名称", paramType = "query"), - }) - @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) - @PostMapping("uploadexcel") - public UploadExcelResultDTO uploadExcel(MultipartFile excel) throws IOException { - if (Objects.isNull(excel)) { - throw new ParamsException("Excel不能为空"); - } - if (!excel.getOriginalFilename().endsWith(".xls") && !excel.getOriginalFilename().endsWith(".xlsx")) { - throw new ParamsException("文件格式为Excel"); - } - return departmentService.uploadExcel(excel); + return departmentService.listPage(page); } @ApiOperation(value = "获得同一级部门数量(按部门名称)", notes = "获得同一级部门数量(按部门名称)接口") diff --git a/service-department/src/main/java/ink/wgink/service/department/controller/api/DepartmentUserController.java b/service-department/src/main/java/ink/wgink/service/department/controller/api/DepartmentUserController.java new file mode 100644 index 00000000..6d17117e --- /dev/null +++ b/service-department/src/main/java/ink/wgink/service/department/controller/api/DepartmentUserController.java @@ -0,0 +1,88 @@ +package ink.wgink.service.department.controller.api; + +import ink.wgink.common.base.DefaultBaseController; +import ink.wgink.interfaces.consts.ISystemConstant; +import ink.wgink.pojo.ListPage; +import ink.wgink.pojo.dtos.department.DepartmentUserDTO; +import ink.wgink.pojo.result.ErrorResult; +import ink.wgink.pojo.result.SuccessResult; +import ink.wgink.pojo.result.SuccessResultList; +import ink.wgink.pojo.vos.IdsVO; +import ink.wgink.service.department.service.IDepartmentUserService; +import io.swagger.annotations.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * When you feel like quitting. Think about why you started + * 当你想要放弃的时候,想想当初你为何开始 + * + * @ClassName: DepartmentUserController + * @Description: 组织部门用户 + * @Author: wanggeng + * @Date: 2021/1/28 4:19 下午 + * @Version: 1.0 + */ +@Api(tags = ISystemConstant.API_TAGS_SYSTEM_PREFIX + "组织部门用户") +@RestController +@RequestMapping(ISystemConstant.API_PREFIX + "/department/user") +public class DepartmentUserController extends DefaultBaseController { + + @Autowired + private IDepartmentUserService departmentUserService; + + @ApiOperation(value = "更新组织部门人员列表", notes = "更新组织部门人员列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "departmentId", value = "部门ID", paramType = "path") + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @PutMapping("update/{departmentId}") + public synchronized SuccessResult update(@PathVariable("departmentId") String departmentId, + @RequestBody IdsVO idsVO) { + departmentUserService.updateByDepartmentIdAndUserIds(departmentId, idsVO.getIds()); + return new SuccessResult(); + } + + @ApiOperation(value = "组织部门人员删除", notes = "组织部门人员删除接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "departmentId", value = "部门ID", paramType = "path"), + @ApiImplicitParam(name = "ids", value = "人员ID列表,用下划线分隔", paramType = "path", example = "1_2_3") + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @DeleteMapping("remove/{departmentId}/{ids}") + public synchronized SuccessResult remove(@PathVariable("departmentId") String departmentId, + @PathVariable("ids") String ids) { + departmentUserService.deleteByDepartmentIdAndUserIds(departmentId, null, Arrays.asList(ids.split("_"))); + return new SuccessResult(); + } + + @ApiOperation(value = "人员列表", notes = "人员列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "departmentId", value = "部门ID", paramType = "path"), + @ApiImplicitParam(name = "page", value = "当前页码", paramType = "query", dataType = "int", defaultValue = "1"), + @ApiImplicitParam(name = "rows", value = "显示数量", paramType = "query", dataType = "int", defaultValue = "20"), + @ApiImplicitParam(name = "keywords", value = "关键字", paramType = "query") + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("listpage/{departmentId}") + public SuccessResultList> listPage(@PathVariable("departmentId") String departmentId, ListPage page) { + Map params = requestParams(); + page.setParams(params); + return departmentUserService.listPage(departmentId, page); + } + + @ApiOperation(value = "人员ID列表", notes = "人员ID列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "departmentId", value = "部门ID", paramType = "path"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("listuseridbydepartmentid/{departmentId}") + public List listUserIdByDepartmentId(@PathVariable("departmentId") String departmentId) { + return departmentUserService.listUserIdByDepartmentId(departmentId); + } + +} diff --git a/service-department/src/main/java/ink/wgink/module/department/controller/route/DepartmentRouteController.java b/service-department/src/main/java/ink/wgink/service/department/controller/route/DepartmentRouteController.java similarity index 66% rename from service-department/src/main/java/ink/wgink/module/department/controller/route/DepartmentRouteController.java rename to service-department/src/main/java/ink/wgink/service/department/controller/route/DepartmentRouteController.java index e0237f69..3f3da595 100644 --- a/service-department/src/main/java/ink/wgink/module/department/controller/route/DepartmentRouteController.java +++ b/service-department/src/main/java/ink/wgink/service/department/controller/route/DepartmentRouteController.java @@ -1,12 +1,20 @@ -package ink.wgink.module.department.controller.route; +package ink.wgink.service.department.controller.route; import ink.wgink.interfaces.consts.ISystemConstant; +import ink.wgink.interfaces.dictionary.IDictionaryCheckService; +import ink.wgink.util.ResourceUtil; +import ink.wgink.util.request.RequestUtil; import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; + /** * When you feel like quitting. Think about why you started * 当你想要放弃的时候,想想当初你为何开始 @@ -22,9 +30,14 @@ import org.springframework.web.servlet.ModelAndView; @RequestMapping(ISystemConstant.ROUTE_PREFIX + "/department") public class DepartmentRouteController { + @Autowired(required = false) + private IDictionaryCheckService dictionaryCheckService; + @GetMapping("save") public ModelAndView save() { - return new ModelAndView("department/save"); + ModelAndView mv = new ModelAndView("department/save"); + mv.addObject("hasArea", dictionaryCheckService == null ? false : true); + return mv; } @GetMapping("save-merge") @@ -39,7 +52,9 @@ public class DepartmentRouteController { @GetMapping("update") public ModelAndView update() { - return new ModelAndView("department/update"); + ModelAndView mv = new ModelAndView("department/update"); + mv.addObject("hasArea", dictionaryCheckService == null ? false : true); + return mv; } @GetMapping("update-split") @@ -82,4 +97,10 @@ public class DepartmentRouteController { return new ModelAndView("department/upload/upload-excel"); } + @GetMapping("upload/upload-excel-template") + public void excelTemplate(HttpServletResponse response) throws IOException { + File template = ResourceUtil.getResourceFile("templates/department/upload/upload-excel-template.xls"); + RequestUtil.download(response, template, "组织部门导入模板.xls"); + } + } diff --git a/service-department/src/main/java/ink/wgink/service/department/controller/route/DepartmentUserRouteController.java b/service-department/src/main/java/ink/wgink/service/department/controller/route/DepartmentUserRouteController.java new file mode 100644 index 00000000..c3979e6b --- /dev/null +++ b/service-department/src/main/java/ink/wgink/service/department/controller/route/DepartmentUserRouteController.java @@ -0,0 +1,35 @@ +package ink.wgink.service.department.controller.route; + +import ink.wgink.interfaces.consts.ISystemConstant; +import io.swagger.annotations.Api; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.ModelAndView; + +/** + * When you feel like quitting. Think about why you started + * 当你想要放弃的时候,想想当初你为何开始 + * + * @ClassName: DepartmentUserRouteController + * @Description: 组织部门用户 + * @Author: wanggeng + * @Date: 2021/2/13 12:03 下午 + * @Version: 1.0 + */ +@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "组织部门接口") +@Controller +@RequestMapping(ISystemConstant.ROUTE_PREFIX + "/department/user") +public class DepartmentUserRouteController { + + @GetMapping("list") + public ModelAndView list() { + return new ModelAndView("department/user/list"); + } + + @GetMapping("select-user") + public ModelAndView selectUser() { + return new ModelAndView("department/user/select-user"); + } + +} diff --git a/service-department/src/main/java/ink/wgink/module/department/dao/IDepartmentAdjustmentDao.java b/service-department/src/main/java/ink/wgink/service/department/dao/IDepartmentAdjustmentDao.java similarity index 75% rename from service-department/src/main/java/ink/wgink/module/department/dao/IDepartmentAdjustmentDao.java rename to service-department/src/main/java/ink/wgink/service/department/dao/IDepartmentAdjustmentDao.java index 9b92a162..dead58d3 100644 --- a/service-department/src/main/java/ink/wgink/module/department/dao/IDepartmentAdjustmentDao.java +++ b/service-department/src/main/java/ink/wgink/service/department/dao/IDepartmentAdjustmentDao.java @@ -1,6 +1,7 @@ -package ink.wgink.module.department.dao; +package ink.wgink.service.department.dao; import ink.wgink.exceptions.SaveException; +import ink.wgink.exceptions.UpdateException; import org.springframework.stereotype.Repository; import java.util.Map; @@ -17,6 +18,14 @@ import java.util.Map; */ @Repository public interface IDepartmentAdjustmentDao { + + /** + * 建表 + * + * @throws UpdateException + */ + void createTable() throws UpdateException; + /** * 新增部门调整 * diff --git a/service-department/src/main/java/ink/wgink/module/department/dao/IDepartmentDao.java b/service-department/src/main/java/ink/wgink/service/department/dao/IDepartmentDao.java similarity index 96% rename from service-department/src/main/java/ink/wgink/module/department/dao/IDepartmentDao.java rename to service-department/src/main/java/ink/wgink/service/department/dao/IDepartmentDao.java index 217cdede..b464c511 100644 --- a/service-department/src/main/java/ink/wgink/module/department/dao/IDepartmentDao.java +++ b/service-department/src/main/java/ink/wgink/service/department/dao/IDepartmentDao.java @@ -1,4 +1,4 @@ -package ink.wgink.module.department.dao; +package ink.wgink.service.department.dao; import ink.wgink.exceptions.RemoveException; import ink.wgink.exceptions.SaveException; @@ -25,6 +25,12 @@ import java.util.Map; @Repository public interface IDepartmentDao { + /** + * 建表 + * @throws UpdateException + */ + void createTable() throws UpdateException; + /** * 新增组织部门 * diff --git a/service-department/src/main/java/ink/wgink/module/department/dao/IDepartmentUserAdjustmentDao.java b/service-department/src/main/java/ink/wgink/service/department/dao/IDepartmentUserAdjustmentDao.java similarity index 75% rename from service-department/src/main/java/ink/wgink/module/department/dao/IDepartmentUserAdjustmentDao.java rename to service-department/src/main/java/ink/wgink/service/department/dao/IDepartmentUserAdjustmentDao.java index 78c04986..ee672e80 100644 --- a/service-department/src/main/java/ink/wgink/module/department/dao/IDepartmentUserAdjustmentDao.java +++ b/service-department/src/main/java/ink/wgink/service/department/dao/IDepartmentUserAdjustmentDao.java @@ -1,6 +1,7 @@ -package ink.wgink.module.department.dao; +package ink.wgink.service.department.dao; import ink.wgink.exceptions.SaveException; +import ink.wgink.exceptions.UpdateException; import org.springframework.stereotype.Repository; import java.util.Map; @@ -17,6 +18,14 @@ import java.util.Map; */ @Repository public interface IDepartmentUserAdjustmentDao { + + /** + * 建表 + * + * @throws UpdateException + */ + void createTable() throws UpdateException; + /** * 保存部门用户调整 * diff --git a/service-department/src/main/java/ink/wgink/module/department/dao/IDepartmentUserDao.java b/service-department/src/main/java/ink/wgink/service/department/dao/IDepartmentUserDao.java similarity index 72% rename from service-department/src/main/java/ink/wgink/module/department/dao/IDepartmentUserDao.java rename to service-department/src/main/java/ink/wgink/service/department/dao/IDepartmentUserDao.java index d569df9d..0062def6 100644 --- a/service-department/src/main/java/ink/wgink/module/department/dao/IDepartmentUserDao.java +++ b/service-department/src/main/java/ink/wgink/service/department/dao/IDepartmentUserDao.java @@ -1,8 +1,9 @@ -package ink.wgink.module.department.dao; +package ink.wgink.service.department.dao; import ink.wgink.exceptions.RemoveException; import ink.wgink.exceptions.SaveException; import ink.wgink.exceptions.SearchException; +import ink.wgink.exceptions.UpdateException; import org.springframework.stereotype.Repository; import java.util.List; @@ -21,6 +22,13 @@ import java.util.Map; @Repository public interface IDepartmentUserDao { + /** + * 建表 + * + * @throws UpdateException + */ + void createTable() throws UpdateException; + /** * 新增组织用户 * @@ -44,4 +52,12 @@ public interface IDepartmentUserDao { * @return */ List listUserId(Map params) throws SearchException; + + /** + * 用户ID列表 + * @param params + * @return + * @throws SearchException + */ + List listGroupUserId(Map params) throws SearchException; } diff --git a/service-department/src/main/java/ink/wgink/module/department/enmus/DepartmentAdjustmentTypeEnum.java b/service-department/src/main/java/ink/wgink/service/department/enmus/DepartmentAdjustmentTypeEnum.java similarity index 93% rename from service-department/src/main/java/ink/wgink/module/department/enmus/DepartmentAdjustmentTypeEnum.java rename to service-department/src/main/java/ink/wgink/service/department/enmus/DepartmentAdjustmentTypeEnum.java index 1c515dc5..fa4b5e16 100644 --- a/service-department/src/main/java/ink/wgink/module/department/enmus/DepartmentAdjustmentTypeEnum.java +++ b/service-department/src/main/java/ink/wgink/service/department/enmus/DepartmentAdjustmentTypeEnum.java @@ -1,4 +1,4 @@ -package ink.wgink.module.department.enmus; +package ink.wgink.service.department.enmus; /** * When you feel like quitting. Think about why you started diff --git a/service-department/src/main/java/ink/wgink/module/department/listener/excel/DepartmentExcel.java b/service-department/src/main/java/ink/wgink/service/department/listener/excel/DepartmentExcel.java similarity index 98% rename from service-department/src/main/java/ink/wgink/module/department/listener/excel/DepartmentExcel.java rename to service-department/src/main/java/ink/wgink/service/department/listener/excel/DepartmentExcel.java index c418b9e2..f010ea38 100644 --- a/service-department/src/main/java/ink/wgink/module/department/listener/excel/DepartmentExcel.java +++ b/service-department/src/main/java/ink/wgink/service/department/listener/excel/DepartmentExcel.java @@ -1,4 +1,4 @@ -package ink.wgink.module.department.listener.excel; +package ink.wgink.service.department.listener.excel; import com.alibaba.excel.annotation.ExcelProperty; diff --git a/service-department/src/main/java/ink/wgink/module/department/listener/excel/DepartmentExcelError.java b/service-department/src/main/java/ink/wgink/service/department/listener/excel/DepartmentExcelError.java similarity index 98% rename from service-department/src/main/java/ink/wgink/module/department/listener/excel/DepartmentExcelError.java rename to service-department/src/main/java/ink/wgink/service/department/listener/excel/DepartmentExcelError.java index a8409a08..ddd8082d 100644 --- a/service-department/src/main/java/ink/wgink/module/department/listener/excel/DepartmentExcelError.java +++ b/service-department/src/main/java/ink/wgink/service/department/listener/excel/DepartmentExcelError.java @@ -1,4 +1,4 @@ -package ink.wgink.module.department.listener.excel; +package ink.wgink.service.department.listener.excel; import com.alibaba.excel.annotation.ExcelProperty; diff --git a/service-department/src/main/java/ink/wgink/module/department/listener/excel/DepartmentExcelListener.java b/service-department/src/main/java/ink/wgink/service/department/listener/excel/DepartmentExcelListener.java similarity index 96% rename from service-department/src/main/java/ink/wgink/module/department/listener/excel/DepartmentExcelListener.java rename to service-department/src/main/java/ink/wgink/service/department/listener/excel/DepartmentExcelListener.java index 589cb50e..b3779fa0 100644 --- a/service-department/src/main/java/ink/wgink/module/department/listener/excel/DepartmentExcelListener.java +++ b/service-department/src/main/java/ink/wgink/service/department/listener/excel/DepartmentExcelListener.java @@ -1,4 +1,4 @@ -package ink.wgink.module.department.listener.excel; +package ink.wgink.service.department.listener.excel; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; diff --git a/service-department/src/main/java/ink/wgink/module/department/pojo/vos/DepartmentVO.java b/service-department/src/main/java/ink/wgink/service/department/pojo/vos/DepartmentVO.java similarity index 99% rename from service-department/src/main/java/ink/wgink/module/department/pojo/vos/DepartmentVO.java rename to service-department/src/main/java/ink/wgink/service/department/pojo/vos/DepartmentVO.java index 53cb8321..6436ee99 100644 --- a/service-department/src/main/java/ink/wgink/module/department/pojo/vos/DepartmentVO.java +++ b/service-department/src/main/java/ink/wgink/service/department/pojo/vos/DepartmentVO.java @@ -1,4 +1,4 @@ -package ink.wgink.module.department.pojo.vos; +package ink.wgink.service.department.pojo.vos; import ink.wgink.annotation.CheckEmptyAnnotation; import ink.wgink.annotation.CheckNumberAnnotation; diff --git a/service-department/src/main/java/ink/wgink/module/department/pojo/vos/MergeDepartmentInfoVO.java b/service-department/src/main/java/ink/wgink/service/department/pojo/vos/MergeDepartmentInfoVO.java similarity index 96% rename from service-department/src/main/java/ink/wgink/module/department/pojo/vos/MergeDepartmentInfoVO.java rename to service-department/src/main/java/ink/wgink/service/department/pojo/vos/MergeDepartmentInfoVO.java index e795d505..2073252e 100644 --- a/service-department/src/main/java/ink/wgink/module/department/pojo/vos/MergeDepartmentInfoVO.java +++ b/service-department/src/main/java/ink/wgink/service/department/pojo/vos/MergeDepartmentInfoVO.java @@ -1,4 +1,4 @@ -package ink.wgink.module.department.pojo.vos; +package ink.wgink.service.department.pojo.vos; import ink.wgink.annotation.CheckEmptyAnnotation; import io.swagger.annotations.ApiModel; diff --git a/service-department/src/main/java/ink/wgink/module/department/pojo/vos/MergeNewDepartmentInfoVO.java b/service-department/src/main/java/ink/wgink/service/department/pojo/vos/MergeNewDepartmentInfoVO.java similarity index 96% rename from service-department/src/main/java/ink/wgink/module/department/pojo/vos/MergeNewDepartmentInfoVO.java rename to service-department/src/main/java/ink/wgink/service/department/pojo/vos/MergeNewDepartmentInfoVO.java index 8749c002..10d7de67 100644 --- a/service-department/src/main/java/ink/wgink/module/department/pojo/vos/MergeNewDepartmentInfoVO.java +++ b/service-department/src/main/java/ink/wgink/service/department/pojo/vos/MergeNewDepartmentInfoVO.java @@ -1,4 +1,4 @@ -package ink.wgink.module.department.pojo.vos; +package ink.wgink.service.department.pojo.vos; import ink.wgink.annotation.CheckEmptyAnnotation; import io.swagger.annotations.ApiModel; diff --git a/service-department/src/main/java/ink/wgink/module/department/pojo/vos/SplitDepartmentInfoVO.java b/service-department/src/main/java/ink/wgink/service/department/pojo/vos/SplitDepartmentInfoVO.java similarity index 95% rename from service-department/src/main/java/ink/wgink/module/department/pojo/vos/SplitDepartmentInfoVO.java rename to service-department/src/main/java/ink/wgink/service/department/pojo/vos/SplitDepartmentInfoVO.java index 961b95e7..24ace62f 100644 --- a/service-department/src/main/java/ink/wgink/module/department/pojo/vos/SplitDepartmentInfoVO.java +++ b/service-department/src/main/java/ink/wgink/service/department/pojo/vos/SplitDepartmentInfoVO.java @@ -1,4 +1,4 @@ -package ink.wgink.module.department.pojo.vos; +package ink.wgink.service.department.pojo.vos; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/service-department/src/main/java/ink/wgink/module/department/pojo/vos/SplitDepartmentVO.java b/service-department/src/main/java/ink/wgink/service/department/pojo/vos/SplitDepartmentVO.java similarity index 96% rename from service-department/src/main/java/ink/wgink/module/department/pojo/vos/SplitDepartmentVO.java rename to service-department/src/main/java/ink/wgink/service/department/pojo/vos/SplitDepartmentVO.java index f9a818ad..07508aa9 100644 --- a/service-department/src/main/java/ink/wgink/module/department/pojo/vos/SplitDepartmentVO.java +++ b/service-department/src/main/java/ink/wgink/service/department/pojo/vos/SplitDepartmentVO.java @@ -1,4 +1,4 @@ -package ink.wgink.module.department.pojo.vos; +package ink.wgink.service.department.pojo.vos; import ink.wgink.annotation.CheckListAnnotation; import io.swagger.annotations.ApiModel; diff --git a/service-department/src/main/java/ink/wgink/module/department/service/IDepartmentAdjustmentService.java b/service-department/src/main/java/ink/wgink/service/department/service/IDepartmentAdjustmentService.java similarity index 91% rename from service-department/src/main/java/ink/wgink/module/department/service/IDepartmentAdjustmentService.java rename to service-department/src/main/java/ink/wgink/service/department/service/IDepartmentAdjustmentService.java index 36714368..f7cf03a1 100644 --- a/service-department/src/main/java/ink/wgink/module/department/service/IDepartmentAdjustmentService.java +++ b/service-department/src/main/java/ink/wgink/service/department/service/IDepartmentAdjustmentService.java @@ -1,6 +1,6 @@ -package ink.wgink.module.department.service; +package ink.wgink.service.department.service; -import ink.wgink.module.department.enmus.DepartmentAdjustmentTypeEnum; +import ink.wgink.service.department.enmus.DepartmentAdjustmentTypeEnum; import java.util.List; diff --git a/service-department/src/main/java/ink/wgink/module/department/service/IDepartmentService.java b/service-department/src/main/java/ink/wgink/service/department/service/IDepartmentService.java similarity index 91% rename from service-department/src/main/java/ink/wgink/module/department/service/IDepartmentService.java rename to service-department/src/main/java/ink/wgink/service/department/service/IDepartmentService.java index fb0691de..c6a54f38 100644 --- a/service-department/src/main/java/ink/wgink/module/department/service/IDepartmentService.java +++ b/service-department/src/main/java/ink/wgink/service/department/service/IDepartmentService.java @@ -1,6 +1,7 @@ -package ink.wgink.module.department.service; +package ink.wgink.service.department.service; import ink.wgink.interfaces.department.IDepartmentBaseService; +import ink.wgink.interfaces.department.IDepartmentCheckService; import ink.wgink.pojo.ListPage; import ink.wgink.pojo.bos.DepartmentBO; import ink.wgink.pojo.dtos.ZTreeDTO; @@ -8,10 +9,10 @@ import ink.wgink.pojo.dtos.department.DepartmentDTO; import ink.wgink.pojo.dtos.department.DepartmentSimpleDTO; import ink.wgink.pojo.result.SuccessResultList; import ink.wgink.pojo.result.UploadExcelResultDTO; -import ink.wgink.module.department.pojo.vos.DepartmentVO; -import ink.wgink.module.department.pojo.vos.MergeDepartmentInfoVO; -import ink.wgink.module.department.pojo.vos.MergeNewDepartmentInfoVO; -import ink.wgink.module.department.pojo.vos.SplitDepartmentVO; +import ink.wgink.service.department.pojo.vos.DepartmentVO; +import ink.wgink.service.department.pojo.vos.MergeDepartmentInfoVO; +import ink.wgink.service.department.pojo.vos.MergeNewDepartmentInfoVO; +import ink.wgink.service.department.pojo.vos.SplitDepartmentVO; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; @@ -28,7 +29,7 @@ import java.util.Map; * @Date: 2021/1/27 11:27 上午 * @Version: 1.0 */ -public interface IDepartmentService extends IDepartmentBaseService { +public interface IDepartmentService extends IDepartmentBaseService, IDepartmentCheckService { /** * 新增组织部门 @@ -91,6 +92,14 @@ public interface IDepartmentService extends IDepartmentBaseService { */ void updateSplit(String departmentId, SplitDepartmentVO splitDepartmentVO); + /** + * 保存部门Excel + * + * @param excel + * @return + */ + UploadExcelResultDTO importExcel(MultipartFile excel) throws IOException; + /** * 重置组织部门编码 * @@ -181,14 +190,6 @@ public interface IDepartmentService extends IDepartmentBaseService { */ DepartmentBO getHigherLevel(DepartmentBO departmentBO1, DepartmentBO departmentBO2); - /** - * 保存部门Excel - * - * @param excel - * @return - */ - UploadExcelResultDTO uploadExcel(MultipartFile excel) throws IOException; - /** * 获得同一级部门数量(按部门名称) * @@ -238,5 +239,4 @@ public interface IDepartmentService extends IDepartmentBaseService { * @return */ List listSimpleByParentIdAndUpdateDate(String departmentParentId, String updateDate); - } diff --git a/service-department/src/main/java/ink/wgink/module/department/service/IDepartmentUserAdjustmentService.java b/service-department/src/main/java/ink/wgink/service/department/service/IDepartmentUserAdjustmentService.java similarity index 65% rename from service-department/src/main/java/ink/wgink/module/department/service/IDepartmentUserAdjustmentService.java rename to service-department/src/main/java/ink/wgink/service/department/service/IDepartmentUserAdjustmentService.java index 2fe29cea..b1155df5 100644 --- a/service-department/src/main/java/ink/wgink/module/department/service/IDepartmentUserAdjustmentService.java +++ b/service-department/src/main/java/ink/wgink/service/department/service/IDepartmentUserAdjustmentService.java @@ -1,4 +1,7 @@ -package ink.wgink.module.department.service; +package ink.wgink.service.department.service; + +import ink.wgink.exceptions.SaveException; +import ink.wgink.exceptions.UpdateException; import java.util.Map; @@ -18,6 +21,7 @@ public interface IDepartmentUserAdjustmentService { * 新增部门用户调整 * * @param params + * @throws SaveException */ - void save(Map params); + void save(Map params) throws SaveException; } diff --git a/service-department/src/main/java/ink/wgink/module/department/service/IDepartmentUserService.java b/service-department/src/main/java/ink/wgink/service/department/service/IDepartmentUserService.java similarity index 84% rename from service-department/src/main/java/ink/wgink/module/department/service/IDepartmentUserService.java rename to service-department/src/main/java/ink/wgink/service/department/service/IDepartmentUserService.java index d9e0e7cc..20df9cef 100644 --- a/service-department/src/main/java/ink/wgink/module/department/service/IDepartmentUserService.java +++ b/service-department/src/main/java/ink/wgink/service/department/service/IDepartmentUserService.java @@ -1,4 +1,4 @@ -package ink.wgink.module.department.service; +package ink.wgink.service.department.service; import ink.wgink.interfaces.department.IDepartmentUserBaseService; @@ -41,7 +41,7 @@ public interface IDepartmentUserService extends IDepartmentUserBaseService { * @param departmentName 部门名称 * @param userIds 用户ID列表 */ - void deleteUserByDepartmentIdAndUserIds(String departmentId, String departmentName, List userIds); + void deleteByDepartmentIdAndUserIds(String departmentId, String departmentName, List userIds); /** * 删除用户 @@ -56,7 +56,5 @@ public interface IDepartmentUserService extends IDepartmentUserBaseService { * @param departmentId 部门ID * @param userIds 用户ID */ - void updateUserByDepartmentIdAndUserIds(String departmentId, List userIds); - - + void updateByDepartmentIdAndUserIds(String departmentId, List userIds); } diff --git a/service-department/src/main/java/ink/wgink/module/department/service/impl/DepartmentAdjustmentServiceImpl.java b/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentAdjustmentServiceImpl.java similarity index 86% rename from service-department/src/main/java/ink/wgink/module/department/service/impl/DepartmentAdjustmentServiceImpl.java rename to service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentAdjustmentServiceImpl.java index edd8378e..b56626ae 100644 --- a/service-department/src/main/java/ink/wgink/module/department/service/impl/DepartmentAdjustmentServiceImpl.java +++ b/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentAdjustmentServiceImpl.java @@ -1,12 +1,12 @@ -package ink.wgink.module.department.service.impl; +package ink.wgink.service.department.service.impl; import ink.wgink.common.base.DefaultBaseService; import ink.wgink.pojo.dtos.user.UserDTO; -import ink.wgink.module.department.dao.IDepartmentAdjustmentDao; -import ink.wgink.module.department.enmus.DepartmentAdjustmentTypeEnum; -import ink.wgink.module.department.service.IDepartmentAdjustmentService; -import ink.wgink.module.department.service.IDepartmentUserAdjustmentService; -import ink.wgink.module.user.service.IUserService; +import ink.wgink.service.department.dao.IDepartmentAdjustmentDao; +import ink.wgink.service.department.enmus.DepartmentAdjustmentTypeEnum; +import ink.wgink.service.department.service.IDepartmentAdjustmentService; +import ink.wgink.service.department.service.IDepartmentUserAdjustmentService; +import ink.wgink.service.user.service.IUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/service-department/src/main/java/ink/wgink/module/department/service/impl/DepartmentServiceImpl.java b/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentServiceImpl.java similarity index 96% rename from service-department/src/main/java/ink/wgink/module/department/service/impl/DepartmentServiceImpl.java rename to service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentServiceImpl.java index f81aabd7..ecf191a4 100644 --- a/service-department/src/main/java/ink/wgink/module/department/service/impl/DepartmentServiceImpl.java +++ b/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentServiceImpl.java @@ -1,4 +1,4 @@ -package ink.wgink.module.department.service.impl; +package ink.wgink.service.department.service.impl; import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONArray; @@ -20,15 +20,15 @@ import ink.wgink.pojo.dtos.department.DepartmentDTO; import ink.wgink.pojo.dtos.department.DepartmentSimpleDTO; import ink.wgink.pojo.result.SuccessResultList; import ink.wgink.pojo.result.UploadExcelResultDTO; -import ink.wgink.module.department.dao.IDepartmentDao; -import ink.wgink.module.department.enmus.DepartmentAdjustmentTypeEnum; -import ink.wgink.module.department.listener.excel.DepartmentExcel; -import ink.wgink.module.department.listener.excel.DepartmentExcelError; -import ink.wgink.module.department.listener.excel.DepartmentExcelListener; -import ink.wgink.module.department.pojo.vos.*; -import ink.wgink.module.department.service.IDepartmentAdjustmentService; -import ink.wgink.module.department.service.IDepartmentService; -import ink.wgink.module.department.service.IDepartmentUserService; +import ink.wgink.service.department.dao.IDepartmentDao; +import ink.wgink.service.department.enmus.DepartmentAdjustmentTypeEnum; +import ink.wgink.service.department.listener.excel.DepartmentExcel; +import ink.wgink.service.department.listener.excel.DepartmentExcelError; +import ink.wgink.service.department.listener.excel.DepartmentExcelListener; +import ink.wgink.service.department.pojo.vos.*; +import ink.wgink.service.department.service.IDepartmentAdjustmentService; +import ink.wgink.service.department.service.IDepartmentService; +import ink.wgink.service.department.service.IDepartmentUserService; import ink.wgink.util.UUIDUtil; import ink.wgink.util.map.HashMapUtil; import org.apache.commons.lang3.StringUtils; @@ -150,18 +150,42 @@ public class DepartmentServiceImpl extends DefaultBaseService implements IDepart String newDepartmentId = saveReturnId(splitDepartmentInfoVO); departmentAdjustmentService.save(departmentId, departmentDTO.getDepartmentName(), newDepartmentId, splitDepartmentInfoVO.getDepartmentName(), DepartmentAdjustmentTypeEnum.SPLIT); if (!StringUtils.isBlank(userIds)) { - departmentUserService.updateUserByDepartmentIdAndUserIds(newDepartmentId, Arrays.asList(userIds.split("_"))); + departmentUserService.updateByDepartmentIdAndUserIds(newDepartmentId, Arrays.asList(userIds.split("_"))); } } } + @Override + public UploadExcelResultDTO importExcel(MultipartFile excel) throws IOException { + // 错误列表 + List departmentExcelErrors = new ArrayList<>(0); + long startTime = System.currentTimeMillis(); + EasyExcel.read(excel.getInputStream(), DepartmentExcel.class, new DepartmentExcelListener() { + @Override + public void listDepartmentExcel(List departmentExcels) throws Exception { + JSONArray listTreeDepartmentExcelJsonArray = listTreeExcelJsonArray(0, departmentExcels, departmentExcelErrors); + saveExcel("0", null, listTreeDepartmentExcelJsonArray, departmentExcelErrors); + } + }).headRowNumber(2).sheet().doRead(); + long endTime = System.currentTimeMillis(); + String excelFileId = null; + if (departmentExcelErrors.size() > 0) { + excelFileId = new AbstractErrorExcelHandler(fileService) { + @Override + public List> excelHeaderNames() { + return simpleExcelHeader(new String[]{"ID", "组织名称", "上级ID", "组织说明", "组织电话", "类型", "错误原因"}); + } + }.saveErrorExcel(departmentExcelErrors); + } + return new UploadExcelResultDTO(departmentExcelErrors.size(), endTime - startTime, excelFileId); + } + @Override public void resetCode() { Map params = getHashMap(2); resetCode("0", "", params); } - @Override public List list(Map params) { return departmentDao.list(params); @@ -285,31 +309,6 @@ public class DepartmentServiceImpl extends DefaultBaseService implements IDepart return null; } - @Override - public UploadExcelResultDTO uploadExcel(MultipartFile excel) throws IOException { - // 错误列表 - List departmentExcelErrors = new ArrayList<>(0); - long startTime = System.currentTimeMillis(); - EasyExcel.read(excel.getInputStream(), DepartmentExcel.class, new DepartmentExcelListener() { - @Override - public void listDepartmentExcel(List departmentExcels) throws Exception { - JSONArray listTreeDepartmentExcelJsonArray = listTreeExcelJsonArray(0, departmentExcels, departmentExcelErrors); - saveExcel("0", null, listTreeDepartmentExcelJsonArray, departmentExcelErrors); - } - }).headRowNumber(2).sheet().doRead(); - long endTime = System.currentTimeMillis(); - String excelFileId = null; - if (departmentExcelErrors.size() > 0) { - excelFileId = new AbstractErrorExcelHandler(fileService) { - @Override - public List> excelHeaderNames() { - return simpleExcelHeader(new String[]{"ID", "组织名称", "上级ID", "组织说明", "组织电话", "类型", "错误原因"}); - } - }.saveErrorExcel(departmentExcelErrors); - } - return new UploadExcelResultDTO(departmentExcelErrors.size(), endTime - startTime, excelFileId); - } - @Override public Integer count(Map params) { Integer count = departmentDao.count(params); @@ -452,7 +451,7 @@ public class DepartmentServiceImpl extends DefaultBaseService implements IDepart // 获取用户ID List userIds = departmentUserService.listUserIdByDepartmentId(departmentId); // 删除组织用户 - departmentUserService.deleteUserByDepartmentIdAndUserIds(departmentId, departmentName, userIds); + departmentUserService.deleteByDepartmentIdAndUserIds(departmentId, departmentName, userIds); // 删除组织 Map params = getHashMap(2); params.put("departmentIds", Arrays.asList(departmentId)); diff --git a/service-department/src/main/java/ink/wgink/module/department/service/impl/DepartmentUserAdjustmentServiceImpl.java b/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentUserAdjustmentServiceImpl.java similarity index 80% rename from service-department/src/main/java/ink/wgink/module/department/service/impl/DepartmentUserAdjustmentServiceImpl.java rename to service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentUserAdjustmentServiceImpl.java index b0491305..0d912631 100644 --- a/service-department/src/main/java/ink/wgink/module/department/service/impl/DepartmentUserAdjustmentServiceImpl.java +++ b/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentUserAdjustmentServiceImpl.java @@ -1,8 +1,8 @@ -package ink.wgink.module.department.service.impl; +package ink.wgink.service.department.service.impl; import ink.wgink.common.base.DefaultBaseService; -import ink.wgink.module.department.dao.IDepartmentUserAdjustmentDao; -import ink.wgink.module.department.service.IDepartmentUserAdjustmentService; +import ink.wgink.service.department.dao.IDepartmentUserAdjustmentDao; +import ink.wgink.service.department.service.IDepartmentUserAdjustmentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/service-department/src/main/java/ink/wgink/module/department/service/impl/DepartmentUserServiceImpl.java b/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentUserServiceImpl.java similarity index 58% rename from service-department/src/main/java/ink/wgink/module/department/service/impl/DepartmentUserServiceImpl.java rename to service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentUserServiceImpl.java index 62786e51..9f802b24 100644 --- a/service-department/src/main/java/ink/wgink/module/department/service/impl/DepartmentUserServiceImpl.java +++ b/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentUserServiceImpl.java @@ -1,17 +1,24 @@ -package ink.wgink.module.department.service.impl; +package ink.wgink.service.department.service.impl; import ink.wgink.common.base.DefaultBaseService; import ink.wgink.exceptions.SearchException; +import ink.wgink.interfaces.consts.ISystemConstant; +import ink.wgink.interfaces.user.IUserBaseService; +import ink.wgink.pojo.ListPage; import ink.wgink.pojo.dtos.department.DepartmentSimpleDTO; -import ink.wgink.module.department.dao.IDepartmentUserDao; -import ink.wgink.module.department.service.IDepartmentAdjustmentService; -import ink.wgink.module.department.service.IDepartmentService; -import ink.wgink.module.department.service.IDepartmentUserService; +import ink.wgink.pojo.dtos.department.DepartmentUserDTO; +import ink.wgink.pojo.dtos.user.UserDTO; +import ink.wgink.pojo.result.SuccessResultList; +import ink.wgink.service.department.dao.IDepartmentUserDao; +import ink.wgink.service.department.service.IDepartmentAdjustmentService; +import ink.wgink.service.department.service.IDepartmentService; +import ink.wgink.service.department.service.IDepartmentUserService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -34,6 +41,8 @@ public class DepartmentUserServiceImpl extends DefaultBaseService implements IDe private IDepartmentService departmentService; @Autowired private IDepartmentAdjustmentService departmentAdjustmentService; + @Autowired + private IUserBaseService userBaseService; @Override public void saveUserIdByDepartmentId(String departmentId, String departmentName, List departmentUserIds) { @@ -47,7 +56,7 @@ public class DepartmentUserServiceImpl extends DefaultBaseService implements IDe } @Override - public void deleteUserByDepartmentIdAndUserIds(String departmentId, String departmentName, List userIds) { + public void deleteByDepartmentIdAndUserIds(String departmentId, String departmentName, List userIds) { String adjustmentDepartmentName = departmentName; if (StringUtils.isBlank(departmentName)) { DepartmentSimpleDTO departmentSimpleDTO = departmentService.getSimple(departmentId); @@ -71,11 +80,14 @@ public class DepartmentUserServiceImpl extends DefaultBaseService implements IDe Map params = getHashMap(2); params.put("departmentId", departmentId); List userIds = departmentUserDao.listUserId(params); - deleteUserByDepartmentIdAndUserIds(departmentId, null, userIds); + deleteByDepartmentIdAndUserIds(departmentId, null, userIds); } @Override - public void updateUserByDepartmentIdAndUserIds(String departmentId, List userIds) { + public void updateByDepartmentIdAndUserIds(String departmentId, List userIds) { + if (userIds.isEmpty()) { + return; + } DepartmentSimpleDTO departmentSimpleDTO = departmentService.getSimple(departmentId); if (departmentSimpleDTO == null) { throw new SearchException("部门不存在"); @@ -114,4 +126,52 @@ public class DepartmentUserServiceImpl extends DefaultBaseService implements IDe params.put("departmentIds", departmentIds); return departmentUserDao.listUserId(params); } + + @Override + public SuccessResultList> listPage(String departmentId, ListPage page) { + SuccessResultList> successResultList; + if (StringUtils.equals(departmentId, ISystemConstant.TREE_BASE_ROOT_ID_VALUE)) { + successResultList = listPageUserDTOByExcludeDepartmentId(page); + } else { + successResultList = listPageUserDTOByDepartmentId(departmentId, page); + } + List userDTOs = successResultList.getRows(); + List departmentUserDTOs = new ArrayList<>(); + for (UserDTO userDTO : userDTOs) { + DepartmentUserDTO departmentUserDTO = new DepartmentUserDTO(userDTO); + departmentUserDTO.setDepartmentId(departmentId); + departmentUserDTOs.add(departmentUserDTO); + } + return new SuccessResultList<>(departmentUserDTOs, successResultList.getPage(), successResultList.getTotal()); + } + + private List listGroupUserId(Map params) { + return departmentUserDao.listGroupUserId(params); + } + + /** + * 没有组织机构的用户分页列表 + * + * @param page + * @return + */ + private SuccessResultList> listPageUserDTOByExcludeDepartmentId(ListPage page) { + List hasDepartmentIdUserIds = listGroupUserId(new HashMap<>(0)); + return userBaseService.listPageByExcludeUserIds(hasDepartmentIdUserIds, page); + } + + /** + * 组织机构的用户分页列表 + * + * @param departmentId 组织机构ID + * @param page + * @return + */ + private SuccessResultList> listPageUserDTOByDepartmentId(String departmentId, ListPage page) { + List userIds = listUserIdByDepartmentId(departmentId); + if (userIds.isEmpty()) { + return new SuccessResultList<>(new ArrayList<>(), 1, 0L); + } + return userBaseService.listPageByIds(userIds, page); + } } diff --git a/service-department/src/main/java/ink/wgink/service/department/startup/ServiceDepartmentStartUp.java b/service-department/src/main/java/ink/wgink/service/department/startup/ServiceDepartmentStartUp.java new file mode 100644 index 00000000..1a7a3bc9 --- /dev/null +++ b/service-department/src/main/java/ink/wgink/service/department/startup/ServiceDepartmentStartUp.java @@ -0,0 +1,58 @@ +package ink.wgink.service.department.startup; + +import ink.wgink.service.department.dao.IDepartmentAdjustmentDao; +import ink.wgink.service.department.dao.IDepartmentDao; +import ink.wgink.service.department.dao.IDepartmentUserAdjustmentDao; +import ink.wgink.service.department.dao.IDepartmentUserDao; +import ink.wgink.service.department.service.IDepartmentUserAdjustmentService; +import ink.wgink.service.department.service.IDepartmentUserService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.stereotype.Component; + +/** + * When you feel like quitting. Think about why you started + * 当你想要放弃的时候,想想当初你为何开始 + * + * @ClassName: ServiceDepartmentStartUp + * @Description: 组织机构业务 + * @Author: wanggeng + * @Date: 2021/2/12 8:39 下午 + * @Version: 1.0 + */ +@Component +public class ServiceDepartmentStartUp implements ApplicationRunner { + private static final Logger LOG = LoggerFactory.getLogger(ServiceDepartmentStartUp.class); + + @Autowired + private IDepartmentDao departmentDao; + @Autowired + private IDepartmentAdjustmentDao departmentAdjustmentDao; + @Autowired + private IDepartmentUserDao departmentUserDao; + @Autowired + private IDepartmentUserAdjustmentDao departmentUserAdjustmentDao; + + @Override + public void run(ApplicationArguments args) throws Exception { + initTable(); + } + + private void initTable() { + LOG.debug("创建 sys_department 表"); + departmentDao.createTable(); + + LOG.debug("创建 sys_department_adjustment 表"); + departmentAdjustmentDao.createTable(); + + LOG.debug("创建 sys_department_user 表"); + departmentUserDao.createTable(); + + LOG.debug("创建 sys_department_user_adjustment 表"); + departmentUserAdjustmentDao.createTable(); + } + +} diff --git a/service-department/src/main/resources/mybatis/mapper/department-adjustment-mapper.xml b/service-department/src/main/resources/mybatis/mapper/department-adjustment-mapper.xml index 400c465b..5015fe2b 100644 --- a/service-department/src/main/resources/mybatis/mapper/department-adjustment-mapper.xml +++ b/service-department/src/main/resources/mybatis/mapper/department-adjustment-mapper.xml @@ -1,9 +1,25 @@ - + + + + CREATE TABLE IF NOT EXISTS `sys_department_adjustment` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `old_department_id` char(36) NOT NULL, + `old_department_name` varchar(255) NOT NULL COMMENT '旧部门名称', + `new_department_id` char(36) NOT NULL, + `new_department_name` varchar(255) NOT NULL COMMENT '新部门名称', + `adjustment_type` varchar(10) NOT NULL, + `gmt_create` datetime DEFAULT NULL, + `creator` char(36) DEFAULT NULL, + `creator_name` varchar(255) DEFAULT NULL COMMENT '创建人', + PRIMARY KEY (`id`) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='部门调整'; + + INSERT INTO sys_department_adjustment( diff --git a/service-department/src/main/resources/mybatis/mapper/department-mapper.xml b/service-department/src/main/resources/mybatis/mapper/department-mapper.xml index 7ae78321..8ba9369f 100644 --- a/service-department/src/main/resources/mybatis/mapper/department-mapper.xml +++ b/service-department/src/main/resources/mybatis/mapper/department-mapper.xml @@ -1,6 +1,6 @@ - + @@ -91,6 +91,54 @@ + + + CREATE TABLE IF NOT EXISTS `sys_department` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `department_id` char(36) NOT NULL, + `department_parent_id` char(36) NOT NULL COMMENT '上级部门', + `department_name` varchar(255) DEFAULT NULL COMMENT '机构名称', + `department_name_en` varchar(255) DEFAULT NULL COMMENT '部门名称(英文)', + `department_name_other` varchar(255) DEFAULT NULL COMMENT '部门名称(其他)', + `department_summary` varchar(255) DEFAULT NULL COMMENT '部门简介', + `department_code` varchar(255) DEFAULT NULL COMMENT '部门编码', + `department_logo` char(36) DEFAULT NULL COMMENT '部门logo', + `department_logo_hover` char(36) DEFAULT NULL COMMENT '部门logo:hover', + `department_type` int(2) DEFAULT '1' COMMENT '部门类别,1:机构,2:部门', + `department_state` int(2) DEFAULT '1' COMMENT '部门状态,1:正常,2:锁定,3:冻结', + `department_fax` varchar(20) DEFAULT NULL COMMENT '部门传真', + `department_tel` varchar(20) DEFAULT NULL COMMENT '部门电话', + `department_address` varchar(255) DEFAULT NULL COMMENT '部门地址', + `department_master` char(36) DEFAULT '0' COMMENT '部门负责人', + `department_duty` varchar(255) DEFAULT NULL COMMENT '部门职责', + `department_longitude` varchar(255) DEFAULT '0' COMMENT '部门经度', + `department_latitude` varchar(255) DEFAULT '0' COMMENT '部门纬度', + `department_order` int(11) DEFAULT '0' COMMENT '部门排序', + `department_area1_id` bigint(20) DEFAULT NULL COMMENT '1级区域ID', + `department_area1_code` varchar(255) DEFAULT NULL COMMENT '1级区域编码', + `department_area1_name` varchar(255) DEFAULT NULL COMMENT '1级区域名称', + `department_area2_id` bigint(20) DEFAULT NULL COMMENT '2级区域ID', + `department_area2_code` varchar(255) DEFAULT NULL COMMENT '2级区域编码', + `department_area2_name` varchar(255) DEFAULT NULL COMMENT '2级区域名称', + `department_area3_id` bigint(20) DEFAULT NULL COMMENT '3级区域ID', + `department_area3_code` varchar(255) DEFAULT NULL COMMENT '3级区域编码', + `department_area3_name` varchar(255) DEFAULT NULL COMMENT '3级区域名称', + `department_area4_id` bigint(20) DEFAULT NULL COMMENT '4级区域ID', + `department_area4_code` varchar(255) DEFAULT NULL COMMENT '4级区域编码', + `department_area4_name` varchar(255) DEFAULT NULL COMMENT '4级区域名称', + `department_area5_id` bigint(20) DEFAULT NULL COMMENT '5级区域ID', + `department_area5_code` varchar(255) DEFAULT NULL COMMENT '5级区域编码', + `department_area5_name` varchar(255) DEFAULT NULL COMMENT '5级区域名称', + `creator` char(36) DEFAULT NULL, + `gmt_create` datetime DEFAULT NULL, + `modifier` char(36) DEFAULT NULL, + `gmt_modified` datetime DEFAULT NULL, + `is_delete` int(2) DEFAULT '0', + PRIMARY KEY (`id`,`department_id`), + KEY `department_id_idx` (`department_id`) USING BTREE + ) ENGINE=InnoDB DEFAULT CHARSET=utf8; + + INSERT INTO sys_department( diff --git a/service-department/src/main/resources/mybatis/mapper/department-user-adjustment-mapper.xml b/service-department/src/main/resources/mybatis/mapper/department-user-adjustment-mapper.xml index ae733f79..8cf62b8d 100644 --- a/service-department/src/main/resources/mybatis/mapper/department-user-adjustment-mapper.xml +++ b/service-department/src/main/resources/mybatis/mapper/department-user-adjustment-mapper.xml @@ -1,12 +1,28 @@ - + + + + CREATE TABLE IF NOT EXISTS `sys_department_user_adjustment` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `user_id` char(36) NOT NULL COMMENT '用户', + `user_name` varchar(255) NOT NULL COMMENT '用户名称', + `department_id` char(36) NOT NULL COMMENT '部门', + `department_name` varchar(255) NOT NULL COMMENT '部门名称', + `adjustment_type` varchar(255) NOT NULL COMMENT '调整类别', + `gmt_create` datetime NOT NULL COMMENT '创建时间', + `creator` char(36) NOT NULL COMMENT '创建人', + `creator_name` varchar(255) NOT NULL COMMENT '创建人名称', + PRIMARY KEY (`id`) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8; + + - INSERT INTO sys_user_department_adjustment ( + INSERT INTO sys_department_user_adjustment ( user_id, user_name, department_id, diff --git a/service-department/src/main/resources/mybatis/mapper/department-user-mapper.xml b/service-department/src/main/resources/mybatis/mapper/department-user-mapper.xml index e89d5c8e..b03551e5 100644 --- a/service-department/src/main/resources/mybatis/mapper/department-user-mapper.xml +++ b/service-department/src/main/resources/mybatis/mapper/department-user-mapper.xml @@ -1,9 +1,22 @@ - + + + + CREATE TABLE IF NOT EXISTS `sys_department_user` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `department_id` char(36) NOT NULL, + `user_id` char(36) NOT NULL, + `user_sort` varchar(255) DEFAULT 'ZZZ-000', + PRIMARY KEY (`id`), + KEY `user_id_idx` (`user_id`) USING BTREE, + KEY `department_id_idx` (`department_id`) USING BTREE + ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; + + INSERT INTO sys_department_user( @@ -64,4 +77,16 @@ + + + \ No newline at end of file diff --git a/service-department/src/main/resources/templates/department/get-merge.html b/service-department/src/main/resources/templates/department/get-merge.html index fc39297b..854c10e5 100644 --- a/service-department/src/main/resources/templates/department/get-merge.html +++ b/service-department/src/main/resources/templates/department/get-merge.html @@ -1,7 +1,7 @@ - + - + diff --git a/service-department/src/main/resources/templates/department/get.html b/service-department/src/main/resources/templates/department/get.html index f4e20c28..ce7c18bf 100644 --- a/service-department/src/main/resources/templates/department/get.html +++ b/service-department/src/main/resources/templates/department/get.html @@ -1,7 +1,7 @@ - + - + @@ -15,7 +15,7 @@ -
+
@@ -101,7 +101,7 @@
- +
@@ -265,7 +265,7 @@ // 初始化1级区域下拉选择 function initDepartmentArea1CodeSelect(selectValue) { - top.restAjax.get(top.restAjax.path('api/dataarea/listareabyparentid/0', []), {}, null, function(code, data, args) { + top.restAjax.get(top.restAjax.path('api/area/listbyparentid/0', []), {}, null, function(code, data, args) { initSelectRadioCheckboxTemplate('departmentArea1IdSelectTemplate', 'departmentArea1IdSelectTemplateBox', data, function() { var selectObj = {}; selectObj['departmentArea1Id'] = selectValue; @@ -286,7 +286,7 @@ }); return; } - top.restAjax.get(top.restAjax.path('api/dataarea/listareabyparentid/{area1}', [area1]), {}, null, function(code, data, args) { + top.restAjax.get(top.restAjax.path('api/area/listbyparentid/{area1}', [area1]), {}, null, function(code, data, args) { initSelectRadioCheckboxTemplate('departmentArea2IdSelectTemplate', 'departmentArea2IdSelectTemplateBox', data, function() { var selectObj = {}; selectObj['departmentArea2Id'] = selectValue; @@ -307,7 +307,7 @@ }); return; } - top.restAjax.get(top.restAjax.path('api/dataarea/listareabyparentid/{area2}', [area2]), {}, null, function(code, data, args) { + top.restAjax.get(top.restAjax.path('api/area/listbyparentid/{area2}', [area2]), {}, null, function(code, data, args) { initSelectRadioCheckboxTemplate('departmentArea3IdSelectTemplate', 'departmentArea3IdSelectTemplateBox', data, function() { var selectObj = {}; selectObj['departmentArea3Id'] = selectValue; @@ -328,7 +328,7 @@ }); return; } - top.restAjax.get(top.restAjax.path('api/dataarea/listareabyparentid/{area3}', [area3]), {}, null, function(code, data, args) { + top.restAjax.get(top.restAjax.path('api/area/listbyparentid/{area3}', [area3]), {}, null, function(code, data, args) { initSelectRadioCheckboxTemplate('departmentArea4IdSelectTemplate', 'departmentArea4IdSelectTemplateBox', data, function() { var selectObj = {}; selectObj['departmentArea4Id'] = selectValue; @@ -349,7 +349,7 @@ }); return; } - top.restAjax.get(top.restAjax.path('api/dataarea/listareabyparentid/{area4}', [area4]), {}, null, function(code, data, args) { + top.restAjax.get(top.restAjax.path('api/area/listbyparentid/{area4}', [area4]), {}, null, function(code, data, args) { initSelectRadioCheckboxTemplate('departmentArea5IdSelectTemplate', 'departmentArea5IdSelectTemplateBox', data, function() { var selectObj = {}; selectObj['departmentArea5Id'] = selectValue; @@ -363,7 +363,7 @@ // 初始化 function initData() { var loadLayerIndex; - top.restAjax.get(top.restAjax.path('api/department/getdepartment/{departmentId}', [departmentId]), {}, null, function(code, data) { + top.restAjax.get(top.restAjax.path('api/department/get/{departmentId}', [departmentId]), {}, null, function(code, data) { form.val('dataForm', { departmentParentName: data.departmentParentName == '' ? '根节点' : data.departmentParentName, departmentParentId: data.departmentParentId, @@ -404,30 +404,6 @@ $('.close').on('click', function() { closeBox(); }); - - // 校验部门是否存在 - var checkDepartmentNameTimeout; - $(document).on('keydown', '#departmentName', function() { - var self = this; - if(checkDepartmentNameTimeout) { - clearTimeout(checkDepartmentNameTimeout); - } - checkDepartmentNameTimeout = setTimeout(function() { - if(!self.value) { - return; - } - top.restAjax.get(top.restAjax.path('api/department/countdepartmentbyparentidandname/{departmentParentId}/{departmentName}', [$('#departmentParentId').val(), encodeURI(self.value)]), { - noDepartmentId: departmentId - }, null, function(code, data) { - if(data.data > 0) { - top.dialog.msg('【'+ self.value +'】在本级已经存在'); - self.value = ''; - } - }, function(code, data) { - top.dialog.msg(data.msg); - }); - }, 500); - }); }); diff --git a/service-department/src/main/resources/templates/department/list-split.html b/service-department/src/main/resources/templates/department/list-split.html index 0982aa11..964874dd 100644 --- a/service-department/src/main/resources/templates/department/list-split.html +++ b/service-department/src/main/resources/templates/department/list-split.html @@ -1,7 +1,7 @@ - + - + @@ -120,7 +120,7 @@ area: ['100%', '100%'], shadeClose: true, anim: 2, - content: top.restAjax.path('route/system/department/save-split.html?departmentParentId={departmentParentId}', [departmentParentId]), + content: top.restAjax.path('route/department/save-split?departmentParentId={departmentParentId}', [departmentParentId]), end: function() { initTable(); } @@ -136,7 +136,7 @@ area: ['100%', '100%'], shadeClose: true, anim: 2, - content: top.restAjax.path('route/system/department/update-split.html?departmentId={departmentId}&departmentParentId={departmentParentId}', [departmentId, departmentParentId]), + content: top.restAjax.path('route/department/update-split?departmentId={departmentId}&departmentParentId={departmentParentId}', [departmentId, departmentParentId]), end: function() { initTable(); } @@ -204,7 +204,7 @@ yes: function (index) { top.dialog.close(index); var layerIndex; - top.restAjax.put(top.restAjax.path('api/department/updatesplitdepartment/{departmentId}', [departmentId]), { + top.restAjax.put(top.restAjax.path('api/department/updatesplit/{departmentId}', [departmentId]), { splitDepartments: splitDepartmentArray }, null, function(code, data) { top.dialog.msg('拆分成功'); diff --git a/service-department/src/main/resources/templates/department/list-tree-user.html b/service-department/src/main/resources/templates/department/list-tree-user.html index e71ad5be..361a23f8 100644 --- a/service-department/src/main/resources/templates/department/list-tree-user.html +++ b/service-department/src/main/resources/templates/department/list-tree-user.html @@ -1,7 +1,7 @@ - + - + diff --git a/service-department/src/main/resources/templates/department/list-tree.html b/service-department/src/main/resources/templates/department/list-tree.html index 1296df3b..f278217d 100644 --- a/service-department/src/main/resources/templates/department/list-tree.html +++ b/service-department/src/main/resources/templates/department/list-tree.html @@ -1,7 +1,7 @@ - + - + @@ -49,7 +49,7 @@ // 初始化IFrame function initIFrame() { - $('#listContent').attr('src', top.restAjax.path('route/system/department/list.html?parentId={parentId}', [parentId])); + $('#listContent').attr('src', top.restAjax.path('route/department/list?parentId={parentId}', [parentId])); } // 初始化大小 function initSize() { @@ -68,7 +68,7 @@ enable: true, autoLoad: false, type: 'get', - url: top.restAjax.path('api/department/listztreedepartment', []), + url: top.restAjax.path('api/department/listztree', []), autoParam: ['id'], otherParam: {}, dataFilter: function (treeId, parentNode, childNodes) { diff --git a/service-department/src/main/resources/templates/department/list.html b/service-department/src/main/resources/templates/department/list.html index f4fbb485..91d2d070 100644 --- a/service-department/src/main/resources/templates/department/list.html +++ b/service-department/src/main/resources/templates/department/list.html @@ -1,7 +1,7 @@ - + - + @@ -20,15 +20,17 @@
- - - +
+ + + +
@@ -66,13 +68,14 @@ var admin = layui.admin; var laydate = layui.laydate; var parentId = top.restAjax.params(window.location.href).parentId; + var tableUrl = 'api/department/listpage?parentId={parentId}'; // 初始化表格 function initTable() { table.render({ elem: '#dataTable', id: 'dataTable', - url: top.restAjax.path('api/department/listpagedepartment?parentId={parentId}', [parentId]), + url: top.restAjax.path(tableUrl, [parentId]), width: admin.screen() > 1 ? '100%' : '', height: $win.height() - 60, limit: 20, @@ -82,62 +85,64 @@ pageName: 'page', limitName: 'rows' }, - cols: [[ - {type:'checkbox', fixed: 'left'}, - {field:'rowNum', width:80, title: '序号', fixed: 'left', align:'center', templet: '{{d.LAY_INDEX}}'}, - {field:'users', width:100, title: '人员列表', align:'center', - templet: function(item) { - return ''; - } - }, - {field:'departmentName', width:180, title: '组织名称', align:'center',}, - {field:'departmentNameEn', width:140, title: '名称(英文)', align:'center',}, - {field:'departmentSummary', width:180, title: '组织说明', align:'center',}, - {field:'departmentCode', width:100, title: '组织编码', align:'center',}, - {field:'departmentType', width:100, title: '组织类型', align:'center', - templet: function(item) { - var value; - switch (item.departmentType) { - case 1: - value = '机构'; - break; - case 2: - value = '部门'; - break; - default: - value = '无'; + cols: [ + [ + {type:'checkbox', fixed: 'left'}, + {field:'rowNum', width:80, title: '序号', fixed: 'left', align:'center', templet: '{{d.LAY_INDEX}}'}, + {field:'users', width:100, title: '人员列表', align:'center', + templet: function(item) { + return ''; } - return value; - } - }, - {field:'departmentState', width:100, title: '组织状态', align:'center', - templet: function(item) { - var value; - switch (item.departmentState) { - case 1: - value = '正常'; - break; - case 2: - value = '异常'; - break; - case 3: - value = '停用'; - break; - default: - value = '错误' + }, + {field:'departmentName', width:180, title: '组织名称', align:'center',}, + {field:'departmentNameEn', width:140, title: '名称(英文)', align:'center',}, + {field:'departmentSummary', width:180, title: '组织说明', align:'center',}, + {field:'departmentCode', width:100, title: '组织编码', align:'center',}, + {field:'departmentType', width:100, title: '组织类型', align:'center', + templet: function(item) { + var value; + switch (item.departmentType) { + case 1: + value = '机构'; + break; + case 2: + value = '部门'; + break; + default: + value = '无'; + } + return value; + } + }, + {field:'departmentState', width:100, title: '组织状态', align:'center', + templet: function(item) { + var value; + switch (item.departmentState) { + case 1: + value = '正常'; + break; + case 2: + value = '异常'; + break; + case 3: + value = '停用'; + break; + default: + value = '错误' + } + return value; + } + }, + {field:'operation', width:100, title: '操作', fixed: 'right', align:'center', + templet: function(item) { + return '
' + + '' + + '' + + '
'; } - return value; } - }, - {field:'operation', width:120, title: '操作', fixed: 'right', align:'center', - templet: function(item) { - return '
' + - '' + - '' + - '
'; - } - } - ]], + ] + ], page: true, parseData: function(data) { return { @@ -152,7 +157,7 @@ // 重载表格 function reloadTable(currentPage) { table.reload('dataTable', { - url: top.restAjax.path('api/department/listpagedepartment?parentId={parentId}', [parentId]), + url: top.restAjax.path(tableUrl, [parentId]), where: { keywords: $('#keywords').val(), }, @@ -177,10 +182,9 @@ yes: function (index) { top.dialog.close(index); var layIndex; - top.restAjax.delete(top.restAjax.path('api/department/removedepartment/{ids}', [ids]), {}, null, function (code, data) { - top.dialog.msg(top.dataMessage.deleteSuccess, {time: 1000}, function () { - refreshTable(); - }); + top.restAjax.delete(top.restAjax.path('api/department/remove/{ids}', [ids]), {}, null, function (code, data) { + top.dialog.msg(top.dataMessage.deleteSuccess, {time: 1000}); + refreshTable(); }, function (code, data) { top.dialog.msg(data.msg); }, function () { @@ -204,7 +208,7 @@ }); $(document).on('click', '#uploadExcel', function() { top.dialog.open({ - url: top.restAjax.path('route/system/department/upload/save-upload-excel.html', []), + url: top.restAjax.path('route/department/upload/upload-excel', []), title: '导入部门数据', width: '300px', height: '196px', @@ -221,10 +225,9 @@ yes: function (index) { top.dialog.close(index); var layIndex; - top.restAjax.put(top.restAjax.path('api/department/updateresetdepartmentcode', []), {}, null, function (code, data) { - top.dialog.msg('重置成功', {time: 1000}, function () { - refreshTable(); - }); + top.restAjax.put(top.restAjax.path('api/department/resetcode', []), {}, null, function (code, data) { + top.dialog.msg('重置成功', {time: 1000}); + refreshTable(); }, function (code, data) { top.dialog.msg(data.msg); }, function () { @@ -248,9 +251,9 @@ area: ['100%', '100%'], shadeClose: true, anim: 2, - content: top.restAjax.path('route/system/department/save.html?departmentParentId={parentId}', [parentId]), + content: top.restAjax.path('route/department/save?departmentParentId={parentId}', [parentId]), end: function() { - refreshTable(); + reloadTable(); } }); } else if(layEvent === 'update') { @@ -266,9 +269,9 @@ area: ['100%', '100%'], shadeClose: true, anim: 2, - content: top.restAjax.path('route/system/department/update.html?departmentId={departmentId}', [checkDatas[0].departmentId]), + content: top.restAjax.path('route/department/update?departmentId={departmentId}', [checkDatas[0].departmentId]), end: function() { - refreshTable(); + reloadTable(); } }); } @@ -298,7 +301,7 @@ } top.dialog.dialogData.mergeDepartmentIds = departmentIds; top.dialog.open({ - url: top.restAjax.path('route/system/department/get-merge.html', []), + url: top.restAjax.path('route/department/get-merge', []), title: '合并选项', width: '300px', height: '180px', @@ -309,7 +312,7 @@ var mergeType = top.dialog.dialogData.mergeType; if(mergeType === 'newDepartment') { top.dialog.open({ - url: top.restAjax.path('route/system/department/save-merge.html?departmentParentId={parentId}', [parentId]), + url: top.restAjax.path('route/department/save-merge?departmentParentId={parentId}', [parentId]), title: '新建组织', width: '800px', height: '500px', @@ -320,7 +323,7 @@ } else if(mergeType === 'selectDepartment') { top.dialog.tree({ title: '选择树', - apiUri: top.restAjax.path('api/department/listztreedepartment', []), + apiUri: top.restAjax.path('api/department/listztree', []), width: '200px', height: '400px', onClose: function() { @@ -336,7 +339,7 @@ top.dialog.confirm('确定合并到该组织吗?操作不可撤销!', function(index) { top.dialog.close(index); var loadLayerIndex; - top.restAjax.put(top.restAjax.path('api/department/updatemergedepartment/{departmentId}', [selectNodes[0].id]), { + top.restAjax.put(top.restAjax.path('api/department/updatemerge/{departmentId}', [selectNodes[0].id]), { mergeDepartmentIds: top.dialog.dialogData.mergeDepartmentIds }, null, function(code, data) { top.dialog.msg('合并成功'); @@ -363,7 +366,7 @@ var layEvent = obj.event; if(layEvent === 'userEvent') { top.dialog.open({ - url: top.restAjax.path('route/system/user/list-department-user.html?departmentId={departmentId}', [data.departmentId]), + url: top.restAjax.path('route/department/user/list?departmentId={departmentId}', [data.departmentId]), title: '组织用户列表', width: '800px', height: '500px', @@ -371,7 +374,7 @@ }); } else if(layEvent === 'splitEvent') { top.dialog.open({ - url: top.restAjax.path('route/system/department/list-split.html?departmentId={departmentId}&departmentParentId={departmentParentId}', [data.departmentId, data.departmentParentId]), + url: top.restAjax.path('route/department/list-split?departmentId={departmentId}&departmentParentId={departmentParentId}', [data.departmentId, data.departmentParentId]), title: '拆分组织', width: '800px', height: '500px', @@ -387,7 +390,7 @@ area: ['100%', '100%'], shadeClose: true, anim: 2, - content: top.restAjax.path('route/system/department/get.html?departmentId={departmentId}', [data.departmentId]), + content: top.restAjax.path('route/department/get?departmentId={departmentId}', [data.departmentId]), end: function() {} }); } diff --git a/service-department/src/main/resources/templates/department/save-merge.html b/service-department/src/main/resources/templates/department/save-merge.html index 2e62e288..65d9d0fb 100644 --- a/service-department/src/main/resources/templates/department/save-merge.html +++ b/service-department/src/main/resources/templates/department/save-merge.html @@ -1,7 +1,7 @@ - + - + @@ -251,7 +251,7 @@ // 初始化1级区域下拉选择 function initDepartmentArea1CodeSelect() { - top.restAjax.get(top.restAjax.path('api/dataarea/listareabyparentid/0', []), {}, null, function(code, data, args) { + top.restAjax.get(top.restAjax.path('api/area/listbyparentid/0', []), {}, null, function(code, data, args) { initSelectRadioCheckboxTemplate('departmentArea1IdSelectTemplate', 'departmentArea1IdSelectTemplateBox', data); }, function(code, data) { top.dialog.msg(data.msg); @@ -264,7 +264,7 @@ initSelectRadioCheckboxTemplate('departmentArea2IdSelectTemplate', 'departmentArea2IdSelectTemplateBox', []); return; } - top.restAjax.get(top.restAjax.path('api/dataarea/listareabyparentid/{area1}', [area1]), {}, null, function(code, data, args) { + top.restAjax.get(top.restAjax.path('api/area/listbyparentid/{area1}', [area1]), {}, null, function(code, data, args) { initSelectRadioCheckboxTemplate('departmentArea2IdSelectTemplate', 'departmentArea2IdSelectTemplateBox', data); }, function(code, data) { top.dialog.msg(data.msg); @@ -277,7 +277,7 @@ initSelectRadioCheckboxTemplate('departmentArea3IdSelectTemplate', 'departmentArea3IdSelectTemplateBox', []); return; } - top.restAjax.get(top.restAjax.path('api/dataarea/listareabyparentid/{area2}', [area2]), {}, null, function(code, data, args) { + top.restAjax.get(top.restAjax.path('api/area/listbyparentid/{area2}', [area2]), {}, null, function(code, data, args) { initSelectRadioCheckboxTemplate('departmentArea3IdSelectTemplate', 'departmentArea3IdSelectTemplateBox', data); }, function(code, data) { top.dialog.msg(data.msg); @@ -290,7 +290,7 @@ initSelectRadioCheckboxTemplate('departmentArea4IdSelectTemplate', 'departmentArea4IdSelectTemplateBox', []); return; } - top.restAjax.get(top.restAjax.path('api/dataarea/listareabyparentid/{area3}', [area3]), {}, null, function(code, data, args) { + top.restAjax.get(top.restAjax.path('api/area/listbyparentid/{area3}', [area3]), {}, null, function(code, data, args) { initSelectRadioCheckboxTemplate('departmentArea4IdSelectTemplate', 'departmentArea4IdSelectTemplateBox', data); }, function(code, data) { top.dialog.msg(data.msg); @@ -303,7 +303,7 @@ initSelectRadioCheckboxTemplate('departmentArea5IdSelectTemplate', 'departmentArea5IdSelectTemplateBox', []); return; } - top.restAjax.get(top.restAjax.path('api/dataarea/listareabyparentid/{area4}', [area4]), {}, null, function(code, data, args) { + top.restAjax.get(top.restAjax.path('api/area/listbyparentid/{area4}', [area4]), {}, null, function(code, data, args) { initSelectRadioCheckboxTemplate('departmentArea5IdSelectTemplate', 'departmentArea5IdSelectTemplateBox', data); }, function(code, data) { top.dialog.msg(data.msg); @@ -350,7 +350,7 @@ var loadLayerIndex; formData.field.departmentParentId = departmentParentId; formData.field.mergeDepartmentIds = top.dialog.dialogData.mergeDepartmentIds; - top.restAjax.put(top.restAjax.path('api/department/updatemergenewdepartment', []), formData.field, null, function(code, data) { + top.restAjax.put(top.restAjax.path('api/department/updatemergenew', []), formData.field, null, function(code, data) { top.dialog.msg('合并成功'); closeBox(); }, function(code, data) { @@ -401,7 +401,7 @@ if(!self.value) { return; } - top.restAjax.get(top.restAjax.path('api/department/countdepartmentbyparentidandname/{departmentParentId}/{departmentName}', [departmentParentId, encodeURI(self.value)]), {}, null, function(code, data) { + top.restAjax.get(top.restAjax.path('api/department/countbyparentidandname/{departmentParentId}/{departmentName}', [departmentParentId, encodeURI(self.value)]), {}, null, function(code, data) { if(data.data > 0) { top.dialog.msg('【'+ self.value +'】在本级已经存在'); self.value = ''; diff --git a/service-department/src/main/resources/templates/department/save-split.html b/service-department/src/main/resources/templates/department/save-split.html index 5969014b..6f89d494 100644 --- a/service-department/src/main/resources/templates/department/save-split.html +++ b/service-department/src/main/resources/templates/department/save-split.html @@ -1,7 +1,7 @@ - + - + @@ -257,7 +257,7 @@ // 初始化1级区域下拉选择 function initDepartmentArea1CodeSelect() { - top.restAjax.get(top.restAjax.path('api/dataarea/listareabyparentid/0', []), {}, null, function(code, data, args) { + top.restAjax.get(top.restAjax.path('api/area/listbyparentid/0', []), {}, null, function(code, data, args) { initSelectRadioCheckboxTemplate('departmentArea1IdSelectTemplate', 'departmentArea1IdSelectTemplateBox', data); }, function(code, data) { top.dialog.msg(data.msg); @@ -270,7 +270,7 @@ initSelectRadioCheckboxTemplate('departmentArea2IdSelectTemplate', 'departmentArea2IdSelectTemplateBox', []); return; } - top.restAjax.get(top.restAjax.path('api/dataarea/listareabyparentid/{area1}', [area1]), {}, null, function(code, data, args) { + top.restAjax.get(top.restAjax.path('api/area/listbyparentid/{area1}', [area1]), {}, null, function(code, data, args) { initSelectRadioCheckboxTemplate('departmentArea2IdSelectTemplate', 'departmentArea2IdSelectTemplateBox', data); }, function(code, data) { top.dialog.msg(data.msg); @@ -283,7 +283,7 @@ initSelectRadioCheckboxTemplate('departmentArea3IdSelectTemplate', 'departmentArea3IdSelectTemplateBox', []); return; } - top.restAjax.get(top.restAjax.path('api/dataarea/listareabyparentid/{area2}', [area2]), {}, null, function(code, data, args) { + top.restAjax.get(top.restAjax.path('api/area/listbyparentid/{area2}', [area2]), {}, null, function(code, data, args) { initSelectRadioCheckboxTemplate('departmentArea3IdSelectTemplate', 'departmentArea3IdSelectTemplateBox', data); }, function(code, data) { top.dialog.msg(data.msg); @@ -296,7 +296,7 @@ initSelectRadioCheckboxTemplate('departmentArea4IdSelectTemplate', 'departmentArea4IdSelectTemplateBox', []); return; } - top.restAjax.get(top.restAjax.path('api/dataarea/listareabyparentid/{area3}', [area3]), {}, null, function(code, data, args) { + top.restAjax.get(top.restAjax.path('api/area/listbyparentid/{area3}', [area3]), {}, null, function(code, data, args) { initSelectRadioCheckboxTemplate('departmentArea4IdSelectTemplate', 'departmentArea4IdSelectTemplateBox', data); }, function(code, data) { top.dialog.msg(data.msg); @@ -309,7 +309,7 @@ initSelectRadioCheckboxTemplate('departmentArea5IdSelectTemplate', 'departmentArea5IdSelectTemplateBox', []); return; } - top.restAjax.get(top.restAjax.path('api/dataarea/listareabyparentid/{area4}', [area4]), {}, null, function(code, data, args) { + top.restAjax.get(top.restAjax.path('api/area/listbyparentid/{area4}', [area4]), {}, null, function(code, data, args) { initSelectRadioCheckboxTemplate('departmentArea5IdSelectTemplate', 'departmentArea5IdSelectTemplateBox', data); }, function(code, data) { top.dialog.msg(data.msg); @@ -398,7 +398,7 @@ if(!self.value) { return; } - top.restAjax.get(top.restAjax.path('api/department/countdepartmentbyparentidandname/{departmentParentId}/{departmentName}', [departmentParentId, encodeURI(self.value)]), {}, null, function(code, data) { + top.restAjax.get(top.restAjax.path('api/department/countbyparentidandname/{departmentParentId}/{departmentName}', [departmentParentId, encodeURI(self.value)]), {}, null, function(code, data) { if(data.data > 0) { top.dialog.msg('【'+ self.value +'】在本级已经存在'); self.value = ''; diff --git a/service-department/src/main/resources/templates/department/save.html b/service-department/src/main/resources/templates/department/save.html index ca9a52ab..2486d28a 100644 --- a/service-department/src/main/resources/templates/department/save.html +++ b/service-department/src/main/resources/templates/department/save.html @@ -1,7 +1,7 @@ - + - + @@ -15,7 +15,7 @@ -
+
@@ -171,7 +171,6 @@
-
@@ -227,7 +226,6 @@
-
+
-
+
@@ -266,7 +266,7 @@ // 初始化1级区域下拉选择 function initDepartmentArea1CodeSelect(selectValue) { - top.restAjax.get(top.restAjax.path('api/dataarea/listareabyparentid/0', []), {}, null, function(code, data, args) { + top.restAjax.get(top.restAjax.path('api/area/listbyparentid/0', []), {}, null, function(code, data, args) { initSelectRadioCheckboxTemplate('departmentArea1IdSelectTemplate', 'departmentArea1IdSelectTemplateBox', data, function() { var selectObj = {}; selectObj['departmentArea1Id'] = selectValue; @@ -287,7 +287,7 @@ }); return; } - top.restAjax.get(top.restAjax.path('api/dataarea/listareabyparentid/{area1}', [area1]), {}, null, function(code, data, args) { + top.restAjax.get(top.restAjax.path('api/area/listbyparentid/{area1}', [area1]), {}, null, function(code, data, args) { initSelectRadioCheckboxTemplate('departmentArea2IdSelectTemplate', 'departmentArea2IdSelectTemplateBox', data, function() { var selectObj = {}; selectObj['departmentArea2Id'] = selectValue; @@ -308,7 +308,7 @@ }); return; } - top.restAjax.get(top.restAjax.path('api/dataarea/listareabyparentid/{area2}', [area2]), {}, null, function(code, data, args) { + top.restAjax.get(top.restAjax.path('api/area/listbyparentid/{area2}', [area2]), {}, null, function(code, data, args) { initSelectRadioCheckboxTemplate('departmentArea3IdSelectTemplate', 'departmentArea3IdSelectTemplateBox', data, function() { var selectObj = {}; selectObj['departmentArea3Id'] = selectValue; @@ -329,7 +329,7 @@ }); return; } - top.restAjax.get(top.restAjax.path('api/dataarea/listareabyparentid/{area3}', [area3]), {}, null, function(code, data, args) { + top.restAjax.get(top.restAjax.path('api/area/listbyparentid/{area3}', [area3]), {}, null, function(code, data, args) { initSelectRadioCheckboxTemplate('departmentArea4IdSelectTemplate', 'departmentArea4IdSelectTemplateBox', data, function() { var selectObj = {}; selectObj['departmentArea4Id'] = selectValue; @@ -350,7 +350,7 @@ }); return; } - top.restAjax.get(top.restAjax.path('api/dataarea/listareabyparentid/{area4}', [area4]), {}, null, function(code, data, args) { + top.restAjax.get(top.restAjax.path('api/area/listbyparentid/{area4}', [area4]), {}, null, function(code, data, args) { initSelectRadioCheckboxTemplate('departmentArea5IdSelectTemplate', 'departmentArea5IdSelectTemplateBox', data, function() { var selectObj = {}; selectObj['departmentArea5Id'] = selectValue; @@ -364,7 +364,7 @@ // 初始化 function initData() { var loadLayerIndex; - top.restAjax.get(top.restAjax.path('api/department/getdepartment/{departmentId}', [departmentId]), {}, null, function(code, data) { + top.restAjax.get(top.restAjax.path('api/department/get/{departmentId}', [departmentId]), {}, null, function(code, data) { form.val('dataForm', { departmentParentName: data.departmentParentName == '' ? '根节点' : data.departmentParentName, departmentParentId: data.departmentParentId, @@ -386,14 +386,13 @@ departmentAddress: data.departmentAddress, }); form.render(null, 'dataForm'); - initDepartmentArea1CodeSelect(data['departmentArea1Id']); initDepartmentArea2CodeSelect(data['departmentArea1Id'], data['departmentArea2Id']); initDepartmentArea3CodeSelect(data['departmentArea2Id'], data['departmentArea3Id']); initDepartmentArea4CodeSelect(data['departmentArea3Id'], data['departmentArea4Id']); initDepartmentArea5CodeSelect(data['departmentArea4Id'], data['departmentArea5Id']); }, function(code, data) { - top.DialogBox.msg(data.msg); + top.dialog.msg(data.msg); }, function() { loadLayerIndex = top.dialog.msg(top.dataMessage.loading, {icon: 16, time: 0, shade: 0.3}); }, function() { @@ -405,7 +404,7 @@ $(document).on('click', '#departmentMasterName', function() { top.dialog.dialogData.selectedUserIds = $('#departmentMaster').val(); top.dialog.open({ - url: top.restAjax.path('route/system/user/select-department-user.html', []), + url: top.restAjax.path('route/user/select-department-user.html', []), title: '选择组织部门人员', width: '500px', height: '500px', @@ -430,7 +429,8 @@ top.dialog.confirm(top.dataMessage.commit, function(index) { top.dialog.close(index); var loadLayerIndex; - top.restAjax.put(top.restAjax.path('api/department/updatedepartment/{departmentId}', [departmentId]), formData.field, null, function(code, data) { + top.restAjax.put(top.restAjax.path('api/department/update/{departmentId}', [departmentId]), formData.field, null, function(code, data) { + parent.parent.common.refreshTree('leftTree'); var layerIndex = top.dialog.msg(top.dataMessage.commitSuccess, { time: 0, btn: [top.dataMessage.button.yes, top.dataMessage.button.no], @@ -491,7 +491,7 @@ if(!self.value) { return; } - top.restAjax.get(top.restAjax.path('api/department/countdepartmentbyparentidandname/{departmentParentId}/{departmentName}', [$('#departmentParentId').val(), encodeURI(self.value)]), { + top.restAjax.get(top.restAjax.path('api/department/countbyparentidandname/{departmentParentId}/{departmentName}', [$('#departmentParentId').val(), encodeURI(self.value)]), { noDepartmentId: departmentId }, null, function(code, data) { if(data.data > 0) { diff --git a/service-department/src/main/resources/templates/department/upload/upload-excel-template.xls b/service-department/src/main/resources/templates/department/upload/upload-excel-template.xls new file mode 100644 index 0000000000000000000000000000000000000000..1aba5e93ffb4a48c245d5c70d017196b3882ac87 GIT binary patch literal 18944 zcmeG^2Urxz(!I+93xbkG5Lgh&AW<+9%z_Al=@2okV#EVQ@I)}5f{Nl9Ira2V%=tXU zfQllDXHMrC5K+wG=^={lUp2F{yUfn)qJN*|~Ku-)E zsiRGb3@_-O$Py48=9F*sQV zcoL9iluRbn)s(vKqA-q7*AB!4unEZ@U+f)3JqgGFVF-n{kh(fh*T!%akb@M>?-ay` zn2|q#LQHbep~+k#6lBN6^hP))S?2#9ewN~Mgc@e5{AoCwza>$@*P2U2g2v;ETW(eE0!8d<-Z)f_fHAY8+lt(YHZdgv2T~<-fDq~dxdrhi z?FbDSL_AfXwxR$C$(CH`aik9n&=Dk_hcJ-n!uU~Z#|zrxYmKh66@|jUu;nM!+%m&t zG;t%oM36uvasl1oNvSWw+mZUU^>ydMZ~*H#P*gN+2=#0$>Q7wZk7|ss8HDpSfOUMV z)1iyn^6NpX%Oz|5#`y8*hJ(SSm0TFTMiF-y;v9Oh*{N&Cg`ugbRxmcriC_?Mtk+Af z&`X1e3uIOJAh5Qrs110g6*q~}NBD@_fp=Q7i5a1}TcvC1w!1*f5>4cqBv3MXAdmPT zWH2v63Xz0JUc;GaDLp3|lda3jGruZ~v@D+A;r{L=Lx1-<|YWQwE_|_EMoWZ|FhK5MI zp_}M_Z^pnC?Rrx9W(<7U$dSkGj@uCtZD&&j+}N0g(|X}5kQztV2#nqk1%LE3W_+oR zYXH-5MZ2_L=`-;6_4}Q`Oh)lx`GYzi#%}JM_{Kc^oAAKZ`P2Pt#e=Wjzbrq`H#W9t zWC7!X)>oZB-H+;gTJ!WT&A%~^JOm~QF1r~p_^kd?mxuN@MZeJa;C_5@qYaOoG#@=> zyFG8>ZGhvu1{qMl-|=0T3$9DSfxOPxNY$@sKI(8W559tbno+%ZM~Pow9wmPz ze45ydOhW=i>P|96ojPTRJxNAAI3fs%AI znMv(oAfY}7OqT;D=76Djke{r4m4Y7%g|Oh@R0WL3JQ(U2&B`NGH(wad8ekrbuM89E z$ObZL#xf5Ebpc;5;tavG0NV#pViF@JQ^vboS9S{!m-$=3xqxZG*AG3NNg7&Udn^V< zB@8UCb*l*IInahmrXb%>B}0$j=)3&{Y?jXRVEm`Fz~Cw7-MrVW)H2F3h5|g zm#V9nPjuKSvO};FFj4wqaB#4KfC<5>FeU`6!k7@O3S&ZWK|z6nAL9YIGYgGUNp5$x zP|i^K?-Pn^fT#-3;|wk!loss5@b?+^C6nY#*fYK>)YCIQ_L=I8$J44CpebFDEA(-A z3cFQzMXM+xhnVbn!2{5EXC6-#k;)^uVjzb|>=wLKTVTuE3M!RW$|6~8hhYb}KihTNKt1o^XiJIo7o!AQuXYp@dYNAy!DXBVSh&54B(h+x zIff$;uqElBA_<;QDAQl)rj9C1$|JZWX@EMx6cfgEWmy76H!%|n$0CQ_*Z5km;e{(t z2*PC%*;26;S*l`ofq=+_BxrESeAGWrXb(GPjftQ&?Ao^^64?KikhTe0IrF6bKC%~G*%eHJ2rS!00nQ!uQJk+m-`qCW>~H(;%af@W%lPz9NgtCmPV`DNN5H&!WtUY9wtgq#Gh9YKMqBlK@m+93~O`EHsWIKq|rtg znNdLzvB(n1@`UEF^R8wqWXrZyOEp_5Sy^Uj11o#j#?a_2=qPMwan$H6IPuVaXr-BT z00(PtjjS=aBWrUw2v9QsO35~Wy_x}((lysCoezg}5{=T~v`s5+qnS0=DDlw9TIu4p z=;A+RulP>g#Vx?av4)nyoY<+`2$f>n$VSaZj3RmvI-oUSu4klLYl7y`8rCp6+oR6> zFhGGm+b1p+OX}+; zY%0?x%6ghik2up2?h{9ZGp8clCwYW3gd;fkCPO!IjSz6G9h_uSmgS#HgBH$iqOm+8Y0=Vr+NhLIvbv;T0dS9~@453b+od7`y?48%ypj)9(PF_4*R>`9>J9^;bEPh*cU z(uqh=mYDLRHd#7wH-ygy6yA=G!0JIQV}-Xfoo)|@?HawDE9|z?C>^7?A!)Ca1|5Md zjfp}UW>H~II;fi)?ZY;=kD9p|o7j_%nib-T;&vJpVxo8x_+SFU+t+0U!}(&aC4@I+ zJ^Ijau?1v&qLT&lK$eRy7%W$*!HTGGEfF3*5i&3GVF=!tgs;<+5~bs%t@v^9n2W|y zVwwR=OmQ2VzT6@MN(&(4Zm}vR_1tUdgrTFP$zEyW#~GIQ(my3J3aQBWX-e+xz~MzM zU54#Fzq9C1(kb66v~>NIb$4!7Rn7|h?Y`OdHQ|N>J@R!87f3I7eSh%HG>^^Jg}--i ze%fPPMXCAYr)idD`xlzt?{PLII-|w)+&McA+?Cuo;C|iywa4AThaAUr$nMs^`f82q z!!FO=o%Dr4Uj(S2QtSwu<(KZj7KQ{i?9q5?V*8-LF9-HYvJNyl+O#@zz>A|xMm%rf z>!ABf$A?a-CY^gOXuc(W%nIWvha|4;4x5+l37N5B^yTmw_oll1uG2kh@Rfwh)?L;J zYa7`l_jm8JVNB^+d(UABj<42KRF=OnJajnu!_cs!!^^dYjxOC5zx9)Cq?W}}|7Rbk zbepx<>+{-N7eiyI>#L6`9(CJ_?50oDetFi?`Igq_*ca;;*@drq8SCbdHPq2-kHO|Q z<4&f{bevWd-SSbjsLpBs-o86pyX!e@d0pTlIC#*>)MQBJl!{+^pP1q{$4cyC=e9Y` z#yWDWzWw73;fJQ=B$m!=7MALJvPr?~Xh+BP)gSwQdD1_1SL~(8p`ELA;!aIiFVinN zDaoJkv`xCdm-CLB)*l`Zewv_FIH>eP+?SEZ2Y$Lr%tX7d zPOJIm=*!h}0_&1?eS2?gVP>OUp@(FjtfqTchnaaE(W&})#_HJMr16uVTMV9+JT1lW z{?=C?o_PY6Ps^v14CBZ9A1ungzC2fNqi$qcQMBFuU-X}Zo5gk-7(Zr#UU=1}Z^AEW zozW#xAqyOPbZB$&jYvD{czoxwm8P$AJMW3Ty51%y=SgjpG<@gIww1R<2$wX!`0xm!5Os|o@9P~QzE!unKl@xO?%cA*N67I^XN)@LO)q*;{Tu7hD$fkhDr^ z8ruDU`I?R2-RrnWs>6bx96-GGqSp zMtZ9jc}oWemxTQ~Zo;<%b}e~tEwOvG-|lkyuoj0LV^&=3RI+mZi#?+QyY_f|vT+Zq zHMbU@HtT7YesI;K6N^_K?R0I*S*@Odn?Bo~=y&*{#mu7h`A!AW8HLV%ug+EllyCoJ z^V?I=&>g;#7t04bJ9daU@{eZs&Zm~%uPix~-nd`MRMS_%E|)v_hbIlcW&Ygr+0n4$ z{S#%GyDqKy^Bu&60<&2?x1Aa?{o#!#uSZnA{VvSK=3JZ8^TO5@Yx}RCNM@ajOlbRU zy3P4v9}81`BZgEsEZV=YbXDE#vuTza4I*C$B(#~|xuUJf;4`8>tUm0%dhq1cfypH& z>uwC(w#9m+m#wg@D(yh@qEib)A6JhYo1W)(ckC}qj=l8~yW9!19~v<-?^bGVqNh&Z z-1lFsW*3@lw&{L-eQ zQ?qM}qMYM8w@9ls@4hzaW4259nK>`)jh_f^Zphmf8s_-ewq=jf{^wg=4T;%dzdCMw zBT>bVEpO@!Ouu5y~EG$~?K zUE`T1WA~47%d$6qvtaY`Zhnq$`t3E_EB&&=e^XfMg_|=E&wcl8=Y5vuHmA-0(R^pY zk)Jmn|G~%mnEBYbSyuM0Ruw^g3~v~0z258m&Lt_gZcV<}y3Z27&MCM3Jo`q+U)?e6 zhCz1g-6rR=1JY+*cPP2!b)oUP@S3fUerfv6!Q@DnB9Z7w&bp1y*KV}8ytX`V;5D<# z$<6w$j?el1=4-QSmhQEK&<)80xPE1Iaj!U8DMCFuGaAWh6!%){6Hs0{l5*o(~ zG3PA4IOdeM!MxXVj?TKA5q;&9Wy{o71-YGCZOkAQE}4lA)_1I*-|1bdqhBPR{qyUZ zEgin@%&x6i_C#W_daKTycY27u<_$fzYIMx)GpeJmp9-)=Wz z_mG*3k^*0vk6IG$(#y%QkBgVj%H+n*J@fJ}Er_kn+8MNQalc0n8#jfXExOdbW^%^* zw`&B`PCFhQX7t^4(rkIuYT3RoL00oewX(B_{~8^da(j-p%Z4-M4_d6*8X-CtcldD0 z{rW2h$#%ypA3@jVaDHJ5_qa|;6DCO~OiGANpD0a<$7REgCFdhgc^h@9>0URh%Cl$w z-Vkxir!z|zm2Q|;e0G(iMcJ*roBMvQiMSFQRw%I;=W)C8(37-5J8LS}r&{LyBlc z(a8rMyH~EZ3ApcaJM3&h%CWquO|Sfrn3%HMyYF-zkBnWutE;VIlZK8h@~+LhN1vP@`{m~NeQlDi*G_L`ZPN4JQQ-oi8Ej!PYeTlF zpaOOwBybIeU2zV>(G0l#QF-!%AM}{P5gOx>^&4dmQ$UtC8l<41ys+VoAq(2IHPPTY znNBF6BV^U#potQP8l8~R8dmSBl-z2vhaS??whiZ`=NyQ%P|6NtuZopSwPA#-3Pn9r zYh*SL_6vcM2kyzK@lbg^hzi%HI$00SOoCx_B~p%%1HbgiVZG2S5)UAYRA9Nl*%bLt3UpiT;ZSic%J`&O&83}&Gc9?;~#i)lajJ0TE5CS;+%kkk<~0XhceNTMeo zb#c<@_t}j{>H{+`(t~s+hLK;gE-Wz|Xdu&%+&mp2wQ9fvip9%$bKK&Q4|O z+D3ZAhhDxw``xtc{)UmSW7(!Focij6P4@fKmcfpuf6--B?-yN-Ae=A>&&*rG zB@K=e4N**>7sBsGno!Tia3yfUBqnuR-d^c7EGjsGg1b?0cj`Kmf@A>>lUfR~-=YLF zpymYic4!XeSrqnc>guGxt`2rqd3I4ezX^6#dHxA@h4nxx*ldMAWy~Vv0UpLddJrri z`LOknuM~r>P`N5YNnemcOfo3{0bA*!wj!#G{BJZ?mSNkQ{3ceG@yy&+rCu9$8M5@~ zdLqPcUGaMnOelz0h@l6cU!X}yh@c4tL;n_og%C#MFtjuqhR3387&2nR@T&nf46URJ z`vSg!DTKNnqrS8kkWl$w7tjMSP^2c*l`aWL7+8SF>x85eI2%*aqCA=@i2xJjpy{-s z4kb87@zfz*NjI>|bfG@Q4G%xx1S2MTTocM-be#}NnCOx=ReBSQC2W_f3qd*<4NyWG z({(f*gGtko5UfLcA)T0_g8>F5m?tSZ5wuV9q%l?LP#3H-qUc~R2})=|#Dp(msXDqn z^Z_Lo)EY}>6rB!5hYMSz!$5#_G@Xuu?j|uIE@0*~@bh6LNdDJRXhM!r&J+SPBOqf6 z1u2k^kg~50-7;3t-bA!lK^4)f0yH@Uni(Z-3K_BJ1ZKyNpR_vT_pQo=(L$g@nyeOH zr`kn|&rP}tAFnB%*ByV&3ml8(r``YQJ4*QgGPcXQuYJM|SJ;HXXDq^$|H++~FAtq1 z_PvUH3_WuVUME7#O~hq5RA6juntxAR`{Ohdf3=hLn{97lb1W>B7Mh zy}=&IV8;=#UK|b<4TJk==%Ep?u9H&MRmy?wql|b~8~|5OYFUQMI$WOl!BLYBoYFMh zrhxi)YM=#}e#5yI`x*TRV;cH2x-ZU~`2QWyFK}$(xWY2}7WSDjWE^7%`#b&jS)dP$ zQGAP&kS-7dG5)1PZ#FzxfX6UeD&rY`WV+XZHfNw9jw$Ul?@H~0!aaexo>=lORH)4EXOo@O}QT$P)xn zpRs*I+sAp=AC2~R`aib-b_2SirudKkq8k6P|Jd;#=Y8B`!1sPU2gYBBSwe - + - + @@ -15,7 +15,7 @@
下载“下载模板”整理数据,点击“导入数据”上传,格式为xls或xlsx
- +
+
+ + +
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/service-department/src/main/resources/templates/department/user/select-user.html b/service-department/src/main/resources/templates/department/user/select-user.html new file mode 100644 index 00000000..9527e285 --- /dev/null +++ b/service-department/src/main/resources/templates/department/user/select-user.html @@ -0,0 +1,344 @@ + + + + + + + + + + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/service-menu/src/main/java/ink/wgink/module/menu/startup/ServiceMenuStartUp.java b/service-menu/src/main/java/ink/wgink/module/menu/startup/ServiceMenuStartUp.java index f1ed63d6..d1c7de0c 100644 --- a/service-menu/src/main/java/ink/wgink/module/menu/startup/ServiceMenuStartUp.java +++ b/service-menu/src/main/java/ink/wgink/module/menu/startup/ServiceMenuStartUp.java @@ -1,5 +1,6 @@ package ink.wgink.module.menu.startup; +import ink.wgink.interfaces.department.IDepartmentCheckService; import ink.wgink.interfaces.dictionary.IDictionaryCheckService; import ink.wgink.interfaces.menu.IMenuBaseService; import ink.wgink.interfaces.user.IUserCheckService; @@ -33,9 +34,11 @@ public class ServiceMenuStartUp implements ApplicationRunner { @Autowired private IMenuDao menuDao; @Autowired(required = false) + private IDictionaryCheckService dictionaryCheckService; + @Autowired(required = false) private IUserCheckService userCheckService; @Autowired(required = false) - private IDictionaryCheckService dictionaryCheckService; + private IDepartmentCheckService departmentCheckService; @Override public void run(ApplicationArguments args) throws Exception { @@ -220,6 +223,7 @@ public class ServiceMenuStartUp implements ApplicationRunner { menuId = menuDTO.getMenuId(); } initUserManage(params, menuId); + initMenuDepartment(params, menuId); } /** @@ -252,18 +256,37 @@ public class ServiceMenuStartUp implements ApplicationRunner { } } - private void initMenuDepartment() { + private void initMenuDepartment(Map params, String menuParentId) { LOG.debug("初始化菜单:组织机构管理"); + if (departmentCheckService == null) { + return; + } + params.remove("menuId"); + params.put("menuCode", "000100020002"); + MenuDTO menuDTO = menuDao.getSimple(params); + String menuId = UUIDUtil.getUUID(); + if (menuDTO == null) { + params.put("menuId", menuId); + params.put("menuParentId", menuParentId); + params.put("menuName", "机构管理"); + params.put("menuSummary", "机构管理"); + params.put("menuUrl", "/route/department/list-tree"); + params.put("menuType", "1"); + params.put("menuIcon", "fa-icon-color-white fa fa-bank"); + params.put("menuOrder", "2"); + params.put("menuStatus", "0"); + params.put("openType", "1"); + menuDao.save(params); + } + } + + private void initMenuGroup() { LOG.debug("初始化菜单:用户组管理"); LOG.debug("初始化菜单:职位管理"); LOG.debug("初始化菜单:权限管理"); LOG.debug("初始化菜单:角色管理"); } - private void initMenuGroup() { - - } - private void initMenuPosition() { } diff --git a/service-menu/src/main/resources/mybatis/mapper/menu-mapper.xml b/service-menu/src/main/resources/mybatis/mapper/menu-mapper.xml index 807709f9..46ed6b23 100644 --- a/service-menu/src/main/resources/mybatis/mapper/menu-mapper.xml +++ b/service-menu/src/main/resources/mybatis/mapper/menu-mapper.xml @@ -1,7 +1,8 @@ - + + diff --git a/service-role/src/main/java/ink/wgink/module/role/controller/api/RoleController.java b/service-role/src/main/java/ink/wgink/service/role/controller/api/RoleController.java similarity index 97% rename from service-role/src/main/java/ink/wgink/module/role/controller/api/RoleController.java rename to service-role/src/main/java/ink/wgink/service/role/controller/api/RoleController.java index 6a29b280..e2aa9402 100644 --- a/service-role/src/main/java/ink/wgink/module/role/controller/api/RoleController.java +++ b/service-role/src/main/java/ink/wgink/service/role/controller/api/RoleController.java @@ -1,4 +1,4 @@ -package ink.wgink.module.role.controller.api; +package ink.wgink.service.role.controller.api; import ink.wgink.annotation.CheckRequestBodyAnnotation; import ink.wgink.common.base.DefaultBaseController; @@ -11,10 +11,10 @@ import ink.wgink.pojo.dtos.role.RoleDataAuthorityTypeDTO; import ink.wgink.pojo.result.ErrorResult; import ink.wgink.pojo.result.SuccessResult; import ink.wgink.pojo.result.SuccessResultList; -import ink.wgink.module.role.pojo.vos.RoleDataAuthorityVO; -import ink.wgink.module.role.pojo.vos.RoleUserAuthorizationVO; -import ink.wgink.module.role.pojo.vos.RoleVO; -import ink.wgink.module.role.service.IRoleService; +import ink.wgink.service.role.pojo.vos.RoleDataAuthorityVO; +import ink.wgink.service.role.pojo.vos.RoleUserAuthorizationVO; +import ink.wgink.service.role.pojo.vos.RoleVO; +import ink.wgink.service.role.service.IRoleService; import io.swagger.annotations.*; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; diff --git a/service-role/src/main/java/ink/wgink/module/role/controller/api/RoleGroupController.java b/service-role/src/main/java/ink/wgink/service/role/controller/api/RoleGroupController.java similarity index 98% rename from service-role/src/main/java/ink/wgink/module/role/controller/api/RoleGroupController.java rename to service-role/src/main/java/ink/wgink/service/role/controller/api/RoleGroupController.java index f98431fe..32168ced 100644 --- a/service-role/src/main/java/ink/wgink/module/role/controller/api/RoleGroupController.java +++ b/service-role/src/main/java/ink/wgink/service/role/controller/api/RoleGroupController.java @@ -1,4 +1,4 @@ -package ink.wgink.module.role.controller.api; +package ink.wgink.service.role.controller.api; /** * When you feel like quitting. Think about why you started diff --git a/service-role/src/main/java/ink/wgink/module/role/dao/IRoleDao.java b/service-role/src/main/java/ink/wgink/service/role/dao/IRoleDao.java similarity index 98% rename from service-role/src/main/java/ink/wgink/module/role/dao/IRoleDao.java rename to service-role/src/main/java/ink/wgink/service/role/dao/IRoleDao.java index 883ab6e1..12d78baa 100644 --- a/service-role/src/main/java/ink/wgink/module/role/dao/IRoleDao.java +++ b/service-role/src/main/java/ink/wgink/service/role/dao/IRoleDao.java @@ -1,10 +1,10 @@ -package ink.wgink.module.role.dao; +package ink.wgink.service.role.dao; import ink.wgink.exceptions.RemoveException; import ink.wgink.exceptions.SaveException; import ink.wgink.exceptions.SearchException; import ink.wgink.exceptions.UpdateException; -import ink.wgink.module.role.pojo.pos.RolePO; +import ink.wgink.service.role.pojo.pos.RolePO; import ink.wgink.pojo.bos.RoleBO; import ink.wgink.pojo.bos.RoleMenuBO; import ink.wgink.pojo.dtos.ZTreeDTO; diff --git a/service-role/src/main/java/ink/wgink/module/role/dao/IRoleGroupDao.java b/service-role/src/main/java/ink/wgink/service/role/dao/IRoleGroupDao.java similarity index 94% rename from service-role/src/main/java/ink/wgink/module/role/dao/IRoleGroupDao.java rename to service-role/src/main/java/ink/wgink/service/role/dao/IRoleGroupDao.java index 1dafd0aa..0a181a4b 100644 --- a/service-role/src/main/java/ink/wgink/module/role/dao/IRoleGroupDao.java +++ b/service-role/src/main/java/ink/wgink/service/role/dao/IRoleGroupDao.java @@ -1,4 +1,4 @@ -package ink.wgink.module.role.dao; +package ink.wgink.service.role.dao; import ink.wgink.exceptions.SearchException; import org.springframework.stereotype.Repository; diff --git a/service-role/src/main/java/ink/wgink/module/role/dao/IRoleMenuDao.java b/service-role/src/main/java/ink/wgink/service/role/dao/IRoleMenuDao.java similarity index 89% rename from service-role/src/main/java/ink/wgink/module/role/dao/IRoleMenuDao.java rename to service-role/src/main/java/ink/wgink/service/role/dao/IRoleMenuDao.java index 82c7875b..befa2884 100644 --- a/service-role/src/main/java/ink/wgink/module/role/dao/IRoleMenuDao.java +++ b/service-role/src/main/java/ink/wgink/service/role/dao/IRoleMenuDao.java @@ -1,4 +1,4 @@ -package ink.wgink.module.role.dao; +package ink.wgink.service.role.dao; /** * When you feel like quitting. Think about why you started diff --git a/service-role/src/main/java/ink/wgink/module/role/dao/IRolePermissionDao.java b/service-role/src/main/java/ink/wgink/service/role/dao/IRolePermissionDao.java similarity index 97% rename from service-role/src/main/java/ink/wgink/module/role/dao/IRolePermissionDao.java rename to service-role/src/main/java/ink/wgink/service/role/dao/IRolePermissionDao.java index 1308d95c..bec055f3 100644 --- a/service-role/src/main/java/ink/wgink/module/role/dao/IRolePermissionDao.java +++ b/service-role/src/main/java/ink/wgink/service/role/dao/IRolePermissionDao.java @@ -1,4 +1,4 @@ -package ink.wgink.module.role.dao; +package ink.wgink.service.role.dao; import ink.wgink.exceptions.RemoveException; import ink.wgink.exceptions.SaveException; diff --git a/service-role/src/main/java/ink/wgink/module/role/pojo/pos/RolePO.java b/service-role/src/main/java/ink/wgink/service/role/pojo/pos/RolePO.java similarity index 98% rename from service-role/src/main/java/ink/wgink/module/role/pojo/pos/RolePO.java rename to service-role/src/main/java/ink/wgink/service/role/pojo/pos/RolePO.java index e6253d4e..ed9e6196 100644 --- a/service-role/src/main/java/ink/wgink/module/role/pojo/pos/RolePO.java +++ b/service-role/src/main/java/ink/wgink/service/role/pojo/pos/RolePO.java @@ -1,4 +1,4 @@ -package ink.wgink.module.role.pojo.pos; +package ink.wgink.service.role.pojo.pos; import java.io.Serializable; diff --git a/service-role/src/main/java/ink/wgink/module/role/pojo/vos/RoleDataAuthorityVO.java b/service-role/src/main/java/ink/wgink/service/role/pojo/vos/RoleDataAuthorityVO.java similarity index 97% rename from service-role/src/main/java/ink/wgink/module/role/pojo/vos/RoleDataAuthorityVO.java rename to service-role/src/main/java/ink/wgink/service/role/pojo/vos/RoleDataAuthorityVO.java index 7d29dbb0..66d9a981 100644 --- a/service-role/src/main/java/ink/wgink/module/role/pojo/vos/RoleDataAuthorityVO.java +++ b/service-role/src/main/java/ink/wgink/service/role/pojo/vos/RoleDataAuthorityVO.java @@ -1,4 +1,4 @@ -package ink.wgink.module.role.pojo.vos; +package ink.wgink.service.role.pojo.vos; import ink.wgink.annotation.CheckEmptyAnnotation; import io.swagger.annotations.ApiModel; diff --git a/service-role/src/main/java/ink/wgink/module/role/pojo/vos/RolePermissionVO.java b/service-role/src/main/java/ink/wgink/service/role/pojo/vos/RolePermissionVO.java similarity index 97% rename from service-role/src/main/java/ink/wgink/module/role/pojo/vos/RolePermissionVO.java rename to service-role/src/main/java/ink/wgink/service/role/pojo/vos/RolePermissionVO.java index f110e9e4..134fdfdd 100644 --- a/service-role/src/main/java/ink/wgink/module/role/pojo/vos/RolePermissionVO.java +++ b/service-role/src/main/java/ink/wgink/service/role/pojo/vos/RolePermissionVO.java @@ -1,4 +1,4 @@ -package ink.wgink.module.role.pojo.vos; +package ink.wgink.service.role.pojo.vos; import ink.wgink.annotation.CheckBooleanAnnotation; import ink.wgink.annotation.CheckListAnnotation; diff --git a/service-role/src/main/java/ink/wgink/module/role/pojo/vos/RoleUserAuthorityVO.java b/service-role/src/main/java/ink/wgink/service/role/pojo/vos/RoleUserAuthorityVO.java similarity index 97% rename from service-role/src/main/java/ink/wgink/module/role/pojo/vos/RoleUserAuthorityVO.java rename to service-role/src/main/java/ink/wgink/service/role/pojo/vos/RoleUserAuthorityVO.java index 80b80a6e..dd837baa 100644 --- a/service-role/src/main/java/ink/wgink/module/role/pojo/vos/RoleUserAuthorityVO.java +++ b/service-role/src/main/java/ink/wgink/service/role/pojo/vos/RoleUserAuthorityVO.java @@ -1,4 +1,4 @@ -package ink.wgink.module.role.pojo.vos; +package ink.wgink.service.role.pojo.vos; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/service-role/src/main/java/ink/wgink/module/role/pojo/vos/RoleUserAuthorizationVO.java b/service-role/src/main/java/ink/wgink/service/role/pojo/vos/RoleUserAuthorizationVO.java similarity index 95% rename from service-role/src/main/java/ink/wgink/module/role/pojo/vos/RoleUserAuthorizationVO.java rename to service-role/src/main/java/ink/wgink/service/role/pojo/vos/RoleUserAuthorizationVO.java index 36381e88..d3b56f94 100644 --- a/service-role/src/main/java/ink/wgink/module/role/pojo/vos/RoleUserAuthorizationVO.java +++ b/service-role/src/main/java/ink/wgink/service/role/pojo/vos/RoleUserAuthorizationVO.java @@ -1,4 +1,4 @@ -package ink.wgink.module.role.pojo.vos; +package ink.wgink.service.role.pojo.vos; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/service-role/src/main/java/ink/wgink/module/role/pojo/vos/RoleVO.java b/service-role/src/main/java/ink/wgink/service/role/pojo/vos/RoleVO.java similarity index 97% rename from service-role/src/main/java/ink/wgink/module/role/pojo/vos/RoleVO.java rename to service-role/src/main/java/ink/wgink/service/role/pojo/vos/RoleVO.java index 98bf7ee9..05ce2d0f 100644 --- a/service-role/src/main/java/ink/wgink/module/role/pojo/vos/RoleVO.java +++ b/service-role/src/main/java/ink/wgink/service/role/pojo/vos/RoleVO.java @@ -1,4 +1,4 @@ -package ink.wgink.module.role.pojo.vos; +package ink.wgink.service.role.pojo.vos; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/service-role/src/main/java/ink/wgink/module/role/service/IRoleGroupService.java b/service-role/src/main/java/ink/wgink/service/role/service/IRoleGroupService.java similarity index 93% rename from service-role/src/main/java/ink/wgink/module/role/service/IRoleGroupService.java rename to service-role/src/main/java/ink/wgink/service/role/service/IRoleGroupService.java index dda051cd..7b51b44d 100644 --- a/service-role/src/main/java/ink/wgink/module/role/service/IRoleGroupService.java +++ b/service-role/src/main/java/ink/wgink/service/role/service/IRoleGroupService.java @@ -1,4 +1,4 @@ -package ink.wgink.module.role.service; +package ink.wgink.service.role.service; /** * When you feel like quitting. Think about why you started diff --git a/service-role/src/main/java/ink/wgink/module/role/service/IRoleMenuService.java b/service-role/src/main/java/ink/wgink/service/role/service/IRoleMenuService.java similarity index 88% rename from service-role/src/main/java/ink/wgink/module/role/service/IRoleMenuService.java rename to service-role/src/main/java/ink/wgink/service/role/service/IRoleMenuService.java index 4d513d92..d7f91f8b 100644 --- a/service-role/src/main/java/ink/wgink/module/role/service/IRoleMenuService.java +++ b/service-role/src/main/java/ink/wgink/service/role/service/IRoleMenuService.java @@ -1,4 +1,4 @@ -package ink.wgink.module.role.service; +package ink.wgink.service.role.service; /** * When you feel like quitting. Think about why you started diff --git a/service-role/src/main/java/ink/wgink/module/role/service/IRolePermissionService.java b/service-role/src/main/java/ink/wgink/service/role/service/IRolePermissionService.java similarity index 91% rename from service-role/src/main/java/ink/wgink/module/role/service/IRolePermissionService.java rename to service-role/src/main/java/ink/wgink/service/role/service/IRolePermissionService.java index faa36694..0f8266bc 100644 --- a/service-role/src/main/java/ink/wgink/module/role/service/IRolePermissionService.java +++ b/service-role/src/main/java/ink/wgink/service/role/service/IRolePermissionService.java @@ -1,9 +1,9 @@ -package ink.wgink.module.role.service; +package ink.wgink.service.role.service; import ink.wgink.exceptions.SearchException; import ink.wgink.exceptions.UpdateException; import ink.wgink.pojo.dtos.role.RolePermissionDTO; -import ink.wgink.module.role.pojo.vos.RolePermissionVO; +import ink.wgink.service.role.pojo.vos.RolePermissionVO; import java.util.List; diff --git a/service-role/src/main/java/ink/wgink/module/role/service/IRoleService.java b/service-role/src/main/java/ink/wgink/service/role/service/IRoleService.java similarity index 98% rename from service-role/src/main/java/ink/wgink/module/role/service/IRoleService.java rename to service-role/src/main/java/ink/wgink/service/role/service/IRoleService.java index 72f199fb..12a841ad 100644 --- a/service-role/src/main/java/ink/wgink/module/role/service/IRoleService.java +++ b/service-role/src/main/java/ink/wgink/service/role/service/IRoleService.java @@ -1,4 +1,4 @@ -package ink.wgink.module.role.service; +package ink.wgink.service.role.service; import ink.wgink.exceptions.RemoveException; import ink.wgink.exceptions.SaveException; @@ -16,7 +16,7 @@ import ink.wgink.pojo.dtos.role.RoleDataAuthorityDTO; import ink.wgink.pojo.dtos.role.RoleDataAuthorityTypeDTO; import ink.wgink.pojo.result.SuccessResult; import ink.wgink.pojo.result.SuccessResultList; -import ink.wgink.module.role.pojo.vos.RoleDataAuthorityVO; +import ink.wgink.service.role.pojo.vos.RoleDataAuthorityVO; import java.util.List; import java.util.Map; diff --git a/service-role/src/main/java/ink/wgink/module/role/service/impl/RoleGroupServiceImpl.java b/service-role/src/main/java/ink/wgink/service/role/service/impl/RoleGroupServiceImpl.java similarity index 95% rename from service-role/src/main/java/ink/wgink/module/role/service/impl/RoleGroupServiceImpl.java rename to service-role/src/main/java/ink/wgink/service/role/service/impl/RoleGroupServiceImpl.java index b9695bab..88f51fe2 100644 --- a/service-role/src/main/java/ink/wgink/module/role/service/impl/RoleGroupServiceImpl.java +++ b/service-role/src/main/java/ink/wgink/service/role/service/impl/RoleGroupServiceImpl.java @@ -1,4 +1,4 @@ -package ink.wgink.module.role.service.impl; +package ink.wgink.service.role.service.impl; import org.springframework.stereotype.Service; diff --git a/service-role/src/main/java/ink/wgink/module/role/service/impl/RoleMenuServiceImpl.java b/service-role/src/main/java/ink/wgink/service/role/service/impl/RoleMenuServiceImpl.java similarity index 82% rename from service-role/src/main/java/ink/wgink/module/role/service/impl/RoleMenuServiceImpl.java rename to service-role/src/main/java/ink/wgink/service/role/service/impl/RoleMenuServiceImpl.java index c94688aa..bfb62c01 100644 --- a/service-role/src/main/java/ink/wgink/module/role/service/impl/RoleMenuServiceImpl.java +++ b/service-role/src/main/java/ink/wgink/service/role/service/impl/RoleMenuServiceImpl.java @@ -1,7 +1,7 @@ -package ink.wgink.module.role.service.impl; +package ink.wgink.service.role.service.impl; import ink.wgink.common.base.DefaultBaseService; -import ink.wgink.module.role.service.IRoleMenuService; +import ink.wgink.service.role.service.IRoleMenuService; import org.springframework.stereotype.Service; /** diff --git a/service-role/src/main/java/ink/wgink/module/role/service/impl/RolePermissionServiceImpl.java b/service-role/src/main/java/ink/wgink/service/role/service/impl/RolePermissionServiceImpl.java similarity index 95% rename from service-role/src/main/java/ink/wgink/module/role/service/impl/RolePermissionServiceImpl.java rename to service-role/src/main/java/ink/wgink/service/role/service/impl/RolePermissionServiceImpl.java index a4a9b3f5..68d22a82 100644 --- a/service-role/src/main/java/ink/wgink/module/role/service/impl/RolePermissionServiceImpl.java +++ b/service-role/src/main/java/ink/wgink/service/role/service/impl/RolePermissionServiceImpl.java @@ -1,12 +1,12 @@ -package ink.wgink.module.role.service.impl; +package ink.wgink.service.role.service.impl; import ink.wgink.common.base.DefaultBaseService; import ink.wgink.pojo.dtos.permission.PermissionDTO; import ink.wgink.pojo.dtos.role.RolePermissionDTO; import ink.wgink.module.permission.service.IPermissionService; -import ink.wgink.module.role.dao.IRolePermissionDao; -import ink.wgink.module.role.pojo.vos.RolePermissionVO; -import ink.wgink.module.role.service.IRolePermissionService; +import ink.wgink.service.role.dao.IRolePermissionDao; +import ink.wgink.service.role.pojo.vos.RolePermissionVO; +import ink.wgink.service.role.service.IRolePermissionService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/service-role/src/main/java/ink/wgink/module/role/service/impl/RoleServiceImpl.java b/service-role/src/main/java/ink/wgink/service/role/service/impl/RoleServiceImpl.java similarity index 97% rename from service-role/src/main/java/ink/wgink/module/role/service/impl/RoleServiceImpl.java rename to service-role/src/main/java/ink/wgink/service/role/service/impl/RoleServiceImpl.java index dcd21f1b..56414e67 100644 --- a/service-role/src/main/java/ink/wgink/module/role/service/impl/RoleServiceImpl.java +++ b/service-role/src/main/java/ink/wgink/service/role/service/impl/RoleServiceImpl.java @@ -1,4 +1,4 @@ -package ink.wgink.module.role.service.impl; +package ink.wgink.service.role.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -17,15 +17,15 @@ import ink.wgink.pojo.dtos.role.RoleDataAuthorityTypeDTO; import ink.wgink.pojo.dtos.role.RolePermissionDTO; import ink.wgink.pojo.result.SuccessResult; import ink.wgink.pojo.result.SuccessResultList; -import ink.wgink.module.department.service.IDepartmentUserService; +import ink.wgink.service.department.service.IDepartmentUserService; import ink.wgink.module.permission.enums.PermissionTypeEnum; import ink.wgink.module.permission.service.IPermissionService; -import ink.wgink.module.role.dao.IRoleDao; -import ink.wgink.module.role.pojo.vos.RoleDataAuthorityVO; -import ink.wgink.module.role.pojo.vos.RoleUserAuthorityVO; -import ink.wgink.module.role.service.IRolePermissionService; -import ink.wgink.module.role.service.IRoleService; -import ink.wgink.module.user.service.IUserService; +import ink.wgink.service.role.dao.IRoleDao; +import ink.wgink.service.role.pojo.vos.RoleDataAuthorityVO; +import ink.wgink.service.role.pojo.vos.RoleUserAuthorityVO; +import ink.wgink.service.role.service.IRolePermissionService; +import ink.wgink.service.role.service.IRoleService; +import ink.wgink.service.user.service.IUserService; import ink.wgink.util.UUIDUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; diff --git a/service-role/src/main/resources/mybatis/mapper/role-permission-mapper.xml b/service-role/src/main/resources/mybatis/mapper/role-permission-mapper.xml index eda0bced..84a1fded 100644 --- a/service-role/src/main/resources/mybatis/mapper/role-permission-mapper.xml +++ b/service-role/src/main/resources/mybatis/mapper/role-permission-mapper.xml @@ -1,6 +1,6 @@ - + diff --git a/service-user/src/main/java/ink/wgink/module/user/controller/api/UserController.java b/service-user/src/main/java/ink/wgink/service/user/controller/api/UserController.java similarity index 90% rename from service-user/src/main/java/ink/wgink/module/user/controller/api/UserController.java rename to service-user/src/main/java/ink/wgink/service/user/controller/api/UserController.java index a8027ff5..5ccaf1a9 100644 --- a/service-user/src/main/java/ink/wgink/module/user/controller/api/UserController.java +++ b/service-user/src/main/java/ink/wgink/service/user/controller/api/UserController.java @@ -1,19 +1,20 @@ -package ink.wgink.module.user.controller.api; +package ink.wgink.service.user.controller.api; import ink.wgink.annotation.CheckRequestBodyAnnotation; import ink.wgink.common.base.DefaultBaseController; import ink.wgink.exceptions.ParamsException; import ink.wgink.interfaces.consts.IFileConstant; import ink.wgink.interfaces.consts.ISystemConstant; -import ink.wgink.module.user.pojo.vos.RestPasswordVO; -import ink.wgink.module.user.pojo.vos.UpdateUsernameVO; +import ink.wgink.pojo.vos.IdsVO; +import ink.wgink.service.user.pojo.vos.RestPasswordVO; +import ink.wgink.service.user.pojo.vos.UpdateUsernameVO; import ink.wgink.pojo.ListPage; import ink.wgink.pojo.dtos.user.UserDTO; import ink.wgink.pojo.result.ErrorResult; import ink.wgink.pojo.result.SuccessResult; import ink.wgink.pojo.result.SuccessResultList; -import ink.wgink.module.user.pojo.vos.UserVO; -import ink.wgink.module.user.service.IUserService; +import ink.wgink.service.user.pojo.vos.UserVO; +import ink.wgink.service.user.service.IUserService; import ink.wgink.pojo.result.UploadExcelResultDTO; import ink.wgink.util.RegexUtil; import io.swagger.annotations.*; @@ -162,4 +163,14 @@ public class UserController extends DefaultBaseController { return userService.get(userId); } + @ApiOperation(value = "通过ID列表获取用户列表", notes = "通过ID列表获取用户列表接口") + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @PostMapping("listbyids") + public List listByIds(@RequestBody IdsVO idsVO) { + if (idsVO.getIds().isEmpty()) { + throw new ParamsException("id列表不能为空"); + } + return userService.listByUserIds(idsVO.getIds()); + } + } diff --git a/service-user/src/main/java/ink/wgink/module/user/controller/route/UserRouteController.java b/service-user/src/main/java/ink/wgink/service/user/controller/route/UserRouteController.java similarity index 97% rename from service-user/src/main/java/ink/wgink/module/user/controller/route/UserRouteController.java rename to service-user/src/main/java/ink/wgink/service/user/controller/route/UserRouteController.java index 4eac1351..922105bf 100644 --- a/service-user/src/main/java/ink/wgink/module/user/controller/route/UserRouteController.java +++ b/service-user/src/main/java/ink/wgink/service/user/controller/route/UserRouteController.java @@ -1,4 +1,4 @@ -package ink.wgink.module.user.controller.route; +package ink.wgink.service.user.controller.route; import ink.wgink.interfaces.consts.ISystemConstant; import ink.wgink.util.ResourceUtil; diff --git a/service-user/src/main/java/ink/wgink/service/user/dao/IUserAdjustmentDao.java b/service-user/src/main/java/ink/wgink/service/user/dao/IUserAdjustmentDao.java new file mode 100644 index 00000000..80d8b574 --- /dev/null +++ b/service-user/src/main/java/ink/wgink/service/user/dao/IUserAdjustmentDao.java @@ -0,0 +1,49 @@ +package ink.wgink.service.user.dao; + +import ink.wgink.exceptions.SaveException; +import ink.wgink.exceptions.SearchException; +import ink.wgink.exceptions.UpdateException; +import ink.wgink.service.user.pojo.dtos.UserLogDTO; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; + +/** + * When you feel like quitting. Think about why you started + * 当你想要放弃的时候,想想当初你为何开始 + * + * @ClassName: IUserAdjustmentDao + * @Description: 用户调整 + * @Author: wanggeng + * @Date: 2021/2/12 3:51 下午 + * @Version: 1.0 + */ +@Repository +public interface IUserAdjustmentDao { + + /** + * 建表 + * + * @throws UpdateException + */ + void createTable() throws UpdateException; + + /** + * 新增用户调整 + * + * @param params + * @throws SaveException + */ + void save(Map params) throws SaveException; + + /** + * 用户调整列表 + * + * @param params + * @return + * @throws SearchException + */ + List list(Map params) throws SearchException; + +} diff --git a/service-user/src/main/java/ink/wgink/module/user/dao/IUserDao.java b/service-user/src/main/java/ink/wgink/service/user/dao/IUserDao.java similarity index 96% rename from service-user/src/main/java/ink/wgink/module/user/dao/IUserDao.java rename to service-user/src/main/java/ink/wgink/service/user/dao/IUserDao.java index a255011f..c851d780 100644 --- a/service-user/src/main/java/ink/wgink/module/user/dao/IUserDao.java +++ b/service-user/src/main/java/ink/wgink/service/user/dao/IUserDao.java @@ -1,11 +1,11 @@ -package ink.wgink.module.user.dao; +package ink.wgink.service.user.dao; import ink.wgink.exceptions.RemoveException; import ink.wgink.exceptions.SaveException; import ink.wgink.exceptions.SearchException; import ink.wgink.exceptions.UpdateException; import ink.wgink.pojo.dtos.user.UserDTO; -import ink.wgink.module.user.pojo.pos.UserPO; +import ink.wgink.service.user.pojo.pos.UserPO; import org.springframework.stereotype.Repository; import java.util.List; diff --git a/service-user/src/main/java/ink/wgink/service/user/enums/UserUpdateTypeEnum.java b/service-user/src/main/java/ink/wgink/service/user/enums/UserUpdateTypeEnum.java new file mode 100644 index 00000000..72e43e12 --- /dev/null +++ b/service-user/src/main/java/ink/wgink/service/user/enums/UserUpdateTypeEnum.java @@ -0,0 +1,27 @@ +package ink.wgink.service.user.enums; + +/** + * When you feel like quitting. Think about why you started + * 当你想要放弃的时候,想想当初你为何开始 + * + * @ClassName: UserAdjustmentEnum + * @Description: 用户调整枚举 + * @Author: WangGeng + * @Date: 2020/5/21 11:04 下午 + * @Version: 1.0 + **/ +public enum UserUpdateTypeEnum { + REST_PASSWORD("restPassword"), + PASSWORD("password"), + USERNAME("username"); + + private String value; + + private UserUpdateTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value == null ? "" : value.trim(); + } +} diff --git a/service-user/src/main/java/ink/wgink/module/user/excel/UserExcel.java b/service-user/src/main/java/ink/wgink/service/user/excel/UserExcel.java similarity index 98% rename from service-user/src/main/java/ink/wgink/module/user/excel/UserExcel.java rename to service-user/src/main/java/ink/wgink/service/user/excel/UserExcel.java index 6b805ce1..b2619b19 100644 --- a/service-user/src/main/java/ink/wgink/module/user/excel/UserExcel.java +++ b/service-user/src/main/java/ink/wgink/service/user/excel/UserExcel.java @@ -1,4 +1,4 @@ -package ink.wgink.module.user.excel; +package ink.wgink.service.user.excel; import com.alibaba.excel.annotation.ExcelProperty; diff --git a/service-user/src/main/java/ink/wgink/module/user/excel/UserExcelError.java b/service-user/src/main/java/ink/wgink/service/user/excel/UserExcelError.java similarity index 98% rename from service-user/src/main/java/ink/wgink/module/user/excel/UserExcelError.java rename to service-user/src/main/java/ink/wgink/service/user/excel/UserExcelError.java index 33848bd4..a8c9c42b 100644 --- a/service-user/src/main/java/ink/wgink/module/user/excel/UserExcelError.java +++ b/service-user/src/main/java/ink/wgink/service/user/excel/UserExcelError.java @@ -1,4 +1,4 @@ -package ink.wgink.module.user.excel; +package ink.wgink.service.user.excel; import com.alibaba.excel.annotation.ExcelProperty; diff --git a/service-user/src/main/java/ink/wgink/module/user/excel/UserExcelListener.java b/service-user/src/main/java/ink/wgink/service/user/excel/UserExcelListener.java similarity index 97% rename from service-user/src/main/java/ink/wgink/module/user/excel/UserExcelListener.java rename to service-user/src/main/java/ink/wgink/service/user/excel/UserExcelListener.java index baeaaaa2..63529f81 100644 --- a/service-user/src/main/java/ink/wgink/module/user/excel/UserExcelListener.java +++ b/service-user/src/main/java/ink/wgink/service/user/excel/UserExcelListener.java @@ -1,4 +1,4 @@ -package ink.wgink.module.user.excel; +package ink.wgink.service.user.excel; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; diff --git a/service-user/src/main/java/ink/wgink/service/user/pojo/bos/UserAdjustmentBO.java b/service-user/src/main/java/ink/wgink/service/user/pojo/bos/UserAdjustmentBO.java new file mode 100644 index 00000000..2d97f43c --- /dev/null +++ b/service-user/src/main/java/ink/wgink/service/user/pojo/bos/UserAdjustmentBO.java @@ -0,0 +1,121 @@ +package ink.wgink.service.user.pojo.bos; + +/** + * When you feel like quitting. Think about why you started + * 当你想要放弃的时候,想想当初你为何开始 + * + * @ClassName: UserAdjustmentBO + * @Description: 用户调整业务实体类 + * @Author: WangGeng + * @Date: 2020/5/21 11:03 下午 + * @Version: 1.0 + **/ +public class UserAdjustmentBO { + + private String userId; + private String userName; + private String updateType; + private String oldValue; + private String newValue; + private String updateReason; + private String creator; + private String creatorName; + private String gmtCreate; + + public String getUserId() { + return userId == null ? "" : userId.trim(); + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getUserName() { + return userName == null ? "" : userName.trim(); + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getUpdateType() { + return updateType == null ? "" : updateType.trim(); + } + + public void setUpdateType(String updateType) { + this.updateType = updateType; + } + + public String getOldValue() { + return oldValue == null ? "" : oldValue.trim(); + } + + public void setOldValue(String oldValue) { + this.oldValue = oldValue; + } + + public String getNewValue() { + return newValue == null ? "" : newValue.trim(); + } + + public void setNewValue(String newValue) { + this.newValue = newValue; + } + + public String getUpdateReason() { + return updateReason == null ? "" : updateReason.trim(); + } + + public void setUpdateReason(String updateReason) { + this.updateReason = updateReason; + } + + public String getCreator() { + return creator == null ? "" : creator.trim(); + } + + public void setCreator(String creator) { + this.creator = creator; + } + + public String getCreatorName() { + return creatorName == null ? "" : creatorName.trim(); + } + + public void setCreatorName(String creatorName) { + this.creatorName = creatorName; + } + + public String getGmtCreate() { + return gmtCreate == null ? "" : gmtCreate.trim(); + } + + public void setGmtCreate(String gmtCreate) { + this.gmtCreate = gmtCreate; + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("{"); + sb.append("\"userId\":") + .append("\"").append(userId).append("\""); + sb.append(",\"userName\":") + .append("\"").append(userName).append("\""); + sb.append(",\"updateType\":") + .append("\"").append(updateType).append("\""); + sb.append(",\"oldValue\":") + .append("\"").append(oldValue).append("\""); + sb.append(",\"newValue\":") + .append("\"").append(newValue).append("\""); + sb.append(",\"updateReason\":") + .append("\"").append(updateReason).append("\""); + sb.append(",\"creator\":") + .append("\"").append(creator).append("\""); + sb.append(",\"creatorName\":") + .append("\"").append(creatorName).append("\""); + sb.append(",\"gmtCreate\":") + .append("\"").append(gmtCreate).append("\""); + sb.append('}'); + return sb.toString(); + } +} diff --git a/service-user/src/main/java/ink/wgink/service/user/pojo/dtos/UserLogDTO.java b/service-user/src/main/java/ink/wgink/service/user/pojo/dtos/UserLogDTO.java new file mode 100644 index 00000000..e38878c6 --- /dev/null +++ b/service-user/src/main/java/ink/wgink/service/user/pojo/dtos/UserLogDTO.java @@ -0,0 +1,113 @@ +package ink.wgink.service.user.pojo.dtos; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; + +/** + * When you feel like quitting. Think about why you started + * 当你想要放弃的时候,想想当初你为何开始 + * + * @ClassName: UserLogDTO + * @Description: 用户日志 + * @Author: WangGeng + * @Date: 2020/7/21 17:17 + * @Version: 1.0 + **/ +@ApiModel +public class UserLogDTO implements Serializable { + + private static final long serialVersionUID = 2880126413411212743L; + @ApiModelProperty(name = "userName", value = "修改用户") + private String userName; + @ApiModelProperty(name = "updateType", value = "修改类型") + private String updateType; + @ApiModelProperty(name = "oldValue", value = "旧值") + private String oldValue; + @ApiModelProperty(name = "newValue", value = "新值") + private String newValue; + @ApiModelProperty(name = "updateReason", value = "修改原因") + private String updateReason; + @ApiModelProperty(name = "creatorName", value = "创建人") + private String creatorName; + @ApiModelProperty(name = "gmtCreate", value = "创建时间") + private String gmtCreate; + + public String getUserName() { + return userName == null ? "" : userName.trim(); + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getUpdateType() { + return updateType == null ? "" : updateType.trim(); + } + + public void setUpdateType(String updateType) { + this.updateType = updateType; + } + + public String getOldValue() { + return oldValue == null ? "" : oldValue.trim(); + } + + public void setOldValue(String oldValue) { + this.oldValue = oldValue; + } + + public String getNewValue() { + return newValue == null ? "" : newValue.trim(); + } + + public void setNewValue(String newValue) { + this.newValue = newValue; + } + + public String getUpdateReason() { + return updateReason == null ? "" : updateReason.trim(); + } + + public void setUpdateReason(String updateReason) { + this.updateReason = updateReason; + } + + public String getCreatorName() { + return creatorName == null ? "" : creatorName.trim(); + } + + public void setCreatorName(String creatorName) { + this.creatorName = creatorName; + } + + public String getGmtCreate() { + return gmtCreate == null ? "" : gmtCreate.trim(); + } + + public void setGmtCreate(String gmtCreate) { + this.gmtCreate = gmtCreate; + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("{"); + sb.append("\"userName\":") + .append("\"").append(userName).append("\""); + sb.append(",\"updateType\":") + .append("\"").append(updateType).append("\""); + sb.append(",\"oldValue\":") + .append("\"").append(oldValue).append("\""); + sb.append(",\"newValue\":") + .append("\"").append(newValue).append("\""); + sb.append(",\"updateReason\":") + .append("\"").append(updateReason).append("\""); + sb.append(",\"creatorName\":") + .append("\"").append(creatorName).append("\""); + sb.append(",\"gmtCreate\":") + .append("\"").append(gmtCreate).append("\""); + sb.append('}'); + return sb.toString(); + } +} diff --git a/service-user/src/main/java/ink/wgink/module/user/pojo/pos/UserPO.java b/service-user/src/main/java/ink/wgink/service/user/pojo/pos/UserPO.java similarity index 99% rename from service-user/src/main/java/ink/wgink/module/user/pojo/pos/UserPO.java rename to service-user/src/main/java/ink/wgink/service/user/pojo/pos/UserPO.java index e020df9f..c1d90a11 100644 --- a/service-user/src/main/java/ink/wgink/module/user/pojo/pos/UserPO.java +++ b/service-user/src/main/java/ink/wgink/service/user/pojo/pos/UserPO.java @@ -1,4 +1,4 @@ -package ink.wgink.module.user.pojo.pos; +package ink.wgink.service.user.pojo.pos; import io.swagger.annotations.ApiModel; diff --git a/service-user/src/main/java/ink/wgink/module/user/pojo/vos/RestPasswordVO.java b/service-user/src/main/java/ink/wgink/service/user/pojo/vos/RestPasswordVO.java similarity index 96% rename from service-user/src/main/java/ink/wgink/module/user/pojo/vos/RestPasswordVO.java rename to service-user/src/main/java/ink/wgink/service/user/pojo/vos/RestPasswordVO.java index de47a922..da25fa93 100644 --- a/service-user/src/main/java/ink/wgink/module/user/pojo/vos/RestPasswordVO.java +++ b/service-user/src/main/java/ink/wgink/service/user/pojo/vos/RestPasswordVO.java @@ -1,4 +1,4 @@ -package ink.wgink.module.user.pojo.vos; +package ink.wgink.service.user.pojo.vos; import ink.wgink.annotation.CheckEmptyAnnotation; import io.swagger.annotations.ApiModel; diff --git a/service-user/src/main/java/ink/wgink/module/user/pojo/vos/UpdateUsernameVO.java b/service-user/src/main/java/ink/wgink/service/user/pojo/vos/UpdateUsernameVO.java similarity index 97% rename from service-user/src/main/java/ink/wgink/module/user/pojo/vos/UpdateUsernameVO.java rename to service-user/src/main/java/ink/wgink/service/user/pojo/vos/UpdateUsernameVO.java index c57371fb..838a3786 100644 --- a/service-user/src/main/java/ink/wgink/module/user/pojo/vos/UpdateUsernameVO.java +++ b/service-user/src/main/java/ink/wgink/service/user/pojo/vos/UpdateUsernameVO.java @@ -1,4 +1,4 @@ -package ink.wgink.module.user.pojo.vos; +package ink.wgink.service.user.pojo.vos; import ink.wgink.annotation.CheckEmptyAnnotation; import io.swagger.annotations.ApiModel; diff --git a/service-user/src/main/java/ink/wgink/module/user/pojo/vos/UserVO.java b/service-user/src/main/java/ink/wgink/service/user/pojo/vos/UserVO.java similarity index 98% rename from service-user/src/main/java/ink/wgink/module/user/pojo/vos/UserVO.java rename to service-user/src/main/java/ink/wgink/service/user/pojo/vos/UserVO.java index 8785e9a2..90b0703d 100644 --- a/service-user/src/main/java/ink/wgink/module/user/pojo/vos/UserVO.java +++ b/service-user/src/main/java/ink/wgink/service/user/pojo/vos/UserVO.java @@ -1,4 +1,4 @@ -package ink.wgink.module.user.pojo.vos; +package ink.wgink.service.user.pojo.vos; import ink.wgink.annotation.CheckEmptyAnnotation; import ink.wgink.annotation.CheckNumberAnnotation; diff --git a/service-user/src/main/java/ink/wgink/service/user/service/IUserAdjustmentService.java b/service-user/src/main/java/ink/wgink/service/user/service/IUserAdjustmentService.java new file mode 100644 index 00000000..e9b02027 --- /dev/null +++ b/service-user/src/main/java/ink/wgink/service/user/service/IUserAdjustmentService.java @@ -0,0 +1,37 @@ +package ink.wgink.service.user.service; + +import ink.wgink.service.user.pojo.bos.UserAdjustmentBO; +import ink.wgink.service.user.pojo.dtos.UserLogDTO; +import ink.wgink.pojo.ListPage; +import ink.wgink.pojo.result.SuccessResultList; + +import java.util.List; + +/** + * When you feel like quitting. Think about why you started + * 当你想要放弃的时候,想想当初你为何开始 + * + * @ClassName: IUserAdjustment + * @Description: 用户调整 + * @Author: wanggeng + * @Date: 2021/2/12 3:34 下午 + * @Version: 1.0 + */ +public interface IUserAdjustmentService { + + /** + * 新增修改记录 + * + * @param userAdjustmentBO + */ + void save(UserAdjustmentBO userAdjustmentBO); + + /** + * 用户调整分页列表 + * + * @param page + * @return + */ + SuccessResultList> listPage(ListPage page); + +} diff --git a/service-user/src/main/java/ink/wgink/module/user/service/IUserService.java b/service-user/src/main/java/ink/wgink/service/user/service/IUserService.java similarity index 89% rename from service-user/src/main/java/ink/wgink/module/user/service/IUserService.java rename to service-user/src/main/java/ink/wgink/service/user/service/IUserService.java index 0ea54956..dd66b17f 100644 --- a/service-user/src/main/java/ink/wgink/module/user/service/IUserService.java +++ b/service-user/src/main/java/ink/wgink/service/user/service/IUserService.java @@ -1,10 +1,10 @@ -package ink.wgink.module.user.service; +package ink.wgink.service.user.service; import ink.wgink.interfaces.user.IUserBaseService; import ink.wgink.interfaces.user.IUserCheckService; -import ink.wgink.module.user.pojo.vos.RestPasswordVO; -import ink.wgink.module.user.pojo.vos.UpdateUsernameVO; -import ink.wgink.module.user.pojo.vos.UserVO; +import ink.wgink.service.user.pojo.vos.RestPasswordVO; +import ink.wgink.service.user.pojo.vos.UpdateUsernameVO; +import ink.wgink.service.user.pojo.vos.UserVO; import ink.wgink.pojo.result.UploadExcelResultDTO; import org.springframework.web.multipart.MultipartFile; diff --git a/service-user/src/main/java/ink/wgink/service/user/service/impl/UserAdjustmentServiceImpl.java b/service-user/src/main/java/ink/wgink/service/user/service/impl/UserAdjustmentServiceImpl.java new file mode 100644 index 00000000..8ce37ab3 --- /dev/null +++ b/service-user/src/main/java/ink/wgink/service/user/service/impl/UserAdjustmentServiceImpl.java @@ -0,0 +1,48 @@ +package ink.wgink.service.user.service.impl; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import ink.wgink.common.base.DefaultBaseService; +import ink.wgink.service.user.dao.IUserAdjustmentDao; +import ink.wgink.service.user.pojo.bos.UserAdjustmentBO; +import ink.wgink.service.user.pojo.dtos.UserLogDTO; +import ink.wgink.service.user.service.IUserAdjustmentService; +import ink.wgink.pojo.ListPage; +import ink.wgink.pojo.result.SuccessResultList; +import ink.wgink.util.map.HashMapUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +/** + * When you feel like quitting. Think about why you started + * 当你想要放弃的时候,想想当初你为何开始 + * + * @ClassName: UserAdjustmentServiceImpl + * @Description: 用户调整 + * @Author: wanggeng + * @Date: 2021/2/12 3:39 下午 + * @Version: 1.0 + */ +@Service +public class UserAdjustmentServiceImpl extends DefaultBaseService implements IUserAdjustmentService { + + @Autowired + private IUserAdjustmentDao userAdjustmentDao; + + @Override + public void save(UserAdjustmentBO userAdjustmentBO) { + Map params = HashMapUtil.beanToMap(userAdjustmentBO); + userAdjustmentDao.save(params); + } + + @Override + public SuccessResultList> listPage(ListPage page) { + PageHelper.startPage(page.getPage(), page.getRows()); + List userLogDTOs = userAdjustmentDao.list(page.getParams()); + PageInfo pageInfo = new PageInfo<>(userLogDTOs); + return new SuccessResultList<>(userLogDTOs, pageInfo.getPageNum(), pageInfo.getTotal()); + } +} diff --git a/service-user/src/main/java/ink/wgink/module/user/service/impl/UserServiceImpl.java b/service-user/src/main/java/ink/wgink/service/user/service/impl/UserServiceImpl.java similarity index 71% rename from service-user/src/main/java/ink/wgink/module/user/service/impl/UserServiceImpl.java rename to service-user/src/main/java/ink/wgink/service/user/service/impl/UserServiceImpl.java index fbe4e08f..74134f72 100644 --- a/service-user/src/main/java/ink/wgink/module/user/service/impl/UserServiceImpl.java +++ b/service-user/src/main/java/ink/wgink/service/user/service/impl/UserServiceImpl.java @@ -1,4 +1,4 @@ -package ink.wgink.module.user.service.impl; +package ink.wgink.service.user.service.impl; import com.alibaba.excel.EasyExcel; import com.github.pagehelper.PageHelper; @@ -7,19 +7,23 @@ import ink.wgink.common.base.DefaultBaseService; import ink.wgink.exceptions.SearchException; import ink.wgink.module.file.excel.error.AbstractErrorExcelHandler; import ink.wgink.module.file.service.IFileService; -import ink.wgink.module.user.dao.IUserDao; -import ink.wgink.module.user.excel.UserExcel; -import ink.wgink.module.user.excel.UserExcelError; -import ink.wgink.module.user.excel.UserExcelListener; -import ink.wgink.module.user.pojo.vos.RestPasswordVO; -import ink.wgink.module.user.pojo.vos.UpdateUsernameVO; -import ink.wgink.module.user.pojo.vos.UserVO; -import ink.wgink.module.user.service.IUserService; +import ink.wgink.service.user.dao.IUserDao; +import ink.wgink.service.user.enums.UserUpdateTypeEnum; +import ink.wgink.service.user.excel.UserExcel; +import ink.wgink.service.user.excel.UserExcelError; +import ink.wgink.service.user.excel.UserExcelListener; +import ink.wgink.service.user.pojo.bos.UserAdjustmentBO; +import ink.wgink.service.user.pojo.vos.RestPasswordVO; +import ink.wgink.service.user.pojo.vos.UpdateUsernameVO; +import ink.wgink.service.user.pojo.vos.UserVO; +import ink.wgink.service.user.service.IUserAdjustmentService; +import ink.wgink.service.user.service.IUserService; import ink.wgink.pojo.ListPage; import ink.wgink.pojo.dtos.user.UserDTO; import ink.wgink.pojo.result.SuccessResultList; import ink.wgink.pojo.result.UploadExcelResultDTO; import ink.wgink.util.UUIDUtil; +import ink.wgink.util.date.DateUtil; import ink.wgink.util.map.HashMapUtil; import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.lang3.StringUtils; @@ -50,6 +54,8 @@ public class UserServiceImpl extends DefaultBaseService implements IUserService @Autowired private IUserDao userDao; @Autowired + private IUserAdjustmentService userAdjustmentService; + @Autowired private PasswordEncoder passwordEncoder; @Value("${user.default-password:88888888}") private String defaultPassword; @@ -118,6 +124,18 @@ public class UserServiceImpl extends DefaultBaseService implements IUserService params.put("userId", userId); params.put("userPassword", passwordEncoder.encode(DigestUtils.md5Hex(DigestUtils.md5Hex(DigestUtils.md5Hex(defaultPassword))))); userDao.updatePassword(params); + + // 记录日志 + UserAdjustmentBO userAdjustmentBO = new UserAdjustmentBO(); + userAdjustmentBO.setUserId(userId); + userAdjustmentBO.setUserName(userDTO.getUserName()); + userAdjustmentBO.setUpdateType(UserUpdateTypeEnum.REST_PASSWORD.getValue()); + userAdjustmentBO.setCreator(securityComponent.getCurrentUser().getUserId()); + userAdjustmentBO.setCreatorName(securityComponent.getCurrentUsername()); + userAdjustmentBO.setNewValue(defaultPassword); + userAdjustmentBO.setGmtCreate(DateUtil.getTime()); + userAdjustmentBO.setUpdateReason(restPasswordVO.getUpdateReason()); + userAdjustmentService.save(userAdjustmentBO); } @Override @@ -134,6 +152,8 @@ public class UserServiceImpl extends DefaultBaseService implements IUserService } params.put("userId", userId); userDao.updateUsername(params); + + updateUsernameAdjustment(userId, oldUserDTO.getUserUsername(), updateUsernameVO); } @Override @@ -227,6 +247,18 @@ public class UserServiceImpl extends DefaultBaseService implements IUserService return new SuccessResultList<>(userDTOs, pageInfo.getPageNum(), pageInfo.getTotal()); } + @Override + public SuccessResultList> listPageByIds(List userIds, ListPage page) { + page.getParams().put("userIds", userIds); + return listPage(page); + } + + @Override + public SuccessResultList> listPageByExcludeUserIds(List excludeUserIds, ListPage page) { + page.getParams().put("excludeUserIds", excludeUserIds); + return listPage(page); + } + /** * Excel导入错误对象 * @@ -244,4 +276,39 @@ public class UserServiceImpl extends DefaultBaseService implements IUserService return userExcelError; } + /** + * 更新用户名记录 + * + * @param userId + * @param oldUsername + * @param updateUsernameVO + */ + private void updateUsernameAdjustment(String userId, String oldUsername, UpdateUsernameVO updateUsernameVO) { + Map params = getHashMap(1); + UserDTO updateUserDTO = get(userId); + if (updateUserDTO == null) { + throw new SearchException("修改用户不存在"); + } + UserDTO userDTO = getByUsername(updateUsernameVO.getUsername()); + if (userDTO != null && !StringUtils.equals(userId, userDTO.getUserId())) { + throw new SearchException("新用户名已经存在"); + } + params.put("userId", userId); + params.put("userUsername", updateUsernameVO.getUsername()); + userDao.updateUsername(params); + + // 日志 + UserAdjustmentBO userAdjustmentBO = new UserAdjustmentBO(); + userAdjustmentBO.setUserId(userId); + userAdjustmentBO.setUserName(updateUserDTO.getUserName()); + userAdjustmentBO.setUpdateType(UserUpdateTypeEnum.USERNAME.getValue()); + userAdjustmentBO.setOldValue(oldUsername); + userAdjustmentBO.setNewValue(updateUsernameVO.getUsername()); + userAdjustmentBO.setUpdateReason(updateUsernameVO.getUpdateReason()); + userAdjustmentBO.setCreator(securityComponent.getCurrentUser().getUserId()); + userAdjustmentBO.setCreatorName(securityComponent.getCurrentUser().getUserName()); + userAdjustmentBO.setGmtCreate(DateUtil.getTime()); + userAdjustmentService.save(userAdjustmentBO); + } + } diff --git a/service-user/src/main/java/ink/wgink/module/user/startup/ServiceUserStartUp.java b/service-user/src/main/java/ink/wgink/service/user/startup/ServiceUserStartUp.java similarity index 86% rename from service-user/src/main/java/ink/wgink/module/user/startup/ServiceUserStartUp.java rename to service-user/src/main/java/ink/wgink/service/user/startup/ServiceUserStartUp.java index b7a5da2a..b2709375 100644 --- a/service-user/src/main/java/ink/wgink/module/user/startup/ServiceUserStartUp.java +++ b/service-user/src/main/java/ink/wgink/service/user/startup/ServiceUserStartUp.java @@ -1,6 +1,7 @@ -package ink.wgink.module.user.startup; +package ink.wgink.service.user.startup; -import ink.wgink.module.user.dao.IUserDao; +import ink.wgink.service.user.dao.IUserAdjustmentDao; +import ink.wgink.service.user.dao.IUserDao; import ink.wgink.pojo.dtos.user.UserDTO; import ink.wgink.util.date.DateUtil; import org.slf4j.Logger; @@ -29,6 +30,8 @@ public class ServiceUserStartUp implements ApplicationRunner { @Autowired private IUserDao userDao; + @Autowired + private IUserAdjustmentDao userAdjustmentDao; @Override public void run(ApplicationArguments args) throws Exception { @@ -58,5 +61,8 @@ public class ServiceUserStartUp implements ApplicationRunner { params.put("isDelete", 0); userDao.save(params); } + + LOG.debug("创建 sys_user_adjustment 表"); + userAdjustmentDao.createTable(); } } diff --git a/service-user/src/main/resources/mybatis/mapper/user-adjustment-mapper.xml b/service-user/src/main/resources/mybatis/mapper/user-adjustment-mapper.xml new file mode 100644 index 00000000..0aec78fc --- /dev/null +++ b/service-user/src/main/resources/mybatis/mapper/user-adjustment-mapper.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + CREATE TABLE IF NOT EXISTS `sys_user_adjustment` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `user_id` char(36) DEFAULT NULL COMMENT '用户ID', + `user_name` varchar(255) DEFAULT NULL COMMENT '用户名称', + `update_type` varchar(255) DEFAULT NULL COMMENT '类型:password,修改密码;username,修改用户名', + `old_value` varchar(255) DEFAULT NULL COMMENT '旧值', + `new_value` varchar(255) DEFAULT NULL COMMENT '新值', + `update_reason` varchar(255) DEFAULT NULL COMMENT '原因', + `creator` char(36) DEFAULT NULL, + `creator_name` varchar(255) DEFAULT NULL, + `gmt_create` datetime DEFAULT NULL, + PRIMARY KEY (`id`) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户调整记录表'; + + + + + INSERT INTO sys_user_adjustment( + user_id, + user_name, + update_type, + old_value, + new_value, + update_reason, + creator, + creator_name, + gmt_create + ) VALUES( + #{userId}, + #{userName}, + #{updateType}, + #{oldValue}, + #{newValue}, + #{updateReason}, + #{creator}, + #{creatorName}, + #{gmtCreate} + ) + + + + + + \ No newline at end of file diff --git a/service-user/src/main/resources/mybatis/mapper/user-mapper.xml b/service-user/src/main/resources/mybatis/mapper/user-mapper.xml index f6fb6f54..08561502 100644 --- a/service-user/src/main/resources/mybatis/mapper/user-mapper.xml +++ b/service-user/src/main/resources/mybatis/mapper/user-mapper.xml @@ -1,9 +1,10 @@ - - + - + + + @@ -317,6 +318,13 @@ #{userIds[${index}]} + + AND + user_id NOT IN + + #{excludeUserIds[${index}]} + + AND ( user_username LIKE CONCAT('%', #{keywords}, '%') diff --git a/service-user/src/main/resources/templates/user/list.html b/service-user/src/main/resources/templates/user/list.html index 97892903..f25cc394 100644 --- a/service-user/src/main/resources/templates/user/list.html +++ b/service-user/src/main/resources/templates/user/list.html @@ -27,12 +27,14 @@
    - - +
    + + +
    @@ -97,7 +99,7 @@ } }, {field:'userName', width:140, title: '昵称', sort: true, align:'center'}, - {field:'userType', width:100, title: '类型', sort: true, align:'center', + {field:'userType', width:90, title: '类型', sort: true, align:'center', templet: function(item) { if(item.userType == 1) { return '系统用户'; @@ -163,9 +165,9 @@ return item.gmtCreate; } }, - {field:'opition', width:120, title: '操作', fixed:'right', align:'center', + {field:'opition', width:110, title: '操作', fixed:'right', align:'center', templet: function(item) { - return ''; } diff --git a/service-user/src/main/resources/templates/user/upload/upload-excel.html b/service-user/src/main/resources/templates/user/upload/upload-excel.html index f0092d12..ce0369d2 100644 --- a/service-user/src/main/resources/templates/user/upload/upload-excel.html +++ b/service-user/src/main/resources/templates/user/upload/upload-excel.html @@ -15,7 +15,7 @@
    下载“下载模板”整理数据,点击“导入数据”上传,格式为xls或xlsx
    -