vince
2024-04-26 b1c572949997a5d82d9b609163ff280a1c49627d
粮情协议优化
已修改21个文件
385 ■■■■ 文件已修改
src/main/java/com/fzzy/api/Constant.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/api/data/GatewayDeviceProtocol.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/gateway/api/GatewayDeviceReportService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/gateway/controller/GatewayDeviceController.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java 185 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/gateway/view/GatewayDevice.view.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/protocol/bhzn/analysis/AnalysisService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/protocol/bhzn/service/Bhzn2GatewayGrainService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/protocol/bhzn/v0/analysis/AnalysisService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/protocol/fzzy/analysis/AnalysisGrain.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/protocol/fzzy/analysis/AnalysisSystem.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/protocol/fzzy/service/FzzyGatewayGrainService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/protocol/wujia/analysis/AnalysisService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/protocol/wujia/client/ClientHandler.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/protocol/wujia/service/WujiaGatewayGrainService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/protocol/xsyg/analysis/AnalysisService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/protocol/youxian0/analysis/AnalysisService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/protocol/youxian1/analysis/AnalysisService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/protocol/zldz/analysis/AnalysisGrain.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/api/Constant.java
@@ -360,6 +360,8 @@
        device.setStatus(Constant.YN_Y);
        device.setCode("SUCCESS");
        device.setMsg("设备上线");
        device.setSn(device.getSn());
        device.setId(device.getId());
        device.setOnlineTime(new Date());
        contextDeviceMap.put(device.getIp(), device);
        log.info("设备上线:" + ip);
@@ -377,6 +379,7 @@
        device.setStatus(Constant.YN_N);
        device.setCode("ERROR");
        device.setMsg("设备离线");
        device.setId(device.getId());
        contextDeviceMap.put(device.getIp(), device);
        return device;
src/main/java/com/fzzy/api/data/GatewayDeviceProtocol.java
@@ -19,7 +19,7 @@
    GRAIN_YOUXIAN0_2023("GRAIN_YOUXIAN0_2023", "粮情-游仙主库协议"),
    GRAIN_YOUXIAN1_2023("GRAIN_YOUXIAN1_2023", "粮情-游仙分库协议"),
    GRAIN_WUJIA_2023("GRAIN_WUJIA_2023", "粮情-吴家粮库协议"),
    GRAIN_XSYK_2023("GRAIN_WUJIA_2023", "油情-西山油库协议"),
    GRAIN_XSYK_2023("GRAIN_XSYK_2023", "油情-西山油库协议"),
    DEVICE_WEIGHT_HTTP("DEVICE_WEIGHT_HTTP", "地磅-HTTP协议"),
    DEVICE_WEIGHT_TCP_YH("DEVICE_WEIGHT_TCP_YH", "地磅-耀华TCP协议"),
    DEVICE_IDCARD_HTTP("DEVICE_IDCARD_HTTP", "身份证-HTTP协议"),
src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java
@@ -6,6 +6,8 @@
import com.fzzy.api.utils.DateUtil;
import com.fzzy.data.ConfigData;
import com.fzzy.gateway.api.GatewayRemoteManager;
import com.fzzy.gateway.api.GatewayRemoteService;
import com.fzzy.gateway.api.GatewaySyncGranService;
import com.fzzy.gateway.data.BaseReqData;
import com.fzzy.gateway.data.BaseResp;
import com.fzzy.gateway.data.WeatherWebDto;
@@ -96,8 +98,46 @@
                gatewayRemoteManager.getDeviceReportService(device.getPushProtocol()).reportGrainDataByHand(reqData);
            }
        }
    }
    /**
     * <p>
     * 粮情每天8点采集粮情
     */
    @Scheduled(cron = "0 32 7 ? * *")
    public void scheduledGrain2() {
        //获取设备配置,只针对粮情设备进行执行
        log.info("定时粮情采集kafka推送");
        List<GatewayDevice> list = gatewayDeviceTestPR.listAll();
        if (null == list || list.isEmpty()) {
            log.error("为获取到系统中设备配置,取消执行\"");
            return ;
        }
        BaseReqData reqData = new BaseReqData();
        BaseResp resp;
        for (GatewayDevice device : list) {
            try{
                //如果不是粮情分机跳过
                if (!GatewayDeviceType.TYPE_07.getCode().equals(device.getType())) {
                    continue;
                }
                reqData.setDeviceId(device.getDeviceId());
                reqData.setProductId(device.getProductId());
                reqData.setDeviceName(device.getDeviceName());
                reqData.setDevice(device);
                reqData.setAutoReplay(true);
                GatewaySyncGranService syncGrainService = gatewayRemoteManager.getSyncGrainService(device.getSyncProtocol());
                 resp = syncGrainService.syncGrain(reqData);
                log.info("命令发送结果:"+resp.toString());
            }catch (Exception e){
                log.error(e.getMessage(),e);
            }
        }
    }
    /**
     * <p>
     * 每间隔3秒执行一次事件
src/main/java/com/fzzy/gateway/api/GatewayDeviceReportService.java
@@ -4,6 +4,7 @@
import com.fzzy.gateway.data.BaseReqData;
import com.fzzy.gateway.data.BaseResp;
import com.fzzy.gateway.entity.GatewayDevice;
import com.fzzy.gateway.hx2023.data.GrainData;
import com.fzzy.gateway.hx2023.data.KafaGrainData;
@@ -26,11 +27,15 @@
     */
    BaseResp reportGrainData(BaseReqData reqData);
    BaseResp reportGrainDataByKafka(BaseReqData reqData);
    BaseResp reportWeightData(BaseReqData reqData);
    BaseResp reportLprData(BaseReqData reqData);
    BaseResp reportGrainDataByHand(BaseReqData reqData);
    /**
@@ -42,4 +47,13 @@
     */
    BaseResp grainData2GatewayApiInfo(Fz40Grain grainData, GatewayDevice gatewayDevice);
    /**
     * 粮情业务数据转换为,当前网关需要的报文
     * @param grainData     第三个软件粮情数据报文
     * @param gatewayDevice 网关中设备配置信息
     * @return
     */
    BaseResp grainData2GatewayApiInfoKafka(GrainData grainData, GatewayDevice device);
}
src/main/java/com/fzzy/gateway/controller/GatewayDeviceController.java
@@ -55,7 +55,9 @@
        if ("testGrain".equals(param.getBizType())) {
            return testGrain(param);
        }
        if ("testGrain".equals(param.getBizType())) {
            return testGrain(param);
        }
        if ("ajaxTestKafkaGrain".equals(param.getBizType())) {
            return ajaxTestKafkaGrain(param);
        }
src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java
@@ -1,5 +1,6 @@
package com.fzzy.gateway.hx2023.service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.fzzy.api.data.DepotType;
import com.fzzy.api.data.PushProtocol;
@@ -22,6 +23,7 @@
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Slf4j
@@ -62,6 +64,21 @@
        log.info("-----TOPIC-----{}", topic);
        log.info("-----Message-----{}", reqData.getData());
        return new BaseResp();
    }
    @Override
    public BaseResp reportGrainDataByKafka(BaseReqData reqData) {
        String topic = ScConstant.TOPIC_ZLJ_GRAIN_TEMPERATURE;
        //如果是测试模式不执行推送
        if (configData.getActive().indexOf("dev") >= 0) {
            log.info("----------------------------推送KAFKA粮情信息,注:调试模式不推送---------------------------");
            log.info("-----TOPIC-----{}", topic);
            log.info("-----Message-----{}", reqData.getData());
            return new BaseResp();
        }
        kafkaDeviceReportService.publishWithTopic(reqData.getData(), topic);
        return new BaseResp();
    }
@@ -531,4 +548,172 @@
        return resp;
    }
    //  ----------------------------------------------------
    @Override
    public BaseResp grainData2GatewayApiInfoKafka(GrainData grainData, GatewayDevice device) {
        BaseResp resp = new BaseResp();
        GrainCableData cableData = GatewayUtils.getCableData(device);
        if (null == device.getDepotType()) device.setDepotType(DepotType.TYPE_01.getCode());
//        //表示筒仓
//        if (DepotType.TYPE_02.getCode().equals(device.getDepotType()) || DepotType.TYPE_04.getCode().equals(device.getDepotType())) {
//            return grainData2GatewayApiInfo2(grainData, device, cableData);
//        }
//
//        //表示为筒仓包括油罐仓
//        if (DepotType.TYPE_03.getCode().equals(device.getDepotType())) {
//            return grainData2GatewayApiInfo3(grainData, device, cableData);
//        }
        GrainOutPut output = JSONObject.parseObject(grainData.getOutput(),GrainOutPut.class);
        KafaGrainData result = new KafaGrainData();
        result.setMessageId(ScConstant.getMessageId());
        result.setMessgeId(result.getMessageId());
        result.setDeviceID(device.getDeviceId());
        result.setAvgTemperature(output.getAvgTemperature());
        result.setMinTemperature(output.getMinTemperature());
        result.setMaxTemperature(output.getMaxTemperature() );
        result.setCollectTime(DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
        //层行列
        int cableZ = cableData.getCableZ();
        int cableY = cableData.getCableY();
        int cableX = cableData.getCableX();
        //温度集合
        List<GrainTemp> attr = output.getTemperature();
        //根号
        int cableNum = 1, position = 0;
        String curTemp;
        List<KafkaGrainDataDetail1> temperature = new ArrayList<>();
        int x = 0, y = 0, z = 0;
        for (int i = 0; i < attr.size(); i++) {
            position = i;
            z = i % cableZ + 1;
            x = i / (cableZ * cableY);
            y = x * (cableZ * cableY);
            y = (i - y) / cableZ;
            // 倒转X轴
            x = cableX - 1 - x;
            //根号
            cableNum = (i / cableZ) + 1;
            curTemp = attr.get(i).getTemperature();
            //如果是异常值,执行调整数据 TODO
            if (Double.valueOf(curTemp) < -99.9) {
                curTemp = output.getAvgTemperature();
            } else {
                //判断最大
                if (curTemp.equals(result.getMaxTemperature())) {
                    result.setMaxX(x + "");
                    result.setMaxY(y + "");
                    result.setMaxZ(position + "");
                }
                //判断最小
                if (curTemp.equals(result.getMinTemperature())) {
                    result.setMinX(x + "");
                    result.setMinY(y + "");
                    result.setMinZ(position + "");
                }
            }
            temperature.add(new KafkaGrainDataDetail1(cableNum + "", z + "", curTemp, position + "", x + "", y + ""));
        }
        //粮温信息
        JSONObject trhInfo = new JSONObject();
        // TRHInfo trhInfo = new TRHInfo();
        trhInfo.put("temperature", temperature);
        //仓温度信息
        KafkaGrainTH grainTH = new KafkaGrainTH();
        List<GrainTH> ths= output.getTemperatureAndhumidity();
        grainTH.setHumidity(ths.get(0).getHumidity());
        grainTH.setTemperature(ths.get(0).getTemperature() );
        GrainWeather weather = JSON.parseObject(grainData.getWeatherStation(),GrainWeather.class);
        grainTH.setAirHumidity(weather.getHumidity());
        grainTH.setAirTemperature(weather.getTemperature() );
        List<KafkaGrainTH> temperatureAndhumidity = new ArrayList<>();
        temperatureAndhumidity.add(grainTH);
        trhInfo.put("temperatureAndhumidity", temperatureAndhumidity);
        JSONObject params = new JSONObject();
        params.put("TRHInfo", trhInfo);
        result.setParams(params);
        resp.setData(JSONObject.toJSONString(result));
        return resp;
    }
    /**
     * 获取当点所在圈
     *
     * @param cableNum
     * @param cableData
     * @return
     */
    private int getCirCleKafka(int position, int cableNum, GrainCableData cableData) {
        int num1 = 1, num2 = 2;
        String[] attCable = cableData.getCableRule().split("-");
        if (cableData.getTotalCircle() == 1) return 1;
        if (cableData.getTotalCircle() == 2) {
            num1 = Integer.valueOf(attCable[0]);
            if (cableNum <= num1) return 1;
            return 2;
        }
        if (cableData.getTotalCircle() == 3) {
            num1 = Integer.valueOf(attCable[0]);
            num2 = num1 + Integer.valueOf(attCable[1]);
            if (cableNum <= num1) return 1;
            if (cableNum <= num2) return 2;
            return 3;
        }
        if (cableData.getTotalCircle() == 4) {
            num1 = Integer.valueOf(attCable[0]);
            num2 = num1 + Integer.valueOf(attCable[1]);
            if (cableNum <= num1) return 1;
            if (cableNum <= num2) return 2;
            num2 = num1 + Integer.valueOf(attCable[1]) + Integer.valueOf(attCable[2]);
            if (cableNum <= num2) return 3;
            return 4;
        }
        return 1;
    }
}
src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java
@@ -158,7 +158,7 @@
            device.setPort(commonDevice.getPort());
            device.setOnlineTime(new Date());
            device.setStatus(Constant.YN_Y);
            device.setDeviceSn(commonDevice.getSn());
            GatewayUtils.add2Cache(device);
        }
    }
src/main/java/com/fzzy/gateway/view/GatewayDevice.view.xml
@@ -265,12 +265,15 @@
        <Property name="exClassName">toolbar-button-push</Property>
      </ToolBarButton>
      <ToolBarButton>
        <ClientEvent name="onClick">var data = view.get(&quot;#dsMain.data:#&quot;);&#xD;
var param = {&#xD;
    deviceId:data.get(&quot;deviceId&quot;),&#xD;
    bizType:&quot;testGrain&quot;&#xD;
}&#xD;
testDevice(param);</ClientEvent>
        <ClientEvent name="onClick">$confirm(&quot;确认测试粮情?&quot;,function(){&#xD;
    var data = view.get(&quot;#dsMain.data:#&quot;);&#xD;
    var param = {&#xD;
        deviceId:data.get(&quot;deviceId&quot;),&#xD;
        bizType:&quot;testGrain&quot;&#xD;
    }&#xD;
testDevice(param);&#xD;
});&#xD;
</ClientEvent>
        <Property name="caption">粮情调试</Property>
        <Property name="iconClass">fa fa-wrench</Property>
        <Property name="exClassName">toolbar-button-push</Property>
src/main/java/com/fzzy/protocol/bhzn/analysis/AnalysisService.java
@@ -392,7 +392,7 @@
        grain.setProperties(properties);
        reqData.setData(JSONObject.toJSONString(grain));
        doPushGrain(reqData);
        doPushGrain(reqData,grain);
    }
    /**
@@ -537,10 +537,10 @@
        reqData.setData(JSONObject.toJSONString(grain));
        doPushGrain(reqData);
        doPushGrain(reqData,grain);
    }
    private void doPushGrain(BaseReqData reqData) {
    private void doPushGrain(BaseReqData reqData,GrainData grainData) {
        GatewayDeviceReportService reportService = gatewayRemoteManager.getDeviceReportService(reqData.getDevice().getPushProtocol());
        if (null == reportService) {
@@ -548,6 +548,8 @@
            return;
        }
        reportService.reportGrainData(reqData);
        reqData.setData(reportService.grainData2GatewayApiInfoKafka(grainData,reqData.getDevice()).getData());
        reportService.reportGrainDataByKafka(reqData);
    }
src/main/java/com/fzzy/protocol/bhzn/service/Bhzn2GatewayGrainService.java
@@ -35,7 +35,7 @@
        GatewayDevice device = reqData.getDevice();
        //获取连接中的设备信息
        ApiCommonDevice apiCommonDevice = Constant.getCommonDeviceCache(device.getIp());
        ApiCommonDevice apiCommonDevice = Constant.getCommonDeviceCacheByIp(device.getIp());
        if (null == apiCommonDevice) {
            resp.setCode(500);
src/main/java/com/fzzy/protocol/bhzn/v0/analysis/AnalysisService.java
@@ -367,7 +367,7 @@
        reqData.setData(JSONObject.toJSONString(grain));
        doPushGrain(reqData);
        doPushGrain(reqData,grain);
    }
    /**
@@ -504,10 +504,10 @@
        reqData.setData(JSONObject.toJSONString(grain));
        doPushGrain(reqData);
        doPushGrain(reqData,grain);
    }
    private void doPushGrain(BaseReqData reqData) {
    private void doPushGrain(BaseReqData reqData,GrainData grainData) {
        GatewayDeviceReportService reportService = gatewayRemoteManager.getDeviceReportService(reqData.getDevice().getPushProtocol());
        if (null == reportService) {
@@ -515,6 +515,8 @@
            return;
        }
        reportService.reportGrainData(reqData);
        reqData.setData(reportService.grainData2GatewayApiInfoKafka(grainData,reqData.getDevice()).getData());
        reportService.reportGrainDataByKafka(reqData);
    }
src/main/java/com/fzzy/protocol/fzzy/analysis/AnalysisGrain.java
@@ -199,10 +199,10 @@
        log.info("---粮情机械封装完成----开始执行推送");
        reqData.setData(JSONObject.toJSONString(grain));
        doPushGrain(reqData);
        doPushGrain(reqData,grain);
    }
    private void doPushGrain(BaseReqData reqData) {
    private void doPushGrain(BaseReqData reqData,GrainData grainData) {
        GatewayDeviceReportService reportService = gatewayRemoteManager.getDeviceReportService(reqData.getDevice().getPushProtocol());
        if (null == reportService) {
@@ -210,6 +210,8 @@
            return;
        }
        reportService.reportGrainData(reqData);
        reqData.setData(reportService.grainData2GatewayApiInfoKafka(grainData,reqData.getDevice()).getData());
        reportService.reportGrainDataByKafka(reqData);
    }
    private void returnMsg(ApiCommonDevice ser) {
src/main/java/com/fzzy/protocol/fzzy/analysis/AnalysisSystem.java
@@ -44,7 +44,7 @@
        device.setIp(reMessage.getIp());
        device.setPort(reMessage.getPort());
        device.setSn(reMessage.getSn());
        device.setId(reMessage.getIedId());
        device.setId(d.getId());
        device.setOnlineTime(new Date());
        device.setCode("SUCCESS");
        Constant.updateCache(device);
src/main/java/com/fzzy/protocol/fzzy/service/FzzyGatewayGrainService.java
@@ -40,7 +40,7 @@
        if (null == apiCommonDevice) {
            resp.setCode(500);
            resp.setMsg("系统未获取到下行连接设备信息,无法执行");
            log.error("----------------系统未获取到下行连接设备信息,无法执行---------");
            log.error("----------------系统未获取到下行连接设备信息,无法执行---------"+device.toString());
            return resp;
        }
src/main/java/com/fzzy/protocol/wujia/analysis/AnalysisService.java
@@ -223,17 +223,18 @@
        reqData.setData(JSONObject.toJSONString(grain));
        doPushGrain(reqData);
        doPushGrain(reqData,grain);
    }
    private void doPushGrain(BaseReqData reqData) {
    private void doPushGrain(BaseReqData reqData,GrainData grainData) {
        GatewayDeviceReportService reportService = gatewayRemoteManager.getDeviceReportService(reqData.getDevice().getPushProtocol());
        if (null == reportService) {
            log.error("------------粮情推送失败,系统不存在当前协议执行类----{}", reqData.getDevice().getDeviceName());
            return;
        }
        reportService.reportGrainData(reqData);
        reqData.setData(reportService.grainData2GatewayApiInfoKafka(grainData,reqData.getDevice()).getData());
        reportService.reportGrainDataByKafka(reqData);
    }
}
src/main/java/com/fzzy/protocol/wujia/client/ClientHandler.java
@@ -2,8 +2,7 @@
import com.fzzy.api.utils.BytesUtil;
import com.fzzy.api.utils.SpringUtil;
import com.fzzy.protocol.youxian0.analysis.AnalysisService;
import com.fzzy.protocol.youxian0.client.ClientEngine;
import com.fzzy.protocol.wujia.analysis.AnalysisService;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
import lombok.extern.slf4j.Slf4j;
@@ -16,6 +15,7 @@
    private AnalysisService analysisService;
    private static String msgStr = "";
    @Override
    public void channelActive(ChannelHandlerContext ctx) {
        InetSocketAddress socketAddress = (InetSocketAddress) ctx.channel()
@@ -32,7 +32,7 @@
        InetSocketAddress socketAddress = (InetSocketAddress) ctx.channel().remoteAddress();
        log.info("连接终端掉线,IP={},port={}", socketAddress.getAddress(), socketAddress.getPort());
        ClientEngine.defaultChannel = null;
        //ClientEngine.defaultChannel = null;
    }
@@ -45,16 +45,25 @@
        String strMsg = BytesUtil.bytesToString(bytes);
        log.info("终端返回信息,IP={},port={},msg={}", socketAddress.getAddress(), socketAddress.getPort(), strMsg);
        msgStr+= strMsg;
        if (null == analysisService) {
            analysisService = SpringUtil.getBean(AnalysisService.class);
        if(msgStr.endsWith("AABBCC")){
            log.info("消息接收完整开始解析,IP={},port={},msg={}", socketAddress.getAddress(), socketAddress.getPort(), msgStr);
            if (null == analysisService) {
                analysisService = SpringUtil.getBean(AnalysisService.class);
            }
            try{
                analysisService.analysis(socketAddress.getAddress(), socketAddress.getPort(), msgStr);
            }catch (Exception e){
                log.error(e.getMessage(),e);
            }
            msgStr = "";
        }else{
            log.info("消息不完整,等待消息完整,IP={},port={},msg={}", socketAddress.getAddress(), socketAddress.getPort(), strMsg);
        }
       try{
           analysisService.analysis(socketAddress.getAddress(), socketAddress.getPort(), strMsg);
       }catch (Exception e){
           log.error(e.getMessage(),e);
       }
    }
src/main/java/com/fzzy/protocol/wujia/service/WujiaGatewayGrainService.java
@@ -36,20 +36,23 @@
    static {
        depotGrainCmdMap.put("KEY_1", "FC0101010314030100BDDB");
        depotGrainCmdMap.put("KEY_2", "FC0102040318030200BDDB");
        depotGrainCmdMap.put("KEY_3", "FC0203010318040100BDDB");
        depotGrainCmdMap.put("KEY_4", "FC0304010318040100BDDB");
        depotGrainCmdMap.put("KEY_5", "FC0305040318040200BDDB");
        depotGrainCmdMap.put("KEY_6", "FC0406010210030100BDDB");
        depotGrainCmdMap.put("KEY_7", "FC0407030314030200BDDB");
        depotGrainCmdMap.put("KEY_8", "FC0408060314030300BDDB");
        depotGrainCmdMap.put("KEY_9", "FC050901042A040100BDDB");
        depotGrainCmdMap.put("KEY_10", "FC050A010324040100BDDB");
        depotGrainCmdMap.put("KEY_11", "FC060B04042A040200BDDB");
        depotGrainCmdMap.put("KEY_1",  "FC01010103140301EBBDDB");
        depotGrainCmdMap.put("KEY_2",  "FC01020403180302EBBDDB");
        depotGrainCmdMap.put("KEY_3",  "FC02030103180401EBBDDB");
        depotGrainCmdMap.put("KEY_4",  "FC03040103180401EBBDDB");
        depotGrainCmdMap.put("KEY_5",  "FC03050403180402EBBDDB");
        depotGrainCmdMap.put("KEY_6",  "FC04060102100301EBBDDB");
        depotGrainCmdMap.put("KEY_7",  "FC04070303140302EBBDDB");
        depotGrainCmdMap.put("KEY_8",  "FC04080603140303EBBDDB");
        depotGrainCmdMap.put("KEY_9",  "FC050901042A0401EBBDDB");
        depotGrainCmdMap.put("KEY_10", "FC050A0103240401EBBDDB");
        depotGrainCmdMap.put("KEY_11", "FC060B04042A0402EBBDDB");
    }
    /**
     *      FC 64 01 01 00 09 01 1A 10 BD DB
     *      FC 01 01 01 03 14 03 01 EB BD DB
     *
     * 1仓: FC 01 01 01 03 14 03 01 00 BD DB
     * 2仓: FC 01 02 04 03 18 03 02 00 BD DB
     * 3仓: FC 02 03 01 03 18 04 01 00 BD DB
src/main/java/com/fzzy/protocol/xsyg/analysis/AnalysisService.java
@@ -197,17 +197,18 @@
        reqData.setData(JSONObject.toJSONString(grain));
        doPushGrain(reqData);
        doPushGrain(reqData,grain);
    }
    private void doPushGrain(BaseReqData reqData) {
    private void doPushGrain(BaseReqData reqData,GrainData grainData) {
        GatewayDeviceReportService reportService = gatewayRemoteManager.getDeviceReportService(reqData.getDevice().getPushProtocol());
        if (null == reportService) {
            log.error("------------粮情推送失败,系统不存在当前协议执行类----{}", reqData.getDevice().getDeviceName());
            return;
        }
        reportService.reportGrainData(reqData);
        reqData.setData(reportService.grainData2GatewayApiInfoKafka(grainData,reqData.getDevice()).getData());
        reportService.reportGrainDataByKafka(reqData);
    }
}
src/main/java/com/fzzy/protocol/youxian0/analysis/AnalysisService.java
@@ -338,18 +338,19 @@
        reqData.setData(JSONObject.toJSONString(grain));
        doPushGrain(reqData);
        doPushGrain(reqData,grain);
    }
    private void doPushGrain(BaseReqData reqData) {
    private void doPushGrain(BaseReqData reqData,GrainData grainData) {
        GatewayDeviceReportService reportService = gatewayRemoteManager.getDeviceReportService(reqData.getDevice().getPushProtocol());
        if (null == reportService) {
            log.error("------------粮情推送失败,系统不存在当前协议执行类----{}", reqData.getDevice().getDeviceName());
            return;
        }
        reportService.reportGrainData(reqData);
        reqData.setData(reportService.grainData2GatewayApiInfoKafka(grainData,reqData.getDevice()).getData());
        reportService.reportGrainDataByKafka(reqData);
    }
    private synchronized  void add2GrainMap(GrainRoot grainRoot) {
src/main/java/com/fzzy/protocol/youxian1/analysis/AnalysisService.java
@@ -295,19 +295,20 @@
        reqData.setData(JSONObject.toJSONString(grain));
        doPushGrain(reqData);
        doPushGrain(reqData,grain);
    }
    private void doPushGrain(BaseReqData reqData) {
    private void doPushGrain(BaseReqData reqData,GrainData grainData) {
        GatewayDeviceReportService reportService = gatewayRemoteManager.getDeviceReportService(reqData.getDevice().getPushProtocol());
        if (null == reportService) {
            log.error("------------粮情推送失败,系统不存在当前协议执行类----{}", reqData.getDevice().getDeviceName());
            return;
        }
        reportService.reportGrainData(reqData);
        reqData.setData(reportService.grainData2GatewayApiInfoKafka(grainData,reqData.getDevice()).getData());
        reportService.reportGrainDataByKafka(reqData);
    }
src/main/java/com/fzzy/protocol/zldz/analysis/AnalysisGrain.java
@@ -482,10 +482,10 @@
        reqData.setData(JSONObject.toJSONString(grain));
        doPushGrain(reqData);
        doPushGrain(reqData,grain);
    }
    private void doPushGrain(BaseReqData reqData) {
    private void doPushGrain(BaseReqData reqData,GrainData grainData) {
        GatewayDeviceReportService reportService = gatewayRemoteManager.getDeviceReportService(reqData.getDevice().getPushProtocol());
        if (null == reportService) {
@@ -493,6 +493,8 @@
            return;
        }
        reportService.reportGrainData(reqData);
        reqData.setData(reportService.grainData2GatewayApiInfoKafka(grainData,reqData.getDevice()).getData());
        reportService.reportGrainDataByKafka(reqData);
    }