物料签收添加子载具,扫码投料bug

This commit is contained in:
2023-07-26 15:19:09 +08:00
parent acf1d9f94a
commit 6ec90d3dbe
3 changed files with 102 additions and 25 deletions

View File

@@ -43,6 +43,17 @@ public partial class PrdMaterialReceiptD : BaseEntity<string>
/// 载具id
/// </summary>
public string carry_id { get; set; } = string.Empty;
/// <summary>
/// 子载具id
/// </summary>
public string? member_carry_id { get; set; }
/// <summary>
/// 子载具编号
/// </summary>
public string? member_carry_code { get; set; }
/// <summary>
/// 是否全部投料

View File

@@ -57,26 +57,78 @@ namespace Tnb.ProductionMgr
public async Task<dynamic> GetInfoByQrCode(string qrCode)
{
var db = _repository.AsSugarClient();
var result = await db.Queryable<WmsCarryH>()
.Where((a) => a.carry_code == qrCode)
.Select(a => new
{
carry_id = a.id,
carry_name = a.carry_name,
children = SqlFunc.Subqueryable<WmsCarryCode>()
.LeftJoin<BasMaterial>((b,c)=>b.material_id==c.id)
.Where((b,c)=>a.id==b.carry_id).ToList((b,c)=>new CarryCodeDetailOutput()
{
unit_id = c.unit_id,
barcode = b.barcode,
code_batch = b.code_batch,
codeqty = b.codeqty,
material_id = b.material_id,
material_code = c.code,
material_name = c.name
})
}).FirstAsync();
return result;
// var result = await db.Queryable<WmsCarryH>()
// .Where((a) => a.carry_code == qrCode)
// .Select(a => new
// {
// carry_id = a.id,
// carry_name = a.carry_name,
// children = SqlFunc.Subqueryable<WmsCarryCode>()
// .LeftJoin<BasMaterial>((b,c)=>b.material_id==c.id)
// .Where((b,c)=>a.id==b.carry_id).ToList((b,c)=>new CarryCodeDetailOutput()
// {
// unit_id = c.unit_id,
// barcode = b.barcode,
// code_batch = b.code_batch,
// codeqty = b.codeqty,
// material_id = b.material_id,
// material_code = c.code,
// material_name = c.name
// })
// }).FirstAsync();
if (await db.Queryable<PrdMaterialReceiptD>()
.AnyAsync(x => x.member_carry_code == qrCode && x.is_all_feeding == 0))
{
var result = await db.Queryable<PrdMaterialReceiptD>()
.LeftJoin<WmsCarryH>((a, b) => a.carry_id == b.id)
.Where((a) => a.member_carry_code == qrCode && a.is_all_feeding == 0)
.Select((a, b) => new FeedingDetailOutput
{
carry_id = b.id,
carry_name = b.carry_name,
children = SqlFunc.Subqueryable<PrdMaterialReceiptD>()
.LeftJoin<BasMaterial>((c, d) => c.material_id == d.id)
.Where((c, d) => a.member_carry_code == c.member_carry_code && c.is_all_feeding == 0)
.ToList((c, d) => new CarryCodeDetailOutput()
{
unit_id = d.unit_id,
// barcode = c.barcode,
// code_batch = c.code_batch,
code_batch = c.batch,
codeqty = c.num,
material_id = c.material_id,
material_code = d.code,
material_name = d.name
})
}).FirstAsync();
return result;
}
else
{
var result = await db.Queryable<PrdMaterialReceiptH>()
.LeftJoin<WmsCarryH>((a, b) => a.carry_id == b.id)
.Where((a) => a.carry_code == qrCode)
.Select((a, b) => new FeedingDetailOutput
{
carry_id = a.carry_id,
carry_name = b.carry_name,
children = SqlFunc.Subqueryable<PrdMaterialReceiptD>()
.LeftJoin<BasMaterial>((c, d) => c.material_id == d.id)
.Where((c, d) => a.id == c.material_receipt_id && c.is_all_feeding==0).ToList((c, d) => new CarryCodeDetailOutput()
{
unit_id = d.unit_id,
// barcode = c.barcode,
// code_batch = c.code_batch,
code_batch = c.batch,
codeqty = c.num,
material_id = c.material_id,
material_code = d.code,
material_name = d.name
})
}).FirstAsync();
return result;
}
}
[HttpPost]
@@ -90,7 +142,8 @@ namespace Tnb.ProductionMgr
{
var moTask = await db.Queryable<PrdMoTask>().FirstAsync(x => x.id == input.mo_task_id);
var inputMaterials = await db.Queryable<BasMbomInput>()
.Where(x => x.mbom_id == moTask.bom_id && x.mbom_process_id == input.mbom_process_id)
.Where(x => x.mbom_id == moTask.bom_id)
.WhereIF(!string.IsNullOrEmpty(input.mbom_process_id),x=>x.mbom_process_id==input.mbom_process_id)
.Select(x=>x.material_id)
.ToListAsync();
@@ -113,7 +166,6 @@ namespace Tnb.ProductionMgr
org_id = _userManager.GetUserInfo().Result.organizeId
};
List<PrdMaterialReceiptD> list = new List<PrdMaterialReceiptD>();
if (input.details != null && input.details.Count > 0)
{
foreach (var item in input.details)
@@ -130,6 +182,8 @@ namespace Tnb.ProductionMgr
unit_id = item["unit_id"],
carry_id = input.carry_id,
is_all_feeding = 0,
member_carry_id = item["member_carry_id"],
member_carry_code = item["member_carry_code"],
feeding_num = 0,
});
}
@@ -185,9 +239,9 @@ namespace Tnb.ProductionMgr
}
}
if(!result2.IsSuccess) throw Oops.Oh(result2.ErrorMessage);
return result2.IsSuccess ? "签收成功" : result2.ErrorMessage;
if(!result.IsSuccess) throw Oops.Bah(result.ErrorMessage);
if(!result2.IsSuccess) throw Oops.Bah(result2.ErrorMessage);
return "签收成功";
}
}
}

View File

@@ -0,0 +1,12 @@
namespace Tnb.WarehouseMgr.Entities.Dto
{
/// <summary>
/// 扫码投料
/// </summary>
public class FeedingDetailOutput
{
public string carry_id { get; set; }
public string carry_name { get; set; }
public List<CarryCodeDetailOutput> children { get; set; }
}
}