wl
2022-10-24 9969bea2a8c1eab64c12a51a2d24d65e5b6c0dd0
ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java
@@ -1,14 +1,9 @@
package com.ycl.service.depart.impl;
import cn.hutool.core.collection.CollUtil;
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.dto.user.AdminDepartDTO;
import com.ycl.entity.depart.UmsDepart;
import com.ycl.entity.dict.DataDictionary;
import com.ycl.entity.user.UmsDepartManage;
import com.ycl.enums.common.ResultCode;
import com.ycl.exception.ApiException;
import com.ycl.mapper.depart.UmsDepartMapper;
@@ -17,7 +12,6 @@
import com.ycl.service.depart.UmsDepartService;
import com.ycl.service.user.UmsAdminService;
import com.ycl.service.user.UmsDepartManageService;
import com.ycl.utils.common.PojoUtils;
import com.ycl.vo.depart.DepartVO;
import com.ycl.vo.depart.UmsDepartVO;
import org.apache.commons.lang3.StringUtils;
@@ -27,7 +21,6 @@
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@@ -63,7 +56,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 -> {
@@ -86,27 +79,20 @@
    @Transactional(rollbackFor = Exception.class)
    public void update(DepartVO.UpdateDepartVO updateDepartVO) {
        UmsDepart sccgDepart = this.queryByName(updateDepartVO.getDepartName());
        if (null != sccgDepart && sccgDepart.getId() != updateDepartVO.getId()) {
        if (null != sccgDepart && !sccgDepart.getId().equals(updateDepartVO.getId())) {
            throw new ApiException(ResultCode.RECORD_ALREADY_EXISTS);
        }
        UmsDepart depart = this.getById(updateDepartVO.getId());
        UmsDepart depart = new UmsDepart();
        BeanUtils.copyProperties(updateDepartVO, depart);
        List<Long> userIds = updateDepartVO.getUserIds();
        if (CollUtil.isNotEmpty(userIds)) {
            Long departId = updateDepartVO.getId();
            List<UmsDepartManage> departList = umsAdminDepartService.queryByDepartId(departId);
            if (CollUtil.isNotEmpty(departList)) {
                umsAdminDepartService.deletedByDepartId(departId);
            }
            userIds.forEach(e -> {
                UmsDepartManage adminDepart = new UmsDepartManage();
                adminDepart.setDepartId(departId);
                adminDepart.setUserId(e);
                umsAdminDepartService.save(adminDepart);
            });
        }
        if (sccgDepartMapper.updateById(depart) != 1) {
            throw new ApiException(ResultCode.RECORD_UPDATE_FAIL);
        umsDepartService.updateById(depart);
        if (updateDepartVO.getDepartManagerList().size() > 0) {
            iDepartManagerService.deleteByDepartId(depart.getId());
            updateDepartVO.getDepartManagerList()
                    .forEach(item -> {
                        item.setCreateTime(LocalDateTime.now());
                        item.setDepartId(depart.getId());
                    });
            iDepartManagerService.saveBatch(updateDepartVO.getDepartManagerList());
        }
    }
@@ -139,44 +125,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
@@ -230,5 +188,4 @@
        UmsDepart sccgDepart = this.sccgDepartMapper.selectOne(queryWrapper);
        return sccgDepart;
    }
}
}