igds-core/src/main/java/com/ld/igds/common/manager/CommonManager.java
@@ -562,8 +562,9 @@ log.debug("----------------根据用户IP获取选择-地磅----{}", userIp); String key = "INOUT:WEIGHT:" + userIp; return (String) redisUtil.get(key); String sort = (String)redisUtil.get(key); if(StringUtils.isEmpty(sort))sort="1"; return sort; } /** igds-inout/src/main/java/com/ld/igds/inout/manager/InoutEventControlManager.java
@@ -6,6 +6,7 @@ import com.ld.igds.camera.data.ApiCameraResp; import com.ld.igds.camera.data.ApiSnapReq; import com.ld.igds.constant.BizType; import com.ld.igds.constant.DeviceType; import com.ld.igds.data.SnapImgDto; import com.ld.igds.file.CoreFileService; import com.ld.igds.inout.ApiInoutManager; @@ -420,30 +421,41 @@ public void onReceivePlateNum(ApiInoutData data) { InoutConf conf = this.getInoutConfBySn(data.getCompanyId(), data.getDeptId(), data.getSn()); if (null == conf) return; if (null == conf) { log.error("没有获取到出入库配置CONF:"+data.toString()); return; } log.info(conf.toString()); if (0 == conf.getInOrder()) return; data = new ApiInoutData(conf); ApiInoutService inoutApiService = apiInoutManager.getApiService(conf.getProtocol()); log.info(data.toString()); ApiInoutService inoutApiService = null; InoutConf gateconf = null; //获取车牌信息,开闸机 if (InoutApiConstant.DEVICE_CODE_1002 == data.getDeviceCode()) { gateconf = this.getWeightGateway(data.getCompanyId(), data.getDeptId(), null); if (null == gateconf) { log.info("----------没有获取到称重控制器--------------"); } data = new ApiInoutData(gateconf); //开入口处道闸 inoutApiService = apiInoutManager.getApiService(gateconf.getProtocol()); data.setDeviceCode(InoutApiConstant.DEVICE_CODE_2002); data.setActionCode(InoutApiConstant.ACTION_CODE_1); inoutApiService.gateControl(data); } if (InoutApiConstant.DEVICE_CODE_1003 == data.getDeviceCode()) { gateconf = this.getWeightGateway(data.getCompanyId(), data.getDeptId(), null); if (null == gateconf) { log.info("----------没有获取到称重控制器--------------"); } //开入口处道闸 data = new ApiInoutData(gateconf); inoutApiService = apiInoutManager.getApiService(gateconf.getProtocol()); data.setDeviceCode(InoutApiConstant.DEVICE_CODE_2003); data.setActionCode(InoutApiConstant.ACTION_CODE_1); inoutApiService.gateControl(data); } @@ -464,7 +476,7 @@ ApiInoutData apiInoutData; ApiInoutService inoutApiService; for (InoutConf conf : listInoutConf) { if (InoutConstant.CONF_TYPE_10.equals(conf.getType()) && sort.equals(conf.getSort())) { if (InoutConstant.PROGRESS_WEIGHT_TAG.equals(conf.getInoutProgress())&&InoutConstant.CONF_TYPE_10.equals(conf.getType()) && sort.equals(conf.getSort())) { apiInoutData = new ApiInoutData(conf); inoutApiService = apiInoutManager.getApiService(conf.getProtocol()); inoutApiService.initLpr(apiInoutData); @@ -515,9 +527,9 @@ if (InoutConstant.TYPE_IN.equals(data.getType())) { //结算重量大于0表示二次称重 if (data.getNetWeight() > 0) { apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_1002); apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_2002); } else { apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_1003); apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_2003); } apiData.setActionCode(InoutApiConstant.ACTION_CODE_1); @@ -525,9 +537,9 @@ } else { //结算重量大于0表示二次称重 if (data.getNetWeight() > 0) { apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_1003); apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_2002); } else { apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_1002); apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_2003); } apiData.setActionCode(InoutApiConstant.ACTION_CODE_1); inoutApiService.gateControl(apiData); igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/inout/BHZNWeightServiceImpl.java
@@ -1,16 +1,23 @@ package com.ld.igds.protocol.bhzn.inout; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; 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.protocol.bhzn.inout.client.BHZNClientEngine; import com.ld.igds.protocol.bhzn.utils.CRC16; import com.ld.igds.util.BytesUtil; import com.ld.io.api.InvokeResult; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.Map; /** * @Desc: 地磅主控协议实现,出入库相关接口 @@ -57,18 +64,41 @@ @Override 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"; @@ -129,30 +159,41 @@ public static void main(String[] args) { try{ String str1 = "许彬",str2="粤A123456",str3 = "3号仓" ,str4 = "小麦",str5="286000",str6 = "30000",str7 ="合格"; String test = "我爱中航软件"; //78340100290000000000000000 1400 0B00 01 02 00 01 0C 00 // try{ // String str1 = "许彬",str2="粤A123456",str3 = "3号仓" ,str4 = "小麦",str5="286000",str6 = "30000",str7 ="合格"; // String test = "我爱中航软件"; // //78340100290000000000000000 1400 0B00 01 02 00 01 0C 00 // String start = "FFFFFFFFFF00000000"; // String lengh = BytesUtil.tran_LH(BytesUtil.intToHexStr(8+(test.length() * 2))); // String msg = "78340100290000000000000000" + lengh+ "0B00010201010C00"; // 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"; 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"; System.out.println(msg); }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)); } igds-protocol-bhzn/src/main/java/com/ld/igds/protocol/bhzn/verb/analysis/AnalysisGas.java
@@ -18,6 +18,7 @@ import com.ld.igds.temp.dto.TempParam; import com.ld.igds.util.BytesUtil; 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.stereotype.Component; @@ -79,6 +80,7 @@ Integer[] n2ValArray = res209.getN2ValArray(); Integer[] pH3ValArray = res209.getPH3ValArray(); Integer[] cO2ValArray = res209.getCO2ValArray(); double sumO2 = 0.0, sumCo2 = 0.0, sumPh3 = 0.0, sumN2 = 0.0; for (int i=0;i<res209.getCO2ValArray().length;i++){ info = new GasInfo(); info.setId(ContextUtil.buildInfoId(gas.getCompanyId(), gas.getDepotId(), gas.getBatchId())); @@ -130,7 +132,10 @@ if (info.getPerN2() < gas.getPerN2Min()) { gas.setPerN2Min(info.getPerN2()); } sumO2 += info.getPerO2(); sumCo2 += info.getPerCo2(); sumPh3 += info.getPerPh3(); sumN2 += info.getPerN2(); //固定为:passCode,co2,o2,ph3,n2;passCode,co2,o2,ph3,n2;" sb.append(info.getPassCode()); sb.append(","); @@ -143,6 +148,13 @@ sb.append(info.getPerN2()); sb.append(";"); } if(res209.getCO2ValArray().length>1){ gas.setPerCo2(NumberUtil.keepPrecision(sumCo2/res209.getCO2ValArray().length, 2)); gas.setPerO2(NumberUtil.keepPrecision(sumO2/res209.getCO2ValArray().length, 2)); gas.setPerN2(NumberUtil.keepPrecision(sumN2/res209.getCO2ValArray().length, 2)); gas.setPerPh3(NumberUtil.keepPrecision(sumPh3/res209.getCO2ValArray().length, 2)); } gas.setPoints(sb.toString()); gasService.saveInfoGas(items); igds-protocol-sdk/src/main/java/com/ld/igds/protocol/hk/HkApiInoutService.java
@@ -77,7 +77,7 @@ } // 登陆 msg = alarmLpr.login(param.getDeviceCode(), param.getIp(), param.getPort(), param.getLoginId(), param.getPwd()); msg = alarmLpr.login(param.getChanNum(), param.getIp(), param.getPort(), param.getLoginId(), param.getPwd()); if (HKConstant.RESULT_SUCCESS.equals(msg)) { param.setStatus(Constant.YN_Y); @@ -90,7 +90,8 @@ return msg; } catch (Exception e) { log.error("----------------初始化车牌识别执行识别----------------------"); log.error("----------------初始化车牌识别执行识别失败----------------------"); log.error(e.getMessage(),e); } return null; igds-protocol-sdk/src/main/java/com/ld/igds/protocol/hk/common/LPRCallBask_V31.java
@@ -65,7 +65,9 @@ log.info("车牌号:" + sLicense + ":车辆类型:" + VehicleType + ":监控点编号:" + MonitoringSiteID + "-设备IP=" + deviceIp + "-SN=" + deviceSn); ApiInoutData data = HKConstant.getDataBySn(deviceSn); if (null != data) { log.info(data.toString()); data.setPlateNum(sLicense.substring(1)); data.setErrorMsg(HKConstant.RESULT_SUCCESS); data.setTime(new Date()); @@ -73,9 +75,11 @@ if (inoutEventControlManager == null) { inoutEventControlManager = SpringUtil.getBean(InoutEventControlManager.class); inoutEventControlManager.onReceivePlateNum(data); } } inoutEventControlManager.onReceivePlateNum(data); }else{ log.error("没有获取到车牌识别的配置!"); } } catch (IOException e) { igds-protocol-sdk/src/main/java/com/ld/igds/protocol/hk/lpr/AlarmLpr.java
@@ -164,7 +164,7 @@ } log.debug(ip + ":设备登录成功!"); log.info(ip + ":车牌识别设备登录成功!"); return HKConstant.RESULT_SUCCESS; } igds-web/pom.xml
@@ -183,7 +183,21 @@ </exclusion> </exclusions> </dependency> <dependency> <groupId>com.ld.igds</groupId> <artifactId>igds-protocol-sdk</artifactId> <version>${igds.version}</version> <exclusions> <exclusion> <artifactId>slf4j-log4j12</artifactId> <groupId>org.slf4j</groupId> </exclusion> <exclusion> <artifactId>log4j</artifactId> <groupId>log4j</groupId> </exclusion> </exclusions> </dependency> </dependencies> <dependencyManagement>