From d9182f89b755f80115bcc6b2485483272f067d62 Mon Sep 17 00:00:00 2001
From: zhoukeda <1315948824@qq.com>
Date: Wed, 15 Nov 2023 11:29:53 +0800
Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E4=BA=A7bom=E5=A4=8D=E5=88=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
BasicData/Tnb.BasicData/BasMbomService.cs | 49 +++++++++++++++++++++++
1 file changed, 49 insertions(+)
diff --git a/BasicData/Tnb.BasicData/BasMbomService.cs b/BasicData/Tnb.BasicData/BasMbomService.cs
index 6736f838..cee2b86b 100644
--- a/BasicData/Tnb.BasicData/BasMbomService.cs
+++ b/BasicData/Tnb.BasicData/BasMbomService.cs
@@ -131,6 +131,55 @@ namespace Tnb.BasicData
mbomDataOutput.processes = mbomProcessOutDtos;
return mbomDataOutput;
}
+
+ ///
+ /// 复制生产bom
+ ///
+ /// 物料id id
+ [HttpPost]
+ public async Task Copy(Dictionary parameters)
+ {
+ string id = parameters["id"];
+ var db = _repository.AsSugarClient();
+ BasMbom basMbom = await _repository.GetByIdAsync(id);
+
+ List mbomProcesses = await db.Queryable().Where(x => x.mbom_id == id).ToListAsync();
+ List mbomInputs = await db.Queryable().Where(x => x.mbom_id == id).ToListAsync();
+ List mbomOutputs = await db.Queryable().Where(x => x.mbom_id == id).ToListAsync();
+
+ string newId = SnowflakeIdHelper.NextId();
+ basMbom.id = newId;
+ basMbom.version += "_复制的请修改";
+
+ DbResult result = await _repository.AsSugarClient().Ado.UseTranAsync(async () =>
+ {
+ _ = await _repository.InsertAsync(basMbom);
+ foreach (BasMbomProcess item in mbomProcesses)
+ {
+ item.id = SnowflakeIdHelper.NextId();
+ item.mbom_id = newId;
+ }
+
+ foreach (BasMbomInput item in mbomInputs)
+ {
+ item.id = SnowflakeIdHelper.NextId();
+ item.mbom_id = newId;
+ }
+
+ foreach (BasMbomOutput item in mbomOutputs)
+ {
+ item.id = SnowflakeIdHelper.NextId();
+ item.mbom_id = newId;
+ }
+
+ if(mbomProcesses!=null && mbomProcesses.Count>0) _ = await db.Insertable(mbomProcesses).ExecuteCommandAsync();
+ if(mbomInputs!=null && mbomInputs.Count>0) _ = await db.Insertable(mbomInputs).ExecuteCommandAsync();
+ if(mbomOutputs!=null && mbomOutputs.Count>0) _ = await db.Insertable(mbomOutputs).ExecuteCommandAsync();
+
+ });
+
+ return !result.IsSuccess ? throw Oops.Oh(ErrorCode.COM1008) : result.IsSuccess ? "复制成功" : result.ErrorMessage;
+ }
///