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