zhanghua
2022-10-17 47b8082636e1905f6eb998d053671da878de8f1c
部门查询代码重构
6个文件已修改
131 ■■■■ 已修改文件
ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/mapper/depart/UmsDepartMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/service/depart/UmsDepartService.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/vo/depart/UmsDepartVO.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/resources/mapper/depart/UmsDepartMapper.xml 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>