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); } }