From d058790bc277bbb46ed646a45b90c8820b6c6eff Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 26 六月 2025 09:51:28 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 347 ++++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 229 insertions(+), 118 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 45033ce..42eeabc 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -13,7 +13,7 @@
import com.zy.asrs.mapper.WrkMastMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
-import com.zy.asrs.utils.VersionUtils;
+import com.zy.common.constant.RedisConstantType;
import com.zy.common.model.LocTypeDto;
import com.zy.common.model.MatDto;
import com.zy.common.model.SearchLocParam;
@@ -22,6 +22,7 @@
import com.zy.common.utils.CollectionUtils;
import com.zy.common.utils.HttpHandler;
import com.zy.common.utils.News;
+import com.zy.common.utils.RedisUtil;
import com.zy.core.CrnThread;
import com.zy.core.DevpThread;
import com.zy.core.cache.MessageQueue;
@@ -39,6 +40,8 @@
import com.zy.core.thread.LedThread;
import com.zy.core.thread.RgvThread;
import com.zy.core.thread.SiemensDevpThread;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -91,6 +94,10 @@
private WrkMastService wrkMastService;
@Autowired
private WrkMastLogService wrkMastLogService;
+ @Autowired
+ private ConfigService configService;
+ @Autowired
+ private RedisUtil redisUtil;
@Value("${wms.url}")
private String wmsUrl;
@@ -225,9 +232,14 @@
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
.eq("loc_no", dto.getLocNo()));
+ short staNo = dto.getStaNo().shortValue();
+ if (inSta.getStaNo() == 1002) {
+ staNo = 2002;
+ }
+
barcodeThread.setBarcode("");
staProtocol.setWorkNo(dto.getWorkNo().shortValue());
- staProtocol.setStaNo(dto.getStaNo().shortValue());
+ staProtocol.setStaNo(staNo);
staProtocol.setPalletSize(locMast.getLocType2());
devpThread.setPakMk(staProtocol.getSiteId(), false);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
@@ -235,21 +247,21 @@
throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
}
- // led 鍏ュ簱淇℃伅鏄剧ず
- if (ledThread != null) {
- // 鍛戒护闆嗗悎
- List<LedCommand> commands = new ArrayList<>();
- // 缁勮鍛戒护
- LedCommand ledCommand = new LedCommand();
- ledCommand.setWorkNo(dto.getWorkNo());
- ledCommand.setIoType(1);
- ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
- ledCommand.setLocNo(dto.getLocNo());
- ledCommand.setStaNo(dto.getStaNo());
- commands.add(ledCommand);
- MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, commands));
-// ledThread.errorReset();
- }
+// // led 鍏ュ簱淇℃伅鏄剧ず
+// if (ledThread != null) {
+// // 鍛戒护闆嗗悎
+// List<LedCommand> commands = new ArrayList<>();
+// // 缁勮鍛戒护
+// LedCommand ledCommand = new LedCommand();
+// ledCommand.setWorkNo(dto.getWorkNo());
+// ledCommand.setIoType(1);
+// ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
+// ledCommand.setLocNo(dto.getLocNo());
+// ledCommand.setStaNo(dto.getStaNo());
+// commands.add(ledCommand);
+// MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, commands));
+//// ledThread.errorReset();
+// }
} else {
News.error(""+mark+" - 5"+" - 璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
// staProtocol.setWorkNo((short)9992);
@@ -364,26 +376,30 @@
staProtocol = staProtocol.clone();
}
- if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) {
+ if (staProtocol.isAutoing()
+ && staProtocol.isLoading()
+ && staProtocol.isInEnable()
+ && staProtocol.getWorkNo() > 0
+ && staProtocol.isPakMk()) {
News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛�");
- // 鑾峰彇鏉$爜鎵弿浠俊鎭�
- BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode());
- if (barcodeThread == null) {
- continue;
- }
- String barcode = barcodeThread.getBarcode();
- if(!Cools.isEmpty(barcode)) {
- News.info(""+mark+" - 1"+" - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
- if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
- continue;
- }
- } else {
- continue;
- }
+// // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+// BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode());
+// if (barcodeThread == null) {
+// continue;
+// }
+// String barcode = barcodeThread.getBarcode();
+// if(!Cools.isEmpty(barcode)) {
+// News.info(""+mark+" - 1"+" - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
+// if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+// continue;
+// }
+// } else {
+// continue;
+// }
- WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
-// WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue());
+// WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
+ WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue());
if (wrkMast == null) {
// 鏃犳嫞鏂欐暟鎹�
continue;
@@ -409,11 +425,11 @@
.eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
StaDesc staDesc = staDescService.selectOne(wrapper);
if (Cools.isEmpty(staDesc)) {
- News.error(""+mark+" - 2"+" - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
- staProtocol.setWorkNo((short) 9989);
- staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue()-(short)1));
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+// News.error(""+mark+" - 2"+" - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
+// staProtocol.setWorkNo((short) 9989);
+// staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue()-(short)1));
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
//LED
LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
// led 寮傚父鏄剧ず
@@ -623,59 +639,71 @@
}
/**
- * 鍥炲師鐐癸紝鍫嗗灈鏈烘病鏈夋墽琛屼腑浠诲姟锛岃澶囧瓨鍦ㄥ叆搴撲换鍔℃椂鍙洖鍘熺偣
+ * 鍫嗗灈鏈烘棤浠诲姟涓ゅ垎閽燂紝鍥炲叆搴撳彛寰呮満
*/
- public synchronized void crnRebackHp(CrnProtocol crnProtocol, CrnThread crnThread) {
-// for (CrnSlave crn : slaveProperties.getCrn()) {
-// // 鑾峰彇鍫嗗灈鏈轰俊鎭�
-// CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
-// CrnProtocol crnProtocol = crnThread.getCrnProtocol();
-// if (crnProtocol == null) {
-// continue;
-// }
-// BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
-// if (basCrnp == null) {
-// log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
-// continue;
-// }
- if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
- if (crnProtocol.getBay() == 1 && crnProtocol.getLevel() == 1) {
- return;
+ public synchronized void crnMove() {
+ for (CrnSlave crn : slaveProperties.getCrn()) {
+ // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ if (crnProtocol == null) {
+ continue;
+ }
+ BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
+ if (basCrnp == null) {
+ log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
+ continue;
}
- // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�3,12
- if (wrkMastMapper.selectWorking(crnProtocol.getCrnNo()) != null) {
- return;
- }
+ if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
+ if (crnProtocol.getBay() == 1 && crnProtocol.getLevel() == 1) {
+ continue;
+ }
- //鍫嗗灈鏈烘湁鎵ц涓换鍔★紝杩囨护3,4,11,12
- if (wrkMastMapper.selectCrnWorking(crnProtocol.getCrnNo()) != null) {
- return;
- }
+ if (System.currentTimeMillis() - crnProtocol.getLastCommandTime() < 1000 * 60 * 2) {
+ continue;
+ }
- //杈撻�佺嚎娌℃湁鍏ュ簱浠诲姟锛岃繃婊�2
- if (wrkMastMapper.selectDevWorking(crnProtocol.getCrnNo()) == null) {
- return;
+ Object object = redisUtil.get(RedisConstantType.CRN_MOVE_LOCK);
+ if (object != null) {
+ continue;
+ }
+
+ List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+ .eq("crn_no", crn.getId())
+ .notIn("wrk_sts", 5, 14, 15)
+ );
+ if (!wrkMasts.isEmpty()) {
+ continue;
+ }
+
+ CrnSlave.CrnStn crnStn = crn.getCrnInStn().get(0);
+
+ News.info("鍫嗗灈鏈烘棤浠诲姟鑷姩鍥炲叆搴撳彛寰呮満==>>" + crnProtocol.getCrnNo() + "鍙峰爢鍨涙満");
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setTaskNo((short) 9999); // 宸ヤ綔鍙�
+ crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommand.setTaskMode(CrnTaskModeType.CRN_MOVE); // 浠诲姟妯″紡: 鍫嗗灈鏈虹Щ鍔�
+ crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosY((short) 1); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosZ((short) 1); // 婧愬簱浣嶅眰
+ crnCommand.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞�
+ if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, crnCommand))) {
+ News.error("鍫嗗灈鏈虹Щ鍔ㄥ懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", crnProtocol.getCrnNo(), JSON.toJSON(crnCommand));
+ }
+ crnThread.setBackHpFlag(true);
+ redisUtil.set(RedisConstantType.CRN_MOVE_LOCK + crn.getId(), "lock", 60);
+ try {
+ Thread.sleep(500);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
- News.info("鍫嗗灈鏈哄彫鍥炲師鐐�==>>" + crnProtocol.getCrnNo() + "鍙峰爢鍨涙満鏈夊叆搴撲换鍔�,鍙洖鍘熺偣");
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- CrnCommand crnCommand = new CrnCommand();
- crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
- crnCommand.setTaskNo((short) 9999); // 宸ヤ綔鍙�
- crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
- crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡: 鍥炲師鐐�
- crnCommand.setSourcePosX((short) 0); // 婧愬簱浣嶆帓
- crnCommand.setSourcePosY((short) 0); // 婧愬簱浣嶅垪
- crnCommand.setSourcePosZ((short) 0); // 婧愬簱浣嶅眰
- crnCommand.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺�
- crnCommand.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒�
- crnCommand.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞�
- if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, crnCommand))) {
- News.error("鍫嗗灈鏈哄洖鍘熺偣鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", crnProtocol.getCrnNo(), JSON.toJSON(crnCommand));
- }
- crnThread.setBackHpFlag(true);
}
-// }
}
/**
@@ -907,7 +935,23 @@
}
// 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
- && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
+ && staProtocol.getWorkNo() == 0) {
+
+ //鏍规嵁鍙傛暟鍒ゆ柇鏄惁鏍¢獙鍙嚭淇″彿
+ String crnOutVerifyOut = "Y";
+ Config crnOutVerifyOutEnableConfig = configService.selectOne(new EntityWrapper<Config>()
+ .eq("code", "crnOutVerifyOutEnable"));
+ if(crnOutVerifyOutEnableConfig != null) {
+ crnOutVerifyOut = crnOutVerifyOutEnableConfig.getValue();
+ }
+
+ if (crnOutVerifyOut.equals("Y")) {
+ if (!staProtocol.isOutEnable()) {
+ continue;
+ }
+ }
+
+
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
// 鍫嗗灈鏈烘帶鍒惰繃婊�
@@ -1647,24 +1691,39 @@
ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
ledCommand.setLocNo(wrkMast.getLocNo());
ledCommand.setStaNo(wrkMast.getStaNo());
+ ledCommand.setBarcode(wrkMast.getBarcode());
// ledCommand.setSourceStaNo(wrkMast.getSourceStaNo());
if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
- try{
- if (wrkMast.getIoType()>100){
- for (WrkDetl wrkDetl : wrkDetls){
- LocDetl locDetl = locDetlService.selectMatnrSpecs(wrkDetl.getMatnr(), wrkDetl.getSpecs(), wrkMast.getSourceLocNo());
- wrkDetl.setWeight(locDetl.getAnfme());
- }
- }else {
- for (WrkDetl wrkDetl : wrkDetls){
- wrkDetl.setWeight(wrkDetl.getAnfme());
- }
- }
- }catch (Exception e){
- log.error("宸ヤ綔妗f鏄庣粏杈撳叆鐢佃鏈哄け璐�1锛氬紓甯镐俊鎭�==銆�"+e);
- }
- wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(),wrkDetl.getWeight(),wrkDetl.getSpecs(),wrkDetl.getSku())));
+// try{
+// if (wrkMast.getIoType()>100){
+// for (WrkDetl wrkDetl : wrkDetls){
+// LocDetl locDetl = locDetlService.selectMatnrSpecs(wrkDetl.getMatnr(), wrkDetl.getSpecs(), wrkMast.getSourceLocNo());
+// wrkDetl.setWeight(locDetl.getAnfme());
+// }
+// }else {
+// for (WrkDetl wrkDetl : wrkDetls){
+// wrkDetl.setWeight(wrkDetl.getAnfme());
+// }
+// }
+// }catch (Exception e){
+// log.error("宸ヤ綔妗f鏄庣粏杈撳叆鐢佃鏈哄け璐�1锛氬紓甯镐俊鎭�==銆�"+e);
+// }
+ wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(
+ wrkDetl.getMatnr()
+ , wrkDetl.getMaktx()
+ , wrkDetl.getAnfme()
+ , wrkDetl.getWeight()
+ , wrkDetl.getStockNum()
+ , wrkDetl.getStockNum2()
+ , wrkDetl.getSpecs()
+ , wrkDetl.getSku()
+ , wrkDetl.getZpallet()
+ , wrkDetl.getModel()
+ , wrkDetl.getSupp()
+ , wrkDetl.getKpCstmrName()
+ , wrkDetl.getOrderNo()
+ )));
}
commands.add(ledCommand);
}
@@ -1804,10 +1863,11 @@
List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo()));
for (LocDetl locDetl : locDetls) {
WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(locDetl);
wrkDetl.setWrkNo(workNo);
wrkDetl.setIoTime(now);
wrkDetl.setAnfme(locDetl.getAnfme());
- VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
+// VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
wrkDetl.setAppeTime(now);
wrkDetl.setModiTime(now);
if (!wrkDetlService.insert(wrkDetl)) {
@@ -1928,10 +1988,11 @@
for (LocDetl locDetl : locDetls) {
WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(locDetl);
wrkDetl.setWrkNo(workNo);
wrkDetl.setIoTime(new Date());
wrkDetl.setAnfme(locDetl.getAnfme());
- VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
+// VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
wrkDetl.setAppeTime(new Date());
wrkDetl.setModiTime(new Date());
if (!wrkDetlService.insert(wrkDetl)) {
@@ -2013,6 +2074,11 @@
continue;
}
+ Integer ctnType = 1;
+ if (ctnType.equals(loc.getCtnType())) {
+ continue;
+ }
+
String sourceLocNo = sourceLoc.getLocNo();
String locNo = loc.getLocNo();
@@ -2067,6 +2133,7 @@
// 淇敼鐩爣搴撲綅鐘舵��
if (loc.getLocSts().equals("O")) {
loc.setLocSts("S"); // S.鍏ュ簱棰勭害
+ loc.setCtnType(1);
loc.setModiTime(new Date());
if (!locMastService.updateById(loc)) {
throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
@@ -2136,16 +2203,19 @@
// RGV ===>> 鎵ц瀵筊GV鎿嶄綔
public synchronized void rgvExecute(Integer mark) {
- ArrayList<Integer> list = new ArrayList<Integer>(){{add(1090);add(1091);}};
+ ArrayList<Integer> list = new ArrayList<Integer>(){{add(2003);add(2002);}};
for (Integer staNo : list) {
Integer devpId = null;
+ Integer rgvStaNoDevpId = null;
Integer rgvStaNo = null;
- if (staNo == 1090) {
+ if (staNo == 2003) {
devpId = 1;
- rgvStaNo = 1091;
+ rgvStaNo = 2002;
+ rgvStaNoDevpId = 2;
}else {
devpId = 2;
- rgvStaNo = 1090;
+ rgvStaNo = 2003;
+ rgvStaNoDevpId = 1;
}
SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devpId);
@@ -2166,7 +2236,49 @@
) {
WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
.eq("wrk_no", staProtocol.getWorkNo()));
+
+ if (wrkMast == null) {
+ continue;
+ }
+
if (wrkMast.getWrkSts() == 201) {
+ continue;
+ }
+
+ SiemensDevpThread devpThread2 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvStaNoDevpId);
+ if (devpThread2 == null) {
+ continue;
+ }
+ StaProtocol staProtocolRgvStaNo = devpThread2.getStation().get(rgvStaNo);
+ if (staProtocolRgvStaNo == null) {
+ continue;
+ }
+
+ if (!staProtocolRgvStaNo.isAutoing()) {
+ continue;
+ }
+
+ if (staProtocolRgvStaNo.isLoading()) {
+ continue;
+ }
+
+ // 鑾峰彇RGV淇℃伅
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, 1);
+ if (rgvThread == null) {
+ continue;
+ }
+
+ RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+ if (rgvProtocol == null) {
+ continue;
+ }
+
+ if (rgvProtocol.statusType1 != RgvStatusType.IDLE && rgvProtocol.getTaskNo1() != 0) {
+ continue;
+ }
+
+ Object object = redisUtil.get(RedisConstantType.RGV_MOVE_LOCK + wrkMast.getWrkNo());
+ if (object != null) {
continue;
}
@@ -2187,6 +2299,7 @@
wrkMast.setWrkSts(201L);//201.RGV鎼繍涓�
wrkMast.setModiTime(new Date());
wrkMastService.updateById(wrkMast);
+ redisUtil.set(RedisConstantType.RGV_MOVE_LOCK + wrkMast.getWrkNo(), "lock", 60 * 60);
}
}
}
@@ -2206,7 +2319,7 @@
}
// 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1
- if (rgvProtocol.statusType == RgvStatusType.WAITING && rgvProtocol.getTaskNo1() != 0) {
+ if (rgvProtocol.statusType1 == RgvStatusType.WAITING && rgvProtocol.getTaskNo1() != 0) {
News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛屽RGV宸ヤ綔妗g殑瀹屾垚鎿嶄綔");
// 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
WrkMast wrkMast = wrkMastMapper.selectPakInStep3(rgvProtocol.getTaskNo1().intValue());
@@ -2215,25 +2328,25 @@
continue;
}
- if (Cools.isEmpty(wrkMast.getMemo())) {
- News.error(""+mark+" - 1"+" - RGV澶勪簬绛夊緟纭涓斾换鍔″畬鎴愮姸鎬侊紝浣嗗伐浣滄。鏁版嵁寮傚父銆俁GV鍙�={}锛屽伐浣滃彿={}", rgvSlave.getId(), rgvProtocol.getTaskNo1());
+ if (wrkMast.getWrkSts() != 201) {
continue;
}
Integer devpId = null;
Integer devpStaNo = null;
String locNo = null;
+ Long updateWrkSts = null;
if (wrkMast.getIoType() < 100) {
//鍏ュ簱
- wrkMast.setWrkSts(2L);
+ updateWrkSts = 2L;
devpId = 1;
- devpStaNo = 1090;
+ devpStaNo = 2003;
locNo = wrkMast.getLocNo();
}else {
//鍑哄簱
- wrkMast.setWrkSts(15L);
+ updateWrkSts = 15L;
devpId = 2;
- devpStaNo = 1091;
+ devpStaNo = 2002;
locNo = wrkMast.getSourceLocNo();
}
@@ -2260,10 +2373,8 @@
if (!result) {
throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
}
-
- Date now = new Date();
- wrkMast.setModiTime(now);
- wrkMastMapper.updateById(wrkMast);
+ wrkMastMapper.updateWrkSts(updateWrkSts, wrkMast.getWrkNo());
+ rgvThread.setResetFlag1(true);
}
}
}
--
Gitblit v1.9.1