package com.hxzk.gps.service.impl.Department;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.github.pagehelper.Page;
|
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageInfo;
|
import com.hxzk.gps.controller.DepartMent.Results.DepartMentResult;
|
import com.hxzk.gps.controller.DepartMent.dto.DpeartMentTreeTableDto;
|
import com.hxzk.gps.controller.Person.Results.PersonResult;
|
import com.hxzk.gps.controller.System.SystemLogUtil;
|
import com.hxzk.gps.entity.Department.TbDepartment;
|
import com.hxzk.gps.entity.Person.TbPerson;
|
import com.hxzk.gps.entity.System.TbSystemOperationLog;
|
import com.hxzk.gps.mapper.Department.TbDepartmentMapper;
|
import com.hxzk.gps.service.Company.TbCompanyService;
|
import com.hxzk.gps.service.Department.TbDepartmentService;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.hxzk.gps.service.System.TbSystemOperationLogService;
|
import com.hxzk.gps.util.AuToComplete;
|
import com.hxzk.gps.util.GetUser.UserInfoUtil;
|
import com.hxzk.gps.util.MessageUtils.MessageUtils;
|
import com.hxzk.gps.util.Result.ReturnMessage;
|
import com.hxzk.gps.util.Result.TableDto;
|
|
import com.hxzk.gps.util.Time.TimeUtil;
|
import com.hxzk.gps.util.UDP.UDP_Department;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.StringUtils;
|
|
import java.util.List;
|
import java.util.Optional;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 服务实现类
|
* </p>
|
*
|
* @author YuZhiTong
|
* @since 2025-05-18
|
*/
|
@Service
|
public class TbDepartmentServiceImpl extends ServiceImpl<TbDepartmentMapper, TbDepartment> implements TbDepartmentService {
|
|
@Autowired
|
TbCompanyService companyService;
|
@Autowired
|
TbSystemOperationLogService systemOperationLogService;
|
@Override
|
public DepartMentResult FindDepartmentInfo(DpeartMentTreeTableDto departmentTreeTableDto) {
|
// 创建查询包装器
|
QueryWrapper<TbDepartment> queryWrapper = new QueryWrapper<>();
|
|
// 处理部门 ID 为空的情况
|
if (StringUtils.isEmpty(departmentTreeTableDto.getDepartmentId())) {
|
List<Long> list = companyService.getChildCompanyIds(UserInfoUtil.getUserCompanyId());
|
queryWrapper.in("companyid", list);
|
} else {
|
queryWrapper.eq("companyid", departmentTreeTableDto.getDepartmentId());
|
}
|
|
// 处理部门名称查询条件
|
Optional.ofNullable(departmentTreeTableDto.getDepartmentname()).ifPresent(departmentname ->
|
queryWrapper.like("departmentname", departmentname));
|
|
// 使用PageHelper进行分页查询
|
Page<TbDepartment> page = PageHelper.startPage(departmentTreeTableDto.getPageNum(), departmentTreeTableDto.getPageSize())
|
.doSelectPage(() -> baseMapper.selectList(queryWrapper));
|
|
// 封装部门列表
|
TableDto tableDto = new TableDto(page.getResult(), page.getPageNum(), page.getPageSize(), page.getTotal());
|
|
// 获取成功消息
|
String message = MessageUtils.getMessage("Success");
|
|
// 返回结果
|
return new DepartMentResult(200, message, tableDto);
|
}
|
|
@Override
|
public List<AuToComplete> DepartmentAutocomplete(TbDepartment department) {
|
if (department.getCompanyid().equals("")){
|
department.setCompanyid(UserInfoUtil.getUserCompanyId());
|
}
|
List<Long> companyids = companyService.getChildCompanyIds(department.getCompanyid());
|
QueryWrapper<TbDepartment> queryWrapper = new QueryWrapper<>();
|
String id = Optional.ofNullable(department.getCompanyid())
|
.filter(s -> !s.isEmpty())
|
.orElse(UserInfoUtil.getUserCompanyId());
|
queryWrapper.in("companyid",companyids);
|
List<TbDepartment> departmentList = baseMapper.selectList(queryWrapper);
|
List<AuToComplete> addCustomerList = departmentList.stream()
|
.map(departments -> {
|
AuToComplete addCustomer = new AuToComplete();
|
addCustomer.setValue(departments.getDepartmentname());
|
addCustomer.setLink(String.valueOf(departments.getId()));
|
return addCustomer;
|
})
|
.collect(Collectors.toList());
|
|
return addCustomerList;
|
}
|
|
@Override
|
public TbDepartment FindOneDepartMent(TbPerson person) {
|
QueryWrapper queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("departmentname",person.getPDepartment());
|
queryWrapper.eq("company",Optional.ofNullable(person.getCompany()).orElse(UserInfoUtil.getUserCompany()));
|
return baseMapper.selectOne(queryWrapper);
|
}
|
|
/*
|
* 新增部门
|
* @param department 部门信息
|
* @return 结果信息
|
* */
|
@Override
|
public ReturnMessage add(TbDepartment department) {
|
/*
|
声明操作状态
|
* */
|
boolean isSuccess = false;
|
department.setCompanyid(UserInfoUtil.isNullGetCompanyId(department.getCompanyid()));
|
// 检查部门是否重复
|
if (isDepartmentRepeat(department)) {
|
return ReturnMessage.ReturnMessageError("DepartmentRepeat");
|
}
|
try {
|
department.setBaoliu5(UserInfoUtil.getUserName());
|
department.setAddtime(TimeUtil.GetTime());
|
baseMapper.insert(department);
|
/*
|
* 发送指令到CS
|
* */
|
UDP_Department.AddDepartment(department);
|
isSuccess = true;
|
}catch (Exception e){
|
|
}
|
return SystemLogUtil.handleAddResult(isSuccess,"DepartmentAdd",department.getDepartmentname());
|
|
}
|
/*
|
* 修改部门
|
* @param department 部门图标信息
|
* @return 结果信息
|
* */
|
|
@Override
|
public ReturnMessage update(TbDepartment department) {
|
/*
|
声明操作状态
|
* */
|
boolean isSuccess = false;
|
// 设置公司 ID
|
department.setCompanyid(UserInfoUtil.isNullGetCompanyId(department.getCompanyid()));
|
// 检查部门是否重复
|
if (isUpDepartmentRepeat(department)) {
|
return ReturnMessage.ReturnMessageError("DepartmentRepeat");
|
}
|
try {
|
// 更新部门信息
|
QueryWrapper<TbDepartment> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("id", department.getId());
|
department.setAddtime(TimeUtil.GetTime());
|
baseMapper.update(department, queryWrapper);
|
/*
|
* 发送指令到CS
|
* */
|
UDP_Department.UpDepartment(department);
|
isSuccess = true;
|
}catch (Exception e){
|
|
}
|
return SystemLogUtil.handleUpdateResult(isSuccess,"DepartmentUpdate",department.getDepartmentname());
|
}
|
/*
|
* 删除部门
|
* @param department 部门信息
|
* @return 结果信息
|
* */
|
@Override
|
public ReturnMessage delete(TbDepartment department) {
|
/*
|
声明操作状态
|
* */
|
boolean isSuccess = false;
|
QueryWrapper queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("id",department.getId());
|
try {
|
baseMapper.delete(queryWrapper);
|
UDP_Department.DeDepartment(department);
|
isSuccess = true;
|
}catch (Exception e){
|
|
}
|
return SystemLogUtil.handleDeleteResult(isSuccess,"DepartmentDelete",department.getDepartmentname());
|
}
|
|
|
|
/**
|
* 检查部门是否重复
|
* @param department 部门信息
|
* @return 如果部门重复返回 true,否则返回 false
|
*/
|
private boolean isDepartmentRepeat(TbDepartment department) {
|
QueryWrapper<TbDepartment> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("company", department.getCompany())
|
.eq("departmentname", department.getDepartmentname());
|
return baseMapper.selectCount(queryWrapper) > 0;
|
}
|
private boolean isUpDepartmentRepeat(TbDepartment department) {
|
QueryWrapper<TbDepartment> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("company", department.getCompany())
|
.eq("departmentname", department.getDepartmentname());
|
return baseMapper.selectCount(queryWrapper) > 1;
|
}
|
}
|