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
{
///
/// 工单物料服务实现
///
[AppService(
ServiceType = typeof(IProWorkorderMaterialService),
ServiceLifetime = LifeTime.Transient
)]
public class ProWorkorderMaterialService
: BaseService,
IProWorkorderMaterialService
{
///
/// 根据工单号查询领料清单
///
/// 工单号
/// 领料清单数据
public List GetMaterialTakeList(string workorder)
{
var result = Context
.Queryable()
.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;
}
///
/// 根据工单号查询成品入库清单
///
/// 工单号
/// 成品入库清单数据
public List GetProductStorageList(string workorder)
{
var result = Context
.Queryable()
.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;
}
///
/// 根据工单号查询出货清单
///
/// 工单号
/// 出货清单数据
public List GetShipmentList(string workorder)
{
var result = Context
.Queryable()
.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;
}
}
}