Sfoglia il codice sorgente

feat:"物料监控开关使用MQTT"

soobin 1 mese fa
parent
commit
555488807a

+ 2 - 1
src/main/java/com/szwl/constant/OperationType.java

@@ -21,7 +21,8 @@ public enum OperationType implements IEnum<String> {
     OPEN_PAY_INFO("openPayInfo", "东南亚支付配置"),
     UPDATE_APK("updateApk", "推送APP自动更新"),
     ALARM_RECORD("alarmRecord", "上传报警记录"),
-    ELIMINATE("eliminate","消除屏幕报警");
+    ELIMINATE("eliminate","消除屏幕报警"),
+    MATERIAL("material","物料监控开关"),;
 
     private String code;
 

+ 16 - 0
src/main/java/com/szwl/controller/TEquipmentController.java

@@ -2126,6 +2126,22 @@ public class TEquipmentController {
         return R.ok();
     }
 
+    @ApiOperation("物料监控开关")
+    @PostMapping("/material")
+    public ResponseModel<?> material(@RequestBody TEquipmentDesc equipmentDesc){
+        UserDetailBO userDetailBO = Optional.ofNullable(tokenManager.getLoginUserDetails())
+                .orElseThrow(() -> new BizException(ResponseCodesEnum.L0001));
+        Long adminId = userDetailBO.getId();
+        TEquipmentDesc desc = equipmentDescService.getById(equipmentDesc.getEquipmentId());
+        if (desc != null) {
+            TEquipment equipment = tEquipmentService.getById(equipmentDesc.getEquipmentId());
+            String status = equipmentDesc.getIsMaterialUse();
+            String message = PushUtils.buildJson(OperationType.MATERIAL.getCode(), status).toString();
+            tEquipmentService.sendRemoteMessage(equipment.getClientId(), OperationType.MATERIAL, message, adminId);
+        }
+        return R.ok();
+    }
+
 
     /**
      * 上传日志

+ 48 - 0
src/main/java/com/szwl/handle/response/MaterialProcessor.java

@@ -0,0 +1,48 @@
+package com.szwl.handle.response;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.szwl.constant.OperationType;
+import com.szwl.model.entity.MessageLog;
+import com.szwl.model.entity.TEquipment;
+import com.szwl.model.entity.TEquipmentDesc;
+import com.szwl.service.TEquipmentDescService;
+import com.szwl.service.TEquipmentService;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+@Component
+public class MaterialProcessor implements ResponseProcessor{
+
+    @Resource
+    private TEquipmentService tEquipmentService;
+
+    @Resource
+    private TEquipmentDescService tEquipmentDescService;
+    @Override
+    public void process(MessageLog messageLog) {
+        Integer statusCode = messageLog.getStatusCode();
+        if (statusCode == 200) {
+            Integer direction = messageLog.getDirection();
+            String clientId = messageLog.getClientId();
+            String responseContent = messageLog.getResponseContent();
+
+            LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
+            query.eq(TEquipment::getClientId, clientId);
+            TEquipment tEquipment = tEquipmentService.getOne(query);
+            if (tEquipment != null) {
+                TEquipmentDesc equipmentDesc = tEquipmentDescService.getById(tEquipment.getId());
+                if (equipmentDesc != null) {
+                    equipmentDesc.setIsMaterialUse(responseContent);
+                    tEquipmentDescService.updateById(equipmentDesc);
+                }
+            }
+        }
+    }
+
+    @Override
+    public String getSupportedOperationType() {
+        return OperationType.MATERIAL.getCode();
+    }
+}