修改BC批量,增加订舱检索

optimize
jianghaiqing 1 year ago
parent 5e8f187958
commit d64f505da2

@ -0,0 +1,59 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Myshipping.Application
{
/// <summary>
/// 批量BC引入订舱检索
/// </summary>
public class BookingOrderBCQuery
{
/// <summary>
/// 开船开始日期
/// </summary>
public Nullable<DateTime> beginETD { get; set; }
/// <summary>
/// 开船结束日期
/// </summary>
public Nullable<DateTime> endETD { get; set; }
/// <summary>
/// 创建开始日期
/// </summary>
public Nullable<DateTime> beginCreated { get; set; }
/// <summary>
/// 创建结束日期
/// </summary>
public Nullable<DateTime> endCreated { get; set; }
/// <summary>
/// 主提单号
/// </summary>
public string mblNo { get; set; }
/// <summary>
/// 订舱编号
/// </summary>
public string custNo { get; set; }
/// <summary>
/// 船名
/// </summary>
public string vessel { get; set; }
/// <summary>
/// 航次号
/// </summary>
public string voyno { get; set; }
/// <summary>
/// 最大返回行数默认100
/// </summary>
public int topNum { get; set; } = 100;
}
}

@ -38,5 +38,12 @@ namespace Myshipping.Application
/// <param name="taskPKId">BC任务主键</param>
/// <returns>返回数据流</returns>
Task<IActionResult> DownloadFile(string taskPKId);
/// <summary>
/// 检索订舱信息
/// </summary>
/// <param name="query">检索条件</param>
/// <returns>返回回执</returns>
Task<TaskManageOrderResultDto> QueryBookingOrderList(BookingOrderBCQuery query);
}
}

@ -334,5 +334,115 @@ namespace Myshipping.Application
var result = new FileStreamResult(new FileStream(fileFullPath, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName };
return result;
}
/// <summary>
/// 检索订舱信息
/// </summary>
/// <param name="query">检索条件</param>
/// <returns>返回回执</returns>
[HttpPost("/TaskManageBC/QueryBookingOrderList")]
public async Task<TaskManageOrderResultDto> QueryBookingOrderList([FromBody] BookingOrderBCQuery query)
{
TaskManageOrderResultDto result = new TaskManageOrderResultDto();
try
{
bool isAvailable = false;
var queryWhere = _bookingOrderRepository.AsQueryable();
#region 查询条件
if (query.beginETD.HasValue || query.endETD.HasValue)
{
/*
7
*/
DateTime beginDate = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
DateTime endDate = beginDate;
if (query.beginETD.HasValue)
beginDate = query.beginETD.Value;
if (query.endETD.HasValue)
endDate = query.beginETD.Value;
if (beginDate.AddDays(7) < endDate)
throw Oops.Oh($"船期的日期范围不能超过7天");
queryWhere = queryWhere.Where(a => a.ETD >= beginDate && a.ETD < endDate.AddDays(1));
isAvailable = true;
}
if (query.beginCreated.HasValue || query.endCreated.HasValue)
{
/*
7
*/
DateTime beginDate = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
DateTime endDate = beginDate;
if (query.beginCreated.HasValue)
beginDate = query.beginCreated.Value;
if (query.endCreated.HasValue)
endDate = query.endCreated.Value;
if (beginDate.AddDays(7) < endDate)
throw Oops.Oh($"制单的日期范围不能超过7天");
queryWhere = queryWhere.Where(a => a.CreatedTime >= beginDate && a.CreatedTime < endDate.AddDays(1));
isAvailable = true;
}
if (!string.IsNullOrWhiteSpace(query.mblNo))
{
queryWhere = queryWhere.Where(a => a.MBLNO.Contains(query.mblNo));
isAvailable = true;
}
if (!string.IsNullOrWhiteSpace(query.custNo))
{
queryWhere = queryWhere.Where(a => a.CUSTNO.Contains(query.custNo));
isAvailable = true;
}
if (!string.IsNullOrWhiteSpace(query.vessel))
{
queryWhere = queryWhere.Where(a => a.VESSEL.Contains(query.vessel));
isAvailable = true;
}
if (!string.IsNullOrWhiteSpace(query.voyno))
{
queryWhere = queryWhere.Where(a => a.VOYNO.Contains(query.voyno));
isAvailable = true;
}
#endregion
if (!isAvailable)
throw Oops.Oh($"查询条件不能为空");
var list = await queryWhere.OrderBy(a => a.CreatedTime)
.Take(query.topNum).ToListAsync();
var bkList = list.Adapt<BookingOrderBCTaskDto>();
result.succ = true;
result.ext = bkList;
}
catch (Exception ex)
{
result.succ = false;
result.msg = $"查询异常,原因:{ex.Message}";
}
return result;
}
}
}

Loading…
Cancel
Save