From a7102aa065e07730509b4f16533dbe0934b075e1 Mon Sep 17 00:00:00 2001 From: zhangxiaofeng Date: Wed, 13 Mar 2024 11:53:28 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AF=E6=8E=A5?= =?UTF-8?q?=E6=94=B6=E8=AE=A2=E8=88=B1=E5=AE=A1=E6=A0=B8=E9=9C=80=E6=B1=82?= =?UTF-8?q?=E5=90=8E=E6=8E=A8=E9=80=81=E4=B8=9C=E8=83=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BookingCustomerOrderService.cs | 109 +++++++++--------- 1 file changed, 55 insertions(+), 54 deletions(-) diff --git a/Myshipping.Application/Service/BookingCustomerOrder/BookingCustomerOrderService.cs b/Myshipping.Application/Service/BookingCustomerOrder/BookingCustomerOrderService.cs index 643d78bc..7314a381 100644 --- a/Myshipping.Application/Service/BookingCustomerOrder/BookingCustomerOrderService.cs +++ b/Myshipping.Application/Service/BookingCustomerOrder/BookingCustomerOrderService.cs @@ -965,6 +965,61 @@ namespace Myshipping.Application return bkOrder.Id; } + + // 接收到订舱需求审核后推送东胜 + _ = Task.Run(() => + { + try + { + var body = new + { + Type = recModel.Accept ? "CustOrderStatusAccept" : "CustOrderStatusReject", + Data = new + { + model.BSNO, + BSSTATUS = recModel.Accept ? "已审核" : "已驳回", + BookingOrderId = recModel.Accept ? (long?)model.BookingId : null, + COMMENT = recModel.Accept ? null: recModel.Comment + } + }; + var json = body.ToJsonString(); + + var mqUrl = _cache.GetAllSysConfig().Result.FirstOrDefault(x => x.Code == "AuditBookingMqUrl")?.Value ?? throw new Exception("需配置接收订舱需求审核后推送东胜MQ连接串:[AuditBookingMqUrl]"); + + const string MqActionExchangeName = "amq.direct"; + const string MqActionQueueName = "auditbooking.output.ds"; + + ConnectionFactory factory = new ConnectionFactory(); + factory.Uri = new Uri(mqUrl); + + using (IConnection conn = factory.CreateConnection()) + using (IModel mqModel = conn.CreateModel()) + { + mqModel.ExchangeDeclare(MqActionExchangeName, ExchangeType.Direct, true); + + var queueName = $"{MqActionQueueName}.{model.TenantId}"; + mqModel.QueueDeclare(queueName, false, false, false, null); + + mqModel.QueueBind(queueName, MqActionExchangeName, queueName, null); + + IBasicProperties props = mqModel.CreateBasicProperties(); + props.DeliveryMode = 2; + + byte[] messageBodyBytes = Encoding.UTF8.GetBytes(SharpZipLib.Compress(json)); + + mqModel.BasicPublish(MqActionExchangeName, queueName, props, messageBodyBytes); + + conn.Close(); + + _logger.LogInformation($"接收到订舱需求审核后推送东胜,已发送数据到消息队列【{mqUrl}】,数据内容:【{json}】"); + } + } + catch (Exception ex) + { + _logger.LogError(ex, "接收到订舱需求审核后推送东胜时发生异常"); + } + }); + return 0; } #endregion @@ -1448,60 +1503,6 @@ namespace Myshipping.Application SaveAuditLog($"{(accept ? "审核通过" : "审核驳回")},审核意见:{comment}", id); - // 订舱需求审核后推送东胜 - _ = Task.Run(() => - { - try - { - var body = new - { - Type = accept ? "CustOrderStatusAccept" : "CustOrderStatusReject", - Data = new - { - model.BSNO, - BSSTATUS = accept ? "已审核" : "已驳回", - BookingOrderId = accept ? jobjRtn.GetLongValue("data") as long? : null - } - }; - var json = body.ToJsonString(); - - var mqUrl = _cache.GetAllSysConfig().Result.FirstOrDefault(x => x.Code == "AuditBookingMqUrl")?.Value ?? throw new Exception("需配置订舱需求审核后推送东胜MQ连接串:[AuditBookingMqUrl]"); - - const string MqActionExchangeName = "amq.direct"; - const string MqActionQueueName = "auditbooking.output.ds"; - - ConnectionFactory factory = new ConnectionFactory(); - factory.Uri = new Uri(mqUrl); - - using (IConnection conn = factory.CreateConnection()) - using (IModel mqModel = conn.CreateModel()) - { - mqModel.ExchangeDeclare(MqActionExchangeName, ExchangeType.Direct, true); - - var queueName = $"{MqActionQueueName}.{model.BookingCompanyId}"; - mqModel.QueueDeclare(queueName, false, false, false, null); - - mqModel.QueueBind(queueName, MqActionExchangeName, queueName, null); - - IBasicProperties props = mqModel.CreateBasicProperties(); - props.DeliveryMode = 2; - - byte[] messageBodyBytes = Encoding.UTF8.GetBytes(SharpZipLib.Compress(json)); - - mqModel.BasicPublish(MqActionExchangeName, queueName, props, messageBodyBytes); - - conn.Close(); - - _logger.LogInformation($"订舱需求审核后推送东胜,已发送数据到消息队列【{mqUrl}】,数据内容:【{json}】"); - } - } - catch (Exception ex) - { - _logger.LogError(ex, "订舱需求审核后推送东胜时发生异常"); - } - }); - - //进入订舱台账 if (accept) { From 73b4ab4f9d068c02767c55b2b1231bc1f9daa8cf Mon Sep 17 00:00:00 2001 From: wanghaomei <86whm@163.com> Date: Wed, 13 Mar 2024 13:48:22 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BookingCustomerOrderService.cs | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/Myshipping.Application/Service/BookingCustomerOrder/BookingCustomerOrderService.cs b/Myshipping.Application/Service/BookingCustomerOrder/BookingCustomerOrderService.cs index 643d78bc..75a1fef8 100644 --- a/Myshipping.Application/Service/BookingCustomerOrder/BookingCustomerOrderService.cs +++ b/Myshipping.Application/Service/BookingCustomerOrder/BookingCustomerOrderService.cs @@ -1728,11 +1728,90 @@ namespace Myshipping.Application [HttpPost("/BookingCustomerOrder/ReceiveCustomerOrder"), AllowAnonymous, ApiUser] public async Task ReceiveCustomerOrder([FromForm] BookingCustomerApiSaveInput input, IFormFile[] files) { + + #region 校验 + /* +1.必填字段:船公司,开船日期,起运港,目的港,箱型箱量,服务项目,运输条款,付费方式,件数,毛重,包装,货物标识,品名,HSCODE。 +2.条件字段1:若货物标识为冻柜,温度,通风,湿度必填。 +3.条件字段2:若货物标识为危险品,危险品编号,危险品等级,联系人,电话,HSCODE必填。 + */ + if (string.IsNullOrEmpty(input.BSNO)) { throw Oops.Bah("未提供业务ID"); } + if (string.IsNullOrEmpty(input.CARRIERID) || string.IsNullOrEmpty(input.CARRIER)) + { + throw Oops.Bah("船司代码和名称不能为空"); + } + + if (!input.ETD.HasValue) + { + throw Oops.Bah("开船日期不能为空"); + } + + if (string.IsNullOrEmpty(input.PORTLOADID) || string.IsNullOrEmpty(input.PORTLOAD)) + { + throw Oops.Bah("起运港代码和名称不能为空"); + } + + if (string.IsNullOrEmpty(input.PORTDISCHARGEID) || string.IsNullOrEmpty(input.PORTDISCHARGE)) + { + throw Oops.Bah("目的港代码和名称不能为空"); + } + + if (string.IsNullOrEmpty(input.SERVICE)) + { + throw Oops.Bah("运输条款不能为空"); + } + + if (string.IsNullOrEmpty(input.BLFRT)) + { + throw Oops.Bah("付费方式不能为空"); + } + + if (!input.PKGS.HasValue) + { + throw Oops.Bah("件数不能为空"); + } + + if (!input.KGS.HasValue) + { + throw Oops.Bah("重量不能为空"); + } + + if (string.IsNullOrEmpty(input.KINDPKGS)) + { + throw Oops.Bah("包装不能为空"); + } + + if (string.IsNullOrEmpty(input.CARGOID)) + { + throw Oops.Bah("货物标识不能为空"); + } + + if (string.IsNullOrEmpty(input.DESCRIPTION)) + { + throw Oops.Bah("品名不能为空"); + } + + if (string.IsNullOrEmpty(input.HSCODE)) + { + throw Oops.Bah("HSCODE不能为空"); + } + + if(input.CtnList==null||input.CtnList.Count==0) + { + throw Oops.Bah("箱型箱量不能为空"); + } + + if (input.ServiceItemList == null || input.ServiceItemList.Count == 0) + { + throw Oops.Bah("服务项目不能为空"); + } + #endregion + var custOrder = await _rep.AsQueryable().Filter(null, true).FirstAsync(x => x.TenantId == UserManager.TENANT_ID && x.BSNO == input.BSNO); var ins = false; if (custOrder != null) @@ -1744,6 +1823,7 @@ namespace Myshipping.Application await CancelSubmit(new List() { custOrder.Id }); + input.Id = custOrder.Id; input.Adapt(custOrder); }