| | |
| | | |
| | | public class BoxingInfoService : ServiceBase<DtBoxingInfo, IBoxingInfoRepository>, IBoxingInfoService |
| | | { |
| | | private readonly IDt_InboundOrderRepository _inboundOrderRepository; |
| | | private readonly IUnitOfWorkManage _unitOfWorkManage; |
| | | public BoxingInfoService(IBoxingInfoRepository BaseDal, IDt_InboundOrderRepository inboundOrderRepository, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal) |
| | | public BoxingInfoService(IBoxingInfoRepository BaseDal,IUnitOfWorkManage unitOfWorkManage) : base(BaseDal) |
| | | { |
| | | _inboundOrderRepository = inboundOrderRepository; |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | | } |
| | | public override PageGridData<DtBoxingInfo> GetPageData(PageDataOptions options) |
| | |
| | | .ToPageList(options.Page, options.Rows, ref totalCount); |
| | | new PageGridData<DtBoxingInfo>(totalCount, data); |
| | | return new PageGridData<DtBoxingInfo>(totalCount, data); |
| | | } |
| | | |
| | | public async Task<WebResponseContent> AddBoxingInfoAsync(AddBoxingDto boxingInfo) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | if(boxingInfo == null || boxingInfo.OrderNos.IsNullOrEmpty() || boxingInfo.palletCode.IsNullOrEmpty()) |
| | | { |
| | | return content.Error("åæ°é误"); |
| | | } |
| | | var info = await BaseDal.QueryFirstAsync(x => x.PalletCode == boxingInfo.palletCode); |
| | | if (!info.IsNullOrEmpty()) |
| | | { |
| | | content.Error("该æçå·²åå¨ç»ç"); |
| | | } |
| | | else |
| | | { |
| | | List<DtBoxingInfoDetail> details = new List<DtBoxingInfoDetail>(); |
| | | foreach (var item in boxingInfo.OrderNos) |
| | | { |
| | | var InboundOrder = _inboundOrderRepository.QueryFirst(x => x.PrintCode == item); |
| | | |
| | | if(InboundOrder != null) |
| | | { |
| | | var x = details.Where(x => x.MaterielCode == InboundOrder.MaterialNo && x.Warehouse == InboundOrder.WarehouseName && x.DrawingNumber==InboundOrder.ProductDrawingNumber &&x.DemandClassification ==InboundOrder.DemandClassification).FirstOrDefault(); |
| | | if (x != null) |
| | | { |
| | | details.Remove(x); |
| | | x.MaterielCode = InboundOrder.MaterialNo; |
| | | x.MaterielName = InboundOrder.MaterialName; |
| | | x.DemandClassification = InboundOrder.DemandClassification; |
| | | x.Warehouse = InboundOrder.WarehouseName; |
| | | x.OrderNo = InboundOrder.OrderNo; |
| | | x.Unit = InboundOrder.Unit; |
| | | x.Specs = InboundOrder.Specs; |
| | | x.Weight = InboundOrder.Weight; |
| | | x.Quantity = x.Quantity + InboundOrder.Quantity; |
| | | x.DrawingNumber = InboundOrder.ProductDrawingNumber; |
| | | x.Date = InboundOrder.Datetime; |
| | | details.Add(x); |
| | | } |
| | | else |
| | | { |
| | | DtBoxingInfoDetail detail = new DtBoxingInfoDetail() |
| | | { |
| | | MaterielCode = InboundOrder.MaterialNo, |
| | | MaterielName = InboundOrder.MaterialName, |
| | | DemandClassification = InboundOrder.DemandClassification, |
| | | Warehouse = InboundOrder.WarehouseName, |
| | | OrderNo = InboundOrder.OrderNo, |
| | | Unit = InboundOrder.Unit, |
| | | Specs = InboundOrder.Specs, |
| | | Weight = InboundOrder.Weight, |
| | | Quantity = InboundOrder.Quantity, |
| | | DrawingNumber = InboundOrder.ProductDrawingNumber, |
| | | Date = InboundOrder.Datetime, |
| | | }; |
| | | details.Add(detail); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | return content.Error("æªæ¾å°å
¥åºåæ®ä¿¡æ¯"); |
| | | } |
| | | } |
| | | |
| | | DtBoxingInfo boxing = new DtBoxingInfo() |
| | | { |
| | | PalletCode=boxingInfo.palletCode, |
| | | BoxingInfoDetails= details |
| | | }; |
| | | await BaseDal.AddDataNavAsync(boxing); |
| | | content.OK("ç»çæå"); |
| | | } |
| | | return content; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return content.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | public async Task<WebResponseContent> DeleteBoxingInfoAsync(AddBoxingDto boxingInfo) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | if (boxingInfo == null || boxingInfo.palletCode.IsNullOrEmpty()) |
| | | { |
| | | return content.Error("åæ°é误"); |
| | | } |
| | | var boxing = await BaseDal.QueryFirstNavAsync(x => x.PalletCode == boxingInfo.palletCode); |
| | | if (!boxing.IsNullOrEmpty()) |
| | | { |
| | | DtBoxingInfo_Hty boxingInfo_Hty = boxing.Adapt<DtBoxingInfo_Hty>(); |
| | | boxingInfo_Hty.ModifyDate = DateTime.Now; |
| | | await _unitOfWorkManage.UseTranAsync(async () => |
| | | { |
| | | await BaseDal.Db.DeleteNav<DtBoxingInfo>(x => x.Id == boxing.Id) |
| | | .Include(x => x.BoxingInfoDetails) |
| | | .ExecuteCommandAsync(); |
| | | await AddBoxingHtyAsync(boxingInfo_Hty); |
| | | }); |
| | | content.OK("è§£çæå"); |
| | | } |
| | | else |
| | | { |
| | | content.Error("æªæ¾å°ç»çæ°æ®"); |
| | | } |
| | | return content; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return content.Error(ex.Message); |
| | | } |
| | | } |
| | | private async Task AddBoxingHtyAsync(DtBoxingInfo_Hty boxingInfo) |
| | | { |
| | | var isStockAdd = await SqlSugarHelper.DbWMS.InsertNav(boxingInfo).IncludesAllFirstLayer().ExecuteCommandAsync(); |
| | | if (!isStockAdd) |
| | | { |
| | | throw new Exception("ç»çåå²ä¿¡æ¯æ·»å 失败"); |
| | | } |
| | | } |
| | | |
| | | // éªè¯æ¨¡å |
| | | public static List<ValidationResult> ValidateModel(object model) |
| | | { |
| | | // å建ä¸ä¸ªéªè¯ç»æå表 |
| | | var validationResults = new List<ValidationResult>(); |
| | | // å建ä¸ä¸ªéªè¯ä¸ä¸æ |
| | | var validationContext = new ValidationContext(model, serviceProvider: null, items: null); |
| | | |
| | | // 使ç¨éªè¯å¨å°è¯éªè¯æ¨¡åï¼å¹¶å°éªè¯ç»ææ·»å å°éªè¯ç»æåè¡¨ä¸ |
| | | Validator.TryValidateObject(model, validationContext, validationResults, validateAllProperties: true); |
| | | |
| | | // è¿åéªè¯ç»æå表 |
| | | return validationResults; |
| | | } |
| | | } |