CockpitWorkOrderListResponse.java 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package com.zksy.cockpit.workorder;
  2. import java.util.List;
  3. /**
  4. * 全量工单列表响应(票 65:报警效率面板的「当前工单列表」)。
  5. *
  6. * <p>与按设备/按事件的 {@link CockpitWorkOrderReadResponse} 保持同一套外形约定
  7. * ({@code requestId/apiVersion/readOnly/state/stateReason/stateDictionary/workOrders}),
  8. * 只把「设备/事件」两个维度字段换成分页四件套 —— 前端两处可共用同一份转换与卡片渲染。
  9. */
  10. public class CockpitWorkOrderListResponse {
  11. private final String requestId;
  12. private final String apiVersion;
  13. private final boolean readOnly;
  14. private final String state;
  15. private final String stateReason;
  16. private final List<CockpitWorkOrderState> stateDictionary;
  17. private final List<CockpitWorkOrderSummary> workOrders;
  18. private final Pagination pagination;
  19. public CockpitWorkOrderListResponse(
  20. String requestId,
  21. String apiVersion,
  22. boolean readOnly,
  23. String state,
  24. String stateReason,
  25. List<CockpitWorkOrderState> stateDictionary,
  26. List<CockpitWorkOrderSummary> workOrders,
  27. Pagination pagination) {
  28. this.requestId = requestId;
  29. this.apiVersion = apiVersion;
  30. this.readOnly = readOnly;
  31. this.state = state;
  32. this.stateReason = stateReason;
  33. this.stateDictionary = stateDictionary;
  34. this.workOrders = workOrders;
  35. this.pagination = pagination;
  36. }
  37. public String getRequestId() { return requestId; }
  38. public String getApiVersion() { return apiVersion; }
  39. public boolean isReadOnly() { return readOnly; }
  40. public String getState() { return state; }
  41. public String getStateReason() { return stateReason; }
  42. public List<CockpitWorkOrderState> getStateDictionary() { return stateDictionary; }
  43. public List<CockpitWorkOrderSummary> getWorkOrders() { return workOrders; }
  44. public Pagination getPagination() { return pagination; }
  45. /** 分页回显(与其它驾驶舱端点同名字段:page/pageSize/total/totalPages,前端读同一套)。 */
  46. public static class Pagination {
  47. private final int page;
  48. private final int pageSize;
  49. private final int total;
  50. private final int totalPages;
  51. public Pagination(int page, int pageSize, int total) {
  52. this.page = page;
  53. this.pageSize = pageSize;
  54. this.total = total;
  55. this.totalPages = pageSize <= 0 ? 1 : Math.max(1, (total + pageSize - 1) / pageSize);
  56. }
  57. public int getPage() { return page; }
  58. public int getPageSize() { return pageSize; }
  59. public int getTotal() { return total; }
  60. public int getTotalPages() { return totalPages; }
  61. }
  62. }