diff --git a/Myshipping.Application/Entity/BookingPrintTemplate.cs b/Myshipping.Application/Entity/BookingPrintTemplate.cs index 6e0fc541..96c0aab1 100644 --- a/Myshipping.Application/Entity/BookingPrintTemplate.cs +++ b/Myshipping.Application/Entity/BookingPrintTemplate.cs @@ -31,5 +31,13 @@ namespace Myshipping.Application.Entity /// 租户名称 /// public string TenantName { get; set; } + /// + /// 主单 + /// + public bool IsMain { get; set; } + /// + /// 分单 + /// + public bool IsSub { get; set; } } } \ No newline at end of file diff --git a/Myshipping.Application/Myshipping.Application.xml b/Myshipping.Application/Myshipping.Application.xml index 87c60454..f3bcc4a7 100644 --- a/Myshipping.Application/Myshipping.Application.xml +++ b/Myshipping.Application/Myshipping.Application.xml @@ -3341,19 +3341,14 @@ 租户名称 - + - 订舱打印模板权限表 + 主单 - + - 人员id - - - - - 模板id + 分单 @@ -3651,11 +3646,6 @@ 订舱业务主键 - - - 反馈结果 - - 任务账单费用明细 @@ -3746,11 +3736,6 @@ 是否东胜接收 1-是 0-否 - - - 主单号 - - 任务邮件表 @@ -3796,34 +3781,24 @@ 主键 - + 创建时间 - + 修改时间 - - - 创建人ID - - - - - 创建人名称 - - - + - 修改人ID + 创建人 - + - 修改人名称 + 修改人 @@ -3831,11 +3806,6 @@ 租户id - - - 租户名称 - - 软删除 @@ -4036,191 +4006,11 @@ 第三付款地 - - - 主键 - - - - - 统计类型 PERSONAL-个人 PUBLIC-公共 - - - - - 任务状态 - - - - - 是否异常 1-异常 0-正常 - - - - - 用户ID - - - - - 用户显示名 - - - - - 公司ID - - - - - 公司名称 - - - - - 订舱确认合计条数 - - - - - 提单草单合计条数 - - - - - 订舱取消合计条数 - - - - - 海运单下载合计条数 - - - - - 提单正本下载合计条数 - - - - - 未装载合计条数 - - - - - 未装船合计条数 - - - - - 航次账单合计条数 - - - - - 电放通知合计条数 - - - - - SI详情合计条数 - - - - - VGM详情合计条数 - - - - - 单票账单合计条数 - - - - - 换船通知合计条数 - - - - - 取消换船通知合计条数 - - - - - 下货纸合计条数 - - - - - 正本缺失合计条数 - - - - - 地中海订舱确认合计条数 - - - - - 地中海订舱取消合计条数 - - - - - 地中海订舱挂起合计条数 - - 任务VGM比对回执详情表 - - - 任务主键(父主键) - - - - - 集装箱号 - - - - - 铅封号 - - - - - 箱型代码 - - - - - 箱型 - - - - - 重量 - - - - - 皮重 - - - - - 称重重量 - - - - - 称重方式 - - 收发通模板类型 @@ -4366,529 +4156,274 @@ 未指定 - + - 任务类型基础枚举 + 任务状态枚举 - + - BC + 待处理 - + - DRAFT + 已转发 - + - CANCELLATION + 已完成 - + - SEAWAY BILL下载 + 已取消 - + - 提单正本下载 + 已挂起 - + - 未装载 + 获取场站数据辅助类(调用爬虫新运踪接口) - + - 未装船 + 多品名输出参数 - + - 航次账单邮件 + 主键 - + - VGM对比 + 集装箱ID - + - 电放通知 + 件数 - + - SI回执 + 包装 - + - 单票账单 + 毛重 - + - 换船通知 + 尺码 - + - 取消换船通知 + HS编码 - + - 下货纸 + 唛头 - + - 正本缺失 + 货描 - + - VGM异常 + 备注 - + - 任务类型业务枚举 + 多品名输入参数 - + - BC + 集装箱ID - + - DRAFT + 件数 - + - CANCELLATION + 包装 - + - SEAWAY BILL下载 + 毛重 - + - 提单正本下载 + 尺码 - + - 未装载 + HS编码 - + - 未装船 + 唛头 - + - 航次账单邮件 + 货描 - + - VGM对比 + 备注 - + - 电放通知 + 多品名新增输入参数 - + - SI详情 + 多品名修改输入参数 - + - 单票账单 + 主键 - + - 换船通知 + 多品名获取(删除)输入参数 - + - 取消换船通知 + 主键 - + - 下货纸 + 多品名查询输入参数 - + - 正本缺失 + 主键 - + - VGM异常 + 集装箱ID - + - MSC_BC + 件数 - + - MSC取消 + 包装 - + - MSC异常 + 毛重 - + - MSC挂起 + 尺码 - + - VGM反馈详情 + HS编码 - + - 任务来源枚举 + 唛头 - + - EDI + 货描 - + - 邮件 + 备注 - + - 邮件解析 + 多品名输出参数 - + - FTP + 主键 - + - 转发 + 集装箱ID - + - 运踪 + 件数 - + - 网站查询 + 包装 - + - 客户提交 + 毛重 - + - 系统 + 尺码 - + - 任务状态枚举 + HS编码 - + - 待处理 + 唛头 - + - 已转发 - - - - - 已完成 - - - - - 已取消 - - - - - 已挂起 - - - - - 获取场站数据辅助类(调用爬虫新运踪接口) - - - - - 多品名输出参数 - - - - - 主键 - - - - - 集装箱ID - - - - - 件数 - - - - - 包装 - - - - - 毛重 - - - - - 尺码 - - - - - HS编码 - - - - - 唛头 - - - - - 货描 - - - - - 备注 - - - - - 多品名输入参数 - - - - - 集装箱ID - - - - - 件数 - - - - - 包装 - - - - - 毛重 - - - - - 尺码 - - - - - HS编码 - - - - - 唛头 - - - - - 货描 - - - - - 备注 - - - - - 多品名新增输入参数 - - - - - 多品名修改输入参数 - - - - - 主键 - - - - - 多品名获取(删除)输入参数 - - - - - 主键 - - - - - 多品名查询输入参数 - - - - - 主键 - - - - - 集装箱ID - - - - - 件数 - - - - - 包装 - - - - - 毛重 - - - - - 尺码 - - - - - HS编码 - - - - - 唛头 - - - - - 货描 - - - - - 备注 - - - - - 多品名输出参数 - - - - - 主键 - - - - - 集装箱ID - - - - - 件数 - - - - - 包装 - - - - - 毛重 - - - - - 尺码 - - - - - HS编码 - - - - - 唛头 - - - - - 货描 + 货描 @@ -6958,12 +6493,7 @@ 主单ID - - - 人员id - - - + EDI扩展 @@ -9102,19 +8632,6 @@ - - - 新增打印模板权限 - - - - - - - 获取打印模板权限 - - - 订舱打印模板输入参数 @@ -9140,6 +8657,16 @@ 租户名称 + + + 主单 + + + + + 分单 + + 订舱打印模板新增输入参数 @@ -10604,644 +10131,5 @@ - - - 费用明细 - - - - - 顺序号 - - - - - 费用代码 - - - - - 费用名称 - - - - - 费用金额 - - - - - 费用金额(美金) - - - - - 币制 - - - - - S20 - - - - - S40 - - - - - S45 - - - - - 箱型 - - - - - 数量 - - - - - 单位 - - - - - 税率类型 - - - - - 税率 - - - - - 合计金额 - - - - - 是否东胜接收 1-是 0-否 - - - - - 主单号 - - - - - - - - - - 文件路径 - - - - - 文件类型 - - - - - 文件名 - - - - - 邮件 - - - - - 邮件路径 - - - - - - - - - - 报文惟一主键 - - 08dabd4e-dcc3-471a-8031-cf066ed0a8f4 - - - - 报文类型 TASK-任务 - - TASK - - - - 发送方代码 - - MAIL_PARSE - - - - 发送方名称 - - 邮件解析 - - - - 接收方代码 - - TaskManage - - - - 接收方名称 - - 任务管理平台 - - - - 请求方登录TOKEN(可以是真实的登录人TOKEN或者是服务模拟登录人TOKEN) - - eyJhbGciOiJSUzI1NiIsImtpZCI6IkQ1RTkxMDI5OUU0RURFNUZEM0EwNTJBMEFDRDUzMUQzIiwidHlwIjoiYXQrand0In0 - - - - 版本号 默认1.0 - - 1.0 - - - - 请求时间 - - 2022-12-23 14:29:11 - - - - 请求授权KEY - - testkey - - - - 请求操作类型 - - Add - - - - 任务请求报文 - - - - - 表头 - - - - - 表体 - - - - - - - - - - 任务类型 - - - - - 任务来源 - - - - - 船公司代号 - - - - - 任务标题 - - - - - 任务描述 - - - - - 订舱业务主键(非必填,推送任务的系统可以明确当票对应的订舱主键需要填入) - - - - - 主单号 - - - - - 反馈结果 - - - - - 是否异常 1-异常 0-未异常 - - - - - 任务对应操作人ID - - - - - 任务对应操作人名称 - - - - - 任务对应部门代码 - - - - - 任务对应部门名称 - - - - - 费用明细(当业务类型是INVOICE_BILL_MAIL-航次账单;PER_BILL-单票账单时需要传费用明细) - - - - - 装船通知(SI)详情(当业务类型是SI_FEEDBACK时,需要填写装船通知详情) - - - - - 装船通知与提单草单内容对比列表(当业务类型是DRAFT时) - - - - - VGM反馈详情列表 - - - - - 附件列表 - - - - - 邮件列表 - - - - - 回执 - - - - - 是否成功 true=成功 false=失败 - - - - - 状态 0-成功 - - - - - 返回消息 - - - - - 返回校验明细 - - - - - 装船通知与提单草单内容对比 - - - - - 字段代码 - - - - - 字段名称 - - - - - 是否有差异 1-有差异 0-无差异 - - - - - 装船通知内容 - - - - - 提单草单内容 - - - - - 箱信息 - - - - - 集装箱号 - - RFCU2088064 - - - - 铅封号 - - T090518 - - - - 件数 - - 222 - - - - 重量 - - 1651 - - - - 尺寸 - - 9.67 - - - - 箱型代码 - - 20GP - - - - 箱型 - - 20GP - - - - SI详情 - - - - - 发货人 - - - - - 收货人 - - - - - 通知人 - - - - - 唛头 - - - - - 货描 - - - - - 截单备注 - - - - - 付费方式 - - - - - 运输条款 - - CY-CY - - - - 签单方式 - - TELEX - - - - 装货港代码 - - CNTAO - - - - 装货港 - - - - - 卸货港代码 - - GUPIT - - - - 卸货港 - - - - - 中转港代码 - - GUPIT - - - - 中转港 - - - - - 目的地代码 - - GUPIT - - - - 目的地 - - - - - 件数 - - - - - 包装 - - - - - 毛重 - - - - - 尺寸 - - - - - 第三付款地 - - - - - 箱信息 - - - - - - - - - - 集装箱号 - - - - - 铅封号 - - - - - 箱型代码 - - - - - 箱型 - - - - - 重量 - - - - - 皮重 - - - - - 称重重量 - - - - - 称重方式 - - - - - - - - - - 创建任务 - - 任务详情 - 返回回执 - - - - 获取查询参数 - - 参数类型 STATUS-任务状态;TASK_TYPE-任务类型;SOURCE-任务来源 - 返回回执 - - - - 获取登陆人相关的任务统计信息 - - 是否强制计算 - 返回回执 - - - - 任务管理 - - - - - 创建任务 - - 任务详情 - 返回回执 - - - - 新增任务 - - 任务详情 - 返回回执 - - - - 获取查询参数 - - 参数类型 STATUS-任务状态;TASK_TYPE-任务类型;SOURCE-任务来源 - 返回回执 - TASK_TYPE - - - - 获取登陆人相关的任务统计信息 - - 是否强制计算 - 返回回执 - diff --git a/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs b/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs index 3c7dcdce..de634183 100644 --- a/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs +++ b/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs @@ -55,6 +55,7 @@ using System.Net; using Furion.DistributedIDGenerator; using System.Linq.Expressions; using Myshipping.Core.Extension; +using System.Text.RegularExpressions; namespace Myshipping.Application { @@ -1636,8 +1637,12 @@ namespace Myshipping.Application .Where(d => d.TenantId == UserManager.TENANT_ID) .Select(d => new { + d.TypeCode, - d.TypeName + d.TypeName, + d.IsMain, + d.IsSub + }) .ToListAsync(); @@ -2518,9 +2523,12 @@ namespace Myshipping.Application contaModel.CTNALLCODE = currConta.MapCode; + if (string.IsNullOrWhiteSpace(conta.KINDPKGS)) + throw Oops.Oh($"集装箱包装不能为空"); + var curContaBasePkgs = basePkgsList.FirstOrDefault(p => p.Name.Equals(conta.KINDPKGS, StringComparison.OrdinalIgnoreCase)); - if (curBasePkgs == null) + if (curContaBasePkgs == null) throw Oops.Bah($"包装{conta.KINDPKGS}的基础数据代码未找到"); //EDI包装 @@ -2547,7 +2555,15 @@ namespace Myshipping.Application cargoModel.CNTRNO = contaList.FirstOrDefault(a => a.Id == cargo.CTNID.Value).CNTRNO; - var ediDetailPkgs = ediPkgsList.FirstOrDefault(x => x.Code.Equals(cargo.KINDPKGS, StringComparison.OrdinalIgnoreCase)); + if (string.IsNullOrWhiteSpace(cargo.KINDPKGS)) + throw Oops.Oh($"多品名包装不能为空"); + + var curCargoBasePkgs = basePkgsList.FirstOrDefault(p => p.Name.Equals(cargo.KINDPKGS, StringComparison.OrdinalIgnoreCase)); + + if (curCargoBasePkgs == null) + throw Oops.Bah($"包装{cargo.KINDPKGS}的基础数据代码未找到"); + + var ediDetailPkgs = ediPkgsList.FirstOrDefault(x => x.Code.Equals(curCargoBasePkgs.Code, StringComparison.OrdinalIgnoreCase)); if (ediDetailPkgs == null) throw Oops.Oh($"货明细的包装{cargo.KINDPKGS}的EDI代码未找到"); @@ -2744,7 +2760,14 @@ namespace Myshipping.Application _logger.LogInformation($"调用SO(SI),校验:{strCheck},数据对象:{JsonConvert.SerializeObject(ediModel)}"); if (!string.IsNullOrWhiteSpace(strCheck)) + { + //if (Regex.IsMatch(strCheck, "\\")) + //{ + // strCheck = Regex.Replace(strCheck, "\\", "\\r\\n"); + //} throw Oops.Bah($"发送{EDIRouteEnum.PIL.ToString()}校验失败,{strCheck}"); + } + var currRlt = PILEdiHelper.CreateEdiPIL(ediModel); #endregion @@ -2759,7 +2782,14 @@ namespace Myshipping.Application _logger.LogInformation($"调用SO(SI),校验:{strCheck},数据对象:{JsonConvert.SerializeObject(ediModel)}"); if (!string.IsNullOrWhiteSpace(strCheck)) + { + //if (Regex.IsMatch(strCheck, "\\")) + //{ + // strCheck = Regex.Replace(strCheck, "\\", "\\r\\n"); + //} + throw Oops.Bah($"发送{EDIRouteEnum.PIL.ToString()}校验失败,{strCheck}"); + } CommonWebApiResult currRlt = new CommonWebApiResult(); @@ -2784,7 +2814,13 @@ namespace Myshipping.Application _logger.LogInformation($"调用SO(SI),校验:{strCheck},数据对象:{JsonConvert.SerializeObject(ediModel)}"); if (!string.IsNullOrWhiteSpace(strCheck)) + { + //if (Regex.IsMatch(strCheck, "\\")) + //{ + // strCheck = Regex.Replace(strCheck, "\\", "\\r\\n"); + //} throw Oops.Bah($"发送{EDIRouteEnum.PIL.ToString()}校验失败,{strCheck}"); + } var currRlt = WYEdiHelper.CreateEdiWY(ediModel); #endregion @@ -2800,7 +2836,9 @@ namespace Myshipping.Application _logger.LogInformation($"调用SO(SI),校验:{strCheck},数据对象:{JsonConvert.SerializeObject(ediModel)}"); if (!string.IsNullOrWhiteSpace(strCheck)) + { throw Oops.Bah($"发送{EDIRouteEnum.PIL.ToString()}校验失败,{strCheck}"); + } CommonWebApiResult currRlt = new CommonWebApiResult(); @@ -2825,7 +2863,15 @@ namespace Myshipping.Application _logger.LogInformation($"调用SO(SI),校验:{strCheck},数据对象:{JsonConvert.SerializeObject(ediModel)}"); if (!string.IsNullOrWhiteSpace(strCheck)) + { + //if (Regex.IsMatch(strCheck, "\\")) + //{ + // strCheck = Regex.Replace(strCheck, "\\", "
"); + //} + throw Oops.Bah($"发送{EDIRouteEnum.PIL.ToString()}校验失败,{strCheck}"); + } + CommonWebApiResult currRlt = YTEdiHelper.CreateEdiYT(ediModel); #endregion diff --git a/Myshipping.Application/Service/BookingPrintTemplate/Dto/BookingPrintTemplateInput.cs b/Myshipping.Application/Service/BookingPrintTemplate/Dto/BookingPrintTemplateInput.cs index 50f9579a..31712bd6 100644 --- a/Myshipping.Application/Service/BookingPrintTemplate/Dto/BookingPrintTemplateInput.cs +++ b/Myshipping.Application/Service/BookingPrintTemplate/Dto/BookingPrintTemplateInput.cs @@ -29,6 +29,15 @@ namespace Myshipping.Application ///
public string TenantName { get; set; } + /// + /// 主单 + /// + public bool IsMain { get; set; } + /// + /// 分单 + /// + public bool IsSub { get; set; } + } /// diff --git a/Myshipping.Application/Service/BookingTemplate/BookingTemplateService.cs b/Myshipping.Application/Service/BookingTemplate/BookingTemplateService.cs index a530b828..f68b7774 100644 --- a/Myshipping.Application/Service/BookingTemplate/BookingTemplateService.cs +++ b/Myshipping.Application/Service/BookingTemplate/BookingTemplateService.cs @@ -52,11 +52,11 @@ namespace Myshipping.Application [HttpPost("/BookingTemplate/add")] public async Task Add(AddBookingTemplateInput input) { - var c = _rep.Count(x => x.Type.Contains(input.Type) && x.Title == input.Title); - if (c > 0) - { - throw Oops.Oh(BookingErrorCode.BOOK101); - } + //var c = _rep.Count(x => x.Type.Contains(input.Type) && x.Title == input.Title); + //if (c > 0) + //{ + // throw Oops.Oh(BookingErrorCode.BOOK101); + //} var entity = input.Adapt(); await _rep.InsertAsync(entity);