From d8c7de6a74121fcb35de8d807b377043e0c89c99 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期二, 09 九月 2025 08:17:56 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 121 ++++++++++++++++++++--------------------
1 files changed, 60 insertions(+), 61 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 596db23..944e371 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -49,10 +49,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -1047,7 +1044,7 @@
News.warn("" + mark + " - 1" + " - 12" + " - // F銆丏 搴撲綅={},搴撲綅鐘舵��={}", shallowLoc.getLocNo(), shallowLoc.getLocSts());
// 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
- if (moveLocForDeepLoc(slave, shallowLoc, mark)) {
+ if (moveLocForDeepLoc(slave, crnProtocol, shallowLoc, mark)) {
wrkMast.setUpdMk("Y");
wrkMast.setIoPri(14D);
wrkMastMapper.updateById(wrkMast);
@@ -1304,7 +1301,7 @@
// if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())
// || Cools.isEmpty(waitWrkMast)) {
if (Cools.isEmpty(waitWrkMast)) {
- if (moveLocForDeepLoc(slave, shallowLoc, mark)) {
+ if (moveLocForDeepLoc(slave, crnProtocol, shallowLoc, mark)) {
wrkMast.setUpdMk("Y");
// wrkMast.setIoPri(14D);
wrkMastMapper.updateById(wrkMast);
@@ -2069,8 +2066,9 @@
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
// 鍛戒护闆嗗悎
List<LedCommand> commands = new ArrayList<>();
- // 宸ヤ綔妗i泦鍚�
- List<WrkMast> wrkMasts = new ArrayList<>();
+// // 宸ヤ綔妗i泦鍚�
+// List<WrkMast> wrkMasts = new ArrayList<>();
+ List<Integer> workNoList = new ArrayList<>();
for (Integer staNo : led.getStaArr()) {
// 鑾峰彇鍙夎溅绔欑偣
StaProtocol staProtocol = devpThread.getStation().get(staNo);
@@ -2079,6 +2077,13 @@
} else {
staProtocol = staProtocol.clone();
}
+ Integer wrkNo = null;
+ Integer ioType = null;
+ Integer targetStaNo = null;
+ String sourceLocNo = null;
+ String locNo = null;
+ String barcode = null;
+
// 鑾峰彇宸ヤ綔妗f暟鎹�
WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
// if (null == wrkMast || wrkMast.getWrkSts() < 14 || wrkMast.getIoType() < 100) { continue; }
@@ -2092,17 +2097,28 @@
}
WrkMastLog wrkMastLog = wrkMastLogs.get(0);
- wrkMast = new WrkMast();
- wrkMast.sync(wrkMastLog);
+ wrkNo = wrkMastLog.getWrkNo();
+ ioType = wrkMastLog.getIoType();
+ sourceLocNo = wrkMastLog.getSourceLocNo();
+ locNo = wrkMastLog.getLocNo();
+ targetStaNo = wrkMastLog.getStaNo();
+ barcode = wrkMastLog.getBarcode();
+ }else {
+ wrkNo = wrkMast.getWrkNo();
+ ioType = wrkMast.getIoType();
+ sourceLocNo = wrkMast.getSourceLocNo();
+ locNo = wrkMast.getLocNo();
+ targetStaNo = wrkMast.getStaNo();
+ barcode = wrkMast.getBarcode();
}
News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�:鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�");
- wrkMasts.add(wrkMast);
+ workNoList.add(wrkNo);
// 缁勮鍛戒护
LedCommand ledCommand = new LedCommand();
- ledCommand.setWorkNo(wrkMast.getWrkNo());
- ledCommand.setIoType(wrkMast.getIoType());
+ ledCommand.setWorkNo(wrkNo);
+ ledCommand.setIoType(ioType);
// 鍑哄簱妯″紡
- switch (wrkMast.getIoType()) {
+ switch (ioType) {
case 1:
ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
break;
@@ -2135,30 +2151,16 @@
ledCommand.setTitle("骞舵澘鍏ュ簱");
break;
default:
- News.error("" + mark + " - 1" + " - 浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
+ News.error("" + mark + " - 1" + " - 浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkNo, ioType);
break;
}
- ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
- ledCommand.setLocNo(wrkMast.getLocNo());
- ledCommand.setStaNo(wrkMast.getStaNo());
- ledCommand.setBarcode(wrkMast.getBarcode());
+ ledCommand.setSourceLocNo(sourceLocNo);
+ ledCommand.setLocNo(locNo);
+ ledCommand.setStaNo(targetStaNo);
+ ledCommand.setBarcode(barcode);
// 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);
-// }
+ if (ioType != 110 && ioType != 10) {
+ List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkNo);
if (!wrkDetls.isEmpty()) {
WrkDetl wrkDetl = wrkDetls.get(0);
@@ -2199,22 +2201,6 @@
, wrkDetl.getCstateid$()
));
-// 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()
-// , wrkDetl.getCstateid$()
-// )));
}else {
List<WrkDetlLog> wrkDetlLogs = wrkDetlLogService.selectTodayByWrkNo(wrkMast.getWrkNo());
if(!wrkDetlLogs.isEmpty()) {
@@ -2262,7 +2248,7 @@
}
commands.add(ledCommand);
}
- Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet());
+ Set<Integer> workNos = new HashSet<>(workNoList);
// 鑾峰彇LED绾跨▼
LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
// 鐩稿悓宸ヤ綔鍙烽泦鍚堝垯杩囨护
@@ -2300,12 +2286,15 @@
try {
// 淇敼涓绘。led鏍囪
- for (WrkMast wrkMast : wrkMasts) {
- wrkMast.setOveMk("Y");
- wrkMast.setModiTime(new Date());
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- News.errorNoLog("" + mark + " - 4" + " - 鏇存柊宸ヤ綔妗eけ璐�");
- throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
+ for (Integer wrkNo : workNoList) {
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", wrkNo));
+ if (wrkMast != null) {
+ wrkMast.setOveMk("Y");
+ wrkMast.setModiTime(new Date());
+ if (wrkMastMapper.updateById(wrkMast) == 0) {
+ News.errorNoLog("" + mark + " - 4" + " - 鏇存柊宸ヤ綔妗eけ璐�");
+ throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
+ }
}
}
@@ -2440,8 +2429,7 @@
* 鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)
* tip锛氬悓姝�
*/
- private synchronized boolean moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc, Integer mark) {
-
+ private synchronized boolean moveLocForDeepLoc(CrnSlave crn, CrnProtocol crnProtocol, LocMast shallowLoc, Integer mark) {
try {
News.warnNoLog("" + mark + "moveLocForDeepLoc" + " - 0" + " - 寮�濮嬫墽琛�:鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)");
List<Integer> rows = locMastService.queryDistinctRow(crn.getId());
@@ -2449,8 +2437,13 @@
for (Integer row : rows) {
if (Utils.isDeepLoc(slaveProperties, row)) {
loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
-
if (loc != null) {
+ if (crn.getId() == 1) {
+ if (Utils.getLaneByLocNo(loc.getLocNo()) != crnProtocol.getCrnLane()) {
+ continue;
+ }
+ }
+
if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())) {
String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo());
LocMast shallowLoc1 = locMastService.selectById(shallowLocNo);
@@ -2470,6 +2463,12 @@
loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
if (null != loc) {//瀵瑰簲娣卞簱浣嶉潪鍦ㄥ簱鐘舵��,涓嶈兘绉诲簱
+ if (crn.getId() == 1) {
+ if (Utils.getLaneByLocNo(loc.getLocNo()) != crnProtocol.getCrnLane()) {
+ continue;
+ }
+ }
+
String deepLoc = Utils.getDeepLoc(slaveProperties, loc.getLocNo());
LocMast deepLoc1 = locMastService.selectById(deepLoc);
if (!deepLoc1.getLocSts().equals("F") && !deepLoc1.getLocSts().equals("D")) {
--
Gitblit v1.9.1