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.TbPersonMapper;
import com.hxzkappboot.pojo.*;
import com.hxzkappboot.service.TbMarsHomesetService;
import com.hxzkappboot.service.TbPersonService;
import com.hxzkappboot.udp.Udp_Out;
import com.hxzkappboot.util.R;
import com.hxzkappboot.util.StatusCode;
import com.hxzkappboot.util.WechatLoginRequestDTO;
import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
import com.tencentcloudapi.sms.v20210111.SmsClient;
import com.tencentcloudapi.sms.v20210111.models.SendSmsRequest;
import com.tencentcloudapi.sms.v20210111.models.SendSmsResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
*
* 前端控制器
*
*
* @author wangfei
* @since 2024-03-08
*/
@RestController
//@Component
//@RequestMapping("/")
public class TbPersonController {
@Autowired
TbPersonService personService;
@Autowired
TbMarsHomesetService tbMarsHomesetService;
@Autowired
TbPersonMapper tbPersonMapper;
@GetMapping("/api/wx/findPerson")
public R findIdPerson(String name,String company) {
R response;
String output = name.toUpperCase();//将小写字母转成大写字母
if (personService.findIdPerson(output,company) != null) {
response = new R(StatusCode.Success);
// String token = wechatService.getToken(loginRequest);
// tbUser1.setToken(token);
response.setData(personService.findIdPerson(output,company));
// return personService.findIdPerson(name);
} else {
response = new R(StatusCode.Fail);
response.setCode(-1);
response.setMsg("未搜索到数据!");
}
return response;
}
@GetMapping("/api/wx/findtixing")
public R findtixing(String company,String juese) {
R response;
// String output = name.toUpperCase();//将小写字母转成大写字母
List people = personService.findtixing(company,juese);
if (!people.isEmpty()) {
response = new R(StatusCode.Success);
// String token = wechatService.getToken(loginRequest);
// tbUser1.setToken(token);
response.setData(people);
// return personService.findIdPerson(name);
} else {
response = new R(StatusCode.Fail);
response.setCode(-1);
response.setMsg("未搜索到数据!");
}
return response;
}
@GetMapping("/api/wx/findbisuo")
public R findbisuo(String company,String juese) {
R response;
// String output = name.toUpperCase();//将小写字母转成大写字母
List people = personService.findbisuo(company,juese);
if (!people.isEmpty()) {
response = new R(StatusCode.Success);
// String token = wechatService.getToken(loginRequest);
// tbUser1.setToken(token);
response.setData(people);
// return personService.findIdPerson(name);
} else {
response = new R(StatusCode.Fail);
response.setCode(-1);
response.setMsg("未搜索到数据!");
}
return response;
}
@GetMapping("/api/wx/findtagid")
public R findtagid(String company,String juese) {
R response;
// String output = name.toUpperCase();//将小写字母转成大写字母
List people = personService.findtagid(company,juese);
if (!people.isEmpty()) {
response = new R(StatusCode.Success);
// String token = wechatService.getToken(loginRequest);
// tbUser1.setToken(token);
response.setData(people);
// return personService.findIdPerson(name);
} else {
response = new R(StatusCode.Fail);
response.setCode(-1);
response.setMsg("未搜索到数据!");
}
return response;
}
@GetMapping("/api/wx/acquisition")
public R acquisition(String baoliu3,String company,String juese) {
R response;
String output = baoliu3.toUpperCase();//将小写字母转成大写字母
TbPerson tbPerson = personService.acquisition(output,company,juese);
if (tbPerson != null) {
if (Objects.equals(tbPerson.getGpsstatus(), "4") && Objects.equals(tbPerson.getOnline(), "1")) {
response = new R(StatusCode.Success);
response.setData(tbPerson);
} else {
response = new R(StatusCode.Fail);
response.setCode(-1);
response.setMsg("设备非高精或离线!");
}
} else {
response = new R(StatusCode.Fail);
response.setCode(-1);
response.setMsg("未搜索到数据!");
}
return response;
}
// submit
@PostMapping("/api/wx/MarsHome")
public R MarsHome(HttpServletRequest request) {
R response;
response = new R(StatusCode.Success);
List gpsList = tbMarsHomesetService.MarsHome();
response.setData(gpsList);
return response;
}
@GetMapping("/api/wx/getGPSCesium")
public R getGPSCesium( String company,String juese) {
R response;
response = new R(StatusCode.Success);
List gpsList = personService.getGPSCesium(company,juese);
response.setData(gpsList);
return response;
}
@PostMapping("/api/wx/updateTagApi")
public R upTag(@Valid @RequestBody PersonRequestDTO personRequestDTO) throws IOException {
if (Objects.equals(personRequestDTO.getType(), "随机卡")) {
TbPerson tbPerson = personService.upTag();
// TbPerson person = new TbPerson();
if (tbPerson==null){
// tagId = "b001";
personRequestDTO.setTagId("F001");
// personRequestDTO.setPTagid("b001");
}else{
String pTagid = tbPerson.getTagid();
String[] parts = pTagid.split("F");
String numberStr = parts[1];
int number = Integer.parseInt(numberStr);
int incrementedNumber = number + 1;
String newNumberStr = String.format("%03d", incrementedNumber);
String newTagid = "F" + newNumberStr;
personRequestDTO.setTagId(newTagid);
}
}
R response;
String xieyi = "BSTOCS1,ADDTAG," + personRequestDTO.getTagId() + "," + personRequestDTO.getName() + ",150,10000,1,系统默认,END";
String xieyi1 = "BSTOCS1,PERSONALTER," + personRequestDTO.getTagId() + ","+ personRequestDTO.getName() + ",男,系统默认,END";
// Udp_Out.udp_to_cs(xieyi1);
if (personRequestDTO.getTagId() == null || personRequestDTO.getType() == null) {
response = new R(StatusCode.Fail);
return response;
}
Udp_Out.udp_to_cs(xieyi);
Udp_Out.udp_to_cs(xieyi1);
try {
Thread.sleep(1000);
}catch (InterruptedException e){
Thread.currentThread().interrupt();
// logUtil.error("线程中断"+e.getMessage());
}
TbPerson tbPerson = personService.upperson(personRequestDTO.getTagId(),personRequestDTO.getBaoliu38(),personRequestDTO.getPhone());
// String content = "通过接口修改了标签信息,该标签为:"+tag.getTagId();
// String contentew = "Удалить метку через интерфейс:"+tag.getTagId();
// SystemLogController.InsertSystemLog("通过接口", gettime(),content,contentew);
response = new R(StatusCode.Success);
response.setData(tbPerson);
return response;
// return resultutil.returnSuccess("success",tag.getTagId());
}
@GetMapping("/api/wx/getGPS")
public R getGPS(String company,String juese) {
R response;
response = new R(StatusCode.Success);
List gpsList = personService.getGps(company,juese);
response.setData(gpsList);
return response;
}
@GetMapping("/api/wx/findTag")
public R findAll(Page page, String objectid,String company,String juese) {
R response;
IPage ipage = personService.findAll(page,objectid,company,juese);
response = new R(StatusCode.Success);
response.setData(ipage);
response.setOnline(personService.findonline(company,juese));
response.setOffline(personService.findoffline(company,juese));
return response;
}
@GetMapping("/api/wx/findtagIdPerson")
public R findtagIdPerson(String id,String company,String juese){
R response;
response = new R(StatusCode.Success);
response.setData(personService.findtagidPerson(id,company,juese));
return response;
}
@PostMapping("/api/wx/updateper")
public void updateper(@Valid @RequestBody TbPerson tbPerson) {
String time = this.gettime();
// BSTOCS1,WARNING,DELETE,warningId,delPerson,perCompany,time,END
String xieyi = "BSTOCS1,PERSON,ALTER," + tbPerson.getTagid() +","+ tbPerson.getPersonname() +","+ tbPerson.getBaoliu1() +","+ tbPerson.getType() +","+ tbPerson.getDepartment() +","+ tbPerson.getCompany() +","+ tbPerson.getAlterPerson() +","+ tbPerson.getPerCompany()+","+ time+","+ tbPerson.getMestagid()+ ",END";
Udp_Out.udp_to_cs(xieyi);
}
@PostMapping("/api/wx/saveper")
public void saveper(@Valid @RequestBody TbPerson tbPerson) {
String time = this.gettime();
// BSTOCS1,WARNING,DELETE,warningId,delPerson,perCompany,time,END
String xieyi = "BSTOCS1,PERSON,ADD," + tbPerson.getTagid() +","+ tbPerson.getPersonname() +","+tbPerson.getBaoliu1() +","+ tbPerson.getType() +","+ tbPerson.getDepartment() +","+ tbPerson.getCompany() +","+ tbPerson.getAlterPerson() +","+ tbPerson.getPerCompany()+","+ time+","+ tbPerson.getMestagid()+","+tbPerson.getEncryption()+ ",END";
Udp_Out.udp_to_cs(xieyi);
// try {
// Thread.sleep(1000);
//
// } catch (InterruptedException e) {
// Thread.currentThread().interrupt();
//// logUtil.error("线程中断"+e.getMessage());
// }
// QueryWrapper queryWrapper2 = new QueryWrapper<>();
// queryWrapper2.eq("tagid", tbPerson.getTagid());
// 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{
// int gpsList = tbPersonMapper.update(tbPerson,queryWrapper2);
// }
}
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;
}
}