From 87b161325d9186d8211a7d472ed04fa279f33954 Mon Sep 17 00:00:00 2001
From: zhuguifei <zhuguifei>
Date: 星期五, 14 十一月 2025 16:12:43 +0800
Subject: [PATCH] Merge branch 'master' of http://lanpucloud.cn:1111/r/herb
---
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java | 193 +++++++++++++++++++++++++++++++-----------------
1 files changed, 124 insertions(+), 69 deletions(-)
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java
index ff98cb4..a401283 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java
@@ -1,22 +1,23 @@
package org.jeecg.modules.dry.controller;
-import ai.djl.modality.Classifications;
import cn.hutool.core.bean.BeanUtil;
+import com.alibaba.fastjson.JSON;
+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 +25,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 +56,12 @@
// private HerbUtil herbUtil;
@Autowired
+ private MqttUtil mqttUtil;
+
+ @Autowired
+ private MqttConfig mqttConfig;
+
+ @Autowired
private IDryHerbInfoService herbInfoService;
@Autowired
@@ -68,31 +71,61 @@
private IDryEquipmentService dryEquipmentService;
-
- @ApiOperation(value="娴嬭瘯", notes="杩斿洖Hello")
+ @ApiOperation(value = "娴嬭瘯", notes = "杩斿洖Hello")
@GetMapping("/hello")
public Result<?> sayHello() {
return Result.ok("Hello");
}
- @ApiOperation(value="鎺ユ敹瀹炴椂鏁版嵁Json", notes="璁惧瀹炴椂鏁版嵁涓婁紶")
+ @ApiOperation(value = "鎺ユ敹瀹炴椂鏁版嵁Json", notes = "璁惧瀹炴椂鏁版嵁涓婁紶")
@PostMapping("/sendRealTimeDataJson")
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);
}
+ @ApiOperation(value = "鎺ユ敹瀹炴椂鏁版嵁Json", notes = "璁惧瀹炴椂鏁版嵁涓婁紶")
+ @PostMapping("/sendRealTimeDataJson2")
+ public Result<?> realTimeDataJson2(@RequestBody RealTimeDataParentVo realTimeDataParentVo) {
+ return dryRealTimeDataService.realTimeDataHandle(realTimeDataParentVo);
+
+ }
- @ApiOperation(value="鑾峰彇璁惧瀹炴椂鏁版嵁", notes="閫氳繃绉熸埛ID鍜岃澶囩紪鐮佽幏鍙栧疄鏃舵暟鎹�")
+ @ApiOperation(value = "鑾峰彇璁惧瀹炴椂鏁版嵁", notes = "閫氳繃绉熸埛ID鍜岃澶囩紪鐮佽幏鍙栧疄鏃舵暟鎹�")
@GetMapping("/getRealTimeData")
public Result<?> queryMachineRealTimeData(RealTimeDataVo realTimeDataVo) {
return dryRealTimeDataService.queryMachineRealTImeData(realTimeDataVo);
}
- @ApiOperation(value="鑾峰彇杞﹂棿缁熻鏁版嵁", notes="閫氳繃绉熸埛ID鑾峰彇杞﹂棿缁熻鏁版嵁")
+ @ApiOperation(value = "鑾峰彇杞﹂棿缁熻鏁版嵁", notes = "閫氳繃绉熸埛ID鑾峰彇杞﹂棿缁熻鏁版嵁")
@GetMapping("/workshopStatistics")
public Result<?> workshopStatistics(RealTimeDataVo realTimeDataVo) {
return dryRealTimeDataService.queryWorkshopStatistics(realTimeDataVo);
+ }
+
+
+ @ApiOperation(value = "鑾峰彇鎵�鏈夋満鍙�", notes = "閫氳繃绉熸埛ID鑾峰彇鎵�鏈夋満鍙版暟鎹�")
+ @GetMapping("/queryAllEqps")
+ public Result<?> queryAllEqps(DryEquipment equipment) {
+ List<DryEquipment> dryEquipments = dryEquipmentService.queryEqusByTenantId(equipment);
+ return Result.OK(dryEquipments);
}
@@ -105,7 +138,7 @@
* 1013 鐑鍚姩 1014 寮�闂ㄨ瀵�
* 1015 鍑烘枡鎸夐挳
*/
- @ApiOperation(value="鍙戦�佹帶鍒舵寚浠�", notes="鍚戞湇鍔$鍙戦�佹帶鍒舵寚浠わ紝鐢辨湇鍔$閫氳繃socket杞彂缁欐帶鍒舵ā鍧�")
+ @ApiOperation(value = "鍙戦�佹帶鍒舵寚浠�", notes = "鍚戞湇鍔$鍙戦�佹帶鍒舵寚浠わ紝鐢辨湇鍔$閫氳繃socket杞彂缁欐帶鍒舵ā鍧�")
@PostMapping("/sendCommand")
public Result<?> sendCommand(@RequestBody CommandMessageVo msgVo) {
return dryRealTimeDataService.sendSocketMsg(msgVo);
@@ -149,14 +182,23 @@
// return Result.error("AI璇嗗埆鏈嶅姟寮傚父");
// }
// }
- @ApiOperation(value="骞茬嚗閰嶆柟鑾峰彇", notes="骞茬嚗閰嶆柟涓嬪彂")
+
+ /**
+ * 鏍规嵁璁惧鍜岀鎴锋煡璇㈣璁惧绫诲瀷鐨勫共鐕ラ厤鏂癸紝灏嗛厤鏂硅浆鎴恱ml鏍煎紡锛屼互瀛楃涓叉柟寮忚繑鍥�
+ *
+ * @param tenantId
+ * @param eqpCode
+ * @return
+ * @throws JAXBException
+ */
+ @ApiOperation(value = "骞茬嚗閰嶆柟鑾峰彇", notes = "骞茬嚗閰嶆柟涓嬪彂")
@GetMapping(value = "/queryFormula")
- public Result<String> queryFormulaByEqpType(Integer tenantId, String eqpCode) throws JAXBException {
+ public Result<List<HerbFormulaVo>> queryFormulaByEqpType(Integer tenantId, String eqpCode) throws JAXBException {
//鑾峰彇request
HttpServletRequest request = SpringContextUtils.getHttpServletRequest();
// 鑾峰彇璇锋眰涓绘満鐨処P鍦板潃
String ip = IpUtils.getIpAddr(request);
- DryEquipment dryEquipment = dryEquipmentService.selectByTenantIdEquipmentId(tenantId+ "", eqpCode);
+ DryEquipment dryEquipment = dryEquipmentService.selectByTenantIdEquipmentId(tenantId + "", eqpCode);
if (dryEquipment != null) {
if (dryEquipment.getIp().equals(ip)) {
} else {
@@ -165,65 +207,78 @@
} else {
return Result.error("璁惧涓嶅瓨鍦�");
}
- LambdaQueryWrapper<DryHerbFormula> queryWrapper = new LambdaQueryWrapper<DryHerbFormula>();
- queryWrapper.eq(DryHerbFormula::getEqpType, dryEquipment.getType())
- .eq(DryHerbFormula::getTenantId, tenantId);
- List<DryHerbFormula> list = dryHerbFormulaService.list(queryWrapper);
- Formulas formulas = new Formulas();
- list.forEach(item -> {
- DryHerbInfo byId = dryHerbInfoService.getById(item.getHerbId());
- if (byId!=null) {
- item.setPinyin(byId.getPinyin());
- item.setName(byId.getName());
- }
- Formula formula = new Formula();
- BaseParam baseParam = new BaseParam();
- WaterParam waterParam = new WaterParam();
- TypeParam typeParam = new TypeParam();
- OffsetParam offsetParam = new OffsetParam();
- baseParam.setCode(item.getCode());
- baseParam.setIndex(item.getCode());
- baseParam.setName(item.getName());
- baseParam.setAb(item.getName());
- baseParam.setTyp(item.getCategory());
- waterParam.setDelay(Double.valueOf(item.getDelay()));
- waterParam.setMoisture3(item.getTarget());
- waterParam.setWeight1(Double.valueOf(item.getFeed()));
- waterParam.setTimes(item.getEt());
- waterParam.setTemp1(item.getWindTemp());
- waterParam.setTemp2(item.getEnvTemp());
- waterParam.setTemp3(item.getEnvHum());
- waterParam.setTurntime(item.getTurn());
- typeParam.setMtype(Integer.valueOf(item.getCategory()));
- offsetParam.setMoisoffset(item.getMoisOffset());
- offsetParam.setColdwind(Double.valueOf(item.getCoolingDuration()));
+ LambdaQueryWrapper<DryHerbFormula> queryWrapper = new LambdaQueryWrapper<DryHerbFormula>();
+ queryWrapper.eq(DryHerbFormula::getEqpType, dryEquipment.getType())
+ .eq(DryHerbFormula::getEnabled, "true")
+ .eq(DryHerbFormula::getTenantId, tenantId);
+ List<DryHerbFormula> list = dryHerbFormulaService.list(queryWrapper);
- formula.setBaseParam(baseParam);
- formula.setWaterParam(waterParam);
- formula.setTypeParam(typeParam);
- formula.setOffsetParam(offsetParam);
- formulas.getDryFormulaList().add(formula);
- });
- // 鎶妚os杞崲鎴恱ml
- // 鍒涘缓JAXBContext瀹炰緥
- JAXBContext jaxbContext = JAXBContext.newInstance(Formulas.class);
+ List<HerbFormulaVo> voList = new ArrayList<>();
- // 鍒涘缓Marshaller瀹炰緥
- Marshaller marshaller = jaxbContext.createMarshaller();
+ list.forEach(item -> {
+// DryHerbInfo byId = dryHerbInfoService.getById(item.getHerbId());
+// if (byId != null) {
+// item.setPinyin(byId.getPinyin());
+// item.setName(byId.getName());
+// }
- // 璁剧疆鏄惁鏍煎紡鍖栬緭鍑�
- marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, false);
+// Formula formula = new Formula();
+// BaseParam baseParam = new BaseParam();
+// WaterParam waterParam = new WaterParam();
+// TypeParam typeParam = new TypeParam();
+// OffsetParam offsetParam = new OffsetParam();
+// baseParam.setCode(item.getCode());
+// baseParam.setIndex(item.getCode());
+// baseParam.setName(item.getName());
+// baseParam.setAb(item.getName());
+// baseParam.setTyp(item.getCategory());
+// waterParam.setDelay(Double.valueOf(item.getDelay()));
+// waterParam.setMoisture3(item.getTarget());
+// waterParam.setWeight1(Double.valueOf(item.getFeed()));
+// waterParam.setTimes(item.getEt());
+// waterParam.setTemp1(item.getWindTemp());
+// waterParam.setTemp2(item.getEnvTemp());
+// waterParam.setTemp3(item.getEnvHum());
+// waterParam.setTurntime(item.getTurn());
+// typeParam.setMtype(Integer.valueOf(item.getCategory()));
+// offsetParam.setMoisoffset(item.getMoisOffset());
+// offsetParam.setColdwind(Double.valueOf(item.getCoolingDuration()));
+//
+// formula.setBaseParam(baseParam);
+// formula.setWaterParam(waterParam);
+// formula.setTypeParam(typeParam);
+// formula.setOffsetParam(offsetParam);
+// formulas.getDryFormulaList().add(formula);
- // 灏嗗璞″簭鍒楀寲鍒板瓧绗︿覆
- StringWriter writer = new StringWriter();
- marshaller.marshal(formulas, writer);
+ HerbFormulaVo vo = new HerbFormulaVo();
+ BeanUtil.copyProperties(item, vo);
+ voList.add(vo);
+ });
+// // 鎶妚os杞崲鎴恱ml
+// // 鍒涘缓JAXBContext瀹炰緥
+// JAXBContext jaxbContext = JAXBContext.newInstance(Formulas.class);
+//
+// // 鍒涘缓Marshaller瀹炰緥
+// Marshaller marshaller = jaxbContext.createMarshaller();
+//
+// // 璁剧疆鏄惁鏍煎紡鍖栬緭鍑�
+// marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, false);
+//
+// // 灏嗗璞″簭鍒楀寲鍒板瓧绗︿覆
+// StringWriter writer = new StringWriter();
+// marshaller.marshal(formulas, writer);
- return Result.OK("璇锋眰鎴愬姛",writer.toString());
+// String jsonString = JSONObject.toJSONString(voList);
+//
+// String json = JSON.toJSONString(voList);
+// System.out.println(jsonString);
+
+ return Result.OK("璇锋眰鎴愬姛", voList);
}
- @ApiOperation(value="骞茬嚗閰嶆柟涓婃姤", notes="骞茬嚗閰嶆柟璁板綍涓婃姤")
+ @ApiOperation(value = "骞茬嚗閰嶆柟涓婃姤", notes = "骞茬嚗閰嶆柟璁板綍涓婃姤")
@PostMapping(value = "/sendFormulaHistory")
public Result<?> sendFormulaHistory(DryHerbFormulaHisVo hisVo) {
//鑾峰彇request
--
Gitblit v1.9.3