接口调整
This commit is contained in:
@@ -249,6 +249,7 @@ namespace WMS.Web.Domain.Services
|
||||
//1.修改-入库任务单的信息
|
||||
var updateInStockTaskRequest = new UpdateInStockTaskRequest();
|
||||
updateInStockTaskRequest.Id = dto.TaskId;
|
||||
updateInStockTaskRequest.Boxs = dto.Boxs;
|
||||
updateInStockTaskRequest.Details = new List<UpdateInStockTaskDetailsRequest>();
|
||||
foreach (var item in dto.Details)
|
||||
{
|
||||
@@ -259,14 +260,14 @@ namespace WMS.Web.Domain.Services
|
||||
}
|
||||
//1.1.先找到箱IDs:获取箱基本信息
|
||||
var boxIds = dto.Details.GroupBy(x => x.BoxId).Select(x => x.Key).ToList();
|
||||
var boxInfos= await _boxRepositories.GetEntityList(boxIds);
|
||||
foreach (var item in boxInfos)
|
||||
{
|
||||
var task_box = new UpdateInStockTaskBoxRequest();
|
||||
task_box.BoxId = item.Id;
|
||||
task_box.BoxBillNo = item.BoxBillNo;
|
||||
updateInStockTaskRequest.Boxs.Add(task_box);
|
||||
}
|
||||
//var boxInfos= await _boxRepositories.GetEntityList(boxIds);
|
||||
//foreach (var item in boxInfos)
|
||||
//{
|
||||
// var task_box = new UpdateInStockTaskBoxRequest();
|
||||
// task_box.BoxId = item.Id;
|
||||
// task_box.BoxBillNo = item.BoxBillNo;
|
||||
// updateInStockTaskRequest.Boxs.Add(task_box);
|
||||
//}
|
||||
|
||||
//1.2.修改入库任务单
|
||||
var update_result = await this.Update(updateInStockTaskRequest, loginInfo.UserInfo.StaffId, null, isTransaction, true);
|
||||
@@ -419,26 +420,40 @@ namespace WMS.Web.Domain.Services
|
||||
var task = await _inStockTaskRepositories.Get(dto.TaskId);
|
||||
if (task == null)
|
||||
return Result<ContrastMaterialsResponse>.ReFailure(ResultCodes.OrderNoData);
|
||||
//2.找到箱对应的物料信息
|
||||
var box = await _boxRepositories.GetByNo(dto.BoxBillNo);
|
||||
if (box == null)
|
||||
////2.找到箱对应的物料信息--弃用(这个是单个箱)
|
||||
//var box = await _boxRepositories.GetByNo(dto.BoxBillNo);
|
||||
//if (box == null)
|
||||
// return Result<ContrastMaterialsResponse>.ReFailure(ResultCodes.BoxNoData);
|
||||
|
||||
//2.找到箱对应的物料信息:多个箱
|
||||
var boxs = await _boxRepositories.GetEntityListByNos(dto.BoxBillNos);
|
||||
if (boxs == null || boxs.Count==0)
|
||||
return Result<ContrastMaterialsResponse>.ReFailure(ResultCodes.BoxNoData);
|
||||
|
||||
//合并多个箱明细的数据:相同物料数量合并
|
||||
var boxDetails = boxs.SelectMany(x => x.Details).GroupBy(x => x.MaterialId).Select(x => new { MaterialId = x.Key, Qty = x.Sum(t => t.Qty) }).ToList();
|
||||
|
||||
//3.比对:false为比对失败;
|
||||
bool isRight = box.Details.All(x => task.Details.Any(t => t.MaterialId == x.MaterialId && t.AccruedQty >= x.Qty)) && box.Details.Count == task.Details.Count;
|
||||
bool isRight = boxDetails.All(x => task.Details.Any(t => t.MaterialId == x.MaterialId && t.AccruedQty >= x.Qty)) && boxDetails.Count == task.Details.Count;
|
||||
if(!isRight)
|
||||
return Result<ContrastMaterialsResponse>.ReFailure(ResultCodes.ContrastError);
|
||||
|
||||
//4.是否任务单存在绑定箱号判断:存在的话,就不能收货或者非采购上架
|
||||
bool isHave = task.Boxs.Where(x => x.BoxBillNo == box.BoxBillNo).Any();
|
||||
bool isHave = task.Boxs.Where(x => dto.BoxBillNos.Contains(x.BoxBillNo)).Any();
|
||||
if(isHave)
|
||||
return Result<ContrastMaterialsResponse>.ReFailure(ResultCodes.BoxHaveError);
|
||||
|
||||
//4.返回对比结果:true为比对成功,并把箱ID和箱号返回
|
||||
var response = new ContrastMaterialsResponse();
|
||||
response.BoxBillNo = box.BoxBillNo;
|
||||
response.BoxId = box.Id;
|
||||
response.TotalCount = box.Details.Sum(x => x.Qty);
|
||||
|
||||
foreach (var box in boxs)
|
||||
{
|
||||
var r_box = new ContrastBoxResponse();
|
||||
r_box.BoxBillNo = box.BoxBillNo;
|
||||
r_box.BoxId = box.Id;
|
||||
r_box.TotalCount = box.Details.Sum(x => x.Qty);
|
||||
r_box.Details =_mapper.Map<List<ContrastBoxDetailsResponse>>( box.Details);
|
||||
}
|
||||
return Result<ContrastMaterialsResponse>.ReSuccess(response);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user