From 5090e469d6428e4508db52b49b4e34d9ba6198ea Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期一, 28 九月 2020 08:53:07 +0800 Subject: [PATCH] Merge branch 'jswcs' of https://gitee.com/luxiaotao1123/zy-wcs into jswcs --- src/main/java/com/zy/core/model/protocol/StaProtocol.java | 13 +++++- src/main/java/com/zy/core/thread/BarcodeThread.java | 13 ++++++ src/main/webapp/views/crn.html | 14 +++--- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 36 ++++++++++------- src/main/webapp/views/console.html | 4 +- src/main/java/com/zy/core/thread/DevpThread.java | 13 ++++++ 6 files changed, 65 insertions(+), 28 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java index c31e4dd..14e9a7c 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -107,9 +107,12 @@ // 鑾峰彇鏉$爜鎵弿浠俊鎭� BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode()); String barcode = barcodeThread.getBarcode(); + if(!Cools.isEmpty(barcode)) { + System.err.println(barcode); + } // 鑾峰彇鍏ュ簱绔欎俊鎭� DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()); + StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()).clone(); if (staProtocol == null) { continue; } @@ -178,15 +181,18 @@ // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- + // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护 barcodeThread.setBarcode(""); staProtocol.setWorkNo((short) workNo); staProtocol.setStaNo(startupDto.getStaNo().shortValue()); - staProtocol.setPakMk(false); + devpThread.setPakMk(staProtocol.getSiteId(), false); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); if (!result) { throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); } + + } catch (Exception e) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); @@ -212,7 +218,7 @@ for (DevpSlave.Sta inSta : devp.getInSta()) { // 鑾峰彇鍏ュ簱绔欎俊鎭� DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()); + StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()).clone(); if (staProtocol == null) { continue; } // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 if (staProtocol.isAutoing() && staProtocol.isLoading() @@ -227,7 +233,7 @@ // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护 staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); - staProtocol.setPakMk(false); + devpThread.setPakMk(staProtocol.getSiteId(), false); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); if (result) { // 鏇存柊宸ヤ綔涓绘。 @@ -258,7 +264,7 @@ for (DevpSlave.Sta pickSta : devp.getPickSta()) { // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭� DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo()); + StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo()).clone(); if (staProtocol == null) { continue; } if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.getWorkNo() > 0 && staProtocol.isPakMk()){ @@ -321,7 +327,7 @@ // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护 staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); - staProtocol.setPakMk(false); + devpThread.setPakMk(staProtocol.getSiteId(), false); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); if (!result) { log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId()); @@ -344,7 +350,7 @@ for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) { // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅 DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); - StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo()); + StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo()).clone(); if (staProtocol == null) { continue; } if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) { // 鏌ヨ宸ヤ綔妗� @@ -446,7 +452,7 @@ boolean flag = false; // 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅 DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); - StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo()); + StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo()).clone(); if (staProtocol == null) { continue; } // 鏌ヨ绔欑偣璇︾粏淇℃伅 BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo()); @@ -454,7 +460,7 @@ log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo()); continue; } - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable() && staDetl.getCanining()!=null && staDetl.getCanining().equals("Y")) { flag = true; } @@ -534,7 +540,7 @@ } // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅 DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); - StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo()); + StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo()).clone(); if (staProtocol == null) { continue; } // 鏌ヨ绔欑偣璇︾粏淇℃伅 BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo()); @@ -544,7 +550,7 @@ } // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵�� if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() !=null && staDetl.getCanouting().equals("Y") - && staProtocol.getWorkNo() == 0) { + && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) { // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- // 鍫嗗灈鏈烘帶鍒惰繃婊� @@ -706,7 +712,7 @@ for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) { // 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭� DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - StaProtocol staProtocol = devpThread.getStation().get(emptyInSta.getStaNo()); + StaProtocol staProtocol = devpThread.getStation().get(emptyInSta.getStaNo()).clone(); if (staProtocol == null) { continue; } // 绔欑偣鏉′欢鍒ゆ柇 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() @@ -753,7 +759,7 @@ // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护 staProtocol.setWorkNo((short) workNo); staProtocol.setStaNo(startupDto.getStaNo().shortValue()); - staProtocol.setPakMk(false); + devpThread.setPakMk(staProtocol.getSiteId(), false); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); if (!result) { throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); @@ -784,7 +790,7 @@ List<WrkMast> wrkMasts = new ArrayList<>(); for (Integer staNo : led.getStaArr()) { // 鑾峰彇鍙夎溅绔欑偣 - StaProtocol staProtocol = devpThread.getStation().get(staNo); + StaProtocol staProtocol = devpThread.getStation().get(staNo).clone(); if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo() || !staProtocol.isLoading()) { continue; } // 鑾峰彇宸ヤ綔妗f暟鎹� WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo()); @@ -871,7 +877,7 @@ boolean reset = true; for (Integer staNo : led.getStaArr()) { // 鑾峰彇鍙夎溅绔欑偣 - StaProtocol staProtocol = devpThread.getStation().get(staNo); + StaProtocol staProtocol = devpThread.getStation().get(staNo).clone(); if (staProtocol == null) {continue;} if (staProtocol.getWorkNo() != 0) { reset = false; diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java index a050efb..64e43af 100644 --- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java +++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java @@ -8,7 +8,7 @@ * Created by vincent on 2020/8/6 */ @Data -public class StaProtocol { +public class StaProtocol implements Cloneable { // 绔欑偣缂栧彿 private Integer siteId; @@ -44,7 +44,7 @@ private boolean pakMk = true; // 鍙拌溅浣嶇疆 - private Integer position; + private Short position; public BasDevp toSqlModel(){ BasDevp basDevp = new BasDevp(); @@ -59,5 +59,14 @@ return basDevp; } + @Override + public StaProtocol clone() { + try { + return (StaProtocol) super.clone(); + } catch (CloneNotSupportedException e) { + e.printStackTrace(); + } + return null; + } } diff --git a/src/main/java/com/zy/core/thread/BarcodeThread.java b/src/main/java/com/zy/core/thread/BarcodeThread.java index 4bc67d7..7c613d7 100644 --- a/src/main/java/com/zy/core/thread/BarcodeThread.java +++ b/src/main/java/com/zy/core/thread/BarcodeThread.java @@ -1,5 +1,6 @@ package com.zy.core.thread; +import com.core.common.Cools; import com.zy.core.Slave; import com.zy.core.ThreadHandler; import lombok.Data; @@ -41,7 +42,7 @@ if (null != read) { barcode = new String(read); } - Thread.sleep(1000); + Thread.sleep(100); } catch (Exception e) { e.printStackTrace(); } @@ -124,6 +125,16 @@ return true; } + public String getBarcode() { + if (Cools.isEmpty(barcode)) { + return null; + } else if("NG".endsWith(barcode)) { + return null; + } else { + return barcode.trim(); + } + } + public static void main(String[] args) throws Exception { BarcodeThread barcodeThread = new BarcodeThread(new Slave()); barcodeThread.getSlave().setIp("192.168.2.150"); diff --git a/src/main/java/com/zy/core/thread/DevpThread.java b/src/main/java/com/zy/core/thread/DevpThread.java index 55be879..90d5837 100644 --- a/src/main/java/com/zy/core/thread/DevpThread.java +++ b/src/main/java/com/zy/core/thread/DevpThread.java @@ -139,7 +139,7 @@ } } // 鍙拌溅浣嶇疆 - OperateResultExOne<Integer> result2 = siemensS7Net.ReadInt32("DB100.48"); + OperateResultExOne<Short> result2 = siemensS7Net.ReadInt16("DB100.48"); if (result2.IsSuccess) { StaProtocol staProtocol = station.get(8); staProtocol.setPosition(result2.Content); @@ -192,6 +192,7 @@ // status[4] = staProtocol.isEmptyMk(); // OperateResult write2 = siemensS7Net.Write("DB100." + ((staProtocol.getSiteId() - 1) + 40), status); // 鐘舵�� if (!write.IsSuccess || !write1.IsSuccess) { + staProtocol = station.get(staProtocol.getSiteId()); if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) { staProtocol.setPakMk(true); } @@ -250,6 +251,16 @@ } } + /** + * 璁剧疆鍏ュ簱鏍囪 + */ + public void setPakMk(Integer siteId, boolean pakMk) { + StaProtocol staProtocol = station.get(siteId); + if (null != staProtocol) { + staProtocol.setPakMk(pakMk); + } + } + @Override public void close() { siemensS7Net.ConnectClose(); diff --git a/src/main/webapp/views/console.html b/src/main/webapp/views/console.html index e4f79aa..e763ea9 100644 --- a/src/main/webapp/views/console.html +++ b/src/main/webapp/views/console.html @@ -512,8 +512,8 @@ } else { siteEl.html(sites[i].siteId); } - if (i===8) { - carAnimate(i, Number(sites[i].nearbySta)); + if (i+1===8) { + carAnimate(i+1, Number(sites[i].nearbySta)); } } } else if (res.code === 403){ diff --git a/src/main/webapp/views/crn.html b/src/main/webapp/views/crn.html index c8d614e..82ba4c2 100644 --- a/src/main/webapp/views/crn.html +++ b/src/main/webapp/views/crn.html @@ -108,15 +108,15 @@ </div> <div class="select-container-item"> <span>鎺�</span> - <label><input id="sourceRow" type="number" name="points" min="0" style="background-color: #a9eeff" /></label> + <label><input id="sourceRow" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" /></label> </div> <div class="select-container-item"> <span>鍒�</span> - <label><input id="sourceBay" type="number" name="points" min="0" style="background-color: #a9eeff" /></label> + <label><input id="sourceBay" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" /></label> </div> <div class="select-container-item"> <span>灞�</span> - <label><input id="sourceLev" type="number" name="points" min="0" style="background-color: #a9eeff" /></label> + <label><input id="sourceLev" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" /></label> </div> </div> </div> @@ -130,15 +130,15 @@ </div> <div class="select-container-item"> <span>鎺�</span> - <label><input id="row" type="number" name="points" min="0" style="background-color: #a9eeff" /></label> + <label><input id="row" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" /></label> </div> <div class="select-container-item"> <span>鍒�</span> - <label><input id="bay" type="number" name="points" min="0" style="background-color: #a9eeff" /></label> + <label><input id="bay" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" /></label> </div> <div class="select-container-item"> <span>灞�</span> - <label><input id="lev" type="number" name="points" min="0" style="background-color: #a9eeff" /></label> + <label><input id="lev" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" /></label> </div> </div> </div> @@ -417,7 +417,7 @@ // 鎵嬪姩澶嶄綅 function handleReset() { - http.post(baseUrl+"/crn/operator/clearCommand", getReqParam(), function (res) { + http.post(baseUrl+"/crn/operator/handleReset", getReqParam(), function (res) { layer.msg(res.msg); }); } -- Gitblit v1.9.1