diff --git a/BasicData/Tnb.BasicData.Entities/Dto/BasMaterial/MaterialQueryInput.cs b/BasicData/Tnb.BasicData.Entities/Dto/BasMaterial/MaterialQueryInput.cs
new file mode 100644
index 00000000..7e5fd547
--- /dev/null
+++ b/BasicData/Tnb.BasicData.Entities/Dto/BasMaterial/MaterialQueryInput.cs
@@ -0,0 +1,26 @@
+namespace Tnb.BasicData.Entities.Dto
+{
+ public class MaterialQueryInput
+ {
+
+ ///
+ /// 查询条件
+ ///
+ public string queryJson { get; set; } = string.Empty;
+
+ ///
+ /// 物料类型
+ ///
+ public string types { get; set; } = string.Empty;
+
+ ///
+ /// 当前页码:pageIndex.
+ ///
+ public virtual int currentPage { get; set; } = 1;
+
+ ///
+ /// 每页行数.
+ ///
+ public virtual int pageSize { get; set; } = 50;
+ }
+}
\ No newline at end of file
diff --git a/BasicData/Tnb.BasicData.Interfaces/IBasMaterialService.cs b/BasicData/Tnb.BasicData.Interfaces/IBasMaterialService.cs
index fbe3bd00..1da4bc94 100644
--- a/BasicData/Tnb.BasicData.Interfaces/IBasMaterialService.cs
+++ b/BasicData/Tnb.BasicData.Interfaces/IBasMaterialService.cs
@@ -25,5 +25,12 @@ namespace Tnb.BasicData.Interfaces
///
///
public Task GetMaterialByType(Dictionary dic);
+
+ ///
+ /// 根据物料类型获取物料列表
+ ///
+ ///
+ ///
+ public Task GetMaterialByQueryJson(MaterialQueryInput input);
}
}
\ No newline at end of file
diff --git a/BasicData/Tnb.BasicData/BasMaterialService.cs b/BasicData/Tnb.BasicData/BasMaterialService.cs
index 91a92305..437833d4 100644
--- a/BasicData/Tnb.BasicData/BasMaterialService.cs
+++ b/BasicData/Tnb.BasicData/BasMaterialService.cs
@@ -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 GetMaterialByQueryJson(MaterialQueryInput input)
+ {
+ var db = _repository.AsSugarClient();
+ Dictionary? queryJson = new Dictionary();
+ if (input!=null && !string.IsNullOrEmpty(input.queryJson))
+ {
+ queryJson = JsonConvert.DeserializeObject>(input?.queryJson ?? "");
+ }
+
+ List typeList = new List();
+ if(!string.IsNullOrEmpty(input.types))
+ {
+ typeList = JsonConvert.DeserializeObject>(input.types);
+ }
+ var query = db.Queryable()
+ .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>();
+ 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.SqlSugarPageResult(result);
+ }
+ else
+ {
+ var result = await db.UnionAll(list).Select().ToPagedListAsync((input?.currentPage??1), (input?.pageSize??50));
+ return PageResult.SqlSugarPageResult(result);
+ }
+
+ }
///
/// 获取物料清单下所子集物料id