using AutoMapper; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_BasicRepository; using WIDESEA_Common.OrderEnum; using WIDESEA_Core; using WIDESEA_Core.BaseRepository; using WIDESEA_Core.BaseServices; 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; using WIDESEA_Model.Models; namespace WIDESEA_InboundService { public class PurchaseBSTOrderService : ServiceBase, IPurchaseBSTOrderService { private readonly IUnitOfWorkManage _unitOfWorkManage; public IPurchaseBSTOrderRepository Repository => BaseDal; public IPurchaseBSTOrderDetailRepository _purchaseBSTOrderDetailRepository; private readonly IBasicRepository _basicRepository; private readonly ISupplierInfoRepository _supplierInfoRepository; private readonly IMaterielInfoRepository _materielInfoRepository; private readonly IMapper _mapper; public PurchaseBSTOrderService(IPurchaseBSTOrderRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IBasicRepository basicRepository, ISupplierInfoRepository supplierInfoRepository, IMaterielInfoRepository materielInfoRepository, IPurchaseBSTOrderDetailRepository purchaseBSTOrderDetailRepository,IMapper mapper) : base(BaseDal) { _unitOfWorkManage = unitOfWorkManage; _basicRepository = basicRepository; _supplierInfoRepository = supplierInfoRepository; _materielInfoRepository = materielInfoRepository; _purchaseBSTOrderDetailRepository = purchaseBSTOrderDetailRepository; _mapper = mapper; } /// /// 添加老厂采购单信息 /// /// public WebResponseContent AddPurchaseBSTOrder(List bSTPurchaseOrderDTOs) { WebResponseContent content = new WebResponseContent(); try { List OldpurchaseBSTOrders = BaseDal.Db.Queryable().Includes(x=>x.Details).ToList(); //新增 List bSTPurchaseOrderDTOsAdd = bSTPurchaseOrderDTOs.Where(x => x.Way == 1).ToList(); //修改 List bSTPurchaseOrderDTOsUpdate = bSTPurchaseOrderDTOs.Where(x => x.Way == 2).ToList(); //删除 List bSTPurchaseOrderDTOsDel = bSTPurchaseOrderDTOs.Where(x => x.Way == 3).ToList(); List purchaseAddBSTOrders = new List(); List purchaseUpdateBSTOrders = new List(); List purchaseDeleteBSTOrders = new List(); if (bSTPurchaseOrderDTOsAdd.Count>0) { //判断重复插入 Dt_PurchaseBSTOrder? ExistAddPurchase = OldpurchaseBSTOrders.FirstOrDefault(x => bSTPurchaseOrderDTOsAdd.Select(x => x.PaperReceiptId).Contains(x.PaperReceiptId)); if (ExistAddPurchase != null) { return content.Error($"采购收货Id{nameof(BSTPurchaseOrderDTO.PaperReceiptId)}:{ExistAddPurchase.PaperReceiptId}已存在"); } foreach (var item in bSTPurchaseOrderDTOsAdd) { Dt_PurchaseBSTOrder purchaseBSTOrder = _mapper.Map(item); purchaseAddBSTOrders.Add(purchaseBSTOrder); } } if (bSTPurchaseOrderDTOsUpdate.Count > 0) { List? ExistUpdatePurchase = OldpurchaseBSTOrders.Where(x => bSTPurchaseOrderDTOsUpdate.Select(x => x.PaperReceiptId).Contains(x.PaperReceiptId)).ToList(); //更新的单据是否存在 if (ExistUpdatePurchase.Count == bSTPurchaseOrderDTOsUpdate.Count) { } else { BSTPurchaseOrderDTO? bSTPurchaseOrderDTO = bSTPurchaseOrderDTOsUpdate.FirstOrDefault(x => !ExistUpdatePurchase.Select(x => x.PaperReceiptId).Contains(x.PaperReceiptId)); return content.Error($"未找到指定采购收货单{nameof(BSTPurchaseOrderDTO.PaperReceiptId)}:{bSTPurchaseOrderDTO?.PaperReceiptId}"); } } content.OK("接收成功"); } catch (Exception ex) { content.Error(ex.Message); } return content; } } }