From df97e66f99cf081abf212a8d97fc32afe9c6e7a7 Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期五, 17 一月 2025 13:46:32 +0800 Subject: [PATCH] 更新配置文件PDA版本 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderService.cs | 88 ++++++++++++++++++++++++++++++++++---------- 1 files changed, 68 insertions(+), 20 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderService.cs" index 4262788..1e593eb 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderService.cs" @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using WIDESEA_BasicRepository; using WIDESEA_Common.OrderEnum; using WIDESEA_Core; using WIDESEA_Core.BaseRepository; @@ -10,6 +11,8 @@ using WIDESEA_Core.Enums; using WIDESEA_Core.Helper; using WIDESEA_DTO; +using WIDESEA_DTO.Basic; +using WIDESEA_IBasicRepository; using WIDESEA_IInboundRepository; using WIDESEA_IInboundService; using WIDESEA_InboundRepository; @@ -21,30 +24,43 @@ { private readonly IUnitOfWorkManage _unitOfWorkManage; private readonly IPurchaseOrderDetailRepository _purchaseOrderDetailRepository; + private readonly IBasicRepository _basicRepository; + private readonly ISupplierInfoRepository _supplierInfoRepository; + private readonly IMaterielInfoRepository _materielInfoRepository; - public PurchaseOrderService(IPurchaseOrderRepository BaseDal, IPurchaseOrderDetailRepository purchaseOrderDetailRepository, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal) + public PurchaseOrderService(IPurchaseOrderRepository BaseDal, IPurchaseOrderDetailRepository purchaseOrderDetailRepository, IUnitOfWorkManage unitOfWorkManage, IBasicRepository basicRepository, ISupplierInfoRepository supplierInfoRepository, IMaterielInfoRepository materielInfoRepository) : base(BaseDal) { _purchaseOrderDetailRepository = purchaseOrderDetailRepository; _unitOfWorkManage = unitOfWorkManage; + _basicRepository = basicRepository; + _supplierInfoRepository = supplierInfoRepository; + _materielInfoRepository = materielInfoRepository; } - - public WebResponseContent ReceivePurchaseOrderSingle(PurchaseOrderModel model) + public WebResponseContent GetPurchaseOrderInfo(string purchaseOrderNo) { try { - switch (model.Way) + Dt_PurchaseOrder purchaseOrder = BaseDal.Db.Queryable<Dt_PurchaseOrder>().Where(x => x.PurchaseOrderNo == purchaseOrderNo).Includes(x => x.Details).First(); + List<string> MaterielCodes = purchaseOrder.Details.Where(x => x.PurchaseDetailStatus != PurchaseOrderDetailStatusEnum.Received.ObjToInt()).Select(x => x.MaterielCode).ToList(); + return WebResponseContent.Instance.OK(data: MaterielCodes); + } + catch (Exception ex) + { + return WebResponseContent.Instance.Error(ex.Message); + } + } + public WebResponseContent ReceivePurchaseOrder(PurchaseOrderModel model) + { + try + { + return model.Way switch { - case 1: - return AddPurchaseOrder(model); - case 2: - return UpdatePurchaseOrder(model); - case 3: - return DeletePurchaseOrder(model); - case 4: - return ClosePurchaseOrder(model); - } - - return WebResponseContent.Instance.OK(); + 1 => AddPurchaseOrder(model), + 2 => UpdatePurchaseOrder(model), + 3 => DeletePurchaseOrder(model), + 4 => ClosePurchaseOrder(model), + _ => WebResponseContent.Instance.OK(), + }; } catch (Exception ex) { @@ -60,17 +76,33 @@ { return WebResponseContent.Instance.Error($"閲囪喘鍗曞彿閲嶅"); } - + if (_supplierInfoRepository.QueryFirst(x => x.SupplierCode == model.SCode) == null) + { + return WebResponseContent.Instance.Error($"鏈壘鍒颁緵搴斿晢缂栫爜銆恵model.SCode}銆戠殑淇℃伅"); + } + List<Dt_Warehouse> warehouses = _basicRepository.WarehouseRepository.QueryData(); + List<Dt_MaterielInfo> materielInfos = _materielInfoRepository.QueryData(); List<Dt_PurchaseOrderDetail> purchaseOrderDetails = new List<Dt_PurchaseOrderDetail>(); foreach (var item in model.MList) { + Dt_Warehouse? warehouse = warehouses.FirstOrDefault(x => x.WarehouseCode == item.WaId); + if (warehouse == null) + { + return WebResponseContent.Instance.Error($"鏈壘鍒颁粨搴撲俊鎭�"); + } + Dt_MaterielInfo? materielInfo = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MCode); + if (materielInfo == null) + { + return WebResponseContent.Instance.Error($"鏈壘鍒扮墿鏂欑紪鐮併�恵item.MCode}銆戠殑淇℃伅"); + } Dt_PurchaseOrderDetail purchaseOrderDetail = new Dt_PurchaseOrderDetail() { MaterielCode = item.MCode, PurchaseDetailQuantity = item.Qty, + PurchaseDetailReceiveQty = 0, PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt(), Unit = item.Unit, - WarehouseId = item.WaId, + WarehouseId = warehouse.WarehouseId, RowNo = item.RowId, }; purchaseOrderDetails.Add(purchaseOrderDetail); @@ -110,12 +142,27 @@ { return WebResponseContent.Instance.Error($"鏈壘鍒伴噰璐崟鏄庣粏淇℃伅"); } - + if (_supplierInfoRepository.QueryFirst(x => x.SupplierCode == model.SCode) == null) + { + return WebResponseContent.Instance.Error($"鏈壘鍒颁緵搴斿晢缂栫爜銆恵model.SCode}銆戠殑淇℃伅"); + } + List<Dt_Warehouse> warehouses = _basicRepository.WarehouseRepository.QueryData(); + List<Dt_MaterielInfo> materielInfos = _materielInfoRepository.QueryData(); List<Dt_PurchaseOrderDetail> purchaseOrderDetails = new List<Dt_PurchaseOrderDetail>(); List<Dt_PurchaseOrderDetail> updatePurchaseOrderDetails = new List<Dt_PurchaseOrderDetail>(); List<int> detailIds = new List<int>(); foreach (var item in model.MList) { + Dt_Warehouse? warehouse = warehouses.FirstOrDefault(x => x.WarehouseCode == item.WaId); + if (warehouse == null) + { + return WebResponseContent.Instance.Error($"鏈壘鍒颁粨搴撲俊鎭�"); + } + Dt_MaterielInfo? materielInfo = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MCode); + if (materielInfo == null) + { + return WebResponseContent.Instance.Error($"鏈壘鍒扮墿鏂欑紪鐮併�恵item.MCode}銆戠殑淇℃伅"); + } Dt_PurchaseOrderDetail? purchaseOrderDetail = purchaseOrder.Details.FirstOrDefault(x => x.RowNo == item.RowId); if (purchaseOrderDetail == null) { @@ -123,9 +170,10 @@ { MaterielCode = item.MCode, PurchaseDetailQuantity = item.Qty, + PurchaseDetailReceiveQty = 0, PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt(), Unit = item.Unit, - WarehouseId = item.WaId, + WarehouseId = warehouse.WarehouseId, RowNo = item.RowId, }; purchaseOrderDetails.Add(purchaseOrderDetail); @@ -136,7 +184,7 @@ purchaseOrderDetail.PurchaseDetailQuantity = item.Qty; purchaseOrderDetail.PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt(); purchaseOrderDetail.Unit = item.Unit; - purchaseOrderDetail.WarehouseId = item.WaId; + purchaseOrderDetail.WarehouseId = warehouse.WarehouseId; purchaseOrderDetail.RowNo = item.RowId; updatePurchaseOrderDetails.Add(purchaseOrderDetail); detailIds.Add(purchaseOrderDetail.Id); -- Gitblit v1.9.3