package com.hxzkappboot.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hxzkappboot.mapper.TbFenceMapper;
import com.hxzkappboot.pojo.TbFence;
import com.hxzkappboot.service.TbFenceService;
import com.hxzkappboot.udp.Udp_Out;
import com.hxzkappboot.util.R;
import com.hxzkappboot.util.StatusCode;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
*
* 前端控制器
*
*
* @author wangfei
* @since 2024-03-08
*/
@RestController
//@RequestMapping("/tb-fence")
public class TbFenceController {
@Autowired
TbFenceService tbFenceService;
@Autowired
TbFenceMapper tbPersonMapper;
@GetMapping("/api/wx/findAllFence")
public R findAllFence(String company,String juese) {
R response;
response = new R(StatusCode.Success);
response.setData(tbFenceService.findAllFence(company,juese));
return response;
}
// @PostMapping({"findFenA"})
@GetMapping({"/api/wx/deleFence"})
public R earlyWarning(String name) throws ParseException {
String xieyi = "BSTOCS1,DELETEFENCE," + name + ",END";
Udp_Out.udp_to_cs(xieyi);
R response;
// List fenceList = new ArrayList();
System.out.println(name);
// fenceList = tbFenceService.earlyWarning();
response = new R(StatusCode.Success);
// response.setData(fenceList);
return response;
}
@GetMapping("/api/wx/findFence")
public R findAll(Page page, String objectid, String company,String juese) {
R response;
IPage ipage = tbFenceService.findFence(page, objectid, company,juese);
response = new R(StatusCode.Success);
response.setData(ipage);
return response;
}
@PostMapping("/api/wx/updateFence")
public R processingWarn(@Valid @RequestBody TbFence tbFence) {
R response;
response = new R(StatusCode.Success);
if (Objects.equals(tbFence.getFencetype(), "变电作业")){
tbFence.setFencetype("0");
}else if (Objects.equals(tbFence.getFencetype(), "输电作业")){
tbFence.setFencetype("1");
}
TbFence gpsList = tbFenceService.updateFence(tbFence);
response.setData(gpsList);
return response;
}
@GetMapping("/api/wx/FenceKaiQi")
public R fenceKai(TbFence fence) {
// TbUser user = sessionManager.getCurrentUser(request);
R response;
response = new R(StatusCode.Success);
fence.setIsplay("1");
TbFence gpsList = tbFenceService.updateFence(fence);
response.setData(gpsList);
return response;
// String content = "开启了一个围栏该围栏名称为:"+fence.getName();
// String contentew = "Открывается забор, который называется:"+fence.getName();
// SystemLogController.InsertSystemLog(user.getUsername(),gettime(),content,contentew);
}
@GetMapping("/api/wx/FenceGuanBi")
public R fenceGuan(TbFence fence) {
// TbUser user = sessionManager.getCurrentUser(request);
R response;
response = new R(StatusCode.Success);
fence.setIsplay("0");
TbFence gpsList = tbFenceService.updateFence(fence);
response.setData(gpsList);
return response;
// String content = "关闭了一个围栏该围栏名称为:"+fence.getName();
// String contentew= "Закрыли забор, который называется:"+fence.getName();
// SystemLogController.InsertSystemLog(user.getUsername(),gettime(),content,contentew);
}
@GetMapping("/api/wx/startorstop")
public void startorstop(String status,String company,String addperson) {
String time = this.gettime();
String xieyi = "BSTOCS1,WORK," + status +","+ time+","+company+ ","+addperson+",END";
Udp_Out.udp_to_cs(xieyi);
}
public static double ublox_d2dm(double deg) {
double deg0 = Math.floor(deg);
double ddeg = deg - deg0;
double m = ddeg * 60;
double ddmm = deg0 * 100 + m;
return ddmm;
}
public TbFence findfence(String name) {
QueryWrapper queryWrapper1 = new QueryWrapper<>();
// queryWrapper.eq("status","未处理");
// if (objectid!=null){
queryWrapper1.eq("name", name);
// }
// queryWrapper.orderByDesc("addtime");
TbFence CompanyPage1 = tbPersonMapper.selectOne(queryWrapper1);
if (CompanyPage1 == null) {
this.findfence(name);
} else {
TbFence gpsList = tbFenceService.updateFence(CompanyPage1);
}
return CompanyPage1;
}
//国电天元定制
@PostMapping("/api/wx/submitper")
public R gdtysubmitper(@Valid @RequestBody TbFence tbFence) {
R response;
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", tbFence.getName());
List CompanyPage = tbPersonMapper.selectList(queryWrapper);
if (CompanyPage.size() > 0) {
response = new R(StatusCode.Fail);
response.setData("围栏名称重复,保存围栏失败!");
} else {
String time = this.gettime();
response = new R(StatusCode.Success);
String xieyi = "";
Integer tftype = 0;
if (Objects.equals(tbFence.getFencetype(), "变电作业")){
tftype = 0;
}else if (Objects.equals(tbFence.getFencetype(), "输电作业")){
tftype = 1;
}
xieyi = "BSTOCS1,FENCE,ADD," + tbFence.getName() + "," + tbFence.getDepartment() + "," + tbFence.getType() + "," + tbFence.getDistance() + "," + tbFence.getNowarnmes() + "," + tbFence.getWarnmes() + "," + tbFence.getPoints() + "," +
tbFence.getFenceFloorHe() + "," + tbFence.getHeight() + "," + tbFence.getLineHeight() + "," + tbFence.getDianya() + "," + tftype + "," + tbFence.getCompany() + "," +
tbFence.getAddperson() + "," + tbFence.getPerCompany() + "," + tbFence.getIsplay() + "," + time + ",END";
System.out.println(xieyi);
Udp_Out.udp_to_cs(xieyi);
QueryWrapper queryWrapper1 = new QueryWrapper<>();
// queryWrapper.eq("status","未处理");
// if (objectid!=null){
queryWrapper1.eq("name", tbFence.getName());
// 给cs传值延时一秒修改修改cs保存的内容
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
// logUtil.error("线程中断"+e.getMessage());
}
QueryWrapper queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("name", tbFence.getName());
List fences = tbPersonMapper.selectList(queryWrapper2);
response.setData(fences);
// queryWrapper.orderByDesc("addtime");
// TbFence CompanyPage1 = tbPersonMapper.selectOne(queryWrapper1);
// CompanyPage1.setCompany(tbFence.getCompany());
// CompanyPage1.setBaoliu1(tbFence.getBaoliu1());
// if (CompanyPage1==null){
// this.findfence(name);
// }else{
// TbFence gpsList = tbFenceService.updateFence(CompanyPage1);
// }
//
// this.findfence(tbFence.getName());
}
//保存数据到cs的格式
// TbPerson gpsList =personService.submitper(tbPerson);
// response.setData(gpsList);
// String xieyi = "BSTOCS1,TOMESSAGE," + people1.get(0).getPTagid() + "," + fenceList.get(i).getYjcontent() + ",系统,END";
// Udp_Out.udp_to_cs(xieyi);
return response;
}
public String gettime(){
Date now = new Date();
// 创建日期格式化对象,设置格式为 "yyyy-MM-dd HH:mm"
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
// 格式化日期对象,输出字符串结果
String formattedDate = sdf.format(now);
return formattedDate;
}
}