工序工位存入bas_process_station

This commit is contained in:
2023-04-28 14:38:14 +08:00
parent 0a2bb034cf
commit e16fc6ac4a
9 changed files with 512 additions and 147 deletions

View File

@@ -1,4 +1,5 @@
using JNPF.Common.Core.Manager;
using JNPF.Common.Security;
using JNPF.DependencyInjection;
using JNPF.DynamicApiController;
using JNPF.Systems.Interfaces.System;
@@ -28,62 +29,36 @@ namespace Tnb.BasicData
_dictionaryDataService = dictionaryDataService;
}
// [HttpPost]
// public async Task<Dictionary<string,string>> GetEbomVersionAndRouteName(Dictionary<string,string> parameters)
// {
// string materialId = parameters["materialId"];
// var db = _repository.AsSugarClient();
// var dic = await _dictionaryDataService.GetDicByKey(DicTypeKey.MeasurementUnit);
// // var momDbLink = await _repository.AsSugarClient().Queryable<DbLinkEntity>().FirstAsync(x => x.FullName == DbName.TNBMON);
// // if (momDbLink != null)
// // {
// // db = _dbManager.ChangeDataBase(momDbLink);
// // }
//
// var ebom = await db.Queryable<BasEbomH>()
// .LeftJoin<BasRouteH>((a,b)=>a.route_id==b.id)
// .Where((a,b) => a.material_id == materialId)
// .Select((a,b)=>new
// {
// a.id,
// a.version,
// b.name,
// }).SingleAsync();
// return new Dictionary<string,string>()
// {
// ["version"] = ebom?.version,
// ["routeName"] = ebom?.name,
// ["routeId"] = ebom?.id
// };
// }
// [HttpPost]
// public async Task<List<ElementSelectDto>> GetMaterialUnits(Dictionary<string,string> parameters)
// {
// string materialId = parameters["materialId"];
// var db = _repository.AsSugarClient();
//
// var type = await db.Queryable<DictionaryTypeEntity>().Where(x => x.EnCode == DictConst.MeasurementUnit)
// .SingleAsync();
// string typeId = type?.Id;
// var queryable1 = db.Queryable<BasMaterial>()
// .LeftJoin<DictionaryDataEntity>((a,b)=>a.unit_id==b.EnCode && b.DictionaryTypeId==typeId)
// .Where((a,b) => a.Id == materialId)
// .Select((a,b)=> new ElementSelectDto
// {
// value = b.EnCode,
// label = b.FullName,
// });
// var queryable2 = db.Queryable<BasMaterial>()
// .LeftJoin<DictionaryDataEntity>((a,b)=>a.pickunit_id==b.EnCode && b.DictionaryTypeId==typeId)
// .Where((a,b) => a.Id == materialId)
// .Select((a,b)=> new ElementSelectDto
// {
// value = b.EnCode,
// label = b.FullName,
// });
// List<ElementSelectDto> data = await db.Union(queryable1, queryable2).ToListAsync();
// return data;
// }
/// <summary>
/// 复制物料
/// </summary>
/// <param name="parameters">物料id id</param>
[HttpPost]
public async Task<string> Copy(Dictionary<string, string> parameters)
{
string id = parameters["id"];
BasMaterial basMaterial = await _repository.GetByIdAsync(id);
List<BasMaterialUnit> materialUnits = await _repository.AsSugarClient().Queryable<BasMaterialUnit>().Where(x => x.material_id == id).ToListAsync();
string newId = SnowflakeIdHelper.NextId();
basMaterial.id = newId;
basMaterial.code += "_复制的请修改";
basMaterial.name += "_复制的请修改";
DbResult<bool> 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<BasMaterialUnit>(materialUnits).ExecuteCommandAsync();
});
return result.IsSuccess ? "复制成功" : result.ErrorMessage;
}
}
}

View File

@@ -0,0 +1,90 @@
using JNPF.Common.Core.Manager;
using JNPF.Common.Dtos.VisualDev;
using JNPF.Common.Security;
using JNPF.DependencyInjection;
using JNPF.DynamicApiController;
using JNPF.Systems.Entitys.System;
using JNPF.Systems.Interfaces.System;
using JNPF.VisualDev;
using JNPF.VisualDev.Entitys;
using JNPF.VisualDev.Interfaces;
using Mapster;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
using SqlSugar;
using Tnb.BasicData.Entities;
using Tnb.BasicData.Entities.Dto;
using Tnb.BasicData.Interfaces;
namespace Tnb.BasicData
{
/// <summary>
/// 工序定义
/// </summary>
[ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 1102)]
[Route("api/[area]/[controller]/[action]")]
[OverideVisualDev(ModelId)]
public class BasProcessService : IOverideVisualDevService, IDynamicApiController, ITransient
{
public const string ModelId = "25483283228965";
private readonly ISqlSugarRepository<BasProcess> _repository;
private readonly DataBaseManager _dbManager;
private readonly IUserManager _userManager;
private readonly IRunService _runService;
private readonly IVisualDevService _visualDevService;
public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc();
public BasProcessService(
ISqlSugarRepository<BasProcess> repository,
IUserManager userManager,
IRunService runService,
IVisualDevService visualDevService,
DataBaseManager dbManager)
{
_repository = repository;
_userManager = userManager;
_dbManager = dbManager;
_runService = runService;
_visualDevService = visualDevService;
OverideFuncs.CreateAsync = Create;
}
/// <summary>
/// 保存工序工位关联表
/// </summary>
/// <param name="processStationInput">process_id 工序id</param>
/// <param name="processStationInput">stationIds 工位id集合</param>
[HttpPost]
public async Task<dynamic> Create(VisualDevModelDataCrInput visualDevModelDataCrInput)
{
DbResult<bool> result = await _repository.AsSugarClient().Ado.UseTranAsync(async () =>
{
VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModelId, true);
await _runService.Create(templateEntity, visualDevModelDataCrInput);
string processId = visualDevModelDataCrInput.data["ReturnIdentity"].ToString();
List<BasProcessStation> list = new List<BasProcessStation>();
foreach (var item in (JArray)visualDevModelDataCrInput.data["station"])
{
string processStationId = SnowflakeIdHelper.NextId();
list.Add(new BasProcessStation()
{
id = processStationId,
org_id = _userManager.GetUserInfo().Result.organizeId,
process_id = processId,
station_id = item.Last().ToString(),
create_id = _userManager.UserId,
create_time = DateTime.Now,
});
}
await _repository.AsSugarClient().Insertable<BasProcessStation>(list).ExecuteCommandAsync();
});
return result.IsSuccess ? "保存成功" : result.ErrorMessage;
}
}
}