using JNPF.Common.Core.Manager; using JNPF.Common.Security; using JNPF.DependencyInjection; using JNPF.DynamicApiController; using JNPF.Systems.Interfaces.System; using Microsoft.AspNetCore.Mvc; using SqlSugar; using Tnb.BasicData.Entities; using Tnb.BasicData.Interfaces; namespace Tnb.BasicData { /// /// 物料档案 /// [ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 1102)] [Route("api/[area]/[controller]/[action]")] public class BasMaterialService : IBasMaterialService,IDynamicApiController, ITransient { private readonly ISqlSugarRepository _repository; private readonly DataBaseManager _dbManager; private readonly IDictionaryDataService _dictionaryDataService; public BasMaterialService( ISqlSugarRepository repository,DataBaseManager dbManager,IDictionaryDataService dictionaryDataService) { _repository = repository; _dbManager = dbManager; _dictionaryDataService = dictionaryDataService; } /// /// 复制物料 /// /// 物料id id [HttpPost] public async Task Copy(Dictionary parameters) { string id = parameters["id"]; BasMaterial basMaterial = await _repository.GetByIdAsync(id); List materialUnits = await _repository.AsSugarClient().Queryable().Where(x => x.material_id == id).ToListAsync(); string newId = SnowflakeIdHelper.NextId(); basMaterial.id = newId; basMaterial.code += "_复制的请修改"; basMaterial.name += "_复制的请修改"; DbResult result = await _repository.AsSugarClient().Ado.UseTranAsync(async () => { await _repository.InsertAsync(basMaterial); foreach (BasMaterialUnit basMaterialUnit in materialUnits) { basMaterialUnit.id = SnowflakeIdHelper.NextId(); basMaterialUnit.material_id = newId; } await _repository.AsSugarClient().Insertable(materialUnits).ExecuteCommandAsync(); }); return result.IsSuccess ? "复制成功" : result.ErrorMessage; } } }