From 19bddd3beb27b359886384a41b97e02dae07f6c8 Mon Sep 17 00:00:00 2001 From: CZT <czt18638530771@163.com> Date: 星期二, 29 八月 2023 21:11:38 +0800 Subject: [PATCH] 优化配置信息 --- igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/AnalysisService.java | 97 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 97 insertions(+), 0 deletions(-) diff --git a/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/AnalysisService.java b/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/AnalysisService.java index e069867..59b1fbf 100644 --- a/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/AnalysisService.java +++ b/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/AnalysisService.java @@ -1,17 +1,25 @@ package com.ld.igds.protocol.modbus.command; import com.ld.igds.common.CoreDeviceService; +import com.ld.igds.constant.BizType; +import com.ld.igds.gas.CoreGasService; import com.ld.igds.io.constant.OrderRespEnum; import com.ld.igds.io.notify.NotifyWebInvoker; import com.ld.igds.io.request.CheckGasRequest; import com.ld.igds.io.request.DeviceControlRequest; +import com.ld.igds.models.Gas; import com.ld.igds.protocol.modbus.ServerUtil; import com.ld.igds.protocol.modbus.data.ModbusGasResult; +import com.ld.igds.util.ContextUtil; +import com.ld.igds.util.NumberUtil; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.text.DecimalFormat; +import java.util.Date; import java.util.List; /** @@ -25,6 +33,8 @@ private CoreDeviceService coreDeviceService; @Resource private NotifyWebInvoker notifyInvoker; + @Autowired + private CoreGasService gasService; /** @@ -58,5 +68,92 @@ * @param results */ public void analysisGas(CheckGasRequest request, List<ModbusGasResult> results) { + + log.debug("----------寮�濮嬫墽琛屾皵浣撶粨鏋滆В鏋�----{}", request.getDepotId()); + + String batchId = ContextUtil.getDefaultBatchId(); + //涓讳綋淇℃伅 + Gas gas = new Gas(batchId, request.getCompanyId(), request.getDepotId(), new Date()); + gas.setCheckNum(results.size()); + gas.setGasEnd(results.size()); + gas.setGasStart(1); + gas.setReceiveDate(new Date()); + + int sumNum = results.size(); + double co2, o2, ph3, n2; + DecimalFormat df = new DecimalFormat("#0.00"); + double sumO2 = 0.0, sumCo2 = 0.0, sumPh3 = 0.0, sumN2 = 0.0; + int num = 1; + StringBuffer sb = new StringBuffer(); + for (ModbusGasResult gasResult : results) { + //浜屾哀鍖栫⒊锛屽崟浣嶏細PPM锛岀洿鎺ヤ娇鐢� + co2 = gasResult.getCo2().doubleValue(); + //姘ф皵锛岄櫎浠�10锛屽崟浣嶏細鐧惧垎姣� + o2 = Double.valueOf(df.format(gasResult.getO2().doubleValue()*0.1)); + //纾峰寲姘紝鍗曚綅锛歅PM锛岀洿鎺ヤ娇鐢� + ph3 = gasResult.getPh3().doubleValue(); + n2 = Double.valueOf(df.format(99.9 - o2));; + + if(num == 1){ + gas.setPerCo2Min(co2); + gas.setPerO2Min(o2); + gas.setPerPh3Min(ph3); + gas.setPerN2Min(n2); + } + num ++; + if (gas.getPerCo2Max() < co2) { + gas.setPerCo2Max(co2); + } + if (gas.getPerCo2Min() > co2) { + gas.setPerCo2Min(co2); + } + if (gas.getPerO2Max() < o2) { + gas.setPerO2Max(o2); + } + if (gas.getPerO2Min() > o2) { + gas.setPerO2Min(o2); + } + if (gas.getPerPh3Max() < ph3) { + gas.setPerPh3Max(ph3); + } + if (gas.getPerPh3Min() > ph3) { + gas.setPerPh3Min(ph3); + } + if (gas.getPerN2Max() < n2) { + gas.setPerN2Max(n2); + } + if (gas.getPerN2Min() > n2) { + gas.setPerN2Min(n2); + } + + //鍥哄畾涓猴細passCode,co2,o2,ph3,n2;passCode,co2,o2,ph3,n2;" + sb.append(gasResult.getPasscode()); + sb.append(","); + sb.append(co2); + sb.append(","); + sb.append(o2); + sb.append(","); + sb.append(ph3); + sb.append(","); + sb.append(n2); + sb.append(";"); + + sumCo2 += co2; + sumO2 += o2; + sumPh3 += ph3; + sumN2 += n2; + + } + gas.setPoints(sb.toString()); + gas.setPerCo2(NumberUtil.keepPrecision(sumCo2 / sumNum, 2)); + gas.setPerO2(NumberUtil.keepPrecision(sumO2 / sumNum, 2)); + gas.setPerN2(NumberUtil.keepPrecision(sumN2 / sumNum, 2)); + gas.setPerPh3(NumberUtil.keepPrecision(sumPh3 / sumNum, 2)); + + gasService.saveOrUpdateData(gas); + + // 璋冪敤閫氱煡鍓嶇 + notifyInvoker.notifyWeb(gas.getCompanyId(), OrderRespEnum.MSG_SUCCESS, BizType.GAS, request.getDepotId() + " 姘斾綋妫�娴嬶細缁撴灉杩斿洖鎴愬姛."); + log.info("鎺у埗鏌�----->>>骞冲彴锛氭皵浣撹В鏋愬畬鎴�-浠撳簱={}", request.getDepotId()); } } -- Gitblit v1.9.3