From d0226747665355acecd5b4f2b5c0beb020586729 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期五, 17 一月 2025 15:37:32 +0800
Subject: [PATCH] # 23. PDA拣货单据,勾选或点击确认按钮后,完成当前单据 (已完成) 24. PDA出库成功后,界面数据重置,避免重复操作  (已修复) 25. PDA接口请求,添加一个Loading遮档  (已修复) 27. 非平库单据,在平库可做入库操作  (已修复) 28. 平库已组拖数据,组拖完成后依然可组拖  (已修复) 29. 平库入库后,订单明细没有添加(已修复) 30. 平库入库后,单据类型没有修改(已修复) 31. 没有绑定播种位,不能进行播种,前后端都需加判定(已修复) 33. 平库入库未修改入库已完成数量(已修复) 34. cacheSite缓存站点逻辑需重新梳理,入库生成波次时(已完成) 35. PDA添加发货确认,默认全选 (已修复) 36. 大屏获取任务时,是由容器到达的拖盘码确认通知 (已修复) 37. 拣货单序号不显示 问题修复 (已修复) 42. pda发货确认,添加不同颜色区分是否全部完成拣货,绿色全部拣货完成,红色完成部分拣货(已修复) 43. CTU入库完成后,订单明细没有删除,执行中数量清空(已修复) 44. 平库入库完成后,历史档明细完成数量没有更新 (已修复) 45. PDA料号不显示  (已修复) 46. 发货完成后,波次管理数据未加入历史档 (已修复)

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java |  106 +++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 79 insertions(+), 27 deletions(-)

diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java
index b3f6d2a..9d767e8 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java
@@ -10,9 +10,9 @@
 import com.zy.asrs.wms.apis.wcs.entity.request.*;
 import com.zy.asrs.wms.apis.wcs.entity.response.CommonReponse;
 import com.zy.asrs.wms.apis.wcs.services.WcsApiService;
-import com.zy.asrs.wms.asrs.entity.Task;
-import com.zy.asrs.wms.asrs.entity.TaskDetl;
-import com.zy.asrs.wms.asrs.entity.WaveSeed;
+import com.zy.asrs.wms.asrs.entity.*;
+import com.zy.asrs.wms.asrs.entity.enums.CacheSiteStatusType;
+import com.zy.asrs.wms.asrs.entity.enums.OrderPickStatus;
 import com.zy.asrs.wms.asrs.entity.enums.TaskStsType;
 import com.zy.asrs.wms.asrs.service.*;
 import io.jsonwebtoken.lang.Collections;
@@ -28,6 +28,8 @@
 import org.springframework.util.MultiValueMap;
 import org.springframework.web.client.RestTemplate;
 
+import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -45,12 +47,20 @@
     private TaskService taskService;
     @Autowired
     private TaskDetlService taskDetlService;
-
+    @Autowired
+    private CacheSiteService cacheSiteService;
+    @Autowired
+    private OrderService orderService;
+    @Autowired
+    private OrderDetlService orderDetlService;
     @Autowired
     private WaveSeedService waveSeedService;
 
     @Autowired
     private RestTemplate restTemplate;
+
+    @Autowired
+    private PlatformService platformService;
 
 
     /**
@@ -77,7 +87,8 @@
             //DONE 鏍规嵁ESS杩斿洖鐨勫鍣ㄧ紪鐮佷慨鏀逛换鍔℃。涓殑杈撻�佺嚎璧峰浣嶇疆鑺傜偣锛屽強浠诲姟妗e鍣ㄥ埌杈剧姸鎬�
             taskService.update(new LambdaUpdateWrapper<Task>()
                     .set(Task::getTaskSts, TaskStsType.WCS_CONTAINER_RECEIVE.id)
-                    .set(Task::getOriginLoc, arrivedParam.getSlotCode())
+                    //杈撻�佺嚎鑺傜偣缂栫爜锛屼笉鏄簮搴撲綅
+//                    .set(Task::getOriginLoc, arrivedParam.getSlotCode())
                     .eq(Task::getBarcode, arrivedParam.getContainerCode()));
         } else {
             //瀹瑰櫒鍒拌揪鏃舵洿鏂颁换鍔$姸鎬佷负锛氬叆搴撳畬鎴愶紝瀹氭椂浠诲姟鏍规嵁鐘舵�佺爜鏇存柊搴撳瓨
@@ -91,6 +102,9 @@
                     .set(Task::getTaskSts, TaskStsType.WAVE_SEED.id)
                     .set(Task::getOriginLoc, arrivedParam.getSlotCode())
                     .eq(Task::getBarcode, arrivedParam.getContainerCode()));
+            if (!update) {
+                throw new CoolException("瀹瑰櫒鍒拌揪浠诲姟鏇存柊澶辫触锛侊紒");
+            }
 
         }
 
@@ -272,9 +286,12 @@
 
     @Override
     public R rfidCallback(RfidSingalRequest request) {
-
-
         return null;
+    }
+
+    @Override
+    public R getPlatforms() {
+        return R.ok(platformService.list(new LambdaQueryWrapper<>()));
     }
 
     /**
@@ -292,39 +309,74 @@
         MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
         //榛樿娴佸姩
         boolean converyor = false;
-        //鍒ゆ柇鏄惁杩樻湁鐗╂枡鏈嫞
-
+        //鍒ゆ柇褰撳墠浠诲姟鏄惁杩樻湁鐗╂枡鏈嫞
         if (!checked(orderNo, taskNo)) {
             //璋冪敤涓夋柟鎺ュ彛,闂伅涓嶅仛鎿嶄綔
-
             // 璁剧疆璇锋眰鍙傛暟
             params.add("params", JSONObject.toJSONString(slapParam));
             log.info("璇锋眰鍦板潃锛歿}锛岃姹傚弬鏁帮細{}", SystemProperties.SLAP_LIGHT, JSONObject.toJSONString(slapParam));
-
         } else {
-            //璋冪敤涓夋柟鎺ュ彛,鏉ョ伅閫氱煡瀹瑰櫒娴佸姩锛� 浼犵伃鐏弬鏁�
+            //璋冪敤涓夋柟鎺ュ彛,鐏伅閫氱煡瀹瑰櫒娴佸姩锛� 浼犵伃鐏弬鏁�
+            //todo 鍒ゆ柇褰撳墠璁㈠崟鏄惁瀹屾垚锛屽畬鎴愮伃鐏紝鏈畬鎴愪繚鎸佹嫞璐х姸鎬佷寒鐏�
+            Order one = orderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, orderNo));
 
+            if (Objects.isNull(one)) {
+                throw new CoolException("褰撳墠璁㈠崟鏄庣粏涓嶅瓨鍦紒锛�");
+            }
+//            //鑾峰彇鎾宸插畬鎴愮殑璁㈠崟鏄庣粏
+//            List<OrderDetl> detlList = orderDetls.stream().filter(detl -> {
+//                return detl.getPickStatus() == OrderPickStatus.ORDER_PICK_STATUS_DONE.val;
+//            }).collect(Collectors.toList());
+
+            //鍒ゆ柇鏁伴噺鏄惁涓庤鍗曟槑缁嗙殑闇�姹傞噺鐩稿悓锛岀浉鍚屽垯璁㈠崟瀹屾垚
+            if (one.getPickStatus() == OrderPickStatus.ORDER_PICK_STATUS_DONE.val) {
+                //鎾瀹屾垚锛岄噴鏀剧粦瀹氱珯鐐�
+                List<CacheSite> cacheSites = cacheSiteService.list(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getOrderNo, orderNo));
+                for (CacheSite cacheSite : cacheSites) {
+                    if (!cacheSite.getSiteStatus().equals(CacheSiteStatusType.O.id)) {
+                        cacheSite.setSiteStatus(CacheSiteStatusType.O.id);
+                        cacheSite.setOrderId(null);
+                        cacheSite.setBarcode(null);
+                        cacheSite.setOrderNo(null);
+                        cacheSite.setPlatformId(null);
+                        cacheSite.setPlatformNo(null);
+                        cacheSite.setUpdateTime(new Date());
+                        if (!cacheSiteService.updateById(cacheSite)) {
+                            throw new CoolException("鎾绔欑偣鏇存柊澶辫触");
+                        }
+                    }
+                }
+            }
+            converyor = true;
             params.add("params", JSONObject.toJSONString(slapParam));
             log.info("璇锋眰鍦板潃锛歿}锛岃姹傚弬鏁帮細{}", SystemProperties.SLAP_LIGHT, JSONObject.toJSONString(slapParam));
         }
 
-        HttpHeaders headers = new HttpHeaders();
-        headers.add("Content-Type", "application/json");
-        HttpEntity httpEntity = new HttpEntity<>(params, headers);
-        // 璇锋眰
-        ResponseEntity<CommonReponse> exchange = restTemplate.exchange(SystemProperties.CONVEYOR_START, HttpMethod.POST, httpEntity, CommonReponse.class);
-        log.info("涓嬪彂娴佸姩閫氱煡 杩斿洖缁撴灉锛歿}", exchange);
-        if (exchange.getBody() == null) {
-            throw new CoolException("涓嬪彂娴佸姩閫氱煡澶辫触锛侊紒");
-        } else {
-            CommonReponse response = exchange.getBody();
-            if (response.getCode() == 0) {
-                if (!converyor) {
-                    //* 2. 瀹瑰櫒娴佸姩鍒ゆ柇锛屽鏋滄枡绠辨病鏈夌墿鏂� code浼�200锛� 鏈夌墿鏂欎紶100 鎵ц鍥炲簱浠诲姟,淇敼浠诲姟鐘舵�佷负  璋冪敤containerConveryor锛坱askNo锛夋柟娉�
-                    containerConveryor(request.get("taskNo").toString());
-                }
+        if (converyor) {
+            Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskNo, request.get("taskNo")));
+            if (Objects.isNull(task)) {
+                throw new CoolException("浠诲姟涓嶅瓨鍦紒锛�");
             }
+            containerConveryor(task.getBarcode());
         }
+
+//        HttpHeaders headers = new HttpHeaders();
+//        headers.add("Content-Type", "application/json");
+//        HttpEntity httpEntity = new HttpEntity<>(params, headers);
+//        // 璇锋眰
+//        ResponseEntity<CommonReponse> exchange = restTemplate.exchange(SystemProperties.CONVEYOR_START, HttpMethod.POST, httpEntity, CommonReponse.class);
+//        log.info("涓嬪彂娴佸姩閫氱煡 杩斿洖缁撴灉锛歿}", exchange);
+//        if (exchange.getBody() == null) {
+//            throw new CoolException("涓嬪彂娴佸姩閫氱煡澶辫触锛侊紒");
+//        } else {
+//            CommonReponse response = exchange.getBody();
+//            if (response.getCode() == 0) {
+//                if (!converyor) {
+//                    //* 2. 瀹瑰櫒娴佸姩鍒ゆ柇锛屽鏋滄枡绠辨病鏈夌墿鏂� code浼�200锛� 鏈夌墿鏂欎紶100 鎵ц鍥炲簱浠诲姟,淇敼浠诲姟鐘舵�佷负  璋冪敤containerConveryor锛坱askNo锛夋柟娉�
+//                    containerConveryor(request.get("taskNo").toString());
+//                }
+//            }
+//        }
     }
 
     /**

--
Gitblit v1.9.1