From 0819a18ba9da9f51fa981906ae19ed85b4629b25 Mon Sep 17 00:00:00 2001
From: lsh <lsh>
Date: 星期四, 16 五月 2024 10:46:33 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 156 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 155 insertions(+), 1 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 c0e75cd..f3c6689 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -296,7 +296,11 @@
if (rgvComplete){
rgvThread.setPakMk(true);
}
-
+ WrkMastSta wrkMastSta = wrkMastStaMapper.selectById(rgvProtocol.getTaskNo1());
+ if (!Cools.isEmpty(wrkMastSta)){
+ wrkMastSta.setWrkSts(3);
+ wrkMastStaMapper.updateById(wrkMastSta);
+ }
}
}
@@ -381,7 +385,157 @@
}
public synchronized void DevpTaskAndPut() throws InterruptedException {
+ try {
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ for (DevpSlave.Sta inSta : devp.getInSta()) {
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+// System.out.println(JSON.toJSONString(staProtocol));
+ if (staProtocol.isAutoing()){
+ WrkMastSta wrkMastSta = new WrkMastSta(new Date(),2,1);
+ Integer count = wrkMastStaMapper.selectCount(new EntityWrapper<WrkMastSta>().eq("wrk_no", wrkMastSta.getWrkNo()));
+ if (count==0){
+ wrkMastSta.setType(1);
+ wrkMastSta.setWrkType(3);
+ wrkMastStaMapper.insert(wrkMastSta);
+ }
+ }else if (staProtocol.isLoading()){
+ WrkMastSta wrkMastSta = new WrkMastSta(new Date(),2,3);
+ Integer count = wrkMastStaMapper.selectCount(new EntityWrapper<WrkMastSta>().eq("wrk_no", wrkMastSta.getWrkNo()));
+ if (count==0){
+ wrkMastSta.setType(1);
+ wrkMastSta.setWrkType(3);
+ wrkMastStaMapper.insert(wrkMastSta);
+ }
+ }else if (staProtocol.isInEnable()){
+ WrkMastSta wrkMastSta = new WrkMastSta(new Date(),2,5);
+ Integer count = wrkMastStaMapper.selectCount(new EntityWrapper<WrkMastSta>().eq("wrk_no", wrkMastSta.getWrkNo()));
+ if (count==0){
+ wrkMastSta.setType(1);
+ wrkMastSta.setWrkType(3);
+ wrkMastStaMapper.insert(wrkMastSta);
+ }
+ }else if (staProtocol.isOutEnable()){
+ WrkMastSta wrkMastSta = new WrkMastSta(new Date(),2,7);
+ Integer count = wrkMastStaMapper.selectCount(new EntityWrapper<WrkMastSta>().eq("wrk_no", wrkMastSta.getWrkNo()));
+ if (count==0){
+ wrkMastSta.setType(1);
+ wrkMastSta.setWrkType(3);
+ wrkMastStaMapper.insert(wrkMastSta);
+ }
+ }
+ if (staProtocol.isEmptyMk()){
+ WrkMastSta wrkMastSta = new WrkMastSta(new Date(),1,10);
+ Integer count = wrkMastStaMapper.selectCount(new EntityWrapper<WrkMastSta>().eq("wrk_no", wrkMastSta.getWrkNo()));
+ if (count==0){
+ wrkMastSta.setType(1);
+ wrkMastSta.setWrkType(3);
+ wrkMastStaMapper.insert(wrkMastSta);
+ }
+ }
+ if (staProtocol.isFullPlt()){
+ WrkMastSta wrkMastSta = new WrkMastSta(new Date(),3,10);
+ Integer count = wrkMastStaMapper.selectCount(new EntityWrapper<WrkMastSta>().eq("wrk_no", wrkMastSta.getWrkNo()));
+ if (count==0){
+ wrkMastSta.setType(1);
+ wrkMastSta.setWrkType(3);
+ wrkMastStaMapper.insert(wrkMastSta);
+ }
+ }
+ if (staProtocol.isCar()){
+ WrkMastSta wrkMastSta = new WrkMastSta(new Date(),5,10);
+ Integer count = wrkMastStaMapper.selectCount(new EntityWrapper<WrkMastSta>().eq("wrk_no", wrkMastSta.getWrkNo()));
+ if (count==0){
+ wrkMastSta.setType(1);
+ wrkMastSta.setWrkType(3);
+ wrkMastStaMapper.insert(wrkMastSta);
+ }
+ }
+ if (staProtocol.isLow()){
+ WrkMastSta wrkMastSta = new WrkMastSta(new Date(),7,10);
+ Integer count = wrkMastStaMapper.selectCount(new EntityWrapper<WrkMastSta>().eq("wrk_no", wrkMastSta.getWrkNo()));
+ if (count==0){
+ wrkMastSta.setType(1);
+ wrkMastSta.setWrkType(3);
+ wrkMastStaMapper.insert(wrkMastSta);
+ }
+ }
+ }
+ }
+ } catch (Exception e) {
+ log.error("鐢熸垚灏忚溅鎼繍浠诲姟 ===>> 澶辫触", e);
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ }
+ }
+ /**
+ * 鎵ц灏忚溅鎼繍浠诲姟
+ */
+ public synchronized void rgvRunWrkMastFullSta() {
+ try{
+ SiemensRgvThread rgvThread = (SiemensRgvThread) SlaveConnection.get(SlaveType.Rgv, 1);
+ RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+ if (rgvProtocol == null) {
+ log.error("RGV涓嶅湪绾�");
+ return;
+ }
+ // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
+ if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+ && rgvProtocol.getModeType() == RgvModeType.AUTO
+ && rgvProtocol.getLoaded1()==0
+ && rgvProtocol.getTaskNo1() == 0
+ && rgvThread.isPakMk()
+ ) {
+ List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectList(new EntityWrapper<WrkMastSta>());
+ for (WrkMastSta wrkMastSta : wrkMastStaList){
+ if (wrkMastSta.getType()!=0 || wrkMastSta.getWrkType()!=3){//1:婊$増 3锛氬彇鏀�
+ continue;
+ }
+ boolean sign = rgvTakeFullAll(1, wrkMastSta); //鍛戒护涓嬪彂
+ if (sign){
+ wrkMastSta.setWrkSts(1);
+ wrkMastStaMapper.updateById(wrkMastSta);
+ } else {
+ log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
+ }
+ break;
+ }
+ }
+ }catch (Exception e){
+ log.error("3875琛屾墽琛屽皬杞︽惉杩愪换鍔′笅鍙戝け璐�");
+ log.error("3875琛�"+e);
+ }
+ }
+ /*
+ * 灏忚溅鍙栬揣鑷冲伐浣嶄换鍔�
+ * */
+ public synchronized boolean rgvTakeFullAll(Integer rgvId,WrkMastSta wrkMastSta){
+ try{
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ RgvCommand rgvCommand = new RgvCommand();
+ rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
+ rgvCommand.setAckFinish1(false); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
+ rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().intValue()); // 宸ヤ綅1宸ヤ綔鍙�
+ rgvCommand.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 宸ヤ綅1浠诲姟妯″紡: 鍙栨斁璐�
+ rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅1璧风偣
+ rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue()); //宸ヤ綅1鐩爣绔欑偣
+ rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
+ if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
+ //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
+ log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
+ return false;
+ } else {
+ return true;
+ }
+ }catch (Exception e){
+ return false;
+ }
}
--
Gitblit v1.9.1