wet 1 year ago
commit 1fdf0078fb

@ -1,5 +1,7 @@
using Furion; using Furion;
using Furion.EventBus; using Furion.EventBus;
using Furion.FriendlyException;
using Furion.RemoteRequest.Extensions;
using Mapster; using Mapster;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
@ -8,6 +10,8 @@ using Myshipping.Application.Entity;
using Myshipping.Application.Service.BookingOrder.Dto; using Myshipping.Application.Service.BookingOrder.Dto;
using Myshipping.Core; using Myshipping.Core;
using Myshipping.Core.Entity; using Myshipping.Core.Entity;
using Myshipping.Core.Service;
using Newtonsoft.Json.Linq;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
@ -48,6 +52,8 @@ namespace Myshipping.Application.Event
var repoGoodsSta = scope.ServiceProvider.GetRequiredService<SqlSugarRepository<BookingGoodsStatus>>(); var repoGoodsSta = scope.ServiceProvider.GetRequiredService<SqlSugarRepository<BookingGoodsStatus>>();
var repoGoodsStaCfg = scope.ServiceProvider.GetRequiredService<SqlSugarRepository<BookingGoodsStatusConfig>>(); var repoGoodsStaCfg = scope.ServiceProvider.GetRequiredService<SqlSugarRepository<BookingGoodsStatusConfig>>();
var cacheService = scope.ServiceProvider.GetRequiredService<ISysCacheService>();
var custOrder = await repoCutomerOrder.AsQueryable().Filter(null, true).FirstAsync(x => x.BookingId == bookId); var custOrder = await repoCutomerOrder.AsQueryable().Filter(null, true).FirstAsync(x => x.BookingId == bookId);
if (custOrder == null) //非客户订舱系统过来的数据 if (custOrder == null) //非客户订舱系统过来的数据
{ {
@ -105,7 +111,50 @@ namespace Myshipping.Application.Event
} }
} }
_logger.LogInformation($"准备发送客户订舱数据同步:{sendObj.ToJsonString()}"); //回推回执
var recFeedbackConfig = cacheService.GetAllSysConfig().Result.FirstOrDefault(x => x.Code == "DjyBookingCustomerRecFeedbackURL");
if (recFeedbackConfig == null || string.IsNullOrEmpty(recFeedbackConfig.Value))
{
throw Oops.Bah("回推订舱数据的URL地址未配置请联系管理员");
}
var recFeedbackUserKey = cacheService.GetAllSysConfig().Result.FirstOrDefault(x => x.Code == "DjyBookingCustomerRecFeedbackUserKey");
if (recFeedbackUserKey == null || string.IsNullOrEmpty(recFeedbackUserKey.Value))
{
throw Oops.Bah("回推订舱数据的用户KEY未配置请联系管理员");
}
var recFeedbackUserSecret = cacheService.GetAllSysConfig().Result.FirstOrDefault(x => x.Code == "DjyBookingCustomerRecFeedbackUserSecret");
if (recFeedbackUserSecret == null || string.IsNullOrEmpty(recFeedbackUserSecret.Value))
{
throw Oops.Bah("回推订舱数据的用户秘钥未配置,请联系管理员");
}
var feedbackUrl = recFeedbackConfig.Value;
if (!feedbackUrl.EndsWith("/"))
{
feedbackUrl += "/";
}
feedbackUrl += "BookingCustomerOrder/RecBookingDataFeedback";
_logger.LogInformation($"准备发送客户订舱数据同步:{sendObj.ToJsonString()}URL{feedbackUrl}");
var rtn = await feedbackUrl
.SetHeaders(new Dictionary<string, object> {
{ CommonConst.API_USER_HEADER_KEY, recFeedbackUserKey.Value},
{ CommonConst.API_USER_HEADER_SECRET, recFeedbackUserSecret.Value}
})
.SetBody(sendObj)
.PostAsStringAsync();
_logger.LogInformation($"回推审核返回:{rtn}");
var jobjRtn = JObject.Parse(rtn);
if (jobjRtn.GetIntValue("code") != 200)
{
throw Oops.Bah(jobjRtn.GetStringValue("message"));
}
} }
} }
} }

@ -65,6 +65,7 @@ namespace Myshipping.Application
public async Task<SqlSugarPagedList<BookingCustomerOrderListOutput>> PageData(BookingCustomerOrderQueryInput input) public async Task<SqlSugarPagedList<BookingCustomerOrderListOutput>> PageData(BookingCustomerOrderQueryInput input)
{ {
var query = _rep.AsQueryable().Filter(null, true).Where(x => x.TenantId == UserManager.TENANT_ID) var query = _rep.AsQueryable().Filter(null, true).Where(x => x.TenantId == UserManager.TENANT_ID)
.Where(x => !x.IsDeleted)
.WhereIF(!string.IsNullOrEmpty(input.BOOKINGNO), x => x.BOOKINGNO.Contains(input.BOOKINGNO)) .WhereIF(!string.IsNullOrEmpty(input.BOOKINGNO), x => x.BOOKINGNO.Contains(input.BOOKINGNO))
.WhereIF(!string.IsNullOrEmpty(input.VESSEL), x => x.VESSEL.Contains(input.VESSEL)) .WhereIF(!string.IsNullOrEmpty(input.VESSEL), x => x.VESSEL.Contains(input.VESSEL))
.WhereIF(!string.IsNullOrEmpty(input.VOYNO), x => x.VOYNO.Contains(input.VOYNO)) .WhereIF(!string.IsNullOrEmpty(input.VOYNO), x => x.VOYNO.Contains(input.VOYNO))
@ -357,19 +358,25 @@ namespace Myshipping.Application
/// <summary> /// <summary>
/// 删除 /// 删除
/// </summary> /// </summary>
/// <param name="id"></param> /// <param name="ids"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost("/BookingCustomerOrder/Delete")] [HttpPost("/BookingCustomerOrder/Delete")]
public async Task Delete(long id) public async Task Delete(List<long> ids)
{ {
var entity = await _rep.AsQueryable().Filter(null, true).FirstAsync(x => x.Id == id); var list = await _rep.AsQueryable().Filter(null, true).Where(x => ids.Contains(x.Id)).ToListAsync();
if (entity.BSSTATUS != "已录入" && entity.BSSTATUS != "已驳回")
var canNotDelList = list.Where(x => x.BSSTATUS != "已录入" && x.BSSTATUS != "已驳回");
if (canNotDelList.Any())
{ {
throw Oops.Bah("当前状态不能删除"); var errMsg = string.Join("\r\n", canNotDelList.Select(x => $"{x.BOOKINGNO}的数据当前状态不能删除").ToList());
throw Oops.Bah(errMsg);
} }
entity.IsDeleted = true; list.ForEach(x =>
await _rep.UpdateAsync(entity); {
x.IsDeleted = true;
_rep.Update(x);
});
} }
#endregion #endregion
@ -389,9 +396,9 @@ namespace Myshipping.Application
throw Oops.Bah("大简云接收订舱URL地址未配置请联系管理员"); throw Oops.Bah("大简云接收订舱URL地址未配置请联系管理员");
} }
var userId = _cache.GetAllTenantParam().Result.FirstOrDefault(x => x.TenantId == UserManager.TENANT_ID && x.ParaCode == "DjyBookingReceiveUserId"); var userId = _cache.GetAllSysConfig().Result.FirstOrDefault(x => x.Code == "DjyBookingReceiveUserId");
var userSecret = _cache.GetAllTenantParam().Result.FirstOrDefault(x => x.TenantId == UserManager.TENANT_ID && x.ParaCode == "DjyBookingReceiveUserSecret"); var userSecret = _cache.GetAllSysConfig().Result.FirstOrDefault(x => x.Code == "DjyBookingReceiveUserSecret");
if (userId == null || string.IsNullOrEmpty(userId.ItemCode) || userSecret == null || string.IsNullOrEmpty(userSecret.ItemCode)) if (userId == null || string.IsNullOrEmpty(userId.Value) || userSecret == null || string.IsNullOrEmpty(userSecret.Value))
{ {
throw Oops.Bah("大简云接收订舱用户key和秘钥未配置请联系管理员"); throw Oops.Bah("大简云接收订舱用户key和秘钥未配置请联系管理员");
} }
@ -450,12 +457,12 @@ namespace Myshipping.Application
submitUrl += "BookingCustomerOrder/ReceiveBooking"; submitUrl += "BookingCustomerOrder/ReceiveBooking";
_logger.LogInformation($"提交订舱数据({submitUrl}{userId.ItemCode}{userSecret.ItemCode}{JsonConvert.SerializeObject(sendList)}"); _logger.LogInformation($"提交订舱数据({submitUrl}{userId.Value}{userSecret.Value}{JsonConvert.SerializeObject(sendList)}");
var rtn = await submitUrl var rtn = await submitUrl
.SetHeaders(new Dictionary<string, object> { .SetHeaders(new Dictionary<string, object> {
{ CommonConst.API_USER_HEADER_KEY, userId.ItemCode}, { CommonConst.API_USER_HEADER_KEY, userId.Value},
{ CommonConst.API_USER_HEADER_SECRET, userSecret.ItemCode} { CommonConst.API_USER_HEADER_SECRET, userSecret.Value}
}) })
.SetBody(sendList) .SetBody(sendList)
.PostAsStringAsync(); .PostAsStringAsync();
@ -526,9 +533,9 @@ namespace Myshipping.Application
throw Oops.Bah("大简云接收订舱URL地址未配置请联系管理员"); throw Oops.Bah("大简云接收订舱URL地址未配置请联系管理员");
} }
var userId = _cache.GetAllTenantParam().Result.FirstOrDefault(x => x.TenantId == UserManager.TENANT_ID && x.ParaCode == "DjyBookingReceiveUserId"); var userId = _cache.GetAllSysConfig().Result.FirstOrDefault(x => x.Code == "DjyBookingReceiveUserId");
var userSecret = _cache.GetAllTenantParam().Result.FirstOrDefault(x => x.TenantId == UserManager.TENANT_ID && x.ParaCode == "DjyBookingReceiveUserSecret"); var userSecret = _cache.GetAllSysConfig().Result.FirstOrDefault(x => x.Code == "DjyBookingReceiveUserSecret");
if (userId == null || string.IsNullOrEmpty(userId.ItemCode) || userSecret == null || string.IsNullOrEmpty(userSecret.ItemCode)) if (userId == null || string.IsNullOrEmpty(userId.Value) || userSecret == null || string.IsNullOrEmpty(userSecret.Value))
{ {
throw Oops.Bah("大简云接收订舱用户key和秘钥未配置请联系管理员"); throw Oops.Bah("大简云接收订舱用户key和秘钥未配置请联系管理员");
} }
@ -555,12 +562,12 @@ namespace Myshipping.Application
submitUrl += "BookingCustomerOrder/CancelBooking"; submitUrl += "BookingCustomerOrder/CancelBooking";
_logger.LogInformation($"取消提交订舱数据({submitUrl}{userId.ItemCode}{userSecret.ItemCode}{JsonConvert.SerializeObject(sendList)}"); _logger.LogInformation($"取消提交订舱数据({submitUrl}{userId.Value}{userSecret.Value}{JsonConvert.SerializeObject(sendList)}");
var rtn = await submitUrl var rtn = await submitUrl
.SetHeaders(new Dictionary<string, object> { .SetHeaders(new Dictionary<string, object> {
{ CommonConst.API_USER_HEADER_KEY, userId.ItemCode}, { CommonConst.API_USER_HEADER_KEY, userId.Value},
{ CommonConst.API_USER_HEADER_SECRET, userSecret.ItemCode} { CommonConst.API_USER_HEADER_SECRET, userSecret.Value}
}) })
.SetBody(sendList) .SetBody(sendList)
.PostAsStringAsync(); .PostAsStringAsync();
@ -856,19 +863,19 @@ namespace Myshipping.Application
} }
//回推回执 //回推回执
var recFeedbackConfig = _cache.GetAllSysConfig().Result.FirstOrDefault(x => x.Code == "DjyBookingCustomerRecAuditFeedbackURL"); var recFeedbackConfig = _cache.GetAllSysConfig().Result.FirstOrDefault(x => x.Code == "DjyBookingCustomerRecFeedbackURL");
if (recFeedbackConfig == null || string.IsNullOrEmpty(recFeedbackConfig.Value)) if (recFeedbackConfig == null || string.IsNullOrEmpty(recFeedbackConfig.Value))
{ {
throw Oops.Bah("回推订舱审核结果的URL地址未配置请联系管理员"); throw Oops.Bah("回推订舱审核结果的URL地址未配置请联系管理员");
} }
var recFeedbackUserKey = _cache.GetAllSysConfig().Result.FirstOrDefault(x => x.Code == "DjyBookingCustomerRecAuditFeedbackUserKey"); var recFeedbackUserKey = _cache.GetAllSysConfig().Result.FirstOrDefault(x => x.Code == "DjyBookingCustomerRecFeedbackUserKey");
if (recFeedbackUserKey == null || string.IsNullOrEmpty(recFeedbackUserKey.Value)) if (recFeedbackUserKey == null || string.IsNullOrEmpty(recFeedbackUserKey.Value))
{ {
throw Oops.Bah("回推订舱审核结果的用户KEY未配置请联系管理员"); throw Oops.Bah("回推订舱审核结果的用户KEY未配置请联系管理员");
} }
var recFeedbackUserSecret = _cache.GetAllSysConfig().Result.FirstOrDefault(x => x.Code == "DjyBookingCustomerRecAuditFeedbackUserSecret"); var recFeedbackUserSecret = _cache.GetAllSysConfig().Result.FirstOrDefault(x => x.Code == "DjyBookingCustomerRecFeedbackUserSecret");
if (recFeedbackUserSecret == null || string.IsNullOrEmpty(recFeedbackUserSecret.Value)) if (recFeedbackUserSecret == null || string.IsNullOrEmpty(recFeedbackUserSecret.Value))
{ {
throw Oops.Bah("回推订舱审核结果的用户秘钥未配置,请联系管理员"); throw Oops.Bah("回推订舱审核结果的用户秘钥未配置,请联系管理员");
@ -881,9 +888,17 @@ namespace Myshipping.Application
Comment = comment Comment = comment
}; };
_logger.LogInformation($"回推审核数据:{JsonConvert.SerializeObject(sendObj)}"); var feedbackUrl = recFeedbackConfig.Value;
if (!feedbackUrl.EndsWith("/"))
{
feedbackUrl += "/";
}
feedbackUrl += "BookingCustomerOrder/RecBookingAuditFeedback";
_logger.LogInformation($"回推审核数据:{JsonConvert.SerializeObject(sendObj)}URL{feedbackUrl}");
var rtn = await recFeedbackConfig.Value var rtn = await feedbackUrl
.SetHeaders(new Dictionary<string, object> { .SetHeaders(new Dictionary<string, object> {
{ CommonConst.API_USER_HEADER_KEY, recFeedbackUserKey.Value}, { CommonConst.API_USER_HEADER_KEY, recFeedbackUserKey.Value},
{ CommonConst.API_USER_HEADER_SECRET, recFeedbackUserSecret.Value} { CommonConst.API_USER_HEADER_SECRET, recFeedbackUserSecret.Value}

@ -907,6 +907,9 @@ namespace Myshipping.Application
if (!info.KGS.HasValue) if (!info.KGS.HasValue)
throw Oops.Oh($"吨数不能为空"); throw Oops.Oh($"吨数不能为空");
if(string.IsNullOrWhiteSpace(info.TruckCode) || string.IsNullOrWhiteSpace(info.TruckName))
throw Oops.Oh($"车队不能为空");
info.UpdatedTime = DateTime.Now; info.UpdatedTime = DateTime.Now;
info.UpdatedUserId = UserManager.UserId; info.UpdatedUserId = UserManager.UserId;
info.UpdatedUserName = UserManager.Name; info.UpdatedUserName = UserManager.Name;
@ -1211,7 +1214,8 @@ namespace Myshipping.Application
{ {
if (operateType == OperateTypeEnum.Save) if (operateType == OperateTypeEnum.Save)
{ {
if (entityArg.Any(a => a.Status != BookingTruckStatus.TEMP.ToString())) if (entityArg.Any(a => a.Status != BookingTruckStatus.TEMP.ToString()
&& a.Status != BookingTruckStatus.CANCEL_DISPATCH.ToString()))
{ {
throw Oops.Oh($"派车状态只有暂存才能保存"); throw Oops.Oh($"派车状态只有暂存才能保存");
} }

Loading…
Cancel
Save