接口调整

This commit is contained in:
tongfei
2023-11-17 14:12:42 +08:00
parent 5c65ff7c5b
commit 50246572d6
10 changed files with 120 additions and 32 deletions

View File

@@ -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);
}
}