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; + } ///