|
@@ -14,6 +14,9 @@ using ZR.Model.Models.Inspect;
|
|
using Mapster;
|
|
using Mapster;
|
|
using System.Collections.Generic;
|
|
using System.Collections.Generic;
|
|
using ZR.Model.Models.Statistics;
|
|
using ZR.Model.Models.Statistics;
|
|
|
|
+using ZR.Model.Models.BaseSet;
|
|
|
|
+using ZR.Model.Models.InStore;
|
|
|
|
+using ZR.Model.Models.OutStore;
|
|
|
|
|
|
namespace ZR.Service.Business.Inspect
|
|
namespace ZR.Service.Business.Inspect
|
|
{
|
|
{
|
|
@@ -67,6 +70,67 @@ namespace ZR.Service.Business.Inspect
|
|
|
|
|
|
return response;
|
|
return response;
|
|
}
|
|
}
|
|
|
|
+ public PagedInfo<QaInspectRecordDto> GetReport(QaInspectRecordQueryDto parm)
|
|
|
|
+ {
|
|
|
|
+ //开始拼装查询条件
|
|
|
|
+ var predicate = Expressionable.Create<QaInspectRecord>();
|
|
|
|
+ predicate.AndIF(!string.IsNullOrEmpty(parm.MaterialCode), d => d.MaterialCode.Contains(parm.MaterialCode));
|
|
|
|
+ predicate.AndIF(!string.IsNullOrEmpty(parm.MaterialName), d => d.MaterialName.Contains(parm.MaterialName));
|
|
|
|
+ predicate.AndIF(!string.IsNullOrEmpty(parm.MaterialSpec), d => d.MaterialSpec.Contains(parm.MaterialSpec));
|
|
|
|
+ predicate.AndIF(!string.IsNullOrEmpty(parm.BnSnCode), d => d.BnSnCode.Contains(parm.BnSnCode));
|
|
|
|
+ predicate.AndIF(!string.IsNullOrEmpty(parm.Category), d => d.Category == parm.Category);
|
|
|
|
+ predicate.AndIF(parm.KeyFlag != null, d => d.KeyFlag == parm.KeyFlag);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //搜索条件查询语法参考Sqlsugar
|
|
|
|
+ var queryIn = Context.Queryable<InInstoreRecord>()
|
|
|
|
+ .GroupBy(instore => new { instore.MaterialCode, instore.BnSnCode })
|
|
|
|
+ .Select(instore => new InInstoreRecord
|
|
|
|
+ {
|
|
|
|
+ MaterialCode = instore.MaterialCode,
|
|
|
|
+ BnSnCode = instore.BnSnCode,
|
|
|
|
+ SumInstoreQty = SqlFunc.AggregateSumNoNull(instore.InStoreQty)
|
|
|
|
+ });
|
|
|
|
+ var queryOut = Context.Queryable<OutOutstoreRecord>()
|
|
|
|
+ .GroupBy(outstore => new { outstore.MaterialCode, outstore.BnSnCode })
|
|
|
|
+ .Select(outstore => new OutOutstoreRecord
|
|
|
|
+ {
|
|
|
|
+ MaterialCode = outstore.MaterialCode,
|
|
|
|
+ BnSnCode = outstore.BnSnCode,
|
|
|
|
+ SumOutstoreQty = SqlFunc.AggregateSumNoNull(outstore.OutStoreQty)
|
|
|
|
+ });
|
|
|
|
+ var queryAss = Context.Queryable<OutAssembleRecord>()
|
|
|
|
+ .GroupBy(ass => new { ass.MaterialCode, ass.BnSnCode })
|
|
|
|
+ .Select(ass => new OutAssembleRecord
|
|
|
|
+ {
|
|
|
|
+ MaterialCode = ass.MaterialCode,
|
|
|
|
+ BnSnCode = ass.BnSnCode,
|
|
|
|
+ SumAssQty = SqlFunc.AggregateSumNoNull(ass.AssembleQty)
|
|
|
|
+ });
|
|
|
|
+ var response = Queryable()
|
|
|
|
+ .GroupBy(d => new { d.MaterialCode, d.BnSnCode })
|
|
|
|
+ .LeftJoin(queryIn, (d, instore) => d.MaterialCode == instore.MaterialCode && d.BnSnCode == instore.BnSnCode)
|
|
|
|
+ .LeftJoin(queryOut, (d, instore, outstore) => d.MaterialCode == outstore.MaterialCode && d.BnSnCode == outstore.BnSnCode)
|
|
|
|
+ .LeftJoin(queryAss, (d, instore, outstore, assemble) => d.MaterialCode == assemble.MaterialCode && d.BnSnCode == assemble.BnSnCode)
|
|
|
|
+ .Where(predicate.ToExpression())
|
|
|
|
+ .Select((d, instore, outstore, assemble) => new QaInspectRecord
|
|
|
|
+ {
|
|
|
|
+ Category = d.Category,
|
|
|
|
+ MaterialCode = d.MaterialCode,
|
|
|
|
+ BnSnCode = d.BnSnCode,
|
|
|
|
+ MaterialName = d.MaterialName,
|
|
|
|
+ MaterialSpec = d.MaterialSpec,
|
|
|
|
+ KeyFlag = d.KeyFlag,
|
|
|
|
+ SumQaQty = SqlFunc.AggregateSumNoNull(d.CheckQty),
|
|
|
|
+ SumInstoreQty = instore.SumInstoreQty,
|
|
|
|
+ SumOutstoreQty = outstore.SumOutstoreQty,
|
|
|
|
+ SumAssQty = assemble.SumAssQty
|
|
|
|
+
|
|
|
|
+ })
|
|
|
|
+ .ToPage<QaInspectRecord, QaInspectRecordDto>(parm);
|
|
|
|
+
|
|
|
|
+ return response;
|
|
|
|
+ }
|
|
|
|
|
|
public List<GroupByKey> GetDailyStatistics(DateTime BeginTime, DateTime EndTime)
|
|
public List<GroupByKey> GetDailyStatistics(DateTime BeginTime, DateTime EndTime)
|
|
{
|
|
{
|
|
@@ -79,7 +143,7 @@ namespace ZR.Service.Business.Inspect
|
|
.Where(predicate.ToExpression())
|
|
.Where(predicate.ToExpression())
|
|
.Select(d => new GroupByKey
|
|
.Select(d => new GroupByKey
|
|
{
|
|
{
|
|
- KeyFlag=d.KeyFlag,
|
|
|
|
|
|
+ KeyFlag = d.KeyFlag,
|
|
SumQty = SqlFunc.AggregateSum(d.CheckQty),
|
|
SumQty = SqlFunc.AggregateSum(d.CheckQty),
|
|
})
|
|
})
|
|
.ToList();
|
|
.ToList();
|