From 092f6e9efb6e4c2bc401ec134391ab0a25773b47 Mon Sep 17 00:00:00 2001 From: wankeda <Administrator@DESKTOP-HAU3ST3> Date: 星期五, 21 二月 2025 16:41:38 +0800 Subject: [PATCH] PP仓提升机侧输送线流程 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs | 163 ++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 102 insertions(+), 61 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs" index f2a2084..72ba693 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs" @@ -11,7 +11,9 @@ using WIDESEA_Core.BaseRepository; using WIDESEA_Core.BaseServices; using WIDESEA_Core.Helper; +using WIDESEA_DTO; using WIDESEA_DTO.Basic; +using WIDESEA_DTO.ERP; using WIDESEA_External.ERPService; using WIDESEA_External.Model; using WIDESEA_IBasicRepository; @@ -40,7 +42,16 @@ _basicRepository = basicRepository; _invokeERPService = invokeERPService; } - + public override PageGridData<Dt_ReceiveOrder> GetPageData(PageDataOptions options) + { + PageGridData<Dt_ReceiveOrder> pageGridData = base.GetPageData(options); + //foreach (var item in pageGridData.Rows) + //{ + // //鑾峰彇鏀惰揣鏄庣粏 + // item.PurchaseOrderNo + //} + return pageGridData; + } public override WebResponseContent AddData(SaveModel saveModel) { if (saveModel.MainData.ContainsKey(nameof(Dt_ReceiveOrder.ReceiveOrderStatus).FirstLetterToLower())) @@ -79,7 +90,11 @@ return base.AddData(saveModel); } - + /// <summary> + /// 鏀惰揣瀹屾垚骞跺洖浼燛RP + /// </summary> + /// <param name="orderId"></param> + /// <returns></returns> public WebResponseContent FeedbackReceiveOrder(int orderId) { try @@ -88,6 +103,10 @@ if (receiveOrder == null) { return WebResponseContent.Instance.Error($"鏈壘鍒版敹璐у崟"); + } + if (receiveOrder.ReceiveOrderStatus == ReceiveOrderStatusEnum.Completed.ObjToInt()) + { + return WebResponseContent.Instance.Error($"鏀惰揣鍗曞凡瀹屾垚"); } if (receiveOrder.Details == null || receiveOrder.Details.Count == 0) { @@ -112,10 +131,11 @@ PriceInTax = 0, PurchaseOrderCode = item.PurchaseOrderNo, PurchaseOrderSerno = item.PurchaseOrderDetailRowNo, - QtyReceived = item.ReceivedQuantity, + QtyRecieved = item.ReceivedQuantity.ObjToInt(), Serno = item.RowNo, Supplotno = "", - Taxrate = "" + Taxrate = "", + }; recevieOrderDetails.Add(recevieOrderDetail); } @@ -123,23 +143,27 @@ ERPReceiveModel receiveModel = new ERPReceiveModel() { Code = receiveOrder.ReceiveOrderNo, - CompanyId = "", DeliveryCode = receiveOrder.DeliveryCode, CustomerId = receiveOrder.CustomerId, CreatorId = receiveOrder.Creater, - EndDate = receiveOrder.CreateDate, - ReceiveDate = receiveOrder.CreateDate, - PlantsId = "", + EntDate = receiveOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"), + ReceiveDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), SuppliersId = receiveOrder.SuppliersId, - Type = "PO", + Type = Enum.GetName(typeof(ReceiveOrderTypeEnum), receiveOrder.ReceiveOrderType) ?? throw new Exception($"閲囪喘鍗曠被鍨嬮敊璇�"), UniqueTag = receiveOrder.ReceiveOrderId.ToString(), WarehouseCode = warehouse.WarehouseCode, Way = 1, Details = recevieOrderDetails }; - string response = _invokeERPService.InvokeMatReceiveApi(receiveModel); - + //鏇存柊鏀惰揣鍗曚俊鎭� + receiveOrder.ReceiveOrderStatus = ReceiveOrderStatusEnum.Completed.ObjToInt(); + receiveOrder.UploadStatus = WhetherEnum.True.ObjToInt(); + BaseDal.UpdateData(receiveOrder); + //鍒涘缓鍏ュ簱鍗� + CreateInboundOrder(orderId); + //鏀惰揣鎺ㄩ�佽嚦ERP 娴嬭瘯娉ㄩ噴 + _invokeERPService.InvokeMatReceiveApi(receiveModel); return WebResponseContent.Instance.OK(); } catch (Exception ex) @@ -154,15 +178,16 @@ try { int pageNo = saveModel.MainData["pageNo"].ObjToInt(); + int warehouseId = saveModel.MainData["warehouseId"].ObjToInt(); string orderNo = saveModel.MainData["orderNo"].ToString(); List<Dt_ReceiveOrder> dt_ReceiveOrders = new List<Dt_ReceiveOrder>(); if (string.IsNullOrEmpty(orderNo)) { - dt_ReceiveOrders = Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderStatus < ReceiveOrderStatusEnum.Completed.ObjToInt()).ToPageList(pageNo, 5); + dt_ReceiveOrders = Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderStatus < ReceiveOrderStatusEnum.Completed.ObjToInt() && x.WarehouseId == warehouseId).ToPageList(pageNo, 5); } else { - dt_ReceiveOrders = Db.Queryable<Dt_ReceiveOrder>().Where(x => (x.ReceiveOrderNo.Contains(orderNo) || x.SuppliersId.Contains(orderNo)) && x.ReceiveOrderStatus < ReceiveOrderStatusEnum.Completed.ObjToInt()).ToPageList(pageNo, 5); + dt_ReceiveOrders = Db.Queryable<Dt_ReceiveOrder>().Where(x => (x.ReceiveOrderNo.Contains(orderNo) || x.SuppliersId.Contains(orderNo)) && x.ReceiveOrderStatus < ReceiveOrderStatusEnum.Completed.ObjToInt() && x.WarehouseId == warehouseId).ToPageList(pageNo, 5); } content.OK(data: dt_ReceiveOrders); @@ -174,7 +199,11 @@ } return content; } - + /// <summary> + /// 鍒涘缓鍏ュ簱鍗� + /// </summary> + /// <param name="receiveOrderId">鏀惰揣鍗曠紪鍙�</param> + /// <returns></returns> public WebResponseContent CreateInboundOrder(int receiveOrderId) { try @@ -192,17 +221,18 @@ { return WebResponseContent.Instance.Error($"璇ユ敹璐у崟鏈畬鎴�"); } + #region 娉ㄩ噴 + //List<Dt_CheckOrder> checkOrders = _checkOrderRepository.QueryData(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo); + //if (checkOrders.FirstOrDefault(x => x.CheckOrderStatus == CheckOrderStatusEnum.NotCheck.ObjToInt()) != null) + //{ + // return WebResponseContent.Instance.Error($"璇ユ敹璐у崟鏈川妫�瀹屾垚"); + //} - List<Dt_CheckOrder> checkOrders = _checkOrderRepository.QueryData(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo); - if (checkOrders.FirstOrDefault(x => x.CheckOrderStatus == CheckOrderStatusEnum.NotCheck.ObjToInt()) != null) - { - return WebResponseContent.Instance.Error($"璇ユ敹璐у崟鏈川妫�瀹屾垚"); - } - - if (checkOrders.FirstOrDefault(x => x.AuditStatus != AuditStatusEnum.Agree.ObjToInt()) != null) - { - return WebResponseContent.Instance.Error($"璇ユ敹璐у崟璐ㄦ缁撴灉瀹℃壒鏈畬鎴�"); - } + //if (checkOrders.FirstOrDefault(x => x.AuditStatus != AuditStatusEnum.Agree.ObjToInt()) != null) + //{ + // return WebResponseContent.Instance.Error($"璇ユ敹璐у崟璐ㄦ缁撴灉瀹℃壒鏈畬鎴�"); + //} + #endregion Dt_InboundOrder inboundOrder = new Dt_InboundOrder() { @@ -214,22 +244,26 @@ SupplierId = receiveOrder.SuppliersId, Details = new List<Dt_InboundOrderDetail>() }; - + List<Dt_MaterielInfo> materielCodeInfos = _basicRepository.MaterielInfoRepository.QueryData(x => receiveOrder.Details.Select(x => x.MaterielCode).ToList().Contains(x.MaterielCode)); foreach (var item in receiveOrder.Details) { float quantity = item.ReceivedQuantity; - if (item.IfInspection == WhetherEnum.True.ObjToInt()) - { - Dt_CheckOrder? checkOrder = checkOrders.FirstOrDefault(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo && x.ReceiveDetailRowNo == item.RowNo); - if (checkOrder == null) - { - return WebResponseContent.Instance.Error($"璐ㄦ鍗曟暟鎹敊璇�"); - } - quantity = checkOrder.QualifiedQuantity.GetValueOrDefault() + checkOrder.DefectedQuantity.GetValueOrDefault(); - } + #region 娉ㄩ噴 + //if (item.IfInspection == WhetherEnum.True.ObjToInt()) + //{ + // Dt_CheckOrder? checkOrder = checkOrders.FirstOrDefault(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo && x.ReceiveDetailRowNo == item.RowNo); + // if (checkOrder == null) + // { + // return WebResponseContent.Instance.Error($"璐ㄦ鍗曟暟鎹敊璇�"); + // } + // quantity = checkOrder.QualifiedQuantity.GetValueOrDefault() + checkOrder.DefectedQuantity.GetValueOrDefault(); + //} + #endregion Dt_InboundOrderDetail detail = new Dt_InboundOrderDetail() { MaterielCode = item.MaterielCode, + MaterielName = materielCodeInfos.FirstOrDefault(x => x.MaterielCode == item.MaterielCode)?.MaterielName ?? "", + MaterielSpec= materielCodeInfos.FirstOrDefault(x => x.MaterielCode == item.MaterielCode)?.MaterielSpec ?? "", OrderDetailStatus = OrderDetailStatusEnum.New.ObjToInt(), OrderQuantity = quantity, OverInQuantity = 0, @@ -260,7 +294,7 @@ { return WebResponseContent.Instance.Error($"鏈壘鍒拌閲囪喘鍗�"); } - if (purchaseOrder.Details == null || purchaseOrder.Details.Count == 0) + if (purchaseOrder.Details.Count == 0) { return WebResponseContent.Instance.Error($"鏈壘鍒伴噰璐崟鏄庣粏淇℃伅"); } @@ -307,24 +341,27 @@ }; rowNo += 1; receiveOrderDetails.Add(receiveOrderDetail); - - if (materielInfo.IsCheck == WhetherEnum.True) - { - Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail); - checkOrder.ReceiveOrderNo = ""; - checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity; - checkOrder.ScrappedQuantity = 0; - checkOrder.ReturnQuantity = 0; - checkOrder.DefectedQuantity = 0; - checkOrder.ReceiveDetailRowNo = rowNo; - checkOrders.Add(checkOrder); - } + #region 娉ㄩ噴 + //if (materielInfo.IsCheck == WhetherEnum.True) + //{ + // Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail); + // checkOrder.CheckOrderNo = "TestCheckNo21";//娴嬭瘯 + // checkOrder.ReceiveOrderNo = ""; + // checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity; + // checkOrder.ScrappedQuantity = 0; + // checkOrder.ReturnQuantity = 0; + // checkOrder.DefectedQuantity = 0; + // checkOrder.ReceiveDetailRowNo = rowNo; + // checkOrder.UploadStatus = CheckUploadEnum.UploadNo.ObjToInt(); + // checkOrders.Add(checkOrder); + //} + #endregion } receiveOrder = new Dt_ReceiveOrder() { ReceiveOrderStatus = ReceiveOrderStatusEnum.Receiving.ObjToInt(), CustomerId = "", - DeliveryCode = "", + DeliveryCode = "/", ReceiveDate = DateTime.Now, ReceiveOrderType = ReceiveOrderTypeEnum.PO.ObjToInt(), SuppliersId = purchaseOrder.SupplierCode, @@ -368,17 +405,19 @@ rowNo += 1; receiveOrderDetails.Add(receiveOrderDetail); - if (materielInfo.IsCheck == WhetherEnum.True) - { - Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail); - checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity; - checkOrder.ScrappedQuantity = 0; - checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo; - checkOrder.ReturnQuantity = 0; - checkOrder.DefectedQuantity = 0; - checkOrder.ReceiveDetailRowNo = rowNo; - checkOrders.Add(checkOrder); - } + //if (materielInfo.IsCheck == WhetherEnum.True) + //{ + // Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail); + // checkOrder.CheckOrderNo = "Test-CheckNo1";//娴嬭瘯 + // checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity; + // checkOrder.ScrappedQuantity = 0; + // checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo; + // checkOrder.ReturnQuantity = 0; + // checkOrder.DefectedQuantity = 0; + // checkOrder.ReceiveDetailRowNo = rowNo; + // checkOrder.UploadStatus = CheckUploadEnum.UploadNo.ObjToInt(); + // checkOrders.Add(checkOrder); + //} } } @@ -395,11 +434,13 @@ Db.InsertNav(receiveOrder).Include(x => x.Details).ExecuteCommand(); checkOrders.ForEach(x => x.ReceiveOrderNo = receiveOrder.ReceiveOrderNo); } - _checkOrderRepository.AddData(checkOrders); + //if (checkOrders.Count > 0) + //{ + // _checkOrderRepository.AddData(checkOrders); + //} _inboundRepository.PurchaseOrderRepository.UpdateData(purchaseOrder); _inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrder.Details); _unitOfWorkManage.CommitTran(); - return WebResponseContent.Instance.OK(); } catch (Exception ex) -- Gitblit v1.9.3