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; @@ -45,7 +46,7 @@ @ApiOperation("添加部门") @PostMapping(value = "/create") @LogSave(operationType = "部门管理",contain = "添加部门") @LogSave(operationType = "部门管理", contain = "添加部门") public CommonResult<Void> create(@Validated @RequestBody DepartVO.AddDepartVO addDepartVO) { departService.create(addDepartVO); return CommonResult.success(null); @@ -53,7 +54,7 @@ @ApiOperation("编辑部门") @PostMapping(value = "/update") @LogSave(operationType = "部门管理",contain = "编辑部门") @LogSave(operationType = "部门管理", contain = "编辑部门") public CommonResult<Void> create(@Validated @RequestBody DepartVO.UpdateDepartVO params) { departService.update(params); return CommonResult.success(null); @@ -61,7 +62,7 @@ @ApiOperation("删除") @PostMapping(value = "/delete") @LogSave(operationType = "部门管理",contain = "删除部门") @LogSave(operationType = "部门管理", contain = "删除部门") public CommonResult<Void> delete(@Validated @RequestBody DepartVO.IdDepartVO params) { departService.delete(params.getId()); return CommonResult.success(null); @@ -74,7 +75,7 @@ **/ @ApiOperation("批处理-删除") @PostMapping(value = "/batch_deletion") @LogSave(operationType = "部门管理",contain = "批量删除部门") @LogSave(operationType = "部门管理", contain = "批量删除部门") public CommonResult delete(@RequestParam List<Long> ids) { if (ids.isEmpty()) { return CommonResult.failed("bad request parameter"); @@ -84,7 +85,7 @@ @ApiOperation("详情") @PostMapping(value = "/detail") @LogSave(operationType = "部门管理",contain = "查看部门") @LogSave(operationType = "部门管理", contain = "查看部门") public CommonResult<UmsDepart> detail(@Validated @RequestBody DepartVO.IdDepartVO params) { UmsDepart sccgDepart = departService.loadDepartById(params.getId()); return CommonResult.success(sccgDepart); @@ -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
@@ -63,7 +63,7 @@ } UmsDepart depart = new UmsDepart(); BeanUtils.copyProperties(addDepartVO, depart); depart.setStatus(Short.valueOf("1")); depart.setStatus(Short.valueOf("1")); umsDepartService.save(depart); addDepartVO.getDepartManagerList() .forEach(item -> { @@ -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
@@ -4,30 +4,57 @@ <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.ycl.entity.depart.UmsDepart"> <id column="id" property="id" /> <result column="depart_name" property="departName" /> <result column="depart_des" property="departDes" /> <result column="depart_type" property="departType" /> <result column="parent_id" property="parentId" /> <result column="status" property="status" /> <result column="create_time" property="createTime" /> <result column="update_time" property="updateTime" /> <result column="is_deleted" property="isDeleted" /> <id column="id" property="id"/> <result column="depart_name" property="departName"/> <result column="depart_des" property="departDes"/> <result column="depart_type" property="departType"/> <result column="parent_id" property="parentId"/> <result column="status" property="status"/> <result column="create_time" property="createTime"/> <result column="update_time" property="updateTime"/> <result column="is_deleted" property="isDeleted"/> </resultMap> <resultMap type="com.ycl.entity.depart.UmsDepart" id="UserDepartResultMap" extends="BaseResultMap"> <collection property="userInfoDTOS" javaType="ArrayList" ofType="com.ycl.dto.user.DepartUserDTO"> <id column="user_id" property="userId" /> <result column="username" property="username" /> <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 LEFT JOIN ums_depart_manager udm ON ud.id = udm.depart_id LEFT JOIN ums_admin ua ON udm.user_id = ua.id <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 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>