vince
2023-09-04 803697bd4f3ac5262e0acd69d6d7cc519ec45b2a
igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/AnalysisService.java
@@ -2,9 +2,12 @@
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;
@@ -35,6 +38,8 @@
    private NotifyWebInvoker notifyInvoker;
    @Autowired
    private CoreGasService gasService;
    @Autowired
    private CoreEsService esService;
    /**
@@ -83,6 +88,7 @@
        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,直接使用
@@ -93,6 +99,13 @@
            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);
            }
@@ -148,4 +161,62 @@
        notifyInvoker.notifyWeb(gas.getCompanyId(), OrderRespEnum.MSG_SUCCESS, BizType.GAS, request.getDepotId() + " 气体检测:结果返回成功.");
        log.info("控制柜----->>>平台:气体解析完成-仓库={}", request.getDepotId());
    }
    /**
     * 解析能耗数据
     *
     * @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);
    }
    /**
     * 解析空调状态
     *
     * @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);
    }
}