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;
+ }
+ }
+}