| | |
| | | using System; |
| | | 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; |
| | |
| | | { |
| | | public class SupplierInfoService : ServiceBase<Dt_SupplierInfo, ISupplierInfoRepository>, ISupplierInfoService |
| | | { |
| | | public SupplierInfoService(ISupplierInfoRepository BaseDal) : base(BaseDal) |
| | | { |
| | | } |
| | | |
| | | public ISupplierInfoRepository Repository => BaseDal; |
| | | |
| | | public WebResponseContent ReceiveSupplier(SupplierDTO model) |
| | | private readonly IUnitOfWorkManage _unitOfWorkManage; |
| | | private readonly IMapper _mapper; |
| | | public SupplierInfoService(ISupplierInfoRepository BaseDal,IUnitOfWorkManage unitOfWorkManage,IMapper mapper) : base(BaseDal) |
| | | { |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | | _mapper = mapper; |
| | | } |
| | | /// <summary> |
| | | /// æ·»å èåä¾åºåä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="bSTSupplierDTOs"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent AddSupplier(List<BSTSupplierDTO> bSTSupplierDTOs) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | if (model.OperateType == "0") |
| | | List<Dt_SupplierInfo> OldsupplierInfos = BaseDal.QueryData(x => x.InvOrgId == MaterielInvOrgEnum.èå.ObjToInt()); |
| | | //æ°å¢ |
| | | List<BSTSupplierDTO> bSTSupplierDTOsAdd = bSTSupplierDTOs.Where(x => x.Way == 1).ToList(); |
| | | //ä¿®æ¹ |
| | | List<BSTSupplierDTO> bSTSupplierDTOsUpdate = bSTSupplierDTOs.Where(x => x.Way == 2).ToList(); |
| | | //å é¤ |
| | | List<BSTSupplierDTO> bSTSupplierDTOsDTODel = bSTSupplierDTOs.Where(x => x.Way == 3).ToList(); |
| | | List<Dt_SupplierInfo> supplierInfosAdd = new List<Dt_SupplierInfo>(); |
| | | List<Dt_SupplierInfo> supplierInfosUpdate = new List<Dt_SupplierInfo>(); |
| | | //æ°å¢ |
| | | if (bSTSupplierDTOsAdd.Count > 0) |
| | | { |
| | | Dt_SupplierInfo supplierInfo = new Dt_SupplierInfo() |
| | | //夿é夿å
¥ |
| | | Dt_SupplierInfo? ExistSupplier = OldsupplierInfos.FirstOrDefault(x => bSTSupplierDTOsAdd.Select(x => x.VendId).Contains(x.SupplierSourceId)); |
| | | if (ExistSupplier != null) |
| | | { |
| | | Status = 1, |
| | | SupplierCode = model.Code, |
| | | ContactAddress = model.ContactAddress, |
| | | ContactNumber = model.ContactNumber, |
| | | Contacts = model.Contacts, |
| | | Description = model.Description, |
| | | Email = model.Email, |
| | | InvOrgId = model.InvOrgId, |
| | | SupplierName = model.Name, |
| | | SupplierShortName = model.ShortName |
| | | }; |
| | | return content.Error($"ä¾åºå{nameof(BSTSupplierDTO.VendId)}:{ExistSupplier.SupplierSourceId}å·²åå¨"); |
| | | } |
| | | |
| | | BaseDal.AddData(supplierInfo); |
| | | } |
| | | else if (model.OperateType == "1") |
| | | { |
| | | Dt_SupplierInfo supplierInfo = BaseDal.QueryFirst(x => x.SupplierCode == model.Code); |
| | | if (supplierInfo == null) |
| | | foreach (var item in bSTSupplierDTOsAdd) |
| | | { |
| | | Dt_SupplierInfo supplierInfoAddNew = new Dt_SupplierInfo() |
| | | if (bSTSupplierDTOsUpdate.FirstOrDefault(x => x.VendId == item.VendId) != null) |
| | | { |
| | | Status = 1, |
| | | SupplierCode = model.Code, |
| | | ContactAddress = model.ContactAddress, |
| | | ContactNumber = model.ContactNumber, |
| | | Contacts = model.Contacts, |
| | | Description = model.Description, |
| | | Email = model.Email, |
| | | InvOrgId = model.InvOrgId, |
| | | SupplierName = model.Name, |
| | | SupplierShortName = model.ShortName |
| | | }; |
| | | |
| | | BaseDal.AddData(supplierInfoAddNew); |
| | | } |
| | | else |
| | | { |
| | | supplierInfo.Status = 1; |
| | | supplierInfo.SupplierCode = model.Code; |
| | | supplierInfo.SupplierName = model.Name; |
| | | supplierInfo.SupplierShortName = model.ShortName; |
| | | BaseDal.UpdateData(supplierInfo); |
| | | continue; |
| | | } |
| | | Dt_SupplierInfo supplierInfo = _mapper.Map<Dt_SupplierInfo>(item); |
| | | supplierInfosAdd.Add(supplierInfo); |
| | | } |
| | | } |
| | | else if (model.OperateType == "2") |
| | | //æ´æ° |
| | | if (bSTSupplierDTOsUpdate.Count > 0) |
| | | { |
| | | Dt_SupplierInfo supplierInfo = BaseDal.QueryFirst(x => x.SupplierCode == model.Code); |
| | | if (supplierInfo == null) |
| | | //è·åå·²åå¨çç©æ |
| | | List<Dt_SupplierInfo>? ExistbSTSuppliersUpdate = OldsupplierInfos.Where(x => bSTSupplierDTOsUpdate.Select(x => x.VendId).Contains(x.SupplierSourceId)).ToList(); |
| | | foreach (var item in bSTSupplierDTOsUpdate) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ä¾åºåä¿¡æ¯"); |
| | | 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<Dt_SupplierInfo>(item); |
| | | supplierInfosAdd.Add(supplierInfo); |
| | | } |
| | | } |
| | | BaseDal.DeleteData(supplierInfo); |
| | | } |
| | | return WebResponseContent.Instance.OK(); |
| | | //å é¤ |
| | | if (bSTSupplierDTOsDTODel.Count > 0) |
| | | { |
| | | |
| | | } |
| | | //æ´æ°æ°æ® |
| | | _unitOfWorkManage.CommitTran(); |
| | | BaseDal.AddData(supplierInfosAdd); |
| | | BaseDal.UpdateData(supplierInfosUpdate); |
| | | _unitOfWorkManage.CommitTran(); |
| | | content.OK("æ¥æ¶æå"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | } |
| | | } |