From 9a0acba23c5b5095be2a89b8ca190fe5202c2ea6 Mon Sep 17 00:00:00 2001
From: duyongjia <adu_555@163.com>
Date: 星期日, 29 十二月 2024 15:58:45 +0800
Subject: [PATCH] 最新修改

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs |  337 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 314 insertions(+), 23 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 afa50f2..a57d982 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"
@@ -31,6 +31,7 @@
 using System.Reflection.Metadata;
 using System.Text;
 using System.Threading.Tasks;
+using WIDESEA_BasicRepository;
 using WIDESEA_Core;
 using WIDESEA_Core.BaseRepository;
 using WIDESEA_Core.BaseServices;
@@ -41,16 +42,21 @@
 using WIDESEA_DTO.Stock;
 using WIDESEA_IBasicRepository;
 using WIDESEA_IBasicService;
+using WIDESEA_IInboundRepository;
 using WIDESEA_IInboundService;
 using WIDESEA_IOutboundRepository;
 using WIDESEA_IOutboundService;
 using WIDESEA_IRecordService;
 using WIDESEA_IStockRepository;
 using WIDESEA_IStockService;
+using WIDESEA_ISystemService;
 using WIDESEA_ITaskInfoRepository;
 using WIDESEA_ITaskInfoService;
+using WIDESEA_Model;
 using WIDESEA_Model.Models;
+using WIDESEA_Model.Models.Inbound;
 using WIDESEA_TaskInfoRepository;
+using OrderByType = SqlSugar.OrderByType;
 
 namespace WIDESEA_TaskInfoService
 {
@@ -66,10 +72,27 @@
         private readonly IStockService _stockService;
         private readonly ITask_HtyService _taskHtyService;
         private readonly ILocationInfoService _locationInfoService;
-
+        private readonly ISys_JobService _sys_JobService;
+        private readonly ILabelMasterRepository _labelMasterRepository;
+        private readonly IOutStockLockInfoRepository _outStockLockInfoRepository;
+        private readonly IOutboundOrderRepository _outboundOrderRepository;
+        private readonly IOutboundOrderDetailRepository _outboundOrderDetailRepository;
+        private readonly IOutboundOrder_HtyRepository _outboundOrder_HtyRepository;
+        private readonly IOutboundOrderDetail_HtyRepository _outboundOrderDetail_HtyRepository;
+        private readonly IOutBoundOrderBYDRepository _outBoundOrderBYDRepository;
+        private readonly IOutboundOrderDetailBYDRepository _outboundOrderDetailByDRepository;
+        private readonly IMainReturnInventoryRepository _mainReturnInventoryRepository;
+        private readonly IReturnInventoryDetailRepository _returnInventoryDetailRepository;
         public ITaskRepository Repository => BaseDal;
 
-        public TaskService(ITaskRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IBasicService basicService, IOutboundService outboundService, IInboundService inboundService, IRecordService recordService, IStockService stockService, ITask_HtyService taskHtyService, ILocationInfoService locationInfoService) : base(BaseDal)
+        private Dictionary<string, OrderByType> _OutLockOrderBy = new Dictionary<string, OrderByType>()
+        {
+         
+            { nameof(Dt_OutStockLockInfo.CreateDate), OrderByType.Desc },
+
+        };
+
+        public TaskService(ITaskRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IBasicService basicService, IOutboundService outboundService, IInboundService inboundService, IRecordService recordService, IStockService stockService, ITask_HtyService taskHtyService, ILocationInfoService locationInfoService, ISys_JobService sys_JobService, ILabelMasterRepository labelMasterRepository, IOutStockLockInfoRepository outStockLockInfoRepository, IOutboundOrderDetailRepository outboundOrderDetailRepository, IOutBoundOrderBYDRepository outBoundOrderBYDRepository, IOutboundOrderDetailBYDRepository outboundOrderDetailByDRepository, IOutboundOrderRepository outboundOrderRepository, IOutboundOrder_HtyRepository outboundOrder_HtyRepository, IOutboundOrderDetail_HtyRepository outboundOrderDetail_HtyRepository, IReturnInventoryDetailRepository returnInventoryDetailRepository,IMainReturnInventoryRepository mainReturnInventoryRepository) : base(BaseDal)
         {
             _mapper = mapper;
             _unitOfWorkManage = unitOfWorkManage;
@@ -80,7 +103,20 @@
             _stockService = stockService;
             _taskHtyService = taskHtyService;
             _locationInfoService = locationInfoService;
+            _sys_JobService = sys_JobService;
+            _labelMasterRepository = labelMasterRepository;
+            _outStockLockInfoRepository = outStockLockInfoRepository;
+            _outboundOrderDetailRepository = outboundOrderDetailRepository;
+            _outBoundOrderBYDRepository = outBoundOrderBYDRepository;
+            _outboundOrderDetailByDRepository = outboundOrderDetailByDRepository;
+            _outboundOrderRepository = outboundOrderRepository;
+            _outboundOrder_HtyRepository = outboundOrder_HtyRepository;
+            _outboundOrderDetail_HtyRepository = outboundOrderDetail_HtyRepository;
+            _returnInventoryDetailRepository = returnInventoryDetailRepository;
+            _mainReturnInventoryRepository = mainReturnInventoryRepository;
+            
         }
+
 
         /// <summary>
         /// 浠诲姟瀹屾垚
@@ -189,21 +225,44 @@
                 {
                     return WebResponseContent.Instance.Error("鏈壘鍒颁换鍔′俊鎭�");
                 }
-                if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletOutbound.ObjToInt())
+                if (task.TaskStatus == 100 || task.TaskStatus == 200)//濡傛灉鏄柊寤轰换鍔$姸鎬佹敼涓烘墽琛屼腑
                 {
-                    task.TaskStatus = OutTaskStatusEnum.SC_OutExecuting.ObjToInt();
-                }
-                else if (task.TaskType == TaskTypeEnum.Inbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletInbound.ObjToInt())
-                {
-                    task.TaskStatus = InTaskStatusEnum.SC_InExecuting.ObjToInt();
-                }
-                else if (task.TaskType == TaskTypeEnum.Relocation.ObjToInt())
-                {
-                    task.TaskStatus = InTaskStatusEnum.RelocationExecuting.ObjToInt();
+                    if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletOutbound.ObjToInt())
+                    {
+                        task.TaskStatus = OutTaskStatusEnum.SC_OutExecuting.ObjToInt();
+                    }
+                    else if (task.TaskType == TaskTypeEnum.Inbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletInbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletReturnInbound.ObjToInt())
+                    {
+                        task.TaskStatus = InTaskStatusEnum.SC_InExecuting.ObjToInt();
+                    }
+                    //else if (task.TaskType == TaskTypeEnum.Relocation.ObjToInt())
+                    //{
+                    //    task.TaskStatus = InTaskStatusEnum.RelocationExecuting.ObjToInt();
+                    //}
+                    else
+                    {
+                        throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�");
+                    }
                 }
                 else
                 {
-                    throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�");
+                    if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletOutbound.ObjToInt())
+                    {
+                        task.TaskStatus = OutTaskStatusEnum.SC_OutFinish.ObjToInt();
+                    }
+                    else if (task.TaskType == TaskTypeEnum.Inbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletInbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletReturnInbound.ObjToInt())
+                    {
+                        task.TaskStatus = InTaskStatusEnum.SC_InFinish.ObjToInt();
+                    }
+                    //else if (task.TaskType == TaskTypeEnum.Relocation.ObjToInt())
+                    //{
+                    //    task.TaskStatus = InTaskStatusEnum.RelocationExecuting.ObjToInt();
+                    //}
+                    else
+                    {
+                        throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�");
+                    }
+
                 }
                 _unitOfWorkManage.BeginTran();
                 task.Dispatchertime = DateTime.Now;
@@ -223,13 +282,11 @@
         {
             try
             {
+                
                 _unitOfWorkManage.BeginTran();
                 decimal beforeQuantity = 0;
-
-                Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode);
-
                 Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress);
-
+                Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode);
                 CheckCompleted(stockInfo, locationInfo);
 
                 stockInfo.LocationCode = locationInfo.LocationCode;
@@ -250,15 +307,85 @@
                 _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Inbound.ObjToInt(), stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum);
                 _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfo.Details, beforeQuantity, stockInfo.Details.Sum(x => x.StockQuantity) + beforeQuantity, StockChangeType.Inbound,task.TaskNum);
                 _unitOfWorkManage.CommitTran();
-                return WebResponseContent.Instance.OK();
+
+             
             }
             catch (Exception ex)
             {
                 _unitOfWorkManage.RollbackTran();
                 return WebResponseContent.Instance.Error(ex.Message);
             }
-            
+
+            //鍘熸枡鍏ュ簱瀹屾垚鍚庯紝闇�瑕佸皢缁勭洏淇℃伅璋冪敤涓婃父WMS鍘熸枡涓婃灦缁撴灉鎺ュ彛
+            #region 鍥炰紶閫昏緫澶勭悊
+            try
+            {
+                PutAwayRequest request = new PutAwayRequest();
+                List<PutAway> itemData = new List<PutAway>();
+                request.ITEMDATA = itemData;
+                request.WERKS = AppSettings.Configuration["WERKS"];
+                request.WH_NUMBER = AppSettings.Configuration["WERKS"];
+                request.IZLID = request.WERKS + request.WH_NUMBER+ DateTime.Now.ToString("yyyyMMdd") + task.TaskNum.ToString();
+                request.CREATE_DATE = task.CreateDate.ToString("yyyy-MM-dd HH:mm:ss");
+                request.PSTNG_DATE = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+                request.INBOUND_NO = "";//todo:鍗曞彿瑕佷粠鏉$爜涓绘暟鎹腑鑾峰彇锛屼笉鐒跺洖浼犱細鎻愮ず锛氳鏉$爜鏃犺繘浠撳崟鏁版嵁锛�
+                request.RECEIPT_NO = "";//todo:鍗曞彿瑕佷粠鏉$爜涓绘暟鎹腑锛屼笉鐒跺洖浼犱細鎻愮ず锛氳鏉$爜鏃犺繘浠撳崟鏁版嵁锛�
+                Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode);
+                foreach (Dt_StockInfoDetail detail in stockInfo.Details)
+                {
+                    Dt_LabelMaster labMaster = _labelMasterRepository.QueryFirst(x => x.LABEL_NO == detail.SerialNumber);
+                    if (labMaster != null)
+                    {
+                        if (request.INBOUND_NO == "")
+                        {
+                            request.INBOUND_NO = labMaster.INBOUND_NO;
+                        }
+                        if (request.RECEIPT_NO == "")
+                        {
+                            request.RECEIPT_NO = labMaster.RECEIPT_NO;
+                        }
+                        PutAway putAway = new PutAway();
+                        putAway.MATNR = labMaster.MATNR;
+                        putAway.BATCH = labMaster.BATCH;
+                        putAway.LIFNR = labMaster.LIFNR;
+                        putAway.LIKTX = labMaster.LIKTX;
+                        putAway.RECEIPT_QTY = labMaster.BOX_QTY;
+                        putAway.UNIT = labMaster.UNIT;
+                        putAway.LABEL_NO = labMaster.LABEL_NO;
+                        putAway.PACK_LABEL_NO = labMaster.Pack_LABEL_No;
+                        putAway.PALLET_LABEL_NO = labMaster.Pallet_label_no;
+                        putAway.TPNUM = task.PalletCode;
+                        putAway.FLAG = "0";
+                        putAway.TKTXT = "";
+                        putAway.PO_NO = labMaster.PO_NO;
+                        putAway.PO_ITEM_NO = labMaster.PO_ITEM_NO;
+                        putAway.SOBKZ = labMaster.SOBKZ;
+                        putAway.RECEIPT_ITEM_NO = labMaster.RECEIPT_ITEM_NO;
+                        putAway.INBOUND_NO = task.TaskNum.ToString();
+                        //LABEL _STATUS 鏉$爜鐘舵��  02宸叉敹鏂�(鏃犻渶璐ㄦ)03 寰呰繘浠�(宸茶川妫�)锛屽苟涓旓紝QC RESULT CODE璐ㄦ鐘舵�佷负鈥�02鈥� 鎵嶅厑璁′笂鏋�
+                        if (labMaster.QC_RESULT_CODE=="02"&&(labMaster.LABEL_STATUS=="02"|| labMaster.LABEL_STATUS == "03"))
+                        {
+                            itemData.Add(putAway);
+                        }
+                       
+                    }
+                }
+                if (itemData.Count > 0)
+                {
+                    _sys_JobService.CallPutAway(request);
+                }
+            }
+            catch(Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+            #endregion
+            return WebResponseContent.Instance.OK();
+
         }
+
+
+
 
         /// <summary>
         /// 绌烘墭鐩樺叆搴撳畬鎴愬鐞�
@@ -305,6 +432,106 @@
             }
         }
 
+
+
+        /// <summary>
+        /// 浣欐枡閫�搴撳畬鎴愬鐞�
+        /// </summary>
+        /// <param name="task">浠诲姟瀹炰綋瀵硅薄</param>
+        /// <returns>杩斿洖澶勭悊缁撴灉</returns>
+        public WebResponseContent PalletReturnInboundTaskCompleted(Dt_Task task)
+        {
+            try
+            {
+
+                _unitOfWorkManage.BeginTran();
+                decimal beforeQuantity = 0;
+                Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress);
+                Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode);
+                CheckCompleted(stockInfo, locationInfo);
+
+                stockInfo.LocationCode = locationInfo.LocationCode;
+                stockInfo.StockStatus = StockStatusEmun.宸插叆搴�.ObjToInt();
+                _stockService.StockInfoService.Repository.UpdateData(stockInfo);
+
+                beforeQuantity = stockInfo.Details.Where(x => x.Id != 0).Sum(x => x.StockQuantity);
+
+                int beforeStatus = locationInfo.LocationStatus;
+                locationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt();
+                _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Inbound.ObjToInt(), false);
+
+                _basicService.LocationInfoService.Repository.UpdateData(locationInfo);
+                task.TaskStatus = InTaskStatusEnum.InFinish.ObjToInt();
+
+                BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
+
+                _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Inbound.ObjToInt(), stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum);
+                _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfo.Details, beforeQuantity, stockInfo.Details.Sum(x => x.StockQuantity) + beforeQuantity, StockChangeType.Inbound, task.TaskNum);
+                _unitOfWorkManage.CommitTran();
+
+
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+
+            //浣欐枡鍏ュ簱瀹屾垚鍚庯紝闇�瑕佸皢缁勭洏淇℃伅璋冪敤涓婃父WMS浣欐枡閫�鍥炵粨鏋滄帴鍙�
+            #region 鍥炰紶閫昏緫澶勭悊
+            try
+            {
+                PutAwayReturnRequest request = new PutAwayReturnRequest();
+                List<PutAwayReturn> DATA = new List<PutAwayReturn>();
+                request.DATA = DATA;
+                request.WERKS = AppSettings.Configuration["WERKS"];
+                request.WH_NUMBER = AppSettings.Configuration["SYSNO"];
+                request.IZLID = task.OrderNo;//杩欎釜鍊间細鍦ㄦ帴鏀朵笂娓稿洖搴撶粍鐩樹俊鎭椂锛屽瓨鍦ㄥ簱瀛樿〃涓紝鍐嶅瓨鍒颁换鍔¤〃涓�
+                Dt_MainReturnInventory mainReturnInventory = _mainReturnInventoryRepository.QueryFirst(x => x.IZLID == task.OrderNo);
+                if (mainReturnInventory != null)
+                {
+                    request.RETURN_NO = mainReturnInventory.RETURN_NO;
+                    request.RETURN_ITEM_NO = mainReturnInventory.RETURN_ITEM_NO;
+                    request.BUSINESS_NAME = mainReturnInventory.BUSINESS_NAME;
+                    request.BUSINESS_CODE = mainReturnInventory.BUSINESS_CODE;
+                    request.TPNUM = mainReturnInventory.TPNUM;
+                    request.LGORT = mainReturnInventory.LGORT;
+                    request.MO_NO = mainReturnInventory.MO_NO;
+
+                    Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode);
+                    foreach (Dt_StockInfoDetail detail in stockInfo.Details)
+                    {
+                        Dt_ReturnInventoryDetail dt_ReturnInventoryDetail = _returnInventoryDetailRepository.QueryFirst(x => x.LABEL_NO == detail.SerialNumber);
+                        if (dt_ReturnInventoryDetail != null)
+                        {
+                            PutAwayReturn putAwayReturn = new PutAwayReturn();
+                            putAwayReturn.LABEL_NO = dt_ReturnInventoryDetail.LABEL_NO;
+                            putAwayReturn.SOBKZ = dt_ReturnInventoryDetail.SOBKZ;
+                            putAwayReturn.UNIT = dt_ReturnInventoryDetail.UNIT;
+                            putAwayReturn.LGORT = dt_ReturnInventoryDetail.LGORT;
+                            putAwayReturn.TOTAL_RETURN_QTY = dt_ReturnInventoryDetail.QTY;
+                            putAwayReturn.F_LGORT = dt_ReturnInventoryDetail.F_LGORT;
+                            putAwayReturn.MO_NO = mainReturnInventory.MO_NO;
+                            putAwayReturn.LIFNR = dt_ReturnInventoryDetail.LIFNR;
+                            putAwayReturn.MATNR = dt_ReturnInventoryDetail.MATNR;
+                            putAwayReturn.BATCH = "";
+                            DATA.Add(putAwayReturn);
+                        }
+                    }
+                    if(DATA.Count>0)
+                    {
+                        _sys_JobService.CallPutAwayReturn(request);//浣欐枡閫�搴撳洖浼�
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+            #endregion
+            return WebResponseContent.Instance.OK();
+        }
+
         /// <summary>
         /// 楠岃瘉鏁版嵁
         /// </summary>
@@ -333,11 +560,15 @@
 
         public WebResponseContent OutboundTaskCompleted(Dt_Task task)
         {
+            Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode);
+            Dt_StockInfo stockInfoCatch = stockInfo;//鍏堢紦瀛樿捣鏉ワ紝渚涘悗闈㈢殑鍥炰紶鎺ュ彛璋冪敤
             try
             {
                 _unitOfWorkManage.BeginTran();
                 decimal beforeQuantity = 0;
-                Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode);
+              
+                //Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode);
+                //Dt_StockInfo stockInfoCatch = stockInfo;//鍏堢紦瀛樿捣鏉ワ紝渚涘悗闈㈢殑鍥炰紶鎺ュ彛璋冪敤
 
                 Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress);
 
@@ -369,15 +600,75 @@
                 _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfo.Details, beforeQuantity, stockInfo.Details.Sum(x => x.StockQuantity) - beforeQuantity, StockChangeType.Outbound, task.TaskNum);
 
                 _unitOfWorkManage.CommitTran();
-                return WebResponseContent.Instance.OK();
-                //return OnOutboundTaskCompleted?.Invoke(task) ?? WebResponseContent.Instance.OK();
-
+               
             }
             catch (Exception ex)
             {
                 _unitOfWorkManage.RollbackTran();
                 return WebResponseContent.Instance.Error(ex.Message);
             }
+
+
+            //鍘熸枡鍑哄簱瀹屾垚鍚庯紝璋冪敤涓婃父绯荤粺WMS鍑哄簱瀹屾垚淇℃伅鎺ュ彛
+            #region 鍥炰紶閫昏緫澶勭悊
+            try
+            {
+                PickAndPostRequest request = new PickAndPostRequest();
+                List<PickAndPost> itemData = new List<PickAndPost>();
+                request.ITEMDATA = itemData;
+                request.WH_NUMBER = AppSettings.Configuration["SYSNO"];
+                request.SYSNOD = AppSettings.Configuration["SYSNO"];
+                request.WERKS = AppSettings.Configuration["CallMaterialID"];
+              
+                Dt_OutboundOrderDetail_Hty detail = _outboundOrderDetail_HtyRepository.QueryFirst(x => x.SourceId.ToString() == task.Remark);// task.Remark瀛橀渶姹傛槑缁咺D
+                if (detail != null)
+                {
+                    Dt_OutboundOrder_Hty outboundOrder = _outboundOrder_HtyRepository.QueryFirst(x => x.SourceId == detail.OrderId);
+                    if (outboundOrder != null)
+                    {
+                        Dt_OutBoundOrderBYD outboundOrderBYD = _outBoundOrderBYDRepository.QueryFirst(x => x.REQUIREMENT_NO == outboundOrder.OrderNo);
+                        if (outboundOrderBYD != null)
+                        {
+
+                            Dt_OutboundOrderDetailBYD outboundOrderDetailBYD = _outboundOrderDetailByDRepository.QueryFirst(x => x.REQUIREMENT_NO == outboundOrderBYD.REQUIREMENT_NO && x.REQUIREMENT_ITEM_NO == detail.Remark);//detail.Remark 瀛橀渶姹傝
+                            //鏍规嵁鎵樼洏鍙锋煡绔嬪簱鐨勬潯鐮佸拰鎵规杩涜鍥炰紶
+                            foreach (var item in stockInfoCatch.Details)
+                            {
+                                PickAndPost pickpost = new PickAndPost();
+                                pickpost.REQUIREMENT_NO = outboundOrderDetailBYD.REQUIREMENT_NO;
+                                pickpost.REQUIREMENT_ITEM_NO = outboundOrderDetailBYD.REQUIREMENT_ITEM_NO;
+                                pickpost.WERKS = outboundOrderBYD.WRKS;
+                                pickpost.SYSNOD = outboundOrderBYD.SYSNOD;
+                                pickpost.MATNR = outboundOrderDetailBYD.MATNR;
+                                pickpost.LIFNR = "";//娌℃湁杩斿洖锛屾殏鏃惰浆绌�
+                                pickpost.QTY = outboundOrderDetailBYD.QTY;
+                                pickpost.BATCH = item.BatchNo;//鍙栫珛搴撳叆搴撳簱瀛樼殑鏉$爜
+                                pickpost.LGORT = outboundOrderBYD.LGORT;
+                                pickpost.BUSINESS_CODE = outboundOrderBYD.BUSINESS_CODE;
+                                pickpost.BUSINESS_NAME = outboundOrderBYD.BUSINESS_NAME;
+                                pickpost.STATION = outboundOrderBYD.STATION;
+                                pickpost.SPLIT = outboundOrderBYD.SPLIT;
+                                pickpost.LABEL_NO = item.SerialNumber;//鍙栫珛搴撳叆搴撳簱瀛樼殑鏉$爜
+                                pickpost.CREATE_DATE = outboundOrderBYD.CREATE_DATE;
+                                pickpost.UPDATE_DATE = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+                                pickpost.STATUS = outboundOrderBYD.STATUS;
+                                itemData.Add(pickpost);
+
+                            }
+                            _sys_JobService.CallPickAndPost(request);//鍥炰紶
+                        }
+
+                    }
+
+                }
+            }
+            catch(Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+          
+            #endregion
+            return WebResponseContent.Instance.OK();
         }
 
         public WebResponseContent PalletOutboundTaskCompleted(Dt_Task task)

--
Gitblit v1.9.3