From fc9cba5f058089887aa7061d2e6b4006b9e04a9a Mon Sep 17 00:00:00 2001
From: 陈勇 <竞男@ASUNA>
Date: 星期二, 10 三月 2026 09:46:43 +0800
Subject: [PATCH] 同步

---
 项目代码/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs |  250 ++++++++++++++++++++++++++++++-------------------
 1 files changed, 151 insertions(+), 99 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs"
index 7aad3d7..28e3152 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs"
@@ -10,8 +10,10 @@
 using WIDESEA_DTO.WMS;
 using WIDESEA_IServices;
 using WIDESEA_IStoragIntegrationServices;
+using WIDESEA_StorageTaskRepository;
 using WIDESEA_StoragIntegrationServices;
 using WIDESEAWCS_BasicInfoRepository;
+using WIDESEAWCS_BasicInfoService;
 using WIDESEAWCS_Model.Models;
 using WIDESEAWCS_QuartzJob.Models;
 
@@ -21,6 +23,7 @@
 public partial class Dt_TaskService : ServiceBase<Dt_Task, IDt_TaskRepository>, IDt_TaskService
 {
     private readonly LogFactory LogFactory = new LogFactory();
+    //private readonly BDCManager bDCManager = new BDCManager();
     private readonly IUnitOfWorkManage _unitOfWorkManage;
     private readonly IDt_Task_HtyRepository _task_HtyRepository;
     private readonly IMapper _mapper;
@@ -30,9 +33,12 @@
     private readonly IDt_StationManagerRepository _stationManagerRepository;
     private readonly ISys_ConfigService _configService;
     private readonly IDt_PalletStockInfoRepository _palletStockInfoRepository;
-    private readonly IDt_PalletStockInfoDetailRepository _palletStockInfoDetailRepository;
     private readonly IDt_PalletStockInfo_htyRepository _palletStockInfo_HtyRepository;
-    private readonly IBoxingInfoRepository _boxingInfoRepository;
+    private readonly IDt_CarBodyInfoRepository _carBodyRepository;
+    private readonly IDt_BDCConfigurationRepository _bdcConfigurationRepository;
+    private readonly IDt_BDCConfigurationService _bdcConfigurationService;
+    private readonly IDt_RoadWayRepository _roadWayRepository;
+    private readonly IDt_RoadWayInfoRepository _roadWayInfoRepository;
 
     public Dt_TaskService(IDt_TaskRepository BaseDal,
                                 IUnitOfWorkManage unitOfWorkManage,
@@ -42,7 +48,7 @@
                                 ITaskExecuteDetailRepository taskExecuteDetailRepository,
                                 ILocationStatusChangeRecordRepository locationStatusChangeRecordRepository,
                                 IDt_StationManagerRepository stationManagerRepository,
-                                ISys_ConfigService configService, IDt_PalletStockInfoRepository palletStockInfoRepository, IDt_PalletStockInfo_htyRepository palletStockInfo_HtyRepository, IBoxingInfoRepository boxingInfoRepository, IDt_PalletStockInfoDetailRepository palletStockInfoDetailRepository) : base(BaseDal)
+                                ISys_ConfigService configService, IDt_PalletStockInfoRepository palletStockInfoRepository, IDt_PalletStockInfo_htyRepository palletStockInfo_HtyRepository, IDt_CarBodyInfoRepository carBodyRepository, IDt_BDCConfigurationRepository bdcConfigurationRepository, IDt_BDCConfigurationService bDCConfigurationService, IDt_RoadWayRepository roadWayRepository, IDt_RoadWayInfoRepository roadWayInfoRepository) : base(BaseDal)
 
     {
         _unitOfWorkManage = unitOfWorkManage;
@@ -55,8 +61,11 @@
         _configService = configService;
         _palletStockInfoRepository = palletStockInfoRepository;
         _palletStockInfo_HtyRepository = palletStockInfo_HtyRepository;
-        _boxingInfoRepository = boxingInfoRepository;
-        _palletStockInfoDetailRepository = palletStockInfoDetailRepository;
+        _carBodyRepository = carBodyRepository;
+        _bdcConfigurationRepository = bdcConfigurationRepository;
+        _bdcConfigurationService = bDCConfigurationService;
+        _roadWayRepository = roadWayRepository;
+        _roadWayInfoRepository = roadWayInfoRepository;
     }
 
     #region 澶栭儴鎺ュ彛鏂规硶
@@ -73,9 +82,12 @@
         WebResponseContent content = new WebResponseContent();
         try
         {
+            var stationInfo = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway);
+
+            //if( stationInfo == null ) throw new Exception ("鏈厤缃换鍔$珯鍙�")锛�
 
             // 鑾峰彇搴撲綅淇℃伅
-            var locationInf = await _locationRepository.QueryFirstAsync(x => x.LocationCode == task.TargetAddress && x.RoadwayNo == task.Roadway);
+            var locationInf = await _locationRepository.QueryFirstAsync(x => x.LocationCode == task.TargetAddress && x.RoadwayNo == stationInfo.RoadwayNo);
 
             int lastStatus = locationInf.LocationStatus;
             // 鏇存柊鐩爣浣嶇疆鐘舵�佷负搴撳瓨涓�
@@ -85,22 +97,26 @@
             var taskHty = CreateHistoricalTask(task);
 
             //鑾峰彇缁勭洏淇℃伅
-            var boxinginfo = await _boxingInfoRepository.QueryFirstNavAsync(x => x.PalletCode == task.PalletCode);
+            var carBody = await _carBodyRepository.QueryFirstAsync(x => x.PalletCode == task.PalletCode && x.RFID == task.PVI);
 
             // 鏍规嵁鍒涘缓搴撳瓨瀹炰緥妯″瀷
             //var boxDetail = boxinginfo.BoxingInfoDetails.Adapt<List<Dt_PalletStockInfoDetail>>();
             Dt_PalletStockInfo palletStockInfo = new Dt_PalletStockInfo
             {
                 CreateDate = DateTime.Now,
-                
                 Creater = task.Creater,
                 LocationCode = task.TargetAddress,
-                StockStatus = 2,
-                PalletCode = task.PalletCode,
+                StockStatus = 0,
+                //PalletCode = task.PalletCode,
+                RoadwayNo = stationInfo.RoadwayNo,
+                LockOrder = 0,
+                TaskStatus = 0,
+                carBodyID = carBody.Id,
+                CarBodyInfo = carBody
             };
 
             // 鎵ц鏁版嵁搴撲簨鍔�
-            bool isResult = await ExecuteTransaction(palletStockInfo, taskHty, locationInf, task.TaskId, boxinginfo);
+            bool isResult = await ExecuteTransaction(palletStockInfo, taskHty, locationInf, task.TaskId, carBody);
             if (isResult)
             {
                 _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(locationInf, lastStatus, (int)StatusChangeTypeEnum.AutomaticStorage, task.TaskNum);
@@ -129,7 +145,7 @@
         try
         {
             //鏌ユ壘搴撳瓨
-            var stock = await _palletStockInfoRepository.QueryFirstNavAsync(x => x.PalletCode == task.PalletCode);
+            var stock = await _palletStockInfoRepository.QueryFirstNavAsync(x => x.CarBodyInfo.PalletCode == task.PalletCode);
 
             // 鏇存柊搴撲綅鐘舵�佷笌浠诲姟鐘舵��
             (var loc, var tas) = UpdateStockAndTaskStatus(stock, task);
@@ -141,15 +157,15 @@
             stockInfo_Hty.FinishTime = DateTime.Now;
             stockInfo_Hty.OperateType = (int)OperateTypeEnum.鑷姩瀹屾垚;
 
-            var boxinfo = _boxingInfoRepository.QueryFirst(x => x.PalletCode == task.PalletCode);
+            var boxinfo = _carBodyRepository.QueryFirst(x => x.PalletCode == task.PalletCode);
 
             // 浜嬪姟澶勭悊
             await _unitOfWorkManage.UseTranAsync(async () =>
             {
                 var isLocationUpdate = await _locationRepository.UpdateDataAsync(loc);                      //鏇存柊搴撲綅
                 var isPalletHty = await _palletStockInfo_HtyRepository.AddDataAsync(stockInfo_Hty);         //娣诲姞鍘嗗彶搴撳瓨璁板綍
-                //var isTaskUpdated = await BaseDal.DeleteDataByIdAsync(task.TaskId);                       //鍒犻櫎浠诲姟
-                await BaseDal.UpdateDataAsync(task);                                                        //鍙栨秷鍒犻櫎浠诲姟锛屾敼涓哄畬鎴愮姸鎬侊紱骞禬MS鐣岄潰鐢变汉宸ョ‘璁ゅ畬鎴�
+                var isTaskUpdated = await BaseDal.DeleteDataByIdAsync(task.TaskId);                       //鍒犻櫎浠诲姟
+                //await BaseDal.UpdateDataAsync(task);                                                        //鍙栨秷鍒犻櫎浠诲姟锛屾敼涓哄畬鎴愮姸鎬侊紱骞禬MS鐣岄潰鐢变汉宸ョ‘璁ゅ畬鎴�
                 var isTaskAdd = await _task_HtyRepository.AddDataAsync(taskHty) > 0;                        //鍔犲叆鍘嗗彶浠诲姟
                 var isDelete = await _palletStockInfoRepository.DeleteDataAsync(stock);                     //鍒犻櫎搴撳瓨
                 //await DeleteStockInfoDetailsAsync(stock.StockInfoDetails);                                  //鍒犻櫎搴撳瓨鏄庣粏
@@ -173,7 +189,9 @@
 
     private (DtLocationInfo, Dt_Task) UpdateStockAndTaskStatus(Dt_PalletStockInfo stock, Dt_Task task)
     {
-        var location = _locationRepository.QueryFirst(x => x.LocationCode == task.SourceAddress && x.RoadwayNo == task.Roadway);
+        var stationInfo = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway);
+
+        var location = _locationRepository.QueryFirst(x => x.LocationCode == task.SourceAddress && x.RoadwayNo == stationInfo.RoadwayNo);
         int lastStatus = location.LocationStatus;
         location.LocationStatus = (int)LocationEnum.Free;
         task.TaskState = (int)TaskOutStatusEnum.OutFinish;
@@ -246,7 +264,7 @@
             if (task == null)
                 return content.Error($"鏆傛湭鎵惧埌銆恵input.PalletCode}銆戠殑浠诲姟");
 
-            return content; //= await UpdateExistingTask(input, task);
+            return await UpdateExistingTask(input, task);   // content;
         }
         catch (Exception err)
         {
@@ -279,6 +297,7 @@
                 await _unitOfWorkManage.UseTranAsync(async () =>
                 {
                     var asb = await BaseDal.DeleteDataByIdAsync(task.TaskId);
+
                     var asbHty = await _task_HtyRepository.AddDataAsync(taskHty) > 0;
                     if (asb && asbHty)
                         content.OK();
@@ -290,6 +309,7 @@
             else
             {
                 task.TaskState = taskState;
+                task.Dispatchertime = DateTime.Now;
                 var asb = await BaseDal.UpdateDataAsync(task);
                 if (asb)
                     content.OK();
@@ -323,16 +343,16 @@
             foreach (var item in barcode)
             {
                 // 鏌ヨ搴撳瓨淇℃伅
-                var stockInfo = _palletStockInfoRepository.QueryFirst(x => x.PalletCode == item);
+                var stockInfo = _palletStockInfoRepository.QueryFirst(x => x.Id == item.ObjToInt());
 
                 if (stockInfo == null)
                 {
                     return content.Error("鏈煡璇㈠埌瀵瑰簲鐨勫簱瀛樹俊鎭�");
                 }
 
-                if (stockInfo.StockStatus != 2) return content.Error($"鎸囧畾澶辫触锛氭墭鐩榹item}褰撳墠鐘舵�佷笉鍏佽鎸囧畾鍑哄簱");
+                if (stockInfo.StockStatus != 0) return content.Error($"鎸囧畾澶辫触锛氭墭鐩榹item}褰撳墠鐘舵�佷笉鍏佽鎸囧畾鍑哄簱");
 
-                stockInfo.StockStatus = 3;
+                stockInfo.StockStatus = 1;
 
                 //鏌ヨ搴撲綅鏄惁閿佸畾锛�
                 var location = _locationRepository.QueryFirst(x => x.LocationCode == stockInfo.LocationCode);
@@ -347,20 +367,50 @@
                     return content.Error($"銆恵item}銆戝凡瀛樺湪浠诲姟");
                 }
 
-                var stationInfo = _stationManagerRepository.QueryFirst(x => x.stationChildCode == station);
+                var carBody = _carBodyRepository.QueryFirst(x => x.Id == stockInfo.carBodyID);
+                List<Dt_StationManager> stationLists = null;
+                if (carBody.CarType == 1)
+                {
+                    stationLists = _stationManagerRepository.QueryData(x => x.RoadwayNo == stockInfo.RoadwayNo && x.stationType == 2 && x.stationStatus == "1" && x.stationArea == "3");
+                }
+                else if (carBody.CarType == 2)
+                {
+                    stationLists = _stationManagerRepository.QueryData(x => x.RoadwayNo == stockInfo.RoadwayNo && x.stationType == 2 && x.stationStatus == "1" && x.stationArea == "4");
+                }
+                else if (carBody.CarType == 3)
+                {
+                    stationLists = _stationManagerRepository.QueryData(x => x.RoadwayNo == stockInfo.RoadwayNo && x.stationType == 7 && x.stationStatus == "1" && x.stationArea == "3");
+                }
 
-                //if (stationInfo.Roadway != stockInfo.AreaCode) throw new Exception($"褰撳墠鎵樼洏{item}涓庝笅鏂欎綅涓嶅悓鍖哄煙锛岃閲嶆柊閫夋嫨锛�");
+                if (stationLists == null || stationLists.Count == 0) throw new Exception("鍑哄簱绔欏彴鏈厤缃垨鏈惎鐢�");
+
+                Dt_StationManager Outstation = null;
+
+                //if (stationLists.Count > 1)
+                //{
+                //    var Outtask = BaseDal.QueryData(x => x.Roadway == stationLists.FirstOrDefault().Roadway && x.TaskType == (int)TaskTypeEnum.Outbound).OrderByDescending(x => x.CreateDate).FirstOrDefault();
+                //    if (Outtask != null) Outstation = stationLists.Where(x => x.stationChildCode != task.NextAddress && x.stationChildCode != Outtask.CurrentAddress).FirstOrDefault();
+                //    else Outstation = stationLists.FirstOrDefault();
+                //}
+                //else
+                //{
+                Outstation = stationLists.FirstOrDefault();
+                //}
+                //var stationInfo = stationInfos.FirstOrDefault();
+
+
 
                 // 鍒涘缓骞舵坊鍔犱换鍔″埌鏁版嵁搴�
                 task = new Dt_Task
                 {
                     Grade = 1,
-                    Roadway = stationInfo.Roadway,
-                    TargetAddress = stationInfo.stationLocation,
+                    Roadway = Outstation.Roadway,
+                    TargetAddress = "RB043",
                     Dispatchertime = DateTime.Now,
-                    NextAddress = stationInfo.stationLocation,
+                    NextAddress = Outstation.stationChildCode,
                     OrderNo = null,
-                    PalletCode = stockInfo.PalletCode,
+                    PalletCode = carBody.PalletCode,
+                    PVI = carBody.PVI,
                     SourceAddress = stockInfo.LocationCode,
                     CurrentAddress = stockInfo.LocationCode,
                     TaskState = (int)TaskOutStatusEnum.OutNew,
@@ -371,40 +421,33 @@
                     TaskId = 0,
                 };
 
+                // 鍒涘缓浠诲姟浼犺緭鐢ㄧ殑DTO瀵硅薄
+                var taskDTO = CreateTaskDTO(task);
 
-                //addtask schedulingTask = new addtask
-                //{
-                //    task_id = task.AGVtaskId,
-                //    task_type = task.TaskType == (int)TaskTypeEnum.Inbound ? "push" : "pop",
-                //    work_begin = task.SourceAddress,
-                //    work_end = task.TargetAddress
-                //};
+                // 鑾峰彇WMS IP鍦板潃鐢ㄤ簬鍙戦�佷换鍔¤姹�
+                var wmsIpAddress = GetWCSIpReceiveTask();
+                if (wmsIpAddress == null)
+                {
+                    throw new InvalidOperationException("WMS IP 鏈厤缃�");
+                }
 
-                //string address = AGV_Interface + "add_task";
 
-                //string result = HttpsClient.PostAsync(address, schedulingTask.ToDictionary()).Result;
+                var tasks = new List<WMSTaskDTO>() { taskDTO };
+                // 鍙戦�佷换鍔¤姹傚埌WMS
+                var result = HttpHelper.PostAsync(wmsIpAddress, tasks.ToJsonString()).Result;
+                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+                if (content.Status)
+                {
+                    _unitOfWorkManage.BeginTran();
+                    // 娣诲姞浠诲姟鍒版暟鎹簱
+                    BaseDal.AddData(task);
+                    // 鏇存柊搴撲綅浣嶇疆鐘舵�佷负涓嶅彲鐢�
+                    _locationRepository.UpdateData(location);
+                    _palletStockInfoRepository.UpdateData(stockInfo);
 
-                //content = JsonConvert.DeserializeObject<WebResponseContent>(result);
-
-                //if (content.ack != 0)
-                //{
-                //    Console.WriteLine($"璇锋眰RCS寮傚父锛歿content.msg}");
-                //    LogFactory.GetLog("涓嬪彂AGV浠诲姟").Info(true, $"\r\r--------------------------------------");
-                //    LogFactory.GetLog("涓嬪彂AGV浠诲姟").Info(true, $"璇锋眰鍙傛暟锛歿schedulingTask.ToJsonString()}");
-                //    LogFactory.GetLog("涓嬪彂AGV浠诲姟").Info(true, $"鍝嶅簲鍙傛暟锛歿content.ToJsonString()}");
-                //    throw new Exception(content.msg);
-                //}
-
-                _unitOfWorkManage.BeginTran();
-                // 娣诲姞浠诲姟鍒版暟鎹簱
-                BaseDal.AddData(task);
-                // 鏇存柊搴撲綅浣嶇疆鐘舵�佷负涓嶅彲鐢�
-                _locationRepository.UpdateData(location);
-                _palletStockInfoRepository.UpdateData(stockInfo);
-
-                _unitOfWorkManage.CommitTran();
+                    _unitOfWorkManage.CommitTran();
+                }
             }
-            
             content.OK();
         }
         catch (Exception ex)
@@ -417,20 +460,42 @@
         }
         return content;
     }
+    #endregion 鎸囧畾浠诲姟鍑哄簱
 
-    private string GetAGVIpReceiveTask()
+
+    /// <summary>
+    /// 鍒涘缓浠诲姟DTO
+    /// </summary>
+    private WMSTaskDTO CreateTaskDTO(Dt_Task task)
+    {
+        return new WMSTaskDTO
+        {
+            TaskNum = task.TaskNum.Value,
+            Grade = task.Grade.Value,
+            PalletCode = task.PalletCode,
+            RoadWay = task.Roadway,
+            SourceAddress = task.SourceAddress,
+            TargetAddress = task.TargetAddress,
+            TaskState = task.TaskState.Value,
+            Id = 0,
+            TaskType = task.TaskType,
+            pvi = task.PVI,
+            NextAddress = task.NextAddress
+
+        };
+    }
+
+    private string GetWCSIpReceiveTask()
     {
         var configs = _configService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
-        var wmsBase = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.AGVIPAddress)?.ConfigValue;
-        var ipAddress = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.addTask)?.ConfigValue;
+        var wmsBase = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.WCSIPAddress)?.ConfigValue;
+        var ipAddress = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.ReceiveTask)?.ConfigValue;
         if (wmsBase == null || ipAddress == null)
         {
             return null;
         }
         return wmsBase + ipAddress;
     }
-
-    #endregion 鎸囧畾浠诲姟鍑哄簱
 
     #endregion 澶栭儴鎺ュ彛鏂规硶
 
@@ -617,21 +682,6 @@
     #endregion 鍐呴儴璋冪敤鏂规硶
 
     #region private 鍐呴儴鏂规硶
-
-
-    private async Task DeleteStockInfoDetailsAsync(IEnumerable<Dt_PalletStockInfoDetail> details)
-    {
-        if (details != null)
-        {
-            var ids = details.Select(x => (object)x.Id).ToArray();
-            var isStockDetailUpdated = await _palletStockInfoDetailRepository.DeleteDataByIdsAsync(ids);
-            if (!isStockDetailUpdated)
-            {
-                throw new Exception("搴撳瓨璇︽儏淇℃伅鏇存柊澶辫触");
-            }
-        }
-    }
-
     /// <summary>
     /// 鍒涘缓鍘嗗彶浠诲姟璁板綍
     /// </summary>
@@ -665,7 +715,7 @@
     /// <param name="taskHty">鍘嗗彶浠诲姟瀵硅薄</param>
     /// <param name="taskId">浠诲姟ID</param>
     /// <returns></returns>
-    private async Task<bool> ExecuteTransaction(Dt_PalletStockInfo stock, Dt_Task_Hty taskHty, DtLocationInfo locationInfo, int taskId, DtBoxingInfo boxingInfo)
+    private async Task<bool> ExecuteTransaction(Dt_PalletStockInfo stock, Dt_Task_Hty taskHty, DtLocationInfo locationInfo, int taskId, Dt_CarBodyInfo boxingInfo)
     {
         _unitOfWorkManage.BeginTran();
         try
@@ -673,17 +723,17 @@
             var isUpdateStock = true;
             var isDeleteBoxing = true;
             // 娣诲姞搴撳瓨
-            isUpdateStock = await _palletStockInfoRepository.AddDataNavAsync(stock);
+            isUpdateStock = await _palletStockInfoRepository.AddDataAsync(stock) > 0;
 
             //鍒犻櫎缁勭洏鏁版嵁
-            if (boxingInfo != null)
-            {
-                var box = _boxingInfoRepository.DeleteData(boxingInfo);
-                //boxingInfo.CurrentStatue = 5;
-                //isDeleteBoxing = await _boxingInfoRepository.Db.DeleteNav<DtBoxingInfo>(x => x.Id == boxingInfo.Id)
-                //                        .Include(x => x.BoxingInfoDetails)
-                //                        .ExecuteCommandAsync();
-            }
+            //if (boxingInfo != null)
+            //{
+            //    //var box = _carBodyRepository.DeleteData(boxingInfo);
+            //    //boxingInfo.CurrentStatue = 5;
+            //    //isDeleteBoxing = await _boxingInfoRepository.Db.DeleteNav<DtBoxingInfo>(x => x.Id == boxingInfo.Id)
+            //    //                        .Include(x => x.BoxingInfoDetails)
+            //    //                        .ExecuteCommandAsync();
+            //}
             //
 
             // 娣诲姞鍘嗗彶浠诲姟
@@ -739,25 +789,27 @@
                 // 鍒涘缓WebResponseContent瀵硅薄
                 var content = new WebResponseContent();
 
-                // 鑾峰彇搴撲綅
-                //var location = RequestLocation(input);
-                //if (location == null)
-                //{
-                //    return content.Error("鏃犳硶鑾峰彇璐т綅淇℃伅");
-                //}
+                var carInfo = _carBodyRepository.QueryFirst(x => x.PalletCode == task.PalletCode);
+                var stationInfo = _stationManagerRepository.QueryFirst(x => x.stationChildCode == input.Position);
+                // 鑾峰彇搴撲綅;
+                var location = RequestLocation(stationInfo.RoadwayNo, carInfo.CarType);
+                if (location == null)
+                {
+                    return content.Error("鏃犳硶鑾峰彇璐т綅淇℃伅");
+                }
 
-                //string toAddress = location.LocationCode;
-                //int taskState = (int)TaskInStatusEnum.Line_InFinish;
-                //int beforeStatus = location.LocationStatus;
-                //// 鏇存柊璐т綅淇℃伅
-                //location.LocationStatus = (int)LocationEnum.Lock;
+                string toAddress = location.LocationCode;
+                int taskState = (int)TaskInStatusEnum.Line_InFinish;
+                int beforeStatus = location.LocationStatus;
+                // 鏇存柊璐т綅淇℃伅
+                location.LocationStatus = (int)LocationEnum.Lock;
 
-                // 鏇存柊浠诲姟淇℃伅
-                //MapTaskProperties(task, input, toAddress, taskState);
+                //鏇存柊浠诲姟淇℃伅
+                MapTaskProperties(task, input, toAddress, taskState);
 
                 _unitOfWorkManage.BeginTran();
                 // 寮�濮嬩簨鍔�
-                var isResult = false; //await UpdateTaskAsync(task, location, beforeStatus);
+                var isResult = await UpdateTaskAsync(task, location, beforeStatus);
                 if (!isResult)
                 {
                     _unitOfWorkManage.RollbackTran();

--
Gitblit v1.9.3