From 4e81beaf39a525c1ecb86d50dd05438959af6e12 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期五, 17 十月 2025 23:16:03 +0800
Subject: [PATCH] 优化PDA出库流程、盘点流程

---
 新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs |   58 +++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 45 insertions(+), 13 deletions(-)

diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs"
index 4a56fe5..0c7ff24 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs"
@@ -176,11 +176,13 @@
                 Dt_SupplyTask supplyTask = new Dt_SupplyTask()
                 {
                     WarehouseCode = cabinOrderDetail.Reservoirarea,
-                    BatchNo=inventoryInfo.BatchNo,
-                    MaterielName= inventoryInfo.MaterielName,
-                    MaterielCode= inventoryInfo.MaterielCode,
-                    MaterielSpec= inventoryInfo.MaterielSpec,
-                    TaskType=TaskTypeEnum.InPick.ObjToInt(),
+                    TaskNum = cabinOrderDetail.Id,
+                    TaskStatus = SupplyStatusEnum.InFinish.ObjToInt(),
+                    BatchNo = inventoryInfo.BatchNo,
+                    MaterielName = inventoryInfo.MaterielName,
+                    MaterielCode = inventoryInfo.MaterielCode,
+                    MaterielSpec = inventoryInfo.MaterielSpec,
+                    TaskType = TaskTypeEnum.InPick.ObjToInt(),
                     CreateDate = DateTime.Now,
                     Creater = App.User.UserName,
                     LocationCode = location.LocationCode,
@@ -296,6 +298,7 @@
 
                     foreach (var order in newOrders)
                     {
+                        bool skipOrder = false;//鏍囪鏄惁璺宠繃璇ュ叆搴撳崟
                         var entityOrder = new Dt_CabinOrder
                         {
                             Order_no = order.order_no,
@@ -324,8 +327,22 @@
                             // 灏嗕笂娓稿叆搴撴暟閲忚浆涓烘鏁�
                             item.order_qty = Math.Abs(item.order_qty);
                             #region 鏍规嵁鐗╂枡缂栫爜鏌ヨ鐗╂枡淇℃伅
-                            //Dt_MaterielInfo materielInfo = _basicService.MaterielInfoService.Repository.QueryFirst(x => x.MaterielCode == item.goods_no);
-                            Dt_MedicineGoods materielInfo = BaseDal.Db.Queryable<Dt_MedicineGoods>().Where(x => x.Goods_no == item.goods_no).First();
+                            Dt_MaterielInfo materielInfo = _basicService.MaterielInfoService.Repository.QueryFirst(x => x.MaterielCode == item.goods_no);
+                            //濡傛灉鐗╂枡淇℃伅涓嶅瓨鍦紝璺宠繃鏁翠釜鍏ュ簱鍗�
+                            if (materielInfo == null)
+                            {
+                                skipOrder = true;
+                                Console.WriteLine($"璺宠繃鍏ュ簱鍗� {order.order_no}锛屽師鍥狅細鏈壘鍒板晢鍝� [{item.goods_no}] 鐨勭墿鏂欎俊鎭��");
+                                break;
+                            }
+
+                            //  鑻ョ墿鏂欎笉瀛樺湪鎴� MaterielSourceType 涓虹┖锛屽垯璺宠繃鏁翠釜鍏ュ簱鍗�
+                            if (materielInfo == null || !Enum.IsDefined(typeof(MaterielSourceTypeEnum), materielInfo.MaterielSourceType))
+                            {
+                                skipOrder = true;
+                                break;
+                            }
+                            //Dt_MedicineGoods materielInfo = BaseDal.Db.Queryable<Dt_MedicineGoods>().Where(x => x.Goods_no == item.goods_no).First();
                             ///鏍规嵁鐗╂枡淇℃伅澶у皬浠跺睘鎬у尯鍒嗘槸鍚﹀叆绔嬪簱 //澶т欢鍏ュ钩搴�
                             if (materielInfo.MaterielSourceType == MaterielSourceTypeEnum.PurchasePart)
                             {
@@ -411,9 +428,15 @@
                                 }
                                 #endregion
                             }
-                            //_basicService.MaterielInfoService.Repository.UpdateData(materielInfo);
-                            _medicineGoodsServices.Db.Updateable(materielInfo).ExecuteCommand();
+                            _basicService.MaterielInfoService.Repository.UpdateData(materielInfo);
+                            //_medicineGoodsServices.Db.Updateable(materielInfo).ExecuteCommand();
                             #endregion
+                        }
+                        // 鉂楀鏋滆烦杩囪鍗曪紝鍒欑洿鎺ontinue锛屼笉淇濆瓨
+                        if (skipOrder)
+                        {
+                            Console.WriteLine($"璺宠繃鍏ュ簱鍗� {order.order_no}锛屽洜涓哄瓨鍦ㄦ湭瀹氫箟鐗╂枡灞炴�х殑鍟嗗搧銆�");
+                            continue;
                         }
                         _CabinOrders.Add(entityOrder);
                         orderNos.Add(order.order_no);
@@ -513,6 +536,15 @@
                             var materielInfo = BaseDal.Db.Queryable<Dt_MedicineGoods>()
                                 .Where(x => x.Goods_no == item.goods_no)
                                 .First();
+
+
+                            //濡傛灉鐗╂枡淇℃伅涓嶅瓨鍦紝璺宠繃鏁翠釜鍏ュ簱鍗�
+                            if (materielInfo == null)
+                            {
+                                skipOrder = true;
+                                Console.WriteLine($"璺宠繃鍏ュ簱鍗� {order.order_no}锛屽師鍥狅細鏈壘鍒板晢鍝� [{item.goods_no}] 鐨勭墿鏂欎俊鎭��");
+                                break;
+                            }
 
                             //  鑻ョ墿鏂欎笉瀛樺湪鎴� MaterielSourceType 涓虹┖锛屽垯璺宠繃鏁翠釜鍏ュ簱鍗�
                             if (materielInfo == null || !Enum.IsDefined(typeof(MaterielSourceTypeEnum), materielInfo.MaterielSourceType))
@@ -677,10 +709,10 @@
                     string materialCode = "YY";//榛樿鍊�
                     //鑾峰彇褰撳墠璁㈠崟鐨勭涓�涓槑缁嗛」
                     var firstDetail = order.Details.FirstOrDefault();
-                    if (firstDetail?.MedicineGoods != null && !string.IsNullOrEmpty(firstDetail.MedicineGoods.MaterialCode))
+                    if (firstDetail?.MedicineGoods != null && !string.IsNullOrEmpty(firstDetail.MedicineGoods.MaterielErpType))
                     {
                         //濡傛灉鏉′欢婊¤冻锛屽皢鐗╂枡浠g爜璁剧疆涓虹涓�涓槑缁嗛」瀵瑰簲鐨勮嵂鍝佺墿鏂欎唬鐮�
-                        materialCode = firstDetail.MedicineGoods.MaterialCode;
+                        materialCode = firstDetail.MedicineGoods.MaterielErpType;
                     }
 
                     var ediDto = new ToediInInfo
@@ -705,9 +737,9 @@
                             //浜у搧
                             productCode = d.Goods_no,
                             //sku鍚嶇О
-                            productName = d.MedicineGoods?.Goods_spm,
+                            productName = d.MedicineGoods?.MaterielName,
                             //sku瑙勬牸
-                            productSpecifications = d.MedicineGoods?.Model,
+                            productSpecifications = d.MedicineGoods?.MaterielSpec,
                             //鏁伴噺
                             quantity = (int)d.Order_qty,
                             //鏁堟湡

--
Gitblit v1.9.3