| | |
| | | using Masuit.Tools; |
| | | using Mapster; |
| | | using Masuit.Tools; |
| | | using SqlSugar; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System.Linq.Expressions; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_DTO.Basic; |
| | | using WIDESEA_IOrderRepository; |
| | | |
| | |
| | | public class BoxingInfoService : ServiceBase<DtBoxingInfo, IBoxingInfoRepository>, IBoxingInfoService |
| | | { |
| | | private readonly IDt_InboundOrderRepository _inboundOrderRepository; |
| | | public BoxingInfoService(IBoxingInfoRepository BaseDal, IDt_InboundOrderRepository inboundOrderRepository) : base(BaseDal) |
| | | private readonly IUnitOfWorkManage _unitOfWorkManage; |
| | | public BoxingInfoService(IBoxingInfoRepository BaseDal, IDt_InboundOrderRepository inboundOrderRepository, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal) |
| | | { |
| | | _inboundOrderRepository = inboundOrderRepository; |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | | } |
| | | public override PageGridData<DtBoxingInfo> GetPageData(PageDataOptions options) |
| | | { |
| | | string wheres = ValidatePageOptions(options); |
| | | //è·åæåºå段 |
| | | Dictionary<string, OrderByType> orderbyDic = GetPageDataSort(options, TProperties); |
| | | List<OrderByModel> orderByModels = new List<OrderByModel>(); |
| | | foreach (var item in orderbyDic) |
| | | { |
| | | OrderByModel orderByModel = new() |
| | | { |
| | | FieldName = item.Key, |
| | | OrderByType = item.Value |
| | | }; |
| | | orderByModels.Add(orderByModel); |
| | | } |
| | | |
| | | |
| | | int totalCount = 0; |
| | | List<SearchParameters> searchParametersList = new List<SearchParameters>(); |
| | | if (!string.IsNullOrEmpty(options.Wheres)) |
| | | { |
| | | try |
| | | { |
| | | searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>(); |
| | | options.Filter = searchParametersList; |
| | | } |
| | | catch { } |
| | | } |
| | | var data = BaseDal.Db.Queryable<DtBoxingInfo>() |
| | | .Includes(x => x.BoxingInfoDetails) |
| | | .WhereIF(!wheres.IsNullOrEmpty(), wheres) |
| | | .OrderBy(orderByModels) |
| | | .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()) |
| | | { |
| | |
| | | BoxingInfoDetails= details |
| | | }; |
| | | await BaseDal.AddDataNavAsync(boxing); |
| | | content.OK("ç»çæå"); |
| | | } |
| | | return content; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return content.OK(); |
| | | return content.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | public override PageGridData<DtBoxingInfo> GetPageData(PageDataOptions options) |
| | | public async Task<WebResponseContent> DeleteBoxingInfoAsync(AddBoxingDto boxingInfo) |
| | | { |
| | | return base.GetPageData(options); |
| | | 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("ç»çåå²ä¿¡æ¯æ·»å 失败"); |
| | | } |
| | | } |
| | | |
| | | // éªè¯æ¨¡å |