From a12e16c98db1dd2b712a092912abf4aa20c3c00c Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期一, 30 十二月 2024 15:23:12 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/WrkMastService.java | 2 +
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 44 ++++++++++++++++++++++
src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java | 5 ++
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java | 2 +
src/main/resources/mapper/WrkMastMapper.xml | 7 +++
src/main/java/com/zy/core/MainProcess.java | 1
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 51 +++++++++++++++++++++++++
7 files changed, 112 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
index 633e46e..9e296c8 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -129,4 +129,6 @@
WrkMast selectByWrkNo(Integer wrkNo);
+ WrkMast getLastWrkMast105();
+
}
diff --git a/src/main/java/com/zy/asrs/service/WrkMastService.java b/src/main/java/com/zy/asrs/service/WrkMastService.java
index 191bbea..9f013ea 100644
--- a/src/main/java/com/zy/asrs/service/WrkMastService.java
+++ b/src/main/java/com/zy/asrs/service/WrkMastService.java
@@ -22,4 +22,6 @@
WrkMast selectByworkNo(Short workNo);
WrkMast selectByworkNo(Integer workNo);
+
+ WrkMast getLastWrkMast105();
}
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 af60d3d..50e6a67 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -51,6 +51,8 @@
import java.util.*;
import java.util.stream.Collectors;
+import static com.zy.common.utils.RandomValidateCodeUtil.code;
+
/**
* 绔嬩綋浠撳簱WCS绯荤粺涓绘祦绋嬩笟鍔�
* Created by vincent on 2020/8/6
@@ -3718,6 +3720,48 @@
}
+ public synchronized void getNeed() {
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ if (devp.getId() != 2) {
+ continue;
+ }
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ if (devpThread.isCalled == 1) {
+ try {
+ String response = new HttpHandler.Builder()
+ .setUri(wmsUrl)
+ .setPath("/rpc/process/loc/v1")
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.getInteger("code").equals(200)) {
+ log.info("浠诲姟涓嬪彂鎴愬姛");
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, null));
+ } else {
+ log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況esponse锛歿}", wmsUrl + "/mobile/comb/auth", response);
+ }
+ Thread.sleep(1000);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ if (devpThread.isFinish == 1) {
+
+ Integer weight = devpThread.weight;
+ Integer isHalf = devpThread.isHalf;
+ WrkMast lastWrkMast105 = wrkMastService.getLastWrkMast105();
+ if (Cools.isEmpty(lastWrkMast105)) continue;
+ List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(lastWrkMast105.getWrkNo());
+ if (!Cools.isEmpty(wrkDetls)) {
+ for (WrkDetl wrkDetl : wrkDetls) {
+ wrkDetl.setWeight(weight.doubleValue());
+ wrkDetlService.updateById(wrkDetl);
+ }
+ }
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(5, null));
+ }
+ }
+ }
public void CreateComb(String barcode,String code,Integer wrkNo,String batch,DevpSlave.Sta inSta) throws IOException {
Double anfme = 0d;
Double weight = 0d;
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
index d0352f3..07f81ef 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
@@ -71,4 +71,9 @@
public WrkMast selectByworkNo(Integer workNo) {
return this.baseMapper.selectByWrkNo(workNo);
}
+
+ @Override
+ public WrkMast getLastWrkMast105() {
+ return this.baseMapper.getLastWrkMast105();
+ }
}
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 1b96b52..6cd6912 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -86,6 +86,7 @@
mainService.RGV2TaskOver();
//浜屾湡缁勬墭
mainService.generateStoreWrkFile2();
+ mainService.getNeed();
} catch (Exception e) {
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index de92dcf..3390bc2 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -42,6 +42,12 @@
private SiemensS7Net siemensS7Net;
private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>();
private short heartBeatVal = 1;
+ public Integer isCalled = 0;
+ public Integer isFinish = 0;
+ public ArrayList<Integer> weights = new ArrayList<>();
+ public Integer weight = 0;
+ public ArrayList<Integer> halfs = new ArrayList<>();
+ public Integer isHalf = 0;
public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{
@@ -259,6 +265,18 @@
switch (slave.getId()){
case 2:
write2106((StaProtocol)task.getData());break;
+ }
+
+ break;
+ case 4:
+ switch (slave.getId()){
+ case 2:
+ writeIsCalled();break;
+ }
+ case 5:
+ switch (slave.getId()){
+ case 2:
+ writeIsFinish();break;
}
break;
@@ -511,6 +529,29 @@
staProtocol.setBatch(batch);
}
}
+
+ // 绌烘《鍑哄簱淇″彿
+ OperateResultExOne<byte[]> readCall = siemensS7Net.Read("DB102", (short) 4);
+ if (readCall.IsSuccess){
+ Integer isNeed = siemensS7Net.getByteTransform().TransInt32(result.Content, 0); // IBC瑕佹《淇″彿
+ Integer isFinish = siemensS7Net.getByteTransform().TransInt32(result.Content, 2); // IBC鐏岃瀹屾垚淇″彿
+ Integer weight = siemensS7Net.getByteTransform().TransInt32(result.Content, 4); // IBC鐏岃閲嶉噷
+ Integer isAHalf = siemensS7Net.getByteTransform().TransInt32(result.Content, 6); // IBC鍗婃《鏍囪
+
+ isCalled = isNeed;
+ isFinish = isFinish;
+ }
+
+ // 瀹屾垚缃愯淇″彿
+ OperateResultExOne<byte[]> finish = siemensS7Net.Read("DB105.240", (short) 4);
+ if (finish.IsSuccess){
+ short amount = siemensS7Net.getByteTransform().TransInt16(result.Content, 0);
+// isCalled = amount;
+ }
+
+// if (isCalled == 1) {
+// writeIsCalled();
+// }
OperateResultExOne<byte[]> readWeight = siemensS7Net.Read("DB101.260", (short) 2);
if (readWeight.IsSuccess){
@@ -837,6 +878,16 @@
log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol));
}
}
+
+ private void writeIsCalled() throws InterruptedException {
+ OperateResult write = siemensS7Net.Write("DB102.0" , 0); // 宸ヤ綔鍙�
+ }
+
+ private void writeIsFinish() throws InterruptedException {
+ OperateResult finish = siemensS7Net.Write("DB102.2" , 0); // 宸ヤ綔鍙�
+ OperateResult half = siemensS7Net.Write("DB102.6" , 0); // 宸ヤ綔鍙�
+ }
+
/**
* 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏�
*/
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index 13a0a46..b73f218 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -210,4 +210,11 @@
<select id="selectCrn5Task2" resultMap="BaseResultMap">
select * from dbo.asr_wrk_mast where wrk_sts=1 and io_type=1 and crn_no=5 order by io_pri desc,io_time,wrk_no ASC
</select>
+
+ <select id="getLastWrkMast105" resultMap="BaseResultMap">
+ SELECT TOP 1 mast.* FROM asr_wrk_mast mast
+ JOIN asr_wrk_detl detl
+ ON mast.wrk_no = detl.wrk_no AND mast.io_type = 105 AND mast.wrk_sts = 14 AND detl.weight is null
+ ORDER BY mast.modi_time
+ </select>
</mapper>
--
Gitblit v1.9.1