From 52a3d2b51c7ca58abcb0e31783671af98d526aef Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期五, 22 十二月 2023 12:17:23 +0800 Subject: [PATCH] #检料盘点工作档更新 --- src/main/java/com/zy/core/thread/LiftThread.java | 54 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 49 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/zy/core/thread/LiftThread.java b/src/main/java/com/zy/core/thread/LiftThread.java index 4a7d3c0..e2845c5 100644 --- a/src/main/java/com/zy/core/thread/LiftThread.java +++ b/src/main/java/com/zy/core/thread/LiftThread.java @@ -32,6 +32,7 @@ import java.text.MessageFormat; import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.List; /** @@ -87,6 +88,8 @@ case 3: assignWork((LiftAssignCommand) task.getData()); break; + case 4: + write2((HashMap<String, Object>) task.getData()); default: break; } @@ -269,6 +272,13 @@ } } + Thread.sleep(100); + //鑾峰彇鎻愬崌鏈哄紓甯告暟鎹� + OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB82.22.0", (short) 2); + if (result3.IsSuccess) { + liftProtocol.setErrorCode(siemensS7Net.getByteTransform().TransInt16(result3.Content, 0));//閿欒鐮� + } + } catch (Exception e) { OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆戞彁鍗囨満plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); } @@ -285,6 +295,7 @@ OperateResult result = siemensS7Net.Write("DB83.0", array); if (result != null && result.IsSuccess) { + liftProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿 News.info("鎻愬崌鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command)); OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command))); return true; @@ -326,7 +337,7 @@ redisCommand.setCommandStep(0);//鍛戒护鎵ц姝ュ簭 redisCommand.setAssignCommand(assignCommand);//鍛戒护 //浠诲姟鏁版嵁淇濆瓨鍒皉edis - redisUtil.set("lift_wrk_no_" + assignCommand.getTaskNo(), JSON.toJSONString(redisCommand)); + redisUtil.set(RedisKeyType.LIFT.key + assignCommand.getTaskNo(), JSON.toJSONString(redisCommand)); liftProtocol.setAssignCommand(assignCommand); liftProtocol.setProtocolStatus(LiftProtocolStatusType.WORKING); //鎵ц涓嬪彂浠诲姟 @@ -341,7 +352,7 @@ } WrkMastMapper wrkMastMapper = SpringUtils.getBean(WrkMastMapper.class); - Object o = redisUtil.get("lift_wrk_no_" + wrkNo); + Object o = redisUtil.get(RedisKeyType.LIFT.key + wrkNo); if (o == null) { return false; } @@ -354,6 +365,10 @@ //鍙栧嚭鍛戒护 NyLiftCommand command = commands.get(commandStep); + + if (!redisCommand.getLiftNo().equals(liftProtocol.getLiftNo())) { + return false; + } //涓嬪彂鍛戒护 if (!write(command)) { @@ -373,7 +388,7 @@ short[] commandArr = getCommandArr(command);//鑾峰彇鍛戒护鎶ユ枃 BasLiftOpt opt = new BasLiftOpt( redisCommand.getWrkNo().intValue(), - redisCommand.getLiftNo().intValue(), + liftProtocol.getLiftNo().intValue(), new Date(), null, null, @@ -392,11 +407,11 @@ commandStep++; redisCommand.setCommandStep(commandStep); //浠诲姟鏁版嵁淇濆瓨鍒皉edis - redisUtil.set("lift_wrk_no_" + redisCommand.getWrkNo(), JSON.toJSONString(redisCommand)); + redisUtil.set(RedisKeyType.LIFT.key + redisCommand.getWrkNo(), JSON.toJSONString(redisCommand)); }else { //宸叉墽琛屽畬鎴� //鍒犻櫎redis - redisUtil.del("lift_wrk_no_" + redisCommand.getWrkNo()); + redisUtil.del(RedisKeyType.LIFT.key + redisCommand.getWrkNo()); //瀵逛富绾跨▼鎶涘嚭绛夊緟纭鐘舵�亀aiting liftProtocol.setProtocolStatus(LiftProtocolStatusType.WAITING); @@ -418,6 +433,35 @@ return true; } + //缁欐彁鍗囨満鍐欏叆杩涘嚭鐘舵�� + private void write2(HashMap<String,Object> data) { +// //鍑� +// status = true; +// //杩� +// status = false; + int lev = Integer.parseInt(data.get("lev").toString()); + boolean status = Boolean.parseBoolean(data.get("status").toString()); + + ArrayList<String> list = new ArrayList<String>(){{ + add("83.8.0"); + add("83.8.1"); + add("83.8.2"); + add("83.8.3"); + add("83.8.4"); + add("83.8.5"); + add("83.8.6"); + add("83.8.7"); + add("83.9.0"); + add("83.9.1"); + }}; + OperateResult result = siemensS7Net.Write("DB" + list.get(lev - 1), status); + if (result != null && result.IsSuccess) { + News.info("鎻愬崌鏈哄懡浠や笅鍙慬id:{}]", slave.getId()); + } else { + News.error("鍐欏叆鎻愬崌鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + } + } + /******************************************************************************************/ /**************************************** 娴嬭瘯涓撶敤 *****************************************/ /*****************************************************************************************/ -- Gitblit v1.9.1