From 92b6e11b2c9494e82e9bcb4b9b8b150951727135 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期四, 04 九月 2025 10:29:20 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  101 ++++++++++++++++++++++----------------------------
 1 files changed, 45 insertions(+), 56 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..d5dbdff 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;
 
 /**
@@ -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け璐�");
+                        }
                     }
                 }
 

--
Gitblit v1.9.1