From 3eee2147f220634b620b7ed84c97fbd8257205d5 Mon Sep 17 00:00:00 2001
From: zyh <zyh@123>
Date: 星期二, 13 一月 2026 13:21:44 +0800
Subject: [PATCH] 修改了AGV的接口以及mas获取的数据

---
 src/main/java/com/zy/asrs/service/impl/OrderPakoutServiceImpl.java |  170 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 167 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/OrderPakoutServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderPakoutServiceImpl.java
index 2e41247..d0b7de7 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderPakoutServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderPakoutServiceImpl.java
@@ -2,21 +2,23 @@
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
-import com.core.common.Cools;
-import com.core.common.DateUtils;
-import com.core.common.SnowflakeIdWorker;
+import com.core.common.*;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.EmptyPlateOutParam;
 import com.zy.asrs.entity.param.OpenOrderPakinParam;
 import com.zy.asrs.entity.param.OpenOrderPakoutParam;
 import com.zy.asrs.mapper.OrderDetlPakoutMapper;
 import com.zy.asrs.mapper.OrderPakoutMapper;
 import com.zy.asrs.service.*;
 import com.zy.common.model.DetlDto;
+import com.zy.common.model.LocDto;
+import com.zy.common.model.TaskDto;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -38,6 +40,19 @@
     private WrkDetlService wrkDetlService;
     @Autowired
     private OrderDetlPakoutServiceImpl orderDetlPakoutService;
+    @Autowired
+    private LocDetlService locDetlService;
+    @Autowired
+    private LocMastService locMastService;
+    @Autowired
+    private StaDescService staDescService;
+    @Autowired
+    private WorkService workService;
+    @Autowired
+    private BasDevpService basDevpService;
+
+    @Resource
+    private OrderPakoutService orderPakOutService;
 
     @Override
     public OrderPakout selectByNo(String orderNo) {
@@ -203,4 +218,153 @@
         return this.baseMapper.selectOrderMoveStatusInitial();
     }
 
+    @Override
+    public R pakout(List<LocDto> locDtos) {
+        if (Cools.isEmpty(locDtos)) {
+            return R.parse(BaseRes.PARAM);
+        }
+        List<LocDto> locDtoArrayList = new ArrayList<>();
+        for (LocDto locDto : locDtos) {
+            if (locDto.getFrozen() != 1 && locDto.getFrozenLoc() != 1) {
+                locDtoArrayList.add(locDto);
+            }
+        }
+        locDtos = locDtoArrayList;
+        if (Cools.isEmpty(locDtos)) {
+            return R.parse("搴撳瓨/搴撲綅琚喕缁擄紝璇峰鐞嗗悗鍑哄簱锛侊紒锛�");
+        }
+        boolean lack = true;
+        for (LocDto locDto : locDtos) {
+            if (!locDto.isLack()) {
+                lack = false;
+                break;
+            }
+        }
+        if (lack) {
+            return R.error("搴撳瓨涓嶈冻");
+        }
+
+        List<TaskDto> taskDtos = new ArrayList<>();
+        // 鏍规嵁 锛堝簱浣� & 鍑哄簱绔欙級 鍒嗙粍锛� 鐞嗘兂鐘舵�侊細涓�缁勪负涓�娆″嚭搴撲换鍔�
+        for (LocDto locDto : locDtos) {
+            if (locDto.isLack()) {
+                continue;
+            }
+            TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getStaNo(), locDto);
+            if (TaskDto.has(taskDtos, taskDto)) {
+                TaskDto dto = TaskDto.find(taskDtos, taskDto);
+                assert dto != null;
+                dto.getLocDtos().addAll(taskDto.getLocDtos());
+            } else {
+                taskDtos.add(taskDto);
+            }
+        }
+        OrderPakout orderPakout = orderPakOutService.selectByNo(locDtos.get(0).getOrderNo());
+
+        //閰嶇洏鍑哄簱鍗曠敤锛� i=5鏃舵垨鑰呭嚭搴撳埌鏈�鍚庢椂涓嬪彂绌烘澘鍑哄簱浠诲姟
+        int i = 0;
+        //闇�瑕佸嚭搴撶殑鎵樼洏鏁伴噺
+        int size = taskDtos.size();
+        //浼樺厛绾�
+        int ioPri = 50;
+        //宸蹭笅绌烘澘鍑哄簱浠诲姟鏁伴噺
+        int j = 1;
+        // -----------------------------------------------------------------------------------------------
+        for (TaskDto taskDto : taskDtos) {
+            BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo());
+            workService.stockOut(staNo, taskDto, 9995L, ioPri);
+            ioPri--;
+            i++;
+            //閰嶇洏鍑哄簱鍗曚娇鐢紝涓嬪彂闇�瑕佸嚭鐨勭┖鏉夸换鍔�
+            if (orderPakout.getDocType() == 11) {
+                if (i == size) {
+                    for (; j <= orderPakout.getPayType(); j++) {
+                        LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", taskDto.getLocNo()));
+                        Integer locType = Integer.valueOf(locMast1.getLocType2());
+                        //閰嶇洏 鍑哄簱鍗曞嚭搴撳尯鍩熸椂Q-L4鏃�,鍑哄ぇ鎵樼洏绌烘澘
+                        if(!Cools.isEmpty(orderPakout.getCstmrName())&&orderPakout.getCstmrName().equals("Q-L4")){
+                            locType = 2;
+                        }
+                        String bar = "";
+                        //鍏蜂綋寰呭畾
+//                        if(!Cools.isEmpty(orderPakout.getShipCode())&&orderPakout.getShipCode().equals("A01")){
+//                            bar = "A01";
+//                        }
+                        LocMast locMast = new LocMast();
+                        if (Cools.isEmpty(bar)) {
+                            locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+                                    .eq("loc_sts", "D").eq("loc_type2", locType).orderBy("row1",false));
+                        } else {
+                            locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+                                    .eq("loc_sts", "D").eq("loc_type2", locType).like("barcode", bar).orderBy("row1",false));
+                        }
+
+                        if (Cools.isEmpty(locMast)) {
+                            return R.error("搴撳瓨娌℃湁绌烘澘");
+                        }
+                        String locNo = locMast.getLocNo();
+                        EmptyPlateOutParam emptyPlateOutParam = new EmptyPlateOutParam();
+                        emptyPlateOutParam.setOutSite(303);
+                        emptyPlateOutParam.setLocNos(new ArrayList<String>() {{
+                            add(locNo);
+                        }});
+                        String agvSta = "";
+                        if (locMast.getLocType3() == 2) {
+                            agvSta = "Z-LZP26";
+                        }else if(locType ==2){
+
+                        } else {
+                            agvSta = orderPakout.getCstmrName();//agv鐩爣绔欑偣浣嶇疆
+                        }
+                        WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam, ioPri, agvSta);
+                        ioPri--;
+
+                    }
+                } else if (i == 4) {
+                    LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", taskDto.getLocNo()));
+                    Integer locType = Integer.valueOf(locMast1.getLocType2());
+                    //閰嶇洏 鍑哄簱鍗曞嚭搴撳尯鍩熸椂Q-L4鏃�,鍑哄ぇ鎵樼洏绌烘澘
+                    if(orderPakout.getCstmrName().equals("Q-L4")){
+                        locType = 2;
+                    }
+
+                    String bar = "";
+                    if (!Cools.isEmpty(orderPakout.getShipCode()) && orderPakout.getShipCode().equals("A01")) {
+                        bar = "A01";
+                    }
+                    LocMast locMast = null;
+                    if (Cools.isEmpty(bar)) {
+                        locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+                                .eq("loc_sts", "D").eq("loc_type2", locType).orderBy("row1",false));
+                    } else {
+                        locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+                                .eq("loc_sts", "D").eq("loc_type2", locType).like("barcode", bar).orderBy("row1",false));
+                    }
+
+                    if (Cools.isEmpty(locMast)) {
+                        return R.error("搴撳瓨娌℃湁绌烘澘");
+                    }
+                    String locNo = locMast.getLocNo();
+                    EmptyPlateOutParam emptyPlateOutParam = new EmptyPlateOutParam();
+                    emptyPlateOutParam.setOutSite(303);
+                    emptyPlateOutParam.setLocNos(new ArrayList<String>() {{
+                        add(locNo);
+                    }});
+                    String agvSta = "";
+                    if (locMast.getLocType3() == 2) {
+                        agvSta = "Z-LZP26";
+                    }else if(locType ==2){
+
+                    } else {
+                        agvSta = orderPakout.getCstmrName();//agv鐩爣绔欑偣浣嶇疆
+                    }
+                    WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam, ioPri, agvSta);
+                    ioPri--;
+                    j++;
+                }
+            }
+        }
+        return R.ok();
+    }
+
 }

--
Gitblit v1.9.1