HeartProcessor.java 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. package com.szwl.handle.response;
  2. import com.alibaba.fastjson.JSON;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  5. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  6. import com.szwl.constant.OperationType;
  7. import com.szwl.model.entity.MessageLog;
  8. import com.szwl.model.entity.TAlarmRecord;
  9. import com.szwl.model.entity.TEquipment;
  10. import com.szwl.model.entity.TEquipmentDesc;
  11. import com.szwl.model.jsonParm.HeartParam;
  12. import com.szwl.service.TAlarmRecordService;
  13. import com.szwl.service.TEquipmentDescService;
  14. import com.szwl.service.TEquipmentService;
  15. import org.apache.commons.lang.StringUtils;
  16. import org.springframework.stereotype.Component;
  17. import javax.annotation.Resource;
  18. import java.util.Date;
  19. @Component
  20. public class HeartProcessor implements ResponseProcessor {
  21. @Resource
  22. private TEquipmentService equipmentService;
  23. @Resource
  24. private TEquipmentDescService equipmentDescService;
  25. @Resource
  26. private TAlarmRecordService alarmRecordService;
  27. @Override
  28. public void process(MessageLog messageLog) {
  29. Integer statusCode = messageLog.getStatusCode();
  30. if (statusCode == 200) {
  31. Integer direction = messageLog.getDirection();
  32. String clientId = messageLog.getClientId();
  33. String responseContent = messageLog.getResponseContent();
  34. // 转换为对象
  35. HeartParam heartParam = JSON.parseObject(responseContent, HeartParam.class);
  36. // 查询设备
  37. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  38. query.eq(TEquipment::getClientId, clientId);
  39. TEquipment equipment = equipmentService.getOne(query);
  40. // 更新数据
  41. if (equipment != null) {
  42. equipment.setModifyDate(new Date());
  43. if (StringUtils.isNotEmpty(heartParam.getCabinetTm())) {
  44. equipment.setCabinetTm(heartParam.getCabinetTm());
  45. }
  46. if (StringUtils.isNotEmpty(heartParam.getCabinetHd())) {
  47. equipment.setCabinetHd(heartParam.getCabinetHd());
  48. }
  49. if (StringUtils.isNotEmpty(heartParam.getFurnaceSp())) {
  50. equipment.setFurnaceSp(heartParam.getFurnaceSp());
  51. }
  52. if (StringUtils.isNotEmpty(heartParam.getFurnaceTm())) {
  53. equipment.setFurnaceTm(heartParam.getFurnaceTm());
  54. }
  55. equipment.setLastUpdateTime(heartParam.getLastUpdateTime());
  56. if (heartParam.getEqeStatus() != null) {
  57. equipment.setEqeStatus(heartParam.getEqeStatus());
  58. }
  59. equipment.setIsSleep(heartParam.isSleep());
  60. if (StringUtils.isNotEmpty(heartParam.getFurnaceTm())) {
  61. int fur = Integer.parseInt(heartParam.getFurnaceTm());
  62. if (equipment.getEqeStatus() == 0 && fur > 150) {
  63. equipment.setEqeStatus(1);
  64. }
  65. if (equipment.getEqeStatus() == null) {
  66. equipment.setEqeStatus(1);
  67. }
  68. }
  69. if (StringUtils.isNotEmpty(heartParam.getVolume())) {
  70. equipment.setVolume(heartParam.getVolume());
  71. }
  72. // 是否报警
  73. if (heartParam.getIsAlarm() != null) {
  74. if (heartParam.getIsAlarm() == 1) {
  75. equipment.setIsAlarm(true);
  76. } else if (heartParam.getIsAlarm() == 0) {
  77. // 更改报警状态,并消除以往的报警记录
  78. LambdaUpdateWrapper<TAlarmRecord> wrapper = Wrappers.lambdaUpdate();
  79. wrapper.eq(TAlarmRecord::getClientId, clientId);
  80. wrapper.eq(TAlarmRecord::getIsEliminate, 0);
  81. wrapper.le(TAlarmRecord::getCreateDate, new Date());
  82. wrapper.set(TAlarmRecord::getIsEliminate, 1);
  83. alarmRecordService.update(wrapper);
  84. equipment.setIsAlarm(false);
  85. }
  86. }
  87. equipment.setGtClientId(heartParam.getGtClientId());
  88. equipment.setLatitude(heartParam.getLatitude());
  89. equipment.setLongitude(heartParam.getLongitude());
  90. equipment.setManagerId(heartParam.getManagerId());
  91. equipment.setNetWorkingMode(heartParam.getNetWorkingMode());
  92. equipment.setVolume(heartParam.getVolume());
  93. equipmentService.updateById(equipment);
  94. // 更新数据
  95. TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
  96. if (equipmentDesc != null) {
  97. if (StringUtils.isNotEmpty(heartParam.getBlueSugar())) {
  98. equipmentDesc.setBlueSugar(heartParam.getBlueSugar());
  99. }
  100. if (StringUtils.isNotEmpty(heartParam.getRedSugar())) {
  101. equipmentDesc.setRedSugar(heartParam.getRedSugar());
  102. }
  103. if (StringUtils.isNotEmpty(heartParam.getYellowSugar())) {
  104. equipmentDesc.setYellowSugar(heartParam.getYellowSugar());
  105. }
  106. if (StringUtils.isNotEmpty(heartParam.getWhiteSugar())) {
  107. equipmentDesc.setWhiteSugar(heartParam.getWhiteSugar());
  108. }
  109. if (StringUtils.isNotEmpty(heartParam.getWater())) {
  110. equipmentDesc.setWater(heartParam.getWater());
  111. }
  112. if (StringUtils.isNotEmpty(heartParam.getWasteWater())) {
  113. equipmentDesc.setWasteWater(heartParam.getWasteWater());
  114. }
  115. if (StringUtils.isNotEmpty(heartParam.getStick())) {
  116. equipmentDesc.setStick(heartParam.getStick());
  117. }
  118. // 如果是爆米花机
  119. String machineType = equipment.getMachineType();
  120. if (StringUtils.isNotEmpty(machineType) && "1".equals(machineType)) {
  121. // 爆米花机搅拌温度
  122. if (StringUtils.isNotEmpty(heartParam.getCabinetTm())) {
  123. equipmentDesc.setStirTm(heartParam.getCabinetTm());
  124. }
  125. // 爆米花机玉米发生器温度
  126. if (StringUtils.isNotEmpty(heartParam.getCabinetHd())) {
  127. equipmentDesc.setCornGeneratorTm(heartParam.getCabinetHd());
  128. }
  129. // 爆米花机杯子剩余量
  130. if (StringUtils.isNotEmpty(heartParam.getFurnaceTm())) {
  131. equipmentDesc.setCupQuantity(Long.parseLong(heartParam.getFurnaceTm()));
  132. }
  133. }
  134. // 如果是雪糕机
  135. if (StringUtils.isNotEmpty(machineType) && "2".equals(machineType)) {
  136. if (heartParam.getWorkingMode() != null) {
  137. equipmentDesc.setWorkingMode(heartParam.getWorkingMode());
  138. }
  139. }
  140. if (StringUtils.isNotEmpty(heartParam.getNumberOne())) {
  141. equipmentDesc.setNumberOne(heartParam.getNumberOne());
  142. }
  143. if (StringUtils.isNotEmpty(heartParam.getCandyGeneratorTm())) {
  144. equipmentDesc.setCandyGeneratorTm(heartParam.getCandyGeneratorTm());
  145. }
  146. if (StringUtils.isNotEmpty(heartParam.getOutsideHd())) {
  147. equipmentDesc.setOutsideHd(heartParam.getOutsideHd());
  148. }
  149. if (StringUtils.isNotEmpty(heartParam.getOutsideTm())) {
  150. equipmentDesc.setOutsideTm(heartParam.getOutsideTm());
  151. }
  152. equipmentDescService.updateById(equipmentDesc);
  153. }
  154. }
  155. }
  156. }
  157. @Override
  158. public String getSupportedOperationType() {
  159. return OperationType.HEART.getCode();
  160. }
  161. }