using Admin.NET.Plugin.AiDOP.Dto.S0.Manufacturing;
using Admin.NET.Plugin.AiDOP.Entity.S0.Manufacturing;
namespace Admin.NET.Plugin.AiDOP.Controllers.S0.Manufacturing;
///
/// 工单控制参数设置(WorkOrdControl):单记录配置表单。
///
[ApiController]
[Route("api/s0/manufacturing/work-ord-control")]
[AllowAnonymous]
[NonUnify]
public class AdoS0WorkOrdControlController : ControllerBase
{
private readonly SqlSugarRepository _rep;
public AdoS0WorkOrdControlController(SqlSugarRepository rep)
{
_rep = rep;
}
[HttpGet]
public async Task GetOneAsync([FromQuery] AdoS0WorkOrdControlGetDto q)
{
var domain = q.Domain.Trim();
var item = await _rep.AsQueryable()
.Where(x => x.Domain == domain)
.OrderBy(x => x.Id)
.FirstAsync();
return Ok(item);
}
[HttpPost("upsert")]
public async Task UpsertAsync([FromBody] AdoS0WorkOrdControlUpsertDto dto)
{
var now = DateTime.Now;
var domain = dto.Domain.Trim();
AdoS0WorkOrdControl? entity = null;
if (dto.Id is > 0)
entity = await _rep.GetByIdAsync(dto.Id.Value);
if (entity == null)
{
entity = await _rep.AsQueryable()
.Where(x => x.Domain == domain)
.OrderBy(x => x.Id)
.FirstAsync();
}
if (entity == null)
{
entity = new AdoS0WorkOrdControl
{
Domain = domain,
EnteringPer = dto.EnteringPer,
PaintingPer = dto.PaintingPer,
IssuedInterval = dto.IssuedInterval,
PostVarsatSFC = dto.PostVarsatSFC,
IsIssued = dto.IsIssued,
IsPrintRejectBarcode = dto.IsPrintRejectBarcode,
IsPrintScrapBarcode = dto.IsPrintScrapBarcode,
IsQualityConfirm = dto.IsQualityConfirm,
IsActive = dto.IsActive,
IsConfirm = dto.IsConfirm,
CreateUser = dto.CreateUser ?? dto.UpdateUser,
CreateTime = dto.CreateTime ?? dto.UpdateTime ?? now,
UpdateUser = dto.UpdateUser,
UpdateTime = dto.UpdateTime ?? now
};
await _rep.AsInsertable(entity).ExecuteReturnEntityAsync();
return Ok(entity);
}
entity.Domain = domain;
entity.EnteringPer = dto.EnteringPer;
entity.PaintingPer = dto.PaintingPer;
entity.IssuedInterval = dto.IssuedInterval;
entity.PostVarsatSFC = dto.PostVarsatSFC;
entity.IsIssued = dto.IsIssued;
entity.IsPrintRejectBarcode = dto.IsPrintRejectBarcode;
entity.IsPrintScrapBarcode = dto.IsPrintScrapBarcode;
entity.IsQualityConfirm = dto.IsQualityConfirm;
entity.IsActive = dto.IsActive;
entity.IsConfirm = dto.IsConfirm;
entity.UpdateUser = dto.UpdateUser;
entity.UpdateTime = dto.UpdateTime ?? now;
await _rep.AsUpdateable(entity).ExecuteCommandAsync();
return Ok(entity);
}
}