LinkagePlanService.cs 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. namespace Admin.NET.Plugin.AiDOP.Order;
  2. /// <summary>
  3. /// 计划联动看板服务
  4. /// 路由前缀:/api/Order/linkageplan/...
  5. /// </summary>
  6. [ApiDescriptionSettings(Order = 250, Description = "计划联动看板")]
  7. [Route("api/Order")]
  8. [AllowAnonymous]
  9. [NonUnify]
  10. public class LinkagePlanService : IDynamicApiController, ITransient
  11. {
  12. private readonly ISqlSugarClient _db;
  13. private readonly SqlSugarRepository<LinkagePlan> _linkagePlanRep;
  14. public LinkagePlanService(
  15. ISqlSugarClient db,
  16. SqlSugarRepository<LinkagePlan> linkagePlanRep)
  17. {
  18. _db = db;
  19. _linkagePlanRep = linkagePlanRep;
  20. }
  21. [DisplayName("获取计划联动看板列表")]
  22. [HttpGet("linkageplan/list")]
  23. public async Task<object> GetLinkagePlanList([FromQuery] LinkagePlanListInput input)
  24. {
  25. var q = _db.Queryable<LinkagePlan>()
  26. .WhereIF(!string.IsNullOrWhiteSpace(input.BillNo), u => u.BillNo != null && u.BillNo.Contains(input.BillNo!.Trim()))
  27. .WhereIF(!string.IsNullOrWhiteSpace(input.CustomNo), u => u.CustomNo != null && u.CustomNo.Contains(input.CustomNo!.Trim()))
  28. .WhereIF(!string.IsNullOrWhiteSpace(input.OrderType), u => u.OrderType == input.OrderType!.Trim())
  29. .WhereIF(!string.IsNullOrWhiteSpace(input.ItemNumber), u => u.ItemNumber == input.ItemNumber!.Trim());
  30. var paged = await q.OrderBy(u => u.Id).OrderBy(u => u.LevelNum).ToPagedListAsync(input.Page, input.PageSize);
  31. var list = paged.Items.Select(u => new
  32. {
  33. id = u.Id,
  34. billNo = u.BillNo,
  35. customNo = u.CustomNo,
  36. orderType = u.OrderType,
  37. itemNumber = u.ItemNumber,
  38. descr = u.Descr,
  39. descr1 = u.Descr1,
  40. itemType = u.ItemType,
  41. qty = u.Qty,
  42. updateTime = u.UpdateTime?.ToString("yyyy-MM-dd"),
  43. sysCapacityDate = u.SysCapacityDate?.ToString("yyyy-MM-dd"),
  44. type = u.Type,
  45. bomStart = u.BomStart,
  46. bomEnd = u.BomEnd,
  47. lineStart = u.LineStart,
  48. lineEnd = u.LineEnd,
  49. productStart = u.ProductStart,
  50. productEnd = u.ProductEnd,
  51. needTime = u.NeedTime,
  52. sysMaterialDate = u.SysMaterialDate,
  53. cgNeedTime = u.CgNeedTime,
  54. cgEnd = u.CgEnd,
  55. blStart = u.BlStart,
  56. blEnd = u.BlEnd,
  57. startTime = u.StartTime,
  58. endTime = u.EndTime,
  59. ipqcJyStart = u.IpqcJyStart,
  60. ipqcJyEnd = u.IpqcJyEnd,
  61. fqcJyStart = u.FqcJyStart,
  62. fqcJyEnd = u.FqcJyEnd,
  63. rkStart = u.RkStart,
  64. rkEnd = u.RkEnd,
  65. fyStartTime = u.FyStartTime,
  66. fyEndTime = u.FyEndTime,
  67. levelNum = u.LevelNum,
  68. background = u.Background,
  69. }).ToList();
  70. return new { total = paged.Total, page = input.Page, pageSize = input.PageSize, list };
  71. }
  72. [DisplayName("获取计划联动看板详情")]
  73. [HttpGet("linkageplan/{id:long}")]
  74. public async Task<object> GetLinkagePlanDetail(long id)
  75. {
  76. var m = await _linkagePlanRep.GetFirstAsync(u => u.Id == id)
  77. ?? throw Oops.Oh("计划联动记录不存在");
  78. return new
  79. {
  80. id = m.Id,
  81. billNo = m.BillNo,
  82. customNo = m.CustomNo,
  83. orderType = m.OrderType,
  84. itemNumber = m.ItemNumber,
  85. descr = m.Descr,
  86. descr1 = m.Descr1,
  87. itemType = m.ItemType,
  88. qty = m.Qty,
  89. updateTime = m.UpdateTime?.ToString("yyyy-MM-dd HH:mm:ss"),
  90. sysCapacityDate = m.SysCapacityDate?.ToString("yyyy-MM-dd HH:mm:ss"),
  91. type = m.Type,
  92. bomStart = m.BomStart,
  93. bomEnd = m.BomEnd,
  94. lineStart = m.LineStart,
  95. lineEnd = m.LineEnd,
  96. productStart = m.ProductStart,
  97. productEnd = m.ProductEnd,
  98. needTime = m.NeedTime,
  99. sysMaterialDate = m.SysMaterialDate,
  100. cgNeedTime = m.CgNeedTime,
  101. cgEnd = m.CgEnd,
  102. blStart = m.BlStart,
  103. blEnd = m.BlEnd,
  104. startTime = m.StartTime,
  105. endTime = m.EndTime,
  106. ipqcJyStart = m.IpqcJyStart,
  107. ipqcJyEnd = m.IpqcJyEnd,
  108. fqcJyStart = m.FqcJyStart,
  109. fqcJyEnd = m.FqcJyEnd,
  110. rkStart = m.RkStart,
  111. rkEnd = m.RkEnd,
  112. fyStartTime = m.FyStartTime,
  113. fyEndTime = m.FyEndTime,
  114. levelNum = m.LevelNum,
  115. background = m.Background,
  116. };
  117. }
  118. [DisplayName("刷新计划联动数据")]
  119. [HttpPost("linkageplan/refresh")]
  120. public async Task<object> RefreshLinkagePlanData()
  121. {
  122. try
  123. {
  124. // 调用存储过程,不传递参数或传递空字符串
  125. await _db.Ado.ExecuteCommandAsync("CALL pr_Mes_LinkagePlan('')");
  126. return new { message = "数据刷新成功" };
  127. }
  128. catch (Exception ex)
  129. {
  130. throw Oops.Oh($"刷新数据失败: {ex.Message}");
  131. }
  132. }
  133. }