From 13f99d6687615eca5746fc9eb05d8ae0bda6b45d Mon Sep 17 00:00:00 2001 From: zhangheng <3226558941@qq.com> Date: Thu, 29 Feb 2024 18:12:04 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/system/SysUserController.java | 19 ++++++++ .../common/core/domain/entity/SysUser.java | 41 ++++++++++++++++ .../xinelu/common/utils/PageServiceUtil.java | 39 +++++++++++++++ .../xinelu/system/domain/vo/AgencyNameVO.java | 33 +++++++++++++ .../xinelu/system/domain/vo/UserAgencyVO.java | 26 ++++++++++ .../xinelu/system/mapper/SysUserMapper.java | 5 ++ .../system/service/ISysUserService.java | 19 ++++++++ .../service/impl/SysUserServiceImpl.java | 44 ++++++++++++++++- .../resources/mapper/system/SysUserMapper.xml | 47 +++++++++++++++++-- 9 files changed, 269 insertions(+), 4 deletions(-) create mode 100644 postdischarge-common/src/main/java/com/xinelu/common/utils/PageServiceUtil.java create mode 100644 postdischarge-system/src/main/java/com/xinelu/system/domain/vo/AgencyNameVO.java create mode 100644 postdischarge-system/src/main/java/com/xinelu/system/domain/vo/UserAgencyVO.java diff --git a/postdischarge-admin/src/main/java/com/xinelu/web/controller/system/SysUserController.java b/postdischarge-admin/src/main/java/com/xinelu/web/controller/system/SysUserController.java index 457e43a8..c525f178 100644 --- a/postdischarge-admin/src/main/java/com/xinelu/web/controller/system/SysUserController.java +++ b/postdischarge-admin/src/main/java/com/xinelu/web/controller/system/SysUserController.java @@ -11,6 +11,7 @@ import com.xinelu.common.enums.BusinessType; import com.xinelu.common.utils.SecurityUtils; import com.xinelu.common.utils.StringUtils; import com.xinelu.common.utils.poi.ExcelUtil; +import com.xinelu.system.domain.vo.AgencyNameVO; import com.xinelu.system.service.ISysPostService; import com.xinelu.system.service.ISysRoleService; import com.xinelu.system.service.ISysUserService; @@ -205,4 +206,22 @@ public class SysUserController extends BaseController { userService.insertUserAuth(userId, roleIds); return success(); } + + /** + * 剩余机构查询 + */ + @GetMapping("/selectUserAgency") + public TableDataInfo selectUserAgency(String userName, String agencyName) { + return userService.selectUserAgency(userName, agencyName); + } + + /** + * 所属机构查询 + */ + @GetMapping("/selectUserBelongAgency") + public TableDataInfo selectUserBelongAgency(String userName) { + startPage(); + List list = userService.selectUserBelongAgency(userName); + return getDataTable(list); + } } diff --git a/postdischarge-common/src/main/java/com/xinelu/common/core/domain/entity/SysUser.java b/postdischarge-common/src/main/java/com/xinelu/common/core/domain/entity/SysUser.java index db8c99fc..ec3e7f4f 100644 --- a/postdischarge-common/src/main/java/com/xinelu/common/core/domain/entity/SysUser.java +++ b/postdischarge-common/src/main/java/com/xinelu/common/core/domain/entity/SysUser.java @@ -1,5 +1,6 @@ package com.xinelu.common.core.domain.entity; +import com.fasterxml.jackson.annotation.JsonFormat; import com.xinelu.common.annotation.Excel; import com.xinelu.common.annotation.Excel.ColumnType; import com.xinelu.common.annotation.Excel.Type; @@ -127,6 +128,22 @@ public class SysUser extends BaseEntity { */ private Long roleId; + /** + * 角色身份证号 + */ + private String userCardNo; + + /** + * 角色出生日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date userBirthDate; + + /** + * 机构id + */ + private Long agencyId; + public SysUser() { } @@ -143,6 +160,14 @@ public class SysUser extends BaseEntity { this.userId = userId; } + public Long getAgencyId() { + return agencyId; + } + + public void setAgencyId(Long agencyId) { + this.agencyId = agencyId; + } + public boolean isAdmin() { return isAdmin(this.userId); } @@ -295,6 +320,22 @@ public class SysUser extends BaseEntity { this.roleId = roleId; } + public String getUserCardNo() { + return userCardNo; + } + + public void setUserCardNo(String userCardNo) { + this.userCardNo = userCardNo; + } + + public Date getUserBirthDate() { + return userBirthDate; + } + + public void setUserBirthDate(Date userBirthDate) { + this.userBirthDate = userBirthDate; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) diff --git a/postdischarge-common/src/main/java/com/xinelu/common/utils/PageServiceUtil.java b/postdischarge-common/src/main/java/com/xinelu/common/utils/PageServiceUtil.java new file mode 100644 index 00000000..0646a501 --- /dev/null +++ b/postdischarge-common/src/main/java/com/xinelu/common/utils/PageServiceUtil.java @@ -0,0 +1,39 @@ +package com.xinelu.common.utils; + +import com.github.pagehelper.PageInfo; + +import com.xinelu.common.constant.HttpStatus; +import com.xinelu.common.core.page.TableDataInfo; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @Description 业务层分页工具类 + * @Author 纪寒 + * @Date 2022-08-08 11:03:27 + * @Version 1.0 + */ +@Component +public class PageServiceUtil { + + /** + * 设置请求分页数据 + */ + public void startPage() { + PageUtils.startPage(); + } + + /** + * 响应请求分页数据 + */ + @SuppressWarnings({"rawtypes", "unchecked"}) + public TableDataInfo getDataTable(List list) { + TableDataInfo rspData = new TableDataInfo(); + rspData.setCode(HttpStatus.SUCCESS); + rspData.setMsg("查询成功"); + rspData.setRows(list); + rspData.setTotal(new PageInfo(list).getTotal()); + return rspData; + } +} diff --git a/postdischarge-system/src/main/java/com/xinelu/system/domain/vo/AgencyNameVO.java b/postdischarge-system/src/main/java/com/xinelu/system/domain/vo/AgencyNameVO.java new file mode 100644 index 00000000..8a87c5d5 --- /dev/null +++ b/postdischarge-system/src/main/java/com/xinelu/system/domain/vo/AgencyNameVO.java @@ -0,0 +1,33 @@ +package com.xinelu.system.domain.vo; + +import lombok.Data; + +/** + * 用户机构信息对象vo agency + * + * @author xinelu + * @date 2024-02-26 + */ +@Data +public class AgencyNameVO { + + /** + * 主键id + */ + private Long agencyId; + + /** + * 机构名称 + */ + private String agencyName; + + /** + * 机构代码 + */ + private String agencyCode; + + /** + * 机构数量 + */ + private Integer agencyNum; +} \ No newline at end of file diff --git a/postdischarge-system/src/main/java/com/xinelu/system/domain/vo/UserAgencyVO.java b/postdischarge-system/src/main/java/com/xinelu/system/domain/vo/UserAgencyVO.java new file mode 100644 index 00000000..48b3930a --- /dev/null +++ b/postdischarge-system/src/main/java/com/xinelu/system/domain/vo/UserAgencyVO.java @@ -0,0 +1,26 @@ +package com.xinelu.system.domain.vo; + +import lombok.Data; + +import java.util.List; + +/** + * 用户机构信息对象vo agency + * + * @author xinelu + * @date 2024-02-26 + */ +@Data +public class UserAgencyVO { + + + /** + * 机构 + */ + private List agencyList; + + /** + * 机构数量 + */ + private Integer agencyNum; +} diff --git a/postdischarge-system/src/main/java/com/xinelu/system/mapper/SysUserMapper.java b/postdischarge-system/src/main/java/com/xinelu/system/mapper/SysUserMapper.java index 18f3be25..3dd4f11e 100644 --- a/postdischarge-system/src/main/java/com/xinelu/system/mapper/SysUserMapper.java +++ b/postdischarge-system/src/main/java/com/xinelu/system/mapper/SysUserMapper.java @@ -1,6 +1,7 @@ package com.xinelu.system.mapper; import com.xinelu.common.core.domain.entity.SysUser; +import com.xinelu.system.domain.vo.AgencyNameVO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -124,4 +125,8 @@ public interface SysUserMapper { * @return 结果 */ public SysUser checkEmailUnique(String email); + + List selectAgencyList(String agencyName); + + List selectBelongAgencyList(Long agencyId); } diff --git a/postdischarge-system/src/main/java/com/xinelu/system/service/ISysUserService.java b/postdischarge-system/src/main/java/com/xinelu/system/service/ISysUserService.java index 183266e5..7eac0f10 100644 --- a/postdischarge-system/src/main/java/com/xinelu/system/service/ISysUserService.java +++ b/postdischarge-system/src/main/java/com/xinelu/system/service/ISysUserService.java @@ -1,6 +1,9 @@ package com.xinelu.system.service; +import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.common.core.domain.entity.SysUser; +import com.xinelu.common.core.page.TableDataInfo; +import com.xinelu.system.domain.vo.AgencyNameVO; import java.util.List; @@ -203,4 +206,20 @@ public interface ISysUserService { * @return 结果 */ public String importUser(List userList, Boolean isUpdateSupport, String operName); + + /** + * 所属机构查询 + * + * @param userName 用户账号 + * @return AjaxResult + */ + TableDataInfo selectUserAgency(String userName, String agencyName); + + /** + * 所属机构查询 + * + * @param userName 用户账号 + * @return AjaxResult + */ + List selectUserBelongAgency(String userName); } diff --git a/postdischarge-system/src/main/java/com/xinelu/system/service/impl/SysUserServiceImpl.java b/postdischarge-system/src/main/java/com/xinelu/system/service/impl/SysUserServiceImpl.java index 3e591c6e..3a5d89c5 100644 --- a/postdischarge-system/src/main/java/com/xinelu/system/service/impl/SysUserServiceImpl.java +++ b/postdischarge-system/src/main/java/com/xinelu/system/service/impl/SysUserServiceImpl.java @@ -4,7 +4,9 @@ import com.xinelu.common.annotation.DataScope; import com.xinelu.common.constant.UserConstants; import com.xinelu.common.core.domain.entity.SysRole; import com.xinelu.common.core.domain.entity.SysUser; +import com.xinelu.common.core.page.TableDataInfo; import com.xinelu.common.exception.ServiceException; +import com.xinelu.common.utils.PageServiceUtil; import com.xinelu.common.utils.SecurityUtils; import com.xinelu.common.utils.StringUtils; import com.xinelu.common.utils.bean.BeanValidators; @@ -12,19 +14,21 @@ import com.xinelu.common.utils.spring.SpringUtils; import com.xinelu.system.domain.SysPost; import com.xinelu.system.domain.SysUserPost; import com.xinelu.system.domain.SysUserRole; +import com.xinelu.system.domain.vo.AgencyNameVO; import com.xinelu.system.mapper.*; import com.xinelu.system.service.ISysConfigService; import com.xinelu.system.service.ISysUserService; +import org.apache.commons.collections4.CollectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import javax.validation.Validator; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -57,6 +61,9 @@ public class SysUserServiceImpl implements ISysUserService { @Resource protected Validator validator; + @Resource + private PageServiceUtil pageServiceUtil; + /** * 根据条件分页查询用户列表 * @@ -480,4 +487,39 @@ public class SysUserServiceImpl implements ISysUserService { } return successMsg.toString(); } + + /** + * 剩余机构查询 + * + * @param userName 用户账号 + * @return AjaxResult + */ + @Override + public TableDataInfo selectUserAgency(String userName, String agencyName) { + pageServiceUtil.startPage(); + List agencyList = userMapper.selectAgencyList(agencyName); + if (CollectionUtils.isNotEmpty(agencyList)) { + SysUser sysUser = userMapper.selectUserByUserName(userName); + if (Objects.nonNull(sysUser) && Objects.nonNull(sysUser.getAgencyId())) { + List collect = agencyList.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getAgencyId()) && sysUser.getAgencyId().equals(item.getAgencyId())).collect(Collectors.toList()); + agencyList.removeAll(collect); + } + } + return pageServiceUtil.getDataTable(agencyList); + } + + /** + * 所属机构查询 + * + * @param userName 用户账号 + * @return AjaxResult + */ + @Override + public List selectUserBelongAgency(String userName) { + SysUser sysUser = userMapper.selectUserByUserName(userName); + if (Objects.nonNull(sysUser) && Objects.nonNull(sysUser.getAgencyId())) { + return userMapper.selectBelongAgencyList(sysUser.getAgencyId()); + } + return new ArrayList(); + } } diff --git a/postdischarge-system/src/main/resources/mapper/system/SysUserMapper.xml b/postdischarge-system/src/main/resources/mapper/system/SysUserMapper.xml index 73b26c68..ae838af1 100644 --- a/postdischarge-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/postdischarge-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -23,6 +23,8 @@ + + @@ -47,8 +49,8 @@ - select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, - d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status, + select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, + u.user_card_no,u.user_birth_date,d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status, r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status from sys_user u left join sys_dept d on u.dept_id = d.dept_id @@ -58,7 +60,7 @@ + select id agencyId, + agency_name, + agency_code, + (select COUNT(1) + from agency + where 1 = 1 + + and agency_name = #{agencyName} + or agency_code = #{agencyName} + + ) as agencyNum + from agency + where 1 = 1 + + and agency_name = #{agencyName} + or agency_code = #{agencyName} + + + + \ No newline at end of file