EvaluationReport.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. import { Table, Tooltip } from 'antd';
  2. import { useMemo } from 'react';
  3. import { current, indicators } from './mock';
  4. // import styles from './WorkConditionAssessment.less';
  5. /**
  6. * 评估报告组件
  7. * @param {boolean} isAbnormal - 是否存在异常情况
  8. * @param {object} compareData - 同比环比数据
  9. * @param {number} compareData.lastPeriod - 上期同比数据(百分比)
  10. * @param {number} compareData.lastYear - 去年同期同比数据(百分比)
  11. * @param {string} optimizationSuggestions - 优化建议
  12. */
  13. const EvaluationReport = (props) => {
  14. const { dataKey } = props;
  15. const dataSource = useMemo(() => {
  16. let data = current[dataKey];
  17. let dataSource = indicators[dataKey]
  18. .filter((item) => item.delta !== false)
  19. .map((item) => {
  20. let key = item.value;
  21. let realTimeData = data['realTimeData'][key];
  22. let forecastData = data['forecastData'][key];
  23. return {
  24. indicator: item.label,
  25. delta1: (
  26. ((forecastData - realTimeData) / forecastData) *
  27. 100
  28. ).toFixed(2),
  29. };
  30. });
  31. let error = { color: '#f5222d' },
  32. success = { color: '#7cb305' };
  33. if (dataKey == 'allProject') {
  34. dataSource.push({
  35. indicator: '总结',
  36. delta1: (
  37. <div>
  38. 【2023年4月】 <span style={error}>异常</span>
  39. <br />
  40. (1)生产安全评估: <span style={success}>正常</span>
  41. <br />
  42. 达标率、产水量实时工况与仿真、最优和标准工况对比皆在偏差范围内,正常
  43. <br />
  44. <br />
  45. (2)经济评估:<span style={error}>异常</span>
  46. <br />
  47. 电耗实时工况与仿真工况对比,偏差为1.89,预计比仿真多消耗21269kWh,系统判断预计下一阶段会持续增加
  48. </div>
  49. ),
  50. });
  51. dataSource.push({
  52. indicator: '优化建议',
  53. delta1: <div>根据上述结论,为减少电耗,建议检查膜车间工艺段</div>,
  54. });
  55. } else {
  56. dataSource.push({
  57. indicator: '总结',
  58. delta1: (
  59. <div>
  60. (1)生产安全评估: <span style={error}>异常</span>
  61. <br />
  62. 膜阻力、TMP实时工况与标准工况对比偏差偏大;与最优工况对比膜阻力有偏离;与预测工况对比,膜阻力、TMP会持续增加
  63. <br />
  64. <br />
  65. (2)经济评估:<span style={success}>正常</span>
  66. <br />
  67. 处理水量此时为正常,系统判断下一阶段随着膜阻力、TMP增加会影响产水量
  68. </div>
  69. ),
  70. });
  71. dataSource.push({
  72. indicator: '优化建议',
  73. delta1: (
  74. <div>
  75. 根据上述结论,为保证产水量,需要增加膜的反冲洗频次和清洗强度。
  76. </div>
  77. ),
  78. });
  79. }
  80. return dataSource;
  81. }, []);
  82. const columns = [
  83. {
  84. title: '指标',
  85. dataIndex: 'indicator',
  86. key: 'indicator',
  87. width: 200,
  88. },
  89. {
  90. title: (
  91. <Tooltip
  92. title="(预测 - 实际) / 预测 * 100"
  93. // overlayClassName={styles.toolTip}
  94. >
  95. Δ1
  96. {/* <Icon type="info-circle" /> */}
  97. </Tooltip>
  98. ),
  99. dataIndex: 'delta1',
  100. key: 'delta1',
  101. render: (text, row, index) => {
  102. if (index < dataSource.length - 2) {
  103. return text;
  104. }
  105. return {
  106. children: text,
  107. props: {
  108. colSpan: 3,
  109. },
  110. };
  111. },
  112. },
  113. ];
  114. // return null
  115. return (
  116. <div style={{ fontSize: 18, color: '#fff' }}>
  117. <Table
  118. columns={columns}
  119. dataSource={dataSource}
  120. pagination={false}
  121. // footer={() => (
  122. // <>
  123. // <Table.Row>
  124. // <Table.Cell>总结</Table.Cell>
  125. // <Table.Cell colSpan={3}>
  126. // 【2023年4月】异常 <br />
  127. // (1)生产安全评估:正常
  128. // <br />
  129. // 实时工况与仿真、最优和标准工况对比皆在偏差范围内,正常
  130. // <br />
  131. // (2)经济评估:异常
  132. // <br />
  133. // 实时工况电耗同比增长/下降 ,环比增长/下降 ; 与仿真、最优和标准工况对比
  134. // 实施工况药耗同比增长/下降 ,环比增长/下降 ; 与仿真、最优和标准工况对比
  135. // </Table.Cell>
  136. // </Table.Row>
  137. // <Table.Row>
  138. // <Table.Cell>优化建议</Table.Cell>
  139. // <Table.Cell colSpan={3}>根据评估结果,我们建议检查...工艺段</Table.Cell>
  140. // </Table.Row>
  141. // </>
  142. // )}
  143. />
  144. </div>
  145. );
  146. };
  147. export default EvaluationReport;