From 9f989bddecd1261b54c26b853a2528d661bdeb5e Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期四, 27 十月 2022 14:07:02 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 22 +++++++++++++++-------
src/main/resources/mapper/WrkChargeMapper.xml | 4 +++-
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 17 +++++++++++++++++
3 files changed, 35 insertions(+), 8 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 e78cd7b..e1bfc3f 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2463,8 +2463,6 @@
*/
public synchronized void loopSteCharge() {
SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- SteChargeType steChargeType = SteChargeType.get(wrkCharge.getLocNo());
-
for (SteSlave ste : slaveProperties.getSte()) {
SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, ste.getId());
SteProtocol steProtocol = steThread.getSteProtocol();
@@ -2485,17 +2483,25 @@
if (steProtocol.getCharge() > Float.parseFloat(basSte.getChargeLine())) {
continue;
}
- WrkCharge wrkCharge = wrkChargeService.selectWorking(steProtocol.getSteNo().intValue());
+// WrkCharge wrkCharge = wrkChargeService.selectWorking(steProtocol.getSteNo().intValue());
+ WrkCharge wrkCharge = wrkChargeService.selectWorking(null);
if (wrkCharge == null && steProtocol.getChargeStatus() == 0) {
- String idleLoc = basSte.getIdleLoc();
+// String idleLoc = basSte.getIdleLoc();
+ // 瀵绘壘绌洪棽鍏呯數妗�
+ SteChargeType steCharge = devpThread.getIdleChargeLocNo();
+ if (steCharge == null) {
+ log.warn("{}鍙峰皬杞︺�愮數閲忥細{}銆戝厖鐢靛け璐ワ紝鍘熷洜锛氭病鏈夌┖闂插厖鐢垫々銆�", ste.getId(), steProtocol.getCharge());
+ continue;
+ }
+ String chargeLocNo = steCharge.locNo;
wrkCharge = new WrkCharge();
wrkCharge.setSteNo(ste.getId());
wrkCharge.setWrkNo(commonService.getChargeWorkNo(4));
wrkCharge.setWrkSts(21L); // 21.鍑嗗鍏呯數
- wrkCharge.setCrnNo(basSte.getCrnNo());
+// wrkCharge.setCrnNo(basSte.getCrnNo());
wrkCharge.setIoPri((double) 10);
- wrkCharge.setLocNo(idleLoc);
+ wrkCharge.setLocNo(chargeLocNo);
wrkCharge.setMemo("charge");
if (!wrkChargeService.insert(wrkCharge)) {
log.error("淇濆瓨{}鍙风┛姊溅鍏呯數浠诲姟澶辫触!!!", ste.getId());
@@ -2503,7 +2509,9 @@
}
// 澶勪簬鍏呯數搴撲綅缁�
- if (Utils.getGroupRow(idleLoc).equals(Utils.getGroupRow(steProtocol.getRow().intValue())) && steProtocol.getBay() == Utils.getBay(idleLoc) && steProtocol.getLev() == Utils.getLev(idleLoc)) {
+ if (steProtocol.getRow().intValue() == Utils.getRow(chargeLocNo)
+ && steProtocol.getBay().intValue() == Utils.getBay(chargeLocNo)
+ && steProtocol.getLev().intValue() == Utils.getLev(chargeLocNo)) {
// 淇敼宸ヤ綔妗g姸鎬� 21.鍑嗗鍏呯數 => 24.灏忚溅鍒拌揪
wrkCharge.setWrkSts(24L);
wrkCharge.setModiTime(new Date());
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index d74e6e3..6901ef7 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -15,6 +15,7 @@
import com.zy.core.cache.OutputQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
+import com.zy.core.enums.SteChargeType;
import com.zy.core.model.DevpSlave;
import com.zy.core.model.Task;
import com.zy.core.model.protocol.StaProtocol;
@@ -279,6 +280,22 @@
return true;
}
+ /**
+ * 鑾峰彇绌洪棽鍏呯數妗�
+ */
+ public SteChargeType getIdleChargeLocNo() {
+ if (!this.charge0) {
+ return SteChargeType.FIRST;
+ }
+ if (!this.charge1) {
+ return SteChargeType.SECOND;
+ }
+ if (!this.charge2) {
+ return SteChargeType.THIRD;
+ }
+ return null;
+ }
+
@Override
public void close() {
siemensS7Net.ConnectClose();
diff --git a/src/main/resources/mapper/WrkChargeMapper.xml b/src/main/resources/mapper/WrkChargeMapper.xml
index c9d4725..6106f02 100644
--- a/src/main/resources/mapper/WrkChargeMapper.xml
+++ b/src/main/resources/mapper/WrkChargeMapper.xml
@@ -33,7 +33,9 @@
select top 1 *
from asr_wrk_charge
where 1=1
- and ste_no = #{steNo}
+ <if test="steNo != null">
+ and ste_no = #{steNo}
+ </if>
and wrk_sts < 28
</select>
--
Gitblit v1.9.1