From 6fcad8a10aab91b9a0825b0465b7e21d37df2332 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期三, 22 十月 2025 11:53:13 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 385 ++++++++++++++++++++++++----------
src/main/webapp/views/console.html | 124 +++++-----
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java | 8
src/main/resources/mapper/WrkMastMapper.xml | 19 +
src/main/java/com/zy/core/MainProcess.java | 2
src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java | 2
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 100 ++++++++
src/main/resources/mapper/WrkMastStaMapper.xml | 20 +
8 files changed, 476 insertions(+), 184 deletions(-)
diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
index 265fb12..fb0fe85 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -49,6 +49,11 @@
// @Select("select top 1 * from dbo.asr_wrk_mast where source_sta_no=#{sourceStaNo} and wrk_sts=12 and io_type>100 order by io_pri desc,io_time desc,wrk_no ASC")
WrkMast selectPakOutStep2(@Param("sourceStaNo")Integer sourceStaNo);
+ WrkMast selectPakOutStep9997(@Param("sourceStaNo")Integer sourceStaNo);
+ WrkMast selectPakOutStep107(@Param("barcode")String barcode);
+ WrkMast selectPakOutStep9996(@Param("sourceStaNo")Integer sourceStaNo);
+
+
// 搴撲綅绉昏浆宸ヤ綔妗o紝鍦ㄨ繘琛屼竴娆″叆鍑哄簱浣滀笟鍚庣揣璺熷簱浣嶇Щ杞�
// @Select("select top 1 * from dbo.asr_wrk_mast where wrk_sts=11 and (io_type=11 or io_type=110) and crn_no=#{crnNo} order by io_time,wrk_no")
WrkMast selectLocMove(@Param("crnNo")Integer crnNo);
@@ -113,5 +118,8 @@
WrkMast selectPickStep3(@Param("barcode")String barcode);
WrkMast selectByWrkNo(@Param("wrkNo")Integer wrkNo);
+ WrkMast selectByWrkNo9996(@Param("wrkNo")Integer wrkNo);
+ WrkMast selectByWrkNo9997(@Param("wrkNo")Integer wrkNo);
+
Integer countPakOutEmpty(@Param("staNo")Integer outSite);
}
diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java
index b4ded1c..553fde9 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java
@@ -33,6 +33,8 @@
* 鏌ヨ涓嶅共娑夌殑鍙墽琛屼换鍔�
* */
WrkMastSta selectNoInterfere(@Param("staStarts") List<Integer> staStarts, @Param("staEnds") List<Integer> staEnds,@Param("workNo")Long workNo );
+ WrkMastSta selectNoInterfereCrn(@Param("staStarts") List<Integer> staStarts, @Param("staEnds") List<Integer> staEnds,@Param("workNo")Long workNo );
+
List<WrkMastSta> selectNoInterfereList(@Param("staStarts") List<Integer> staStarts, @Param("staEnds") List<Integer> staEnds);
WrkMastSta selectNoInterfereToCrn(@Param("staStarts") List<Integer> staStarts, @Param("staEnds") List<Integer> staEnds,@Param("workNo")Long workNo );
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 47e4f08..1a0084f 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -747,6 +747,101 @@
staProtocol = staProtocol.clone();
}
if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
+ WrkMast wrkMast9997 = wrkMastMapper.selectPakOutStep9997(staProtocol.getSiteId());
+ WrkMast wrkMast9996 = wrkMastMapper.selectPakOutStep9996(staProtocol.getSiteId());
+
+ if(crnSlave.getId() == 3 && wrkMast9997 != null){
+ WrkMast wrkMast107 = wrkMastMapper.selectPakOutStep107(wrkMast9997.getBarcode());
+ // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗�
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkMast107.getCrnNo());
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) {
+ // 绉诲姩涓�
+ continue;
+ }
+ // 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁�
+ if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast107.getWrkNo().shortValue())
+ && crnProtocol.statusType == CrnStatusType.WAITING
+ && crnProtocol.forkPosType == CrnForkPosType.HOME) {
+ log.info("鍫嗗灈鏈哄嚭搴撳畬鎴� - 寮�濮嬫墽琛�");
+
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+
+ // 涓嬪彂绔欑偣淇℃伅
+ staProtocol.setWorkNo(wrkMast107.getWrkNo());
+ staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast107.getStaNo(),wrkMast107.getSourceStaNo()));
+ if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
+ log.info(staProtocol.getWorkNo()+","+staProtocol.getStaNo()+"杈撻�佺嚎鍑哄簱鍛戒护涓嬪彂澶辫触");
+ continue;
+ }else {
+ log.info(staProtocol.getWorkNo()+","+staProtocol.getStaNo()+"杈撻�佺嚎鍑哄簱鍛戒护涓嬪彂鎴愬姛");
+ }
+
+ // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
+ wrkMast9997.setWrkSts(14L);
+ wrkMast9997.setCrnEndTime(new Date());
+ if (wrkMastMapper.updateById(wrkMast9997) != 0) {
+ // 澶嶄綅鍫嗗灈鏈�
+ log.error("鍑哄簱浠诲姟瀹屾垚涓嬪彂鍫嗗灈鏈哄浣�,{}", wrkMast9997.getWrkNo());
+ crnThread.setResetFlag(true);
+ } else {
+ News.error(""+mark+" - 1"+" - 鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast9997.getWrkNo());
+ }
+
+ }else {
+ News.errorNoLog(""+mark+" - 6"+" - 鍫嗗灈鏈轰俊鎭笉绗﹀悎鍏ュ簱鏉′欢锛侊紒锛�"
+ +" 鍫嗗灈鏈虹姸鎬侊細"+crnProtocol.modeType+"==鑷姩AUTO锛�" + CrnModeType.AUTO
+ +"銆佸爢鍨涙満浠诲姟鍙凤細"+crnProtocol.getTaskNo()+"==宸ヤ綔妗d换鍔″彿锛�" + wrkMast9997.getWrkNo().shortValue()
+ +"銆佺姸鎬佹灇涓撅細"+crnProtocol.statusType+"==WAITING锛�90 //浠诲姟瀹屾垚绛夊緟WCS纭)锛�" + CrnStatusType.WAITING
+ +"銆佽揣鍙変綅缃細"+crnProtocol.forkPosType+"==HOME锛�0 // 璐у弶鍘熶綅锛�" + CrnForkPosType.HOME);
+ }
+ }
+ if(crnSlave.getId() == 3 && wrkMast9996 != null){
+ WrkMast wrkMast107 = wrkMastMapper.selectPakOutStep107(wrkMast9996.getBarcode());
+ // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗�
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkMast107.getCrnNo());
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) {
+ // 绉诲姩涓�
+ continue;
+ }
+ // 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁�
+ if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast107.getWrkNo().shortValue())
+ && crnProtocol.statusType == CrnStatusType.WAITING
+ && crnProtocol.forkPosType == CrnForkPosType.HOME) {
+ log.info("鍫嗗灈鏈哄嚭搴撳畬鎴� - 寮�濮嬫墽琛�");
+
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+
+ // 涓嬪彂绔欑偣淇℃伅
+ staProtocol.setWorkNo(wrkMast107.getWrkNo());
+ staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast107.getStaNo(),wrkMast107.getSourceStaNo()));
+ if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
+ log.info(staProtocol.getWorkNo()+","+staProtocol.getStaNo()+"杈撻�佺嚎鍑哄簱鍛戒护涓嬪彂澶辫触");
+ continue;
+ }else {
+ log.info(staProtocol.getWorkNo()+","+staProtocol.getStaNo()+"杈撻�佺嚎鍑哄簱鍛戒护涓嬪彂鎴愬姛");
+ }
+
+ // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
+ wrkMast9996.setWrkSts(14L);
+ wrkMast9996.setCrnEndTime(new Date());
+ if (wrkMastMapper.updateById(wrkMast9996) != 0) {
+ // 澶嶄綅鍫嗗灈鏈�
+ log.error("鍑哄簱浠诲姟瀹屾垚涓嬪彂鍫嗗灈鏈哄浣�,{}", wrkMast9996.getWrkNo());
+ crnThread.setResetFlag(true);
+ } else {
+ News.error(""+mark+" - 1"+" - 鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast9996.getWrkNo());
+ }
+
+ }else {
+ News.errorNoLog(""+mark+" - 6"+" - 鍫嗗灈鏈轰俊鎭笉绗﹀悎鍏ュ簱鏉′欢锛侊紒锛�"
+ +" 鍫嗗灈鏈虹姸鎬侊細"+crnProtocol.modeType+"==鑷姩AUTO锛�" + CrnModeType.AUTO
+ +"銆佸爢鍨涙満浠诲姟鍙凤細"+crnProtocol.getTaskNo()+"==宸ヤ綔妗d换鍔″彿锛�" + wrkMast9996.getWrkNo().shortValue()
+ +"銆佺姸鎬佹灇涓撅細"+crnProtocol.statusType+"==WAITING锛�90 //浠诲姟瀹屾垚绛夊緟WCS纭)锛�" + CrnStatusType.WAITING
+ +"銆佽揣鍙変綅缃細"+crnProtocol.forkPosType+"==HOME锛�0 // 璐у弶鍘熶綅锛�" + CrnForkPosType.HOME);
+ }
+ }
// 鏌ヨ宸ヤ綔妗�
WrkMast wrkMast = wrkMastMapper.selectPakOutStep2(staProtocol.getSiteId());
if (wrkMast == null) {
@@ -828,14 +923,17 @@
staProtocolOut = staProtocolOut.clone();
}
- if (staProtocolOut.getWorkNo() != null && staProtocolOut.getStaNo() == 4006) {
- WrkMast wrkMastOut = wrkMastMapper.selectByWrkNo(staProtocolOut.getWorkNo());
+ WrkMast wrkMastOut = wrkMastMapper.selectByWrkNo(staProtocolOut.getWorkNo());
+ if(wrkMastOut == null ){
+ continue;
+ }
+ if (staProtocolOut.getWorkNo() != null && wrkMastOut.getStaNo() == 4006) {
WrkMast wrkMast = wrkMastMapper.selectByWrkNo(9997);
if (wrkMastOut == null) {
continue;
}
if (wrkMast != null) {
- News.info("宸插瓨鍦ㄦ枩琛椾换鍔★紝绛夊緟浠诲姟瀹屾垚");
+// News.info("宸插瓨鍦ㄦ枩琛椾换鍔★紝绛夊緟浠诲姟瀹屾垚");
continue;
}
try {
@@ -1040,61 +1138,62 @@
} else {
staProtocol = staProtocol.clone();
}
-// if (slave.getId() == 3) {
-// SiemensDevpThread devpThread1 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
-// StaProtocol staProtocol2 = devpThread1.getStation().get(4001);
-// if (staProtocol2 == null) {
-// News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol2);
-// break;
-// } else {
-// staProtocol2 = staProtocol2.clone();
-// }
-// WrkMast wrkMast9999 = wrkMastMapper.selectByWrkNo(9996);
-// BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
-// if (staDetl == null) {
-// News.error(""+mark+" - 2"+" - 5"+" - 鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
-// break;
-//// continue;
-// }
-// if(wrkMast9999 != null && staProtocol2.isAutoing() && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")){
-// // 鍫嗗灈鏈烘帶鍒惰繃婊�
-// if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
-//// continue;
-// break;
-// }
-// // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
-// if (wrkMastMapper.selectWorking(slave.getId()) != null) {
-// break;
-//// return;
-// }
-// // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
-// CrnCommand crnCommand = new CrnCommand();
-// crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
-// crnCommand.setTaskNo((short) 9996); // 宸ヤ綔鍙�
-//// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
-// crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
-// crnCommand.setSourcePosX((short) 5); // 婧愬簱浣嶆帓
-// crnCommand.setSourcePosY((short) 1); // 婧愬簱浣嶅垪
-// crnCommand.setSourcePosZ((short) 4); // 婧愬簱浣嶅眰
-// crnCommand.setDestinationPosX((short) 6); // 鐩爣搴撲綅鎺�
-// crnCommand.setDestinationPosY((short) 1); // 鐩爣搴撲綅鍒�
-// crnCommand.setDestinationPosZ((short) 1); // 鐩爣搴撲綅灞�
-//// crnCommand.setTraySize(sourceSta.getLocType1() == 2); //搴撲綅绫诲瀷
-// if (!MessageQueue.offer(SlaveType.Crn, wrkMast9999.getCrnNo(), new Task(2, crnCommand))) {
-// News.error("" + mark + " - 2" + " - 13" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast9999.getCrnNo(), JSON.toJSON(crnCommand));
-// } else {
-// // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
-// Date now = new Date();
-// wrkMast9999.setWrkSts(3L);
-// wrkMast9999.setCrnStrTime(now);
-// wrkMast9999.setModiTime(now);
-// if (wrkMastMapper.updateById(wrkMast9999) == 0) {
-// News.error("" + mark + " - 2" + " - 14" + " - 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast9999.getWrkNo());
-// }
-// break;
-// }
-// }
-// }
+ WrkMast wrkMast9996 = wrkMastMapper.selectByWrkNo9996(9996);
+
+ if (slave.getId() == 3 && wrkMast9996 != null) {
+ SiemensDevpThread devpThread1 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+ StaProtocol staProtocol2 = devpThread1.getStation().get(4001);
+ if (staProtocol2 == null) {
+ News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol2);
+ break;
+ } else {
+ staProtocol2 = staProtocol2.clone();
+ }
+ BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
+ if (staDetl == null) {
+ News.error(""+mark+" - 2"+" - 5"+" - 鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+ break;
+// continue;
+ }
+ if( staProtocol2.isAutoing() && staProtocol2.isLoading() && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")){
+ // 鍫嗗灈鏈烘帶鍒惰繃婊�
+ if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+// continue;
+ break;
+ }
+ // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+ if (wrkMastMapper.selectWorking(slave.getId()) != null) {
+ break;
+// return;
+ }
+ // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setTaskNo((short) 9996); // 宸ヤ綔鍙�
+// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
+ crnCommand.setSourcePosX((short) 9); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosY((short) 52); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosZ((short) 3); // 婧愬簱浣嶅眰
+ crnCommand.setDestinationPosX((short) 9); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY((short) 52); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ((short) 2); // 鐩爣搴撲綅灞�
+// crnCommand.setTraySize(sourceSta.getLocType1() == 2); //搴撲綅绫诲瀷
+ if (!MessageQueue.offer(SlaveType.Crn, wrkMast9996.getCrnNo(), new Task(2, crnCommand))) {
+ News.error("" + mark + " - 2" + " - 13" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast9996.getCrnNo(), JSON.toJSON(crnCommand));
+ } else {
+ // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
+ Date now = new Date();
+ wrkMast9996.setWrkSts(3L);
+ wrkMast9996.setCrnStrTime(now);
+ wrkMast9996.setModiTime(now);
+ if (wrkMastMapper.updateById(wrkMast9996) == 0) {
+ News.error("" + mark + " - 2" + " - 14" + " - 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast9996.getWrkNo());
+ }
+ break;
+ }
+ }
+ }
// 鏌ヨ绔欑偣璇︾粏淇℃伅
BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
if (staDetl == null) {
@@ -1239,61 +1338,108 @@
// 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗�
// WrkMast wrkMast = wrkMastMapper.selectPakOutStep1(slave.getId(), crnStn.getStaNo());
List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep11(slave.getId(), crnStn.getStaNo());
-// if (slave.getId() == 3) {
-// SiemensDevpThread devpThread1 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
-// StaProtocol staProtocol2 = devpThread1.getStation().get(1015);
-// if (staProtocol2 == null) {
-// News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol2);
-// break;
-// } else {
-// staProtocol2 = staProtocol2.clone();
-// }
-// WrkMast wrkMast9999 = wrkMastMapper.selectByWrkNo(9997);
-// BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
-// if (staDetl == null) {
-// News.error(""+mark+" - 2"+" - 5"+" - 鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
-// break;
-//// continue;
-// }
-// if(wrkMast9999 != null && staProtocol2.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")){
-// // 鍫嗗灈鏈烘帶鍒惰繃婊�
-// if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
-//// continue;
-// break;
-// }
-// // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
-// if (wrkMastMapper.selectWorking(slave.getId()) != null) {
-// break;
-//// return;
-// }
-// // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
-// CrnCommand crnCommand = new CrnCommand();
-// crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
-// crnCommand.setTaskNo((short) 9997); // 宸ヤ綔鍙�
-//// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
-// crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
-// crnCommand.setSourcePosX((short) 5); // 婧愬簱浣嶆帓
-// crnCommand.setSourcePosY((short) 1); // 婧愬簱浣嶅垪
-// crnCommand.setSourcePosZ((short) 1); // 婧愬簱浣嶅眰
-// crnCommand.setDestinationPosX((short) 6); // 鐩爣搴撲綅鎺�
-// crnCommand.setDestinationPosY((short) 1); // 鐩爣搴撲綅鍒�
-// crnCommand.setDestinationPosZ((short) 4); // 鐩爣搴撲綅灞�
-//// crnCommand.setTraySize(sourceSta.getLocType1() == 2); //搴撲綅绫诲瀷
-// if (!MessageQueue.offer(SlaveType.Crn, wrkMast9999.getCrnNo(), new Task(2, crnCommand))) {
-// News.error("" + mark + " - 2" + " - 13" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast9999.getCrnNo(), JSON.toJSON(crnCommand));
-// } else {
-// // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
-// Date now = new Date();
-// wrkMast9999.setWrkSts(12L);
-// wrkMast9999.setCrnStrTime(now);
-// wrkMast9999.setModiTime(now);
-// if (wrkMastMapper.updateById(wrkMast9999) == 0) {
-// News.error("" + mark + " - 2" + " - 14" + " - 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast9999.getWrkNo());
-// }
-// break;
-// }
-// }
-// }
+ WrkMast wrkMast9997 = wrkMastMapper.selectByWrkNo9997(9997);
+
+ if (slave.getId() == 3 && wrkMast9997 != null) {
+ SiemensDevpThread devpThread1 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ StaProtocol staProtocol2 = devpThread1.getStation().get(1015);
+ if (staProtocol2 == null) {
+ News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol2);
+ break;
+ } else {
+ staProtocol2 = staProtocol2.clone();
+ }
+ SiemensDevpThread devpThread2 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+ StaProtocol staProtocol3 = devpThread2.getStation().get(2016);
+ if (staProtocol3 == null) {
+ News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol2);
+ break;
+ } else {
+ staProtocol3 = staProtocol3.clone();
+ }
+ BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
+ if (staDetl == null) {
+ News.error(""+mark+" - 2"+" - 5"+" - 鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+ break;
+// continue;
+ }
+ if(staProtocol2.isLoading() && staProtocol2.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")){
+ // 鍫嗗灈鏈烘帶鍒惰繃婊�
+ if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+// continue;
+ break;
+ }
+ // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+ if (wrkMastMapper.selectWorking(slave.getId()) != null) {
+ break;
+// return;
+ }
+ // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setTaskNo((short) 9997); // 宸ヤ綔鍙�
+// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
+ crnCommand.setSourcePosX((short) 9); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosY((short) 52); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosZ((short) 1); // 婧愬簱浣嶅眰
+ crnCommand.setDestinationPosX((short) 11); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY((short) 52); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ((short) 3); // 鐩爣搴撲綅灞�
+// crnCommand.setTraySize(sourceSta.getLocType1() == 2); //搴撲綅绫诲瀷
+ if (!MessageQueue.offer(SlaveType.Crn, wrkMast9997.getCrnNo(), new Task(2, crnCommand))) {
+ News.error("" + mark + " - 2" + " - 13" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast9997.getCrnNo(), JSON.toJSON(crnCommand));
+ } else {
+ // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
+ Date now = new Date();
+ wrkMast9997.setWrkSts(12L);
+ wrkMast9997.setCrnStrTime(now);
+ wrkMast9997.setModiTime(now);
+ if (wrkMastMapper.updateById(wrkMast9997) == 0) {
+ News.error("" + mark + " - 2" + " - 14" + " - 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast9997.getWrkNo());
+ }
+ break;
+ }
+ }
+ if(staProtocol3.isLoading() && staProtocol3.isAutoing()){
+ // 鍫嗗灈鏈烘帶鍒惰繃婊�
+ if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+// continue;
+ break;
+ }
+ // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+ if (wrkMastMapper.selectWorking(slave.getId()) != null) {
+ break;
+// return;
+ }
+ // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setTaskNo((short) 9997); // 宸ヤ綔鍙�
+// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
+ crnCommand.setSourcePosX((short) 11); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosY((short) 52); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosZ((short) 2); // 婧愬簱浣嶅眰
+ crnCommand.setDestinationPosX((short) 11); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY((short) 52); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ((short) 3); // 鐩爣搴撲綅灞�
+// crnCommand.setTraySize(sourceSta.getLocType1() == 2); //搴撲綅绫诲瀷
+ if (!MessageQueue.offer(SlaveType.Crn, wrkMast9997.getCrnNo(), new Task(2, crnCommand))) {
+ News.error("" + mark + " - 2" + " - 13" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast9997.getCrnNo(), JSON.toJSON(crnCommand));
+ } else {
+ // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
+ Date now = new Date();
+ wrkMast9997.setWrkSts(12L);
+ wrkMast9997.setCrnStrTime(now);
+ wrkMast9997.setModiTime(now);
+ if (wrkMastMapper.updateById(wrkMast9997) == 0) {
+ News.error("" + mark + " - 2" + " - 14" + " - 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast9997.getWrkNo());
+ }
+ break;
+ }
+ }
+ }
for (WrkMast wrkMast : wrkMasts) {
if (wrkMast == null) {
continue;
@@ -3325,7 +3471,7 @@
if(wrkMastSta1 != null && wrkMastSta2 != null){
rgvThread.setPakMk(false); //灏忚溅鍙屽伐浣嶉攣瀹�
}
-// if(!rgvThread.isPakToCrn()){
+// if(basRgv.getPakToCrn().equals("0")){
// rgvRunWrkToCrn(rgv, rgvProtocol,mark); //鑻ュ皬杞﹀彇鍒颁竴涓帴椹充换鍔★紝绗簩涓伐浣嶅彧鑳藉彇鎺ラ┏浠诲姟
// }
// if(rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getTaskNo1() == 0 && rgvThread.isPakIn() && rgvThread.isPakRgv()){
@@ -3580,6 +3726,9 @@
continue;
}
WrkMastSta wrkMastSta1 = wrkMastStaMapper.selectByWrkNo( rgvProtocol.getTaskNo1());
+ if(basRgv.getPakToCrn().equals("0")){
+ wrkMastSta = wrkMastStaMapper.selectNoInterfereCrn(route, route, Long.valueOf(staProtocol.getWorkNo()));
+ }
boolean result = false;
if(wrkMastSta1!= null && rgvProtocol.getRgvNo() == 1){ //璺濈璁$畻 2妤煎崟鍏ュ簱鍙d笉闇�瑕佽绠�
result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta1.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣
@@ -3588,7 +3737,6 @@
basRgv.setPakRgv("0");
basRgvService.updateById(basRgv);
-// rgvThread.setPakRgv(false);
continue;
}
wrkMastSta.setWorkSta(wrkMastSta1 !=null ? 2 : 1);//鑻�1鍙峰伐浣嶆湁浠诲姟缁�2鍙峰伐浣�
@@ -3599,8 +3747,11 @@
if(LEFT_POSITION.contains(wrkMastSta.getStaEnd())){
basRgv.setPakToCrn("0");
basRgvService.updateById(basRgv);
-
-// rgvThread.setPakToCrn(false); //閿佸畾灏忚溅鍙兘鎺ユ帴椹充换鍔�
+ if(wrkMastSta3 != null){
+ if(!LEFT_POSITION.contains(wrkMastSta3.getStaEnd())){
+ wrkMastSta3 = null;//鑻ユ帴椹崇浜屼綅涓嶆帴椹虫椂鍙栨秷杩炵画鍙栬揣
+ }
+ }
}
if(wrkMastSta3 != null ){
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index fe3067e..c9b6419 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -82,7 +82,7 @@
// 鍏ュ簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�
mainService.storeEmptyPlt(8);
// 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
- mainService.ledExecute(9);
+// mainService.ledExecute(9);
// 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
mainService.ledReset();
//鍫嗗灈鏈鸿鎺ヤ换鍔$敓鎴�
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index e51db88..56b2d9b 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -219,11 +219,61 @@
throw new CoolException("鏈嶅姟鍣ㄥ紓甯�");
}
}
+ private boolean connectDev = false;
@Override
@SuppressWarnings("InfiniteLoopStatement")
public void run() {
- connect();
+ connectDev = connect();
+ while(!connectDev){
+ try {
+ connectDev = this.connect();
+ Thread.sleep(100);
+ } catch (Exception e){
+
+ }
+ }
+
+ // 鍚姩绾跨▼鑷姩閲嶈繛
+ new Thread(this::devConnect).start();
+ new Thread(this::readStatusDev).start();
+ new Thread(this::writeStatusDev).start();
+ }
+ private void readStatusDev() {
+ while (true) {
+ try {
+ Thread.sleep(50);
+ read();
+
+ } catch (Exception e) {
+ log.error("Dev鏁版嵁璇诲彇绾跨▼寮傚父锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ initSite();
+ }
+
+ }
+
+ }
+ private void devConnect() {
+ while (true) {
+ try {
+ Thread.sleep(1000);
+
+ if(!connectDev){
+ try {
+ connectDev = this.connect();
+ Thread.sleep(100);
+ } catch (Exception e){
+
+ }
+ }
+ } catch (Exception e) {
+ log.info("dev杩炴帴澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ initSite();
+// e.printStackTrace();
+ }
+ }
+ }
+ private void writeStatusDev() {
while (true) {
try {
int step = 1;
@@ -234,7 +284,7 @@
switch (step) {
// 璇绘暟鎹�
case 1:
- read();
+// read();
break;
// 鍐欐暟鎹� ID+鐩爣绔�
case 2:
@@ -246,13 +296,55 @@
}
// 蹇冭烦
// heartbeat();
- Thread.sleep(100);
+ Thread.sleep(400);
} catch (Exception e) {
- e.printStackTrace();
+// e.printStackTrace();
+ try{
+ log.error("dev鍐欑嚎绋嬪紓甯�"+e.getMessage());
+
+ } catch (Exception e1){
+
+ }
+ log.error("DEV鏁版嵁鍐欏叆绾跨▼寮傚父锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+
}
}
+
}
+// @Override
+// @SuppressWarnings("InfiniteLoopStatement")
+// public void run() {
+// connect();
+// while (true) {
+// try {
+// int step = 1;
+// Task task = MessageQueue.poll(SlaveType.Devp, slave.getId());
+// if (task != null) {
+// step = task.getStep();
+// }
+// switch (step) {
+// // 璇绘暟鎹�
+// case 1:
+// read();
+// break;
+// // 鍐欐暟鎹� ID+鐩爣绔�
+// case 2:
+// write((StaProtocol)task.getData());
+// log.error("杈撻�佺嚎涓嬪彂鍛戒护锛�"+((StaProtocol) task.getData()).getWorkNo()+","+((StaProtocol) task.getData()).getStaNo());
+// break;
+// default:
+// break;
+// }
+// // 蹇冭烦
+//// heartbeat();
+// Thread.sleep(100);
+// } catch (Exception e) {
+// e.printStackTrace();
+// }
+//
+// }
+// }
/**
* 鍒濆鍖栫珯鐐圭姸鎬�
*/
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index 576d59f..668b0a4 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -113,6 +113,15 @@
<select id="selectPakOutStep2" resultMap="BaseResultMap">
select top 1 * from dbo.asr_wrk_mast where source_sta_no=#{sourceStaNo} and wrk_sts=12 and io_type>100 order by io_pri desc,io_time desc,wrk_no ASC
</select>
+ <select id="selectPakOutStep9996" resultMap="BaseResultMap">
+ select top 1 * from dbo.asr_wrk_mast where wrk_no = 9996 and wrk_sts=12 and io_type = 12 order by io_pri desc,io_time desc,wrk_no ASC
+ </select>
+ <select id="selectPakOutStep9997" resultMap="BaseResultMap">
+ select top 1 * from dbo.asr_wrk_mast where wrk_no = 9997 and wrk_sts=12 and io_type = 12 order by io_pri desc,io_time desc,wrk_no ASC
+ </select>
+ <select id="selectPakOutStep107" resultMap="BaseResultMap">
+ select top 1 * from dbo.asr_wrk_mast where barcode = #{barcode}
+ </select>
<select id="selectLocMove" resultMap="BaseResultMap">
select top 1 * from dbo.asr_wrk_mast where wrk_sts=11 and io_type=11 and crn_no=#{crnNo} order by io_time,wrk_no
@@ -201,4 +210,14 @@
select * from asr_wrk_mast
where wrk_no = #{wrkNo}
</select>
+ <select id="selectByWrkNo9996" resultMap="BaseResultMap">
+ select * from asr_wrk_mast
+ where wrk_no = #{wrkNo}
+ and wrk_sts = 2
+ </select>
+ <select id="selectByWrkNo9997" resultMap="BaseResultMap">
+ select * from asr_wrk_mast
+ where wrk_no = #{wrkNo}
+ and wrk_sts = 11
+ </select>
</mapper>
diff --git a/src/main/resources/mapper/WrkMastStaMapper.xml b/src/main/resources/mapper/WrkMastStaMapper.xml
index f2f11b6..5d5fc77 100644
--- a/src/main/resources/mapper/WrkMastStaMapper.xml
+++ b/src/main/resources/mapper/WrkMastStaMapper.xml
@@ -103,6 +103,26 @@
and wrk_no = #{workNo}
order by line_number,id
</select>
+ <select id="selectNoInterfereCrn" resultMap="BaseResultMap">
+ select * from asr_wrk_mast_sta
+ where 1=1
+ and (sta_start in
+ <foreach item="item" collection="staStarts" index="index" separator="," open="(" close=")">
+ #{item}
+ </foreach>
+ or sta_start = 0
+ )
+ and (sta_end in
+ <foreach item="item" collection="staEnds" index="index" separator="," open="(" close=")">
+ #{item}
+ </foreach>
+ or sta_end = 0
+ )
+ and wrk_sts=0
+ and sta_end in (1018,2018)
+ and wrk_no = #{workNo}
+ order by line_number,id
+ </select>
<select id="selectNoInterfereToCrn" resultMap="BaseResultMap">
select * from asr_wrk_mast_sta
diff --git a/src/main/webapp/views/console.html b/src/main/webapp/views/console.html
index 7ad3964..521b521 100644
--- a/src/main/webapp/views/console.html
+++ b/src/main/webapp/views/console.html
@@ -41,72 +41,72 @@
</div>
</div>
<!-- 鍫嗗灈鏈虹姸鎬� -->
-<!-- <div class="machine-status">-->
-<!-- <div class="body-head">鍫嗗灈鏈虹姸鎬�</div>-->
-<!-- <div class="state">-->
-<!-- <span>鍫嗗灈鏈� 1</span>-->
-<!-- <span class="state-ss machine-put-flag ">鍏ュ簱</span>-->
-<!-- </div>-->
-<!-- <div class="state">-->
-<!-- <span>鍫嗗灈鏈� 2</span>-->
-<!-- <span class="state-ss machine-auto-flag ">鑷姩</span>-->
+ <div class="machine-status">
+ <div class="body-head">鍫嗗灈鏈虹姸鎬�</div>
+ <div class="state">
+ <span>鍫嗗灈鏈� 1</span>
+ <span class="state-ss machine-put-flag ">鍏ュ簱</span>
+ </div>
+ <div class="state">
+ <span>鍫嗗灈鏈� 2</span>
+ <span class="state-ss machine-auto-flag ">鑷姩</span>
-<!-- </div>-->
-<!-- <div class="button"><span>鎵�鏈夌姸鎬�</span></div>-->
-<!-- <div class="button item-group">-->
-<!-- <span class="machine-put-flag">鍏ュ簱</span>-->
-<!-- <span class="machine-take-flag">鍑哄簱</span>-->
-<!-- <span class="machine-stock-move-flag">搴撳埌搴�</span>-->
-<!-- <span class="machine-site-move-flag">绔欏埌绔�</span>-->
-<!-- <span class="machine-p-move-flag">PToP</span>-->
-<!-- <span class="machine-error-flag">寮傚父</span>-->
-<!-- <span class="machine-auto-flag">鑷姩</span>-->
-<!-- <span class="machine-unauto-flag">闈炶嚜鍔�/鎵嬪姩</span>-->
-<!-- </div>-->
-<!-- </div>-->
-<!-- <div class="line-status">-->
-<!-- <div class="body-head">杈撻�佺嚎鐘舵��</div>-->
-<!-- <div class="state states">-->
-<!-- <span>杩愯緭绾挎�绘暟</span>-->
-<!-- <span id="line-total" class="line-ss"></span>-->
-<!-- </div>-->
-<!-- <div class="button"><span>鎵�鏈夌姸鎬�</span></div>-->
-<!-- <div class="button item-group">-->
-<!-- <span class="site-auto-run-id">鑷姩+鏈夌墿+ID</span>-->
-<!-- <span class="site-auto-run">鑷姩+鏈夌墿</span>-->
-<!-- <span class="site-auto-id">鑷姩+ID</span>-->
-<!-- <span class="site-auto">鑷姩</span>-->
-<!-- <span class="site-unauto">闈炶嚜鍔�/鎵嬪姩</span>-->
-<!-- </div>-->
-<!-- </div>-->
-<!-- <div class="bar-code">-->
-<!-- <div class="body-head" id="code">鏉$爜鎵弿鍣�</div>-->
-<!-- <div class="tablebox">-->
-<!-- <div class="table-head">-->
-<!-- <li><span>鏉$爜鍚嶇О</span><span class="right">鎵爜鏃堕棿</span></li>-->
-<!-- </div>-->
-<!-- <div id="barcode1" class="table-body">-->
+ </div>
+ <div class="button"><span>鎵�鏈夌姸鎬�</span></div>
+ <div class="button item-group">
+ <span class="machine-put-flag">鍏ュ簱</span>
+ <span class="machine-take-flag">鍑哄簱</span>
+ <span class="machine-stock-move-flag">搴撳埌搴�</span>
+ <span class="machine-site-move-flag">绔欏埌绔�</span>
+ <span class="machine-p-move-flag">PToP</span>
+ <span class="machine-error-flag">寮傚父</span>
+ <span class="machine-auto-flag">鑷姩</span>
+ <span class="machine-unauto-flag">闈炶嚜鍔�/鎵嬪姩</span>
+ </div>
+ </div>
+ <div class="line-status">
+ <div class="body-head">杈撻�佺嚎鐘舵��</div>
+ <div class="state states">
+ <span>杩愯緭绾挎�绘暟</span>
+ <span id="line-total" class="line-ss"></span>
+ </div>
+ <div class="button"><span>鎵�鏈夌姸鎬�</span></div>
+ <div class="button item-group">
+ <span class="site-auto-run-id">鑷姩+鏈夌墿+ID</span>
+ <span class="site-auto-run">鑷姩+鏈夌墿</span>
+ <span class="site-auto-id">鑷姩+ID</span>
+ <span class="site-auto">鑷姩</span>
+ <span class="site-unauto">闈炶嚜鍔�/鎵嬪姩</span>
+ </div>
+ </div>
+ <div class="bar-code">
+ <div class="body-head" id="code">鏉$爜鎵弿鍣�</div>
+ <div class="tablebox">
+ <div class="table-head">
+ <li><span>鏉$爜鍚嶇О</span><span class="right">鎵爜鏃堕棿</span></li>
+ </div>
+ <div id="barcode1" class="table-body">
-<!-- </div>-->
-<!-- </div>-->
-<!-- <div class="tablebox">-->
-<!-- <div class="table-head">-->
-<!-- <li><span>鏉$爜鍚嶇О</span><span class="right">鎵爜鏃堕棿</span></li>-->
-<!-- </div>-->
-<!-- <div id="barcode2" class="table-body">-->
+ </div>
+ </div>
+ <div class="tablebox">
+ <div class="table-head">
+ <li><span>鏉$爜鍚嶇О</span><span class="right">鎵爜鏃堕棿</span></li>
+ </div>
+ <div id="barcode2" class="table-body">
-<!-- </div>-->
-<!-- </div>-->
-<!-- <div class="tablebox">-->
-<!-- <div class="table-head">-->
-<!-- <li><span>鏉$爜鍚嶇О</span><span class="right">鎵爜鏃堕棿</span></li>-->
-<!-- </div>-->
-<!-- <div id="barcode3" class="table-body">-->
+ </div>
+ </div>
+ <div class="tablebox">
+ <div class="table-head">
+ <li><span>鏉$爜鍚嶇О</span><span class="right">鎵爜鏃堕棿</span></li>
+ </div>
+ <div id="barcode3" class="table-body">
-<!-- </div>-->
-<!-- </div>-->
-<!-- </div>-->
-<!-- </div>-->
+ </div>
+ </div>
+ </div>
+ </div>
<!-- 鍫嗗灈鏈哄脊绐� -->
<div id="crnWindow" style="display: none;" class="animate__animated animate__fadeIn">
<div id="crnWindow-head">
--
Gitblit v1.9.1