From bce2cc310d462ffbe56ee3d9f3d9368abf481aad Mon Sep 17 00:00:00 2001
From: huanghongfeng <huanghongfeng@hnkhzn.com>
Date: 星期四, 06 十一月 2025 16:02:35 +0800
Subject: [PATCH] 最新

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs |  539 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 527 insertions(+), 12 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
index 50c96b0..4d6a0ab 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
@@ -15,15 +15,28 @@
  *----------------------------------------------------------------*/
 #endregion << 鐗� 鏈� 娉� 閲� >>
 
+using Autofac.Core;
 using AutoMapper;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
 using Newtonsoft.Json;
 using SqlSugar;
+using System.DirectoryServices.Protocols;
+using System.Net;
+using System.Reflection.Emit;
+using System.Threading.Tasks;
+using WIDESEA_Common.LocationEnum;
+using WIDESEA_Common.OtherEnum;
+using WIDESEA_Common.StockEnum;
 using WIDESEA_Common.TaskEnum;
 using WIDESEA_Core;
 using WIDESEA_Core.BaseRepository;
 using WIDESEA_Core.BaseServices;
+using WIDESEA_Core.Const;
+using WIDESEA_Core.Enums;
 using WIDESEA_Core.Helper;
 using WIDESEA_DTO.Task;
+using WIDESEA_DTO.ToMes;
 using WIDESEA_IBasicService;
 using WIDESEA_IInboundService;
 using WIDESEA_IOutboundService;
@@ -41,7 +54,11 @@
         private readonly IRepository<Dt_StockInfo> _stockRepository;
         private readonly IRepository<Dt_Warehouse> _warehouseRepository;
         private readonly IRepository<Dt_LocationInfo> _locationInfoRepository;
+        private readonly IRepository<Dt_RoadwayInfo> _roadwayInforepository;
         private readonly IBasicService _basicService;
+        private readonly IDt_ApiInfoService _dt_ApiInfoService;
+        private readonly ILocationStatusChangeRecordService _locationStatusChangeRecordService;
+        private readonly IStationMangerService _stationMangerService;
 
         public IRepository<Dt_Task> Repository => BaseDal;
 
@@ -51,11 +68,7 @@
                 {nameof(Dt_Task.CreateDate),OrderByType.Asc},
             };
 
-        public List<int> TaskTypes => typeof(TaskTypeEnum).GetEnumIndexList();
-
-        public List<int> TaskOutboundTypes => typeof(TaskTypeEnum).GetEnumIndexList();
-
-        public TaskService(IRepository<Dt_Task> BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IRepository<Dt_StockInfo> stockRepository, IBasicService basicService, IRepository<Dt_Warehouse> warehouseRepository, IRepository<Dt_LocationInfo> locationInfoRepository) : base(BaseDal)
+        public TaskService(IRepository<Dt_Task> BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IRepository<Dt_StockInfo> stockRepository, IBasicService basicService, IRepository<Dt_Warehouse> warehouseRepository, IRepository<Dt_LocationInfo> locationInfoRepository, IRepository<Dt_RoadwayInfo> roadwayInforepository, IDt_ApiInfoService dt_ApiInfoService, ILocationStatusChangeRecordService locationStatusChangeRecordService, IStationMangerService stationMangerService) : base(BaseDal)
         {
             _mapper = mapper;
             _unitOfWorkManage = unitOfWorkManage;
@@ -63,7 +76,16 @@
             _basicService = basicService;
             _warehouseRepository = warehouseRepository;
             _locationInfoRepository = locationInfoRepository;
+            _roadwayInforepository = roadwayInforepository;
+            _dt_ApiInfoService = dt_ApiInfoService;
+            _locationStatusChangeRecordService = locationStatusChangeRecordService;
+            _stationMangerService=stationMangerService;
         }
+        public int GetTaskNum(string sequenceName)
+        {
+            return Db.Ado.GetScalar($"SELECT NEXT VALUE FOR {sequenceName}").ObjToInt();
+        }
+
         /// <summary>
         /// 浠诲姟淇℃伅鎺ㄩ�佽嚦WCS
         /// </summary>
@@ -77,19 +99,512 @@
                 {
                     x.AGVArea = agvDescription;
                 });
-                string url = AppSettings.Get("WCS");
-                if (string.IsNullOrEmpty(url))
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒癢CSApi鍦板潃,璇锋鏌ラ厤缃枃浠�");
-                }
-                string response = HttpHelper.Post($"{url}/api/Task/ReceiveTask", taskDTOs.Serialize());
 
-                return JsonConvert.DeserializeObject<WebResponseContent>(response) ?? WebResponseContent.Instance.Error("杩斿洖閿欒");
+                var ConfigsAPIInfo = _dt_ApiInfoService.GetConfigsByAPIInfo(CateGoryConst.CONFIG_WCS_IPAddress, SysConfigConst.WCSReceiveTask);      //鑾峰彇鍒皐cs鍏ㄩ儴绫诲瀷鐨勬帴鍙�
+                string WCSReceiveTaskAPI = ConfigsAPIInfo.ApiAddress + ConfigsAPIInfo.ApiName;
+
+                var respon = HttpHelper.Post(WCSReceiveTaskAPI, JsonConvert.SerializeObject(taskDTOs));
+                if (respon != null)
+                {
+                    WebResponseContent respone = JsonConvert.DeserializeObject<WebResponseContent>(respon.ToString());
+                    if (respone.Status)
+                    {
+                        return WebResponseContent.Instance.OK();
+                    }
+                    else
+                    {
+                        return WebResponseContent.Instance.Error($"涓嬪彂鍑哄簱澶辫触锛屽師鍥狅細{respone.Message}锛�");
+                    }
+                }
+                else
+                {
+                    return WebResponseContent.Instance.Error("浠诲姟涓嬪彂澶辫触锛�");
+                }
             }
             catch (Exception ex)
             {
                 return WebResponseContent.Instance.Error(ex.Message);
             }
         }
+        
+
+
+        /// <summary>
+        /// 鍒ゆ柇宸烽亾鍐呯Щ搴�
+        /// </summary>
+        /// <param name="TaskNum"></param>
+        /// <param name="SourceAddress"></param>
+        /// <returns></returns>
+        public WebResponseContent IsRelocations(int TaskNum)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                List<Dt_LocationInfo> loca = new List<Dt_LocationInfo>();
+
+                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == TaskNum);
+                if (task == null) return content.Error($"鏈壘鍒拌浠诲姟淇℃伅锛屼换鍔″彿锛歿TaskNum}");
+                string Locatask = task.SourceAddress;
+
+                //鑾峰彇鍒版繁搴撲綅缂栧彿
+                Dt_LocationInfo DeepLocation = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == Locatask);
+                if(DeepLocation == null) return content.Error($"鏈壘鍒拌璐т綅淇℃伅,璐т綅缂栧彿:{Locatask}");
+
+                //杩涜鑾峰彇娴呭簱浣嶇紪鍙�
+                int locrow = DeepLocation.Row == 1 ? 2 : 3;
+                Dt_LocationInfo ShallowLocation = _basicService.LocationInfoService.Repository.QueryFirst(x =>x.Row== locrow && x.Layer== DeepLocation.Layer && x.Column== DeepLocation.Column && x.RoadwayNo== DeepLocation.RoadwayNo);
+                if (ShallowLocation == null) return content.Error($"鏈壘鍒拌揣浣嶇紪鍙�:{Locatask}鐨勬祬璐т綅");
+
+                if (ShallowLocation.LocationStatus == (int)LocationStatusEnum.Free)
+                {
+                    return content.OK(data: task);  //鐩存帴杩斿洖褰撳墠鏌ヨ鐨勪换鍔�
+                }
+
+
+                //濡傛灉鏈夎揣锛屽垯鐢熸垚绉诲簱浠诲姟
+                if (ShallowLocation.LocationStatus == (int)LocationStatusEnum.InStock)
+                {
+                    Dt_StockInfo dt_Stock = _stockRepository.QueryFirst(x => x.LocationCode == ShallowLocation.LocationCode);
+                    if (dt_Stock == null) return content.Error($"璐т綅缂栧彿:{Locatask}鐨勬祬璐т綅搴撳瓨寮傚父锛岃妫�鏌ワ紒锛侊紒");
+
+                    Dt_Task _Task = BaseDal.QueryFirst(x => x.SourceAddress == ShallowLocation.LocationCode || x.TargetAddress == ShallowLocation.LocationCode);
+                    if (_Task != null) return content.Error($"璐т綅缂栧彿:{Locatask}鐨勬祬璐т綅搴撳凡鏈変换鍔★紝涓嶅彲杩涜绉诲簱");
+
+                    //杩涜鑾峰彇鏂扮殑搴撲綅
+                    Dt_LocationInfo? Nextlocation = _basicService.LocationInfoService.GetLocation(DeepLocation.RoadwayNo);//鑾峰彇鍒版柊搴撲綅
+                    if (Nextlocation == null)
+                    {
+                        return content.Error($"璐т綅鍒嗛厤澶辫触,鏈壘鍒板彲鍒嗛厤璐т綅");
+                    }
+                    ShallowLocation.LocationStatus = (int)LocationStatusEnum.Lock;
+                    Nextlocation.LocationStatus = (int)LocationStatusEnum.Lock;
+                    loca.Add(ShallowLocation);
+                    loca.Add(Nextlocation);
+
+                    _unitOfWorkManage.BeginTran();
+                    //鐢熸垚绉诲姩浠诲姟
+                    Dt_Task dt_Task = new()
+                    {
+                        PalletCode = dt_Stock.PalletCode,
+                        TaskNum = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
+                        Roadway = Nextlocation.RoadwayNo,
+                        TaskType = TaskRelocationTypeEnum.Relocation.ObjToInt(),
+                        TaskStatus = TaskRelocationStatusEnum.RelocationNew.ObjToInt(),
+                        SourceAddress = ShallowLocation.LocationCode,
+                        TargetAddress = Nextlocation.LocationCode,
+                        CurrentAddress = ShallowLocation.LocationCode,
+                        NextAddress = Nextlocation.LocationCode,
+                        Grade = 1,
+                        Creater = "WMS",
+                        Depth = ShallowLocation.Depth,
+                        CreateDate = DateTime.Now,
+                    };
+
+                    _locationInfoRepository.AddData(loca);
+                    BaseDal.AddData(dt_Task);   //鏂板浠诲姟
+                    _unitOfWorkManage.CommitTran();
+
+                    return content.OK(data: dt_Task);
+                }
+                else
+                {
+                    return content.Error($"璐т綅缂栧彿:{Locatask}鐨勬祬璐т綅鐘舵�佸紓甯革紝娴呰揣浣嶇紪鍙凤細{ShallowLocation.LocationCode}");
+                }
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                throw;
+            }
+        }
+
+        /// <summary>
+        /// 浠诲姟瀹屾垚
+        /// </summary>
+        /// <param name="taskNum">浠诲姟缂栧彿</param>
+        /// <param name="HowWorks">妯″紡锛�1锛氳嚜鍔紝2锛氭墜鍔級</param>
+        /// <returns></returns>
+        public WebResponseContent TaskCompleted(int taskNum)
+        {
+            WebResponseContent content = new WebResponseContent();
+
+            Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
+            if (task == null) return WebResponseContent.Instance.Error("鏈壘鍒颁换鍔′俊鎭�");
+            switch (task.TaskType)
+            {
+                case (int)TaskRelocationTypeEnum.Relocation:
+                    return RelocationInTaskCompleted(task);
+                case (int)TaskInboundTypeEnum.Inbound:
+                    return InboundTaskCompleted(task);
+                case (int)TaskOutboundTypeEnum.Outbound:
+                    return OutboundTaskCompleted(task);
+                default: return content.Error($"浠诲姟绫诲瀷閿欒锛屼换鍔″彿锛歿task.TaskNum}");
+            }
+        }
+
+        /// <summary>
+        /// 绉诲簱瀹屾垚鏂规硶
+        /// </summary>
+        /// <param name="task"></param>
+        /// <returns></returns>
+        public WebResponseContent RelocationInTaskCompleted(Dt_Task task)
+        {
+            WebResponseContent webResponse = new WebResponseContent();
+            try
+            {
+                Dt_StockInfo stockInfo = _stockRepository.QueryFirst(x => x.PalletCode == task.PalletCode);
+                Dt_LocationInfo locationpoint = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress);
+                Dt_LocationInfo locationEnd = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress);
+                List<Dt_LocationInfo> loca = new List<Dt_LocationInfo>();
+                stockInfo.LocationCode = locationEnd.LocationCode;
+                stockInfo.StockStatus = StockStatusEmun.宸插叆搴�.ObjToInt();
+                locationpoint.LocationStatus = LocationStatusEnum.Free.ObjToInt();
+                locationEnd.LocationStatus = LocationStatusEnum.InStock.ObjToInt();
+                loca.Add(locationpoint);
+                loca.Add(locationEnd);
+
+                _unitOfWorkManage.BeginTran();
+                _stockRepository.UpdateData(stockInfo);
+                _basicService.LocationInfoService.Repository.UpdateData(loca);
+                BaseDal.DeleteData(task);
+                BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
+
+                WebResponseContent content=MES_TransferCompletionFeedback(task);
+                if (!content.Status)
+                {
+                    _unitOfWorkManage.RollbackTran();
+                    return content;
+                }
+                    
+                _unitOfWorkManage.CommitTran();
+                return webResponse.OK();
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                return webResponse.Error($"绉诲簱浠诲姟瀹屾垚澶辫触锛屼换鍔d锛歿task.TaskNum}");
+                throw;
+            }
+            
+        }
+
+        /// <summary>
+        /// 鍏ュ簱浠诲姟瀹屾垚
+        /// </summary>
+        /// <param name="tasknum"></param>
+        /// <returns></returns>
+        public WebResponseContent InboundTaskCompleted(Dt_Task task)
+        {
+            try
+            {
+                Dt_Warehouse warehouse = _warehouseRepository.QueryFirst(x => x.WarehouseId == task.WarehouseId);
+                Dt_StockInfo stockInfo = _stockRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == task.PalletCode && x.WarehouseId == task.WarehouseId).First();
+                if (stockInfo == null)
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒版墭鐩樺搴旂殑缁勭洏淇℃伅");
+                }
+                //if (!string.IsNullOrEmpty(stockInfo.LocationCode))
+                //{
+                //    return WebResponseContent.Instance.Error($"璇ユ墭鐩樺凡缁戝畾璐т綅");
+                //}
+                Dt_LocationInfo dt_LocationInfo = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.TargetAddress);
+                if (dt_LocationInfo == null)
+                {
+                    return WebResponseContent.Instance.Error("鏈壘鍒板簱浣�");
+                }
+                dt_LocationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt();
+                stockInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
+
+                _unitOfWorkManage.BeginTran();
+                //淇敼璐т綅鐘舵�佷负鏈夎揣
+                _locationInfoRepository.UpdateData(dt_LocationInfo);
+                //淇敼搴撳瓨鐘舵��
+                _stockRepository.UpdateData(stockInfo);
+                //鍒犻櫎浠诲姟娣诲姞鍘嗗彶
+                BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateTypeEnum.浜哄伐瀹屾垚 : OperateTypeEnum.鑷姩瀹屾垚);
+
+
+                /*WebResponseContent content = TaskCompletionFeedback(task);
+                if (!content.Status)
+                {
+                    _unitOfWorkManage.RollbackTran();
+                    return content;
+                }*/
+
+                _unitOfWorkManage.CommitTran();
+            }
+            catch (Exception)
+            {
+                _unitOfWorkManage.RollbackTran();
+                throw;
+            }
+            return WebResponseContent.Instance.OK();
+        }
+
+        /// <summary>
+        /// 鍑哄簱浠诲姟瀹屾垚
+        /// </summary>
+        /// <param name="task"></param>
+        /// <returns></returns>
+        public WebResponseContent OutboundTaskCompleted(Dt_Task task)
+        {
+            WebResponseContent webResponse = new WebResponseContent();
+            try
+            {
+                Dt_StockInfo stockInfo = _stockRepository.QueryFirst(x => x.PalletCode == task.PalletCode);
+                if (stockInfo == null) return webResponse.Error($"浠诲姟缂栧彿锛歿task.TaskNum},鏈壘鍒版墭鐩橈細{stockInfo.PalletCode}鐨勫簱瀛樹俊鎭�");
+                Dt_LocationInfo locationInfo = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.SourceAddress);
+                if (locationInfo == null) return webResponse.Error($"浠诲姟缂栧彿锛歿task.TaskNum},鏈壘鍒版墭鐩橈細{stockInfo.PalletCode}鐨勮揣浣嶄俊鎭�");
+
+
+                stockInfo.StockStatus = StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt();
+                
+                int beforeStatus = locationInfo.LocationStatus;
+                locationInfo.LocationStatus =(int)LocationStatusEnum.Free;
+                task.TaskStatus = TaskOutStatusEnum.OutFinish.ObjToInt();
+
+                _unitOfWorkManage.BeginTran();
+
+                _stockRepository.DeleteData(stockInfo);
+                _locationInfoRepository.UpdateData(locationInfo);   //淇敼鎴愮┖璐т綅
+
+                BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
+                _locationStatusChangeRecordService.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt(), "1", task.TaskNum);
+                /*WebResponseContent content = TaskCompletionFeedback(task);
+                if (!content.Status)
+                {
+                    _unitOfWorkManage.RollbackTran();
+                    return content;
+                }*/
+
+                _unitOfWorkManage.CommitTran();
+                return webResponse.OK();
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                return webResponse.Error($"鍑哄簱浠诲姟瀹屾垚澶辫触锛屼换鍔d锛歿task.TaskNum},閿欒鍘熷洜锛歿ex.Message}");
+                throw;
+            }
+            
+        }
+
+
+
+
+
+
+
+        //==============================================绉诲簱瀹屾垚鍙嶉鎺ュ彛====================================================
+        /// <summary>
+        /// 涓婁紶绉诲簱浠诲姟瀹屾垚缁橫ES
+        /// </summary>
+        /// <param name="dt_Task"></param>
+        /// <returns></returns>
+        public WebResponseContent MES_TransferCompletionFeedback(Dt_Task dt_Task)
+        {
+            WebResponseContent webResponse = new WebResponseContent();
+
+            try
+            {
+                TransferRequest transferRequest = new TransferRequest()
+                {
+                    //涓氬姟id锛屼换鍔d鍚庣画杩涜鏇存敼
+                    businessId = "1",
+                    TaskId = "1",
+                    SourceLocationCode = dt_Task.SourceAddress,
+                    LocationCode = dt_Task.TargetAddress,
+                    PalletCode = dt_Task.PalletCode,
+                    Status = "FINISH",
+                    ErrorStatus = "NORMAL",
+                    ErrorInfo = "",
+                };
+
+                //鑾峰彇鎺ュ彛杩涜璋冨彇
+                var ConfigsAPIInfo = _dt_ApiInfoService.GetConfigsByAPIInfo(CateGoryConst.CONFIG_MES_IPAddress, SysConfigConst.MESTransferCompletionFeedback);      //鑾峰彇鍒皐cs鍏ㄩ儴绫诲瀷鐨勬帴鍙�
+                string WCSReceiveTaskAPI = ConfigsAPIInfo.ApiAddress + ConfigsAPIInfo.ApiName;
+                if (WCSReceiveTaskAPI == null)
+                {
+                    return webResponse.Error($"鍑哄簱澶辫触锛屾湭閰嶇疆MES绉诲簱瀹屾垚鍙嶉鎺ュ彛");
+                }
+                var respon = HttpHelper.Post(WCSReceiveTaskAPI, JsonConvert.SerializeObject(transferRequest));
+                if (respon != null)
+                {
+                    var response = JsonConvert.DeserializeObject<ApiResponse<object>>(respon);
+                    if (response.Success)
+                    {
+                        return webResponse.OK();
+                    }
+                    else
+                    {
+                        return webResponse.Error($"璋冨彇鎺ュ彛澶辫触锛屽弽棣堝弬鏁板師鍥狅細{response.Message}");
+                    }
+                }
+                else
+                {
+                    return webResponse.Error($"璋冨彇鎺ュ彛澶辫触锛屽弽棣堝弬鏁颁负绌�");
+                }
+            }
+            catch (Exception ex)
+            {
+                return webResponse.Error($"绉诲簱浠诲姟涓婁紶澶辫触锛佸師鍥狅細{ex.Message}");
+                throw;
+            }
+        }
+
+
+        /// <summary>
+        /// 涓婁紶鍑哄叆搴撲换鍔″畬鎴愮粰MES
+        /// </summary>
+        /// <param name="dt_Task"></param>
+        /// <returns></returns>
+        public WebResponseContent TaskCompletionFeedback(Dt_Task dt_Task)
+        {
+            WebResponseContent webResponse = new WebResponseContent();
+
+            try
+            {
+                TaskNotification transferRequest = new TaskNotification()
+                {
+                    //涓氬姟id锛屼换鍔d鍚庣画杩涜鏇存敼
+                    TaskId = "1",   //浠诲姟id
+                    BusinessId = "1",   //涓氬姟id
+                    PalletCode = dt_Task.PalletCode,
+                    SubPalletCode = "",//瀛愭墭鐩樼紪鐮�
+                    LocationCode = dt_Task.SourceAddress,
+                    ErrorStatus = "NORMAL",
+                    ErrorInfo = "",
+                };
+
+                //鑾峰彇鎺ュ彛杩涜璋冨彇
+                var ConfigsAPIInfo = _dt_ApiInfoService.GetConfigsByAPIInfo(CateGoryConst.CONFIG_MES_IPAddress, SysConfigConst.MESTaskFeedback);      //鑾峰彇鍒皐cs鍏ㄩ儴绫诲瀷鐨勬帴鍙�
+                string WCSReceiveTaskAPI = ConfigsAPIInfo.ApiAddress + ConfigsAPIInfo.ApiName;
+                if (WCSReceiveTaskAPI == null)
+                {
+                    return webResponse.Error($"浠诲姟鍙嶉MES澶辫触锛屾湭閰嶇疆MES浠诲姟瀹屾垚鍙嶉鎺ュ彛");
+                }
+                var respon = HttpHelper.Post(WCSReceiveTaskAPI, JsonConvert.SerializeObject(transferRequest));
+                if (respon != null)
+                {
+                    var response = JsonConvert.DeserializeObject<ApiResponse<object>>(respon);
+                    if (response.Success)
+                    {
+                        return webResponse.OK();
+                    }
+                    else
+                    {
+                        return webResponse.Error($"璋冨彇鎺ュ彛澶辫触锛屽弽棣堝弬鏁板師鍥狅細{response.Message}");
+                    }
+                }
+                else
+                {
+                    return webResponse.Error($"璋冨彇鎺ュ彛澶辫触锛屽弽棣堝弬鏁颁负绌�");
+                }
+            }
+            catch (Exception ex)
+            {
+                return webResponse.Error($"浠诲姟浠诲姟涓婁紶澶辫触锛佸師鍥狅細{ex.Message}");
+                throw;
+            }
+        }
+
+        public ApiResponse<object> MESresponse(string Message, bool Success)
+        {
+            ApiResponse<object> apiResponse = new ApiResponse<object>();
+            apiResponse.Message = Message;
+            apiResponse.Success = Success;
+            apiResponse.Code = 1;
+            return apiResponse;
+        }
+
+
+
+
+        /// <summary>
+        /// 鍒涘缓璐т綅
+        /// </summary>
+        /// <param name="locationInfo"></param>
+        /// <returns></returns>
+        /// <exception cref="NotImplementedException"></exception>
+        public ApiResponse<object> createLocation(List<LocationInfoDto> locationInfo)
+        {
+            List<Dt_LocationInfo> dt_LocationInfoList = new List<Dt_LocationInfo>();
+            foreach (var item in locationInfo)
+            {
+                Dt_LocationInfo dt_LocationInfo = new Dt_LocationInfo()
+                {
+                    LocationCode = item.locationCode,
+                    LocationName = item.locationName,
+                    RoadwayNo = item.roadwayNo,
+                    Row = item.row,
+                    Column = item.column,
+                    Layer = item.layer,
+                    Depth = (int)item.depth,
+                    LocationType = item.locationType,
+                    LocationStatus = item.locationStatus,
+                    EnableStatus = item.enableStatus == true ? 1 : 0,
+                    Remark = item.remark,
+                    CreateDate = DateTime.Now,
+                    Creater = App.User.UserName,
+                };
+                dt_LocationInfoList.Add(dt_LocationInfo);
+            }
+            int res = _locationInfoRepository.AddData(dt_LocationInfoList);
+            if (res <= 0)
+            {
+                return MESresponse($"鍒涘缓璐т綅澶辫触",false);
+            }
+            return MESresponse($"", true);
+        }
+
+        /// <summary>
+        /// 淇敼璐т綅
+        /// </summary>
+        /// <param name="locationInfo"></param>
+        /// <returns></returns>
+        /// <exception cref="NotImplementedException"></exception>
+        public ApiResponse<object> updateLocation(LocationInfoDto locationInfo)
+        {
+            Dt_LocationInfo dt_LocationInfo = new Dt_LocationInfo()
+            {
+                LocationCode = locationInfo.locationCode,
+                LocationName = locationInfo.locationName,
+                RoadwayNo = locationInfo.roadwayNo,
+                Row = locationInfo.row,
+                Column = locationInfo.column,
+                Layer = locationInfo.layer,
+                Depth = (int)locationInfo.depth,
+                LocationType = locationInfo.locationType,
+                LocationStatus = locationInfo.locationStatus,
+                EnableStatus = locationInfo.enableStatus == true ? 1 : 0,
+                Remark = locationInfo.remark,
+                CreateDate = DateTime.Now,
+            };
+            bool res = _locationInfoRepository.Db.Updateable(dt_LocationInfo)
+    .Where(x => x.LocationCode == dt_LocationInfo.LocationCode)
+    .ExecuteCommand() > 0;
+            if (!res)
+            {
+                return MESresponse($"淇敼璐т綅澶辫触",false);
+            }
+            return MESresponse($"", true);
+        }
+
+        /// <summary>
+        /// 鍒犻櫎璐т綅
+        /// </summary>
+        /// <param name="locationCode"></param>
+        /// <returns></returns>
+        /// <exception cref="NotImplementedException"></exception>
+        public ApiResponse<object> deleteLocation(List<string> locationCode)
+        {
+            WebResponseContent webResponseContent = new WebResponseContent();
+            int res = _locationInfoRepository.Db.Deleteable<Dt_LocationInfo>().Where(x => locationCode.Contains(x.LocationCode)).ExecuteCommand();
+            if (res <= 0)
+            {
+                return MESresponse($"鍒犻櫎璐т綅澶辫触",false);
+            }
+            return MESresponse($"", true);
+        }
     }
 }

--
Gitblit v1.9.3