From 559b2321be06967f32eb40ba434790b735d7fa33 Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期二, 07 十一月 2023 16:53:55 +0800
Subject: [PATCH] 出库时,检测到选择的站点没有空的暂存位,则等成等待任务,等待任务的出库站点暂时不分配。 新增定时处理等待任务

---
 src/main/java/com/zy/asrs/controller/OutController.java |  139 +++-------------------------------------------
 1 files changed, 9 insertions(+), 130 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 3c368d0..67c8fe2 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -71,38 +71,6 @@
     @ManagerAuth
     public R pakoutPreview(@RequestBody List<Long> ids) {
 
-//        Order order = orderService.selectById(ids.get(0));
-//
-//        DocType docType = docTypeService.selectById(order.getDocType());
-//
-//        if("浜哄伐琛ヨ揣鍗�".equals(docType.getDocName())){
-//            List<OrderDetl> orderDetlList = orderDetlService.selectBatchIds(ids);
-//            //杩斿洖缁欏墠绔殑搴撲綅浠ュ強绔欑偣淇℃伅
-//            List<LocDto> locDtoList = new ArrayList<>();
-//
-//            for (OrderDetl orderDetl : orderDetlList) {
-//
-//                double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty()).orElse(0.0D);
-//                if (issued <= 0.0D) { continue; }
-//
-//                //浠庡钩搴撳鎵�
-//                //issued = manLocDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime());
-//
-//                //鍏堟壘AGV鐨勫簱瀛橈紝濡傛灉杩斿洖鐨刬ssued澶т簬0锛屽垯鍘诲洓椤瑰簱鎵�
-//                //issued = agvLocDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime());
-//
-//                //浠庡洓椤瑰簱鐨勫簱瀛橀噷闈㈡壘锛�
-//                issued = locDetlService.queryStockAndSetLocDto1(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime());
-//
-//                if (issued > 0) {
-//                    LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
-//                    locDto.setLack(Boolean.TRUE);
-//                    locDtoList.add(locDto);
-//                }
-//            }
-//            return R.ok().add(locDtoList);
-//        }
-
         List<OrderDetl> orderDetlList = orderDetlService.selectBatchIds(ids);
         //杩斿洖缁欏墠绔殑搴撲綅浠ュ強绔欑偣淇℃伅
         List<LocDto> locDtoList = new ArrayList<>();
@@ -120,7 +88,6 @@
                     locDtoList.add(locDto);
                 }
             }else {
-                //double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty()).orElse(0.0D);
                 if (issued <= 0.0D) { continue; }
 
                 //浠庡钩搴撳鎵�
@@ -187,96 +154,6 @@
             workService.stockOut(staNo, taskDto, getUserId());
         }
         return R.ok();
-
-        /*
-        if (Cools.isEmpty(locDtos)) {
-            return R.parse(BaseRes.PARAM);
-        }
-        boolean lack = true;
-        for (LocDto locDto : locDtos) {
-            if (Cools.isEmpty(locDto.getStaNo()) && !locDto.isLack()) {
-                return R.error(locDto.getLocNo()+"搴撲綅璇烽�夋嫨鍑哄簱绔�");
-            }
-        }
-        for (LocDto locDto : locDtos) {
-            if (!locDto.isLack()) {
-                lack = false;
-                break;
-            }
-        }
-        if (lack) {
-            return R.error("搴撳瓨涓嶈冻");
-        }
-
-        Thread.sleep(500L);
-
-        // 璁㈠崟棰勬牎楠�  ===>> 1.璁㈠崟鐘舵�侊紱 2.璁㈠崟甯﹀嚭鏁伴噺
-        List<OrderDto> orderDtos = new ArrayList<>();
-        for (LocDto locDto : locDtos) {
-            if (!isJSON(locDto.getOrderNo())) {
-                if (Cools.isEmpty(locDto.getOrderNo())) { continue; }
-                OrderDto orderDto = new OrderDto(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getAnfme());
-                if (OrderDto.has(orderDtos, orderDto)) {
-                    OrderDto dto = OrderDto.find(orderDtos, orderDto);
-                    assert dto != null;
-                    dto.setAnfme(dto.getAnfme() + orderDto.getAnfme());
-                } else {
-                    orderDtos.add(orderDto);
-                }
-            } else {
-                // 璁㈠崟鍚堝苟鍑哄簱
-                List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class);
-                for (OrderDto one : orderDtoList) {
-                    OrderDto orderDto = new OrderDto(one.getOrderNo(), locDto.getMatnr(), locDto.getBatch(), one.getAnfme());
-                    if (OrderDto.has(orderDtos, orderDto)) {
-                        OrderDto dto = OrderDto.find(orderDtos, orderDto);
-                        assert dto != null;
-                        dto.setAnfme(dto.getAnfme() + orderDto.getAnfme());
-                    } else {
-                        orderDtos.add(orderDto);
-                    }
-                }
-            }
-        }
-        for (OrderDto orderDto : orderDtos) {
-            Order order = orderService.selectByNo(orderDto.getOrderNo());
-            if (order.getSettle() > 2) {
-                return R.error(orderDto.getOrderNo() + "璁㈠崟宸插け鏁堬紝璇峰強鏃跺埛鏂伴〉闈�");
-            }
-//            OrderDetl orderDetl = orderDetlService.selectItemNoneOfBatch(orderDto.getOrderNo(), orderDto.getMatnr());
-//            if (orderDetl.getAnfme() - orderDetl.getQty() < orderDto.getAnfme()) {
-//                return R.ok(orderDto.getOrderNo() + "璁㈠崟宸蹭綔涓氾紝璇峰強鏃跺埛鏂伴〉闈�");
-//            }
-        }
-
-        List<TaskDto> taskDtos = new ArrayList<>();
-        // 鏍规嵁 锛堝簱浣� & 鍑哄簱绔欙級 鍒嗙粍锛� 鐞嗘兂鐘舵�侊細涓�缁勪负涓�娆″嚭搴撲换鍔�
-        for (LocDto locDto : locDtos) {
-            if (locDto.isLack()) { continue; }
-            // 闃叉鍓嶇椤甸潰鎻愬彇搴撲綅淇℃伅鍚庯紝鍦ㄥ叾浠栧湴鏂瑰璇ュ簱浣嶇敓鎴愪簡鍑哄簱浠诲姟(搴撲綅鐘舵�侀潪F鐘舵��)
-            LocMast locMast = locMastService.selectById(locDto.getLocNo());
-            if(!Cools.isEmpty(locMast) && !locMast.getLocSts().equals("F")){
-                return R.error("搴撲綅鍙烽潪鍦ㄥ簱鐘舵�侊紝璇烽噸鏂伴�夋嫨鍑哄簱搴撲綅===>>" + locDto.getLocNo());
-            }
-
-            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);
-            }
-        }
-
-        // -----------------------------------------------------------------------------------------------
-        List<String> excludeLocNos = taskDtos.stream().map(TaskDto::getLocNo).distinct().collect(Collectors.toList());
-        for (TaskDto taskDto : taskDtos) {
-            BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo());
-            workService.stockOut(staNo, taskDto, getUserId());
-            locMastService.breakUp(taskDto.getLocNo(), excludeLocNos);
-        }
-        return R.ok();*/
     }
 
 
@@ -389,17 +266,18 @@
         if(!Cools.isEmpty(agvLocMast) && !agvLocMast.getLocSts().equals("F")){
             throw new CoolException("搴撲綅鍙烽潪鍦ㄥ簱鐘舵�侊紝璇烽噸鏂伴�夋嫨鍑哄簱搴撲綅===>>" + locDto.getLocNo());
         }
-        AgvBasDevp agvBasDevp = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>()
-                .eq("station_code", locDto.getAgvStaNo())
-                .eq("loc_sts", "O"));
+        //瀵绘壘绌虹珯鐐逛綅缃�
+        AgvBasDevp agvBasDevp = agvBasDevpService.selectEmptyDevpByStation(locDto.getAgvStaNo());
         if(Cools.isEmpty(agvBasDevp)){
-            //TODO 鍋囧鍑哄簱绔欑偣涓嶈冻锛岃褰曟湭鍑哄簱鐨勫簱浣嶏紱
+            //濡傛灉娌℃湁鎵惧埌绌虹珯鐐癸紝鍒欑敓鎴愬噯澶囦换鍔�
+            TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getAgvStaNo(), locDto);
+            agvTaskDtos.add(taskDto);
             return;
         }
-        agvBasDevp.setLocSts("S");
-        agvBasDevpService.updateById(agvBasDevp);
+//        agvBasDevp.setLocSts("S");
+//        agvBasDevpService.updateById(agvBasDevp);
+        agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvBasDevp.getDevNo(),"S",null);
         TaskDto taskDto = new TaskDto(locDto.getLocNo(), agvBasDevp.getDevNo(), locDto);
-        //TODO 鏆備笉鑰冭檻搴撲綅娣疯浇鐘舵�侊紙鍚庣画鐪嬫儏鍐垫槸鍚﹂渶瑕佸垽鏂級
         agvTaskDtos.add(taskDto);
 
     }
@@ -433,6 +311,7 @@
         if (!Cools.isEmpty(manLocDetl) && !(locDto.getAnfme()>manLocDetl.getAnfme())) {
             manLocDetl.setStatus(0);
             manLocDetlService.update(manLocDetl, new EntityWrapper<ManLocDetl>().eq("loc_no", manLocDetl.getLocNo()).eq("matnr",manLocDetl.getMatnr()));
+            //addPakOUT 鐢熸垚鎷h揣鍗曟垚鍔�
             if (addPakOUT(locDto).equals(R.ok())) {
                 Order order = orderService.selectByNo(locDto.getOrderNo());
                 if (Cools.isEmpty(order)){

--
Gitblit v1.9.1