Files
kunshan-bzfm-mes-backend/DOAN.Service/MES/Product/ProWorkorderMaterialService.cs
git_rabbit cc1fe5f967 feat(工单管理): 新增工单物料查询及生产进度功能
新增工单物料服务接口及实现,包括领料清单、成品入库清单和出货清单查询
添加工单生产进度查询功能及相关DTO定义
完善工单修改日志记录功能
规范工单号字段使用,区分原材料工单号和当前工单号
2026-01-30 18:28:21 +08:00

110 lines
4.0 KiB
C#

using System.Collections.Generic;
using DOAN.Model.BZFM;
using DOAN.Model.MES.product;
using DOAN.Model.MES.product.Dto;
using DOAN.Service.MES.product.IService;
using Infrastructure.Attribute;
namespace DOAN.Service.MES.product
{
/// <summary>
/// 工单物料服务实现
/// </summary>
[AppService(
ServiceType = typeof(IProWorkorderMaterialService),
ServiceLifetime = LifeTime.Transient
)]
public class ProWorkorderMaterialService
: BaseService<ProWorkorder>,
IProWorkorderMaterialService
{
/// <summary>
/// 根据工单号查询领料清单
/// </summary>
/// <param name="workorder">工单号</param>
/// <returns>领料清单数据</returns>
public List<MaterialTakeDto> GetMaterialTakeList(string workorder)
{
var result = Context
.Queryable<MmRecordOutbound>()
.Where(it => it.Workorder == workorder)
.Where(it => it.TransactionType == "领料出库")
.Where(it => it.Remarks != "已撤销")
.Select(it => new MaterialTakeDto
{
MaterialCode = it.MaterialCode,
MaterialName = it.MaterialName,
BatchNo = it.BatchNo,
Quantity = it.Quantity,
Unit = it.Unit,
CreatedTime = it.CreatedTime.Value,
Operator = it.Operator,
OutboundNo = it.OutboundNo,
Workorder = it.Workorder,
WorkorderRaw = it.WorkorderRaw,
})
.ToList();
return result;
}
/// <summary>
/// 根据工单号查询成品入库清单
/// </summary>
/// <param name="workorder">工单号</param>
/// <returns>成品入库清单数据</returns>
public List<ProductStorageDto> GetProductStorageList(string workorder)
{
var result = Context
.Queryable<MmRecordInbound>()
.Where(it => it.Workorder == workorder)
.Where(it => it.TransactionType == "生产入库")
.Where(it => it.Remarks != "已撤销")
.Select(it => new ProductStorageDto
{
MaterialCode = it.MaterialCode,
MaterialName = it.MaterialName,
BatchNo = it.BatchNo,
Quantity = it.Quantity,
Unit = it.Unit,
CreatedTime = it.CreatedTime.Value,
Operator = it.Operator,
InboundNo = it.InboundNo,
Workorder = it.Workorder,
WorkorderRaw = it.WorkorderRaw,
})
.ToList();
return result;
}
/// <summary>
/// 根据工单号查询出货清单
/// </summary>
/// <param name="workorder">工单号</param>
/// <returns>出货清单数据</returns>
public List<ShipmentDto> GetShipmentList(string workorder)
{
var result = Context
.Queryable<MmRecordOutbound>()
.Where(it => it.Workorder == workorder)
.Where(it => it.TransactionType == "出货出库")
.Where(it => it.Remarks != "已撤销")
.Select(it => new ShipmentDto
{
MaterialCode = it.MaterialCode,
MaterialName = it.MaterialName,
BatchNo = it.BatchNo,
Quantity = it.Quantity,
Unit = it.Unit,
CreatedTime = it.CreatedTime.Value,
Operator = it.Operator,
OutboundNo = it.OutboundNo,
Workorder = it.Workorder,
WorkorderRaw = it.WorkorderRaw,
CustomerOrder = it.OrderNo,
})
.ToList();
return result;
}
}
}