diff --git a/DOAN.Admin.WebApi/Controllers/MES/Quality/IPQC/QcScrapRecordsController.cs b/DOAN.Admin.WebApi/Controllers/MES/Quality/IPQC/QcScrapRecordsController.cs
new file mode 100644
index 0000000..98606dc
--- /dev/null
+++ b/DOAN.Admin.WebApi/Controllers/MES/Quality/IPQC/QcScrapRecordsController.cs
@@ -0,0 +1,102 @@
+using Microsoft.AspNetCore.Mvc;
+using DOAN.Model.BZFM.Dto;
+using DOAN.Model.BZFM;
+using DOAN.Service.BZFM.IService;
+using DOAN.Admin.WebApi.Filters;
+
+//创建时间:2026-01-22
+namespace DOAN.Admin.WebApi.Controllers.BZFM
+{
+ ///
+ /// 报废记录表
+ ///
+ [Verify]
+ [Route("mes/qualityManagement/IPQC/QcScrapRecords")]
+ public class QcScrapRecordsController : BaseController
+ {
+ ///
+ /// 报废记录表接口
+ ///
+ private readonly IQcScrapRecordsService _QcScrapRecordsService;
+
+ public QcScrapRecordsController(IQcScrapRecordsService QcScrapRecordsService)
+ {
+ _QcScrapRecordsService = QcScrapRecordsService;
+ }
+
+ ///
+ /// 查询报废记录表列表
+ ///
+ ///
+ ///
+ [HttpGet("list")]
+ [ActionPermissionFilter(Permission = "qcscraprecords:list")]
+ public IActionResult QueryQcScrapRecords([FromQuery] QcScrapRecordsQueryDto parm)
+ {
+ var response = _QcScrapRecordsService.GetList(parm);
+ return SUCCESS(response);
+ }
+
+
+ ///
+ /// 查询报废记录表详情
+ ///
+ ///
+ ///
+ [HttpGet("{Id}")]
+ [ActionPermissionFilter(Permission = "qcscraprecords:query")]
+ public IActionResult GetQcScrapRecords(long Id)
+ {
+ var response = _QcScrapRecordsService.GetInfo(Id);
+
+ var info = response.Adapt();
+ return SUCCESS(info);
+ }
+
+ ///
+ /// 添加报废记录表
+ ///
+ ///
+ [HttpPost]
+ [ActionPermissionFilter(Permission = "qcscraprecords:add")]
+ [Log(Title = "报废记录表", BusinessType = BusinessType.INSERT)]
+ public IActionResult AddQcScrapRecords([FromBody] QcScrapRecordsDto parm)
+ {
+ var modal = parm.Adapt().ToCreate(HttpContext);
+
+ var response = _QcScrapRecordsService.AddQcScrapRecords(modal);
+
+ return SUCCESS(response);
+ }
+
+ ///
+ /// 更新报废记录表
+ ///
+ ///
+ [HttpPut]
+ [ActionPermissionFilter(Permission = "qcscraprecords:edit")]
+ [Log(Title = "报废记录表", BusinessType = BusinessType.UPDATE)]
+ public IActionResult UpdateQcScrapRecords([FromBody] QcScrapRecordsDto parm)
+ {
+ var modal = parm.Adapt().ToUpdate(HttpContext);
+ var response = _QcScrapRecordsService.UpdateQcScrapRecords(modal);
+
+ return ToResponse(response);
+ }
+
+ ///
+ /// 删除报废记录表
+ ///
+ ///
+ [HttpPost("delete/{ids}")]
+ [ActionPermissionFilter(Permission = "qcscraprecords:delete")]
+ [Log(Title = "报废记录表", BusinessType = BusinessType.DELETE)]
+ public IActionResult DeleteQcScrapRecords([FromRoute]string ids)
+ {
+ var idArr = Tools.SplitAndConvert(ids);
+
+ return ToResponse(_QcScrapRecordsService.Delete(idArr));
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Model/MES/Material/Dto/MmRecordInboundDto.cs b/DOAN.Model/MES/Material/Dto/MmRecordInboundDto.cs
index 1cece38..1d22a56 100644
--- a/DOAN.Model/MES/Material/Dto/MmRecordInboundDto.cs
+++ b/DOAN.Model/MES/Material/Dto/MmRecordInboundDto.cs
@@ -69,6 +69,11 @@ namespace DOAN.Model.BZFM.Dto
public string MaterialCode { get; set; }
public string InboundNo { get; set; }
+ ///
+ /// 工单号
+ ///
+ public string Workorder { get; set; }
+
[ExcelColumn(Name = "入库类型")]
public string TransactionTypeLabel { get; set; }
}
diff --git a/DOAN.Model/MES/Product/Dto/ProReportworkDto.cs b/DOAN.Model/MES/Product/Dto/ProReportworkDto.cs
index 39605e5..e9a8009 100644
--- a/DOAN.Model/MES/Product/Dto/ProReportworkDto.cs
+++ b/DOAN.Model/MES/Product/Dto/ProReportworkDto.cs
@@ -25,7 +25,18 @@ namespace DOAN.Model.BZFM.Dto
[Required(ErrorMessage = "雪花不能为空")]
public string Id { get; set; }
+ // 炉号
+ 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; }
+ // 领料批次号
+ public string FeedOrder { get; set; }
public string RouteId { get; set; }
diff --git a/DOAN.Model/MES/Quality/IPQC/Dto/QcScrapRecordsDto.cs b/DOAN.Model/MES/Quality/IPQC/Dto/QcScrapRecordsDto.cs
new file mode 100644
index 0000000..d4458e5
--- /dev/null
+++ b/DOAN.Model/MES/Quality/IPQC/Dto/QcScrapRecordsDto.cs
@@ -0,0 +1,96 @@
+
+namespace DOAN.Model.BZFM.Dto
+{
+ ///
+ /// 报废记录表查询对象
+ ///
+ public class QcScrapRecordsQueryDto : PagerInfo
+ {
+ public string MaterialCode { get; set; }
+ public string ProductCode { get; set; }
+ public string Workorder { get; set; }
+ public string BatchNo { get; set; }
+ public DateTime? StartTime { get; set; }
+ public DateTime? EndTime { get; set; }
+ }
+
+ ///
+ /// 报废记录表输入输出对象
+ ///
+ public class QcScrapRecordsDto
+ {
+ public string WorkStation { get; set; }
+
+ public int? Version { get; set; }
+
+ public long? TenantId { get; set; }
+
+ [Required(ErrorMessage = "更新时间不能为空")]
+ public DateTime? UpdatedTime { get; set; }
+
+ public long? UpdatedBy { get; set; }
+
+ [Required(ErrorMessage = "创建时间不能为空")]
+ public DateTime? CreatedTime { get; set; }
+
+ [Required(ErrorMessage = "创建人ID不能为空")]
+ public long CreatedBy { get; set; }
+
+ public string Remark { get; set; }
+
+ public string LocationCode { get; set; }
+
+ public decimal CostImpact { get; set; }
+
+ public string QualityInspector { get; set; }
+
+ public string Status { get; set; }
+
+ public DateTime? ApprovalDate { get; set; }
+
+ [Required(ErrorMessage = "报废日期不能为空")]
+ public DateTime? ScrapDate { get; set; }
+
+ public string SupervisorName { get; set; }
+
+ public string Operator { get; set; }
+
+ [Required(ErrorMessage = "主键ID不能为空")]
+ public long Id { get; set; }
+
+ public string DisposalMethod { get; set; }
+
+ public string ScrapType { get; set; }
+
+ public string ScrapReason { get; set; }
+
+ public string Unit { get; set; }
+
+ [Required(ErrorMessage = "报废数量不能为空")]
+ public decimal ScrapQuantity { get; set; }
+
+ public string BatchNo { get; set; }
+
+ public string MaterialName { get; set; }
+
+ public string MaterialCode { get; set; }
+
+ public string ProductName { get; set; }
+
+ public string ProductCode { get; set; }
+
+ public string StoveCode { get; set; }
+
+ public string LineCode { get; set; }
+
+ public string Workorder { get; set; }
+
+ [Required(ErrorMessage = "报废单号不能为空")]
+ public string ScrapOrderNo { get; set; }
+
+
+
+ [ExcelColumn(Name = "状态:草稿,待审批,已批准,已拒绝")]
+ public string StatusLabel { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Model/MES/Quality/IPQC/QcScrapRecords.cs b/DOAN.Model/MES/Quality/IPQC/QcScrapRecords.cs
new file mode 100644
index 0000000..eabffa4
--- /dev/null
+++ b/DOAN.Model/MES/Quality/IPQC/QcScrapRecords.cs
@@ -0,0 +1,191 @@
+
+namespace DOAN.Model.BZFM
+{
+ ///
+ /// 不良品记录表
+ ///
+ [SugarTable("qc_scrap_records")]
+ public class QcScrapRecords
+ {
+ ///
+ /// 工位
+ ///
+ [SugarColumn(ColumnName = "work_station")]
+ public string WorkStation { get; set; }
+
+ ///
+ /// 版本号
+ ///
+ public int? Version { get; set; }
+
+ ///
+ /// 租户ID
+ ///
+ [SugarColumn(ColumnName = "tenant_id")]
+ public long? TenantId { get; set; }
+
+ ///
+ /// 更新时间
+ ///
+ [SugarColumn(ColumnName = "updated_time")]
+ public DateTime? UpdatedTime { get; set; }
+
+ ///
+ /// 更新人ID
+ ///
+ [SugarColumn(ColumnName = "updated_by")]
+ public long? UpdatedBy { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ [SugarColumn(ColumnName = "created_time")]
+ public DateTime? CreatedTime { get; set; }
+
+ ///
+ /// 创建人ID
+ ///
+ [SugarColumn(ColumnName = "created_by")]
+ public long CreatedBy { get; set; }
+
+ ///
+ /// 备注
+ ///
+ public string Remark { get; set; }
+
+ ///
+ /// 库存编号
+ ///
+ [SugarColumn(ColumnName = "location_code")]
+ public string LocationCode { get; set; }
+
+ ///
+ /// 成本影响金额
+ ///
+ [SugarColumn(ColumnName = "cost_impact")]
+ public decimal CostImpact { get; set; }
+
+ ///
+ /// 质检员
+ ///
+ [SugarColumn(ColumnName = "quality_inspector")]
+ public string QualityInspector { get; set; }
+
+ ///
+ /// 状态:草稿,待审批,已批准,已拒绝
+ ///
+ public string Status { get; set; }
+
+ ///
+ /// 审批日期
+ ///
+ [SugarColumn(ColumnName = "approval_date")]
+ public DateTime? ApprovalDate { get; set; }
+
+ ///
+ /// 报废日期
+ ///
+ [SugarColumn(ColumnName = "scrap_date")]
+ public DateTime? ScrapDate { get; set; }
+
+ ///
+ /// 审核人
+ ///
+ [SugarColumn(ColumnName = "supervisor_name")]
+ public string SupervisorName { get; set; }
+
+ ///
+ /// 操作员
+ ///
+ public string Operator { get; set; }
+
+ ///
+ /// 主键ID
+ ///
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+ public long Id { get; set; }
+
+ ///
+ /// 处置方式
+ ///
+ [SugarColumn(ColumnName = "disposal_method")]
+ public string DisposalMethod { get; set; }
+
+ ///
+ /// 报废类型:质量缺陷,过期,损坏,工艺错误,其他
+ ///
+ [SugarColumn(ColumnName = "scrap_type")]
+ public string ScrapType { get; set; }
+
+ ///
+ /// 报废原因
+ ///
+ [SugarColumn(ColumnName = "scrap_reason")]
+ public string ScrapReason { get; set; }
+
+ ///
+ /// 单位
+ ///
+ public string Unit { get; set; }
+
+ ///
+ /// 报废数量
+ ///
+ [SugarColumn(ColumnName = "scrap_quantity")]
+ public decimal ScrapQuantity { get; set; }
+
+ ///
+ /// 批次号
+ ///
+ [SugarColumn(ColumnName = "batch_no")]
+ public string BatchNo { get; set; }
+
+ ///
+ /// 物料名称
+ ///
+ [SugarColumn(ColumnName = "material_name")]
+ public string MaterialName { get; set; }
+
+ ///
+ /// 物料编码
+ ///
+ [SugarColumn(ColumnName = "material_code")]
+ public string MaterialCode { get; set; }
+
+ ///
+ /// 产品名称
+ ///
+ [SugarColumn(ColumnName = "product_name")]
+ public string ProductName { get; set; }
+
+ ///
+ /// 产品编号
+ ///
+ [SugarColumn(ColumnName = "product_code")]
+ public string ProductCode { get; set; }
+
+ ///
+ /// 炉号
+ ///
+ [SugarColumn(ColumnName = "stove_code")]
+ public string StoveCode { get; set; }
+
+ ///
+ /// 线别
+ ///
+ [SugarColumn(ColumnName = "line_code")]
+ public string LineCode { get; set; }
+
+ ///
+ /// 工单号
+ ///
+ public string Workorder { get; set; }
+
+ ///
+ /// 报废单号
+ ///
+ [SugarColumn(ColumnName = "scrap_order_no")]
+ public string ScrapOrderNo { get; set; }
+
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Model/Mobile/ReportFlow/Dto/ProReportWorkDetialDto.cs b/DOAN.Model/Mobile/ReportFlow/Dto/ProReportWorkDetialDto.cs
index 45f012a..2756ad0 100644
--- a/DOAN.Model/Mobile/ReportFlow/Dto/ProReportWorkDetialDto.cs
+++ b/DOAN.Model/Mobile/ReportFlow/Dto/ProReportWorkDetialDto.cs
@@ -2,81 +2,85 @@ namespace DOAN.Model.Mobile.ReportFlow.Dto;
public class ProReportWorkDetialDto
{
-
- public string Id { get; set; }
+ public string Id { get; set; }
- ///
- /// 工单code
- ///
- public string Workorder { get; set; }
+ ///
+ /// 工单code
+ ///
+ public string Workorder { get; set; }
- ///
- /// 路线code
- ///
- public string RouteCode { get; set; }
+ ///
+ /// 炉号
+ ///
+ public string StoveCode { get; set; }
- ///
- /// 工序id
- ///
-
- public int ProcessId { get; set; }
-
- ///
- /// 工序名称
- ///
- public string ProcessName { get; set; }
+ ///
+ /// 领料批次号
+ ///
+ public string FeedOrder { get; set; }
- ///
- /// 计划数量
- ///
+ ///
+ /// 路线code
+ ///
+ public string RouteCode { get; set; }
- public int? PlanNum { get; set; }
+ ///
+ /// 工序id
+ ///
+ public int ProcessId { get; set; }
- ///
- /// 完成数量
- ///
-
- public int? FinishNum { get; set; }
+ ///
+ /// 工序名称
+ ///
+ public string ProcessName { get; set; }
- ///
- /// 不良数量
- ///
+ ///
+ /// 计划数量
+ ///
+ public int? PlanNum { get; set; }
- public int? BadNum { get; set; }
+ ///
+ /// 完成数量
+ ///
+ public int? FinishNum { get; set; }
- ///
- /// 作业员
- ///
- public string Worker { get; set; }
+ ///
+ /// 不良数量
+ ///
+ public int? BadNum { get; set; }
- ///
- /// 作业日期
- ///
+ ///
+ /// 作业员
+ ///
+ public string Worker { get; set; }
- public DateTime? JobDateTime { get; set; }
+ ///
+ /// 作业日期
+ ///
+ public DateTime? JobDateTime { get; set; }
- ///
- /// 备注
- ///
- public string Remark { get; set; }
+ ///
+ /// 备注
+ ///
+ public string Remark { get; set; }
- ///
- /// 创建人
- ///
- public string CreatedBy { get; set; }
+ ///
+ /// 创建人
+ ///
+ public string CreatedBy { get; set; }
- ///
- /// 创建时间
- ///
- public DateTime? CreatedTime { get; set; }
+ ///
+ /// 创建时间
+ ///
+ public DateTime? CreatedTime { get; set; }
- ///
- /// 更新人
- ///
- public string UpdatedBy { get; set; }
+ ///
+ /// 更新人
+ ///
+ public string UpdatedBy { get; set; }
- ///
- /// 更新时间
- ///
- public DateTime? UpdatedTime { get; set; }
-}
\ No newline at end of file
+ ///
+ /// 更新时间
+ ///
+ public DateTime? UpdatedTime { get; set; }
+}
diff --git a/DOAN.Service/DOAN.Service.csproj b/DOAN.Service/DOAN.Service.csproj
index b29b6fc..0939a00 100644
--- a/DOAN.Service/DOAN.Service.csproj
+++ b/DOAN.Service/DOAN.Service.csproj
@@ -28,6 +28,7 @@
+
diff --git a/DOAN.Service/MES/Product/ProReportworkService.cs b/DOAN.Service/MES/Product/ProReportworkService.cs
index 11b0f0d..54cb49e 100644
--- a/DOAN.Service/MES/Product/ProReportworkService.cs
+++ b/DOAN.Service/MES/Product/ProReportworkService.cs
@@ -50,8 +50,22 @@ public class ProReportworkService : BaseService, IProReportwork
var response = Context
.Queryable(query)
.LeftJoin((q, w) => q.ProcessId == w.Id)
- .OrderBy((q, w) => new { q.Workorder, w.Id })
- .Select((q, w) => new ProReportworkDto { ProcessName = w.Name }, true)
+ .LeftJoin((q, w, wo) => q.Workorder == wo.Workorder)
+ .OrderBy((q, w, wo) => new { q.Workorder, w.Id })
+ .Select(
+ (q, w, wo) =>
+ new ProReportworkDto
+ {
+ ProcessName = w.Name,
+ FeedOrder = wo.FeedOrder,
+ ProductionName = wo.productionName,
+ ProductionCode = wo.productionCode,
+ MaterialCode = wo.MaterialCode,
+ MaterialName = wo.MaterialName,
+ StoveCode = wo.StoveCode,
+ },
+ true
+ )
.ToPage_NO_Convert(parm);
return response;
diff --git a/DOAN.Service/MES/Quality/IPQC/IService/IQcScrapRecordsService.cs b/DOAN.Service/MES/Quality/IPQC/IService/IQcScrapRecordsService.cs
new file mode 100644
index 0000000..673f13f
--- /dev/null
+++ b/DOAN.Service/MES/Quality/IPQC/IService/IQcScrapRecordsService.cs
@@ -0,0 +1,21 @@
+using DOAN.Model.BZFM.Dto;
+using DOAN.Model.BZFM;
+
+namespace DOAN.Service.BZFM.IService
+{
+ ///
+ /// 报废记录表service接口
+ ///
+ public interface IQcScrapRecordsService : IBaseService
+ {
+ PagedInfo GetList(QcScrapRecordsQueryDto parm);
+
+ QcScrapRecords GetInfo(long Id);
+
+
+ QcScrapRecords AddQcScrapRecords(QcScrapRecords parm);
+ int UpdateQcScrapRecords(QcScrapRecords parm);
+
+
+ }
+}
diff --git a/DOAN.Service/MES/Quality/IPQC/QcScrapRecordsService.cs b/DOAN.Service/MES/Quality/IPQC/QcScrapRecordsService.cs
new file mode 100644
index 0000000..3b952eb
--- /dev/null
+++ b/DOAN.Service/MES/Quality/IPQC/QcScrapRecordsService.cs
@@ -0,0 +1,79 @@
+using Infrastructure.Attribute;
+using Infrastructure.Extensions;
+using DOAN.Model.BZFM.Dto;
+using DOAN.Model.BZFM;
+using DOAN.Repository;
+using DOAN.Service.BZFM.IService;
+
+namespace DOAN.Service.BZFM
+{
+ ///
+ /// 报废记录表Service业务层处理
+ ///
+ [AppService(ServiceType = typeof(IQcScrapRecordsService), ServiceLifetime = LifeTime.Transient)]
+ public class QcScrapRecordsService : BaseService, IQcScrapRecordsService
+ {
+ ///
+ /// 查询报废记录表列表
+ ///
+ ///
+ ///
+ public PagedInfo GetList(QcScrapRecordsQueryDto parm)
+ {
+ var predicate = QueryExp(parm);
+
+ var response = Queryable()
+ .Where(predicate.ToExpression())
+ .ToPage(parm);
+
+ return response;
+ }
+
+
+ ///
+ /// 获取详情
+ ///
+ ///
+ ///
+ public QcScrapRecords GetInfo(long Id)
+ {
+ var response = Queryable()
+ .Where(x => x.Id == Id)
+ .First();
+
+ return response;
+ }
+
+ ///
+ /// 添加报废记录表
+ ///
+ ///
+ ///
+ public QcScrapRecords AddQcScrapRecords(QcScrapRecords model)
+ {
+ return Insertable(model).ExecuteReturnEntity();
+ }
+
+ ///
+ /// 修改报废记录表
+ ///
+ ///
+ ///
+ public int UpdateQcScrapRecords(QcScrapRecords model)
+ {
+ return Update(model, true);
+ }
+
+ ///
+ /// 查询导出表达式
+ ///
+ ///
+ ///
+ private static Expressionable QueryExp(QcScrapRecordsQueryDto parm)
+ {
+ var predicate = Expressionable.Create();
+
+ return predicate;
+ }
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Service/Mobile/ReportFlowService.cs b/DOAN.Service/Mobile/ReportFlowService.cs
index 83f32fb..92e6160 100644
--- a/DOAN.Service/Mobile/ReportFlowService.cs
+++ b/DOAN.Service/Mobile/ReportFlowService.cs
@@ -30,6 +30,7 @@ public class ReportFlowService : BaseService, IReportFlowServic
return Context
.Queryable()
.Where(it => it.WorkorderDate >= startDate && it.WorkorderDate <= endDate)
+ .Where(it => it.PlanNum > 0)
.ToList();
}
@@ -149,7 +150,9 @@ public class ReportFlowService : BaseService, IReportFlowServic
Remarks = $"生产领料,工单号:{workorder}",
};
MmInventoryService mmInventoryService = new();
- string createReceiptresult = mmInventoryService.CreateOutboundReceipt(revokeRecepitDto);
+ string createReceiptresult = mmInventoryService.CreateOutboundReceipt(
+ revokeRecepitDto
+ );
if (createReceiptresult != "ok")
{
Context.Ado.RollbackTran();
@@ -177,7 +180,6 @@ public class ReportFlowService : BaseService, IReportFlowServic
Context.Ado.RollbackTran();
throw;
}
-
}
///
@@ -269,7 +271,9 @@ public class ReportFlowService : BaseService, IReportFlowServic
if (mmMaterial == null)
{
Context.Ado.RollbackTran();
- throw new Exception($"物料档案不存在,无法成品入库:{proWorkorder.productionCode}");
+ throw new Exception(
+ $"物料档案不存在,无法成品入库:{proWorkorder.productionCode}"
+ );
}
if (inboundRecord == null)
{
@@ -316,7 +320,6 @@ public class ReportFlowService : BaseService, IReportFlowServic
Context.Ado.RollbackTran();
throw;
}
-
}
///
@@ -440,7 +443,7 @@ public class ReportFlowService : BaseService, IReportFlowServic
string createReceiptresult = mmInventoryService.CreateOutboundReceipt(
revokeRecepitDto
);
- if(createReceiptresult != "ok")
+ if (createReceiptresult != "ok")
{
Context.Ado.RollbackTran();
throw new Exception(createReceiptresult);
@@ -500,9 +503,19 @@ public class ReportFlowService : BaseService, IReportFlowServic
return Context
.Queryable()
.LeftJoin((rw, wp) => rw.ProcessId == wp.Id)
+ .LeftJoin((rw, wp, wo) => rw.Workorder == wo.Workorder)
.Where((rw, wp) => rw.Workorder == workorder)
.OrderBy(rw => rw.ProcessId)
- .Select((rw, wp) => new ProReportWorkDetialDto() { ProcessName = wp.Name }, true)
+ .Select(
+ (rw, wp, wo) =>
+ new ProReportWorkDetialDto()
+ {
+ ProcessName = wp.Name,
+ StoveCode = wo.StoveCode,
+ FeedOrder = wo.FeedOrder,
+ },
+ true
+ )
.ToList();
}
@@ -518,6 +531,7 @@ public class ReportFlowService : BaseService, IReportFlowServic
return Context
.Queryable()
.LeftJoin((rw, wp) => rw.ProcessId == wp.Id)
+ .LeftJoin((rw, wp, wo) => rw.Workorder == wo.Workorder)
.Where(
(rw, wp) =>
rw.Worker == query.name
@@ -525,7 +539,16 @@ public class ReportFlowService : BaseService, IReportFlowServic
&& rw.JobDateTime < DateTime.Today.AddDays(1)
)
.OrderBy(rw => rw.ProcessId)
- .Select((rw, wp) => new ProReportWorkDetialDto() { ProcessName = wp.Name }, true)
+ .Select(
+ (rw, wp, wo) =>
+ new ProReportWorkDetialDto()
+ {
+ ProcessName = wp.Name,
+ StoveCode = wo.StoveCode,
+ FeedOrder = wo.FeedOrder,
+ },
+ true
+ )
.ToPage_NO_Convert(query);
}
@@ -545,14 +568,24 @@ public class ReportFlowService : BaseService, IReportFlowServic
return Context
.Queryable()
.LeftJoin((rw, wp) => rw.ProcessId == wp.Id)
+ .LeftJoin((rw, wp, wo) => rw.Workorder == wo.Workorder)
.Where(
- (rw, wp) =>
+ (rw, wp, wo) =>
rw.ProcessId == query.processId
&& rw.JobDateTime >= DateTime.Today
&& rw.JobDateTime < DateTime.Today.AddDays(1)
)
.OrderBy(rw => rw.ProcessId)
- .Select((rw, wp) => new ProReportWorkDetialDto() { ProcessName = wp.Name }, true)
+ .Select(
+ (rw, wp, wo) =>
+ new ProReportWorkDetialDto()
+ {
+ ProcessName = wp.Name,
+ StoveCode = wo.StoveCode,
+ FeedOrder = wo.FeedOrder,
+ },
+ true
+ )
.ToPage_NO_Convert(query);
}
}