From 286eadc0913fe9974ab2f2fd188fb707dc16ad40 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期二, 24 二月 2026 09:16:14 +0800
Subject: [PATCH] 1

---
 zy-acs-cv/src/main/java/com/zy/core/operation/handler/AppleLocOperationHandler.java |   66 +++++++++++++++++++-------------
 1 files changed, 39 insertions(+), 27 deletions(-)

diff --git a/zy-acs-cv/src/main/java/com/zy/core/operation/handler/AppleLocOperationHandler.java b/zy-acs-cv/src/main/java/com/zy/core/operation/handler/AppleLocOperationHandler.java
index 9bcf311..268d169 100644
--- a/zy-acs-cv/src/main/java/com/zy/core/operation/handler/AppleLocOperationHandler.java
+++ b/zy-acs-cv/src/main/java/com/zy/core/operation/handler/AppleLocOperationHandler.java
@@ -1,19 +1,17 @@
 package com.zy.core.operation.handler;
 
-import com.core.exception.CoolException;
+import com.core.common.Cools;
 import com.zy.asrs.controller.vo.ApplyInDto;
 import com.zy.asrs.controller.vo.ApplyInRepsonseDto;
 import com.zy.asrs.entity.Job;
-import com.zy.asrs.service.CtuMainService;
+import com.zy.asrs.enums.WorkNoTypeType;
 import com.zy.asrs.service.JobService;
 import com.zy.asrs.service.WmsMainService;
 import com.zy.asrs.service.WrkLastnoService;
-import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.ConveyorStateType;
 import com.zy.core.enums.SlaveType;
 import com.zy.core.model.DevpSlave;
-import com.zy.core.model.Task;
 import com.zy.core.model.protocol.StaProtocol;
 import com.zy.core.operation.OperationHandler;
 import com.zy.core.properties.CtuOperationConfig;
@@ -23,6 +21,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 import java.util.Date;
@@ -54,6 +53,7 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public synchronized void execute(CtuOperationConfig config) {
         try {
             // 鏍规嵁杈撻�佺嚎plc閬嶅巻
@@ -64,37 +64,41 @@
                     SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
                     StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
                     BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, devp.getId());
-
                     if (staProtocol == null) {
-                        return;
+                        continue;
                     } else {
                         staProtocol = staProtocol.clone();
                     }
                     // 鍒ゆ柇鏄惁婊¤冻鏉′欢
                     if (!staProtocol.isLoading()) {
-                        return;
+                        continue;
                     }
                     if (staProtocol.getWorkNo() > 0 && staProtocol.isAutoing()) {
-                        Job job = jobService.getJobByJobNoAndJobSts(staProtocol.getWorkNo(), 2);
-                        if (job != null) {
-                            ApplyInDto applyInDto=new ApplyInDto();
-                            applyInDto.setStaNo(inSta.getStaNo()+"");
-                            applyInDto.setBarcode(barcodeThread.getBarcode());
-                            //TODO
-                            ApplyInRepsonseDto locOfWms =new ApplyInRepsonseDto();
-                            locOfWms.setTaskNo(System.currentTimeMillis()+"");
-                            locOfWms.setBatchNo(System.currentTimeMillis()+"");
-                            //ApplyInRepsonseDto locOfWms = wmsMainService.getLocOfWms(applyInDto);
-                            if (locOfWms != null) {
-                                job.setLoc(locOfWms.getLoc());
-                                job.setTaskNo(locOfWms.getTaskNo());
-                                job.setBatchNo(locOfWms.getBatchNo());
-                                job.setStaNo(inSta.getTargetSta()+"");
-                                job.setJobSts(4);
-                                job.setWmsTime(new Date());
-                                jobService.updateById(job);
-                            }else {
-                                log.info("WMS鏈繑鍥炲簱浣嶄俊鎭紝{}",applyInDto);
+                        String barcode = barcodeThread.getBarcode();
+                        if (barcodeThread == null || Cools.isEmpty(barcode)) {
+                            log.error("绔欑偣锛歿}锛屾湭鎵埌鐮佸�硷細{}", staProtocol.getSiteId(), barcode);
+                            return;
+                        }
+                        // 9991鏄┖鏉匡紝9992鏄弧鏉�
+                        if (staProtocol.getWorkNo() >= 9991 && staProtocol.getWorkNo() <= 9992) {
+                            Job job = jobService.getJobByBarcode(barcode);
+                            // 鐢宠鍏ュ簱
+                            if (job == null || (job != null && job.getJobSts() == 8)) {
+                                ApplyInRepsonseDto locOfWms = wmsMainService.getLocOfWms(applyIn(barcode, inSta.getStaNo() + "", staProtocol));
+                                if (locOfWms != null) {
+                                    job = new Job();
+                                    job.setLoc(locOfWms.getLocNo());
+                                    job.setTaskNo(locOfWms.getTaskNo());
+                                    job.setBatchNo(locOfWms.getBatchNo());
+                                    job.setBarcode(barcode);
+                                    job.setStaNo(inSta.getTargetSta() + "");
+                                    job.setJobNo(wrkLastnoService.nextWorkNo(WorkNoTypeType.WORK_NO_TYPE.type));
+                                    job.setJobSts(ConveyorStateType.APPLYLOC.getStatus());
+                                    job.setWmsTime(new Date());
+                                    jobService.insert(job);
+                                } else {
+                                    log.info("WMS鏈繑鍥炲簱浣嶄俊鎭紝鏉$爜锛歿},绔欑偣锛歿}", barcode, inSta.getStaNo());
+                                }
                             }
                         }
                     }
@@ -105,4 +109,12 @@
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
         }
     }
+
+    private ApplyInDto applyIn(String barcode, String staNo, StaProtocol staProtocol) {
+        ApplyInDto applyInDto = new ApplyInDto();
+        applyInDto.setStaNo(staNo);
+        applyInDto.setBarcode(barcode);
+        applyInDto.setFull(staProtocol.getWorkNo() == 9992);
+        return applyInDto;
+    }
 }

--
Gitblit v1.9.1