干燥机配套车间生产管理系统/云平台服务端
zhuguifei
2024-12-12 34b25b23cdb89f047e153fb8d08c577b59f0aad9
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java
@@ -1,22 +1,22 @@
package org.jeecg.modules.dry.controller;
import ai.djl.modality.Classifications;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.config.TenantContext;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.constant.MqttConstant;
import org.jeecg.common.util.IpUtils;
import org.jeecg.common.util.SpringContextUtils;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.config.mybatis.MybatisPlusSaasConfig;
import org.jeecg.modules.dry.entity.*;
import org.jeecg.modules.dry.mqtt.MqttConfig;
import org.jeecg.modules.dry.mqtt.MqttUtil;
import org.jeecg.modules.dry.service.*;
//import org.jeecg.modules.dry.util.HerbUtil;
@@ -24,17 +24,13 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import java.io.InputStream;
import java.io.StringWriter;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Api(tags = "实时数据处理控制器")
@@ -59,6 +55,12 @@
//    private HerbUtil herbUtil;
    @Autowired
    private MqttUtil mqttUtil;
    @Autowired
    private MqttConfig mqttConfig;
    @Autowired
    private IDryHerbInfoService herbInfoService;
    @Autowired
@@ -77,7 +79,24 @@
    @ApiOperation(value="接收实时数据Json", notes="设备实时数据上传")
    @PostMapping("/sendRealTimeDataJson")
    public Result<?> realTimeDataJson(@RequestBody RealTimeDataVo realTimeDataVo) {
    public Result<?> realTimeDataJson(@RequestBody RealTimeDataVo realTimeDataVo)  {
        try {
            if (mqttConfig.isEnable() && "user".equals(mqttConfig.getRole())){
                MqttMessage mqttMessage = new MqttMessage();
                mqttMessage.setQos(0);
                mqttMessage.setPayload(JSONObject.toJSONString(realTimeDataVo).getBytes());
                mqttUtil.getMqttClient().publish(MqttConstant.TENANT_UP_PREFIX_REALTIME_DATA,mqttMessage);
            }
            if ("user".equals(mqttConfig.getRole())){
                //处理故障信息
                dryRealTimeDataService.fitFaultRecord(realTimeDataVo);
            }
        } catch (MqttException e) {
            e.printStackTrace();
        }
        return dryRealTimeDataService.realTimeDataHandle(realTimeDataVo);
    }
@@ -149,6 +168,14 @@
//            return Result.error("AI识别服务异常");
//        }
//    }
    /**
     * 根据设备和租户查询该设备类型的干燥配方,将配方转成xml格式,以字符串方式返回
     * @param tenantId
     * @param eqpCode
     * @return
     * @throws JAXBException
     */
    @ApiOperation(value="干燥配方获取", notes="干燥配方下发")
    @GetMapping(value = "/queryFormula")
    public Result<String> queryFormulaByEqpType(Integer tenantId, String eqpCode) throws JAXBException {