diff --git a/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs b/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs index 978143a4..5b01d49e 100644 --- a/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs +++ b/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs @@ -3744,7 +3744,7 @@ namespace Myshipping.Application etdstr = order.ETD.HasValue ? order.ETD.Value.ToString("yyyy-MM-dd") : string.Empty, potrSend = order.PORTLOAD, potrGoal = order.PORTDISCHARGE, - boxinfoStr = order.CNTRTOTAL, + boxinfoStr = order.CNTRTOTAL.Replace("'", ""), vgmEndTimeStr = order.CLOSEVGMDATE.HasValue ? order.CLOSEVGMDATE.Value.ToString("yyyy-MM-dd") : string.Empty, BoxInfo = ctns.Select(c => new { diff --git a/Myshipping.Application/Service/BookingTemplate/BookingTemplateService.cs b/Myshipping.Application/Service/BookingTemplate/BookingTemplateService.cs index ce1c0eca..f1811792 100644 --- a/Myshipping.Application/Service/BookingTemplate/BookingTemplateService.cs +++ b/Myshipping.Application/Service/BookingTemplate/BookingTemplateService.cs @@ -34,15 +34,15 @@ namespace Myshipping.Application { private readonly SqlSugarRepository _rep; private readonly SqlSugarRepository _repOrder; - + private readonly SqlSugarRepository _repPrintTemplate; private readonly SqlSugarRepository _repPrintTemplateShare; private readonly ILogger _logger; - public BookingTemplateService(SqlSugarRepository rep, SqlSugarRepository repOrder, SqlSugarRepository repPrintTemplate, SqlSugarRepository repPrintTemplateShare,ILogger logger) + public BookingTemplateService(SqlSugarRepository rep, SqlSugarRepository repOrder, SqlSugarRepository repPrintTemplate, SqlSugarRepository repPrintTemplateShare, ILogger logger) { - - + + _repOrder = repOrder; _rep = rep; _logger = logger; @@ -59,10 +59,31 @@ namespace Myshipping.Application public async Task Page([FromQuery] QueryBookingTemplateInput input) { var entities = await _rep.AsQueryable() - .Where(m => m.CreatedUserId == UserManager.UserId) - .WhereIF(!string.IsNullOrEmpty(input.Title), u => u.Title.Contains(input.Title)) - .WhereIF(!string.IsNullOrEmpty(input.Type), u => u.Type.Contains(input.Type)) + .Where(x => x.CreatedUserId == UserManager.UserId) + .WhereIF(!string.IsNullOrEmpty(input.Title), x => x.Title.Contains(input.Title)) + .WhereIF(!string.IsNullOrEmpty(input.Type), x => x.Type.Contains(input.Type)) + .Select(x => new QueryBookingTemplateOutput() + { + Id = x.Id, + Title = x.Title, + Type = x.Type, + Content = x.Content, + Remark = x.Remark, + ADDR = x.ADDR, + COUNTRY = x.COUNTRY, + COUNTRYName = x.COUNTRYName, + TEL = x.TEL + }) .ToPagedListAsync(input.PageNo, input.PageSize); + + //分享标志 + var tempIdList = entities.Items.Select(x => x.Id).ToList(); + var shareList = _repPrintTemplateShare.AsQueryable().Where(x => tempIdList.Contains(x.TemplateId)).ToList(); + foreach (var item in entities.Items) + { + item.IsShared = shareList.Count(x => x.TemplateId == item.Id) > 0; + } + return entities.XnPagedResult(); } @@ -135,7 +156,8 @@ namespace Myshipping.Application [HttpPost("/BookingTemplate/SaveTemplateShare")] public async Task SaveTemplateShare(List dto) { - if (dto==null|| dto.Count==0) { + if (dto == null || dto.Count == 0) + { throw Oops.Oh("请上传正确数据"); } @@ -145,10 +167,34 @@ namespace Myshipping.Application var entity = item.Adapt(); await _repPrintTemplateShare.InsertAsync(entity); } - + } + /// + /// 分享模板给所有人 + /// + /// + /// + [HttpPost("/BookingTemplate/ShareToAll")] + public async Task ShareTemplate(long tempId) + { + var bts = new BookingTemplateShare(); + bts.TemplateId = tempId; + bts.ShareToId = -1; + bts.ShareToName = "所有人"; + await _repPrintTemplateShare.InsertAsync(bts); + } + /// + /// 取消分享模板 + /// + /// + /// + [HttpPost("/BookingTemplate/CancelShare")] + public async Task CancelShareTemplate(long tempId) + { + _repPrintTemplateShare.Delete(x => x.TemplateId == tempId); + } /// /// 获取分享列表 @@ -157,7 +203,7 @@ namespace Myshipping.Application [HttpGet("/BookingTemplate/GetTemplateShareList")] public async Task GetTemplateShareList(long Id) { - var list = _repPrintTemplateShare.AsQueryable().Filter(null, true).Where(x => x.IsDeleted == false&&x.TemplateId==Id).ToList(); + var list = _repPrintTemplateShare.AsQueryable().Filter(null, true).Where(x => x.IsDeleted == false && x.TemplateId == Id).ToList(); return list; } @@ -192,13 +238,13 @@ namespace Myshipping.Application /// /// [HttpGet("/BookingTemplate/GetTemplateShare")] - public async Task GetTemplateShare(string TemplateName,string Type) + public async Task GetTemplateShare(string TemplateName, string Type) { - var TemplateIds=_repPrintTemplateShare.AsQueryable().Filter(null, true).Where(x => x.IsDeleted == false && x.ShareToId == UserManager.UserId).Select(x => x.TemplateId).ToList(); + var TemplateIds = _repPrintTemplateShare.AsQueryable().Filter(null, true).Where(x => x.IsDeleted == false && (x.ShareToId == UserManager.UserId || x.ShareToId == -1)).Select(x => x.TemplateId).ToList(); - var list =await _rep.AsQueryable().Filter(null, true).Where(x => x.IsDeleted == false && (TemplateIds.Contains(x.Id) || x.CreatedUserId == UserManager.UserId)). - WhereIF(!string.IsNullOrEmpty(TemplateName),x=>x.Title.Contains(TemplateName)). - WhereIF(!string.IsNullOrEmpty(Type), x => x.Type.Contains(Type)).ToListAsync(); + var list = await _rep.AsQueryable().Filter(null, true).Where(x => x.IsDeleted == false && (TemplateIds.Contains(x.Id) || x.CreatedUserId == UserManager.UserId)). + WhereIF(!string.IsNullOrEmpty(TemplateName), x => x.Title.Contains(TemplateName)). + WhereIF(!string.IsNullOrEmpty(Type), x => x.Type.Contains(Type)).Distinct().ToListAsync(); return list; } diff --git a/Myshipping.Application/Service/BookingTemplate/Dto/BookingTemplateInput.cs b/Myshipping.Application/Service/BookingTemplate/Dto/BookingTemplateInput.cs index e372e5f2..428f404c 100644 --- a/Myshipping.Application/Service/BookingTemplate/Dto/BookingTemplateInput.cs +++ b/Myshipping.Application/Service/BookingTemplate/Dto/BookingTemplateInput.cs @@ -107,6 +107,22 @@ namespace Myshipping.Application } + /// + /// 订舱模板查询台账返回数据 + /// + public class QueryBookingTemplateOutput : BookingTemplateInput + { + /// + /// ID + /// + public long Id { get; set; } + + /// + /// 是否已分享(2023年7月6日增加,为满足和川分享给全部用户,不指定具体人员的需求,前端需要知道是否已分享) + /// + public bool IsShared { get; set; } + } + public class BookingTemplateShareDto { @@ -122,7 +138,7 @@ namespace Myshipping.Application /// public long TemplateId { get; set; } /// - /// 分享用户Id + /// 分享用户Id(2023-7-6修改:-1代表所有用户,用于满足和川分享给全部用户的需求) /// public long ShareToId { get; set; } ///