From 1e6a3ce80c38124fe8750f59956528204e696d4e Mon Sep 17 00:00:00 2001
From: zhanghonglin <zhanghonglin@hnkhzn.com>
Date: 星期三, 22 四月 2026 15:13:25 +0800
Subject: [PATCH] 新功能

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs |   79 +++++++++++++++++++++++++++++++++------
 1 files changed, 66 insertions(+), 13 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
index 0c5dff4..fd72ebd 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
@@ -183,13 +183,14 @@
             else
             {
                 stockInfo.StockStatus = (int)StockStatusEmun.鐩存帴鍑哄簱;
+                stockInfo.LocationCode = "2-52-1";
 
-                task.SourceAddress = "1-52-1";
-                task.TargetAddress = locations.LocationCode;
+                task.SourceAddress = "2-52-1";
+                task.TargetAddress = "1-52-1";
                 task.Roadway = "SC01";
                 task.Grade = 1;
                 task.TaskType = (int)TaskTypeEnum.OutDirect;
-                task.TaskState = (int)TaskStatusEnum.InNew;
+                task.TaskState = (int)TaskStatusEnum.OutNew;
                 task.TaskNum = TaskNum(DateTime.Now.ToString("mmss").ObjToInt());
             }
 
@@ -440,7 +441,7 @@
 
                     //淇敼鍏ュ簱妯″紡
                     Dt_Outstockinfo outstockinfo = _IOutstockinfoService.QueryFirst(x => x.Id == 1);
-                    outstockinfo.OutMode = 0;
+                    outstockinfo.OutMode = 1;
 
                     //寮�濮嬫暟鎹簱浜嬪姟
                     _unitOfWorkManage.BeginTran();
@@ -481,7 +482,7 @@
                 Dt_Task tasks = BaseDal.QueryFirst(x => x.Remark == task.Remark);
                 if (tasks == null)
                 {
-                    Dt_OutboundOrder OutboundOrder =  _OutboundOrderRepository.QueryFirst(x=>x.MaterielName == stock.MaterielName && x.BoundOrderCode == task.Remark);
+                    Dt_OutboundOrder OutboundOrder =  _OutboundOrderRepository.QueryFirst(x=>x.MaterielName == stock.MaterielName && x.Id == int.Parse(task.Remark));
                     //鐢熸垚鍘嗗彶璁㈠崟
                     Dt_OutboundOrder_Hty OutboundOrder_Hty = new Dt_OutboundOrder_Hty();
                     OutboundOrder_Hty.MaterielName = OutboundOrder.MaterielName;
@@ -622,12 +623,13 @@
                     LocationInfo = _LocationInfoRepository.QueryData(x => x.Remark == Types && x.LocationStatus == (int)LocationStatusEnum.EmptyBarrel).Take(Num).ToList();
                     if (LocationInfo.Count() == Num)
                     {
-                        string StationName = "婊℃《鍑�";
+                        string StationName = "绌烘《鍑�";
                         string StationNames = SelectStationManger(StationName);
+                        int i = 1;
                         foreach (var item in LocationInfo)
                         {
                             item.LocationStatus = (int)LocationStatusEnum.Lock;
-
+                            i++;
                             //鍒涘缓浠诲姟
                             Dt_Task task = new Dt_Task();
                             task.SourceAddress = item.LocationCode;
@@ -636,7 +638,7 @@
                             task.Grade = 1;
                             task.TaskType = (int)TaskTypeEnum.OutEmpty;
                             task.TaskState = (int)TaskStatusEnum.OutNew;
-                            task.TaskNum = TaskNum(DateTime.Now.ToString("mmss").ObjToInt());
+                            task.TaskNum = TaskNum(DateTime.Now.ToString("mmss").ObjToInt()+i);
                             tasks.Add(task);
                         }
                     }
@@ -836,7 +838,7 @@
                 {
                     //淇敼鍏ュ簱妯″紡
                     Dt_Outstockinfo outstockinfo = _IOutstockinfoService.QueryFirst(x => x.Id == 1);
-                    outstockinfo.OutMode = 1;
+                    outstockinfo.OutMode = 0;
                     OutboundOrder.BoundOrderStatue = (int)OutboundOrderEnum.Execute;
                     
                     //寮�濮嬫暟鎹簱浜嬪姟
@@ -854,11 +856,62 @@
             //鍏朵粬姝e父鍑哄簱
             else
             {
-                content = ArtificialTask(OutboundOrder.num, OutboundOrder.MaterielName, OutboundOrder.BoundOrderCode);
-                if (content.Message == null || content.Message.Equals(""))
+                //鎸囧畾浣嶇疆
+                if (OutboundOrder.Location != null && !OutboundOrder.Location.Equals(""))
                 {
-                    OutboundOrder.BoundOrderStatue = (int)OutboundOrderEnum.Execute;
-                    _OutboundOrderRepository.UpdateData(OutboundOrder);
+                    //鑾峰彇鍏ㄩ儴褰撳墠璁㈠崟
+                    List<Dt_OutboundOrder> OutboundOrders = _OutboundOrderRepository.QueryData(x => x.BoundOrderCode == OutboundOrder.BoundOrderCode);
+                    List<Dt_StockInfo> StockInfos = new List<Dt_StockInfo>();
+                    List<Dt_Task> tasks = new List<Dt_Task>();
+                    List<Dt_LocationInfo> LocationInfos = new List<Dt_LocationInfo>();
+                    foreach (var itme in OutboundOrders)
+                    {
+                        //閿佸畾搴撳瓨
+                        Dt_StockInfo StockInfo = _StockInfoRepository.QueryFirst(x=>x.LocationCode == itme.Location);
+                        StockInfo.StockStatus = (int)StockStatusEmun.鍑哄簱閿佸畾;
+                        //閿佸畾搴撲綅
+                        Dt_LocationInfo LocationInfo = _LocationInfoRepository.QueryFirst(x => x.LocationCode == StockInfo.LocationCode);
+                        LocationInfo.LocationStatus = (int)LocationStatusEnum.Lock;
+                        //鍒涘缓浠诲姟
+                        string StationName = "婊℃《鍑�";
+                        string StationNames = SelectStationManger(StationName);
+                        Dt_Task task = new Dt_Task();
+                        task.SourceAddress = StockInfo.LocationCode;
+                        task.TargetAddress = StationNames;
+                        task.Roadway = "SC01";
+                        task.Grade = 1;
+                        task.TaskType = (int)TaskTypeEnum.Outfull;
+                        task.TaskState = (int)TaskStatusEnum.OutNew;
+                        task.TaskNum = TaskNum(DateTime.Now.ToString("mmss").ObjToInt());
+                        task.Remark = itme.Id+"";
+
+                        StockInfos.Add(StockInfo);
+                        tasks.Add(task);
+                        LocationInfos.Add(LocationInfo);
+                    }
+                    //寮�濮嬫暟鎹簱浜嬪姟
+                    _unitOfWorkManage.BeginTran();
+                    _LocationInfoRepository.UpdateData(LocationInfos);
+                    _StockInfoRepository.UpdateData(StockInfos);
+                    BaseDal.AddData(tasks);
+                    //鍙戦�佺粰WCS
+                    string address = AppSettings.Get("WCS");
+                    if (!string.IsNullOrEmpty(address))
+                    {
+                        HttpHelper.Post($"{address}/api/Task/WMSaddListTask/", tasks.Serialize());
+                    }
+                    //鎻愪氦浜嬪姟
+                    _unitOfWorkManage.CommitTran();
+                }
+                //鑷姩鍒嗛厤
+                else
+                {
+                    content = ArtificialTask(OutboundOrder.num, OutboundOrder.MaterielName, OutboundOrder.Id+"");
+                    if (content.Message == null || content.Message.Equals(""))
+                    {
+                        OutboundOrder.BoundOrderStatue = (int)OutboundOrderEnum.Execute;
+                        _OutboundOrderRepository.UpdateData(OutboundOrder);
+                    }
                 }
             }
             return content.Message;

--
Gitblit v1.9.3