106 lines
4.0 KiB
C#
106 lines
4.0 KiB
C#
using JNPF.Common.Core.Manager;
|
|
using JNPF.Common.Dtos.VisualDev;
|
|
using JNPF.Common.Enums;
|
|
using JNPF.Common.Filter;
|
|
using JNPF.Common.Security;
|
|
using JNPF.DependencyInjection;
|
|
using JNPF.DynamicApiController;
|
|
using JNPF.FriendlyException;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
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 = 701)]
|
|
[Route("api/[area]/[controller]/[action]")]
|
|
public class BasRouteService : IBasRouteService, IDynamicApiController, ITransient
|
|
{
|
|
private readonly ISqlSugarRepository<BasRouteH> _repository;
|
|
|
|
|
|
public BasRouteService(
|
|
UserManager userManager,
|
|
ISqlSugarRepository<BasRouteH> repository)
|
|
{
|
|
_repository = repository;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 发布工艺路线
|
|
/// </summary>
|
|
/// <param name="parameters">工艺路线id id</param>
|
|
[HttpPost]
|
|
public async Task Publish(Dictionary<string, string> parameters)
|
|
{
|
|
string id = parameters["id"];
|
|
|
|
_ = await _repository.UpdateAsync(x => new BasRouteH()
|
|
{
|
|
status = "1",
|
|
}, x => x.id == id);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 复制工艺路线
|
|
/// </summary>
|
|
/// <param name="parameters">工艺路线id id</param>
|
|
[HttpPost]
|
|
public async Task<string> Copy(Dictionary<string, string> parameters)
|
|
{
|
|
string id = parameters["id"];
|
|
BasRouteH basRouteH = await _repository.GetByIdAsync(id);
|
|
|
|
List<BasRouteD> basRouteDs = await _repository.AsSugarClient().Queryable<BasRouteD>().Where(x => x.route_id == id).ToListAsync();
|
|
|
|
string newId = SnowflakeIdHelper.NextId();
|
|
basRouteH.id = newId;
|
|
basRouteH.code += "_复制的请修改";
|
|
basRouteH.name += "_复制的请修改";
|
|
basRouteH.status = "0";
|
|
|
|
DbResult<bool> result = await _repository.AsSugarClient().Ado.UseTranAsync(async () =>
|
|
{
|
|
_ = await _repository.InsertAsync(basRouteH);
|
|
foreach (BasRouteD basRouteD in basRouteDs)
|
|
{
|
|
basRouteD.id = SnowflakeIdHelper.NextId();
|
|
basRouteD.route_id = newId;
|
|
}
|
|
|
|
_ = await _repository.AsSugarClient().Insertable<BasRouteD>(basRouteDs).ExecuteCommandAsync();
|
|
});
|
|
|
|
return !result.IsSuccess ? throw Oops.Oh(ErrorCode.COM1008) : result.IsSuccess ? "复制成功" : result.ErrorMessage;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取有效的已发布的工艺路线
|
|
/// </summary>
|
|
[HttpPost]
|
|
public async Task<dynamic> GetValidRouteList([FromBody] VisualDevDataFieldDataListInput pageInput)
|
|
{
|
|
ISqlSugarClient db = _repository.AsSugarClient();
|
|
SqlSugarPagedList<VaildRouteOutput> result = await db.Queryable<BasRouteH>()
|
|
.Where(x => x.status == "1"
|
|
&& ((x.start_time != null && x.start_time.Value <= DateTime.Now && x.end_time != null && x.end_time.Value >= DateTime.Now)
|
|
|| (x.start_time == null && x.end_time >= DateTime.Now)
|
|
|| (x.end_time == null && x.start_time <= DateTime.Now)
|
|
|| (x.start_time == null && x.end_time == null)
|
|
)).Select(x => new VaildRouteOutput()
|
|
{
|
|
id = x.id,
|
|
code = x.code,
|
|
name = x.name,
|
|
start_time = x.start_time == null ? "" : x.start_time.Value.ToString("yyyy-MM-dd"),
|
|
end_time = x.end_time == null ? "" : x.end_time.Value.ToString("yyyy-MM-dd"),
|
|
}).ToPagedListAsync(pageInput.currentPage, pageInput.pageSize);
|
|
return PageResult<VaildRouteOutput>.SqlSugarPageResult(result);
|
|
}
|
|
}
|
|
} |