From 3443d00c1c23f84d8559e802a27eb9ba7ff0858a Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期二, 10 六月 2025 16:32:34 +0800
Subject: [PATCH] 1

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs |   92 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 91 insertions(+), 1 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
index 8a041a3..ac7efdb 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
@@ -1,4 +1,5 @@
-锘縰sing OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup;
+锘縰sing Newtonsoft.Json;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup;
 using System;
 using System.Collections;
 using System.Collections.Generic;
@@ -9,12 +10,14 @@
 using WIDESEA_Common.CommonEnum;
 using WIDESEA_Common.LocationEnum;
 using WIDESEA_Common.OrderEnum;
+using WIDESEA_Common.OtherEnum;
 using WIDESEA_Common.StockEnum;
 using WIDESEA_Common.TaskEnum;
 using WIDESEA_Common.WareHouseEnum;
 using WIDESEA_Core;
 using WIDESEA_Core.Helper;
 using WIDESEA_DTO;
+using WIDESEA_DTO.MES;
 using WIDESEA_DTO.Task;
 using WIDESEA_Model.Models;
 
@@ -736,6 +739,93 @@
                 return WebResponseContent.Instance.Error(ex.Message);
             }
         }
+
+        public WebResponseContent RequestZHInboundTask(string agvTaskCode, string palletCode, string palletType, string materialLot)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                //鑾峰彇娴嬭瘯鏋跺師搴撳瓨淇℃伅
+                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA154.ToString());
+                //鑾峰彇搴撳瓨璁板綍
+                List<Dt_StockInfo> stockInfos = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x =>
+                  x.WarehouseId == warehouse.WarehouseId).Includes(x => x.Details).ToList();
+                Dt_StockInfo? stockInfoOld = stockInfos.FirstOrDefault(x => x.Details.Any(x => x.BatchNo == materialLot));
+                if (stockInfoOld != null)
+                {
+                    return content.Error($"搴撳瓨淇℃伅宸插瓨鍦�");
+                }
+                Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x=>x.CodeStartStr== palletType);
+                if (palletTypeInfo != null)
+                {
+                    return content.Error($"鎵樼洏绫诲瀷淇℃伅涓嶅瓨鍦�");
+                }
+                //鑾峰彇闃荤剨鎵规
+                WebResponseContent requestLotInfo = GetZHMesMaterialLot(materialLot);
+                if (!requestLotInfo.Status)
+                {
+                    return content.Error($"{requestLotInfo.Message}");
+                }
+                MesLotInfoModel mesLotInfo = JsonConvert.DeserializeObject<MesLotInfoModel>(requestLotInfo.Data.ToString());
+                Dt_StockInfoDetail stockInfoDetail = new Dt_StockInfoDetail()
+                {
+                    MaterielSpec = mesLotInfo.ProductVersion,
+                    BatchNo = materialLot,
+                    EffectiveDate = mesLotInfo.DateCode,
+                    MaterielCode = mesLotInfo.Product,
+                    InboundOrderRowNo =  0,
+                    MaterielName = mesLotInfo.Product,
+                    ProductionDate = mesLotInfo.DateCode,
+                    OrderNo = "",
+                    OutboundQuantity = 0,
+                    SerialNumber = materialLot,
+                    StockQuantity = (float)mesLotInfo.Qty,
+                    Status = StockStatusEmun.鍏ュ簱纭.ObjToInt(),
+                    Unit = "Lot",
+                    Remark= mesLotInfo.IsFullNumber?"婊ot":"涓嶆弧Lot"
+                };
+                Dt_StockInfo stockInfo = new Dt_StockInfo()
+                {
+                    PalletCode = palletCode,
+                    PalletType = palletTypeInfo.PalletType,
+                    WarehouseId = warehouse.WarehouseId,
+                    StockStatus = StockStatusEmun.鍏ュ簱纭.ObjToInt(),
+                    Details = new List<Dt_StockInfoDetail> { stockInfoDetail }
+                };
+                
+                //鐢熸垚閫�搴撲换鍔�
+                Dt_Task taskIn = new()
+                {
+                    CurrentAddress = "AGV_ZH",
+                    Grade = 0,
+                    PalletCode = palletCode,
+                    NextAddress = "",
+                    Roadway = "",
+                    SourceAddress = "AGV_ZH",
+                    TargetAddress = "",
+                    TaskStatus = (int)TaskStatusEnum.New,
+                    TaskType = (int)TaskTypeEnum.InZHProduct,
+                    TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
+                    PalletType = palletTypeInfo.PalletType,
+                    WarehouseId = warehouse.WarehouseId,
+                };
+                _unitOfWorkManage.BeginTran();
+                Db.InsertNav(stockInfo).Include(x => x.Details).ExecuteCommand();
+                BaseDal.AddData(taskIn);
+                //BaseDal.AddData(task);
+                _unitOfWorkManage.CommitTran();
+                //灏嗕换鍔℃帹閫佸埌WCS
+                PushTasksToWCS(new List<Dt_Task>() { taskIn }, "AGV_ZH"); ;
+                content.OK();
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+
         public readonly string[] OutStartPonits = { "5230", "5237", "5244" };
         /// <summary>
         /// 鎴愬搧浣欐枡閫�搴撳叆浠�

--
Gitblit v1.9.3