package com.hxzk.gps.service.impl.Person; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.hxzk.gps.controller.Person.Results.PersonResult; import com.hxzk.gps.controller.Person.dto.PersonTreeTableDto; import com.hxzk.gps.controller.Role.Results.RoleResult; import com.hxzk.gps.entity.Log.TbLoginLog; import com.hxzk.gps.entity.Person.TbPerson; import com.hxzk.gps.entity.Role.Role; import com.hxzk.gps.entity.System.TbSystemOperationLog; import com.hxzk.gps.entity.Tag.TbTag; import com.hxzk.gps.mapper.Person.TbPersonMapper; import com.hxzk.gps.result.ListDataResult; import com.hxzk.gps.result.ResultList; import com.hxzk.gps.result.ResultTable; import com.hxzk.gps.result.table; import com.hxzk.gps.service.Company.TbCompanyService; import com.hxzk.gps.service.Person.TbPersonService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hxzk.gps.service.System.TbSystemOperationLogService; import com.hxzk.gps.service.Tag.TbTagService; 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.controller.System.SystemLogUtil; import com.hxzk.gps.util.Time.TimeUtil; import com.hxzk.gps.util.UDP.UDP_Person; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; import java.util.Optional; /** *

* 服务实现类 *

* * @author YuZhiTong * @since 2025-05-16 */ @Service public class TbPersonServiceImpl extends ServiceImpl implements TbPersonService { @Autowired TbCompanyService companyService; @Autowired public TbSystemOperationLogService systemOperationLogService; @Autowired TbPersonMapper personMapper; @Autowired TbTagService tagService; /*@ * 人员列表信息 * @param PersonTreeTableDto 人员参数信息 * @return 人员信息 */ @Override public PersonResult FindPersonInfo(PersonTreeTableDto personTreeTableDto) { // 创建查询包装器 QueryWrapper queryWrapper = new QueryWrapper<>(); // 处理部门 ID 为空的情况 if (StringUtils.isEmpty(personTreeTableDto.getDepartmentId())) { List list = companyService.getChildCompanyIds(UserInfoUtil.getUserCompanyId()); queryWrapper.in("companyid", list); } else { List list = companyService.getChildCompanyIds(personTreeTableDto.getDepartmentId()); queryWrapper.in("companyid", list); } // 处理模糊查询条件 - 使用嵌套条件 if (StringUtils.isNotEmpty(personTreeTableDto.getPTagid())) { queryWrapper.and(wrapper -> wrapper .like("p_tagid", personTreeTableDto.getPTagid()) .or() .like("p_name", personTreeTableDto.getPTagid())); } Optional.ofNullable(personTreeTableDto.getPdepartment()).ifPresent(department -> queryWrapper.like("p_department", department)); Optional.ofNullable(personTreeTableDto.getPonline()).ifPresent(online -> queryWrapper.like("p_online", online)); // 排序 queryWrapper.orderByDesc("p_tagid"); // 方式1:使用PageHelper的分页查询 Page page = PageHelper.startPage(personTreeTableDto.getPageNum(), personTreeTableDto.getPageSize()) .doSelectPage(() -> baseMapper.selectList(queryWrapper)); // 方式2:或者使用selectPage方法(如果你的baseMapper继承自PageMapper) // Page page = new Page<>(personTreeTableDto.getPageNum(), personTreeTableDto.getPageSize()); // baseMapper.selectPage(page, queryWrapper); // 封装角色列表 TableDto tableDto = new TableDto(page.getResult(), page.getPageNum(), page.getPageSize(), page.getTotal()); // 获取成功消息 String message = MessageUtils.getMessage("Success"); // 返回结果 return new PersonResult(200, message, tableDto); } @Override public PersonResult FindCarInfo(PersonTreeTableDto personTreeTableDto) { // 创建查询包装器 QueryWrapper queryWrapper = new QueryWrapper<>(); // 处理部门 ID 为空的情况 if (StringUtils.isEmpty(personTreeTableDto.getDepartmentId())) { List list = companyService.getChildCompanyIds(UserInfoUtil.getUserCompanyId()); queryWrapper.in("companyid", list); } else { List list = companyService.getChildCompanyIds(personTreeTableDto.getDepartmentId()); queryWrapper.in("companyid", list); } // 处理模糊查询条件 Optional.ofNullable(personTreeTableDto.getPName()).ifPresent(pname -> queryWrapper.like("p_name", pname)); Optional.ofNullable(personTreeTableDto.getPTagid()).ifPresent(ptagid -> queryWrapper.like("p_tagid", ptagid)); // 添加车辆标签条件 queryWrapper.and(wrapper -> wrapper.eq("baoliu19", MessageUtils.getMessage("CarTag")) .or() .eq("baoliu19", MessageUtils.getMessage("CarTag1"))); // 使用PageHelper进行分页查询 Page page = PageHelper.startPage(personTreeTableDto.getPageNum(), personTreeTableDto.getPageSize()) .doSelectPage(() -> baseMapper.selectList(queryWrapper)); // 封装角色列表 TableDto tableDto = new TableDto(page.getResult(), page.getPageNum(), page.getPageSize(), page.getTotal()); // 获取成功消息 String message = MessageUtils.getMessage("Success"); // 返回结果 - 修正构造函数参数 return new PersonResult(200, message, tableDto); } @Override public PersonResult FindMaterialsInfo(PersonTreeTableDto personTreeTableDto) { // 创建查询包装器 QueryWrapper queryWrapper = new QueryWrapper<>(); // 处理部门 ID 为空的情况 if (StringUtils.isEmpty(personTreeTableDto.getDepartmentId())) { List list = companyService.getChildCompanyIds(UserInfoUtil.getUserCompanyId()); queryWrapper.in("companyid", list); } else { List list = companyService.getChildCompanyIds(personTreeTableDto.getDepartmentId()); queryWrapper.in("companyid", list); } // 处理模糊查询条件 Optional.ofNullable(personTreeTableDto.getPName()).ifPresent(pname -> queryWrapper.like("p_name", pname)); Optional.ofNullable(personTreeTableDto.getPTagid()).ifPresent(ptagid -> queryWrapper.like("p_tagid", ptagid)); // 添加物资标签条件 queryWrapper.eq("baoliu19", MessageUtils.getMessage("MaterialsTag")); // 使用PageHelper进行分页查询 Page page = PageHelper.startPage(personTreeTableDto.getPageNum(), personTreeTableDto.getPageSize()) .doSelectPage(() -> baseMapper.selectList(queryWrapper)); // 封装角色列表 TableDto tableDto = new TableDto(page.getResult(), page.getPageNum(), page.getPageSize(), page.getTotal()); // 获取成功消息 String message = MessageUtils.getMessage("Success"); // 返回结果 - 修正构造函数参数 return new PersonResult(200, message, tableDto); } @Override public ResultList PersonPosition() { List list = companyService.getChildCompanyIds(UserInfoUtil.getUserCompanyId()); list.add(Long.valueOf(UserInfoUtil.getUserCompanyId())); List info = personMapper.PersonPosition(list); return ListDataResult.resultListSuccess(info,MessageUtils.getMessage("Success")); } @Override public ResultList RealPosition() { List list = companyService.getChildCompanyIds(UserInfoUtil.getUserCompanyId()); list.add(Long.valueOf(UserInfoUtil.getUserCompanyId())); List info = personMapper.RealPosition(list); return ListDataResult.resultListSuccess(info,MessageUtils.getMessage("Success")); } @Override public ResultList RealPosition2D() { List list = companyService.getChildCompanyIds(UserInfoUtil.getUserCompanyId()); list.add(Long.valueOf(UserInfoUtil.getUserCompanyId())); List info = personMapper.RealPosition2D(list); return ListDataResult.resultListSuccess(info,MessageUtils.getMessage("Success")); } @Override public ReturnMessage add(TbPerson person) { /* 声明操作状态 * */ boolean isSuccess = false; QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("p_tagid",person.getPTagid()); try { person.setPAddtiem(TimeUtil.GetTime()); baseMapper.update(person,queryWrapper); UpdateTagCompany(person); /* 发送指令到CS * */ UDP_Person.UpPersonToCs(person); isSuccess = true; }catch (Exception e){ } return SystemLogUtil.handleUpdateResult(isSuccess,"PersonAdd",person.getPTagid()); } @Override public ReturnMessage update(TbPerson person) { /* 声明操作状态 * */ boolean isSuccess = false; if(person.getPTagid().contains(",")){ String TagList =person.getPTagid(); for (int i = 0; i (); queryWrapper.eq("p_tagid",TagList.split(",")[i]); try { person.setPTagid(TagList.split(",")[i]); person.setPAddtiem(TimeUtil.GetTime()); baseMapper.update(person,queryWrapper); UpdateTagCompany(person); /* 发送指令到CS * */ UDP_Person.UpPersonToCs(person); isSuccess = true; }catch (Exception e){ } } return SystemLogUtil.handleUpdateResult(isSuccess,"PersonUpdate",TagList); }else{ // QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("p_tagid",person.getPTagid()); try { person.setPAddtiem(TimeUtil.GetTime()); baseMapper.update(person,queryWrapper); UpdateTagCompany(person); /* 发送指令到CS * */ UDP_Person.UpPersonToCs(person); isSuccess = true; }catch (Exception e){ } } return SystemLogUtil.handleUpdateResult(isSuccess,"PersonUpdate",person.getPTagid()); } @Override public ReturnMessage delete(TbPerson person) { /* 声明操作状态 * */ boolean isSuccess = false; QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("p_tagid",person.getPTagid()); try { baseMapper.delete(queryWrapper); /* 发送指令到CS * */ UDP_Person.DePersonToCs(person); isSuccess = true; }catch (Exception e){ } return SystemLogUtil.handleDeleteResult(isSuccess,"PersonDelete",person.getPTagid()); } /* * 修改设备所属公司 * */ private void UpdateTagCompany(TbPerson person) { QueryWrapper queryWrapperTag = new QueryWrapper<>(); queryWrapperTag.eq("tag_id", person.getPTagid()); TbTag tag = new TbTag(); tag.setCompany(person.getCompany()); tag.setTagId(person.getPTagid()); tagService.getBaseMapper().update(tag, queryWrapperTag); } }