diff --git a/Entity/Dto/ChargeOrderDto.cs b/Entity/Dto/ChargeOrderDto.cs
index 9b80f09..3ae9620 100644
--- a/Entity/Dto/ChargeOrderDto.cs
+++ b/Entity/Dto/ChargeOrderDto.cs
@@ -30,6 +30,25 @@ public class ChargeOrderDto
/// Nullable:True
///
[ExporterHeader(DisplayName = "启动报文状态", IsBold = true)]
+ public string CmdStatusDisplay
+ {
+ get
+ {
+ return CmdStatus switch
+ {
+ 0 => "初始化",
+ 1 => "启动成功",
+ _ => "未知"
+ };
+ }
+ }
+
+ ///
+ /// Desc:启动报文状态;0-初始化;1-启动成功
+ /// Default:0
+ /// Nullable:True
+ ///
+ [ExporterHeader(IsIgnore = true)]
public int? CmdStatus { get; set; }
@@ -51,24 +70,59 @@ public class ChargeOrderDto
public string ChargerGunNo { get; set; }
+
///
/// 0:站内充电 1:站外充电
///
[ExporterHeader(DisplayName = "充电位置", IsBold = true)]
+ public string ChargeModeDisplay
+ {
+ get
+ {
+ return ChargeMode switch
+ {
+ 0 => "站内充电",
+ 1 => "站外充电",
+ _ => "未知"
+ };
+ }
+ }
+
+ ///
+ /// 0:站内充电 1:站外充电
+ ///
+ [ExporterHeader(IsIgnore = true)]
public int ChargeMode { get; set; }
-
+
///
/// 1:站控启动 2:本地启动
///
[ExporterHeader(DisplayName = "启动方式", IsBold = true)]
+ public string StartModeDisplay
+ {
+ get
+ {
+ return StartMode switch
+ {
+ 1 => "站控启动",
+ 2 => "本地启动",
+ _ => "未知"
+ };
+ }
+ }
+
+ ///
+ /// 1:站控启动 2:本地启动
+ ///
+ [ExporterHeader(IsIgnore = true)]
public int StartMode { get; set; }
///
/// 充电开始时间
///
- [ExporterHeader(DisplayName = "充电开始时间", IsBold = true,Width = 25)]
+ [ExporterHeader(DisplayName = "充电开始时间", IsBold = true,Width = 30, Format = "yyyy-MM-dd HH:mm:ss", AutoCenterColumn = true)]
public DateTime? StartTime { get; set; }
@@ -77,7 +131,7 @@ public class ChargeOrderDto
/// Default:
/// Nullable:True
///
- [ExporterHeader(DisplayName = "充电结束时间", IsBold = true,Width = 25)]
+ [ExporterHeader(DisplayName = "充电结束时间", IsBold = true,Width = 30, Format = "yyyy-MM-dd HH:mm:ss", AutoCenterColumn = true)]
public DateTime? EndTime { get; set; }
@@ -159,6 +213,24 @@ public class ChargeOrderDto
/// Nullable:True
///
[ExporterHeader(DisplayName = "停止原因", IsBold = true)]
+ public string StopReasonDisplay
+ {
+ get
+ {
+ return StopReason switch
+ {
+ 0 => "满电自动停止",
+ 1 => "人工停止",
+ _ => "未知"
+ };
+ }
+ }
+ ///
+ /// Desc:停止原因;0:满电自动停止;1-人工停止
+ /// Default:0
+ /// Nullable:True
+ ///
+ [ExporterHeader(IsIgnore = true)]
public int? StopReason { get; set; }
@@ -258,6 +330,21 @@ public class ChargeOrderDto
/// Nullable:True
///
[ExporterHeader(DisplayName = "上传云平台状态", IsBold = true)]
+ public string CloudReportStatusDisplay
+ {
+ get
+ {
+ return CloudReportStatus switch
+ {
+ 0 => "未上传",
+ 1 => "已上传",
+ _ => "未知"
+ };
+ }
+ }
+
+
+ [ExporterHeader(IsIgnore = true)]
public int? CloudReportStatus { get; set; }
@@ -275,7 +362,7 @@ public class ChargeOrderDto
/// Default:CURRENT_TIMESTAMP
/// Nullable:True
///
- [ExporterHeader(DisplayName = "创建时间", IsBold = true,Width = 25)]
+ [ExporterHeader(DisplayName = "创建时间", IsBold = true,Width = 30, Format = "yyyy-MM-dd HH:mm:ss", AutoCenterColumn = true)]
public DateTime? CreatedTime { get; set; }
@@ -293,7 +380,7 @@ public class ChargeOrderDto
/// Default:CURRENT_TIMESTAMP
/// Nullable:True
///
- [ExporterHeader(DisplayName = "更新时间", IsBold = true,Width = 25)]
+ [ExporterHeader(DisplayName = "更新时间", IsBold = true,Width = 30, Format = "yyyy-MM-dd HH:mm:ss", AutoCenterColumn = true)]
public DateTime? UpdatedTime { get; set; }
@@ -310,6 +397,25 @@ public class ChargeOrderDto
/// Nullable:True
///
[ExporterHeader(DisplayName = "是否可以上传云平台", IsBold = true)]
+ public string CanUploadDisplay
+ {
+ get
+ {
+ return CanUpload switch
+ {
+ 0 => "不可用",
+ 1 => "可以",
+ _ => "未知"
+ };
+ }
+ }
+
+ ///
+ /// Desc:是否可以上传云平台
+ /// Default:
+ /// Nullable:True
+ ///
+ [ExporterHeader(IsIgnore = true)]
public int? CanUpload { get; set; }
}
\ No newline at end of file
diff --git a/Entity/Dto/SwapOrderDto.cs b/Entity/Dto/SwapOrderDto.cs
index 96ed701..692c23e 100644
--- a/Entity/Dto/SwapOrderDto.cs
+++ b/Entity/Dto/SwapOrderDto.cs
@@ -46,7 +46,7 @@ public class SwapOrderDto
/// Default:
/// Nullable:True
///
- [ExporterHeader(DisplayName = "车辆进场时间", IsBold = true,Width = 25)]
+ [ExporterHeader(DisplayName = "车辆进场时间", IsBold = true,Width = 30, Format = "yyyy-MM-dd HH:mm:ss", AutoCenterColumn = true)]
public DateTime? VehicleEnterTime { get; set; }
///
@@ -54,7 +54,7 @@ public class SwapOrderDto
/// Default:
/// Nullable:True
///
- [ExporterHeader(DisplayName = "车辆离场时间", IsBold = true,Width = 25)]
+ [ExporterHeader(DisplayName = "车辆离场时间", IsBold = true,Width = 30, Format = "yyyy-MM-dd HH:mm:ss", AutoCenterColumn = true)]
public DateTime? VehicleLeaveTime { get; set; }
///
@@ -62,7 +62,7 @@ public class SwapOrderDto
/// Default:
/// Nullable:True
///
- [ExporterHeader(DisplayName = "换电开始时间", IsBold = true,Width = 25)]
+ [ExporterHeader(DisplayName = "换电开始时间", IsBold = true,Width = 30, Format = "yyyy-MM-dd HH:mm:ss", AutoCenterColumn = true)]
public DateTime? SwapBeginTime { get; set; }
///
@@ -70,15 +70,36 @@ public class SwapOrderDto
/// Default:
/// Nullable:True
///
- [ExporterHeader(DisplayName = "换电结束时间", IsBold = true,Width = 25)]
+ [ExporterHeader(DisplayName = "换电结束时间",Width = 30, Format = "yyyy-MM-dd HH:mm:ss", AutoCenterColumn = true)]
public DateTime? SwapEndTime { get; set; }
-
+
///
/// Desc:换电结果;0-未知;1-成功;2-失败
/// Default:0
/// Nullable:True
///
[ExporterHeader(DisplayName = "换电结果", IsBold = true)]
+ public string SwapResultDisplay
+ {
+ get
+ {
+ return SwapResult switch
+ {
+ 0 => "未知",
+ 1 => "成功",
+ 2 => "失败",
+ _ => "未知"
+ };
+ }
+ }
+
+ ///
+ /// Desc:换电结果;0-未知;1-成功;2-失败
+ /// Default:0
+ /// Nullable:True
+ ///
+ // [ExporterHeader(DisplayName = "换电结果", IsBold = true)]
+ [ExporterHeader(IsIgnore = true)]
public int? SwapResult { get; set; }
///
@@ -89,12 +110,29 @@ public class SwapOrderDto
[ExporterHeader(DisplayName = "失败原因", IsBold = true)]
public string FailReason { get; set; }
+
///
/// Desc:上传云平台状态;0-未上传;1-已上传
/// Default:0
/// Nullable:True
///
[ExporterHeader(DisplayName = "上传云平台状态", IsBold = true)]
+ public string CloudReportStatusDisplay
+ {
+ get
+ {
+ return CloudReportStatus switch
+ {
+ 0 => "未上传",
+ 1 => "已上传",
+ _ => "未上传"
+ };
+ }
+ }
+
+ // [ExporterHeader(DisplayName = "上传云平台状态", IsBold = true)]
+ [ExporterHeader(IsIgnore = true)]
+
public int? CloudReportStatus { get; set; }
@@ -103,12 +141,58 @@ public class SwapOrderDto
///
[ExporterHeader(DisplayName = "云平台订单号", IsBold = true)]
public string? CloudSn { get; set; }
-
+
///
/// Desc:换电类型:;1自动换电;2手动换电
/// Default:0
/// Nullable:True
///
[ExporterHeader(DisplayName = "换电类型", IsBold = true)]
+ public string SwapWayDisplay
+ {
+ get
+ {
+ return SwapWay switch
+ {
+ 1 => "自动换电",
+ 2 => "手动换电",
+ _ => "未知"
+ };
+ }
+ }
+ ///
+ /// Desc:换电类型:;1自动换电;2手动换电
+ /// Default:0
+ /// Nullable:True
+ ///
+ [ExporterHeader(IsIgnore = true)]
public int? SwapWay { get; set; }
+
+
+
+ ///
+ /// Desc:亏电包soc
+ /// Default:
+ /// Nullable:True
+ ///
+ [ExporterHeader(DisplayName = "亏电包soc", IsBold = true)]
+
+ public decimal? DownBatterySoc { get; set; }
+ ///
+ /// Desc:亏电包真实soc
+ /// Default:
+ /// Nullable:True
+ ///
+ [ExporterHeader(DisplayName = "亏电包真实soc", IsBold = true)]
+
+ public decimal? DownBatteryRealSoc { get; set; }
+
+ ///
+ /// Desc:亏电包上次换电结算时soc
+ /// Default:
+ /// Nullable:True
+ ///
+ [ExporterHeader(DisplayName = "亏电包上次换电结算时soc", IsBold = true)]
+
+ public decimal? DownBatteryLastSoc { get; set; }
}
\ No newline at end of file
diff --git a/Service/Station/ChargeOrderService.cs b/Service/Station/ChargeOrderService.cs
index 8473cd6..e2064a7 100644
--- a/Service/Station/ChargeOrderService.cs
+++ b/Service/Station/ChargeOrderService.cs
@@ -59,7 +59,6 @@ public class ChargeOrderService : BaseServices
{
// 查询订单
List chargeOrders = await QueryChargeOrderListAsync(chargeOrder);
-
var config = new MapperConfiguration(cfg =>
{ cfg.CreateMap().ReverseMap(); });
diff --git a/Service/Station/SwapOrderService.cs b/Service/Station/SwapOrderService.cs
index 5c74171..f2bd209 100644
--- a/Service/Station/SwapOrderService.cs
+++ b/Service/Station/SwapOrderService.cs
@@ -45,27 +45,6 @@ public class SwapOrderService : BaseServices
return SwapOrderMgr.UploadCloud(list,2) ? Result.Success() : Result.Fail();
}
///
- /// 导出充电订单
- ///
- ///
- ///
- public async Task ExportSwapOrder(QuerySwapOrderPageReq swapOrder)
- {
- // 查询订单
- List swapOrders = await QuerySwapOrderListAsync(swapOrder);
-
-
- var config = new MapperConfiguration(cfg => { cfg.CreateMap().ReverseMap(); });
- IMapper mapper = config.CreateMapper();
-
- List list = mapper.Map>(swapOrders);
-
- IExcelExporter excelExporter = new ExcelExporter();
- var res = await excelExporter.ExportAsByteArray(list);
- return new FileStreamResult(new MemoryStream(res), "application/octet-stream")
- { FileDownloadName = DateTime.Now.ToString("yyyyMMddHHmm") + "换电订单.xlsx" };
- }
- ///
/// 查询需要导出换电订单
///
///
diff --git a/WebStarter/Controllers/SwapOrderController.cs b/WebStarter/Controllers/SwapOrderController.cs
index 1ab5997..d4c9e3a 100644
--- a/WebStarter/Controllers/SwapOrderController.cs
+++ b/WebStarter/Controllers/SwapOrderController.cs
@@ -3,7 +3,9 @@ using AutoMapper;
using Entity.Api.Req;
using Entity.Api.Resp;
using Entity.DbModel.Station;
+using Entity.Dto;
using HybirdFrameworkCore.Entity;
+using Magicodes.ExporterAndImporter.Excel;
using Microsoft.AspNetCore.Mvc;
using Service.Init;
using Service.Station;
@@ -101,6 +103,7 @@ public class SwapOrderController : ControllerBase
// 转换换电订单
SwapOrder swapOrder = mapper.Map(req);
swapOrder.Sn = SwapOrderNoGenerator.GenerateOrderNo(StaticStationInfo.StationNo);
+ swapOrder.CloudReportStatus = 0;
SwapOrder order = await swapOrderService.InsertAsync(swapOrder);
bool batteriesInserted = true;
@@ -198,7 +201,8 @@ public class SwapOrderController : ControllerBase
return Result.Fail("删除失败");
}
}
-
+
+
///
/// 换电订单导出
///
@@ -208,7 +212,45 @@ public class SwapOrderController : ControllerBase
[Route("export")]
public async Task ExportSwapOrder([FromBody] QuerySwapOrderPageReq req)
{
- return await swapOrderService.ExportSwapOrder(req);
+ List orderList = await swapOrderService.QuerySwapOrderListAsync(req);
+
+ //获取所有订单号
+ var orderSns = orderList.Select(row => row.Sn).ToList();
+
+ //查询订单电池数据
+ List batteryList =
+ swapOrderBatteryService.QueryListByClause(u => orderSns.Contains(u.SwapOrderSn));
+
+ //映射
+ var config = new MapperConfiguration(cfg =>
+ {
+ cfg.CreateMap().ReverseMap();
+ cfg.CreateMap().ReverseMap();
+ });
+ IMapper mapper = config.CreateMapper();
+
+ List swapOrderBattery = mapper.Map>(batteryList);
+ List list = mapper.Map>(orderList);
+
+
+ //将电池数据添加到换电订单数据中
+ for (int i = 0; i < list.Count; i++)
+ {
+ SwapOrderDto dto = list[i];
+ SwapOrderBatteryResp? swapOrderBatteryResp =
+ swapOrderBattery.FirstOrDefault(battery => battery.SwapOrderSn == dto.Sn);
+ if (swapOrderBatteryResp != null)
+ {
+ dto.DownBatterySoc = swapOrderBatteryResp.DownBatterySoc;
+ dto.DownBatteryRealSoc = swapOrderBatteryResp.DownBatteryRealSoc;
+ dto.DownBatteryLastSoc = swapOrderBatteryResp.DownBatteryLastSoc;
+ }
+ }
+
+ IExcelExporter excelExporter = new ExcelExporter();
+ var res = await excelExporter.ExportAsByteArray(list);
+ return new FileStreamResult(new MemoryStream(res), "application/octet-stream")
+ { FileDownloadName = DateTime.Now.ToString("yyyyMMddHHmm") + "换电订单.xlsx" };
}
///
/// 换电订单上报云端