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;
|
|
/**
|
* <p>
|
* 服务实现类
|
* </p>
|
*
|
* @author YuZhiTong
|
* @since 2025-05-16
|
*/
|
@Service
|
public class TbPersonServiceImpl extends ServiceImpl<TbPersonMapper, TbPerson> 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<TbPerson> queryWrapper = new QueryWrapper<>();
|
|
// 处理部门 ID 为空的情况
|
if (StringUtils.isEmpty(personTreeTableDto.getDepartmentId())) {
|
List<Long> list = companyService.getChildCompanyIds(UserInfoUtil.getUserCompanyId());
|
queryWrapper.in("companyid", list);
|
} else {
|
List<Long> 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<TbPerson> page = PageHelper.startPage(personTreeTableDto.getPageNum(), personTreeTableDto.getPageSize())
|
.doSelectPage(() -> baseMapper.selectList(queryWrapper));
|
|
// 方式2:或者使用selectPage方法(如果你的baseMapper继承自PageMapper)
|
// Page<TbPerson> 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<TbPerson> queryWrapper = new QueryWrapper<>();
|
|
// 处理部门 ID 为空的情况
|
if (StringUtils.isEmpty(personTreeTableDto.getDepartmentId())) {
|
List<Long> list = companyService.getChildCompanyIds(UserInfoUtil.getUserCompanyId());
|
queryWrapper.in("companyid", list);
|
} else {
|
List<Long> 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<TbPerson> 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<TbPerson> queryWrapper = new QueryWrapper<>();
|
|
// 处理部门 ID 为空的情况
|
if (StringUtils.isEmpty(personTreeTableDto.getDepartmentId())) {
|
List<Long> list = companyService.getChildCompanyIds(UserInfoUtil.getUserCompanyId());
|
queryWrapper.in("companyid", list);
|
} else {
|
List<Long> 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<TbPerson> 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<Long> list = companyService.getChildCompanyIds(UserInfoUtil.getUserCompanyId());
|
list.add(Long.valueOf(UserInfoUtil.getUserCompanyId()));
|
List<TbPerson> info = personMapper.PersonPosition(list);
|
return ListDataResult.resultListSuccess(info,MessageUtils.getMessage("Success"));
|
}
|
|
@Override
|
public ResultList RealPosition() {
|
List<Long> list = companyService.getChildCompanyIds(UserInfoUtil.getUserCompanyId());
|
list.add(Long.valueOf(UserInfoUtil.getUserCompanyId()));
|
List<TbPerson> info = personMapper.RealPosition(list);
|
return ListDataResult.resultListSuccess(info,MessageUtils.getMessage("Success"));
|
}
|
|
@Override
|
public ResultList RealPosition2D() {
|
List<Long> list = companyService.getChildCompanyIds(UserInfoUtil.getUserCompanyId());
|
list.add(Long.valueOf(UserInfoUtil.getUserCompanyId()));
|
List<TbPerson> 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 <TagList.split(",").length; i++){
|
QueryWrapper queryWrapper = new QueryWrapper<>();
|
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);
|
}
|
}
|