From 6be2bc8324ca81145830b758c110255d9dfdc00b Mon Sep 17 00:00:00 2001
From: duyongjia <adu_555@163.com>
Date: 星期六, 28 十二月 2024 17:13:44 +0800
Subject: [PATCH] 增加出库单历史 库存历史查询功能

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs |  160 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 149 insertions(+), 11 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 8cb3c4e..eccebd5 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"
@@ -218,21 +218,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;
@@ -354,6 +377,9 @@
 
         }
 
+
+
+
         /// <summary>
         /// 绌烘墭鐩樺叆搴撳畬鎴愬鐞�
         /// </summary>
@@ -399,6 +425,118 @@
             }
         }
 
+
+
+        /// <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
+            //{
+            //    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>
         /// 楠岃瘉鏁版嵁
         /// </summary>

--
Gitblit v1.9.3