AdoS0WorkOrdControlController.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. using Admin.NET.Plugin.AiDOP.Dto.S0.Manufacturing;
  2. using Admin.NET.Plugin.AiDOP.Entity.S0.Manufacturing;
  3. namespace Admin.NET.Plugin.AiDOP.Controllers.S0.Manufacturing;
  4. /// <summary>
  5. /// 工单控制参数设置(WorkOrdControl):单记录配置表单。
  6. /// </summary>
  7. [ApiController]
  8. [Route("api/s0/manufacturing/work-ord-control")]
  9. [NonUnify]
  10. public class AdoS0WorkOrdControlController : ControllerBase
  11. {
  12. private readonly SqlSugarRepository<AdoS0WorkOrdControl> _rep;
  13. public AdoS0WorkOrdControlController(SqlSugarRepository<AdoS0WorkOrdControl> rep)
  14. {
  15. _rep = rep;
  16. }
  17. [HttpGet]
  18. public async Task<IActionResult> GetOneAsync([FromQuery] AdoS0WorkOrdControlGetDto q)
  19. {
  20. if (!AdoS0TenantScope.TryResolveRequired(out var tenantId, out var tenantError)) return tenantError!;
  21. var domain = q.Domain.Trim();
  22. var item = await _rep.ScopedTo(tenantId)
  23. .Where(x => x.Domain == domain)
  24. .OrderBy(x => x.Id)
  25. .FirstAsync();
  26. return Ok(item);
  27. }
  28. [HttpPost("upsert")]
  29. public async Task<IActionResult> UpsertAsync([FromBody] AdoS0WorkOrdControlUpsertDto dto)
  30. {
  31. if (!AdoS0TenantScope.TryResolveRequired(out var tenantId, out var tenantError)) return tenantError!;
  32. var now = DateTime.Now;
  33. var domain = dto.Domain.Trim();
  34. AdoS0WorkOrdControl? entity = null;
  35. if (dto.Id is > 0)
  36. entity = await _rep.GetByIdAsync(dto.Id.Value);
  37. if (entity == null)
  38. {
  39. entity = await _rep.ScopedTo(tenantId)
  40. .Where(x => x.Domain == domain)
  41. .OrderBy(x => x.Id)
  42. .FirstAsync();
  43. }
  44. if (entity == null)
  45. {
  46. entity = new AdoS0WorkOrdControl
  47. {
  48. TenantId = tenantId,
  49. Domain = domain,
  50. EnteringPer = dto.EnteringPer,
  51. PaintingPer = dto.PaintingPer,
  52. IssuedInterval = dto.IssuedInterval,
  53. PostVarsatSFC = dto.PostVarsatSFC,
  54. IsIssued = dto.IsIssued,
  55. IsPrintRejectBarcode = dto.IsPrintRejectBarcode,
  56. IsPrintScrapBarcode = dto.IsPrintScrapBarcode,
  57. IsQualityConfirm = dto.IsQualityConfirm,
  58. IsActive = dto.IsActive,
  59. IsConfirm = dto.IsConfirm,
  60. CreateUser = dto.CreateUser ?? dto.UpdateUser,
  61. CreateTime = dto.CreateTime ?? dto.UpdateTime ?? now,
  62. UpdateUser = dto.UpdateUser,
  63. UpdateTime = dto.UpdateTime ?? now
  64. };
  65. await _rep.AsInsertable(entity).ExecuteReturnEntityAsync();
  66. return Ok(entity);
  67. }
  68. entity.Domain = domain;
  69. entity.EnteringPer = dto.EnteringPer;
  70. entity.PaintingPer = dto.PaintingPer;
  71. entity.IssuedInterval = dto.IssuedInterval;
  72. entity.PostVarsatSFC = dto.PostVarsatSFC;
  73. entity.IsIssued = dto.IsIssued;
  74. entity.IsPrintRejectBarcode = dto.IsPrintRejectBarcode;
  75. entity.IsPrintScrapBarcode = dto.IsPrintScrapBarcode;
  76. entity.IsQualityConfirm = dto.IsQualityConfirm;
  77. entity.IsActive = dto.IsActive;
  78. entity.IsConfirm = dto.IsConfirm;
  79. entity.UpdateUser = dto.UpdateUser;
  80. entity.UpdateTime = dto.UpdateTime ?? now;
  81. await _rep.AsUpdateable(entity).ExecuteCommandAsync();
  82. return Ok(entity);
  83. }
  84. }