feat(工单管理): 新增工单物料查询及生产进度功能

新增工单物料服务接口及实现,包括领料清单、成品入库清单和出货清单查询
添加工单生产进度查询功能及相关DTO定义
完善工单修改日志记录功能
规范工单号字段使用,区分原材料工单号和当前工单号
This commit is contained in:
2026-01-30 18:28:21 +08:00
parent 17efcdf2cf
commit cc1fe5f967
13 changed files with 919 additions and 33 deletions

View File

@@ -11,7 +11,10 @@ namespace DOAN.Service.MES.product
/// <summary>
/// 工单查询服务
/// </summary>
[AppService(ServiceType = typeof(IProWorkorderQueryService), ServiceLifetime = LifeTime.Transient)]
[AppService(
ServiceType = typeof(IProWorkorderQueryService),
ServiceLifetime = LifeTime.Transient
)]
public class ProWorkorderQueryService : BaseService<ProWorkorder>, IProWorkorderQueryService
{
/// <summary>
@@ -52,7 +55,9 @@ namespace DOAN.Service.MES.product
.AndIF(!string.IsNullOrEmpty(parm.GroupCode), it => it.GroupCode == parm.GroupCode)
.AndIF(
parm.WorkorderDate != null && parm.WorkorderDate.Length > 0,
it => it.WorkorderDate >= parm.WorkorderDate[0] && it.WorkorderDate <= parm.WorkorderDate[1]
it =>
it.WorkorderDate >= parm.WorkorderDate[0]
&& it.WorkorderDate <= parm.WorkorderDate[1]
)
.And(it => it.PlanNum > 0)
.ToExpression();
@@ -103,7 +108,9 @@ namespace DOAN.Service.MES.product
.AndIF(!string.IsNullOrEmpty(parm.GroupCode), it => it.GroupCode == parm.GroupCode)
.AndIF(
parm.WorkorderDate != null && parm.WorkorderDate.Length > 0,
it => it.WorkorderDate >= parm.WorkorderDate[0] && it.WorkorderDate <= parm.WorkorderDate[1]
it =>
it.WorkorderDate >= parm.WorkorderDate[0]
&& it.WorkorderDate <= parm.WorkorderDate[1]
)
.And(it => it.PlanNum > 0)
.ToExpression();
@@ -134,7 +141,9 @@ namespace DOAN.Service.MES.product
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public PagedInfo<ProWorkorderTranceProgressDto> GetWorkorderTraceProgressList(ProWorkorderQueryDto query)
public PagedInfo<ProWorkorderTranceProgressDto> GetWorkorderTraceProgressList(
ProWorkorderQueryDto query
)
{
// 这里需要实现工单进度跟踪列表的查询逻辑
// 暂时返回空列表
@@ -152,5 +161,32 @@ namespace DOAN.Service.MES.product
// 暂时返回空列表
return new List<WorkOrderBom>();
}
/// <summary>
/// 获取工单生产进度
/// </summary>
/// <param name="workorder">工单号</param>
/// <returns></returns>
public int GetWorkorderWithProgress(string workorder)
{
var workorderInfo = Context
.Queryable<ProWorkorder>()
.Where(it => it.Workorder == workorder)
.First();
if (workorderInfo == null)
{
throw new Exception("工单不存在");
}
var reportInfo = Context
.Queryable<ProReportwork01>()
.Where(it => it.Workorder == workorder)
.OrderByDescending(it => it.ProcessId)
.First();
if (reportInfo == null)
{
return 1;
}
return reportInfo.ProcessId;
}
}
}
}