diff --git a/Myshipping.Application/Entity/TaskManagePlat/TaskRollingNominationDetailInfo.cs b/Myshipping.Application/Entity/TaskManagePlat/TaskRollingNominationDetailInfo.cs index e5942dfc..8e27f4d3 100644 --- a/Myshipping.Application/Entity/TaskManagePlat/TaskRollingNominationDetailInfo.cs +++ b/Myshipping.Application/Entity/TaskManagePlat/TaskRollingNominationDetailInfo.cs @@ -31,6 +31,21 @@ namespace Myshipping.Application /// public string NOM_STATUS_NOTE { get; set; } + /// + /// 委托客户ID + /// + public Nullable CUSTOMERID { get; set; } + + /// + /// 委托单位名称 + /// + public string CUSTOMERNAME { get; set; } + + /// + /// 订舱ID + /// + public Nullable BOOKING_ID { get; set; } + /// /// 订舱抬头 /// diff --git a/Myshipping.Application/Entity/TaskManagePlat/TaskRollingNominationDispatchInfo.cs b/Myshipping.Application/Entity/TaskManagePlat/TaskRollingNominationDispatchInfo.cs new file mode 100644 index 00000000..d12b07d5 --- /dev/null +++ b/Myshipping.Application/Entity/TaskManagePlat/TaskRollingNominationDispatchInfo.cs @@ -0,0 +1,90 @@ +using Myshipping.Application.Entity; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Myshipping.Application +{ + /// + /// 任务预甩货调度 + /// + [SugarTable("task_rolling_nomination_dispatch")] + [Description("任务预甩货调度")] + public class TaskRollingNominationDispatchInfo : TaskManageDbEntity + { + /// + /// 任务主键 + /// + public string TASK_ID { get; set; } + + /// + /// 预甩货主键 + /// + public string NOM_ID { get; set; } + + /// + /// 预甩船主键 + /// + public string NOM_SHIP_ID { get; set; } + + /// + /// 预甩明细主键 + /// + public string DETAIL_ID { get; set; } + + /// + /// 批次ID + /// + public string BATCH_ID { get; set; } + + /// + /// 是否用户人工确认 1-人工确认(用户在访问链接上做了反馈) 0-不是人工确认 + /// + public bool IS_USER_MANUAL { get; set; } + + /// + /// 是否已通知用户 1-已通知 0-未通知 + /// + public bool IS_SEND { get; set; } + + /// + /// 最后确认期限日期 + /// + public Nullable CONFIRM_DEAD_LINE { get; set; } + + /// + /// 状态 WAIT-待确认,COMPLETE-已完成,CANCEL-已取消,EXPIRE-失效 + /// + public string STATUS { get; set; } + + /// + /// 用户选择意见 + /// + public string USER_OPINION { get; set; } + + /// + /// 用户意见内容 + /// + public string USER_OPINION_TXT { get; set; } + + /// + /// 用户确认时间 + /// + public Nullable CONFIRM_DATE { get; set; } + + /// + /// 生成链接时间 + /// + public Nullable CREATE_SHARE_LINK_DATE { get; set; } + + /// + /// 生成链接访问KEY + /// + public string SHARE_LINK_KEY { get; set; } + + } +} diff --git a/Myshipping.Application/Entity/TaskManagePlat/TaskRollingNominationInfo.cs b/Myshipping.Application/Entity/TaskManagePlat/TaskRollingNominationInfo.cs index 02b03d96..9445ca32 100644 --- a/Myshipping.Application/Entity/TaskManagePlat/TaskRollingNominationInfo.cs +++ b/Myshipping.Application/Entity/TaskManagePlat/TaskRollingNominationInfo.cs @@ -51,6 +51,16 @@ namespace Myshipping.Application /// public Nullable READ_CREATE_TIME { get; set; } + /// + /// 含有二甩声明备注 + /// + public string ROLL_DOUBLE_REMARK { get; set; } + + /// + /// 预甩计划详情 + /// + public string PLAN_TXT { get; set; } + /// /// 备注 /// diff --git a/Myshipping.Application/Entity/TaskManagePlat/TaskShareLinkInfo.cs b/Myshipping.Application/Entity/TaskManagePlat/TaskShareLinkInfo.cs new file mode 100644 index 00000000..03c43190 --- /dev/null +++ b/Myshipping.Application/Entity/TaskManagePlat/TaskShareLinkInfo.cs @@ -0,0 +1,46 @@ +using Myshipping.Application.Entity; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Security.Policy; +using System.Text; +using System.Threading.Tasks; + +namespace Myshipping.Application +{ + /// + /// 任务分享链接 + /// + [SugarTable("task_share_link")] + [Description("任务分享链接")] + public class TaskShareLinkInfo : TaskManageDbEntity + { + /// + /// 任务类型 + /// + public string TASK_TYPE { get; set; } + + /// + /// 业务主键 + /// + public string BUSI_ID { get; set; } + + /// + /// 生成链接访问KEY + /// + public string SHARE_LINK_KEY { get; set; } + + /// + /// 访问URL + /// + public string URL { get; set; } + + /// + /// 失效时间 + /// + public DateTime EXPIRE_DATE { get; set; } + + } +} diff --git a/Myshipping.Application/Helper/SuperShortLinkHelper.cs b/Myshipping.Application/Helper/SuperShortLinkHelper.cs new file mode 100644 index 00000000..408c9667 --- /dev/null +++ b/Myshipping.Application/Helper/SuperShortLinkHelper.cs @@ -0,0 +1,120 @@ +using Microsoft.Extensions.Options; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Myshipping.Application +{ + public class SuperShortLinkHelper + { + private readonly string _base62CharSet; + private readonly int _codeLength; + + public SuperShortLinkHelper(IOptionsSnapshot option) + { + _base62CharSet = option.Value.Secrect; + _codeLength = option.Value.CodeLength; + } + + /// + /// 补充0的长度 + /// + private int ZeroLength + { + get + { + return MaxValue.ToString().Length; + } + } + + /// + /// Code长度位数下能达到的最大值 + /// + private long MaxValue + { + get + { + var max = (long)Math.Pow(62, _codeLength) - 1; + return (long)Math.Pow(10, max.ToString().Length - 1) - 1; + } + } + + /// + /// 【混淆加密】转短码 + /// 1、根据自增主键id前面补0,如:00000123 + /// 2、倒转32100000 + /// 3、把倒转后的十进制转六十二进制(乱序后) + /// + public string Confuse(long id) + { + if (id > MaxValue) + { + throw new Exception($"转换值不能超过最大值{MaxValue}"); + } + + var idChars = id.ToString() + .PadLeft(ZeroLength, '0') + .ToCharArray() + .Reverse(); + + var confuseId = long.Parse(string.Join("", idChars)); + var base62Str = Encode(confuseId); + return base62Str.PadLeft(_codeLength, _base62CharSet.First()); + } + + /// + /// 十进制 -> 62进制 + /// + public string Encode(long value) + { + if (value < 0) + throw new ArgumentOutOfRangeException("value", "value must be greater or equal to zero"); + + var sb = new StringBuilder(); + do + { + sb.Insert(0, _base62CharSet[(int)(value % 62)]); + value /= 62; + } while (value > 0); + + return sb.ToString(); + } + } + + public class ShortLinkOptions + { + + public const string SectionName = "ShortShareLink"; + + /// + /// 短码长度 + /// + [Range(1, int.MaxValue)] + public int CodeLength { get; set; } + + /// + /// 62位加密秘钥 + /// + [Required] + public string Secrect { get; set; } + + /// + /// 缓存数量限制 + /// + public int? CacheCountLimit { get; set; } + + /// + /// 生成默认数据 + /// + public static ShortLinkOptions GenDefault() + { + return new ShortLinkOptions() + { + CacheCountLimit = 10000 + }; + } + } +} diff --git a/Myshipping.Application/Service/TaskManagePlat/Dtos/Nomination/TaskRollingNominationDto.cs b/Myshipping.Application/Service/TaskManagePlat/Dtos/Nomination/TaskRollingNominationDto.cs index 215b11c3..a4c00f8c 100644 --- a/Myshipping.Application/Service/TaskManagePlat/Dtos/Nomination/TaskRollingNominationDto.cs +++ b/Myshipping.Application/Service/TaskManagePlat/Dtos/Nomination/TaskRollingNominationDto.cs @@ -37,19 +37,24 @@ namespace Myshipping.Application public Nullable ConfirmDeadLine { get; set; } /// - /// 原船记录 + /// 含有二甩声明备注 /// - public TaskRollingNominationShipDto From { get; set; } + public string RollingTouchDoubleRollRemark { get; set; } /// - /// 换船记录 + /// 预甩计划详情列表 /// - public List ToDetail { get; set; } + public List RollingPlanList { get; set; } /// - /// 换船明细 + /// 原船记录 /// - public List NominationList { get; set; } + public List From { get; set; } + + /// + /// 换船记录 + /// + public List ToDetail { get; set; } /// /// 生成时间 @@ -60,7 +65,15 @@ namespace Myshipping.Application public class TaskRollingNominationShipDto : TaskRollingNominationShipBaseDto { + /// + /// 换船记录 + /// + public List ToDetail { get; set; } + /// + /// 换船明细 + /// + public List NominationList { get; set; } } /// diff --git a/Myshipping.Application/Service/TaskManagePlat/Dtos/TaskManageMapper.cs b/Myshipping.Application/Service/TaskManagePlat/Dtos/TaskManageMapper.cs index 00ea4917..7bc3668f 100644 --- a/Myshipping.Application/Service/TaskManagePlat/Dtos/TaskManageMapper.cs +++ b/Myshipping.Application/Service/TaskManagePlat/Dtos/TaskManageMapper.cs @@ -855,6 +855,49 @@ namespace Myshipping.Application .Map(dest => dest.FileName, src => src.FILE_NAME) .Map(dest => dest.FileCategory, src => src.FILE_CATEGORY) .Map(dest => dest.FileCategoryName, src => src.FILE_CATEGORY_NAME); + + + config.ForType() + .Map(dest => dest.PLAN_TYPE, src => src.PlanType) + .Map(dest => dest.BATCH_NO, src => src.BatchNo) + .Map(dest => dest.CARRIERID, src => src.CarrierId) + .Map(dest => dest.CARRIER, src => src.Carrier) + .Map(dest => dest.CONFIRM_DEAD_LINE, src => src.ConfirmDeadLine) + .Map(dest => dest.READ_CREATE_TIME, src => src.CreateTime) + .Map(dest => dest.ROLL_DOUBLE_REMARK, src => src.RollingTouchDoubleRollRemark); + + config.ForType() + .Map(dest => dest.SHIP_TYPE, src => src.ShipType) + .Map(dest => dest.SHIP_STRING, src => src.ShipString) + .Map(dest => dest.VSL_CODE, src => src.VslCode) + .Map(dest => dest.VESSEL, src => src.Vessel) + .Map(dest => dest.VOYNO, src => src.VoyNo) + .Map(dest => dest.PORT, src => src.Port) + .Map(dest => dest.TERMINAL, src => src.Terminal) + .Map(dest => dest.ETD, src => src.ETD) + .Map(dest => dest.SI_CUT_DATE, src => src.SICutDate) + .Map(dest => dest.CY_CUTOFF_TIME, src => src.CYCutoffTime) + .Map(dest => dest.VOUCHER_CUT_DATE, src => src.VoucherCutDate) + .Map(dest => dest.VGM_CUTOFF_TIME, src => src.VGMCutoffTime) + .Map(dest => dest.CLOSING_DATE, src => src.CLPNCLCutDate); + + config.ForType() + .Map(dest => dest.NOM_STATUS_NOTE, src => src.Status) + .Map(dest => dest.BOOKED_BY, src => src.Bookedby) + .Map(dest => dest.CONTRACTUAL_NAME, src => src.ContractualName) + .Map(dest => dest.SHIPMENT, src => src.Shipment) + .Map(dest => dest.EQUIPMENT_NUMBER, src => src.EquipmentNumber) + .Map(dest => dest.EQU_SIZE, src => src.EquSize) + .Map(dest => dest.CONTAINER_TYPE, src => src.ContainerType) + .Map(dest => dest.CONTAINER_HEIGHT, src => src.ContainerHeight) + .Map(dest => dest.FEE, src => src.FFE) + .Map(dest => dest.WEIGHT, src => src.Weight) + .Map(dest => dest.PLACEOF_RECEIPT, src => src.PlaceOfReceipt) + .Map(dest => dest.LOADPORT_NAME, src => src.LoadPortName) + .Map(dest => dest.DISCHARGEPORT_NAME, src => src.DischargePortName) + .Map(dest => dest.PLACEOF_DELIVERY, src => src.PlaceOfDelivery) + .Map(dest => dest.BBYMAIL, src => src.BBYMAIL); + } } diff --git a/Myshipping.Application/Service/TaskManagePlat/Dtos/TaskManageOrderMessageMainInfo.cs b/Myshipping.Application/Service/TaskManagePlat/Dtos/TaskManageOrderMessageMainInfo.cs index b3949b36..fdf7d4f3 100644 --- a/Myshipping.Application/Service/TaskManagePlat/Dtos/TaskManageOrderMessageMainInfo.cs +++ b/Myshipping.Application/Service/TaskManagePlat/Dtos/TaskManageOrderMessageMainInfo.cs @@ -1,4 +1,5 @@ -using System; +using Myshipping.Application.Service.TaskManagePlat.Dtos; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -208,5 +209,15 @@ namespace Myshipping.Application /// BC信息 /// public TaskManageOrderBCInfo BCInfo { get; set; } + + /// + /// 预甩货通知 + /// + public TaskRollingNominationDto RollingNomination { get; set; } + + /// + /// 截止时间变更通知 + /// + public TaskCutDateChangeDto CutDateChange { get; set; } } } diff --git a/Myshipping.Application/Service/TaskManagePlat/Interface/ITaskManageCutDateChangeService.cs b/Myshipping.Application/Service/TaskManagePlat/Interface/ITaskManageCutDateChangeService.cs new file mode 100644 index 00000000..052f74a9 --- /dev/null +++ b/Myshipping.Application/Service/TaskManagePlat/Interface/ITaskManageCutDateChangeService.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Myshipping.Application +{ + public interface ITaskManageCutDateChangeService + { + } +} diff --git a/Myshipping.Application/Service/TaskManagePlat/Interface/ITaskManageRollingNominationService.cs b/Myshipping.Application/Service/TaskManagePlat/Interface/ITaskManageRollingNominationService.cs new file mode 100644 index 00000000..0e414422 --- /dev/null +++ b/Myshipping.Application/Service/TaskManagePlat/Interface/ITaskManageRollingNominationService.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Myshipping.Application +{ + /// + /// 预甩货通知 + /// + public interface ITaskManageRollingNominationService + { + /// + /// 获取预甩详情 + /// + /// 预甩主键 + /// 返回回执 + Task GetInfo(string pkId); + + /// + /// 通过任务主键获取预甩详情 + /// + /// 预甩任务主键 + /// 返回回执 + Task GetInfoByTaskId(string taskPkId); + + /// + /// 生成预甩货客户访问链接 + /// + /// 预甩货任务主键组 + /// 返回回执 + Task CreateShareLink(string[] taskPkIds); + + /// + /// 取消预甩货客户访问链接 + /// + /// 预甩货任务主键组 + /// 返回回执 + Task CancelShareLink(string[] taskPkIds); + + /// + /// 推送预甩货客户访问链接 + /// + /// 预甩货任务主键组 + /// 返回回执 + Task PushShareLink(string[] taskPkIds); + + /// + /// 生成预甩货调度 + /// + /// 预甩货船信息主键 + /// 预甩货可Load明细信息主键组 + /// 返回回执 + Task DispatchRollingNomination(string nominationShipId, string[] loadDetailIds); + + /// + /// 查看分享链接 + /// + /// 预甩任务主键 + /// 返回回执 + Task GetUrl(string batchId); + + /// + /// 获取Status是load的可配载的列表 + /// + /// 预甩货任务主键 + /// 返回回执 + Task GetLoadStatusDetailList(string taskPkId); + } +} diff --git a/Myshipping.Application/Service/TaskManagePlat/Interface/ITaskManageShareLinkService.cs b/Myshipping.Application/Service/TaskManagePlat/Interface/ITaskManageShareLinkService.cs new file mode 100644 index 00000000..b4ec7c1d --- /dev/null +++ b/Myshipping.Application/Service/TaskManagePlat/Interface/ITaskManageShareLinkService.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; + +namespace Myshipping.Application +{ + /// + /// 任务分享链接服务 + /// + public interface ITaskManageShareLinkService + { + /// + /// 生成访问链接 + /// + /// 业务ID + /// 任务类型 + /// 失效时间 + /// 返回回执 + Task CreateShareLink(string businessId, string taskType, DateTime expireDate); + + /// + /// 取消访问链接 + /// + /// 访问链接主键 + /// 返回回执 + Task CancelShareLink(string pkId); + + + /// + /// 校验成访问链接 + /// + /// 请求链接 + /// 返回回执 + Task ValidateShareLink(string Url); + + + /// + /// 访问链接 + /// + /// 请求链接 + /// 返回回执 + Task QueryShareLink(string Url); + } +} diff --git a/Myshipping.Application/Service/TaskManagePlat/TaskManageRollingNominationService.cs b/Myshipping.Application/Service/TaskManagePlat/TaskManageRollingNominationService.cs new file mode 100644 index 00000000..e93e272b --- /dev/null +++ b/Myshipping.Application/Service/TaskManagePlat/TaskManageRollingNominationService.cs @@ -0,0 +1,119 @@ +using Furion.DynamicApiController; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Logging; +using Myshipping.Core.Service; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Myshipping.Application +{ + /// + /// 预甩货通知 + /// + [ApiDescriptionSettings("Application", Name = "TaskManageRollingNomination", Order = 10)] + public class TaskManageRollingNominationService : ITaskManageRollingNominationService, IDynamicApiController + { + private readonly ISysCacheService _cache; + private readonly ILogger _logger; + + /// + /// 获取预甩详情 + /// + /// 预甩主键 + /// 返回回执 + public async Task GetInfo(string pkId) + { + TaskManageOrderResultDto result = new TaskManageOrderResultDto(); + + return result; + } + + /// + /// 通过任务主键获取预甩详情 + /// + /// 预甩任务主键 + /// 返回回执 + public async Task GetInfoByTaskId(string taskPkId) + { + TaskManageOrderResultDto result = new TaskManageOrderResultDto(); + + return result; + } + + /// + /// 生成预甩货客户访问链接 + /// + /// 预甩货任务主键组 + /// 返回回执 + public async Task CreateShareLink(string[] taskPkIds) + { + TaskManageOrderResultDto result = new TaskManageOrderResultDto(); + + return result; + } + + /// + /// 取消预甩货客户访问链接 + /// + /// 预甩货任务主键组 + /// 返回回执 + public async Task CancelShareLink(string[] taskPkIds) + { + TaskManageOrderResultDto result = new TaskManageOrderResultDto(); + + return result; + } + + /// + /// 推送预甩货客户访问链接 + /// + /// 预甩货任务主键组 + /// 返回回执 + public async Task PushShareLink(string[] taskPkIds) + { + TaskManageOrderResultDto result = new TaskManageOrderResultDto(); + + return result; + } + + /// + /// 生成预甩货调度 + /// + /// 预甩货船信息主键 + /// 预甩货可Load明细信息主键组 + /// 返回回执 + public async Task DispatchRollingNomination(string nominationShipId, string[] loadDetailIds) + { + TaskManageOrderResultDto result = new TaskManageOrderResultDto(); + + return result; + } + + /// + /// 查看分享链接 + /// + /// 预甩任务主键 + /// 返回回执 + public async Task GetUrl(string batchId) + { + TaskManageOrderResultDto result = new TaskManageOrderResultDto(); + + return result; + } + + /// + /// 获取Status是load的可配载的列表 + /// + /// 预甩货任务主键 + /// 返回回执 + public async Task GetLoadStatusDetailList(string taskPkId) + { + TaskManageOrderResultDto result = new TaskManageOrderResultDto(); + + return result; + } + } +} diff --git a/Myshipping.Application/Service/TaskManagePlat/TaskManageService.cs b/Myshipping.Application/Service/TaskManagePlat/TaskManageService.cs index 7087221b..8e08d736 100644 --- a/Myshipping.Application/Service/TaskManagePlat/TaskManageService.cs +++ b/Myshipping.Application/Service/TaskManagePlat/TaskManageService.cs @@ -101,6 +101,11 @@ namespace Myshipping.Application private readonly SqlSugarRepository _taskTruckInfoRepository; private readonly SqlSugarRepository _taskTruckCtnRepository; + private readonly SqlSugarRepository _taskCutDateChangeInfoRepository; + private readonly SqlSugarRepository _taskRollingNominationInfoRepository; + private readonly SqlSugarRepository _taskRollingNominationShipInfoRepository; + private readonly SqlSugarRepository _taskRollingNominationDetailInfoRepository; + private readonly IDjyWebsiteAccountConfigService _webAccountConfig; private readonly ISysCacheService _cache; private readonly ILogger _logger; @@ -144,6 +149,10 @@ namespace Myshipping.Application SqlSugarRepository taskTruckCtnRepository, SqlSugarRepository taskBCInfoRepository, SqlSugarRepository taskBCCTNInfoRepository, + SqlSugarRepository taskCutDateChangeInfoRepository, + SqlSugarRepository taskRollingNominationInfoRepository, + SqlSugarRepository taskRollingNominationShipInfoRepository, + SqlSugarRepository taskRollingNominationDetailInfoRepository, INamedServiceProvider namedBookingOrderServiceProvider, IDjyWebsiteAccountConfigService webAccountConfig, ISysCacheService cache, @@ -175,6 +184,10 @@ namespace Myshipping.Application _taskTruckCtnRepository = taskTruckCtnRepository; _taskBCInfoRepository = taskBCInfoRepository; _taskBCCTNInfoRepository = taskBCCTNInfoRepository; + _taskCutDateChangeInfoRepository = taskCutDateChangeInfoRepository; + _taskRollingNominationInfoRepository = taskRollingNominationInfoRepository; + _taskRollingNominationShipInfoRepository = taskRollingNominationShipInfoRepository; + _taskRollingNominationDetailInfoRepository = taskRollingNominationDetailInfoRepository; _namedBookingOrderServiceProvider = namedBookingOrderServiceProvider; @@ -743,6 +756,107 @@ namespace Myshipping.Application } #endregion + #region 截止时间变更通知 + + #endregion + + #region Rolling Nomination(预甩货通知) + if (info.Main.TaskType == TaskBaseTypeEnum.ROLLING_NOMINATION || info.Main.TaskType == TaskBaseTypeEnum.TRANSFER_NOMINATION) + { + var rollingNomination = info.Main.RollingNomination.Adapt(); + + rollingNomination.PK_ID = IDGen.NextID().ToString(); + rollingNomination.TASK_ID = taskInfo.PK_ID; + + rollingNomination.CreatedTime = taskInfo.CreatedTime; + rollingNomination.UpdatedTime = taskInfo.CreatedTime; + + rollingNomination.CreatedUserId = taskInfo.CreatedUserId; + rollingNomination.CreatedUserName = taskInfo.CreatedUserName; + rollingNomination.TenantId = taskInfo.TenantId; + rollingNomination.TenantName = taskInfo.TenantName; + + //这里把多条的预甩计划列表合并保存,展示时只需要用\n拆分返回给前端 + if (info.Main.RollingNomination.RollingPlanList != null && info.Main.RollingNomination.RollingPlanList.Count > 0) + { + rollingNomination.PLAN_TXT = string.Join("\\n", info.Main.RollingNomination.RollingPlanList.ToArray()); + } + + await _taskRollingNominationInfoRepository.InsertAsync(rollingNomination); + + if (info.Main.RollingNomination.From != null && info.Main.RollingNomination.From.Count > 0) + { + info.Main.RollingNomination.From.ForEach(k => + { + var rollingNominationShip = k.Adapt(); + + rollingNominationShip.PK_ID = IDGen.NextID().ToString(); + rollingNominationShip.TASK_ID = taskInfo.PK_ID; + rollingNominationShip.NOM_ID = rollingNomination.PK_ID; + + rollingNominationShip.CreatedTime = taskInfo.CreatedTime; + rollingNominationShip.UpdatedTime = taskInfo.CreatedTime; + + rollingNominationShip.CreatedUserId = taskInfo.CreatedUserId; + rollingNominationShip.CreatedUserName = taskInfo.CreatedUserName; + rollingNominationShip.TenantId = taskInfo.TenantId; + rollingNominationShip.TenantName = taskInfo.TenantName; + + _taskRollingNominationShipInfoRepository.Insert(rollingNominationShip); + + }); + } + + if (info.Main.RollingNomination.ToDetail != null && info.Main.RollingNomination.ToDetail.Count > 0) + { + info.Main.RollingNomination.ToDetail.ForEach(t => + { + var rollingNominationShip = t.Adapt(); + + rollingNominationShip.PK_ID = IDGen.NextID().ToString(); + rollingNominationShip.TASK_ID = taskInfo.PK_ID; + rollingNominationShip.NOM_ID = rollingNomination.PK_ID; + + rollingNominationShip.CreatedTime = taskInfo.CreatedTime; + rollingNominationShip.UpdatedTime = taskInfo.CreatedTime; + + rollingNominationShip.CreatedUserId = taskInfo.CreatedUserId; + rollingNominationShip.CreatedUserName = taskInfo.CreatedUserName; + rollingNominationShip.TenantId = taskInfo.TenantId; + rollingNominationShip.TenantName = taskInfo.TenantName; + + _taskRollingNominationShipInfoRepository.Insert(rollingNominationShip); + + if (t.NominationList != null && t.NominationList.Count > 0) + { + t.NominationList.ForEach(x => + { + var rollingNominationDetail = x.Adapt(); + + rollingNominationDetail.PK_ID = IDGen.NextID().ToString(); + rollingNominationDetail.NOM_SHIP_ID = rollingNominationShip.PK_ID; + rollingNominationDetail.NOM_ID = rollingNomination.PK_ID; + + rollingNominationDetail.CreatedTime = taskInfo.CreatedTime; + rollingNominationDetail.UpdatedTime = taskInfo.CreatedTime; + + rollingNominationDetail.CreatedUserId = taskInfo.CreatedUserId; + rollingNominationDetail.CreatedUserName = taskInfo.CreatedUserName; + rollingNominationDetail.TenantId = taskInfo.TenantId; + rollingNominationDetail.TenantName = taskInfo.TenantName; + + _taskRollingNominationDetailInfoRepository.Insert(rollingNominationDetail); + + }); + } + + }); + } + + + } + #endregion + if (info.Main.SerialMsgInfo != null) { var storeInfo = new TaskStoreMsgInfo diff --git a/Myshipping.Application/Service/TaskManagePlat/TaskManageShareLinkService.cs b/Myshipping.Application/Service/TaskManagePlat/TaskManageShareLinkService.cs new file mode 100644 index 00000000..bbd12f48 --- /dev/null +++ b/Myshipping.Application/Service/TaskManagePlat/TaskManageShareLinkService.cs @@ -0,0 +1,69 @@ +using Furion.DynamicApiController; +using Microsoft.AspNetCore.Mvc; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Myshipping.Application.Service.TaskManagePlat +{ + /// + /// 任务分享链接服务 + /// + [ApiDescriptionSettings("Application", Name = "TaskManageShareLink", Order = 10)] + public class TaskManageShareLinkService : ITaskManageShareLinkService, IDynamicApiController + { + /// + /// 生成访问链接 + /// + /// 业务ID + /// 任务类型 + /// 失效时间 + /// 返回回执 + public async Task CreateShareLink(string businessId, string taskType, DateTime expireDate) + { + TaskManageOrderResultDto result = new TaskManageOrderResultDto(); + + return result; + } + + /// + /// 取消访问链接 + /// + /// 访问链接主键 + /// 返回回执 + public async Task CancelShareLink(string pkId) + { + TaskManageOrderResultDto result = new TaskManageOrderResultDto(); + + return result; + } + + + /// + /// 校验成访问链接 + /// + /// 请求链接 + /// 返回回执 + public async Task ValidateShareLink(string Url) + { + TaskManageOrderResultDto result = new TaskManageOrderResultDto(); + + return result; + } + + + /// + /// 访问链接 + /// + /// 请求链接 + /// 返回回执 + public async Task QueryShareLink(string Url) + { + TaskManageOrderResultDto result = new TaskManageOrderResultDto(); + + return result; + } + } +}