From da57cd5e5c8e3b568dc9057f2f5b92d4da3909bb Mon Sep 17 00:00:00 2001 From: yuyubo <1870149533@qq.com> Date: Sun, 27 Apr 2025 16:59:10 +0800 Subject: [PATCH] 222 --- .../Response/InvoiceOrder/TiaoMaResp.cs | 23 ++++++- .../InvoiceOrderRepository.cs | 3 + .../InvoiceOrder/InvoiceOrderService.cs | 63 ++++++++++++++----- 3 files changed, 73 insertions(+), 16 deletions(-) diff --git a/MyCode.Project.Domain/Message/Response/InvoiceOrder/TiaoMaResp.cs b/MyCode.Project.Domain/Message/Response/InvoiceOrder/TiaoMaResp.cs index b7cb3c2..7a429ec 100644 --- a/MyCode.Project.Domain/Message/Response/InvoiceOrder/TiaoMaResp.cs +++ b/MyCode.Project.Domain/Message/Response/InvoiceOrder/TiaoMaResp.cs @@ -1,4 +1,5 @@ -using System; +using MyCode.Project.Domain.Model; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -16,6 +17,24 @@ namespace MyCode.Project.Domain.Message.Response.InvoiceOrder /// /// 对应的条码数组 /// - public List BarCodeList { get; set; } + public List BarCodeList { get; set; } + } + + + public class TiaoMaList: TiaoMa + { + /// + /// Desc:供应商ID + /// Default: + /// Nullable:True + /// + public string SupplierId { get; set; } + + /// + /// Desc:供应商名称 + /// Default: + /// Nullable:True + /// + public string SupplierName { get; set; } } } diff --git a/MyCode.Project.Repositories/InvoiceOrderRepository.cs b/MyCode.Project.Repositories/InvoiceOrderRepository.cs index f7263c0..f3fc022 100644 --- a/MyCode.Project.Repositories/InvoiceOrderRepository.cs +++ b/MyCode.Project.Repositories/InvoiceOrderRepository.cs @@ -4,6 +4,7 @@ using MyCode.Project.Domain.Message.Response.PurchaseOrder; using MyCode.Project.Domain.Model; using MyCode.Project.Domain.Repositories; using MyCode.Project.Infrastructure.Common; +using MyCode.Project.Infrastructure.Extensions; using MyCode.Project.Infrastructure.Search; using MyCode.Project.Repositories.Common; using System; @@ -98,6 +99,8 @@ namespace MyCode.Project.Repositories } t.TiaoMa = $@"{t.MaterialCode}*{t.Qty.Value.ToString("F2")}*{t.FBillNo}*{t.FSupplierLot}"; fid = t.FormId; + if (t.CuseQty == 0) + t.CuseQty = t.Qty.SafeValue(); }); return list; diff --git a/MyCode.Project.Services/Implementation/InvoiceOrder/InvoiceOrderService.cs b/MyCode.Project.Services/Implementation/InvoiceOrder/InvoiceOrderService.cs index 184d8bc..2c7be5d 100644 --- a/MyCode.Project.Services/Implementation/InvoiceOrder/InvoiceOrderService.cs +++ b/MyCode.Project.Services/Implementation/InvoiceOrder/InvoiceOrderService.cs @@ -81,6 +81,9 @@ namespace MyCode.Project.Services.Implementation var orderItems = _invoiceOrderItemRepository.Queryable().Where(t => t.Id == act.Id).ToList(); Guid pid = orderItems.Select(t => t.InvoiceOrderId.Value).FirstOrDefault(); var orderHead = _invoiceOrderRepository.Queryable().Where(t => t.SupplierId == loginInfo.SupplierId && t.Id == pid).First(); + var ids = orderItems.Select(t => t.Id).ToList(); + var OrderItemIds= orderItems.Select(t => t.PurchaseOrderItemId).ToList(); + if (orderHead == null) { throw new BaseException("订单数据不正确"); @@ -90,9 +93,22 @@ namespace MyCode.Project.Services.Implementation try { var result = _kingDeeService.Delete("PUR_ReceiveBill", billDelete); - LogHelper.Info(result); + //LogHelper.Info(result); _invoiceOrderItemRepository.Delete(t => t.Id == act.Id); _invoiceOrderRepository.Delete(t=>t.Id== orderHead.Id); + + var purchaseItem = _purchaseOrderItemRepository.Queryable().Where(t => OrderItemIds.Contains(t.Id)).ToList(); + purchaseItem.ForEach(t => + { + var temp = orderItems.FirstOrDefault(h => h.PurchaseOrderItemId == t.Id); + if (temp != null) + { + t.FRemainReceiveQty = t.FRemainReceiveQty + temp.Qty; + t.FReceiveQty = t.FReceiveQty - temp.Qty; + } + }); + _purchaseOrderItemRepository.Update(purchaseItem); + _tiaoMaRepository.Delete(t => ids.Contains(t.InvoceOrderItemId.Value)); } catch (Exception ex) { @@ -234,24 +250,36 @@ namespace MyCode.Project.Services.Implementation { throw new BaseException("每包数量必须大于0"); } - _tiaoMaRepository.Delete(t => t.InvoceOrderItemId == act.Id); + //_tiaoMaRepository.Delete(t => t.InvoceOrderItemId == act.Id); var orderItem = _invoiceOrderItemRepository.Queryable().Where(t => t.Id == act.Id).First(); if (orderItem == null) { throw new BaseException("不正确的ID值"); } - List addList = new List(); + var order = _invoiceOrderRepository.Queryable().Where(t => t.Id == orderItem.InvoiceOrderId).First(); + if (order == null) + { + throw new BaseException("不正确的ID数据"); + } + List addList = new List(); if (orderItem.CuseQty == act.CuseQty) { var barcodeList = _tiaoMaRepository.Queryable().Where(t => t.InvoceOrderItemId == orderItem.Id).ToList(); - addList = barcodeList; - + addList =AutoMapperHelper.AutoMappToList( barcodeList); + addList.ForEach(t => + { + t.SupplierId = order.SupplierId; + t.SupplierName = order.SupplierName; + }); + + } - else + if(addList.Count==0) { + _tiaoMaRepository.Delete(t=>t.InvoceOrderItemId== orderItem.Id); orderItem.CuseQty = act.CuseQty; _invoiceOrderItemRepository.Update(orderItem); - var order = _invoiceOrderRepository.Queryable().Where(t => t.Id == orderItem.InvoiceOrderId).First(); + decimal zongQty = orderItem.Qty.SafeValue(); int yu = (int)Math.Ceiling(zongQty % act.CuseQty); @@ -263,31 +291,38 @@ namespace MyCode.Project.Services.Implementation { string FBarCode = $@"{orderItem.MaterialCode}*{act.CuseQty.ToString("F2")}*{orderItem.FBillNo}*{orderItem.FSupplierLot}"; - TiaoMa tiaoMa = new TiaoMa(); - tiaoMa = AutoMapperHelper.AutoMappToSingle(orderItem); + TiaoMaList tiaoMa = new TiaoMaList(); + tiaoMa = AutoMapperHelper.AutoMappToSingle(orderItem); tiaoMa.Id = Guid.NewGuid(); tiaoMa.FBarCode = FBarCode; tiaoMa.Qty = act.CuseQty; tiaoMa.SortNum = i + 1; tiaoMa.PurchaseBillNo = orderItem.FBillNo; tiaoMa.FBillNo = order.FBillNo; + tiaoMa.SupplierId = order.SupplierId; + tiaoMa.SupplierName = order.SupplierName; addList.Add(tiaoMa); } if (yu > 0) { string FBarCode = $@"{orderItem.MaterialCode}*{decimal.Parse(yu.ToString()).ToString("F2")}*{orderItem.FBillNo}*{orderItem.FSupplierLot}"; - TiaoMa tiaoMa = new TiaoMa(); - tiaoMa = AutoMapperHelper.AutoMappToSingle(orderItem); + TiaoMaList tiaoMa = new TiaoMaList(); + tiaoMa = AutoMapperHelper.AutoMappToSingle(orderItem); tiaoMa.Id = Guid.NewGuid(); tiaoMa.FBarCode = FBarCode; tiaoMa.Qty = yu; tiaoMa.SortNum = baoShu + 1; tiaoMa.PurchaseBillNo = orderItem.FBillNo; tiaoMa.FBillNo = order.FBillNo; + tiaoMa.SupplierId = order.SupplierId; + tiaoMa.SupplierName = order.SupplierName; addList.Add(tiaoMa); } - - _tiaoMaRepository.Add(addList); + if (addList.Count > 0) + { + var addtemp = AutoMapperHelper.AutoMappToList(addList); + _tiaoMaRepository.Add(addtemp); + } List addTiaoMas = new List(); addTiaoMas = addList.Select(t => new AddTiaoMa @@ -304,7 +339,7 @@ namespace MyCode.Project.Services.Implementation } TiaoMaResp result = new TiaoMaResp(); result.Id = orderItem.Id; - result.BarCodeList = addList.Select(t => t.FBarCode).ToList(); + result.BarCodeList = addList; return result; }