查询一次合格品仓库列表

This commit is contained in:
卢江海
2025-03-24 15:43:32 +08:00
parent 63f161ee8b
commit fc7ce1e553
2 changed files with 126 additions and 12 deletions

View File

@@ -11,12 +11,13 @@ namespace ZR.Service.mes.wms.IService
{
WmOneTimeInventoryTableDto GetList(WmOneTimeInventoryQueryDto parm);
/// <summary>
/// 一次合格导出
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
List<WmOneTimeInventoryExportDto> GetExportList(WmOneTimeInventoryQueryDto parm);
WmOneTimeInventoryTableDto GetListNew(WmOneTimeInventoryQueryDto parm);
/// <summary>
/// 一次合格导出
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
List<WmOneTimeInventoryExportDto> GetExportList(WmOneTimeInventoryQueryDto parm);
WmOneTimeInventory GetInfo(string Id);

View File

@@ -231,12 +231,125 @@ namespace ZR.Service.mes.wms
return response;*/
}
/// <summary>
/// 获取详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
public WmOneTimeInventory GetInfo(string Id)
/// <summary>
/// 查询一次合格品仓库列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
public WmOneTimeInventoryTableDto GetListNew(WmOneTimeInventoryQueryDto parm)
{
var list = Context
.Queryable<WmMaterial>()
.LeftJoin<WmOneTimeInventory>((m, p) => m.Partnumber == p.Partnumber)
.Distinct()
.WhereIF(
!string.IsNullOrEmpty(parm.Description),
(m, p) => m.Description.Contains(parm.Description)
)
.WhereIF(
!string.IsNullOrEmpty(parm.Partnumber),
(m, p) => m.Partnumber.Contains(parm.Partnumber)
)
.Where((m, p) => m.Status == 1)
.Where((m, p) => m.Type == 1)
// .WhereIF(string.IsNullOrEmpty(parm.Partnumber), (m, p) => p.Status == 1)
.OrderBy((m, p) => m.Description)
.Select(
(m, p) =>
new WmOneTimeInventoryDto
{
RealQuantity = 0,
Partnumber = m.Partnumber,
Color = m.Color,
Specification = m.Specification,
Description = m.Description,
Id = p.Id ?? m.Id,
BlankNum = p.BlankNum,
Quantity = p.Quantity ?? 0,
MaxNum = p.MaxNum,
MinNum = p.MinNum,
WarnNum = p.WarnNum,
Type = p.Type ?? 1,
Status = p.Status,
Remark = p.Remark,
CreatedBy = p.CreatedBy,
CreatedTime = p.CreatedTime,
UpdatedBy = p.UpdatedBy,
UpdatedTime = p.UpdatedTime,
}
)
.ToList();
//TODO 取出库存表 WmOneTimeInventory 最小CreatedTime时间
DateTime minDateTime =
Context
.Queryable<WmOneTimeInventory>()
.OrderBy(it => it.CreatedTime)
.Select(it => it.CreatedTime)
.First() ?? DateTime.Now;
//TODO 根据时间范围取出所有记录数据
List<WmOneTimeRecord> wmOneTimeRecords = Context
.Queryable<WmOneTimeRecord>()
//.Where(it => it.Code == "自动")
.Where(it => it.ActionTime >= minDateTime)
.ToList();
foreach (WmOneTimeInventoryDto item in list)
{
int? runum = wmOneTimeRecords
.Where(o =>
o.ActionTime >= item.CreatedTime
&& o.Partnumber == item.Partnumber
&& o.ChangeType == 1
)
.Select(o => o.ChangeQuantity)
.Sum();
int? chunum = wmOneTimeRecords
.Where(o =>
o.ActionTime >= item.CreatedTime
&& o.Partnumber == item.Partnumber
&& o.ChangeType == 2
)
.Select(o => o.ChangeQuantity)
.Sum();
item.RealQuantity = item.Quantity.Value + (runum.Value - chunum.Value);
}
list = list.Where(it => it.RealQuantity != 0 || it.Quantity != 0)
.Where(it => !string.IsNullOrEmpty(it.Partnumber))
.DistinctBy(it => it.Partnumber)
.ToList();
int total = list.Count;
// 仓库总盘点零件数
int StocktakingTotal =
Context.Queryable<WmOneTimeInventory>().Sum(it => it.Quantity) ?? 0;
// 仓库当前查询盘点零件数
int QuantitySum = list.Sum(it => it.Quantity) ?? 0;
// 仓库当前查询实际零件数
int RealQuantitySum = list.Sum(it => it.RealQuantity);
WmOneTimeInventoryTableDto response =
new()
{
Total = total,
StocktakingTotal = StocktakingTotal,
QuantitySum = QuantitySum,
RealQuantitySum = RealQuantitySum,
Result = list.Skip((parm.PageNum - 1) * parm.PageSize)
.Take(parm.PageSize)
.ToList(),
};
return response;
}
/// <summary>
/// 获取详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
public WmOneTimeInventory GetInfo(string Id)
{
var response = Queryable().Where(x => x.Id == Id).First();