BOM 父子选择

This commit is contained in:
qianhao.xu 2024-08-30 14:37:00 +08:00
parent 4f17e3210e
commit f6922adcb2
5 changed files with 56 additions and 25 deletions

View File

@ -36,13 +36,22 @@ namespace DOAN.Admin.WebApi.Controllers
return SUCCESS(response);
}
////TODO 获取母件
//[HttpPost("get_monter_inv")]
//public IActionResult GetMonterInvList([FromQuery] BaseMaterialBomQueryDto parm)
//{
// var response = _BaseMaterialBomService.GetMonterInvList(parm);
// return SUCCESS(response);
//}
//TODO 获取母件
[HttpPost("get_monter_inv")]
public IActionResult GetMonterInvList([FromBody] BaseMaterialBomQueryDto parm)
{
var response = _BaseMaterialBomService.GetMonterInvList(parm);
return SUCCESS(response);
}
//TODO 获取子件
[HttpPost("get_son_inv")]
public IActionResult GetSonInvList([FromBody] BaseMaterialBomQueryDto parm)
{
var response = _BaseMaterialBomService.GetSonInvList(parm);
return SUCCESS(response);
}
/// <summary>
/// 查询详情

View File

@ -10,7 +10,7 @@ namespace DOAN.Model.MES.base_
/// <summary>
/// 雪花id
/// </summary>
[SugarColumn(ColumnName = "Id")]
[SugarColumn(ColumnName = "Id" ,IsPrimaryKey =true) ]
public string Id { get; set; }
/// <summary>
/// 母件编码
@ -76,8 +76,8 @@ namespace DOAN.Model.MES.base_
/// <summary>
/// 子节点
/// </summary>
[Navigate(NavigateType.OneToMany, nameof(BaseMaterialBom.SubInvCode))]
public List<BaseMaterialBom> Child { get; set; }
//[Navigate(NavigateType.OneToMany, nameof(BaseMaterialBom.SubInvCode), nameof(BaseMaterialBom.InvCode))]
//public List<BaseMaterialBom> Child { get; set; }
}
}

View File

@ -6,6 +6,8 @@ namespace DOAN.Model.MES.base_.Dto
/// </summary>
public class BaseMaterialBomQueryDto : PagerInfo
{
public string InvCode { get; set; }
public string SubInvCode { get; set; }
}
/// <summary>
@ -40,7 +42,7 @@ namespace DOAN.Model.MES.base_.Dto
public DateTime? UpdatedTime { get; set; }
public List<BaseMaterialBom> Child { get; set; }
// public List<BaseMaterialBom> Child { get; set; }

View File

@ -37,16 +37,20 @@ namespace DOAN.Service.MES.base_
{
var predicate = Expressionable.Create<BaseMaterialBom>();
//var response = Queryable()
// .Where(predicate.ToExpression())
// .ToPage<BaseMaterialBom, BaseMaterialBomDto>(parm);
var response = Queryable()
.Where(predicate.ToExpression())
.ToPage<BaseMaterialBom, BaseMaterialBomDto>(parm);
//Context.Queryable<BaseMaterialBom>().Where(predicate.ToExpression()).ToTree(it => it.Child, it => it.InvCode, 0, it => it.Id)
var response = Context.Queryable<BaseMaterialBom>()
.Where(predicate.ToExpression())
.Includes(x => x.Child)
.ToPage<BaseMaterialBom, BaseMaterialBomDto>(parm);
//var response = Context.Queryable<BaseMaterialBom>()
// .Where(predicate.ToExpression())
// .Includes(x => x.Child).ToList();
return response;
@ -57,16 +61,17 @@ namespace DOAN.Service.MES.base_
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
PagedInfo<BaseMaterialBomDto> GetMonterInvList(BaseMaterialBomQueryDto parm)
public PagedInfo<BaseMaterialBomDto> GetMonterInvList(BaseMaterialBomQueryDto parm)
{
var predicate = Expressionable.Create<BaseMaterialBom>();
Queryable()
var query = Context.Queryable<BaseMaterialBom>()
.Where(predicate.ToExpression())
.GroupBy(it => it.InvCode)
.Select(it => new BaseMaterialBomDto() {
.Select(it => new BaseMaterialBomDto()
{
Id= SqlFunc.AggregateMax(it.Id),
Id = SqlFunc.AggregateMax(it.Id),
InvCode = SqlFunc.AggregateMax(it.InvCode),
InvName = SqlFunc.AggregateMax(it.InvName),
SubInvName = SqlFunc.AggregateMax(it.SubInvName),
@ -74,17 +79,30 @@ namespace DOAN.Service.MES.base_
BOMVersion = SqlFunc.AggregateMax(it.BOMVersion),
CreatedBy = SqlFunc.AggregateMax(it.CreatedBy),
CreatedTime = SqlFunc.AggregateMax(it.CreatedTime),
UpdatedBy = SqlFunc.AggregateMax(it.UpdatedBy),
UpdatedTime = SqlFunc.AggregateMax(it.UpdatedTime)
});
return null;
var response = query.ToPage<BaseMaterialBomDto, BaseMaterialBomDto>(parm);
return response;
}
/// <summary>
/// 获取子件
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
public List<BaseMaterialBom> GetSonInvList(BaseMaterialBomQueryDto parm)
{
return Context.Queryable<BaseMaterialBom>().Where(it => it.InvCode == parm.InvCode).ToList();
}
/// <summary>
/// 获取详情
/// </summary>

View File

@ -14,7 +14,9 @@ namespace DOAN.Service.MES.base_.IService
{
PagedInfo<BaseMaterialBomDto> GetList(BaseMaterialBomQueryDto parm);
// PagedInfo<BaseMaterialBomDto> GetMonterInvList( BaseMaterialBomQueryDto parm);
PagedInfo<BaseMaterialBomDto> GetMonterInvList( BaseMaterialBomQueryDto parm);
List<BaseMaterialBom> GetSonInvList(BaseMaterialBomQueryDto parm);
BaseMaterialBom GetInfo(string Id);