This commit is contained in:
2023-07-03 10:44:37 +08:00
parent 0d13eb93aa
commit b013765bb3
3 changed files with 76 additions and 0 deletions

View File

@@ -8,6 +8,7 @@ using JNPF.FriendlyException;
using JNPF.Systems.Entitys.System;
using JNPF.Systems.Interfaces.System;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using SqlSugar;
using Tnb.BasicData.Entities;
using Tnb.BasicData.Entities.Dto;
@@ -174,6 +175,48 @@ namespace Tnb.BasicData
return result;
}
[HttpPost]
public async Task<dynamic> GetMaterialByQueryJson(MaterialQueryInput input)
{
var db = _repository.AsSugarClient();
Dictionary<string, string>? queryJson = new Dictionary<string, string>();
if (input!=null && !string.IsNullOrEmpty(input.queryJson))
{
queryJson = JsonConvert.DeserializeObject<Dictionary<string, string>>(input?.queryJson ?? "");
}
List<string> typeList = new List<string>();
if(!string.IsNullOrEmpty(input.types))
{
typeList = JsonConvert.DeserializeObject<List<string>>(input.types);
}
var query = db.Queryable<BasMaterial>()
.Where(x => x.state == "1")
.WhereIF(queryJson != null && queryJson.ContainsKey("name"), a => a.name.Contains(queryJson["name"]))
.WhereIF(queryJson != null && queryJson.ContainsKey("code"), a => a.code.Contains(queryJson["code"]))
.WhereIF(queryJson != null && queryJson.ContainsKey("material_standard"),
a => a.material_standard.Contains(queryJson["material_standard"]))
.Select(x => x);
var list = new List<ISugarQueryable<BasMaterial>>();
foreach (var type in typeList)
{
list.Add(query.Clone().Where(x=>x.category_id.Contains(type)));
}
if (list.Count <= 0)
{
var result = await query.ToPagedListAsync((input?.currentPage??1), (input?.pageSize??50));
return PageResult<BasMaterial>.SqlSugarPageResult(result);
}
else
{
var result = await db.UnionAll(list).Select<BasMaterial>().ToPagedListAsync((input?.currentPage??1), (input?.pageSize??50));
return PageResult<BasMaterial>.SqlSugarPageResult(result);
}
}
/// <summary>
/// 获取物料清单下所子集物料id