youh
This commit is contained in:
@@ -191,7 +191,7 @@ namespace WMS.Web.Repositories
|
||||
Receiver = x.box.ReceiverId.HasValue ? _singleDataService.GetSingleData(SingleAction.Staffs, companyId, x.box.ReceiverId.Value) : "",
|
||||
Qty = x.detail.ReceiveQty,
|
||||
ReceiveQty = x.detail.ReceiveQty,
|
||||
SerialNumbers=x.detail.SerialNumbers!=null && x.detail.SerialNumbers.Count()>0? (string.Join(",", x.detail.SerialNumbers).TrimEnd(',')):"",
|
||||
SerialNumbers = x.detail.SerialNumbers != null && x.detail.SerialNumbers.Count() > 0 ? (string.Join(",", x.detail.SerialNumbers).TrimEnd(',')) : "",
|
||||
}).ToListAsync();
|
||||
|
||||
if (boxList != null && boxList.Count != 0)
|
||||
@@ -203,9 +203,6 @@ namespace WMS.Web.Repositories
|
||||
{
|
||||
var instockOrder_ids = boxInstockList_details.GroupBy(x => x.Fid).Select(x => x.Key).ToList();
|
||||
var instockOrder = await _context.Instock.Where(x => instockOrder_ids.Contains(x.Id)).ToListAsync();
|
||||
//var boxInstockList = boxInstockList_details.GroupBy(x => new { BoxId = x.BoxId, MaterialNumber = x.MaterialNumber }).
|
||||
// Select(x => new { BoxId = x.Key.BoxId, MaterialNumber = x.Key.MaterialNumber, RealityQty = x.Sum(t => t.Qty) }).ToList();
|
||||
|
||||
boxList.ForEach(x =>
|
||||
{
|
||||
var currentInstock = boxInstockList_details.Where(t => t.BoxId == x.BoxId && t.MaterialNumber == x.MaterialNumber).FirstOrDefault();
|
||||
@@ -218,19 +215,66 @@ namespace WMS.Web.Repositories
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
////序列号
|
||||
//var materNumbs = boxList.GroupBy(x => x.MaterialNumber).Select(x => x.Key).ToList();
|
||||
//var serialNumbList = _context.SerialNumbers.Where(x => materNumbs.Contains(x.MaterialNumber)).ToList();
|
||||
|
||||
//boxList.ForEach(x =>
|
||||
//{
|
||||
// x.SerialNumbers = (string.Join(",", serialNumbList.Where(t => t.BoxId == x.BoxId && t.MaterialNumber == x.MaterialNumber).Select(t => t.SerialNumber).ToList())).TrimEnd(',');
|
||||
//});
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
boxList = await _context.InStockDetails
|
||||
.GroupJoin(_context.Instock, det => det.Fid, ts => ts.Id, (detail, ts) => new { detail, ts })
|
||||
.SelectMany(x => x.ts.DefaultIfEmpty(), (p, order) => new { p.detail, order })
|
||||
.GroupJoin(_context.Box, p => p.detail.BoxId, ts => ts.Id, (p, ts) => new { p.detail, p.order, ts })
|
||||
.SelectMany(x => x.ts.DefaultIfEmpty(), (p, box) => new { p.detail, p.order, box })
|
||||
.GroupJoin(_context.InStockTaskDetails, p => p.detail.TaskDetailId, ts => ts.Id, (p, ts) => new { p.detail, p.order, p.box, ts })
|
||||
.SelectMany(x => x.ts.DefaultIfEmpty(), (p, taskDet) => new { p.detail, p.order, p.box, taskDet })
|
||||
.Where(x => x.detail.TaskId == entity.Id).Select(x => new InStockTaskBoxInfoDto()
|
||||
{
|
||||
BoxId = x.box.Id,
|
||||
BoxBillNo = x.box.BoxBillNo,
|
||||
Method = x.order.Method.GetRemark(),
|
||||
MethodForInt = (int)x.order.Method,
|
||||
MaterialNumber = x.detail.MaterialNumber,
|
||||
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, x.detail.MaterialNumber),
|
||||
SaleBillNo = x.taskDet.SaleBillNo,
|
||||
Qty = 0,
|
||||
RealityQty = x.detail.Qty,
|
||||
ShelfTime = x.order.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"),
|
||||
Shelfer = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, x.order.CreatorId),
|
||||
ReceiveQty = x.detail.Qty,
|
||||
Receiver = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, x.order.CreatorId),
|
||||
ReceiveTime = x.order.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"),
|
||||
SerialNumbers = (string.Join(",", x.detail.SerialNumbers).TrimEnd(','))
|
||||
|
||||
}).ToListAsync();
|
||||
if (boxList != null && boxList.Count != 0)
|
||||
{
|
||||
var boxIds = boxList.GroupBy(x => x.BoxId).Select(x => x.Key).ToList();
|
||||
|
||||
var boxdetails = await _context.BoxDetails
|
||||
.GroupJoin(_context.Box, det => det.Fid, ts => ts.Id, (detail, ts) => new { detail, ts })
|
||||
.SelectMany(x => x.ts.DefaultIfEmpty(), (p, box) => new { p.detail, box })
|
||||
.Where(x => boxIds.Contains(x.box.Id)).Select(x => new
|
||||
{
|
||||
BoxId = x.box.Id,
|
||||
MaterialNumber = x.detail.MaterialNumber,
|
||||
Qty = x.detail.Qty
|
||||
}).ToListAsync();
|
||||
|
||||
if (boxdetails != null && boxdetails.Count != 0)
|
||||
{
|
||||
boxList.ForEach(x =>
|
||||
{
|
||||
var method = (InventoryInOutMethod)x.MethodForInt;
|
||||
if (method == InventoryInOutMethod.Box)
|
||||
{
|
||||
var currentBoxDet = boxdetails.Where(t => t.BoxId == x.BoxId && t.MaterialNumber == x.MaterialNumber).FirstOrDefault();
|
||||
if (currentBoxDet != null)
|
||||
{
|
||||
x.Qty = currentBoxDet.Qty;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
response.Boxs = boxList;
|
||||
}
|
||||
@@ -764,14 +808,14 @@ namespace WMS.Web.Repositories
|
||||
taskIds.AddRange(tids);
|
||||
|
||||
var boxids = await _context.Box.Where(x => dto.BoxBillNos.Contains(x.BoxBillNo)).GroupBy(x => x.Id).Select(x => x.Key).ToListAsync();
|
||||
var tids1= await _context.InStockDetails.Where(x => boxids.Contains(x.BoxId)).GroupBy(x => x.TaskId).Select(x => x.Key).ToListAsync();
|
||||
var tids1 = await _context.InStockDetails.Where(x => boxids.Contains(x.BoxId)).GroupBy(x => x.TaskId).Select(x => x.Key).ToListAsync();
|
||||
taskIds.AddRange(tids1);
|
||||
}
|
||||
if (dto.SerialNumbers != null && dto.SerialNumbers.Count != 0)
|
||||
{
|
||||
//这个也可以查询到:条件是数据集合,实体对象的属性是数据集合的情况下;只是AsEnumerable有点性能不好!仅此而已
|
||||
var tids_objs = _context.InStockDetails.AsEnumerable().Where(x => dto.SerialNumbers.All(sn => x.SerialNumbers.Contains(sn))).ToList();
|
||||
var tids= tids_objs.GroupBy(x => x.TaskId).Select(x => x.Key).ToList();
|
||||
var tids = tids_objs.GroupBy(x => x.TaskId).Select(x => x.Key).ToList();
|
||||
|
||||
//这个也可以查询到:条件是数据集合,实体对象的属性是数据集合的情况下;sql语句
|
||||
//string str = $"select * from t_wms_instock_details where ";
|
||||
|
||||
Reference in New Issue
Block a user