From 4ac3f08f416685db0e218df55750d94556030330 Mon Sep 17 00:00:00 2001
From: HuBingJie <3146306518@qq.com>
Date: 星期四, 06 十一月 2025 20:25:17 +0800
Subject: [PATCH] 1

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs |  168 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 161 insertions(+), 7 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs"
index f44e941..fccbc82 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs"
@@ -18,6 +18,11 @@
 using WIDESEA_Common.TaskEnum;
 using WIDESEA_Common.StockEnum;
 using WIDESEA_Common.LocationEnum;
+using WIDESEA_Common.CommonEnum;
+using WIDESEA_DTO.ToMes;
+using System.Diagnostics;
+using WIDESEA_Common.OtherEnum;
+using WIDESEA_Core.Const;
 
 namespace WIDESEA_TaskInfoService
 {
@@ -40,10 +45,12 @@
                     PushTasksToWCS(new List<Dt_Task> { task });
                     return WebResponseContent.Instance.OK($"璇ユ墭鐩樺凡鐢熸垚浠诲姟", _mapper.Map<WMSTaskDTO>(task));
                 }
-                if (Repository.QueryFirst(x => x.SourceAddress == stationCode && x.TaskStatus == TaskStatusEnum.New.ObjToInt()) != null)
+               /* if (Repository.QueryFirst(x => x.SourceAddress == stationCode && x.TaskStatus == OutTaskStatusEnum.New.ObjToInt()) != null)
                 {
                     return WebResponseContent.Instance.Error($"璇ョ珯鐐瑰凡鏈夋湭鎵ц鐨勪换鍔�");
-                }
+                }*/
+
+
                 //Dt_StockInfo stockInfo = _stockRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First();
 
                 //if (stockInfo == null)
@@ -63,7 +70,7 @@
                 Dt_Warehouse warehouse = _warehouseRepository.QueryFirst(x => x.WarehouseCode == roadwayInfo.RoadwayNo);
                 if (warehouse == null)
                 {
-                    return WebResponseContent.Instance.Error("鏈壘鍒版敼浠撳簱");
+                    return WebResponseContent.Instance.Error("鏈壘鍒拌浠撳簱");
                 }
                 Dt_LocationInfo? locationInfo = _basicService.LocationInfoService.AssignLocation(roadwayInfo.RoadwayNo, warehouse.WarehouseId, "");//
                 if (locationInfo == null)
@@ -90,12 +97,13 @@
                     Roadway = "1",
                     SourceAddress = "",
                     TargetAddress = locationInfo.LocationCode,
-                    TaskType = TaskTypeEnum.Inbound.ObjToInt(),
-                    TaskStatus = TaskStatusEnum.New.ObjToInt(),
-                    WarehouseId = 1,
+                    TaskType = TaskInboundTypeEnum.Inbound.ObjToInt(),
+                    TaskStatus = TaskInStatusEnum.Line_InExecuting.ObjToInt(),
+                    WarehouseId = warehouse.WarehouseId,
                     //PalletType = GetPalletType(warehouse, palletCode),//GetPalletType(warehouse, palletCode)
                     Creater = "WCS",
-                    CreateDate = DateTime.Now
+                    CreateDate = DateTime.Now,
+                    Depth = locationInfo.Depth,
                 };
 
                 _unitOfWorkManage.BeginTran();
@@ -118,5 +126,151 @@
             }
         }
 
+
+        /// <summary>
+        /// 鍒涘缓鍏ュ簱浠诲姟
+        /// </summary>
+        /// <param name="inboundTask"></param>
+        /// <returns></returns>
+        /// <exception cref="NotImplementedException"></exception>
+        public ApiResponse<object> sendEnTask(InOutboundTaskReceived inboundTask)
+        {
+            WebResponseContent webResponseContent = new WebResponseContent();
+
+            try
+            {
+                List<Dt_Task> AddtaskList = new List<Dt_Task>();
+                List<Dt_LocationInfo> Adddt_Locations = new List<Dt_LocationInfo>();
+                List<Dt_StockInfo> Adddtstockt = new List<Dt_StockInfo>();
+
+                if (inboundTask.palletInfoList.Count > 0)
+                {
+                    List<Dt_Task> taskData = BaseDal.QueryData();
+                    List<Dt_StockInfo> Stockdata = _stockRepository.QueryData();
+
+                    /*Dt_StationManger dt_Station = _stationMangerService.QueryPlatform(inboundTask.NodeCode);
+                    if (dt_Station == null) return MESresponse($"鏈壘鍒扮珯鍙颁俊鎭�,绔欏彴缂栧彿锛歿inboundTask.NodeCode}", false);*/
+
+                    foreach (PalletInfo palletInfo in inboundTask.palletInfoList)
+                    {
+                        Dt_LocationInfo location = null;
+                        if (palletInfo.locationCode == null || palletInfo.locationCode == "")
+                        {
+                            location = _basicService.LocationInfoService.GetLocationInfo();//鑾峰彇鍒版柊搴撲綅
+                        }
+                        else
+                        {
+                            location = _locationInfoRepository.QueryFirst(x => x.LocationCode == palletInfo.locationCode);
+                        }
+                        if (location == null) return MESresponse($"鏈壘鍒拌揣浣嶄俊鎭�,鏉$爜锛歿palletInfo.palletCode}", false);
+                        if (location.LocationStatus != (int)LocationStatusEnum.Free) return MESresponse($"鎵樼洏鏉$爜锛歿palletInfo.palletCode}锛屾煡鎵惧埌鐨勮揣浣嶏細{location.LocationCode},涓嶄负绌鸿揣浣嶏紒", false);
+
+                        Dt_StockInfo dt_ = Stockdata.Where(x => x.PalletCode == palletInfo.palletCode).FirstOrDefault();
+                        if (dt_ == null)
+                        {
+                            //鍒涘缓缁勭洏淇℃伅
+                            var dt_Stock = new Dt_StockInfo
+                            {
+                                PalletCode = palletInfo.palletCode,
+                                PalletType = 1,
+                                LocationCode = location.LocationCode,
+                                StockStatus = (int)StockStatusEmun.缁勭洏鏆傚瓨,
+                                Creater = "WMS",
+                                CreateDate = DateTime.Now,
+                                MESsubPalletCode = palletInfo.palletCode,
+                            };
+                            Adddtstockt.Add(dt_Stock);
+                        }
+                        else
+                        {
+                            if(dt_.StockStatus == (int)StockStatusEmun.宸插叆搴�)
+                            {
+                                return MESresponse($"璇ュ簱瀛樻潯鐮佸凡鍏ュ簱锛屼笉鍙噸澶嶅叆搴�,鏉$爜锛歿palletInfo.palletCode}", false);
+                            }
+                        }
+
+                        string TaregtAddres = "";
+                        if (inboundTask.NodeCode !="2011" && inboundTask.NodeCode != "2009")
+                        {
+                            int nextTaregt = int.Parse(inboundTask.NodeCode);
+                            //纭鐩爣绔欏彴锛堝浐瀹氾級
+                             TaregtAddres = (nextTaregt + 1).ToString();
+                        }
+                        else
+                        {
+                            TaregtAddres = location.RoadwayNo == "SC01" ? "2021" : "2020";
+                        }
+                        
+
+
+
+                        location.LocationStatus = (int)LocationStatusEnum.InStockLock;
+
+                        //鐢熸垚绉诲姩浠诲姟
+                        Dt_Task dt_Task = new()
+                        {
+                            PalletCode = palletInfo.palletCode,
+                            TaskNum = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
+                            Roadway = location.RoadwayNo,
+                            TaskType = TaskInboundTypeEnum.Inbound.ObjToInt(),
+                            TaskStatus = TaskInStatusEnum.Line_InExecuting.ObjToInt(),
+                            SourceAddress = TaregtAddres,
+                            TargetAddress = location.LocationCode,
+                            CurrentAddress = TaregtAddres,
+                            NextAddress = location.LocationCode,
+                            Grade = 1,
+                            Creater = "MES",
+                            Depth = location.Depth,
+                            CreateDate = DateTime.Now,
+                            MEStaskId = inboundTask.TaskId,
+                            MESbusinessId = inboundTask.BusinessId,
+                            MESsubPalletCode = palletInfo.subPalletCode,
+                            OutboundPlatform = inboundTask.NodeCode
+                        };
+                       
+                        Adddt_Locations.Add(location);
+                        AddtaskList.Add(dt_Task);
+                    }
+                    if (Adddtstockt.Count > 0 && Adddt_Locations.Count > 0 && AddtaskList.Count > 0)
+                    {
+                        _unitOfWorkManage.BeginTran();
+
+
+                        _stockRepository.AddData(Adddtstockt);
+                        _locationInfoRepository.UpdateData(Adddt_Locations);
+                        BaseDal.AddData(AddtaskList);
+
+                        var respon = PushTasksToWCS(AddtaskList, "");
+                        if (respon.Status)
+                        {
+                            _unitOfWorkManage.CommitTran();  //鎻愪氦浜嬪姟
+                            return MESresponse("", true);
+                        }
+                        else
+                        {
+                            _unitOfWorkManage.RollbackTran();  //鍥炴粴浜嬪姟
+                            return MESresponse($"涓嬪彂鍑哄簱澶辫触锛屽師鍥狅細{respon.Message}锛�", false);
+                        }
+
+                    }
+                    else
+                    {
+                        return MESresponse("浠诲姟鐢熸垚澶辫触锛�", false);
+                    }
+
+                }
+                else
+                {
+                    return MESresponse("鎺ユ敹鍒癕ES鎵樼洏缂栫爜鍒楄〃鏃犳暟鎹紒", false);
+                }
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();  //鍥炴粴浜嬪姟
+                return MESresponse($"涓嬪彂鍑哄簱澶辫触锛屽師鍥狅細{ex.Message}锛�", false);
+                throw;
+            }
+        }
+
     }
 }

--
Gitblit v1.9.3