feat(工单管理): 添加工单审批通知和滞留库存查询功能

- 在工单服务中新增获取审批通知列表和滞留库存列表的接口
- 添加对应的DTO定义用于查询和响应
- 在控制器中暴露相关API端点
- 修改物料类型字段注释为快速识别标号
- 在工单查询结果中添加物料标号字段
This commit is contained in:
2026-03-10 18:36:25 +08:00
parent b4e1f470f5
commit 424314732c
7 changed files with 311 additions and 7 deletions

View File

@@ -145,6 +145,14 @@ namespace DOAN.Service.MES.product
.Where(sub => sub.Remarks != "已撤销" || sub.Remarks == null)
.Select(sub => sub.Quantity)
),
Type = SqlFunc
.Subqueryable<MmMaterial>()
.Where(sub => sub.MaterialCode == it.productionCode)
.Select(sub => sub.Type),
SubType = SqlFunc
.Subqueryable<MmMaterial>()
.Where(sub => sub.MaterialCode == it.MaterialCode)
.Select(sub => sub.Type),
InInventoryNum = it.ProductNum - it.ShipmentNum,
},
true
@@ -218,5 +226,68 @@ namespace DOAN.Service.MES.product
}
return reportInfo.ProcessId;
}
/// <summary>
/// 获取审批通知列表
/// </summary>
/// <param name="parm">查询参数</param>
/// <returns></returns>
public PagedInfo<ProWorkorderApprovalDto> GetApprovalList(ProWorkorderApprovalQueryDto parm)
{
var result = Context
.Queryable<QcScrapRecords>()
.Where(it => it.Status == "待审批")
.Select(it => new ProWorkorderApprovalDto
{
Id = it.Id,
CreateTime = it.CreatedTime.Value,
Workorder = it.Workorder,
ProductionCode = it.ProductCode,
ProductionName = it.ProductName,
BatchNo = it.BatchNo,
StoveCode = it.StoveCode,
Operator = it.Operator,
Type = SqlFunc
.Subqueryable<MmMaterial>()
.Where(sub => sub.MaterialCode == it.ProductCode)
.Select(sub => sub.Type),
Content = $"有不良品待审批:{it.ScrapQuantity}个",
})
.ToPage(parm);
// 业务逻辑留空,暂时返回空列表
return result;
}
/// <summary>
/// 获取滞留库存列表
/// </summary>
/// <param name="parm">查询参数</param>
/// <returns></returns>
public PagedInfo<ProWorkorderStockDto> GetStockList(ProWorkorderStockQueryDto parm)
{
var result = Context
.Queryable<ProWorkorder>()
.Where(it => (it.ProductNum - it.ShipmentNum) > 0)
.Select(it => new ProWorkorderStockDto
{
Id = it.Id,
Workorder = it.Workorder,
ProductionCode = it.productionCode,
ProductionName = it.productionName,
Type = SqlFunc
.Subqueryable<MmMaterial>()
.Where(sub => sub.MaterialCode == it.productionCode)
.Select(sub => sub.Type),
BatchNo = it.FeedOrder,
StoveCode = it.StoveCode,
Operator = it.CreatedBy,
Content = $"有成品待出库",
StockQuantity = (it.ProductNum - it.ShipmentNum),
CreateTime = it.WorkorderDate.Value,
})
.ToPage(parm);
return result;
}
}
}