package com.huimv.guowei.admin.controller; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.huimv.guowei.admin.common.utils.Result; import com.huimv.guowei.admin.common.utils.ResultCode; import com.huimv.guowei.admin.entity.EnvDeviceEquipment; import com.huimv.guowei.admin.entity.EnvMoveCall; import com.huimv.guowei.admin.mqtt.moveScale.DataBack; import com.huimv.guowei.admin.mqtt.moveScale.ReceiveData; import com.huimv.guowei.admin.mqtt.moveScale.SendData; import com.huimv.guowei.admin.service.IEnvMoveCallService; import com.huimv.guowei.admin.utils.ProcessUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.io.IOException; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @CrossOrigin @RestController @RequestMapping("/send") public class TaskController { @Autowired private IEnvMoveCallService callService; @PostMapping("/play") public Result play(@RequestBody Map paramsMap) throws InterruptedException { SendData sendData = new SendData(); sendData.start(); Thread.sleep(3500); String callCode = paramsMap.get("callCode"); if (callCode.equals("865328066116350")) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("farm_id", paramsMap.get("farmId")).eq("duck_num", 1) .orderByDesc("id").last(" limit 1"); EnvMoveCall one = callService.getOne(queryWrapper); if (ObjectUtil.isEmpty(one)) { return new Result(10001, "称已失去连接,请重启电子秤!", false); } BigDecimal weight = one.getDuckWeight(); callService.remove(new QueryWrapper().eq("farm_id",paramsMap.get("farmId")).in("duck_num",1,2)); return new Result(ResultCode.SUCCESS, weight); } else { QueryWrapper queryWrapper1 = new QueryWrapper<>(); queryWrapper1.eq("farm_id", paramsMap.get("farmId")).eq("duck_num", 2) .orderByDesc("id").last(" limit 1"); EnvMoveCall one1 = callService.getOne(queryWrapper1); if (ObjectUtil.isEmpty(one1)) { return new Result(10001, "称已失去连接,请重启电子秤!", false); } BigDecimal weight = one1.getDuckWeight(); callService.remove(new QueryWrapper().eq("farm_id",paramsMap.get("farmId")).in("duck_num",1,2)); return new Result(ResultCode.SUCCESS, weight); } } @PostMapping("/update") public Result update(@RequestBody EnvDeviceEquipment envDeviceEquipment) { /* try { Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println("----这个是开始请求的时间:"+sdf.format(date)); envDeviceEquipmentService.updateById(envDeviceEquipment); EnvDeviceEquipment byId = envDeviceEquipmentService.getById(envDeviceEquipment.getId()); String deviceCode = byId.getDeviceCode(); System.out.println("设备" + deviceCode); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("device_code", deviceCode); EnvDeviceRegister one = deviceRegisterService.getOne(queryWrapper); String chipId = one.getChipId(); log.info("-------获取设备编码:" + chipId); // PublishMQTT publishMQTT = new PublishMQTT(); log.info("-----开始配置消息----"); QueryWrapper queryWrapper1 = new QueryWrapper<>(); queryWrapper1.eq("device_code", deviceCode).orderByDesc("equipment_port"); List list = envDeviceEquipmentService.list(queryWrapper1); StringBuilder deviceStatus = new StringBuilder(); for (EnvDeviceEquipment envDeviceEquipment1 : list) { deviceStatus.append(envDeviceEquipment1.getUploadStart()); } String s = deviceStatus.toString(); int i = Integer.parseInt(s, 2); JSONObject jsonObject = new JSONObject(); jsonObject.put("dev_ctrl", i); log.info("消息配置完成开始发送:" + jsonObject.toJSONString()); PublishMQTTTree publishMQTTTree = new PublishMQTTTree(); Boolean start = publishMQTTTree.start("tcp://115.238.57.190:1883", "test" + chipId, "admin", "admin", "huimv_down_" + chipId, jsonObject.toJSONString()); if (start) { Thread.sleep(2500);//线程等待3秒 EnvDeviceEquipment byId1 = envDeviceEquipmentService.getById(envDeviceEquipment.getId()); Date updateTime = byId1.getUpdateTime(); System.out.println("-----这个是修改后的时间:"+updateTime); // updateTime.setTime(updateTime.getTime()+5*1000); int i1 = updateTime.compareTo(date); if (byId1.getMark() == 1 && i1 > 0) { QueryWrapper queryWrapper2 = new QueryWrapper<>(); queryWrapper2.eq("device_code", deviceCode).orderByDesc("equipment_port"); List list1 = envDeviceEquipmentService.list(queryWrapper2); for (EnvDeviceEquipment equipment : list1) { equipment.setMark(0); envDeviceEquipmentService.updateById(equipment); } return new Result(10000, "修改成功", true); } else { if (envDeviceEquipment.getUploadStart() == 1) { envDeviceEquipment.setUploadStart(0); } else { envDeviceEquipment.setUploadStart(1); } envDeviceEquipmentService.updateById(envDeviceEquipment); return new Result(10001, "设备掉线,请等待设备重连", false); } } else { if (envDeviceEquipment.getUploadStart() == 1) { envDeviceEquipment.setUploadStart(0); } else { envDeviceEquipment.setUploadStart(1); } envDeviceEquipmentService.updateById(envDeviceEquipment); return new Result(10001, "网络连接超时,请等待5秒后重试", false); } } catch (Exception e) { System.out.println("22222222222" + e); return new Result(10001, "修改失败", false); }*/ return null; } }