feat(报工): 添加报工数据导出功能

- 在IProReportworkService接口中添加导出方法定义
- 实现报工数据导出服务逻辑
- 添加导出API接口
- 为ProReportworkDto添加ExcelColumn属性用于导出映射
- 调整查询参数类型为可空类型以支持更灵活的查询
This commit is contained in:
2026-01-30 10:47:14 +08:00
parent 57265f115a
commit e12417dec2
5 changed files with 184 additions and 88 deletions

View File

@@ -1,17 +1,16 @@
namespace DOAN.Model.BZFM.Dto
{
/// <summary>
/// 报工查询对象
/// </summary>
public class ProReportworkQueryDto : PagerInfo
public class ProReportworkQueryDto : PagerInfo
{
public string Workorder { get; set; }
public int RouteId { get; set; }
public int? RouteId { get; set; }
public int? ProcessId { get; set; }
public int ProcessId { get; set; }
public string Worker { get; set; }
public DateTime[] JobDateTime { get; set; } = new DateTime[2];
@@ -23,47 +22,70 @@ namespace DOAN.Model.BZFM.Dto
public class ProReportworkDto
{
[Required(ErrorMessage = "雪花不能为空")]
[ExcelColumn(Name = "系统编号")]
public string Id { get; set; }
[ExcelColumn(Name = "工单编号")]
public string Workorder { get; set; }
// 产成品号
[ExcelColumn(Name = "主体品名")]
public string ProductionName { get; set; }
[ExcelColumn(Name = "主体型号")]
public string ProductionCode { get; set; }
// 原材料号
[ExcelColumn(Name = "原材料编码")]
public string MaterialCode { get; set; }
[ExcelColumn(Name = "原材料型号")]
public string MaterialName { get; set; }
// 炉号
[ExcelColumn(Name = "炉号")]
public string StoveCode { get; set; }
public string Workorder { get; set; }
// 产成品号
public string ProductionName { get; set; }
public string ProductionCode { get; set; }
// 原材料号
public string MaterialCode { get; set; }
public string MaterialName { get; set; }
// 领料批次号
[ExcelColumn(Name = "领料批次号")]
public string FeedOrder { get; set; }
[ExcelColumn(Name = "产线编号")]
public string RouteId { get; set; }
[ExcelColumn(Name = "系统工序编号")]
public int ProcessId { get; set; }
[ExcelColumn(Name = "工序名称")]
public string ProcessName { get; set; }
[ExcelColumn(Name = "计划数量")]
public int? PlanNum { get; set; }
[ExcelColumn(Name = "完成数量")]
public int? FinishNum { get; set; }
[ExcelColumn(Name = "不良品数量")]
public int? BadNum { get; set; }
[ExcelColumn(Name = "作业员")]
public string Worker { get; set; }
[ExcelColumn(Name = "作业日期")]
public DateTime? JobDateTime { get; set; }
[ExcelColumn(Name = "备注")]
public string Remark { get; set; }
[ExcelColumn(Name = "创建人")]
public string CreatedBy { get; set; }
[ExcelColumn(Name = "创建时间")]
public DateTime? CreatedTime { get; set; }
[ExcelColumn(Name = "更新人")]
public string UpdatedBy { get; set; }
[ExcelColumn(Name = "更新时间")]
public DateTime? UpdatedTime { get; set; }
}
}
}

View File

@@ -1,10 +1,9 @@
namespace DOAN.Model.MES.product.Dto
{
/// <summary>
/// 工单查询对象
/// </summary>
public class ProWorkorderQueryDto : PagerInfo
public class ProWorkorderQueryDto : PagerInfo
{
public string productionName { get; set; }
@@ -12,7 +11,6 @@ namespace DOAN.Model.MES.product.Dto
public string Workorder { get; set; }
public string RouteCode { get; set; }
public string GroupCode { get; set; }
@@ -38,11 +36,10 @@ namespace DOAN.Model.MES.product.Dto
public class ProWorkorderExportDto
{
public string [] WorkorderArray { get; set; }
public string[] WorkorderArray { get; set; }
public string Path { get; set; }
}
/// <summary>
/// 工单输入输出对象
/// </summary>
@@ -64,7 +61,6 @@ namespace DOAN.Model.MES.product.Dto
public int? ShipmentNum { get; set; }
public int? Sort { get; set; }
public DateTime? WorkorderDate { get; set; }
public int? Priority { get; set; }
@@ -93,7 +89,6 @@ namespace DOAN.Model.MES.product.Dto
public string GroupCode { get; set; }
/// <summary>
/// 进料单号(领料)
/// </summary>
@@ -121,13 +116,8 @@ namespace DOAN.Model.MES.product.Dto
public string UpdatedBy { get; set; }
public DateTime? UpdatedTime { get; set; }
}
/// <summary>
/// 工单备料进度
/// </summary>
@@ -172,7 +162,6 @@ namespace DOAN.Model.MES.product.Dto
/// <summary>
/// 下一个工单号
/// </summary>
public string next_id { get; set; }
}
@@ -186,46 +175,40 @@ namespace DOAN.Model.MES.product.Dto
/// </summary>
public string IsMatch_material_code { get; set; }
/// <summary>
/// 物料name在物料清单是否存在
/// </summary>
public string IsMatch_material_name { get; set; }
/// <summary>
/// 工艺路线是否存在
/// </summary>
public string IsMatch_line { get; set; }
/// <summary>
/// 组是否存在
/// </summary>
public string IsMatch_group { get; set; }
/// <summary>
/// 单位是否存在
/// </summary>
public string IsMatch_Unit { get; set; }
}
/// <summary>
/// 工单BOM 及其所需数量
/// </summary>
public class WorkOrderBom
{
/// <summary>
/// 子件编码
/// </summary>
public string SubInvCode { get; set; }
/// <summary>
/// 子件名称
/// </summary>
public string SubInvName { get; set; }
/// <summary>
@@ -236,13 +219,11 @@ namespace DOAN.Model.MES.product.Dto
/// <summary>
/// 使用总数量
/// </summary>
public string Iusequantity_All { get; set; }
/// <summary>
/// BOM版本号
/// </summary>
public string BOMVersion { get; set; }
}
@@ -252,90 +233,82 @@ namespace DOAN.Model.MES.product.Dto
public class ProWorkorderTranceProgressDto
{
/// <summary>
/// 雪花id
/// 雪花id
/// </summary>
public string Id { get; set; }
/// <summary>
/// 工单号
/// 工单号
/// </summary>
public string Workorder { get; set; }
/// <summary>
/// 存货编码
/// 存货编码
/// </summary>
public string productionCode { get; set; }
/// <summary>
/// 产品名称
/// 产品名称
/// </summary>
public string productionName { get; set; }
/// <summary>
/// 规格型号
/// 规格型号
/// </summary>
public string Specification { get; set; }
/// <summary>
/// 交货数量
/// 交货数量
/// </summary>
public int? DeliveryNum { get; set; }
/// <summary>
/// 组别
/// 组别
/// </summary>
public string GroupCode { get; set; }
/// <summary>
/// 线别
/// 线别
/// </summary>
public string RouteCode { get; set; }
/// <summary>
/// 序号
/// 序号
/// </summary>
public int? Sort { get; set; }
/// <summary>
/// 工单日期
/// 工单日期
/// </summary>
public DateTime? WorkorderDate { get; set; }
/// <summary>
/// 优先级 1-100
/// 优先级 1-100
/// </summary>
public int? Priority { get; set; }
/// <summary>
/// 工单状态
/// 工单状态
/// </summary>
public int? Status { get; set; }
/// <summary>
/// 工单开始时间
/// 工单开始时间
/// </summary>
public DateTime? StartTime { get; set; }
/// <summary>
/// 工单结束时间
public DateTime? EndTime { get; set; }
/// <summary>
/// 计划数量
/// 计划数量
/// </summary>
public int? PlanNum { get; set; }
/// <summary>
/// 实际数量
/// 实际数量
/// </summary>
public int? ActualNum { get; set; }
}
}
}