From 74077c8627197afd1723c991f75f80e9a58af9b1 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期一, 07 四月 2025 10:38:47 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 264 ++++++++++++++++++++++++++++++++++++++--------------
src/main/java/com/zy/core/model/LedSlave.java | 9 +
src/main/resources/application.yml | 26 ++++-
3 files changed, 220 insertions(+), 79 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 13f7fda..3bd07f7 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -45,6 +45,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import java.io.IOException;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -97,6 +98,9 @@
@Value("${wms.url}")
private String wmsUrl;
+
+ @Value("${camera.url}")
+ private String cameraUrl;
public Short wrkNo = 10000;
@@ -940,6 +944,9 @@
}
}
}
+ //涓嬪彂浠诲姟鍓嶈姹傛憚鍍忔満
+ sendACameraRequest(wrkMast.getWrkNo());
+
News.warnNoLog(""+mark+" - 1"+" - 15"+" - 鍛戒护涓嬪彂 : 宸ヤ綔鍙�={},婧愭帓={},婧愬垪={},婧愬眰={},鐩爣鎺�={},鐩爣鍒�={},鐩爣灞�={}",wrkMast.getWrkNo().shortValue()
,crnStn.getRow().shortValue(),crnStn.getBay().shortValue(),crnStn.getLev().shortValue()
,locMast.getRow1().shortValue(),locMast.getBay1().shortValue(),locMast.getLev1().shortValue());
@@ -1109,7 +1116,11 @@
break;
// return;
}
-
+ //涓嬪彂浠诲姟鍓嶈姹傛憚鍍忔満
+ boolean succ = sendACameraRequest(wrkMast.getWrkNo());
+ if (!succ){
+ log.error(wrkMast.getWrkNo()+"浠诲姟涓嬪彂鍓嶈姹傛憚鍍忔満鍚姩澶辫触");
+ }
News.warnNoLog(""+mark+" - 2"+" - 12"+" - 鍛戒护涓嬪彂 : 宸ヤ綔鍙�={},婧愭帓={},婧愬垪={},婧愬眰={},鐩爣鎺�={},鐩爣鍒�={},鐩爣灞�={}",wrkMast.getWrkNo().shortValue()
,sourceSta.getRow1().shortValue(),sourceSta.getBay1().shortValue(),sourceSta.getLev1().shortValue()
,crnStn.getRow().shortValue(),crnStn.getBay().shortValue(),crnStn.getLev().shortValue());
@@ -1634,78 +1645,157 @@
List<LedCommand> commands = new ArrayList<>();
// 宸ヤ綔妗i泦鍚�
List<WrkMast> wrkMasts = new ArrayList<>();
- for (Integer staNo : led.getStaArr()) {
- // 鑾峰彇鍙夎溅绔欑偣
- StaProtocol staProtocol = devpThread.getStation().get(staNo);
- if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo() || !staProtocol.isLoading()) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
- // 鑾峰彇宸ヤ綔妗f暟鎹�
- WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
- if (null == wrkMast) { continue; }
- wrkMasts.add(wrkMast);
- // 缁勮鍛戒护
- LedCommand ledCommand = new LedCommand();
- ledCommand.setWorkNo(wrkMast.getWrkNo());
- ledCommand.setIoType(wrkMast.getIoType());
- // 鍑哄簱妯″紡
- switch (wrkMast.getIoType()) {
- case 1:
- ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
- break;
- case 10:
- ledCommand.setTitle("绌烘澘鍏ュ簱");
- break;
- case 101:
- ledCommand.setTitle("鍏ㄦ澘鍑哄簱");
- break;
- case 103:
- ledCommand.setTitle("鎷f枡鍑哄簱");
- break;
- case 104:
- ledCommand.setTitle("骞舵澘鍑哄簱");
- break;
- case 107:
- ledCommand.setTitle("鐩樼偣鍑哄簱");
- break;
- case 110:
- ledCommand.setTitle("绌烘澘鍑哄簱");
- ledCommand.setEmptyMk(true);
- break;
- default:
- News.error("浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
- break;
- }
- ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
- ledCommand.setStaNo(wrkMast.getStaNo());
- ledCommand.setBarcode(wrkMast.getBarcode());
- if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
- List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
+ List<Integer> staArr = new ArrayList<>();
+ // 鑾峰彇鍙夎溅绔欑偣
+ StaProtocol modelStaProtocol = devpThread.getStation().get(led.getModelSta());
+ if (null != modelStaProtocol && modelStaProtocol.isIn()) {
+ for (Integer staNo : led.getInStaArr()) {
+ // 鑾峰彇鍙夎溅绔欑偣
+ StaProtocol staProtocol = devpThread.getStation().get(staNo);
+ if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo() || !staProtocol.isLoading()) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ // 鑾峰彇宸ヤ綔妗f暟鎹�
+ WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
+ if (null == wrkMast) { continue; }
+ wrkMasts.add(wrkMast);
+ // 缁勮鍛戒护
+ LedCommand ledCommand = new LedCommand();
+ ledCommand.setWorkNo(wrkMast.getWrkNo());
+ ledCommand.setIoType(wrkMast.getIoType());
+ // 鍑哄簱妯″紡
+ switch (wrkMast.getIoType()) {
+ case 1:
+ ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
+ break;
+ case 10:
+ ledCommand.setTitle("绌烘澘鍏ュ簱");
+ break;
+ case 101:
+ ledCommand.setTitle("鍏ㄦ澘鍑哄簱");
+ break;
+ case 103:
+ ledCommand.setTitle("鎷f枡鍑哄簱");
+ break;
+ case 104:
+ ledCommand.setTitle("骞舵澘鍑哄簱");
+ break;
+ case 107:
+ ledCommand.setTitle("鐩樼偣鍑哄簱");
+ break;
+ case 110:
+ ledCommand.setTitle("绌烘澘鍑哄簱");
+ ledCommand.setEmptyMk(true);
+ break;
+ default:
+ News.error("浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
+ break;
+ }
+ ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
+ ledCommand.setStaNo(wrkMast.getStaNo());
+ ledCommand.setBarcode(wrkMast.getBarcode());
+ if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
+ List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
- wrkDetls.forEach(wrkDetl -> {
- Double total = 0.0;
- EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
- LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr()));
- if (Cools.isEmpty(locDetl)) {
- total = wrkDetl.getAnfme();
- } else {
- total = locDetl.getAnfme();
- }
- if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1) {
- ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
- }
- if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) {
- ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
- }
- if (wrkMast.getIoType() == 107) {
- ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
- }
- });
+ wrkDetls.forEach(wrkDetl -> {
+ Double total = 0.0;
+ EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
+ LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr()));
+ if (Cools.isEmpty(locDetl)) {
+ total = wrkDetl.getAnfme();
+ } else {
+ total = locDetl.getAnfme();
+ }
+ if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1) {
+ ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
+ }
+ if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) {
+ ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
+ }
+ if (wrkMast.getIoType() == 107) {
+ ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
+ }
+ });
+ }
+ commands.add(ledCommand);
}
- commands.add(ledCommand);
+ }else if (null != modelStaProtocol && modelStaProtocol.isOut()){
+ for (Integer staNo : led.getOutStaArr()) {
+ // 鑾峰彇鍙夎溅绔欑偣
+ StaProtocol staProtocol = devpThread.getStation().get(staNo);
+ if (null == staProtocol || null == staProtocol.getFinishWorkNo() || 0 == staProtocol.getFinishWorkNo() || !staProtocol.isLoading()) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ // 鑾峰彇宸ヤ綔妗f暟鎹�
+ WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
+ if (null == wrkMast) { continue; }
+ wrkMasts.add(wrkMast);
+ // 缁勮鍛戒护
+ LedCommand ledCommand = new LedCommand();
+ ledCommand.setWorkNo(wrkMast.getWrkNo());
+ ledCommand.setIoType(wrkMast.getIoType());
+ // 鍑哄簱妯″紡
+ switch (wrkMast.getIoType()) {
+ case 1:
+ ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
+ break;
+ case 10:
+ ledCommand.setTitle("绌烘澘鍏ュ簱");
+ break;
+ case 101:
+ ledCommand.setTitle("鍏ㄦ澘鍑哄簱");
+ break;
+ case 103:
+ ledCommand.setTitle("鎷f枡鍑哄簱");
+ break;
+ case 104:
+ ledCommand.setTitle("骞舵澘鍑哄簱");
+ break;
+ case 107:
+ ledCommand.setTitle("鐩樼偣鍑哄簱");
+ break;
+ case 110:
+ ledCommand.setTitle("绌烘澘鍑哄簱");
+ ledCommand.setEmptyMk(true);
+ break;
+ default:
+ News.error("浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
+ break;
+ }
+ ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
+ ledCommand.setStaNo(wrkMast.getStaNo());
+ ledCommand.setBarcode(wrkMast.getBarcode());
+ if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
+ List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
+
+ wrkDetls.forEach(wrkDetl -> {
+ Double total = 0.0;
+ EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
+ LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr()));
+ if (Cools.isEmpty(locDetl)) {
+ total = wrkDetl.getAnfme();
+ } else {
+ total = locDetl.getAnfme();
+ }
+ if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1) {
+ ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
+ }
+ if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) {
+ ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
+ }
+ if (wrkMast.getIoType() == 107) {
+ ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
+ }
+ });
+ }
+ commands.add(ledCommand);
+ }
}
+
Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet());
// 鑾峰彇LED绾跨▼
LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
@@ -1749,9 +1839,16 @@
for (LedSlave led : slaveProperties.getLed()) {
// 鑾峰彇杈撻�佺嚎plc绾跨▼
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
+ List<Integer> staArr = new ArrayList<>();
// 鍛戒护闆嗗悎
boolean reset = true;
- for (Integer staNo : led.getStaArr()) {
+ StaProtocol modelStaProtocol = devpThread.getStation().get(led.getModelSta());
+ if (null != modelStaProtocol && modelStaProtocol.isIn()) {
+ staArr = led.getInStaArr();
+ } else if (null != modelStaProtocol && modelStaProtocol.isOut()) {
+ staArr = led.getOutStaArr();
+ }
+ for (Integer staNo : staArr) {
// 鑾峰彇鍙夎溅绔欑偣
StaProtocol staProtocol = devpThread.getStation().get(staNo);
if (staProtocol == null) { continue; }
@@ -2264,4 +2361,29 @@
}
+ public boolean sendACameraRequest(Integer taskNo){
+ try {
+ WrkMast wrkMast = wrkMastService.selectByWrkNo(taskNo);
+ if (null == wrkMast){
+ return false;
+ }
+
+ String response = new HttpHandler.Builder()
+ .setUri(cameraUrl)
+ .setPath("/execute")
+ .build()
+ .doGet();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.getInteger("code").equals(200)) {
+ wrkMast.setLogErrMemo(jsonObject.getInteger("data").toString());
+ wrkMastService.updateById(wrkMast);
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ return false;
+ }
+
+ return true;
+ }
+
}
diff --git a/src/main/java/com/zy/core/model/LedSlave.java b/src/main/java/com/zy/core/model/LedSlave.java
index af02dfc..957c486 100644
--- a/src/main/java/com/zy/core/model/LedSlave.java
+++ b/src/main/java/com/zy/core/model/LedSlave.java
@@ -18,7 +18,12 @@
// 杈撻�佺嚎plc缂栧彿
private Integer devpPlcId;
- // 鍙夎溅绔欑偣鏁扮粍
- private List<Integer> staArr = new ArrayList<>();
+ private Integer modelSta;
+
+ // 鍙夎溅鍏ュ簱绔欑偣鏁扮粍
+ private List<Integer> inStaArr = new ArrayList<>();
+
+ // 鍙夎溅鍑哄簱绔欑偣鏁扮粍
+ private List<Integer> outStaArr = new ArrayList<>();
}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 63ba560..829441c 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -35,6 +35,8 @@
wms:
url: 127.0.0.1:8080/fyxcwms
+camera:
+ url: 192.168.10.151:3000
# 涓嬩綅鏈洪厤缃�
wcs-slave:
@@ -180,39 +182,51 @@
ip: 10.10.10.101
port: 5005
devpPlcId: ${wcs-slave.devp[0].id}
- staArr: 100
+ inStaArr: 1112
+ outStaArr: 1111
+ modelSta: 1112
# LED2
led[1]:
id: 2
ip: 10.10.10.102
port: 5005
devpPlcId: ${wcs-slave.devp[0].id}
- staArr: 106
+ inStaArr: 1112
+ outStaArr: 1111
+ modelSta: 1112
# LED3
led[2]:
id: 3
ip: 10.10.10.103
port: 5005
devpPlcId: ${wcs-slave.devp[0].id}
- staArr: 107
+ inStaArr: 1112
+ outStaArr: 1111
+ modelSta: 1112
# LED4
led[3]:
id: 4
ip: 10.10.10.104
port: 5005
devpPlcId: ${wcs-slave.devp[0].id}
- staArr: 152
+ inStaArr: 1112
+ outStaArr: 1111
+ modelSta: 1112
# LED5
led[4]:
id: 5
ip: 10.10.10.105
port: 5005
devpPlcId: ${wcs-slave.devp[0].id}
- staArr: 156
+ inStaArr: 1112
+ outStaArr: 1111
+ modelSta: 1112
# LED6
led[5]:
id: 6
ip: 10.10.10.106
port: 5005
devpPlcId: ${wcs-slave.devp[0].id}
- staArr: 160,159
\ No newline at end of file
+ inStaArr: 1112
+ outStaArr: 1111
+ modelSta: 1112
\ No newline at end of file
--
Gitblit v1.9.1