From 156e1f871e3d8b3f36de09ca4f5b58be8e20acb4 Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期四, 11 九月 2025 15:28:02 +0800 Subject: [PATCH] 优化配方下发接口 --- jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java | 175 ++++++++++++++++++++++++++++++++++------------------------ 1 files changed, 102 insertions(+), 73 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 f786e32..3d9e86f 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,12 +1,10 @@ package org.jeecg.modules.dry.controller; -import ai.djl.modality.Classifications; import cn.hutool.core.bean.BeanUtil; -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; @@ -14,13 +12,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; @@ -31,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 = "瀹炴椂鏁版嵁澶勭悊鎺у埗鍣�") @@ -81,22 +71,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.fitFaultRecord(realTimeDataVo); } } catch (MqttException e) { @@ -106,18 +100,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); } @@ -130,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); @@ -174,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 { @@ -190,65 +207,77 @@ } 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); - 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