package com.hxzk.gps.service.impl.Fence;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hxzk.gps.controller.Fence.dto.TableSearchResult.TableSearchResult;
import com.hxzk.gps.controller.System.SystemLogUtil;
import com.hxzk.gps.entity.Fence.TbFence;
import com.hxzk.gps.entity.FzRadar.TbFzanchor;
import com.hxzk.gps.mapper.Fence.TbFenceMapper;
import com.hxzk.gps.result.ListDataResult;
import com.hxzk.gps.result.ResultTable;
import com.hxzk.gps.result.table;
import com.hxzk.gps.service.Fence.TbFenceService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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.UDP.UDP_Fence;
import com.hxzk.gps.util.UDP.UDP_FzAnchor;
import org.springframework.stereotype.Service;
import java.util.Optional;
/**
*
* 服务实现类
*
*
* @author YuZhiTong
* @since 2025-05-22
*/
@Service
public class TbFenceServiceImpl extends ServiceImpl implements TbFenceService {
@Override
public ResultTable FindFenceInfo(TableSearchResult TableSearchResult) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("company", UserInfoUtil.getUserCompany());
Optional.ofNullable(TableSearchResult.getFence().getName()).ifPresent(name -> queryWrapper.like("name", name));
PageHelper.startPage(TableSearchResult.getTableList().getPageNum(),TableSearchResult.getTableList().getPageSize());
PageInfo info = new PageInfo<>(baseMapper.selectList(queryWrapper));
table achortable = new table<>(info.getList(),TableSearchResult.getTableList().getPageNum(),TableSearchResult.getTableList().getPageSize(),info.getTotal());
return ListDataResult.resultTableSuccess(achortable, MessageUtils.getMessage("Success"));
}
@Override
public ReturnMessage add(TbFence fence) {
/*
声明操作状态
* */
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name",fence.getName());
if (baseMapper.selectCount(queryWrapper) > 0){
return ReturnMessage.ReturnMessageError("FenceNameRepeat");
}
boolean isSuccess = false;
try {
/*
发送指令到CS
* */
UDP_Fence.AddFence(fence);
isSuccess = true;
//单独修改围栏颜色
Thread.sleep(1000);
TbFence fenceColor = new TbFence();
fenceColor.setBaoliu14(fence.getBaoliu14());
baseMapper.update(fenceColor,queryWrapper);
}catch (Exception e){
}
return SystemLogUtil.handleAddResult(isSuccess,"FenceAdd",fence.getName());
}
@Override
public ReturnMessage delete(TbFence fence) {
/*
声明操作状态
* */
boolean isSuccess = false;
try {
/*
发送指令到CS
* */
UDP_Fence.DeFence(fence);
isSuccess = true;
}catch (Exception e){
}
return SystemLogUtil.handleDeleteResult(isSuccess,"FenceDelete",fence.getName());
}
}