diff --git a/Myshipping.Application/Entity/BookingTruck.cs b/Myshipping.Application/Entity/BookingTruck.cs
index d848dd80..a7f58a81 100644
--- a/Myshipping.Application/Entity/BookingTruck.cs
+++ b/Myshipping.Application/Entity/BookingTruck.cs
@@ -206,5 +206,10 @@ namespace Myshipping.Application.Entity
///
[Description("调度名称")]
public string DispatcherName { get; set; }
+ ///
+ /// 派车流水号
+ ///
+ [Description("派车流水号")]
+ public string TruckFlowNo { get; set; }
}
}
diff --git a/Myshipping.Application/Enum/BookingTruckStatus.cs b/Myshipping.Application/Enum/BookingTruckStatus.cs
new file mode 100644
index 00000000..56199095
--- /dev/null
+++ b/Myshipping.Application/Enum/BookingTruckStatus.cs
@@ -0,0 +1,41 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Myshipping.Application
+{
+ ///
+ /// 派车状态枚举
+ ///
+ public enum BookingTruckStatus
+ {
+ ///
+ /// 暂存
+ ///
+ [Description("暂存")]
+ TEMP,
+ ///
+ /// 已提交
+ ///
+ [Description("已提交")]
+ SUBMITED,
+ ///
+ /// 已撤销
+ ///
+ [Description("已撤销")]
+ CANCELED,
+ ///
+ /// 已发派车
+ ///
+ [Description("已撤销")]
+ SEND_DISPATCH,
+ ///
+ /// 已撤销派车
+ ///
+ [Description("已撤销")]
+ CANCEL_DISPATCH
+ }
+}
diff --git a/Myshipping.Application/Service/BookingTruck/BookingTruckService.cs b/Myshipping.Application/Service/BookingTruck/BookingTruckService.cs
index 18818075..34d1d715 100644
--- a/Myshipping.Application/Service/BookingTruck/BookingTruckService.cs
+++ b/Myshipping.Application/Service/BookingTruck/BookingTruckService.cs
@@ -9,6 +9,7 @@ using Mapster;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Myshipping.Application.Entity;
+using Myshipping.Application.Helper;
using Myshipping.Core;
using Myshipping.Core.Entity;
using Myshipping.Core.Service;
@@ -17,6 +18,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Text;
+using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace Myshipping.Application
@@ -193,6 +195,163 @@ namespace Myshipping.Application
return result;
}
+ ///
+ /// 派车台账查询
+ ///
+ /// 派车台账查询请求
+ /// 返回结果
+ [HttpPost("/BookingTruck/GetPage")]
+ public async Task> GetPageAsync([FromBody] QueryBookingTruckDto QuerySearch)
+ {
+ List contaList = new List();
+
+ if (!string.IsNullOrWhiteSpace(QuerySearch.ContaNo))
+ {
+ if (Regex.IsMatch(QuerySearch.ContaNo, "(\\t|\\n\\r|\\n)"))
+ {
+ contaList = Regex.Replace(QuerySearch.ContaNo, "(\\t |\\n\\r |\\n)", "#").Split(new char[] { '#' }).Select(t => t?.Trim()).ToList();
+ }
+ else
+ {
+ contaList.Add(QuerySearch.ContaNo.Trim());
+ }
+ }
+ //制单日期
+ DateTime createBegin = DateTime.MinValue;
+ DateTime createEnd = DateTime.MinValue;
+ //派车日期
+ DateTime truckDateBegin = DateTime.MinValue;
+ DateTime truckDateEnd = DateTime.MinValue;
+ //截单日期
+ DateTime closeDateBegin = DateTime.MinValue;
+ DateTime closeDateEnd = DateTime.MinValue;
+ //提货日期
+ DateTime pickUpTimeBegin = DateTime.MinValue;
+ DateTime pickUpTimeEnd = DateTime.MinValue;
+ //返场时间
+ DateTime returnTimeBegin = DateTime.MinValue;
+ DateTime returnTimeEnd = DateTime.MinValue;
+ //要求到达时间
+ DateTime needArriveTimeBegin = DateTime.MinValue;
+ DateTime needArriveTimeEnd = DateTime.MinValue;
+
+ #region 查询条件
+
+ //制单日期
+ if (!string.IsNullOrWhiteSpace(QuerySearch.CreateBegin))
+ {
+ if (!DateTime.TryParse(QuerySearch.CreateBegin, out createBegin))
+ throw Oops.Oh($"创建起始日期格式错误,{QuerySearch.CreateBegin}");
+ }
+
+ if (!string.IsNullOrWhiteSpace(QuerySearch.CreateEnd))
+ {
+ if (!DateTime.TryParse(QuerySearch.CreateEnd, out createEnd))
+ throw Oops.Oh($"创建结束日期格式错误,{QuerySearch.CreateEnd}");
+
+ createEnd = createEnd.AddDays(1);
+ }
+ //派车日期
+ if (!string.IsNullOrWhiteSpace(QuerySearch.TruckTimeBegin))
+ {
+ if (!DateTime.TryParse(QuerySearch.TruckTimeBegin, out truckDateBegin))
+ throw Oops.Oh($"派车起始日期格式错误,{QuerySearch.TruckTimeBegin}");
+ }
+
+ if (!string.IsNullOrWhiteSpace(QuerySearch.TruckTimeEnd))
+ {
+ if (!DateTime.TryParse(QuerySearch.TruckTimeEnd, out truckDateEnd))
+ throw Oops.Oh($"派车结束日期格式错误,{QuerySearch.TruckTimeEnd}");
+
+ truckDateEnd = truckDateEnd.AddDays(1);
+ }
+ //截单日期
+ if (!string.IsNullOrWhiteSpace(QuerySearch.ClosingTimeBegin))
+ {
+ if (!DateTime.TryParse(QuerySearch.ClosingTimeBegin, out closeDateBegin))
+ throw Oops.Oh($"截单起始日期格式错误,{QuerySearch.ClosingTimeBegin}");
+ }
+
+ if (!string.IsNullOrWhiteSpace(QuerySearch.ClosingTimeEnd))
+ {
+ if (!DateTime.TryParse(QuerySearch.ClosingTimeEnd, out closeDateEnd))
+ throw Oops.Oh($"截单结束日期格式错误,{QuerySearch.ClosingTimeEnd}");
+
+ closeDateEnd = closeDateEnd.AddDays(1);
+ }
+ //提货日期
+ if (!string.IsNullOrWhiteSpace(QuerySearch.PickUpTimeBegin))
+ {
+ if (!DateTime.TryParse(QuerySearch.PickUpTimeBegin, out pickUpTimeBegin))
+ throw Oops.Oh($"提货起始日期格式错误,{QuerySearch.PickUpTimeBegin}");
+ }
+
+ if (!string.IsNullOrWhiteSpace(QuerySearch.PickUpTimeEnd))
+ {
+ if (!DateTime.TryParse(QuerySearch.ClosingTimeEnd, out pickUpTimeEnd))
+ throw Oops.Oh($"提货结束日期格式错误,{QuerySearch.PickUpTimeEnd}");
+
+ pickUpTimeEnd = pickUpTimeEnd.AddDays(1);
+ }
+ //返场时间
+ if (!string.IsNullOrWhiteSpace(QuerySearch.ReturnTimeBegin))
+ {
+ if (!DateTime.TryParse(QuerySearch.ReturnTimeBegin, out returnTimeBegin))
+ throw Oops.Oh($"返场起始日期格式错误,{QuerySearch.ReturnTimeBegin}");
+ }
+
+ if (!string.IsNullOrWhiteSpace(QuerySearch.ReturnTimeEnd))
+ {
+ if (!DateTime.TryParse(QuerySearch.ReturnTimeEnd, out returnTimeEnd))
+ throw Oops.Oh($"返场结束日期格式错误,{QuerySearch.ReturnTimeEnd}");
+
+ returnTimeEnd = returnTimeEnd.AddDays(1);
+ }
+ //要求到达时间
+ if (!string.IsNullOrWhiteSpace(QuerySearch.NeedArriveTimeBegin))
+ {
+ if (!DateTime.TryParse(QuerySearch.NeedArriveTimeBegin, out needArriveTimeBegin))
+ throw Oops.Oh($"返场起始日期格式错误,{QuerySearch.NeedArriveTimeBegin}");
+ }
+
+ if (!string.IsNullOrWhiteSpace(QuerySearch.NeedArriveTimeEnd))
+ {
+ if (!DateTime.TryParse(QuerySearch.NeedArriveTimeEnd, out needArriveTimeEnd))
+ throw Oops.Oh($"返场结束日期格式错误,{QuerySearch.NeedArriveTimeEnd}");
+
+ needArriveTimeEnd = needArriveTimeEnd.AddDays(1);
+ }
+ #endregion
+
+ string entityOrderCol = "CreatedTime";
+
+ //这里因为返回给前端的台账数据是DTO,所以这里排序时候需要转换成Entity对应的字段
+ if (!string.IsNullOrWhiteSpace(QuerySearch.SortField))
+ entityOrderCol = MapsterExtHelper.GetAdaptProperty(QuerySearch.SortField);
+
+ var entities = await _bookingTruckRepository.AsQueryable()
+ .WhereIF(createBegin != DateTime.MinValue, t => t.CreatedTime.HasValue && t.CreatedTime.Value >= createBegin)
+ .WhereIF(createEnd != DateTime.MinValue, t => t.CreatedTime.HasValue && t.CreatedTime.Value < createEnd)
+ .WhereIF(truckDateBegin != DateTime.MinValue, t => t.TruckTime.HasValue && t.TruckTime.Value >= truckDateBegin)
+ .WhereIF(truckDateEnd != DateTime.MinValue, t => t.TruckTime.HasValue && t.TruckTime.Value < truckDateEnd)
+ .WhereIF(closeDateBegin != DateTime.MinValue, t => t.ClosingTime.HasValue && t.ClosingTime.Value >= closeDateBegin)
+ .WhereIF(closeDateEnd != DateTime.MinValue, t => t.ClosingTime.HasValue && t.ClosingTime.Value < closeDateEnd)
+ .WhereIF(pickUpTimeBegin != DateTime.MinValue, t => t.PickUpTime.HasValue && t.PickUpTime.Value >= pickUpTimeBegin)
+ .WhereIF(pickUpTimeEnd != DateTime.MinValue, t => t.PickUpTime.HasValue && t.PickUpTime.Value < pickUpTimeEnd)
+ .WhereIF(returnTimeBegin != DateTime.MinValue, t => t.ReturnTime.HasValue && t.ReturnTime.Value >= returnTimeBegin)
+ .WhereIF(returnTimeEnd != DateTime.MinValue, t => t.ReturnTime.HasValue && t.ReturnTime.Value < returnTimeEnd)
+ .WhereIF(needArriveTimeBegin != DateTime.MinValue, t => t.NeedArriveTime.HasValue && t.NeedArriveTime.Value >= needArriveTimeBegin)
+ .WhereIF(needArriveTimeEnd != DateTime.MinValue, t => t.NeedArriveTime.HasValue && t.NeedArriveTime.Value < needArriveTimeEnd)
+ .WhereIF(!string.IsNullOrWhiteSpace(QuerySearch.Yard), t => t.YARDID.Contains(QuerySearch.Yard) || t.YARD.Contains(QuerySearch.Yard))
+ .WhereIF(!string.IsNullOrWhiteSpace(QuerySearch.InYard), t => t.InYardID.Contains(QuerySearch.Yard) || t.InYard.Contains(QuerySearch.Yard))
+ .WhereIF(!string.IsNullOrWhiteSpace(QuerySearch.Status), t => t.Status == QuerySearch.Status)
+ .OrderBy(entityOrderCol + (QuerySearch.descSort ? " asc " : " desc "))
+ .ToPagedListAsync(QuerySearch.PageNo, QuerySearch.PageSize);
+
+
+ return entities.Adapt>();
+ }
+
private BookingTruckDto InnerCreateTruckFromBookingOrder(long bookingId)
{
BookingTruckDto model = null;
diff --git a/Myshipping.Application/Service/BookingTruck/Dtos/BookingTruckPageDto.cs b/Myshipping.Application/Service/BookingTruck/Dtos/BookingTruckPageDto.cs
new file mode 100644
index 00000000..75649a19
--- /dev/null
+++ b/Myshipping.Application/Service/BookingTruck/Dtos/BookingTruckPageDto.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Myshipping.Application
+{
+ ///
+ ///
+ ///
+ public class BookingTruckPageDto: BookingTruckShowBaseDto
+ {
+
+ }
+}
diff --git a/Myshipping.Application/Service/BookingTruck/Dtos/BookingTruckShowBaseDto.cs b/Myshipping.Application/Service/BookingTruck/Dtos/BookingTruckShowBaseDto.cs
new file mode 100644
index 00000000..a8b70431
--- /dev/null
+++ b/Myshipping.Application/Service/BookingTruck/Dtos/BookingTruckShowBaseDto.cs
@@ -0,0 +1,171 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Myshipping.Application
+{
+ ///
+ ///
+ ///
+ public class BookingTruckShowBaseDto
+ {
+ ///
+ /// 主键
+ ///
+ public long Id { get; set; }
+ ///
+ /// 车队ID
+ ///
+ public Nullable TruckId { get; set; }
+ ///
+ /// 车队代码
+ ///
+ public string TruckCode { get; set; }
+ ///
+ /// 车队代码
+ ///
+ public string TruckName { get; set; }
+ ///
+ /// TO
+ ///
+ public string ToName { get; set; }
+ ///
+ /// ATTN
+ ///
+ public string Attn { get; set; }
+ ///
+ /// ATTN电话
+ ///
+ public string AttnTel { get; set; }
+ ///
+ /// ATTN邮箱
+ ///
+ public string AttnMail { get; set; }
+ ///
+ /// FROM
+ ///
+ public string FromName { get; set; }
+ ///
+ /// FROM电话
+ ///
+ public string FromTel { get; set; }
+ ///
+ /// FROM邮箱
+ ///
+ public string FromMail { get; set; }
+ ///
+ /// 吨数
+ ///
+ public Nullable KGS { get; set; }
+ ///
+ /// 陆运费
+ ///
+ public Nullable Fee { get; set; }
+ ///
+ /// 支付方式
+ ///
+ public string PayMethod { get; set; }
+ ///
+ /// 支付方式名称
+ ///
+ public string PayMethodName { get; set; }
+ ///
+ /// 派车日期
+ ///
+ public Nullable TruckTime { get; set; }
+ ///
+ /// 提箱场站ID
+ ///
+ public string YARDID { get; set; }
+ ///
+ /// 提箱场站
+ ///
+ public string YARD { get; set; }
+ ///
+ /// 场站联系人
+ ///
+ public string YARDCONTRACT { get; set; }
+ ///
+ /// 场站联系人电话
+ ///
+ public string YARDCONTRACTTEL { get; set; }
+ ///
+ /// 工厂ID
+ ///
+ public Nullable FactoryId { get; set; }
+ ///
+ /// 工厂代码
+ ///
+ public string FactoryCode { get; set; }
+ ///
+ /// 工厂名称
+ ///
+ public string FactoryName { get; set; }
+ ///
+ /// 工厂联系人
+ ///
+ public string FactoryContact { get; set; }
+ ///
+ /// 工厂联系电话
+ ///
+ public string FactoryTel { get; set; }
+ ///
+ /// 返场时间
+ ///
+ public Nullable ReturnTime { get; set; }
+ ///
+ /// 入货场站ID
+ ///
+ public string InYardID { get; set; }
+ ///
+ /// 入货场站
+ ///
+ public string InYard { get; set; }
+ ///
+ /// 入货联系人
+ ///
+ public string InYardContact { get; set; }
+ ///
+ /// 入货联系人电话
+ ///
+ public string InYardContractTel { get; set; }
+ ///
+ /// 要求到达时间
+ ///
+ public Nullable NeedArriveTime { get; set; }
+ ///
+ /// 截港日期
+ ///
+ public Nullable ClosingTime { get; set; }
+ ///
+ /// 提货日期
+ ///
+ public Nullable PickUpTime { get; set; }
+ ///
+ /// 是否挂机
+ ///
+ public bool IsGuaJi { get; set; }
+ ///
+ /// 状态
+ ///
+ public string Status { get; set; }
+ ///
+ /// 注意事项
+ ///
+ public string Attention { get; set; }
+ ///
+ /// 备注
+ ///
+ public string Remark { get; set; }
+ ///
+ /// 调度ID
+ ///
+ public Nullable DispatcherId { get; set; }
+ ///
+ /// 调度名称
+ ///
+ public string DispatcherName { get; set; }
+ }
+}
diff --git a/Myshipping.Application/Service/BookingTruck/Dtos/BookingTruckShowDto.cs b/Myshipping.Application/Service/BookingTruck/Dtos/BookingTruckShowDto.cs
index c4a5cc7c..50c1b3c1 100644
--- a/Myshipping.Application/Service/BookingTruck/Dtos/BookingTruckShowDto.cs
+++ b/Myshipping.Application/Service/BookingTruck/Dtos/BookingTruckShowDto.cs
@@ -9,164 +9,9 @@ namespace Myshipping.Application
///
///
///
- public class BookingTruckShowDto
+ public class BookingTruckShowDto: BookingTruckShowBaseDto
{
- ///
- /// 主键
- ///
- public long Id { get; set; }
- ///
- /// 车队ID
- ///
- public Nullable TruckId { get; set; }
- ///
- /// 车队代码
- ///
- public string TruckCode { get; set; }
- ///
- /// 车队代码
- ///
- public string TruckName { get; set; }
- ///
- /// TO
- ///
- public string ToName { get; set; }
- ///
- /// ATTN
- ///
- public string Attn { get; set; }
- ///
- /// ATTN电话
- ///
- public string AttnTel { get; set; }
- ///
- /// ATTN邮箱
- ///
- public string AttnMail { get; set; }
- ///
- /// FROM
- ///
- public string FromName { get; set; }
- ///
- /// FROM电话
- ///
- public string FromTel { get; set; }
- ///
- /// FROM邮箱
- ///
- public string FromMail { get; set; }
- ///
- /// 吨数
- ///
- public Nullable KGS { get; set; }
- ///
- /// 陆运费
- ///
- public Nullable Fee { get; set; }
- ///
- /// 支付方式
- ///
- public string PayMethod { get; set; }
- ///
- /// 支付方式名称
- ///
- public string PayMethodName { get; set; }
- ///
- /// 派车日期
- ///
- public Nullable TruckTime { get; set; }
- ///
- /// 提箱场站ID
- ///
- public string YARDID { get; set; }
- ///
- /// 提箱场站
- ///
- public string YARD { get; set; }
- ///
- /// 场站联系人
- ///
- public string YARDCONTRACT { get; set; }
- ///
- /// 场站联系人电话
- ///
- public string YARDCONTRACTTEL { get; set; }
- ///
- /// 工厂ID
- ///
- public Nullable FactoryId { get; set; }
- ///
- /// 工厂代码
- ///
- public string FactoryCode { get; set; }
- ///
- /// 工厂名称
- ///
- public string FactoryName { get; set; }
- ///
- /// 工厂联系人
- ///
- public string FactoryContact { get; set; }
- ///
- /// 工厂联系电话
- ///
- public string FactoryTel { get; set; }
- ///
- /// 返场时间
- ///
- public Nullable ReturnTime { get; set; }
- ///
- /// 入货场站ID
- ///
- public string InYardID { get; set; }
- ///
- /// 入货场站
- ///
- public string InYard { get; set; }
- ///
- /// 入货联系人
- ///
- public string InYardContact { get; set; }
- ///
- /// 入货联系人电话
- ///
- public string InYardContractTel { get; set; }
- ///
- /// 要求到达时间
- ///
- public Nullable NeedArriveTime { get; set; }
- ///
- /// 截港日期
- ///
- public Nullable ClosingTime { get; set; }
- ///
- /// 提货日期
- ///
- public Nullable PickUpTime { get; set; }
- ///
- /// 是否挂机
- ///
- public bool IsGuaJi { get; set; }
- ///
- /// 状态
- ///
- public string Status { get; set; }
- ///
- /// 注意事项
- ///
- public string Attention { get; set; }
- ///
- /// 备注
- ///
- public string Remark { get; set; }
- ///
- /// 调度ID
- ///
- public Nullable DispatcherId { get; set; }
- ///
- /// 调度名称
- ///
- public string DispatcherName { get; set; }
+
///
/// 集装箱列表
///
diff --git a/Myshipping.Application/Service/BookingTruck/Dtos/QueryBookingTruckDto.cs b/Myshipping.Application/Service/BookingTruck/Dtos/QueryBookingTruckDto.cs
new file mode 100644
index 00000000..31891c19
--- /dev/null
+++ b/Myshipping.Application/Service/BookingTruck/Dtos/QueryBookingTruckDto.cs
@@ -0,0 +1,118 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Myshipping.Application
+{
+ ///
+ /// 派车台账查询
+ ///
+ public class QueryBookingTruckDto: QueryTaskManageBaseDto
+ {
+ ///
+ /// 派车单号
+ ///
+ public int TruckFlowNo { get; set; }
+
+ ///
+ /// 创建日期起始
+ ///
+ ///
+ public string CreateBegin { get; set; }
+
+ ///
+ /// 创建日期结束
+ ///
+ ///
+ public string CreateEnd { get; set; }
+
+ ///
+ /// 支付方式
+ ///
+ public string PayMethod { get; set; }
+
+ ///
+ /// 派车日期起始
+ ///
+ public string TruckTimeBegin { get; set; }
+
+ ///
+ /// 派车日期结束
+ ///
+ public string TruckTimeEnd { get; set; }
+
+ ///
+ /// 返场时间起始
+ ///
+ public string ReturnTimeBegin { get; set; }
+
+ ///
+ /// 返场时间结束
+ ///
+ public string ReturnTimeEnd { get; set; }
+
+ ///
+ /// 要求到达时间起始
+ ///
+ public string NeedArriveTimeBegin { get; set; }
+
+ ///
+ /// 要求到达时间结束
+ ///
+ public string NeedArriveTimeEnd { get; set; }
+
+ ///
+ /// 截港日期起始
+ ///
+ public string ClosingTimeBegin { get; set; }
+
+ ///
+ /// 截港日期结束
+ ///
+ public string ClosingTimeEnd { get; set; }
+
+ ///
+ /// 提货日期起始
+ ///
+ public string PickUpTimeBegin { get; set; }
+
+ ///
+ /// 提货日期结束
+ ///
+ public string PickUpTimeEnd { get; set; }
+
+ ///
+ /// 车队ID
+ ///
+ public Nullable TruckId { get; set; }
+
+ ///
+ /// 集装箱号
+ ///
+ public string ContaNo { get; set; }
+
+ ///
+ /// 工厂ID
+ ///
+ public Nullable FactoryId { get; set; }
+
+ ///
+ /// 提箱场站代码
+ ///
+ public string Yard { get; set; }
+
+ ///
+ /// 入货场站代码
+ ///
+ public string InYard { get; set; }
+
+ ///
+ /// 状态
+ ///
+ public string Status { get; set; }
+
+ }
+}
diff --git a/Myshipping.Application/Service/BookingTruck/Interface/IBookingTruckService.cs b/Myshipping.Application/Service/BookingTruck/Interface/IBookingTruckService.cs
index fca13849..2e53ee43 100644
--- a/Myshipping.Application/Service/BookingTruck/Interface/IBookingTruckService.cs
+++ b/Myshipping.Application/Service/BookingTruck/Interface/IBookingTruckService.cs
@@ -1,4 +1,5 @@
-using System;
+using Myshipping.Core;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -40,6 +41,13 @@ namespace Myshipping.Application
/// 返回派车集装箱初始信息
Task PullInBookingOrderConta(long bookingId);
+ ///
+ /// 派车台账查询
+ ///
+ /// 派车台账查询请求
+ /// 返回结果
+ Task> GetPageAsync(QueryBookingTruckDto QuerySearch);
+
///
/// 获取派车详情
///