毛坯出入库修改,质量报表生成标签功能添加
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
using Infrastructure.Attribute;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using Infrastructure.Attribute;
|
||||
using SqlSugar;
|
||||
using ZR.Model;
|
||||
using ZR.Model.MES.wms;
|
||||
using ZR.Model.MES.wms.Dto;
|
||||
@@ -168,49 +168,66 @@ namespace ZR.Service.mes.wms
|
||||
{
|
||||
// 结果集
|
||||
List<WmGoodShortPackageCodeDto> resultList = new();
|
||||
string _parm = parm.Query;
|
||||
bool isLocation = false;
|
||||
if (!string.IsNullOrEmpty(_parm))
|
||||
{
|
||||
isLocation = Context
|
||||
.Queryable<WmInfo>()
|
||||
.Where(it => it.Location.ToLower() == _parm.ToLower())
|
||||
.Any();
|
||||
}
|
||||
// 全数据处理
|
||||
var predicate = Expressionable
|
||||
.Create<WmGoodsNowProduction>()
|
||||
.OrIF(!string.IsNullOrEmpty(parm.Query), it => it.Partnumber.Contains(parm.Query))
|
||||
.AndIF(isLocation, it => it.LocationCode.ToLower() == _parm.ToLower())
|
||||
.OrIF(
|
||||
!string.IsNullOrEmpty(parm.Query),
|
||||
it => it.PackageCodeClient.Contains(parm.Query)
|
||||
!string.IsNullOrEmpty(_parm) && !isLocation,
|
||||
it => it.Partnumber.Contains(_parm)
|
||||
)
|
||||
.OrIF(
|
||||
!string.IsNullOrEmpty(_parm) && !isLocation,
|
||||
it => it.PackageCodeClient.Contains(_parm)
|
||||
);
|
||||
List<WmGoodsNowProduction> wmGoodsNowsList = Context
|
||||
|
||||
// 使用子查询方式处理分组聚合
|
||||
// 先获取基础数据,然后在内存中进行分组处理
|
||||
var dataList = Context
|
||||
.Queryable<WmGoodsNowProduction>()
|
||||
.Where(predicate.ToExpression())
|
||||
.OrderByDescending(it => it.PackageCodeClient)
|
||||
.ToList();
|
||||
|
||||
// 聚合数据
|
||||
resultList = wmGoodsNowsList
|
||||
.GroupBy(it => it.PackageCodeClient.Split('_')[0])
|
||||
.Select(group => new WmGoodShortPackageCodeDto
|
||||
// 在内存中进行分组聚合处理
|
||||
var groupData = dataList
|
||||
.GroupBy(it =>
|
||||
{
|
||||
ShortPackageCode = group.Key,
|
||||
Partnumber = group.Max(item => item.Partnumber),
|
||||
EntryWarehouseTime = group.Max(item => item.EntryWarehouseTime),
|
||||
PackageNumber = group.Count(),
|
||||
PartnumberNumber = group.Sum(item => item.GoodsNumAction)
|
||||
// 处理PackageCodeClient,截取下划线前的部分
|
||||
if (it.PackageCodeClient.Contains("_"))
|
||||
{
|
||||
return it.PackageCodeClient.Split('_')[0];
|
||||
}
|
||||
return it.PackageCodeClient;
|
||||
})
|
||||
.Select(g => new WmGoodShortPackageCodeDto
|
||||
{
|
||||
ShortPackageCode = g.Key,
|
||||
Partnumber = g.Max(it => it.Partnumber),
|
||||
EntryWarehouseTime = g.Max(it => it.EntryWarehouseTime),
|
||||
PackageNumber = g.Count(),
|
||||
LocationCode = isLocation?g.Max(it => it.LocationCode) : "",
|
||||
PartnumberNumber = g.Sum(it => it.GoodsNumAction)
|
||||
});
|
||||
|
||||
// 获取总数
|
||||
int sum = groupData.Count();
|
||||
|
||||
// 分页处理
|
||||
resultList = groupData
|
||||
.OrderByDescending(it => it.ShortPackageCode)
|
||||
.Skip((parm.PageNum - 1) * parm.PageSize)
|
||||
.Take(parm.PageSize)
|
||||
.ToList();
|
||||
// 结果数据处理
|
||||
//每页多少条
|
||||
int rows = parm.PageSize;
|
||||
//第几页
|
||||
int page = parm.PageNum;
|
||||
//每一页开始下标
|
||||
int startIndex = (page - 1) * rows;
|
||||
//数据总数
|
||||
int sum = resultList.Count;
|
||||
if (startIndex + rows > sum)
|
||||
{
|
||||
resultList = resultList.Skip(startIndex).Take(sum).ToList();
|
||||
}
|
||||
else
|
||||
{
|
||||
resultList = resultList.Skip(startIndex).Take(startIndex + rows).ToList();
|
||||
}
|
||||
|
||||
return (resultList, sum);
|
||||
}
|
||||
|
||||
@@ -228,6 +245,10 @@ namespace ZR.Service.mes.wms
|
||||
.AndIF(
|
||||
!string.IsNullOrEmpty(parm.PackageCodeClient),
|
||||
it => it.PackageCodeClient.Contains(parm.PackageCodeClient)
|
||||
)
|
||||
.AndIF(
|
||||
!string.IsNullOrEmpty(parm.LocationCode),
|
||||
it => it.LocationCode == parm.LocationCode
|
||||
);
|
||||
|
||||
var response = Queryable()
|
||||
|
||||
Reference in New Issue
Block a user