From 69cd9f59a0fabf12f8c9147fcba7f69817a870b3 Mon Sep 17 00:00:00 2001 From: jiazx0107@163.com <jiazx0107@163.com> Date: 星期一, 06 十一月 2023 23:40:59 +0800 Subject: [PATCH] 更新仓内抓拍2 --- igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/inout/BHZNWeightServiceImpl.java | 242 +++++++++++++++++++++++++++++++++++++---------- 1 files changed, 189 insertions(+), 53 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 d09d9be..bc8108e 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 @@ -1,16 +1,30 @@ package com.ld.igds.protocol.bhzn.inout; +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; /** * @Desc: 鍦扮涓绘帶鍗忚瀹炵幇锛屽嚭鍏ュ簱鐩稿叧鎺ュ彛 @@ -21,7 +35,8 @@ // @Autowired // private Inoutservice inoutservice; - + @Autowired + private CoreCommonService coreCommonService; @Override public String getProtocol() { return ProtocolEnum.TCP_BHZH_INOUT_V1.getCode(); @@ -55,20 +70,43 @@ * @return */ @Override - public String gateControl(ApiInoutData param, InoutData data) { + public String gateControl(ApiInoutData param) { try{ -// ReqGate reqGate = new ReqGate(); + log.info("BHZN鍑哄叆搴撴帶鍒跺櫒鎺у埗閬撻椄寮�濮�"); + String actionCode = param.getActionCode(); BHZNClientEngine test = new BHZNClientEngine( param.getIp(), param.getPort()); test.start(); - String msg = "<BHZN>{\"cmd\":226,\"content\":{" + - "\"value\":[1,1]," + - "\"LEDValue\":[1,1]" + - "},\"orderId\":\"5009\",\"result\":\"\",\"sign\":\"0000\",\"stNum\":1,\"version\":\"V1.0000000\"}<END>"; + Integer[] value = new Integer[]{0,0}; + 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"); + message.put("sn","1000000001"); + Map<String,Object> content = new HashMap<>(); +// String msg = "<BHZN>{\"cmd\":226,\"content\":{" ; + if(InoutApiConstant.DEVICE_CODE_2002 == param.getDeviceCode()){ + content.put("value",new Integer[]{1,0}); + content.put("LEDValue",new Integer[]{1,0}); +// msg += "\"value\":[1,0]," ; +// msg+= "\"LEDValue\":[1,0]" ; + } + if(InoutApiConstant.DEVICE_CODE_2003 == param.getDeviceCode()){ + content.put("value",new Integer[]{0,1}); + content.put("LEDValue",new Integer[]{0,1}); + } + message.put("content", content); +// msg+= "},\"orderId\":\"5009\",\"result\":\"\",\"sign\":\"0000\",\"stNum\":100,\"version\":\"V1.0000000\"}<END>"; - // Thread.sleep(3000L); + Thread.sleep(3000L); + String msg = "<BHZN>" + JSON.toJSONString(message) + "<END>" ; + InvokeResult result = test.send(msg.getBytes()); + log.info("BHZN鍑哄叆搴撴帶鍒跺櫒鎺у埗閬撻椄缁撴潫,MSG=" +msg); + log.info("result=" +result.getMessage()); - test.send(BytesUtil.hexStrToBytes(msg)); }catch (Exception e){ log.error(e.getMessage(),e); return "ERROR"; @@ -78,7 +116,7 @@ } @Override - public String lightControl(ApiInoutData param, InoutData data) { + public String lightControl(ApiInoutData param) { return null; } @@ -90,30 +128,65 @@ @Override public String noticeLed(ApiInoutData param, InoutData data) { // todo + try{ + log.info("BHZN鎺у埗LED寮�濮�"); + BHZNClientEngine test = new BHZNClientEngine( + "192.168.0.210", 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()); - /** - * 澧炲姞鐧藉悕鍗� --璋冪敤瀛愮嚎绋嬪疄鐜� - * - * @param param deviceId鍜宎ctionCode 涓嶅彲涓虹┖ - * @return - */ - public String addWhitePlate(ApiInoutData param) { + //鍝佺 + 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()); - return "SUCCESS"; - } + log.info("BHZN鎺у埗LED缁撴潫"); - /** - * 鍒犻櫎鐧藉悕鍗�---璋冪敤瀛愮嚎绋嬪疄鐜� - * - * @param param - * @return - */ - public String delWhitePlate(ApiInoutData param) { + return result.getMessage(); + }catch (Exception e){ + log.error(e.getMessage(),e); + return "ERROR"; + } - return "SUCCESS"; } @@ -130,12 +203,62 @@ public static void main(String[] args) { 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 str1 = "璁稿浆",str2="绮123456",str3 = "3鍙蜂粨" ,str4 = "灏忛害",str5="286000",str6 = "30000",str7 ="鍚堟牸"; +// 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 lengh2 = BytesUtil.tran_LH(BytesUtil.intToHexStr((test.length() * 2))); +// String msg = "78340100290000000000000000" + lengh+ "100001020101" + 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; +// System.out.println(msg); + }catch (Exception e){ + e.printStackTrace(); + } - String lengh = BytesUtil.tran_LH(BytesUtil.intToHexStr(8+test.length())); - String msg = "78340100290000000000000000 " + lengh+ "0B00010200010C00"; +// 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(); @@ -143,20 +266,17 @@ // 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; - System.out.println(msg); }catch (Exception e){ - e.printStackTrace(); + log.error(e.getMessage(),e); + return " "; } - - } - - - //hexToBytes鏂规硶锛氬崄鍏繘鍒跺瓧绗︿覆杞琤yte[]锛岀綉涓婂緢澶� //getRepair0鏂规硶锛氳ˉ0鐨勶紝寰堢畝鍗曪紝鑷繁瀹炵幇鍚� @@ -169,20 +289,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(); } + } -- Gitblit v1.9.3