From 25cb7cd50d12f48e93d6cde47420ca3458e9c47a Mon Sep 17 00:00:00 2001
From: helongyang <647556386@qq.com>
Date: 星期四, 12 六月 2025 21:39:43 +0800
Subject: [PATCH] 1

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs |  105 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 104 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..fcb6a0e 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,6 @@
-锘縰sing OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup;
+锘縰sing Newtonsoft.Json;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup;
 using System;
 using System.Collections;
 using System.Collections.Generic;
@@ -9,12 +11,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 +740,105 @@
                 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 && x.PalletCode== palletCode).Includes(x => x.Details).ToList();
+                if (stockInfos.Count > 0)
+                {
+                    return content.Error($"杞藉叿鎵樼洏宸插瓨鍦�");
+                }
+                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());
+                MesLotInfoModel mesLotInfo = new MesLotInfoModel()
+                {
+                    Product="FH001",
+                    ProductVersion="A1",
+                    Qty=20,
+                    LotNo= materialLot,
+                    IsFullNumber=true
+                };
+                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 = "SC01_ZH",
+                    SourceAddress = "AGV_ZH",
+                    TargetAddress = "",
+                    TaskStatus = (int)TaskStatusEnum.New,
+                    TaskType = palletTypeInfo.LocaitonCount==2? (int)TaskTypeEnum.InZHProductLarge : (int)TaskTypeEnum.InZHProductSmall,
+                    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", agvTaskCode);
+                content.OK(data: taskIn);
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+
         public readonly string[] OutStartPonits = { "5230", "5237", "5244" };
         /// <summary>
         /// 鎴愬搧浣欐枡閫�搴撳叆浠�

--
Gitblit v1.9.3