From 6cf99e75f5c51714ed9bdbd503aefc856f0ab76b Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 28 九月 2023 16:31:50 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 107 insertions(+), 10 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 6becb10..c875665 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1946,6 +1946,93 @@
}
/**
+ * AGV琛ヨ揣 => 鏈烘鑷傛嫞鏂�
+ */
+ public void agvRestockByRobot() {
+ //妫�娴�300绔欐槸鍚﹁嚜鍔ㄣ�佹湁鐗┿�佸伐浣滃彿
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ // 鑾峰彇鍏ュ簱绔欎俊鎭�
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ StaProtocol staProtocol = devpThread.getStation().get(300);
+ if (staProtocol == null) {
+ continue;
+ }
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() != 0) {
+ //鏌ヨ鏄惁鏈夊伐浣滄。
+ WrkMast wrkMast = wrkMastMapper.selectByWorkNo(staProtocol.getWorkNo().intValue());
+ if (wrkMast == null) {
+ continue;
+ }
+
+ if (wrkMast.getWrkSts() != 25) {//25.鎻愬崌鏈烘惉杩愬畬鎴�
+ continue;
+ }
+
+ if (wrkMast.getMk().equals("Y")) {//鏍囪涓篩琛ㄧず闇�瑕佺敤鍒版満姊拌噦鎷f枡
+ Short targetSta = null;//鐩爣绔�
+ //鍒ゆ柇鏈烘鑷傛嫞鏂欑珯鏄惁绌洪棽
+ StaProtocol staProtocol303 = devpThread.getStation().get(303);
+ StaProtocol staProtocol317 = devpThread.getStation().get(317);
+ if (staProtocol303.isAutoing() && !staProtocol303.isLoading()) {
+ //鑷姩銆佹棤鐗�
+ targetSta = (short) 303;
+ } else if (staProtocol317.isAutoing() && !staProtocol317.isLoading()) {
+ //鑷姩銆佹棤鐗�
+ targetSta = (short) 317;
+ }else {
+ continue;//娌℃湁绌洪棽绔欑偣
+ }
+
+ targetSta = (short) 317;
+
+ //瑕嗙洊宸ヤ綔妗g洰鏍囩珯
+ wrkMast.setStaNo(targetSta.intValue());
+ if (wrkMastMapper.updateById(wrkMast) > 0) {
+ //鍚�300绔欏啓鍏ョ洰鏍囩珯
+ staProtocol = staProtocol.clone();
+ staProtocol.setStaNo(targetSta);//绉诲姩鍒扮洰鏍囩珯
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ try {
+ Thread.sleep(500);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ continue;
+ }
+ }
+ }
+
+ StaProtocol staProtocol303 = devpThread.getStation().get(303);
+ StaProtocol staProtocol317 = devpThread.getStation().get(317);
+ if (staProtocol303.isAutoing() && staProtocol303.isLoading() && staProtocol303.getWorkNo() != 0) {
+ //璋冨害鏈烘鑷�
+ //鏌ヨ鏄惁鏈夊伐浣滄。
+ WrkMast wrkMast = wrkMastMapper.selectByWorkNo(staProtocol303.getWorkNo().intValue());
+ if (wrkMast == null) {
+ continue;
+ }
+ WrkDetl wrkDetl = wrkDetlService.selectById(wrkMast.getWrkNo());
+ if (wrkDetl == null) {
+ continue;
+ }
+ RobotUtils.sendTask(staProtocol303.getWorkNo().toString(), wrkDetl.getAnfme().intValue(), "303");
+ }else if (staProtocol317.isAutoing() && staProtocol317.isLoading() && staProtocol317.getWorkNo() != 0) {
+ //璋冨害鏈烘鑷�
+ //鏌ヨ鏄惁鏈夊伐浣滄。
+ WrkMast wrkMast = wrkMastMapper.selectByWorkNo(staProtocol317.getWorkNo().intValue());
+ if (wrkMast == null) {
+ continue;
+ }
+ WrkDetl wrkDetl = wrkDetlService.selectById(wrkMast.getWrkNo());
+ if (wrkDetl == null) {
+ continue;
+ }
+ RobotUtils.sendTask(staProtocol303.getWorkNo().toString(), wrkDetl.getAnfme().intValue(), "317");
+ }
+ }
+ }
+
+ /**
* 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
*/
public void ledExecute() {
@@ -2240,7 +2327,7 @@
}
} else if (wrkCharge.getWrkSts() == 52) {
//妫�娴嬪皬杞︽槸鍚︽弧鐢�
- int maxPower = 85;
+ int maxPower = 95;
if (shuttleProtocol.getPowerPercent() < maxPower) {
continue;
}
@@ -2257,22 +2344,32 @@
assignCommand.setSourceLocNo(shuttleProtocol.getCurrentLocNo());//婧愬簱浣�(灏忚溅褰撳墠浣嶇疆)
assignCommand.setCommands(commands);//杩愯鍛戒护
+ //涓嬪彂浠诲姟
+ MessageQueue.offer(SlaveType.Shuttle, assignCommand.getShuttleNo().intValue(), new Task(3, assignCommand));
+ try {
+ Thread.sleep(3000);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
wrkCharge.setWrkSts(53L);//52.灏忚溅鍘诲厖鐢典腑 => 53.灏忚溅鍏呯數瀹屾垚
wrkCharge.setModiTime(new Date());
if (wrkChargeMapper.updateById(wrkCharge) > 0) {
- //涓嬪彂浠诲姟
- MessageQueue.offer(SlaveType.Shuttle, assignCommand.getShuttleNo().intValue(), new Task(3, assignCommand));
+ shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE.id);
+ shuttleProtocol.setTaskNo(0);
+ shuttleProtocol.setPakMk(false);
}
} else if (wrkCharge.getWrkSts() == 53) {
if (shuttleProtocol.getChargState() == 0) {//灏忚溅澶勪簬鏈厖鐢电姸鎬�
boolean result = Utils.searchEmptyGroupToMoveShuttle(Utils.getLev(wrkCharge.getLocNo()), shuttleThread.getSlave().getId(), shuttleThread);
- if (result) {
- wrkCharge.setWrkSts(60L);//53.灏忚溅鍏呯數瀹屾垚 => 60.鍏呯數浠诲姟瀹屾垚
- wrkCharge.setModiTime(new Date());
- if (wrkChargeMapper.updateById(wrkCharge) > 0) {
- shuttleProtocol.setProtocolStatusType(ShuttleProtocolStatusType.IDLE);
- shuttleProtocol.setTaskNo(0);
- }
+ if (!result) {
+ continue;
+ }
+
+ wrkCharge.setWrkSts(60L);//53.灏忚溅鍏呯數瀹屾垚 => 60.鍏呯數浠诲姟瀹屾垚
+ wrkCharge.setModiTime(new Date());
+ if (wrkChargeMapper.updateById(wrkCharge) > 0) {
+
}
}
}
--
Gitblit v1.9.1