在制品及工序统计逻辑调整

调整在制品、机加工、研磨的统计方式:
- 总在制品由“工序ID≤70”改为“工序ID≠70”
- 机加工由工序类型关键字改为“工序ID=20”
- 研磨由工序类型关键字改为“工序ID=40”
This commit is contained in:
2026-03-29 11:12:23 +08:00
parent e9c48f19ce
commit d8e7b999e0

View File

@@ -805,24 +805,20 @@ namespace DOAN.Service.MES.product
}
// 总在制品(排除最终工序 70
var wipSum = reportQuery.Where(r => r.ProcessId <= 70).Sum<int?>(r => r.FinishNum) ?? 0;
var wipSum = reportQuery.Where(r => r.ProcessId != 70).Sum<int?>(r => r.FinishNum) ?? 0;
// 机加工在制品:BaseWorkProcesses.DictWorkType 包含关键字的报工总和
// 机加工在制品:ProcessId == 20 的报工总和
var machiningSum = Context
.Queryable<ProReportwork01>()
.WhereIF(parm.StartTime != DateTime.MinValue && parm.EndTime != DateTime.MinValue, r => r.JobDateTime >= parm.StartTime && r.JobDateTime <= parm.EndTime)
.Where(r => SqlFunc.Subqueryable<BaseWorkProcesses>()
.Where(p => p.Id == r.ProcessId && (p.DictWorkType.Contains("机") || p.DictWorkType.Contains("machin")))
.Any())
.Where(r => r.ProcessId == 20)
.Sum<int?>(r => r.FinishNum) ?? 0;
// 研磨在制品:DictWorkType 包含关键字的报工总和
// 研磨在制品:ProcessId == 40 的报工总和
var grindingSum = Context
.Queryable<ProReportwork01>()
.WhereIF(parm.StartTime != DateTime.MinValue && parm.EndTime != DateTime.MinValue, r => r.JobDateTime >= parm.StartTime && r.JobDateTime <= parm.EndTime)
.Where(r => SqlFunc.Subqueryable<BaseWorkProcesses>()
.Where(p => p.Id == r.ProcessId && (p.DictWorkType.Contains("研") || p.DictWorkType.Contains("grind")))
.Any())
.Where(r => r.ProcessId == 40)
.Sum<int?>(r => r.FinishNum) ?? 0;
result.FinishedProductStockTotal = total;