From 3ecd03b3a0a30a57153468beaed3199bfe906772 Mon Sep 17 00:00:00 2001
From: huanghongfeng <huanghongfeng@hnkhzn.com>
Date: 星期一, 11 十一月 2024 16:58:37 +0800
Subject: [PATCH] 1

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs |   94 ++++++++++++++++++++++++++++++-----------------
 1 files changed, 60 insertions(+), 34 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs"
index cb7a77a..3c8135a 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs"
@@ -11,6 +11,7 @@
 using Microsoft.Extensions.Logging;
 using MailKit.Search;
 using System.Reflection.Metadata;
+using static WIDESEA_ITaskInfoService.ITaskService;
 
 namespace WIDESEA_TaskInfoService
 {
@@ -212,26 +213,27 @@
         /// </summary>
         /// <param name="PalletCode"></param>
         /// <returns></returns>
-        public WebResponseContent GenerateInventoryInformation(string SourceAddress, string PalletCode)
+        public WebResponseContent GenerateInventoryInformation(GenerateInv generate)
         {
+           
             WebResponseContent content = new WebResponseContent();
             try
             {
-                Dt_Task task = BaseDal.QueryFirst(x => x.PalletCode == PalletCode);
+                Dt_Task task = BaseDal.QueryFirst(x => x.PalletCode == generate.PalletCode);
                 if (task != null)
                 {
                     return content = WebResponseContent.Instance.Error($"宸叉湁璇ユ墭鐩樼殑鍏ュ簱浠诲姟锛屾墭鐩樺彿锛歿task.PalletCode}");
                 }
                 else
                 {
-                    Dt_StockInfo dt_StockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == PalletCode);
-                    if (dt_StockInfo == null)
+                    Dt_StockInfo dt_StockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == generate.PalletCode);
+                    if (dt_StockInfo != null)
                     {
                         Dt_LocationInfo newLocation;
                         Dt_LocationInfo newSourceAddress;
-                        newSourceAddress = _basicService.LocationInfoService.GetLocationplatform(SourceAddress);
+                        newSourceAddress = _basicService.LocationInfoService.GetLocationplatform(generate.SourceAddress);
                         newLocation = _basicService.LocationInfoService.GetLocation(newSourceAddress.RoadwayNo);
-                        string[] Pallet = PalletCode.Split("-");
+                        //string[] Pallet = PalletCode.Split("-");
                         if (newLocation != null && newSourceAddress != null)
                         {
 
@@ -239,7 +241,7 @@
                             //鐢熸垚鍏ュ簱浠诲姟
                             Dt_Task dt_Task = new()
                             {
-                                PalletCode = PalletCode,
+                                PalletCode = generate.PalletCode,
                                 TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
                                 Roadway = newLocation.RoadwayNo,
                                 TaskType = newSourceAddress.LocationType == (int)LocationTypeEnum.EmptyOut ? TaskTypeEnum.PalletInbound.ObjToInt() : TaskTypeEnum.Inbound.ObjToInt(),
@@ -253,20 +255,6 @@
                                 Depth = newLocation.Depth,
                                 CreateDate = DateTime.Now,
                             };
-                            Dt_StockInfo dt_Stock = new()
-                            {
-                                PalletCode = PalletCode,
-                                LocationCode = newLocation.LocationCode,
-                                IsFull = true,
-                                StockStatus = (int)StockStatusEmun.缁勭洏鏆傚瓨,
-                                Creater = "WMS",
-                                CreateDate = DateTime.Now,
-                                MaterialType = newSourceAddress.LocationType == (int)LocationTypeEnum.EmptyIn ? (int)InventoryMaterialType.绌烘墭:
-                                (newSourceAddress.LocationType == (int)LocationTypeEnum.FinishedIn ? (int)InventoryMaterialType.鎴愬搧: (int)InventoryMaterialType.鍘熸潗鏂�),
-                                Materialweight = float.Parse(Pallet[3]),
-                            };
-                            
-
                             _unitOfWorkManage.BeginTran();
                             if (newLocation.LocationStatus == LocationStatusEnum.Free.ObjToInt())
                             {
@@ -274,7 +262,8 @@
                             }
                             BaseDal.AddData(dt_Task);
                             _basicService.LocationInfoService.UpdateData(newLocation);
-                            _stockService.StockInfoService.Repository.AddData(dt_Stock);
+                            
+                           
                            
                             _unitOfWorkManage.CommitTran();
 
@@ -282,13 +271,14 @@
                         }
                         else
                         {
-                            return content = WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑璧风偣:{SourceAddress},鎴栫粓鐐箋newSourceAddress.RoadwayNo}锛屼俊鎭�");
+                            return content = WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑璧风偣:{generate.SourceAddress},鎴栫粓鐐箋newSourceAddress.RoadwayNo}锛屼俊鎭�");
                         }
 
                     }
                     else
                     {
-                        return content = WebResponseContent.Instance.Error($"璇ユ墭鐩樺彿宸插叆搴擄紝璇锋牳瀵规墭鐩樺彿:{PalletCode}");
+                        Queryinventory(generate.PalletCode);
+                        return content = WebResponseContent.Instance.Error($"缁勭洏锛岃鏍稿鎵樼洏鍙�:{generate.PalletCode}");
                     }
                 }
 
@@ -306,26 +296,62 @@
         /// <returns></returns>
         public WebResponseContent Queryinventory(string palletCode)
         {
-            WebResponseContent content = new WebResponseContent();
-            string[] targetCodes = palletCode.Split("-");
-            if (targetCodes[2] == "2")
+
+            try
             {
-                List<Dt_LocationInfo> LocationInfo = _basicService.LocationInfoService.Repository.QueryData(x => x.RoadwayNo == "2" && x.LocationType == (int)LocationStatusEnum.Free).ToList();
-                if (LocationInfo.Count < 40)
+                WebResponseContent content = new WebResponseContent();
+                string result = palletCode.Substring(0, 2);
+                Dt_InboundOrder dt_Inbound = _inboundService.InbounOrderService.Repository.QueryFirst(x => x.UpperOrderNo == result);
+                if (dt_Inbound != null)
                 {
+                    Dt_StockInfo dt_Stock = new()
+                    {
+                        PalletCode = palletCode,
+                        IsFull = true,
+                        StockStatus = (int)StockStatusEmun.缁勭洏鏆傚瓨,
+                        Creater = "WMS",
+                        CreateDate = DateTime.Now,
+                        MaterialType = (int)InventoryMaterialType.鍘熸潗鏂�,
+                        Materialweight = 0,
+                    };
+
+
+                    _unitOfWorkManage.BeginTran();
+                    _stockService.StockInfoService.Repository.AddData(dt_Stock);
+                    if (dt_Stock.Id != null)
+                    {
+                        string part2 = palletCode.Substring(2, 8);
+
+                        string part3 = palletCode.Split('#')[1];
+                        Dt_StockInfoDetail dt_StockInfoDetail = new()
+                        {
+                            StockId = dt_Stock.Id,
+                            MaterielCode = result,    //鐗╂枡缂栧彿
+                            MaterielName = dt_Inbound.OrderNo,    //鏉愯川
+                            OrderNo = palletCode,        //鍗曟嵁锛堟墭鐩樻潯鐮侊級
+                            BatchNo = part2,         //鎵规鍙�
+                            SerialNumber = part3,    //搴忓垪鍙�
+                            StockQuantity = 1,    //搴忓垪鍙�
+                            OutboundQuantity = 1,    //搴忓垪鍙�
+                            Status = (int)StockStatusEmun.缁勭洏鏆傚瓨,
+                            Creater = "WMS",
+                            CreateDate = DateTime.Now,
+                        };
+                        _stockService.StockInfoDetailService.AddData(dt_StockInfoDetail);
+                    }
+                    _unitOfWorkManage.CommitTran();
                     return content = WebResponseContent.Instance.OK();
                 }
                 else
                 {
-                    return content = WebResponseContent.Instance.Error();
+                    return content = WebResponseContent.Instance.Error("鏈壘鍒拌绫诲瀷鐨勮В鏋�");
                 }
             }
-            else
+            catch (Exception ex)
             {
-                return content = WebResponseContent.Instance.OK();
+
+                throw;
             }
-            
-            
         }
     }
 }

--
Gitblit v1.9.3