From 8c3544c7ff6f6820d36e24af6d6e72b7e9cba75a Mon Sep 17 00:00:00 2001
From: YYC <1833023622@qq.com>
Date: 星期五, 07 七月 2023 19:18:04 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/verb/analysis/AnalysisService.java       |    6 +
 igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/verb/server/BhznVerbMessageConsumer.java |    9 +
 igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/inout/BHZNWeightServiceImpl.java         |  183 ++++++++++++++++++++++++++++++------
 igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/verb/analysis/AnalysisWeather.java       |   90 ++++++++++++++++++
 4 files changed, 251 insertions(+), 37 deletions(-)

diff --git a/igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/inout/BHZNWeightServiceImpl.java b/igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/inout/BHZNWeightServiceImpl.java
index 6ed27b6..db66db0 100644
--- a/igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/inout/BHZNWeightServiceImpl.java
+++ b/igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/inout/BHZNWeightServiceImpl.java
@@ -2,19 +2,26 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.ld.igds.common.CoreCommonService;
+import com.ld.igds.constant.FoodVariety;
 import com.ld.igds.inout.ApiInoutService;
 import com.ld.igds.inout.InoutApiConstant;
 import com.ld.igds.inout.InoutConstant;
 import com.ld.igds.inout.dto.ApiInoutData;
 import com.ld.igds.inout.dto.InoutData;
 import com.ld.igds.io.constant.ProtocolEnum;
+import com.ld.igds.models.Depot;
 import com.ld.igds.protocol.bhzn.inout.client.BHZNClientEngine;
 import com.ld.igds.protocol.bhzn.utils.CRC16;
+import com.ld.igds.protocol.bhzn.verb.dto.IoMessage;
 import com.ld.igds.util.BytesUtil;
 import com.ld.io.api.InvokeResult;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import javax.xml.ws.soap.Addressing;
 import java.io.UnsupportedEncodingException;
 import java.util.HashMap;
 import java.util.Map;
@@ -28,7 +35,8 @@
 
 //    @Autowired
 //    private Inoutservice inoutservice;
-
+    @Autowired
+    private CoreCommonService coreCommonService;
     @Override
     public String getProtocol() {
         return ProtocolEnum.TCP_BHZH_INOUT_V1.getCode();
@@ -120,8 +128,65 @@
     @Override
     public String noticeLed(ApiInoutData param, InoutData data) {
         // todo
+        try{
+            log.info("BHZN鎺у埗LED寮�濮�");
+            BHZNClientEngine test = new BHZNClientEngine(
+                    "12.10.0.187", 58258);
+            test.start();
+            Thread.sleep(3000L);
 
-        return null;
+            // 濮撳悕
+            String msg =  getMsg(StringUtils.isEmpty(data.getUserName())?"  ":data.getUserName(),"0B00");
+            log.info("msg=" + msg);
+            InvokeResult result = test.send(BytesUtil.hexStrToBytes(msg));
+            log.info("result=" +result.getMessage());
+            //杞︾墝
+            msg =  getMsg(StringUtils.isEmpty(data.getPlateNum())?"  ":data.getPlateNum(),"0C00");
+            log.info("msg=" + msg);
+            result = test.send(BytesUtil.hexStrToBytes(msg));
+            log.info("result=" +result.getMessage());
+            //浠撳簱
+            Depot depot =coreCommonService.getDepotById(data.getCompanyId(),data.getDepotId());
+            String depotName ="  ";
+            if(depot != null)
+            {
+                depotName = depot.getName();
+            }
+            msg =  getMsg(StringUtils.isEmpty(depotName)?"  ":depotName,"0D00");
+            log.info("msg=" + msg);
+             result = test.send(BytesUtil.hexStrToBytes(msg));
+            log.info("result=" +result.getMessage());
+
+            //鍝佺
+           String foodvariety =  FoodVariety.getMsg(data.getFoodVariety());
+           msg =  getMsg(StringUtils.isEmpty(foodvariety)?"  ":foodvariety,"0E00");
+           log.info("msg=" + msg);
+           result = test.send(BytesUtil.hexStrToBytes(msg));
+           log.info("result=" +result.getMessage());
+           //姣涢噸
+            msg =  getMsg((data.getFullWeight() == null )?"  ":data.getFullWeight().toString(),"0F00");
+            log.info("msg=" + msg);
+            result = test.send(BytesUtil.hexStrToBytes(msg));
+            log.info("result=" +result.getMessage());
+            //鐨噸
+            msg =  getMsg((data.getEmptyWeight() == null )?"  ":data.getEmptyWeight().toString(),"1000");
+            log.info("msg=" + msg);
+            result = test.send(BytesUtil.hexStrToBytes(msg));
+            log.info("result=" +result.getMessage());
+            //鍖栭獙缁撴灉
+            msg =  getMsg("鍚堟牸","1100");
+            log.info("msg=" + msg);
+            result = test.send(BytesUtil.hexStrToBytes(msg));
+            log.info("result=" +result.getMessage());
+
+           log.info("BHZN鎺у埗LED缁撴潫");
+
+            return result.getMessage();
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+            return "ERROR";
+        }
+
     }
 
     /**
@@ -159,13 +224,14 @@
 
 
     public static void main(String[] args) {
-//        try{
+        try{
 //            String str1 = "璁稿浆",str2="绮123456",str3 = "3鍙蜂粨" ,str4 = "灏忛害",str5="286000",str6 = "30000",str7 ="鍚堟牸";
-//            String test = "鎴戠埍涓埅杞欢";
-//            //78340100290000000000000000 1400 0B00 01 02 00 01 0C 00
-//            String start = "FFFFFFFFFF00000000";
+//            String test = "120000.0";
+//            //FF FF FF FF FF FF 00 00 00 00 78 34 01 00 29 BC FD 00 00 00 00 00 00 14 00 11 00 01 02 06 01 0C 00 CE D2 B0 AE D6 D0 BA BD C8 ED BC FE 87 1F A5
+//            String start = "FFFFFFFFFFFF00000000";
 //            String lengh = BytesUtil.tran_LH(BytesUtil.intToHexStr(8+(test.length() * 2)));
-//            String msg = "78340100290000000000000000" + lengh+ "0B00010201010C00";
+//            String lengh2 = BytesUtil.tran_LH(BytesUtil.intToHexStr((test.length() * 2)));
+//            String msg = "78340100290000000000000000" + lengh+ "100001020101" + lengh2;
 //            msg = msg + convertStr(test);
 //            msg = msg.toUpperCase();
 //
@@ -178,26 +244,61 @@
 //            msg += "A5";
 //            msg = start +msg;
 //            System.out.println(msg);
-//        }catch (Exception e){
-//            e.printStackTrace();
-//        }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
 
-        Map<String,Object> message = new HashMap<>();
-        message.put("cmd",226);
-        message.put("orderId","5009");
-        message.put("result","0");
-        message.put("sign","0000");
-        message.put("stNum",100);
-        message.put("version","V1.0000000");
-        Map<String,Object> content = new HashMap<>();
-            content.put("value",new Integer[]{0,1});
-            content.put("LEDValue",new Integer[]{0,1});
-        message.put("content", content);
-        System.out.println(JSON.toJSONString(message));
+//        Map<String,Object> message = new HashMap<>();
+//        message.put("cmd",226);
+//        message.put("orderId","5009");
+//        message.put("result","0");
+//        message.put("sign","0000");
+//        message.put("stNum",100);
+//        message.put("version","V1.0000000");
+//        Map<String,Object> content = new HashMap<>();
+//            content.put("value",new Integer[]{0,1});
+//            content.put("LEDValue",new Integer[]{0,1});
+//        message.put("content", content);
+//        System.out.println(JSON.toJSONString(message));
+
+
+            IoMessage message = JSON.parseObject("{Cmd:120}",IoMessage.class);
+            System.out.println(message.getCmd());
     }
 
+    /**
+     *
+     * @param s 瀛楃涓�
+     * @param id 0B00 瀛楃ID
+     * @return
+     */
+    public static String getMsg(String s ,String id){
+        try{
+           // String str1 = "璁稿浆",str2="绮123456",str3 = "3鍙蜂粨" ,str4 = "灏忛害",str5="286000",str6 = "30000",str7 ="鍚堟牸";
+            String test = s;
+            //FF FF FF FF FF FF 00 00 00 00 78 34 01 00 29 BC FD 00 00 00 00 00 00 14 00 11 00 01 02 06 01 0C 00 CE D2 B0 AE D6 D0 BA BD C8 ED BC FE 87 1F A5
+            String start = "FFFFFFFFFFFF00000000";
+            String lengh = BytesUtil.tran_LH(BytesUtil.intToHexStr(8+(test.length() * 2)));
+            String lengh2 = BytesUtil.tran_LH(BytesUtil.intToHexStr((test.length() * 2)));
+            String msg = "78340100290000000000000000" + lengh+ id+"01020101" + lengh2;
+            msg = msg + convertStr(test);
+            msg = msg.toUpperCase();
 
+//        String t = "78 34 01 00 29 BC FD 00 00 00 00 00 00 14 00 01 00 01 02 06 01 0C 00 CE D2 B0 AE D6 D0 BA BD C8 ED BC FE";
+//         t =   t.replaceAll(" ","");
+            String check = BytesUtil.tran_LH(BytesUtil.intToHexStr(CRC16.calcCrc16(BytesUtil.hexStrToBytes(msg))));
+            System.out.println(check);
+            msg+=check;
+            msg += "A5";
+            msg = start +msg;
+            //log.info(msg);
+            return msg;
 
+        }catch (Exception e){
+           log.error(e.getMessage(),e);
+           return "  ";
+        }
+    }
 
     //hexToBytes鏂规硶锛氬崄鍏繘鍒跺瓧绗︿覆杞琤yte[]锛岀綉涓婂緢澶�
     //getRepair0鏂规硶锛氳ˉ0鐨勶紝寰堢畝鍗曪紝鑷繁瀹炵幇鍚�
@@ -210,20 +311,36 @@
      * @throws UnsupportedEncodingException
      */
     public static String convertStr(String msg) throws Exception {
-        //鍏堟妸瀛楃涓叉寜gb2312杞垚byte鏁扮粍
-        byte[] bytes = msg.getBytes("gb2312");
         StringBuilder gbString = new StringBuilder();
-
-        for (byte b : bytes)
-        {
-            // 鍐嶇敤Integer涓殑鏂规硶锛屾妸姣忎釜byte杞崲鎴�16杩涘埗杈撳嚭
-            String temp = Integer.toHexString(b);
-            //鍒ゆ柇杩涜鎴彇
-            if(temp.length()>=8){
-                temp = temp.substring(6, 8);
+        String t = null;
+        char[] chars = msg.toCharArray();
+        String s= "";
+        for(int i=0;i<chars.length;i++){
+             t = "";
+             s = msg.substring(i,i+1);
+            //鍏堟妸瀛楃涓叉寜gb2312杞垚byte鏁扮粍
+            byte[] bytes = s.getBytes("gb2312");
+            for (byte b : bytes)
+            {
+                // 鍐嶇敤Integer涓殑鏂规硶锛屾妸姣忎釜byte杞崲鎴�16杩涘埗杈撳嚭
+                String temp = Integer.toHexString(b);
+                //鍒ゆ柇杩涜鎴彇
+                if(temp.length()>=8){
+                    temp = temp.substring(6, 8);
+                }
+                t +=(temp);
             }
-            gbString.append(temp);
+            if(t.length()<4){
+                for (int k =0;k<4;k++){
+                    if(t.length()<4){
+                        t = "0"+t;
+                    }
+                }
+            }
+            gbString.append(t);
         }
+
         return gbString.toString();
     }
+
 }
diff --git a/igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/verb/analysis/AnalysisService.java b/igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/verb/analysis/AnalysisService.java
index 04f7a1f..75d3394 100644
--- a/igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/verb/analysis/AnalysisService.java
+++ b/igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/verb/analysis/AnalysisService.java
@@ -51,7 +51,8 @@
     private AnalysisGas analysisGas;
     @Autowired
     private AnalysisES analysisEs;
-
+    @Autowired
+    private AnalysisWeather analysisWeather;
     /**
      * @param message
      */
@@ -79,6 +80,9 @@
                 case 240:
                     analysisEs.analysis(message, ser);
                     break;
+                case 160:
+                    analysisWeather.analysis(message, ser);
+                    break;
                 default:
                     log.error("鎺у埗鏌滃懡浠ょ爜瑙f瀽澶辫触锛�");
                     break;
diff --git a/igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/verb/analysis/AnalysisWeather.java b/igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/verb/analysis/AnalysisWeather.java
new file mode 100644
index 0000000..22628b9
--- /dev/null
+++ b/igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/verb/analysis/AnalysisWeather.java
@@ -0,0 +1,90 @@
+package com.ld.igds.protocol.bhzn.verb.analysis;
+
+import com.alibaba.fastjson.JSONObject;
+import com.ld.igds.common.CoreCommonService;
+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.models.*;
+import com.ld.igds.protocol.bhzn.verb.command.BaseRemoteImpl;
+import com.ld.igds.protocol.bhzn.verb.dto.IoMessage;
+import com.ld.igds.protocol.bhzn.verb.dto.Res209;
+import com.ld.igds.util.ContextUtil;
+import com.ld.igds.util.NumberUtil;
+import com.ld.igds.weather.WeatherUtil;
+import com.ld.igds.weather.notify.NotifyWeatherService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.text.DecimalFormat;
+import java.text.NumberFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 姘斾綋瑙f瀽
+ */
+@Slf4j
+@Component(AnalysisWeather.BEAN_ID)
+public class AnalysisWeather extends BaseRemoteImpl {
+
+    public static final String BEAN_ID = "bhzn.analysisWeather";
+
+    @Autowired
+    private CoreDeviceService deviceService;
+    @Autowired
+    private NotifyWebInvoker notifyInvoker;
+    @Autowired
+    private CoreCommonService commonService;
+    @Resource(name = NotifyWeatherService.BEAN_ID)
+    private NotifyWeatherService notifyService;
+
+    /**
+     * 璁惧鐘舵��
+     *
+     * @param reMessage
+     * @param ser
+     */
+    public void analysis(IoMessage reMessage, DeviceSer ser) {
+
+        log.info("姘旇薄绔欐娴嬪紑濮嬭В鏋�");
+        JSONObject jsonObject = JSONObject.parseObject(reMessage.getStrMsg());
+
+
+        log.info("姘旇薄杩斿洖缁撴灉={}", reMessage.getStrMsg());
+        int Temper = jsonObject.getInteger("Temper");
+        int Humy = jsonObject.getInteger("Humy");
+        int WindSpeed = jsonObject.getInteger("WindSpeed");
+        int RainFall = jsonObject.getInteger("RainFall");
+        int Pressure = jsonObject.getInteger("Pressure");
+        int WindDir = jsonObject.getInteger("WindDir");
+
+
+        WeatherInfo info = new WeatherInfo();
+        info.setId(WeatherUtil.buildWeatherId("5324_001", new Date()));
+//        info.setAirLevel(dto.getAir_level());
+        info.setCompanyId(ser.getCompanyId());
+        info.setDeptId("5324_001");
+        info.setHumidity((Humy/10)+"");
+        //info.setPm25(dto.getAir_pm25());
+        info.setPressure(Pressure+"");
+        info.setSource(WeatherUtil.SOURCE_01);
+        info.setTemp((Temper/10)+"");
+        info.setWeather(RainFall > 0?"涓嬮洦":"鏅村ぉ");
+        info.setWindDirection(WindDir+"");
+//        info.setWindSpeed();
+        info.setWindMeter((WindSpeed/10) + "");
+        info.setCity("楂樺窞甯�");
+        info.setUpdateTime(new Date());
+
+        notifyService.notify(info);
+        log.info("鎺у埗鏌�----->>>骞冲彴锛氭皵璞$珯妫�娴嬭В鏋愬畬鎴�-");
+
+    }
+
+}
diff --git a/igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/verb/server/BhznVerbMessageConsumer.java b/igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/verb/server/BhznVerbMessageConsumer.java
index a358996..56d2940 100644
--- a/igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/verb/server/BhznVerbMessageConsumer.java
+++ b/igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/verb/server/BhznVerbMessageConsumer.java
@@ -51,13 +51,16 @@
             reMessage = JSON.parseObject(message, IoMessage.class);
             JSONObject jsonObject = JSON.parseObject(message);
             reMessage.setContentStr(jsonObject.getString("content"));
-            if (StringUtils.isEmpty(reMessage.getSn()) ||
-                    reMessage.getStNum()== null ||
+            if (
                     reMessage.getCmd() == null) {
+
                 log.error("鎺у埗鏌�------>>>>骞冲彴锛氭姤鏂囦俊鎭笉瀹屾暣锛屼笉鍋氳В鏋�-IP={}锛宲ort={}锛宮sg={}", session.getAddress(), session.getPort(), message);
                 return;
             }
-
+            if(StringUtils.isEmpty(reMessage.getSn())){
+                //姘旇薄绔�
+                reMessage.setSn("9999");
+            }
             //鏍规嵁SN鑾峰彇缁勭粐缂栫爜
             String companyId = ContextUtil.getCompanyIdBySn(reMessage.getSn());
             if (null == companyId) {

--
Gitblit v1.9.3