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) : "",
|
Receiver = x.box.ReceiverId.HasValue ? _singleDataService.GetSingleData(SingleAction.Staffs, companyId, x.box.ReceiverId.Value) : "",
|
||||||
Qty = x.detail.ReceiveQty,
|
Qty = x.detail.ReceiveQty,
|
||||||
ReceiveQty = 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();
|
}).ToListAsync();
|
||||||
|
|
||||||
if (boxList != null && boxList.Count != 0)
|
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_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 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 =>
|
boxList.ForEach(x =>
|
||||||
{
|
{
|
||||||
var currentInstock = boxInstockList_details.Where(t => t.BoxId == x.BoxId && t.MaterialNumber == x.MaterialNumber).FirstOrDefault();
|
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;
|
response.Boxs = boxList;
|
||||||
}
|
}
|
||||||
@@ -764,14 +808,14 @@ namespace WMS.Web.Repositories
|
|||||||
taskIds.AddRange(tids);
|
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 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);
|
taskIds.AddRange(tids1);
|
||||||
}
|
}
|
||||||
if (dto.SerialNumbers != null && dto.SerialNumbers.Count != 0)
|
if (dto.SerialNumbers != null && dto.SerialNumbers.Count != 0)
|
||||||
{
|
{
|
||||||
//这个也可以查询到:条件是数据集合,实体对象的属性是数据集合的情况下;只是AsEnumerable有点性能不好!仅此而已
|
//这个也可以查询到:条件是数据集合,实体对象的属性是数据集合的情况下;只是AsEnumerable有点性能不好!仅此而已
|
||||||
var tids_objs = _context.InStockDetails.AsEnumerable().Where(x => dto.SerialNumbers.All(sn => x.SerialNumbers.Contains(sn))).ToList();
|
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语句
|
//这个也可以查询到:条件是数据集合,实体对象的属性是数据集合的情况下;sql语句
|
||||||
//string str = $"select * from t_wms_instock_details where ";
|
//string str = $"select * from t_wms_instock_details where ";
|
||||||
|
|||||||
Reference in New Issue
Block a user