| | |
| | | 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_Common.WareHouseEnum; |
| | | 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; |
| | |
| | | private readonly IBasicRepository _basicRepository; |
| | | |
| | | public IMaterielInfoRepository Repository => BaseDal; |
| | | private readonly IUnitOfWorkManage _unitOfWorkManage; |
| | | private readonly IMapper _mapper; |
| | | |
| | | public MaterielInfoService(IMaterielInfoRepository BaseDal, IBasicRepository basicRepository) : base(BaseDal) |
| | | public MaterielInfoService(IMaterielInfoRepository BaseDal, IBasicRepository basicRepository,IUnitOfWorkManage unitOfWorkManage,IMapper mapper) : base(BaseDal) |
| | | { |
| | | _basicRepository = basicRepository; |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | | _mapper = mapper; |
| | | } |
| | | /// <summary> |
| | | /// æ·»å èåç©æä¿¡æ¯ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public WebResponseContent AddMaterial() |
| | | public WebResponseContent AddMaterial(List<BSTMaterialDTO> bSTMaterialDTOs) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | List<Dt_MaterielInfo> OldMaterielInfos = BaseDal.QueryData(x => x.WarehouseId == WarehouseEnum.LLDYL.ObjToInt()); |
| | | //æ°å¢ |
| | | List<BSTMaterialDTO> bSTMaterialsDTOAdd = bSTMaterialDTOs.Where(x => x.Way == 1).ToList(); |
| | | //ä¿®æ¹ |
| | | List<BSTMaterialDTO> bSTMaterialsDTOUpdate = bSTMaterialDTOs.Where(x => x.Way == 2).ToList(); |
| | | //å é¤ |
| | | List<BSTMaterialDTO> bSTMaterialsDTODel = bSTMaterialDTOs.Where(x => x.Way == 3).ToList(); |
| | | List<Dt_MaterielInfo> materielInfosAdd = new List<Dt_MaterielInfo>(); |
| | | List<Dt_MaterielInfo> materielInfosUpdate = new List<Dt_MaterielInfo>(); |
| | | //æ°å¢ |
| | | if (bSTMaterialsDTOAdd.Count>0) |
| | | { |
| | | //夿é夿å
¥ |
| | | Dt_MaterielInfo? ExistMaterial = OldMaterielInfos.FirstOrDefault(x => bSTMaterialsDTOAdd.Select(x => x.MaterialId).Contains(x.MaterialSourceId)); |
| | | if (ExistMaterial != null) |
| | | { |
| | | return content.Error($"ç©æ{nameof(BSTMaterialDTO.MaterialId)}:{ExistMaterial.MaterialSourceId}å·²åå¨"); |
| | | } |
| | | |
| | | foreach (var item in bSTMaterialsDTOAdd) |
| | | { |
| | | if (bSTMaterialsDTOUpdate.FirstOrDefault(x=>x.MaterialId==item.MaterialId)!=null) |
| | | { |
| | | continue; |
| | | } |
| | | Dt_MaterielInfo materielInfo = _mapper.Map<Dt_MaterielInfo>(item); |
| | | materielInfosAdd.Add(materielInfo); |
| | | } |
| | | } |
| | | //æ´æ° |
| | | if (bSTMaterialsDTOUpdate.Count > 0) |
| | | { |
| | | //è·åå·²åå¨çç©æ |
| | | List<Dt_MaterielInfo>? ExistbSTMaterialsUpdate = OldMaterielInfos.Where(x => bSTMaterialsDTOUpdate.Select(x => x.MaterialId).Contains(x.MaterialSourceId)).ToList(); |
| | | foreach (var item in bSTMaterialsDTOUpdate) |
| | | { |
| | | Dt_MaterielInfo? materielInfoUpdate = ExistbSTMaterialsUpdate.FirstOrDefault(x => x.MaterialSourceId == item.MaterialId); |
| | | //å¦æç©æå·²åå¨åè¿è¡æ´æ¹ |
| | | if (materielInfoUpdate!=null) |
| | | { |
| | | materielInfoUpdate.MaterielCode = item.MaterialNo; |
| | | materielInfoUpdate.MaterielName = item.Name; |
| | | materielInfoUpdate.MaterielSpec = item.Spec; |
| | | materielInfoUpdate.MaterielWide = item.MaterielWide; |
| | | materielInfoUpdate.MaterielThickness = item.MaterielThickness; |
| | | materielInfoUpdate.MaterielLength = item.MaterielLength; |
| | | materielInfoUpdate.MaterielWeight = item.Weight; |
| | | materielInfoUpdate.MaterielUnit = item.Unit; |
| | | materielInfosUpdate.Add(materielInfoUpdate); |
| | | } |
| | | else//妿ä¸åå¨åè¿è¡æ°å¢ |
| | | { |
| | | Dt_MaterielInfo materielInfo = _mapper.Map<Dt_MaterielInfo>(item); |
| | | materielInfosAdd.Add(materielInfo); |
| | | } |
| | | } |
| | | } |
| | | //å é¤ |
| | | if (bSTMaterialsDTODel.Count > 0) |
| | | { |
| | | |
| | | } |
| | | //æ´æ°æ°æ® |
| | | _unitOfWorkManage.CommitTran(); |
| | | BaseDal.AddData(materielInfosAdd); |
| | | BaseDal.UpdateData(materielInfosUpdate); |
| | | _unitOfWorkManage.CommitTran(); |
| | | return content.OK("æ¥æ¶æå"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |