diff --git a/BPA.SAAS.Manage.Application/DataBase/BomServices.cs b/BPA.SAAS.Manage.Application/DataBase/BomServices.cs
index 8b27fff..859eb22 100644
--- a/BPA.SAAS.Manage.Application/DataBase/BomServices.cs
+++ b/BPA.SAAS.Manage.Application/DataBase/BomServices.cs
@@ -1,5 +1,6 @@
using BPA.SAAS.Manage.Application.DataBase.Dtos.Bom;
using BPA.SAAS.Manage.Application.DataBase.Interface;
+using BPA.SAAS.Manage.Core.Base;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -25,6 +26,7 @@ namespace BPA.SAAS.Manage.Application.DataBase
{
return await _bomService.GetBomList();
}
+
///
/// 根据配方id查询配方信息
///
@@ -94,5 +96,16 @@ namespace BPA.SAAS.Manage.Application.DataBase
{
return await _bomService.GetBomTypeList();
}
+
+ ///
+ ///获取 配方列表
+ ///
+ ///
+ ///
+ [HttpPost("/api/bom/BomPage")]
+ public async Task BomPage(BomPageInputDto inputDto)
+ {
+ return await _bomService.BomPage(inputDto);
+ }
}
}
diff --git a/BPA.SAAS.Manage.Application/DataBase/Dtos/Bom/BomDto.cs b/BPA.SAAS.Manage.Application/DataBase/Dtos/Bom/BomDto.cs
new file mode 100644
index 0000000..16ffc17
--- /dev/null
+++ b/BPA.SAAS.Manage.Application/DataBase/Dtos/Bom/BomDto.cs
@@ -0,0 +1,14 @@
+using BPA.SAAS.Manage.Core.Base;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BPA.SAAS.Manage.Application.DataBase.Dtos.Bom
+{
+ public class BomPageInputDto: PageInputBase
+ {
+
+ }
+}
diff --git a/BPA.SAAS.Manage.Application/DataBase/Dtos/Goods/GoodsBomPageView.cs b/BPA.SAAS.Manage.Application/DataBase/Dtos/Goods/GoodsBomPageView.cs
new file mode 100644
index 0000000..a03ceca
--- /dev/null
+++ b/BPA.SAAS.Manage.Application/DataBase/Dtos/Goods/GoodsBomPageView.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BPA.SAAS.Manage.Application.DataBase.Dtos.Goods
+{
+ public class GoodsBomPageView
+ {
+ public string Id { get; set; }
+ public string Name { get; set; }
+ public string BomId { get; set; }
+ public bool IsMain { get; set; }
+ public string GoodsAttributeValueId { get; set; }
+ public string GoodsAttributeValue { get; set; }
+ }
+}
diff --git a/BPA.SAAS.Manage.Application/DataBase/Dtos/Goods/GoodsBomQueryDto.cs b/BPA.SAAS.Manage.Application/DataBase/Dtos/Goods/GoodsBomQueryDto.cs
new file mode 100644
index 0000000..7d475c1
--- /dev/null
+++ b/BPA.SAAS.Manage.Application/DataBase/Dtos/Goods/GoodsBomQueryDto.cs
@@ -0,0 +1,16 @@
+using BPA.SAAS.Manage.Core.Base;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BPA.SAAS.Manage.Application.DataBase.Dtos.Goods
+{
+ public class GoodsBomQueryDto: PageInputBase
+ {
+ public string GoodsId { get; set; }
+ public string Name { get; set; }
+ public string GoodsAttributeValue { get; set; }
+ }
+}
diff --git a/BPA.SAAS.Manage.Application/DataBase/Dtos/GoodsAttribute/GoodsBomAttributeDto.cs b/BPA.SAAS.Manage.Application/DataBase/Dtos/GoodsAttribute/GoodsBomAttributeDto.cs
index dac6ab2..8c36b42 100644
--- a/BPA.SAAS.Manage.Application/DataBase/Dtos/GoodsAttribute/GoodsBomAttributeDto.cs
+++ b/BPA.SAAS.Manage.Application/DataBase/Dtos/GoodsAttribute/GoodsBomAttributeDto.cs
@@ -9,6 +9,9 @@ namespace BPA.SAAS.Manage.Application.DataBase.Dtos.GoodsAttribute
public class GoodsBomAttributeDto
{
public string GoodsId { get; set; }
+ public string BomId { get; set; }
+ public string GoodsAttributeValue { get; set; }
+ public string Type { get; set; }
public string BomName { get; set; }
public string BomType { get; set; }
public string[] BomtypeList { get; set; }
diff --git a/BPA.SAAS.Manage.Application/DataBase/GoodsServices.cs b/BPA.SAAS.Manage.Application/DataBase/GoodsServices.cs
index e966e16..7e966c2 100644
--- a/BPA.SAAS.Manage.Application/DataBase/GoodsServices.cs
+++ b/BPA.SAAS.Manage.Application/DataBase/GoodsServices.cs
@@ -85,7 +85,7 @@ namespace BPA.SAAS.Manage.Application.DataBase
///
///
[HttpPost("/api/goods/getgoodsbompage")]
- public async Task GetGoodsBomPageAsync(OrtherGoodsQueryDto dto)
+ public async Task GetGoodsBomPageAsync(GoodsBomQueryDto dto)
{
return await _goodsService.GetGoodsBomPageAsync(dto);
}
diff --git a/BPA.SAAS.Manage.Application/DataBase/Interface/IBomService.cs b/BPA.SAAS.Manage.Application/DataBase/Interface/IBomService.cs
index faf895b..77d10db 100644
--- a/BPA.SAAS.Manage.Application/DataBase/Interface/IBomService.cs
+++ b/BPA.SAAS.Manage.Application/DataBase/Interface/IBomService.cs
@@ -1,4 +1,5 @@
using BPA.SAAS.Manage.Application.DataBase.Dtos.Bom;
+using BPA.SAAS.Manage.Core.Base;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -54,5 +55,12 @@ namespace BPA.SAAS.Manage.Application.DataBase.Interface
///
///
Task> GetBomTypeList();
+
+ ///
+ ///获取 配方列表
+ ///
+ ///
+ ///
+ Task BomPage(BomPageInputDto inputDto);
}
}
diff --git a/BPA.SAAS.Manage.Application/DataBase/Interface/IGoodsService.cs b/BPA.SAAS.Manage.Application/DataBase/Interface/IGoodsService.cs
index 9caf633..7d9202e 100644
--- a/BPA.SAAS.Manage.Application/DataBase/Interface/IGoodsService.cs
+++ b/BPA.SAAS.Manage.Application/DataBase/Interface/IGoodsService.cs
@@ -52,7 +52,7 @@ namespace BPA.SAAS.Manage.Application.DataBase.Interface
///
///
///
- Task GetGoodsBomPageAsync(OrtherGoodsQueryDto dto);
+ Task GetGoodsBomPageAsync(GoodsBomQueryDto dto);
///
/// 删除商品配方
///
diff --git a/BPA.SAAS.Manage.Application/DataBase/Services/BomService.cs b/BPA.SAAS.Manage.Application/DataBase/Services/BomService.cs
index b6efca7..adb3f09 100644
--- a/BPA.SAAS.Manage.Application/DataBase/Services/BomService.cs
+++ b/BPA.SAAS.Manage.Application/DataBase/Services/BomService.cs
@@ -1,6 +1,8 @@
using BPA.SAAS.Manage.Application.DataBase.Dtos.Bom;
+using BPA.SAAS.Manage.Application.DataBase.Dtos.GoodsAttribute;
using BPA.SAAS.Manage.Application.DataBase.Interface;
using BPA.SAAS.Manage.Comm.Enum;
+using BPA.SAAS.Manage.Core.Base;
using BPA.SAAS.Manage.Core.DataBase;
using NPOI.SS.Formula.Functions;
using System;
@@ -219,5 +221,24 @@ namespace BPA.SAAS.Manage.Application.DataBase.Services
var str = string.Format("{0}", ram.ToString().Substring(0, Length));
return str;
}
+
+ ///
+ ///获取 配方列表
+ ///
+ ///
+ ///
+ public async Task BomPage(BomPageInputDto inputDto)
+ {
+ int total = new RefAsync();
+ var res = await _db.Queryable()
+ .ToPageListAsync(inputDto.Current, inputDto.PageSize, total);
+
+ return new PageUtil()
+ {
+ Data = res,
+ Total= total,
+
+ };
+ }
}
}
diff --git a/BPA.SAAS.Manage.Application/DataBase/Services/GoodsService.cs b/BPA.SAAS.Manage.Application/DataBase/Services/GoodsService.cs
index c65d20d..bda1701 100644
--- a/BPA.SAAS.Manage.Application/DataBase/Services/GoodsService.cs
+++ b/BPA.SAAS.Manage.Application/DataBase/Services/GoodsService.cs
@@ -1,5 +1,6 @@
using BPA.Franchisee.Application.FranchiseeCenter.GoodsServices;
using BPA.SAAS.Manage.Application.DataBase.Dtos.Batching;
+using BPA.SAAS.Manage.Application.DataBase.Dtos.Bom;
using BPA.SAAS.Manage.Application.DataBase.Dtos.Goods;
using BPA.SAAS.Manage.Application.DataBase.Dtos.GoodsAttribute;
using BPA.SAAS.Manage.Application.DataBase.Interface;
@@ -252,19 +253,26 @@ namespace BPA.SAAS.Manage.Application.DataBase.Services
///
///
///
- public async Task GetGoodsBomPageAsync(OrtherGoodsQueryDto dto)
+ public async Task GetGoodsBomPageAsync(GoodsBomQueryDto dto)
{
RefAsync total = 0;
- var res =await _db.Queryable((a, b) => new JoinQueryInfos(
- JoinType.Left, a.Id == b.BomId
+ var res =await _db.Queryable((a, b) => new JoinQueryInfos(
+ JoinType.Left, a.Id == b.BoomId
))
- .WhereIF(!string.IsNullOrWhiteSpace(dto.GoodsId), (a, b) => b.Goods_Id == dto.GoodsId)
- .Select((a, b) => new
+ .WhereIF(!string.IsNullOrWhiteSpace(dto.GoodsId), (a, b) => b.GoodsId==dto.GoodsId)
+ .WhereIF(!string.IsNullOrWhiteSpace(dto.Name), (a, b) => a.Name.Contains(dto.Name))
+ .WhereIF(!string.IsNullOrWhiteSpace(dto.GoodsAttributeValue), (a, b) => b.GoodsAttributeValue.Contains(dto.GoodsAttributeValue))
+ .Select((a, b) => new GoodsBomPageView
{
Id = b.Id,
Name = a.Name,
- BomId= b.BomId,
- IsMain = a.IsMain
+ BomId= b.BoomId,
+ IsMain = a.IsMain,
+ GoodsAttributeValueId=b.GoodsAttributeValueId,
+ }).Mapper(x =>
+ {
+ var AttributeValue = _db.Queryable().Where(p => x.GoodsAttributeValueId.Contains(p.Id)).Select(p=>p.AttributeValue).ToArray();
+ x.GoodsAttributeValue =string.Join("-", AttributeValue);
})
.ToPageListAsync(dto.Current, dto.PageSize, total);
PageUtil util = new PageUtil()
@@ -281,10 +289,12 @@ namespace BPA.SAAS.Manage.Application.DataBase.Services
///
public async Task BatchDelGoodsBomAsync(string Ids)
{
- // var GoodsBom=_db.Queryable().Where(x => x.Id == Ids).First();
-
+ // var GoodsBom=_db.Queryable().Where(x => x.Id == Ids).First();
+ var model=_db.Queryable().Where(x => x.Id == Ids).First();
+ if(model==null) throw Oops.Oh("配方不存在");
+ _db.Deleteable().Where(x => x.Goods_Id == model.GoodsId && x.BomId== model.BoomId).ExecuteCommand();
// 查询数据库中是否存在未删除的商品
- var res = _db.Deleteable().In(Ids).ExecuteCommand();
+ var res = _db.Deleteable().In(Ids).ExecuteCommand();
return res > 0;
}
///
@@ -297,55 +307,88 @@ namespace BPA.SAAS.Manage.Application.DataBase.Services
_db.Ado.BeginTran();
try
{
- var sortMax = _db.Queryable().Max(x => x.Sort);
- BPA_Bom newbPA_BOM = new BPA_Bom
+ if(dto.Type== "add")
{
- Name = dto.BomName,
- Code = GetNumber2(),
- IsMain = dto.BomType == "1" ? true : false,
- Sort = sortMax + 1,
- Id = Guid.NewGuid().ToString(),
- CreateAt = DateTime.Now,
- Status = CommonStatus.ENABLE,
- };
- //添加配方
- var res = _db.Insertable(newbPA_BOM).CallEntityMethod(m => m.Create()).ExecuteCommand();
- //添加配方分类
- var list = dto.BomtypeList.Select(item => new BPA_BomTypeInfo() { BomId = newbPA_BOM.Id, BomTypeId = item }).ToList();
- _db.Insertable(list).CallEntityMethod(m => m.Create()).ExecuteCommand();
-
- BPA_GoodsBom bom = new BPA_GoodsBom();
- bom.Goods_Id = dto.GoodsId;
- bom.BomId = newbPA_BOM.Id;
- bom.Status = CommonStatus.ENABLE;
- //添加商品配方关系
- _db.Insertable(bom).CallEntityMethod(m => m.Create()).ExecuteCommand();
- List BOMEntryList = new();
- if (dto.Mate.Count > 0)
- {
- for (int i = 0; i < dto.Mate.Count; i++)
+ var sortMax = _db.Queryable().Max(x => x.Sort);
+ BPA_Bom newbPA_BOM = new BPA_Bom
{
- BPA_BomEntry newbPA_BOMEnty = new BPA_BomEntry
+ Name = dto.BomName,
+ Code = GetNumber2(),
+ IsMain = dto.BomType == "1" ? true : false,
+ Sort = sortMax + 1,
+ Id = Guid.NewGuid().ToString(),
+ CreateAt = DateTime.Now,
+ Status = CommonStatus.ENABLE,
+ };
+ //添加配方
+ var res = _db.Insertable(newbPA_BOM).CallEntityMethod(m => m.Create()).ExecuteCommand();
+ //添加配方分类
+ var list = dto.BomtypeList.Select(item => new BPA_BomTypeInfo() { BomId = newbPA_BOM.Id, BomTypeId = item }).ToList();
+ _db.Insertable(list).CallEntityMethod(m => m.Create()).ExecuteCommand();
+
+ BPA_GoodsBom bom = new BPA_GoodsBom();
+ bom.Goods_Id = dto.GoodsId;
+ bom.BomId = newbPA_BOM.Id;
+ bom.Status = CommonStatus.ENABLE;
+ //添加商品配方关系
+ _db.Insertable(bom).CallEntityMethod(m => m.Create()).ExecuteCommand();
+ List BOMEntryList = new();
+ if (dto.Mate.Count > 0)
+ {
+ for (int i = 0; i < dto.Mate.Count; i++)
{
- BatchingId = dto.Mate[i].batchingId,
- //BatchingKey = dto.Mate[i].AutoKey,
- BomQty = dto.Mate[i].dosage,
- BomId = newbPA_BOM.Id,
- Status = CommonStatus.ENABLE,
- IsReplace = false,
- };
- BOMEntryList.Add(newbPA_BOMEnty);
+ BPA_BomEntry newbPA_BOMEnty = new BPA_BomEntry
+ {
+ BatchingId = dto.Mate[i].batchingId,
+ //BatchingKey = dto.Mate[i].AutoKey,
+ BomQty = dto.Mate[i].dosage,
+ BomId = newbPA_BOM.Id,
+ Status = CommonStatus.ENABLE,
+ IsReplace = false,
+ };
+ BOMEntryList.Add(newbPA_BOMEnty);
+ }
}
+ //添加配方物料关系
+ _db.Insertable(BOMEntryList).CallEntityMethod(m => m.Create()).ExecuteCommand();
+ BPA_BomAttributeValueRe bPA_BomAttributeValueRe = new();
+ bPA_BomAttributeValueRe.Id = Guid.NewGuid().ToString();
+ bPA_BomAttributeValueRe.GoodsId = dto.GoodsId;
+ bPA_BomAttributeValueRe.BoomId = newbPA_BOM.Id;
+ bPA_BomAttributeValueRe.GoodsAttributeValueId = string.Join(",", dto.Shuxing);
+ bPA_BomAttributeValueRe.GoodsAttributeValue = dto.GoodsAttributeValue;
+ //添加商品配方属性关系
+ _db.Insertable(bPA_BomAttributeValueRe).ExecuteCommand();
+ }
+ else
+ {
+ if (string.IsNullOrWhiteSpace(dto.BomId)) throw Oops.Oh("请选择配方");
+ if (!string.IsNullOrWhiteSpace(dto.BomId))
+ {
+ var check=_db.Queryable().Where(x => x.Goods_Id == dto.GoodsId && x.BomId == dto.BomId).Any();
+ if (!check)
+ {
+ BPA_GoodsBom bom = new BPA_GoodsBom();
+ bom.Goods_Id = dto.GoodsId;
+ bom.BomId = dto.BomId;
+ bom.Status = CommonStatus.ENABLE;
+ //添加商品配方关系
+ _db.Insertable(bom).CallEntityMethod(m => m.Create()).ExecuteCommand();
+ }
+ string vid = string.Join(",", dto.Shuxing);
+ var checkvid = _db.Queryable().Where(x => x.GoodsId == dto.GoodsId && x.BoomId == dto.BomId && x.GoodsAttributeValueId== vid).Any();
+ if(checkvid) throw Oops.Oh("该配方已经存在");
+ //添加商品配方属性关系
+ BPA_BomAttributeValueRe bPA_BomAttributeValueRe = new();
+ bPA_BomAttributeValueRe.Id = Guid.NewGuid().ToString();
+ bPA_BomAttributeValueRe.GoodsId = dto.GoodsId;
+ bPA_BomAttributeValueRe.BoomId = dto.BomId;
+ bPA_BomAttributeValueRe.GoodsAttributeValueId = vid;
+ bPA_BomAttributeValueRe.GoodsAttributeValue = dto.GoodsAttributeValue;
+ _db.Insertable(bPA_BomAttributeValueRe).ExecuteCommand();
+ }
+
}
- //添加配方物料关系
- _db.Insertable(BOMEntryList).CallEntityMethod(m => m.Create()).ExecuteCommand();
- BPA_BomAttributeValueRe bPA_BomAttributeValueRe = new();
- bPA_BomAttributeValueRe.Id = Guid.NewGuid().ToString();
- bPA_BomAttributeValueRe.GoodsId = dto.GoodsId;
- bPA_BomAttributeValueRe.BoomId = newbPA_BOM.Id;
- bPA_BomAttributeValueRe.GoodsAttributeValueId = string.Join(",", dto.Shuxing);
- //添加商品配方属性关系
- _db.Insertable(bPA_BomAttributeValueRe).ExecuteCommand();
_db.Ado.CommitTran();
return true;
}
diff --git a/BPA.SAAS.Manage.Core/DataBase/BPA_BomAttributeValueRe.cs b/BPA.SAAS.Manage.Core/DataBase/BPA_BomAttributeValueRe.cs
index a7184f1..2660e93 100644
--- a/BPA.SAAS.Manage.Core/DataBase/BPA_BomAttributeValueRe.cs
+++ b/BPA.SAAS.Manage.Core/DataBase/BPA_BomAttributeValueRe.cs
@@ -1,4 +1,5 @@
-using SqlSugar;
+using BPA.SAAS.Manage.Core.Base;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -11,8 +12,9 @@ namespace BPA.SAAS.Manage.Core.DataBase
/// 配方商品属性关系
///
[SugarTable("bpa_bomattributevaluere")]
- public class BPA_BomAttributeValueRe
+ public class BPA_BomAttributeValueRe:IGroupId
{
+ [SugarColumn(IsPrimaryKey = true, ColumnDataType = "Nvarchar(64)", IsNullable = false)]
public string Id { get; set; }
public string GoodsId { get; set; }
///
@@ -23,5 +25,10 @@ namespace BPA.SAAS.Manage.Core.DataBase
/// 商品属性值id
///
public string GoodsAttributeValueId { get; set; }
+ ///
+ /// 商品属性值
+ ///
+ public string GoodsAttributeValue { get; set; }
+ public string GroupId { get; set; }
}
}