TaskController.java 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. package com.huimv.guowei.admin.controller;
  2. import cn.hutool.core.util.ObjectUtil;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5. import com.huimv.guowei.admin.common.utils.Result;
  6. import com.huimv.guowei.admin.common.utils.ResultCode;
  7. import com.huimv.guowei.admin.entity.EnvDeviceEquipment;
  8. import com.huimv.guowei.admin.entity.EnvMoveCall;
  9. import com.huimv.guowei.admin.mqtt.moveScale.DataBack;
  10. import com.huimv.guowei.admin.mqtt.moveScale.ReceiveData;
  11. import com.huimv.guowei.admin.mqtt.moveScale.SendData;
  12. import com.huimv.guowei.admin.service.IEnvMoveCallService;
  13. import com.huimv.guowei.admin.utils.ProcessUtil;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.web.bind.annotation.*;
  16. import java.io.IOException;
  17. import java.math.BigDecimal;
  18. import java.text.SimpleDateFormat;
  19. import java.util.ArrayList;
  20. import java.util.Date;
  21. import java.util.List;
  22. import java.util.Map;
  23. @CrossOrigin
  24. @RestController
  25. @RequestMapping("/send")
  26. public class TaskController {
  27. @Autowired
  28. private IEnvMoveCallService callService;
  29. @PostMapping("/play")
  30. public Result play(@RequestBody Map<String, String> paramsMap) throws InterruptedException {
  31. SendData sendData = new SendData();
  32. sendData.start();
  33. Thread.sleep(3500);
  34. String callCode = paramsMap.get("callCode");
  35. if (callCode.equals("865328066116350")) {
  36. QueryWrapper<EnvMoveCall> queryWrapper = new QueryWrapper<>();
  37. queryWrapper.eq("farm_id", paramsMap.get("farmId")).eq("duck_num", 1)
  38. .orderByDesc("id").last(" limit 1");
  39. EnvMoveCall one = callService.getOne(queryWrapper);
  40. if (ObjectUtil.isEmpty(one)) {
  41. return new Result(10001, "称已失去连接,请重启电子秤!", false);
  42. }
  43. BigDecimal weight = one.getDuckWeight();
  44. callService.remove(new QueryWrapper<EnvMoveCall>().eq("farm_id",paramsMap.get("farmId")).in("duck_num",1,2));
  45. return new Result(ResultCode.SUCCESS, weight);
  46. } else {
  47. QueryWrapper<EnvMoveCall> queryWrapper1 = new QueryWrapper<>();
  48. queryWrapper1.eq("farm_id", paramsMap.get("farmId")).eq("duck_num", 2)
  49. .orderByDesc("id").last(" limit 1");
  50. EnvMoveCall one1 = callService.getOne(queryWrapper1);
  51. if (ObjectUtil.isEmpty(one1)) {
  52. return new Result(10001, "称已失去连接,请重启电子秤!", false);
  53. }
  54. BigDecimal weight = one1.getDuckWeight();
  55. callService.remove(new QueryWrapper<EnvMoveCall>().eq("farm_id",paramsMap.get("farmId")).in("duck_num",1,2));
  56. return new Result(ResultCode.SUCCESS, weight);
  57. }
  58. }
  59. @PostMapping("/update")
  60. public Result update(@RequestBody EnvDeviceEquipment envDeviceEquipment) {
  61. /* try {
  62. Date date = new Date();
  63. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  64. System.out.println("----这个是开始请求的时间:"+sdf.format(date));
  65. envDeviceEquipmentService.updateById(envDeviceEquipment);
  66. EnvDeviceEquipment byId = envDeviceEquipmentService.getById(envDeviceEquipment.getId());
  67. String deviceCode = byId.getDeviceCode();
  68. System.out.println("设备" + deviceCode);
  69. QueryWrapper<EnvDeviceRegister> queryWrapper = new QueryWrapper<>();
  70. queryWrapper.eq("device_code", deviceCode);
  71. EnvDeviceRegister one = deviceRegisterService.getOne(queryWrapper);
  72. String chipId = one.getChipId();
  73. log.info("-------获取设备编码:" + chipId);
  74. // PublishMQTT publishMQTT = new PublishMQTT();
  75. log.info("-----开始配置消息----");
  76. QueryWrapper<EnvDeviceEquipment> queryWrapper1 = new QueryWrapper<>();
  77. queryWrapper1.eq("device_code", deviceCode).orderByDesc("equipment_port");
  78. List<EnvDeviceEquipment> list = envDeviceEquipmentService.list(queryWrapper1);
  79. StringBuilder deviceStatus = new StringBuilder();
  80. for (EnvDeviceEquipment envDeviceEquipment1 : list) {
  81. deviceStatus.append(envDeviceEquipment1.getUploadStart());
  82. }
  83. String s = deviceStatus.toString();
  84. int i = Integer.parseInt(s, 2);
  85. JSONObject jsonObject = new JSONObject();
  86. jsonObject.put("dev_ctrl", i);
  87. log.info("消息配置完成开始发送:" + jsonObject.toJSONString());
  88. PublishMQTTTree publishMQTTTree = new PublishMQTTTree();
  89. Boolean start = publishMQTTTree.start("tcp://115.238.57.190:1883", "test" + chipId, "admin", "admin", "huimv_down_" + chipId, jsonObject.toJSONString());
  90. if (start) {
  91. Thread.sleep(2500);//线程等待3秒
  92. EnvDeviceEquipment byId1 = envDeviceEquipmentService.getById(envDeviceEquipment.getId());
  93. Date updateTime = byId1.getUpdateTime();
  94. System.out.println("-----这个是修改后的时间:"+updateTime);
  95. // updateTime.setTime(updateTime.getTime()+5*1000);
  96. int i1 = updateTime.compareTo(date);
  97. if (byId1.getMark() == 1 && i1 > 0) {
  98. QueryWrapper<EnvDeviceEquipment> queryWrapper2 = new QueryWrapper<>();
  99. queryWrapper2.eq("device_code", deviceCode).orderByDesc("equipment_port");
  100. List<EnvDeviceEquipment> list1 = envDeviceEquipmentService.list(queryWrapper2);
  101. for (EnvDeviceEquipment equipment : list1) {
  102. equipment.setMark(0);
  103. envDeviceEquipmentService.updateById(equipment);
  104. }
  105. return new Result(10000, "修改成功", true);
  106. } else {
  107. if (envDeviceEquipment.getUploadStart() == 1) {
  108. envDeviceEquipment.setUploadStart(0);
  109. } else {
  110. envDeviceEquipment.setUploadStart(1);
  111. }
  112. envDeviceEquipmentService.updateById(envDeviceEquipment);
  113. return new Result(10001, "设备掉线,请等待设备重连", false);
  114. }
  115. } else {
  116. if (envDeviceEquipment.getUploadStart() == 1) {
  117. envDeviceEquipment.setUploadStart(0);
  118. } else {
  119. envDeviceEquipment.setUploadStart(1);
  120. }
  121. envDeviceEquipmentService.updateById(envDeviceEquipment);
  122. return new Result(10001, "网络连接超时,请等待5秒后重试", false);
  123. }
  124. } catch (Exception e) {
  125. System.out.println("22222222222" + e);
  126. return new Result(10001, "修改失败", false);
  127. }*/
  128. return null;
  129. }
  130. }