@@ -1,5 +1,9 @@ | |||||
using BPA.SAAS.Manage.Application.DataBase.Dtos.Bom; | using BPA.SAAS.Manage.Application.DataBase.Dtos.Bom; | ||||
using BPA.SAAS.Manage.Application.DataBase.Interface; | 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 Microsoft.AspNetCore.Components.Forms; | |||||
using System; | using System; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Linq; | using System.Linq; | ||||
@@ -25,6 +29,7 @@ namespace BPA.SAAS.Manage.Application.DataBase | |||||
{ | { | ||||
return await _bomService.GetBomList(); | return await _bomService.GetBomList(); | ||||
} | } | ||||
/// <summary> | /// <summary> | ||||
/// 根据配方id查询配方信息 | /// 根据配方id查询配方信息 | ||||
/// </summary> | /// </summary> | ||||
@@ -94,5 +99,38 @@ namespace BPA.SAAS.Manage.Application.DataBase | |||||
{ | { | ||||
return await _bomService.GetBomTypeList(); | return await _bomService.GetBomTypeList(); | ||||
} | } | ||||
/// <summary> | |||||
///获取 配方列表 | |||||
/// </summary> | |||||
/// <param name="inputDto"></param> | |||||
/// <returns></returns> | |||||
[HttpPost("/api/bom/BomPage")] | |||||
public async Task<PageUtil> BomPage(BomPageInputDto inputDto) | |||||
{ | |||||
return await _bomService.BomPage(inputDto); | |||||
} | |||||
/// <summary> | |||||
/// 添加配方 | |||||
/// </summary> | |||||
/// <param name="dto"></param> | |||||
/// <returns></returns> | |||||
[HttpPost("/api/bom/AddBom")] | |||||
public async Task<bool> AddBom(BomCreateInputDto dto) | |||||
{ | |||||
return await _bomService.AddBom(dto); | |||||
} | |||||
/// <summary> | |||||
/// 删除配方 | |||||
/// </summary> | |||||
/// <param name="dto"></param> | |||||
/// <returns></returns> | |||||
[HttpPost("/api/bom/DelBom")] | |||||
public async Task<bool> DelBom(string id) | |||||
{ | |||||
return await _bomService.DelBom(id); | |||||
} | |||||
} | } | ||||
} | } |
@@ -0,0 +1,29 @@ | |||||
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 | |||||
{ | |||||
public string Name { get; set; } | |||||
public string bomTypeList { get; set; } | |||||
public List<string> Pertains { get; set; } | |||||
} | |||||
public class BomCreateInputDto | |||||
{ | |||||
public string BomName { get; set; } | |||||
public string BomType { get; set; } | |||||
public string[] BomtypeList { get; set; } | |||||
public List<Mateinfo> Mate { get; set; } | |||||
} | |||||
public class Mateinfo | |||||
{ | |||||
public string batchingId { get; set; } | |||||
public int dosage { get; set; } | |||||
} | |||||
} |
@@ -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; } | |||||
} | |||||
} |
@@ -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; } | |||||
} | |||||
} |
@@ -9,6 +9,9 @@ namespace BPA.SAAS.Manage.Application.DataBase.Dtos.GoodsAttribute | |||||
public class GoodsBomAttributeDto | public class GoodsBomAttributeDto | ||||
{ | { | ||||
public string GoodsId { get; set; } | 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 BomName { get; set; } | ||||
public string BomType { get; set; } | public string BomType { get; set; } | ||||
public string[] BomtypeList { get; set; } | public string[] BomtypeList { get; set; } | ||||
@@ -85,7 +85,7 @@ namespace BPA.SAAS.Manage.Application.DataBase | |||||
/// <param name="dto"></param> | /// <param name="dto"></param> | ||||
/// <returns></returns> | /// <returns></returns> | ||||
[HttpPost("/api/goods/getgoodsbompage")] | [HttpPost("/api/goods/getgoodsbompage")] | ||||
public async Task<PageUtil> GetGoodsBomPageAsync(OrtherGoodsQueryDto dto) | |||||
public async Task<PageUtil> GetGoodsBomPageAsync(GoodsBomQueryDto dto) | |||||
{ | { | ||||
return await _goodsService.GetGoodsBomPageAsync(dto); | return await _goodsService.GetGoodsBomPageAsync(dto); | ||||
} | } | ||||
@@ -1,4 +1,5 @@ | |||||
using BPA.SAAS.Manage.Application.DataBase.Dtos.Bom; | using BPA.SAAS.Manage.Application.DataBase.Dtos.Bom; | ||||
using BPA.SAAS.Manage.Core.Base; | |||||
using System; | using System; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Linq; | using System.Linq; | ||||
@@ -25,13 +26,13 @@ namespace BPA.SAAS.Manage.Application.DataBase.Interface | |||||
/// </summary> | /// </summary> | ||||
/// <param name="dto"></param> | /// <param name="dto"></param> | ||||
/// <returns></returns> | /// <returns></returns> | ||||
Task<bool> AddBom(BomInputDto dto); | |||||
Task<bool> AddBom(BomInputDto dto); | |||||
/// <summary> | /// <summary> | ||||
/// 更新 | /// 更新 | ||||
/// </summary> | /// </summary> | ||||
/// <param name="dto"></param> | /// <param name="dto"></param> | ||||
/// <returns></returns> | /// <returns></returns> | ||||
Task<bool> UpdateBom(BomInputDto dto); | |||||
Task<bool> UpdateBom(BomInputDto dto); | |||||
/// 更新配方详情 | /// 更新配方详情 | ||||
/// </summary> | /// </summary> | ||||
/// <param name="dto"></param> | /// <param name="dto"></param> | ||||
@@ -48,11 +49,32 @@ namespace BPA.SAAS.Manage.Application.DataBase.Interface | |||||
/// </summary> | /// </summary> | ||||
/// <param name="dto"></param> | /// <param name="dto"></param> | ||||
/// <returns></returns> | /// <returns></returns> | ||||
Task<bool> AddBomType(AddBomTypeInputDto dto); | |||||
Task<bool> AddBomType(AddBomTypeInputDto dto); | |||||
/// <summary> | /// <summary> | ||||
/// 配方分类列表 | /// 配方分类列表 | ||||
/// </summary> | /// </summary> | ||||
/// <returns></returns> | /// <returns></returns> | ||||
Task<List<dynamic>> GetBomTypeList(); | Task<List<dynamic>> GetBomTypeList(); | ||||
/// <summary> | |||||
///获取 配方列表 | |||||
/// </summary> | |||||
/// <param name="inputDto"></param> | |||||
/// <returns></returns> | |||||
Task<PageUtil> BomPage(BomPageInputDto inputDto); | |||||
/// <summary> | |||||
/// 添加配方 | |||||
/// </summary> | |||||
/// <param name="dto"></param> | |||||
/// <returns></returns> | |||||
Task<bool> AddBom(BomCreateInputDto dto); | |||||
/// <summary> | |||||
/// 删除配方 | |||||
/// </summary> | |||||
/// <param name="dto"></param> | |||||
/// <returns></returns> | |||||
Task<bool> DelBom(string id); | |||||
} | } | ||||
} | } |
@@ -52,7 +52,7 @@ namespace BPA.SAAS.Manage.Application.DataBase.Interface | |||||
/// </summary> | /// </summary> | ||||
/// <param name="dto"></param> | /// <param name="dto"></param> | ||||
/// <returns></returns> | /// <returns></returns> | ||||
Task<PageUtil> GetGoodsBomPageAsync(OrtherGoodsQueryDto dto); | |||||
Task<PageUtil> GetGoodsBomPageAsync(GoodsBomQueryDto dto); | |||||
/// <summary> | /// <summary> | ||||
/// 删除商品配方 | /// 删除商品配方 | ||||
/// </summary> | /// </summary> | ||||
@@ -1,6 +1,8 @@ | |||||
using BPA.SAAS.Manage.Application.DataBase.Dtos.Bom; | 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.Application.DataBase.Interface; | ||||
using BPA.SAAS.Manage.Comm.Enum; | using BPA.SAAS.Manage.Comm.Enum; | ||||
using BPA.SAAS.Manage.Core.Base; | |||||
using BPA.SAAS.Manage.Core.DataBase; | using BPA.SAAS.Manage.Core.DataBase; | ||||
using NPOI.SS.Formula.Functions; | using NPOI.SS.Formula.Functions; | ||||
using System; | using System; | ||||
@@ -115,6 +117,8 @@ namespace BPA.SAAS.Manage.Application.DataBase.Services | |||||
} | } | ||||
} | } | ||||
/// <summary> | /// <summary> | ||||
/// 更新配方详情 | /// 更新配方详情 | ||||
/// </summary> | /// </summary> | ||||
@@ -219,5 +223,138 @@ namespace BPA.SAAS.Manage.Application.DataBase.Services | |||||
var str = string.Format("{0}", ram.ToString().Substring(0, Length)); | var str = string.Format("{0}", ram.ToString().Substring(0, Length)); | ||||
return str; | return str; | ||||
} | } | ||||
/// <summary> | |||||
///获取 配方列表 | |||||
/// </summary> | |||||
/// <param name="inputDto"></param> | |||||
/// <returns></returns> | |||||
public async Task<PageUtil> BomPage(BomPageInputDto inputDto) | |||||
{ | |||||
var pertainList = _db.Queryable<BPA_BomTypeInfo, BPA_BomType>((a, b) => | |||||
new JoinQueryInfos(JoinType.Left, a.BomTypeId == b.Id)) | |||||
.Where((a, b) => a.IsDeleted == 0 && b.IsDeleted == 0) | |||||
.WhereIF(inputDto.Pertains != null && inputDto.Pertains.Count > 0, (a, b) => inputDto.Pertains.Contains(b.Pertain)) | |||||
.WhereIF(!string.IsNullOrWhiteSpace(inputDto.bomTypeList), (a, b) => b.Id == inputDto.bomTypeList) | |||||
.Select((a, b) => a.BomId) | |||||
.ToList(); | |||||
int total = new RefAsync<int>(); | |||||
var res = _db.Queryable<BPA_Bom>() | |||||
.Where(it => it.IsDeleted == 0) | |||||
.WhereIF(!string.IsNullOrEmpty(inputDto.Name),x=>x.Name.Contains(inputDto.Name)) | |||||
.WhereIF(!string.IsNullOrWhiteSpace(inputDto.bomTypeList), x => pertainList.Contains(x.Id)) | |||||
.OrderBy(i => i.CreateAt, OrderByType.Desc) | |||||
.ToPageList(inputDto.Current, inputDto.PageSize, ref total); | |||||
var listtype = _db.Queryable<BPA_BomTypeInfo>() | |||||
.Where(a => res.Select(x => x.Id).Contains(a.BomId) && a.IsDeleted == 0).ToList(); | |||||
var data = new List<object>(); | |||||
foreach (var item in res) | |||||
{ | |||||
var obj = listtype.Where(x => x.BomId == item.Id).Select(x => x.BomTypeId).ToList(); | |||||
data.Add(new | |||||
{ | |||||
BomTypeList = obj, | |||||
Name = item.Name, | |||||
Code = item.Code, | |||||
item.IsMain, | |||||
item.BOMInfo, | |||||
item.Status, | |||||
item.Id, | |||||
item.Sort, | |||||
}); | |||||
} | |||||
PageUtil util = new PageUtil() | |||||
{ | |||||
Total = total, | |||||
Data = data | |||||
}; | |||||
return util; | |||||
} | |||||
/// <summary> | |||||
/// 添加配方 | |||||
/// </summary> | |||||
/// <param name="dto"></param> | |||||
/// <returns></returns> | |||||
public async Task<bool> AddBom(BomCreateInputDto dto) | |||||
{ | |||||
_db.Ado.BeginTran(); | |||||
try | |||||
{ | |||||
var sortMax = _db.Queryable<BPA_Bom>().Max(x => x.Sort); | |||||
BPA_Bom newbPA_BOM = new BPA_Bom | |||||
{ | |||||
Name = dto.BomName, | |||||
Code = GetNumber2(), | |||||
IsMain = true, | |||||
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(); | |||||
List<BPA_BomEntry> BOMEntryList = new(); | |||||
if (dto.Mate.Count > 0) | |||||
{ | |||||
for (int i = 0; i < dto.Mate.Count; i++) | |||||
{ | |||||
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(); | |||||
_db.Ado.CommitTran(); | |||||
return true; | |||||
} | |||||
catch (Exception e) | |||||
{ | |||||
_db.Ado.RollbackTran(); | |||||
throw Oops.Oh("添加失败,失败信息:" + e.Message); | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 删除配方 | |||||
/// </summary> | |||||
/// <param name="dto"></param> | |||||
/// <returns></returns> | |||||
public async Task<bool> DelBom(string id) | |||||
{ | |||||
try | |||||
{ | |||||
_db.Ado.BeginTran(); | |||||
await _db.Deleteable<BPA_Bom>().Where(x => x.Id == id).ExecuteCommandAsync(); | |||||
await _db.Deleteable<BPA_BomEntry>().Where(x => x.BomId == id).ExecuteCommandAsync(); | |||||
_db.Ado.CommitTran(); | |||||
return true; | |||||
} | |||||
catch (Exception e) | |||||
{ | |||||
_db.Ado.RollbackTran(); | |||||
throw Oops.Oh("删除失败" + e.Message); | |||||
} | |||||
} | |||||
} | } | ||||
} | } |
@@ -1,5 +1,6 @@ | |||||
using BPA.Franchisee.Application.FranchiseeCenter.GoodsServices; | using BPA.Franchisee.Application.FranchiseeCenter.GoodsServices; | ||||
using BPA.SAAS.Manage.Application.DataBase.Dtos.Batching; | 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.Goods; | ||||
using BPA.SAAS.Manage.Application.DataBase.Dtos.GoodsAttribute; | using BPA.SAAS.Manage.Application.DataBase.Dtos.GoodsAttribute; | ||||
using BPA.SAAS.Manage.Application.DataBase.Interface; | using BPA.SAAS.Manage.Application.DataBase.Interface; | ||||
@@ -252,19 +253,26 @@ namespace BPA.SAAS.Manage.Application.DataBase.Services | |||||
/// </summary> | /// </summary> | ||||
/// <param name="dto"></param> | /// <param name="dto"></param> | ||||
/// <returns></returns> | /// <returns></returns> | ||||
public async Task<PageUtil> GetGoodsBomPageAsync(OrtherGoodsQueryDto dto) | |||||
public async Task<PageUtil> GetGoodsBomPageAsync(GoodsBomQueryDto dto) | |||||
{ | { | ||||
RefAsync<int> total = 0; | RefAsync<int> total = 0; | ||||
var res =await _db.Queryable<BPA_Bom, BPA_GoodsBom>((a, b) => new JoinQueryInfos( | |||||
JoinType.Left, a.Id == b.BomId | |||||
var res =await _db.Queryable<BPA_Bom, BPA_BomAttributeValueRe>((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, | Id = b.Id, | ||||
Name = a.Name, | Name = a.Name, | ||||
BomId= b.BomId, | |||||
IsMain = a.IsMain | |||||
BomId= b.BoomId, | |||||
IsMain = a.IsMain, | |||||
GoodsAttributeValueId=b.GoodsAttributeValueId, | |||||
}).Mapper(x => | |||||
{ | |||||
var AttributeValue = _db.Queryable<BPA_GoodsAttributeValue>().Where(p => x.GoodsAttributeValueId.Contains(p.Id)).Select(p=>p.AttributeValue).ToArray(); | |||||
x.GoodsAttributeValue =string.Join("-", AttributeValue); | |||||
}) | }) | ||||
.ToPageListAsync(dto.Current, dto.PageSize, total); | .ToPageListAsync(dto.Current, dto.PageSize, total); | ||||
PageUtil util = new PageUtil() | PageUtil util = new PageUtil() | ||||
@@ -281,10 +289,12 @@ namespace BPA.SAAS.Manage.Application.DataBase.Services | |||||
/// <returns></returns> | /// <returns></returns> | ||||
public async Task<bool> BatchDelGoodsBomAsync(string Ids) | public async Task<bool> BatchDelGoodsBomAsync(string Ids) | ||||
{ | { | ||||
// var GoodsBom=_db.Queryable<BPA_GoodsBom>().Where(x => x.Id == Ids).First(); | |||||
// var GoodsBom=_db.Queryable<BPA_GoodsBom>().Where(x => x.Id == Ids).First(); | |||||
var model=_db.Queryable<BPA_BomAttributeValueRe>().Where(x => x.Id == Ids).First(); | |||||
if(model==null) throw Oops.Oh("配方不存在"); | |||||
_db.Deleteable<BPA_GoodsBom>().Where(x => x.Goods_Id == model.GoodsId && x.BomId== model.BoomId).ExecuteCommand(); | |||||
// 查询数据库中是否存在未删除的商品 | // 查询数据库中是否存在未删除的商品 | ||||
var res = _db.Deleteable<BPA_GoodsBom>().In(Ids).ExecuteCommand(); | |||||
var res = _db.Deleteable<BPA_BomAttributeValueRe>().In(Ids).ExecuteCommand(); | |||||
return res > 0; | return res > 0; | ||||
} | } | ||||
/// <summary> | /// <summary> | ||||
@@ -297,55 +307,88 @@ namespace BPA.SAAS.Manage.Application.DataBase.Services | |||||
_db.Ado.BeginTran(); | _db.Ado.BeginTran(); | ||||
try | try | ||||
{ | { | ||||
var sortMax = _db.Queryable<BPA_Bom>().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<BPA_BomEntry> BOMEntryList = new(); | |||||
if (dto.Mate.Count > 0) | |||||
{ | |||||
for (int i = 0; i < dto.Mate.Count; i++) | |||||
var sortMax = _db.Queryable<BPA_Bom>().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<BPA_BomEntry> 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<BPA_GoodsBom>().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<BPA_BomAttributeValueRe>().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(); | _db.Ado.CommitTran(); | ||||
return true; | return true; | ||||
} | } | ||||
@@ -1,4 +1,5 @@ | |||||
using SqlSugar; | |||||
using BPA.SAAS.Manage.Core.Base; | |||||
using SqlSugar; | |||||
using System; | using System; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Linq; | using System.Linq; | ||||
@@ -11,8 +12,9 @@ namespace BPA.SAAS.Manage.Core.DataBase | |||||
/// 配方商品属性关系 | /// 配方商品属性关系 | ||||
/// </summary> | /// </summary> | ||||
[SugarTable("bpa_bomattributevaluere")] | [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 Id { get; set; } | ||||
public string GoodsId { get; set; } | public string GoodsId { get; set; } | ||||
/// <summary> | /// <summary> | ||||
@@ -23,5 +25,10 @@ namespace BPA.SAAS.Manage.Core.DataBase | |||||
/// 商品属性值id | /// 商品属性值id | ||||
/// </summary> | /// </summary> | ||||
public string GoodsAttributeValueId { get; set; } | public string GoodsAttributeValueId { get; set; } | ||||
/// <summary> | |||||
/// 商品属性值 | |||||
/// </summary> | |||||
public string GoodsAttributeValue { get; set; } | |||||
public string GroupId { get; set; } | |||||
} | } | ||||
} | } |