From b38019aae593a66c16f7e75d6e37d14eb8d2c42e Mon Sep 17 00:00:00 2001 From: zhuguifei <zhuguifei@zhuguifeideiMac.local> Date: 星期二, 22 七月 2025 08:55:15 +0800 Subject: [PATCH] 修改接收实时数据接口-故障处理 --- jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java | 136 +++++++++++++++++++++++---------------------- 1 files changed, 70 insertions(+), 66 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 dbc488d..0f1b58f 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,14 +1,9 @@ package org.jeecg.modules.dry.controller; -import ai.djl.modality.Classifications; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.thread.ThreadUtil; -import com.alibaba.druid.support.json.JSONUtils; -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; @@ -16,13 +11,9 @@ import org.eclipse.paho.client.mqttv3.MqttMessage; import org.jeecg.common.api.vo.Result; -import org.jeecg.common.config.TenantContext; import org.jeecg.common.constant.MqttConstant; -import org.jeecg.common.system.query.QueryGenerator; 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; @@ -33,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 = "瀹炴椂鏁版嵁澶勭悊鎺у埗鍣�") @@ -83,24 +70,26 @@ 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) { + public Result<?> realTimeDataJson(@RequestBody RealTimeDataVo realTimeDataVo) { try { - if ("user".equals(mqttConfig.getRole())){ + 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); + mqttUtil.getMqttClient().publish(MqttConstant.TENANT_UP_PREFIX_REALTIME_DATA, mqttMessage); + } + + if ("user".equals(mqttConfig.getRole())) { //澶勭悊鏁呴殰淇℃伅 - dryRealTimeDataService.fitFultRecord(realTimeDataVo); + dryRealTimeDataService.fitFaultRecord(realTimeDataVo); } } catch (MqttException e) { @@ -110,18 +99,32 @@ 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); } @@ -134,7 +137,7 @@ * 1013 鐑鍚姩 1014 寮�闂ㄨ瀵� * 1015 鍑烘枡鎸夐挳 */ - @ApiOperation(value="鍙戦�佹帶鍒舵寚浠�", notes="鍚戞湇鍔$鍙戦�佹帶鍒舵寚浠わ紝鐢辨湇鍔$閫氳繃socket杞彂缁欐帶鍒舵ā鍧�") + @ApiOperation(value = "鍙戦�佹帶鍒舵寚浠�", notes = "鍚戞湇鍔$鍙戦�佹帶鍒舵寚浠わ紝鐢辨湇鍔$閫氳繃socket杞彂缁欐帶鍒舵ā鍧�") @PostMapping("/sendCommand") public Result<?> sendCommand(@RequestBody CommandMessageVo msgVo) { return dryRealTimeDataService.sendSocketMsg(msgVo); @@ -181,19 +184,20 @@ /** * 鏍规嵁璁惧鍜岀鎴锋煡璇㈣璁惧绫诲瀷鐨勫共鐕ラ厤鏂癸紝灏嗛厤鏂硅浆鎴恱ml鏍煎紡锛屼互瀛楃涓叉柟寮忚繑鍥� + * * @param tenantId * @param eqpCode * @return * @throws JAXBException */ - @ApiOperation(value="骞茬嚗閰嶆柟鑾峰彇", notes="骞茬嚗閰嶆柟涓嬪彂") + @ApiOperation(value = "骞茬嚗閰嶆柟鑾峰彇", notes = "骞茬嚗閰嶆柟涓嬪彂") @GetMapping(value = "/queryFormula") public Result<String> 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 { @@ -202,46 +206,46 @@ } 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::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())); - formula.setBaseParam(baseParam); - formula.setWaterParam(waterParam); - formula.setTypeParam(typeParam); - formula.setOffsetParam(offsetParam); - formulas.getDryFormulaList().add(formula); - }); - // 鎶妚os杞崲鎴恱ml + 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); @@ -255,12 +259,12 @@ StringWriter writer = new StringWriter(); marshaller.marshal(formulas, writer); - return Result.OK("璇锋眰鎴愬姛",writer.toString()); + return Result.OK("璇锋眰鎴愬姛", writer.toString()); } - @ApiOperation(value="骞茬嚗閰嶆柟涓婃姤", notes="骞茬嚗閰嶆柟璁板綍涓婃姤") + @ApiOperation(value = "骞茬嚗閰嶆柟涓婃姤", notes = "骞茬嚗閰嶆柟璁板綍涓婃姤") @PostMapping(value = "/sendFormulaHistory") public Result<?> sendFormulaHistory(DryHerbFormulaHisVo hisVo) { //鑾峰彇request -- Gitblit v1.9.3