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