| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- package com.ydtech.modules.admin.service.impl;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.ydtech.exception.SystemException;
- import com.ydtech.modules.admin.dao.SysDeptInternalAgentMapper;
- import com.ydtech.modules.admin.dao.SysUserLinkDeptInternalAgentMapper;
- import com.ydtech.modules.admin.model.dto.SysUserDto;
- import com.ydtech.modules.admin.model.dto.SysUserLinkDeptInternalAgentDto;
- import com.ydtech.modules.admin.model.dto.SysUserLinkPtlAgreementDto;
- import com.ydtech.modules.admin.model.po.SysDeptInternalAgent;
- import com.ydtech.modules.admin.model.po.SysUserLinkDeptInternalAgent;
- import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
- import com.ydtech.modules.admin.model.vo.SysUserLinkDeptInternalAgentAddVo;
- import com.ydtech.modules.admin.model.vo.SysUserLinkDeptInternalAgentQueryVo;
- import com.ydtech.modules.admin.service.SysUserLinkDeptInternalAgentService;
- import com.ydtech.modules.base.controller.BaseController;
- import com.ydtech.modules.order.entity.BasePageResult;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- import java.util.stream.Collectors;
- /**
- * @author Administrator
- * @description 针对表【sys_user_link_dept_internal_agent(后线人员配置内部机构表)】的数据库操作Service实现
- * @createDate 2024-06-26 17:28:11
- */
- @Service
- public class SysUserLinkDeptInternalAgentServiceImpl extends ServiceImpl<SysUserLinkDeptInternalAgentMapper, SysUserLinkDeptInternalAgent>
- implements SysUserLinkDeptInternalAgentService {
- @Autowired
- private SysUserLinkDeptInternalAgentMapper sysUserLinkDeptInternalAgentMapper;
- @Autowired
- private SysDeptInternalAgentMapper sysDeptInternalAgentMapper;
- /**
- * @version
- * @author: hxl
- * @Date: 2024/6/26 18:54
- * @Description: 查询内部机构树
- */
- @Override
- public List<SysDeptInternalAgent> queryOrgTree() {
- List<SysDeptInternalAgent> sysDeptAll =sysDeptInternalAgentMapper.queryDeptList();
- List<SysDeptInternalAgent> resultList =new ArrayList<SysDeptInternalAgent>();
- List<SysDeptInternalAgent> sysDeptTop = sysDeptAll.stream().filter(item ->"3".equals(item.getComlevel())).collect(Collectors.toList());
- for (SysDeptInternalAgent dept : sysDeptTop) {
- resultList.add(buildDeptTree(dept,sysDeptAll));
- }
- return resultList;
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/6/27 8:42
- * @Description: 获取顶级机构的数据
- */
- /**
- * 递归构建树形结构
- */
- private SysDeptInternalAgent buildDeptTree(SysDeptInternalAgent dept, List<SysDeptInternalAgent> deptList){
- for (SysDeptInternalAgent d : deptList) {
- if (dept.getId().equals(d.getParentId())) {
- if (null == dept.getChildren()) {
- dept.setChildren(new ArrayList<SysDeptInternalAgent>());
- }
- //递归调用
- dept.getChildren().add(buildDeptTree(d, deptList));
- }
- }
- return dept;
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/6/26 18:54
- * @Description: 添加或修改
- */
- @Override
- public void addOrUpdate(SysUserLinkDeptInternalAgentAddVo sysUserLinkDeptInternalAgentAddVo) {
- String deptId = sysUserLinkDeptInternalAgentAddVo.getDeptId();
- List<String> userIds = sysUserLinkDeptInternalAgentAddVo.getUserIds();
- //删除数据重新添加
- sysUserLinkDeptInternalAgentMapper.deleteByDeptId(deptId);
- List<SysUserLinkDeptInternalAgent> addList= new ArrayList<>();
- //重新添加
- if(userIds!=null && userIds.size()>0){
- for (String userId : userIds) {
- SysUserLinkDeptInternalAgent add=new SysUserLinkDeptInternalAgent(userId,deptId,new Date(),
- new BaseController().getUser().getId(),new Date(),new BaseController().getUser().getId());
- addList.add(add);
- }
- }
- this.saveBatch(addList);
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/6/26 18:54
- * @Description: 批量删除
- */
- @Override
- public void deleteByIds(List<String> ids) {
- sysUserLinkDeptInternalAgentMapper.deleteBatchIds(ids);
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/6/26 18:55
- * @Description: 分页
- */
- @Override
- public BasePageResult<SysUserLinkDeptInternalAgentDto> queryPage(SysUserLinkDeptInternalAgentQueryVo sysUserLinkDeptInternalAgentQueryVo) {
- Page<SysUserLinkPtlAgreementDto> page = new Page<>(sysUserLinkDeptInternalAgentQueryVo.getPageNum(),
- sysUserLinkDeptInternalAgentQueryVo.getPageSize());
- Page<SysUserLinkDeptInternalAgentDto> pageResult = sysUserLinkDeptInternalAgentMapper.queryPage(page, sysUserLinkDeptInternalAgentQueryVo);
- return new BasePageResult<>(sysUserLinkDeptInternalAgentQueryVo.getPageNum(), page.getSize(), pageResult.getTotal(), page.getPages(),
- pageResult.getRecords());
- }
- /**
- * 根据userid获取对象
- * @param userId
- * @return
- */
- @Override
- public SysUserLinkDeptInternalAgent getByUserId(String userId) {
- LambdaQueryWrapper<SysUserLinkDeptInternalAgent> sysUserLinkDeptInternalAgentLambdaQueryWrapper = new LambdaQueryWrapper<>();
- sysUserLinkDeptInternalAgentLambdaQueryWrapper.eq(SysUserLinkDeptInternalAgent::getUserId,userId);
- SysUserLinkDeptInternalAgent sysUserLinkDeptInternalAgent = sysUserLinkDeptInternalAgentMapper.selectOne(sysUserLinkDeptInternalAgentLambdaQueryWrapper);
- return sysUserLinkDeptInternalAgent;
- }
- @Override
- public BasePageResult<SysUserBaseVO> findUserListByPage(SysUserDto sysUserDto) {
- if(StringUtils.isBlank(sysUserDto.getDeptNBId())){
- throw new SystemException("deptNBId内部机构不能为空");
- }
- Page<SysUserBaseVO> page = new Page<>(sysUserDto.getPageNum(),
- sysUserDto.getPageSize());
- Page<SysUserBaseVO> userPageResult = sysUserLinkDeptInternalAgentMapper.findUserListByDeptPage(page, sysUserDto);
- return new BasePageResult<>(sysUserDto.getPageNum(), page.getSize(), userPageResult.getTotal(), page.getPages(),
- userPageResult.getRecords());
- }
- }
|