From 803697bd4f3ac5262e0acd69d6d7cc519ec45b2a Mon Sep 17 00:00:00 2001 From: vince <757871790@qq.com> Date: 星期一, 04 九月 2023 10:28:57 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/AnalysisService.java | 173 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 173 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 07211d3..37b58e2 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,15 +1,29 @@ package com.ld.igds.protocol.modbus.command; import com.ld.igds.common.CoreDeviceService; +import com.ld.igds.constant.BizType; +import com.ld.igds.es.dto.EsData; +import com.ld.igds.es.service.CoreEsService; +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.BaseRequest; +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; /** * 瑙f瀽 @@ -22,6 +36,10 @@ private CoreDeviceService coreDeviceService; @Resource private NotifyWebInvoker notifyInvoker; + @Autowired + private CoreGasService gasService; + @Autowired + private CoreEsService esService; /** @@ -46,4 +64,159 @@ log.error("---MODBUS-TCP-鐘舵�佽В鏋愬紓甯竰}", e); } } + + + /** + * 瑙f瀽姘斾綋妫�娴嬬粨鏋� + * + * @param request + * @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()); + } + + /** + * 瑙f瀽鑳借�楁暟鎹� + * + * @param request + * @param result + */ + public void analysisEs(BaseRequest request, Number result) { + + log.debug("----------寮�濮嬫墽琛岃兘鑰楃粨鏋滆В鏋�----{}", request.getDepotId()); + + + //鏈夊姛鐢佃兘鍒ゆ柇鏄惁杩斿洖鏈夋晥鏁版嵁 + if (null == result) { + log.error("---鑳借�楁暟鎹繑鍥炴暟鎹笉瀹屾暣锛屽仠姝㈣В鏋�----{}", result.toString()); + return; + } + + EsData esData = new EsData(); + esData.setCompanyId(request.getCompanyId()); + esData.setDepotId(request.getDepotId()); + esData.setUpdateTime(new Date()); + + esData.setEp(result.doubleValue()); + esData.setEs(result.doubleValue()); + + log.info("Modbus鐢佃〃----->>>骞冲彴锛氳兘鑰楁暟鎹В鏋愬畬鎴�-浠撳簱={}", esData.getDepotId()); + esService.saveAndUpdateInc(esData); + } + + /** + * 瑙f瀽绌鸿皟鐘舵�� + * + * @param request + * @param result + */ + public void analysisTempStatus(BaseRequest request, Number result) { + + log.debug("----------寮�濮嬫墽琛岃兘鑰楃粨鏋滆В鏋�----{}", request.getDepotId()); + + + //鏈夊姛鐢佃兘鍒ゆ柇鏄惁杩斿洖鏈夋晥鏁版嵁 + if (null == result) { + log.error("---鑳借�楁暟鎹繑鍥炴暟鎹笉瀹屾暣锛屽仠姝㈣В鏋�----{}", result.toString()); + return; + } + + EsData esData = new EsData(); + esData.setCompanyId(request.getCompanyId()); + esData.setDepotId(request.getDepotId()); + esData.setUpdateTime(new Date()); + + esData.setEp(result.doubleValue()); + esData.setEs(result.doubleValue()); + + log.info("Modbus鐢佃〃----->>>骞冲彴锛氳兘鑰楁暟鎹В鏋愬畬鎴�-浠撳簱={}", esData.getDepotId()); + esService.saveAndUpdateInc(esData); + } } -- Gitblit v1.9.3