diff --git a/klp-admin/src/main/java/com/klp/framework/client/SqlServerApiClient.java b/klp-admin/src/main/java/com/klp/framework/client/SqlServerApiClient.java index 7728b9dd..7b990455 100644 --- a/klp-admin/src/main/java/com/klp/framework/client/SqlServerApiClient.java +++ b/klp-admin/src/main/java/com/klp/framework/client/SqlServerApiClient.java @@ -376,13 +376,13 @@ public class SqlServerApiClient { "select COILID from JXPLTCM.PLTCM_PDI_PLAN where HOT_COILID = :hotCoilId", singletonParam("hotCoilId", hotCoilId) ); - + List> rows = (List>) planResponse.getResult(); if (rows == null || rows.isEmpty()) { // 如果没有找到对应的计划记录,返回空结果 return new ExecuteSqlResponse(); } - + // 收集所有有效的 COILID List coilIds = new ArrayList<>(); for (Map row : rows) { @@ -391,11 +391,11 @@ public class SqlServerApiClient { coilIds.add(coilId); } } - + if (coilIds.isEmpty()) { return new ExecuteSqlResponse(); } - + // 用所有的 COILID 去查询 PLTCM_PRO_SEG 表的 ENCOILID // 使用 IN 查询一次性获取所有数据 Map params = new java.util.HashMap<>(); @@ -409,10 +409,39 @@ public class SqlServerApiClient { params.put(paramName, coilIds.get(i)); } sql.append(") order by ENCOILID, SEGNO"); - + return executeSql("oracle", sql.toString(), params); } + public ExecuteSqlResponse queryExcoilList(int page, int pageSize) { + int endRow = page * pageSize; + int startRow = endRow - pageSize; + Map params = new java.util.HashMap<>(); + params.put("startRow", startRow); + params.put("endRow", endRow); + return executeSql( + "oracle", + "select * from (select t.*, ROWNUM rn from (select * from JXPLTCM.PLTCM_PDO_EXCOIL order by END_DATE desc) t where ROWNUM <= :endRow) where rn > :startRow", + params + ); + } + + public ExecuteSqlResponse queryExcoilCount() { + return executeSql( + "oracle", + "select count(*) as total from JXPLTCM.PLTCM_PDO_EXCOIL", + emptyParams() + ); + } + + public ExecuteSqlResponse queryPresetSetupByCoilId(String coilId) { + return executeSql( + "oracle", + "select * from JXPLTCM.PLTCM_PRESET_SETUP where COILID = :coilId", + singletonParam("coilId", coilId) + ); + } + public ExecuteSqlResponse queryProSegByExcoilId(String excoilId) { return executeSql( "oracle", diff --git a/klp-admin/src/main/java/com/klp/framework/service/SqlServerApiBusinessService.java b/klp-admin/src/main/java/com/klp/framework/service/SqlServerApiBusinessService.java index 727061c6..f5c9544d 100644 --- a/klp-admin/src/main/java/com/klp/framework/service/SqlServerApiBusinessService.java +++ b/klp-admin/src/main/java/com/klp/framework/service/SqlServerApiBusinessService.java @@ -126,6 +126,32 @@ public class SqlServerApiBusinessService { return client.queryShapeByMatId(matId); } + /** + * 出口卷实绩列表(分页),来自 PLTCM_PDO_EXCOIL。 + */ + public ExcoilPageView getExcoilList(int page, int pageSize) { + return new ExcoilPageView(asRowList(client.queryExcoilList(page, pageSize))); + } + + /** + * 出口卷实绩总数。 + */ + public long getExcoilCount() { + List> rows = asRowList(client.queryExcoilCount()); + if (rows.isEmpty()) return 0L; + Number n = asNumber(rows.get(0).get("total")); + return n == null ? 0L : n.longValue(); + } + + /** + * 工艺预设参数,按钢卷号查询(PLTCM_PRESET_SETUP)。 + */ + public PresetSetupView getPresetSetupByCoilId(String coilId) { + List> rows = asRowList(client.queryPresetSetupByCoilId(coilId)); + Map firstRow = rows.isEmpty() ? Collections.emptyMap() : rows.get(0); + return new PresetSetupView(coilId, firstRow); + } + /** * 实时数据总入口:一次性返回厚度与板形两类数据。 */ @@ -361,6 +387,36 @@ public class SqlServerApiBusinessService { } } + public static class ExcoilPageView { + private final List> rows; + + public ExcoilPageView(List> rows) { + this.rows = rows; + } + + public List> getRows() { + return rows; + } + } + + public static class PresetSetupView { + private final String coilId; + private final Map data; + + public PresetSetupView(String coilId, Map data) { + this.coilId = coilId; + this.data = data; + } + + public String getCoilId() { + return coilId; + } + + public Map getData() { + return data; + } + } + public static class RollListView { private final List> rows; diff --git a/klp-admin/src/main/java/com/klp/framework/sqlserver/SqlServerApiController.java b/klp-admin/src/main/java/com/klp/framework/sqlserver/SqlServerApiController.java index 58eb94c1..fd7e144c 100644 --- a/klp-admin/src/main/java/com/klp/framework/sqlserver/SqlServerApiController.java +++ b/klp-admin/src/main/java/com/klp/framework/sqlserver/SqlServerApiController.java @@ -155,6 +155,34 @@ public class SqlServerApiController { return R.ok(businessService.getRollHistoryList(page, pageSize, rollId, standId)); } + /** + * 出口卷实绩列表(分页),来自 PLTCM_PDO_EXCOIL。 + */ + @GetMapping("/excoil") + public R excoilList( + @RequestParam(defaultValue = "1") int page, + @RequestParam(defaultValue = "50") int pageSize) { + return R.ok(businessService.getExcoilList(page, pageSize)); + } + + /** + * 出口卷实绩总数。 + */ + @GetMapping("/excoil/count") + public R> excoilCount() { + Map result = new HashMap<>(); + result.put("total", businessService.getExcoilCount()); + return R.ok(result); + } + + /** + * 工艺预设参数,按计划钢卷号查询(PLTCM_PRESET_SETUP)。 + */ + @GetMapping("/preset-setup/{coilId}") + public R presetSetup(@PathVariable String coilId) { + return R.ok(businessService.getPresetSetupByCoilId(coilId)); + } + /** * 换辊历史总条数。 */ diff --git a/klp-ui/package.json b/klp-ui/package.json index f6a6a48c..2a2d5e7b 100644 --- a/klp-ui/package.json +++ b/klp-ui/package.json @@ -50,6 +50,7 @@ "dayjs": "^1.11.18", "dom-to-image": "^2.6.0", "echarts": "5.4.0", + "echarts-gl": "^2.0.9", "element-ui": "2.15.12", "exceljs": "^4.4.0", "file-saver": "2.0.5", diff --git a/klp-ui/src/api/l2/timing.js b/klp-ui/src/api/l2/timing.js index 576aea04..43ebc625 100644 --- a/klp-ui/src/api/l2/timing.js +++ b/klp-ui/src/api/l2/timing.js @@ -117,3 +117,28 @@ export function getRollHistoryCount(rollId, standId) { params: { rollId, standId } }) } + +// 出口卷实绩列表(分页),PLTCM_PDO_EXCOIL +export function getExcoilList(page = 1, pageSize = 50) { + return request({ + url: '/sql-server-api/excoil', + method: 'get', + params: { page, pageSize } + }) +} + +// 出口卷实绩总数 +export function getExcoilCount() { + return request({ + url: '/sql-server-api/excoil/count', + method: 'get' + }) +} + +// 工艺预设参数,按计划钢卷号查询,PLTCM_PRESET_SETUP +export function getPresetSetupByCoilId(coilId) { + return request({ + url: '/sql-server-api/preset-setup/' + coilId, + method: 'get' + }) +} diff --git a/klp-ui/src/views/micro/pages/acid/components/ActualPerformance.vue b/klp-ui/src/views/micro/pages/acid/components/ActualPerformance.vue new file mode 100644 index 00000000..eef9814f --- /dev/null +++ b/klp-ui/src/views/micro/pages/acid/components/ActualPerformance.vue @@ -0,0 +1,960 @@ + + + + + diff --git a/klp-ui/src/views/micro/pages/acid/components/Performance.vue b/klp-ui/src/views/micro/pages/acid/components/Performance.vue index c80afd04..597014af 100644 --- a/klp-ui/src/views/micro/pages/acid/components/Performance.vue +++ b/klp-ui/src/views/micro/pages/acid/components/Performance.vue @@ -1,483 +1,628 @@