From 25cb7cd50d12f48e93d6cde47420ca3458e9c47a Mon Sep 17 00:00:00 2001 From: helongyang <647556386@qq.com> Date: 星期四, 12 六月 2025 21:39:43 +0800 Subject: [PATCH] 1 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderService.cs | 64 +++++++++++++++++++++++++++----- 1 files changed, 54 insertions(+), 10 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 fd2344f..2eb5da7 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" @@ -11,6 +11,7 @@ using WIDESEA_Core.Enums; using WIDESEA_Core.Helper; using WIDESEA_DTO; +using WIDESEA_DTO.Basic; using WIDESEA_IBasicRepository; using WIDESEA_IInboundRepository; using WIDESEA_IInboundService; @@ -24,14 +25,30 @@ 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,IBasicRepository basicRepository) : 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 GetPurchaseOrderInfo(string purchaseOrderNo) + { + try + { + 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 @@ -59,19 +76,32 @@ { 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_PurchaseOrderDetail> purchaseOrderDetails = new List<Dt_PurchaseOrderDetail>(); + 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) + 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, + MaterielName = materielInfo.MaterielName, + MaterielSpec = materielInfo.MaterielSpec, PurchaseDetailQuantity = item.Qty, + PurchaseDetailReceiveQty = 0, PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt(), Unit = item.Unit, WarehouseId = warehouse.WarehouseId, @@ -105,7 +135,7 @@ { try { - Dt_PurchaseOrder purchaseOrder = Db.Queryable<Dt_PurchaseOrder>().First(x => x.PurchaseOrderNo == model.OrderNo); + Dt_PurchaseOrder purchaseOrder = Db.Queryable<Dt_PurchaseOrder>().Where(x => x.PurchaseOrderNo == model.OrderNo).Includes(x => x.Details).First(); if (purchaseOrder == null) { return WebResponseContent.Instance.Error($"鏈壘鍒伴噰璐崟淇℃伅"); @@ -114,7 +144,12 @@ { 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>(); @@ -125,6 +160,11 @@ { 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) { @@ -132,6 +172,7 @@ { MaterielCode = item.MCode, PurchaseDetailQuantity = item.Qty, + PurchaseDetailReceiveQty = 0, PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt(), Unit = item.Unit, WarehouseId = warehouse.WarehouseId, @@ -186,7 +227,7 @@ { try { - Dt_PurchaseOrder purchaseOrder = Db.Queryable<Dt_PurchaseOrder>().First(x => x.PurchaseOrderNo == model.OrderNo); + Dt_PurchaseOrder purchaseOrder = Db.Queryable<Dt_PurchaseOrder>().Where(x => x.PurchaseOrderNo == model.OrderNo).Includes(x => x.Details).First(); if (purchaseOrder == null) { return WebResponseContent.Instance.Error($"鏈壘鍒伴噰璐崟淇℃伅"); @@ -208,7 +249,7 @@ { try { - Dt_PurchaseOrder purchaseOrder = Db.Queryable<Dt_PurchaseOrder>().First(x => x.PurchaseOrderNo == model.OrderNo); + Dt_PurchaseOrder purchaseOrder = Db.Queryable<Dt_PurchaseOrder>().Where(x=>x.PurchaseOrderNo== model.OrderNo).Includes(x=>x.Details).First(); if (purchaseOrder == null) { return WebResponseContent.Instance.Error($"鏈壘鍒伴噰璐崟淇℃伅"); @@ -217,12 +258,15 @@ { return WebResponseContent.Instance.Error($"鏈壘鍒伴噰璐崟鏄庣粏淇℃伅"); } - + purchaseOrder.PurchaseOrderStatus = PurchaseOrderStatusEnum.Closed.ObjToInt(); _unitOfWorkManage.BeginTran(); - BaseDal.DeleteAndMoveIntoHty(purchaseOrder, OperateTypeEnum.鍏抽棴); + BaseDal.UpdateData(purchaseOrder); + //BaseDal.DeleteAndMoveIntoHty(purchaseOrder, OperateTypeEnum.鍏抽棴); foreach (var item in purchaseOrder.Details) { - _purchaseOrderDetailRepository.DeleteAndMoveIntoHty(item, OperateTypeEnum.鍏抽棴); + item.PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.Closed.ObjToInt(); + //_purchaseOrderDetailRepository.DeleteAndMoveIntoHty(item, OperateTypeEnum.鍏抽棴); + _purchaseOrderDetailRepository.UpdateData(item); } _unitOfWorkManage.CommitTran(); return WebResponseContent.Instance.OK(); -- Gitblit v1.9.3