diff --git a/Myshipping.Application/Service/EmbedProjectGoodsStatus/Dtos/EmbedServiceProjectDto.cs b/Myshipping.Application/Service/EmbedProjectGoodsStatus/Dtos/EmbedServiceProjectDto.cs new file mode 100644 index 00000000..3a3f5284 --- /dev/null +++ b/Myshipping.Application/Service/EmbedProjectGoodsStatus/Dtos/EmbedServiceProjectDto.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Myshipping.Application +{ + /// + /// 内嵌服务项目请求 + /// + public class EmbedServiceProjectDto + { + /// + /// 业务主键 + /// + public string businessId { get; set; } + + /// + /// 服务项目代码 + /// + public string[] ProjectCodes { get; set; } + } +} diff --git a/Myshipping.Application/Service/EmbedProjectGoodsStatus/EmbedProjectGoodsStatusService.cs b/Myshipping.Application/Service/EmbedProjectGoodsStatus/EmbedProjectGoodsStatusService.cs new file mode 100644 index 00000000..606cdcf3 --- /dev/null +++ b/Myshipping.Application/Service/EmbedProjectGoodsStatus/EmbedProjectGoodsStatusService.cs @@ -0,0 +1,175 @@ +using Furion.DependencyInjection; +using Furion.DistributedIDGenerator; +using Furion.DynamicApiController; +using Furion.FriendlyException; +using Furion.JsonSerialization; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Logging; +using StackExchange.Profiling.Internal; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Myshipping.Application +{ + /// + /// 内嵌服务项目和货物状态 + /// + + [AllowAnonymous, ApiDescriptionSettings("Application", Name = "EmbedProjectGoodsStatus", Order = 20)] + public class EmbedProjectGoodsStatusService: IEmbedProjectGoodsStatusService, IDynamicApiController, ITransient + { + private readonly ILogger _logger; + + /// + /// + /// + /// + public EmbedProjectGoodsStatusService(ILogger logger) + { + _logger = logger; + } + + + /// + /// 保存服务项目 + /// + /// 修改服务项目详情 + /// 返回回执 + [HttpPost("/EmbedProjectGoodsStatus/SaveServiceProject")] + public async Task SaveServiceProject(EmbedServiceProjectDto model) + { + TaskManageOrderResultDto result = new TaskManageOrderResultDto(); + + string batchNo = IDGen.NextID().ToString(); + + try + { + if (string.IsNullOrWhiteSpace(model.businessId)) + throw Oops.Oh($"业务主键不能为空"); + + _logger.LogInformation("批次={no} 请求保存服务项目 modifyjson={msg}", batchNo, JSON.Serialize(model)); + + TrackingMessageInfo msgInfo = new TrackingMessageInfo + { + Head = new TrackingMessageHeadInfo + { + GID = IDGen.NextID().ToString(), + MessageType = "PROJECT", + ReceiverId = "ServiceProjectStatus", + ReceiverName = "服务项目和状态", + SenderId = "BookingOrder", + SenderName = "海运订舱", + RequestDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), + Version = "2.0", + RequestAction = "AddOrModify", + }, + Main = new TrackingMessageMainInfo + { + BusiId = model.businessId, + BusiSystemCode = "BOOKING_ORDER", + MBlNo = "", + VesselVoyno = "", + OrderNo = "", + PushType = TrackingPushTypeEnum.Project, + OperTenantId = 0, + OperTenantName = "", + OpertType = TrackingOperTypeEnum.MANUAL, + OperUserId = "", + OperUserName = "", + SourceType = TrackingSourceTypeEnum.MANUAL, + ProjectList = model.ProjectCodes.Select(a => new TrackingMessageMainProjectInfo + { + ServiceProjectCode = a, + }).ToList() + } + }; + + DateTime bDate = DateTime.Now; + + _logger.LogInformation("批次={no} 推送保存服务项目 msg={msg}", batchNo, JSON.Serialize(msgInfo)); + + //var rlt = await _serviceWorkFlowManageService.PushStatus(msgInfo); + + //DateTime eDate = DateTime.Now; + //TimeSpan ts = eDate.Subtract(bDate); + //var timeDiff = ts.TotalMilliseconds; + + //_logger.LogInformation("批次={no} 请求完成,耗时:{timeDiff}ms. 结果{msg} result={rlt}", batchNo, timeDiff, (rlt.succ ? "成功" : "失败") + // , JSON.Serialize(rlt)); + + //if (!rlt.succ) + //{ + // result = rlt; + //} + //else + //{ + // result.succ = true; + // result.msg = "保存成功"; + //} + + } + catch (Exception ex) + { + result.succ = false; + result.msg = $"服务项目保存失败,原因:{ex.Message}"; + } + + return result; + } + + /// + /// 取消服务项目 + /// + /// 修改服务项目详情 + /// 返回回执 + public async Task CancelServiceProject(ModifyServiceProjectDto model) + { + return null; + } + + /// + /// 获取服务项目列表 + /// + /// 查询服务项目和状态详情 + /// 返回回执 + public async Task GetServiceProjectList(QueryServiceProjectWithStatus model) + { + return null; + } + + + /// + /// 获取服务项目下的状态列表 + /// + /// 查询服务项目和状态详情 + /// 返回回执 + public async Task GetServiceStatusList(QueryServiceProjectWithStatus model) + { + return null; + } + + /// + /// 保存服务状态 + /// + /// 修改服务状态详情 + /// 返回回执 + public async Task SaveServiceStatus(ModifyServiceProjectStatusDto model) + { + return null; + } + + /// + /// 取消服务状态 + /// + /// 修改服务状态详情 + /// 返回回执 + public async Task CancelServiceStatus(ModifyServiceProjectStatusDto model) + { + return null; + } + } +} diff --git a/Myshipping.Application/Service/EmbedProjectGoodsStatus/Interface/IEmbedProjectGoodsStatusService.cs b/Myshipping.Application/Service/EmbedProjectGoodsStatus/Interface/IEmbedProjectGoodsStatusService.cs new file mode 100644 index 00000000..9b2ca01e --- /dev/null +++ b/Myshipping.Application/Service/EmbedProjectGoodsStatus/Interface/IEmbedProjectGoodsStatusService.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Myshipping.Application +{ + public interface IEmbedProjectGoodsStatusService + { + /// + /// 保存服务项目 + /// + /// 修改服务项目详情 + /// 返回回执 + Task SaveServiceProject(EmbedServiceProjectDto model); + + /// + /// 取消服务项目 + /// + /// 修改服务项目详情 + /// 返回回执 + Task CancelServiceProject(ModifyServiceProjectDto model); + + /// + /// 获取服务项目列表 + /// + /// 查询服务项目和状态详情 + /// 返回回执 + Task GetServiceProjectList(QueryServiceProjectWithStatus model); + + + /// + /// 获取服务项目下的状态列表 + /// + /// 查询服务项目和状态详情 + /// 返回回执 + Task GetServiceStatusList(QueryServiceProjectWithStatus model); + + /// + /// 保存服务状态 + /// + /// 修改服务状态详情 + /// 返回回执 + Task SaveServiceStatus(ModifyServiceProjectStatusDto model); + + /// + /// 取消服务状态 + /// + /// 修改服务状态详情 + /// 返回回执 + Task CancelServiceStatus(ModifyServiceProjectStatusDto model); + } +}