ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ycl.annotation.LogSave; import com.ycl.api.BasePageDTO; import com.ycl.api.BasePageVO; @@ -106,8 +107,10 @@ @ApiOperation("查询全部部门") @GetMapping(value = "/page") public CommonResult<IPage<UmsDepartVO>> page(DepartVO.PageDepartVO params) { IPage<UmsDepartVO> page = departService.pageDepart(params); public CommonResult<IPage<UmsDepartVO>> page(@RequestParam("currentPage") Integer currentPage, @RequestParam("pageSize") Integer pageSize, @RequestParam(value = "departName", required = false) String departName) { IPage<UmsDepartVO> page = new Page<>(currentPage, pageSize); departService.pageDepart(departName, page); return CommonResult.success(page); } ycl-common/src/main/java/com/ycl/mapper/depart/UmsDepartMapper.java
@@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.entity.depart.UmsDepart; import com.ycl.vo.depart.UmsDepartVO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -17,4 +19,5 @@ List<UmsDepart> selectDepartList(); List<UmsDepartVO> selectPageByName(@Param("departName") String departName, @Param("offset") Long offset, @Param("size") Long size); } ycl-common/src/main/java/com/ycl/service/depart/UmsDepartService.java
@@ -1,10 +1,12 @@ package com.ycl.service.depart; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.entity.depart.UmsDepart; import com.ycl.vo.depart.DepartVO; import com.ycl.vo.depart.UmsDepartVO; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -41,25 +43,29 @@ /** * 删除 * * @param id */ void delete(long id); /** * 树形 * * @return */ List<UmsDepart> tree(); /** * 分页 * @param params * * @param page * @return */ IPage<UmsDepartVO> pageDepart(DepartVO.PageDepartVO params); IPage<UmsDepartVO> pageDepart(String departName, IPage<UmsDepartVO> page); /** * 修改状态 * * @param params */ void updateStatus(DepartVO.StatusDepartVO params); ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java
@@ -139,44 +139,16 @@ } @Override public IPage<UmsDepartVO> pageDepart(DepartVO.PageDepartVO params) { Page<UmsDepart> page = new Page<>(params.getCurrent(), params.getPageSize()); LambdaQueryWrapper<UmsDepart> query = new LambdaQueryWrapper<>(); if (StringUtils.isNotBlank(params.getDepartName())) { query.like(UmsDepart::getDepartName, params.getDepartName()); } if (PojoUtils.Vo.isUsefulSearchParam(params.getDepartType())) { query.like(UmsDepart::getDepartType, params.getDepartType()); } query.orderByDesc(UmsDepart::getCreateTime); Page<UmsDepart> departPage = sccgDepartMapper.selectPage(page, query); Page<UmsDepartVO> umsDepartVOPage = new Page<>(); BeanUtils.copyProperties(departPage, umsDepartVOPage); List<UmsDepartVO> umsDepartVOList = new ArrayList<>(); //负责人 if (CollUtil.isNotEmpty(departPage.getRecords())) { for (UmsDepart record : departPage.getRecords()) { UmsDepartVO umsDepartVO = new UmsDepartVO(); BeanUtils.copyProperties(record, umsDepartVO); umsDepartVO.setDepartType(dataDictionaryMapper .selectOne(new LambdaQueryWrapper<DataDictionary>() .eq(DataDictionary::getId, record.getDepartType())) .getName()); umsDepartVOList.add(umsDepartVO); List<UmsDepartManage> umsAdminDeparts = umsAdminDepartService.queryByDepartId(record.getId()); if (CollUtil.isNotEmpty(umsAdminDeparts)) { List<AdminDepartDTO.UserInfoDTO> userInfoDTOS = umsAdminDeparts.stream().map(a -> { AdminDepartDTO.UserInfoDTO userInfoDTO = new AdminDepartDTO.UserInfoDTO(); userInfoDTO.setUserId(a.getUserId()); // userInfoDTO.setUsername(umsAdminService.getById(a.getUserId()).getUsername()); return userInfoDTO; }).collect(Collectors.toList()); record.setUserInfoDTOS(userInfoDTOS); } } } umsDepartVOPage.setRecords(umsDepartVOList); return umsDepartVOPage; public IPage<UmsDepartVO> pageDepart(String departName, IPage<UmsDepartVO> page) { List<UmsDepartVO> ls = sccgDepartMapper.selectPageByName(departName, page.offset(), page.getSize()); LambdaQueryWrapper<UmsDepart> queryWrapper = new LambdaQueryWrapper<UmsDepart>() .like(StringUtils.isNotEmpty(departName), UmsDepart::getDepartName, departName); long total = this.count(queryWrapper); page.setRecords(ls); page.setTotal(total); return page; } @Override ycl-common/src/main/java/com/ycl/vo/depart/UmsDepartVO.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.annotation.*; import com.ycl.api.BaseEntity; import com.ycl.dto.user.AdminDepartDTO; import com.ycl.entity.depart.UmsDepart; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -22,32 +23,9 @@ @Getter @Setter @ApiModel(value = "umsDepartVO", description = "部门表") public class UmsDepartVO { @ApiModelProperty("主键") @TableId(value = "id", type = IdType.AUTO) private Long id; @ApiModelProperty("部门名称") private String departName; @ApiModelProperty("部门描述") private String departDes; public class UmsDepartVO extends UmsDepart { @ApiModelProperty("部门类型") private String departType; private String departTypeName; @ApiModelProperty("父级id,默认0") private Long parentId; @ApiModelProperty("停用状态,0->false,1->true,默认停用") private Short status; /** * 逻辑删除 0:false 1:true 默认0 */ @ApiModelProperty(value = "是否删除", hidden = true) @TableField(select = false) @TableLogic() private byte isDeleted; } ycl-common/src/main/resources/mapper/depart/UmsDepartMapper.xml
@@ -21,14 +21,41 @@ </collection> </resultMap> <resultMap id="DepartVOMap" type="com.ycl.vo.depart.UmsDepartVO" extends="BaseResultMap"> <result column="depart_type_name" property="departTypeName" jdbcType="VARCHAR"></result> <collection property="userInfoDTOS" javaType="ArrayList" ofType="com.ycl.dto.user.DepartUserDTO"> <id column="user_id" property="userId"/> <result column="username" property="username"/> </collection> </resultMap> <select id="selectDepartList" resultMap="UserDepartResultMap"> SELECT ud.*,ua.id user_id,ua.username FROM ums_depart ud SELECT ud.*, ua.id user_id, ua.username FROM ums_depart ud LEFT JOIN ums_depart_manager udm ON ud.id = udm.depart_id LEFT JOIN ums_admin ua ON udm.user_id = ua.id </select> <select id="selectPageByName" resultMap="DepartVOMap"> SELECT t_0.*, ua.id user_id, ua.username, dd.`name` as depart_type_name FROM ( SELECT ud.* FROM ums_depart ud WHERE is_deleted = 0 <if test="departName!=null and departName!=''"> and ud.name like CONCAT('%',#{departName},'%') </if> ORDER BY create_time desc LIMIT #{offset}, #{size} ) t_0 LEFT JOIN ums_depart_manager udm ON t_0.id = udm.depart_id LEFT JOIN ums_admin ua ON udm.user_id = ua.id left join ums_data_dictionary as dd on t_0.depart_type = dd.id </select> </mapper>