using AutoMapper; using SqlSugar.Extensions; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_BasicRepository; using WIDESEA_Common.MaterielEnum; using WIDESEA_Core; using WIDESEA_Core.BaseRepository; using WIDESEA_Core.BaseServices; using WIDESEA_DTO.Basic; using WIDESEA_IBasicRepository; using WIDESEA_IBasicService; using WIDESEA_Model.Models; namespace WIDESEA_BasicService { public class SupplierInfoService : ServiceBase, ISupplierInfoService { public ISupplierInfoRepository Repository => BaseDal; private readonly IUnitOfWorkManage _unitOfWorkManage; private readonly IMapper _mapper; public SupplierInfoService(ISupplierInfoRepository BaseDal,IUnitOfWorkManage unitOfWorkManage,IMapper mapper) : base(BaseDal) { _unitOfWorkManage = unitOfWorkManage; _mapper = mapper; } /// /// 添加老厂供应商信息 /// /// /// public WebResponseContent AddSupplier(List bSTSupplierDTOs) { WebResponseContent content = new WebResponseContent(); try { List OldsupplierInfos = BaseDal.QueryData(x => x.InvOrgId == MaterielInvOrgEnum.老厂.ObjToInt()); //新增 List bSTSupplierDTOsAdd = bSTSupplierDTOs.Where(x => x.Way == 1).ToList(); //修改 List bSTSupplierDTOsUpdate = bSTSupplierDTOs.Where(x => x.Way == 2).ToList(); //删除 List bSTSupplierDTOsDTODel = bSTSupplierDTOs.Where(x => x.Way == 3).ToList(); List supplierInfosAdd = new List(); List supplierInfosUpdate = new List(); //新增 if (bSTSupplierDTOsAdd.Count > 0) { //判断重复插入 Dt_SupplierInfo? ExistSupplier = OldsupplierInfos.FirstOrDefault(x => bSTSupplierDTOsAdd.Select(x => x.VendId).Contains(x.SupplierSourceId)); if (ExistSupplier != null) { return content.Error($"供应商{nameof(BSTSupplierDTO.VendId)}:{ExistSupplier.SupplierSourceId}已存在"); } foreach (var item in bSTSupplierDTOsAdd) { if (bSTSupplierDTOsUpdate.FirstOrDefault(x => x.VendId == item.VendId) != null) { continue; } Dt_SupplierInfo supplierInfo = _mapper.Map(item); supplierInfosAdd.Add(supplierInfo); } } //更新 if (bSTSupplierDTOsUpdate.Count > 0) { //获取已存在的物料 List? ExistbSTSuppliersUpdate = OldsupplierInfos.Where(x => bSTSupplierDTOsUpdate.Select(x => x.VendId).Contains(x.SupplierSourceId)).ToList(); foreach (var item in bSTSupplierDTOsUpdate) { Dt_SupplierInfo? supplierInfoUpdate = ExistbSTSuppliersUpdate.FirstOrDefault(x => x.SupplierSourceId == item.VendId); //如果物料已存在则进行更改 if (supplierInfoUpdate != null) { supplierInfoUpdate.SupplierSourceId = item.VendId; supplierInfoUpdate.SupplierCode = item.VendNo; supplierInfoUpdate.SupplierShortName = item.ShortName; supplierInfoUpdate.SupplierName = item.ShortName; supplierInfoUpdate.Contacts = item.BusinessContact; supplierInfoUpdate.ContactNumber = item.Tel; supplierInfoUpdate.ContactAddress = item.Address; supplierInfosUpdate.Add(supplierInfoUpdate); } else//如果不存在则进行新增 { Dt_SupplierInfo supplierInfo = _mapper.Map(item); supplierInfosAdd.Add(supplierInfo); } } } //删除 if (bSTSupplierDTOsDTODel.Count > 0) { } //更新数据 _unitOfWorkManage.CommitTran(); BaseDal.AddData(supplierInfosAdd); BaseDal.UpdateData(supplierInfosUpdate); _unitOfWorkManage.CommitTran(); content.OK("接收成功"); } catch (Exception ex) { content.Error(ex.Message); } return content; } } }