diff --git a/das/src/main/java/com/das/modules/calc/controller/CalcController.java b/das/src/main/java/com/das/modules/calc/controller/CalcController.java index b0adf01c..15b74bb6 100644 --- a/das/src/main/java/com/das/modules/calc/controller/CalcController.java +++ b/das/src/main/java/com/das/modules/calc/controller/CalcController.java @@ -8,6 +8,7 @@ import lombok.extern.slf4j.Slf4j; import org.quartz.SchedulerException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; @@ -17,6 +18,7 @@ import java.io.IOException; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; import java.util.List; +import java.util.Map; /** * 计算模块API接口 @@ -48,6 +50,9 @@ public class CalcController { @PostMapping("/module/register") public R registerCalcModule(MultipartFile file) throws IOException { try { + if (file.isEmpty()){ + throw new IOException("无效的计算模块脚本文件"); + } String content = new String(file.getBytes(), StandardCharsets.UTF_8); calcService.registerCalcModule(content); } @@ -61,13 +66,17 @@ public class CalcController { /** * 移除计算模块 - * @param moduleName 计算模块名称 + * @param params moduleName 模块名称 * @return * @throws IOException */ @PostMapping("/module/remove") - public R removeCalcModule(String moduleName) throws IOException { + public R removeCalcModule(@RequestBody Map params) throws IOException { try { + String moduleName = (String) params.get("moduleName"); + if (moduleName == null){ + return R.fail("参数错误"); + } calcService.removeCalcModule(moduleName); } catch (Exception ex){ @@ -80,13 +89,17 @@ public class CalcController { /** * 激活计算模块 - * @param moduleName + * @param params moduleName 模块名称 * @return * @throws IOException */ @PostMapping("/module/active") - public R activeCalcModule(String moduleName){ + public R activeCalcModule(@RequestBody Map params){ try { + String moduleName = (String) params.get("moduleName"); + if (moduleName == null){ + return R.fail("参数错误"); + } calcService.activeCalcModule(moduleName); } catch (Exception e) { log.error("激活计算模块失败", e); @@ -97,8 +110,12 @@ public class CalcController { @PostMapping("/module/deactive") - public R deActiveCalcModule(String moduleName){ + public R deActiveCalcModule(@RequestBody Map params){ try { + String moduleName = (String) params.get("moduleName"); + if (moduleName == null){ + return R.fail("参数错误"); + } calcService.deActiveCalcModule(moduleName); } catch (Exception e) { log.error("禁用计算模块失败", e); @@ -108,4 +125,24 @@ public class CalcController { } + /** + * 获取计算模块脚本内容 + * @param params moduleName 模块名称 + * @return + */ + @PostMapping("/module/script") + public R getScriptContent(@RequestBody Map params){ + try { + String moduleName = (String) params.get("moduleName"); + if (moduleName == null){ + return R.fail("参数错误"); + } + return R.data(calcService.getScriptContent(moduleName)); + } catch (Exception e) { + log.error("获取计算模块脚本内容失败", e); + return R.fail(String.format("获取计算模块脚本内容失败, %s",e.getMessage())); + } + } + + } diff --git a/das/src/main/java/com/das/modules/calc/service/CalcService.java b/das/src/main/java/com/das/modules/calc/service/CalcService.java index 3f2dbdf4..b3143a5b 100644 --- a/das/src/main/java/com/das/modules/calc/service/CalcService.java +++ b/das/src/main/java/com/das/modules/calc/service/CalcService.java @@ -1,5 +1,6 @@ package com.das.modules.calc.service; +import cn.hutool.core.codec.Base64Encoder; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.das.modules.cache.service.CacheService; import com.das.modules.calc.domain.entity.CalcModule; @@ -23,6 +24,8 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.StringReader; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -213,4 +216,12 @@ public class CalcService { stopCalcJob(moduleName); } } + + public String getScriptContent(String moduleName) throws IOException { + CalcModule calcModule = calcModuleMapper.selectById(moduleName); + if (calcModule != null) { + return Base64Encoder.encode(calcModule.getScript(), StandardCharsets.UTF_8); + } + throw new IOException("无效的模块名"); + } } diff --git a/das/src/main/java/com/das/modules/operation/controller/ManualOperatorController.java b/das/src/main/java/com/das/modules/operation/controller/ManualOperatorController.java index 17053f4e..8be1c419 100644 --- a/das/src/main/java/com/das/modules/operation/controller/ManualOperatorController.java +++ b/das/src/main/java/com/das/modules/operation/controller/ManualOperatorController.java @@ -33,14 +33,21 @@ public class ManualOperatorController { @PostMapping("/command") public R deviceCommand(HttpServletRequest request, @RequestBody CommandInfoDto cmdInfo) { cmdInfo.setMeasType(MeasType.TYPE_PSR_CONTROL); - + log.info("{}", cmdInfo); //判断是否有权限 boolean hasPermission = StpUtil.hasPermission(SysAuthorityIds.SYS_AUTHORITY_ID_DEVICE_CTRL.toString()); if(!hasPermission){ return R.fail("没有设备遥控权限"); } - - String deviceId = optService.executeOperation(request, cmdInfo); + String deviceId = String.valueOf(cmdInfo.getDeviceId()); + try { + optService.executeOperation(request, cmdInfo); + log.info("设备[{}]遥控成功", deviceId); + } + catch (Exception ex){ + log.error("设备遥控失败", ex); + return R.fail(String.format("设备遥控失败, %s",ex.getMessage())); + } return R.success(deviceId); } @@ -56,8 +63,14 @@ public class ManualOperatorController { if(!hasPermission){ return R.fail("没有设备遥控权限"); } - - String deviceId = optService.executeOperation(request, cmdInfo); + String deviceId = String.valueOf(cmdInfo.getDeviceId()); + try{ + optService.executeOperation(request, cmdInfo); + } + catch (Exception ex){ + log.error("设备遥调失败", ex); + return R.fail(String.format("设备遥调失败, %s",ex.getMessage())); + } return R.success(deviceId); } @@ -75,7 +88,14 @@ public class ManualOperatorController { if (cmdInfo.getDeviceId() ==null || StringUtils.isBlank(cmdInfo.getServiceCode())){ throw new ServiceException("参数缺失"); } - String deviceId = optService.executeOperation(request, cmdInfo); + String deviceId = String.valueOf(cmdInfo.getDeviceId()); + try { + optService.executeOperation(request, cmdInfo); + } + catch (Exception ex){ + log.error("设备手工至位失败", ex); + return R.fail(String.format("设备手工至位失败, %s",ex.getMessage())); + } return R.success(deviceId); } } diff --git a/das/src/main/java/com/das/modules/operation/service/OperationService.java b/das/src/main/java/com/das/modules/operation/service/OperationService.java index aad323b3..4aaac176 100644 --- a/das/src/main/java/com/das/modules/operation/service/OperationService.java +++ b/das/src/main/java/com/das/modules/operation/service/OperationService.java @@ -62,7 +62,7 @@ public class OperationService { * @param request HttpServletRequest * @param cmdInfo 命令信息 */ - public String executeOperation(HttpServletRequest request, CommandInfoDto cmdInfo) { + public void executeOperation(HttpServletRequest request, CommandInfoDto cmdInfo) { SysUserVo sysUserVo = (SysUserVo) StpUtil.getTokenSession().get(SessionUtil.SESSION_USER_KEY); if (cmdInfo.getMeasType().equals(MeasType.TYPE_PSR_CALCULATED_VALUE)) { //人工置位,不需要下令 @@ -94,7 +94,6 @@ public class OperationService { log.error("获取客户端ip地址失败 ", e); } sysOperationLogMapper.insert(sysOperationLog); - return cmdInfo.getDeviceId().toString(); } /** @@ -130,7 +129,6 @@ public class OperationService { .build(); terminalMessageEventHandler.sendTerminalMessageWithResult(activeNodeId, configUpdate); } catch (Exception e) { - log.error("设备控制失败 ", e); throw new ServiceException("设备控制失败 "+ e); } } diff --git a/das/src/main/resources/application.yml b/das/src/main/resources/application.yml index e178e838..5dba9c52 100644 --- a/das/src/main/resources/application.yml +++ b/das/src/main/resources/application.yml @@ -91,8 +91,9 @@ das: logging: level: + root: ERROR com: - das: DEBUG + das: ERROR tdengine: password: taosdata diff --git a/database/风场采集.pdma.json b/database/风场采集.pdma.json index 53f2413d..651f1a68 100644 --- a/database/风场采集.pdma.json +++ b/database/风场采集.pdma.json @@ -4,7 +4,7 @@ "avatar": "", "version": "4.9.2", "createdTime": "2024-5-29 17:03:05", - "updatedTime": "2024-11-4 10:10:02", + "updatedTime": "2024-11-7 17:19:07", "dbConns": [], "profile": { "default": { @@ -1487,6 +1487,24 @@ "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E", "id": "E99B79B9-A2E0-4187-93F0-5AC28F95F18F" }, + { + "defKey": "nominal_capacity", + "defName": "额度容量", + "comment": "", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "domain": "FF4459C5-6B45-4DBF-8FC0-E06239BC05B4", + "id": "9F5A244F-EA65-4669-89B4-2633EBE5143D" + }, { "defKey": "revision", "defName": "乐观锁", @@ -1590,7 +1608,24 @@ "indexes": [], "defName": "设备基础属性表", "notes": {}, - "correlations": [] + "correlations": [ + { + "myField": "in2", + "refEntity": "3B7828B3-38C2-4A5B-9B5A-84E81DAB3A03", + "refField": "out2", + "myRows": "1", + "refRows": "n", + "innerType": "" + }, + { + "myField": "out2", + "refEntity": "A1C3D378-5246-4F80-9E47-ADF91DFB7EBF", + "refField": "in2", + "myRows": "1", + "refRows": "n", + "innerType": "" + } + ] }, { "id": "3B7828B3-38C2-4A5B-9B5A-84E81DAB3A03", @@ -2312,7 +2347,16 @@ "defName": "物模型_属性定义", "indexes": [], "notes": {}, - "correlations": [] + "correlations": [ + { + "myField": "bottom2", + "refEntity": "3B7828B3-38C2-4A5B-9B5A-84E81DAB3A03", + "refField": "top", + "myRows": "1", + "refRows": "n", + "innerType": "" + } + ] }, { "id": "6CCDA6D5-AABD-4DCA-A3C6-868F4F23AFFB", @@ -2654,7 +2698,16 @@ "type": "P", "defName": "物模型_方法定义", "notes": {}, - "correlations": [] + "correlations": [ + { + "myField": "bottom2", + "refEntity": "3B7828B3-38C2-4A5B-9B5A-84E81DAB3A03", + "refField": "top3", + "myRows": "1", + "refRows": "n", + "innerType": "" + } + ] }, { "id": "F146908D-A604-440F-9524-8C28E6A31564", @@ -2960,7 +3013,16 @@ "type": "P", "defName": "系统节点(服务器)", "notes": {}, - "correlations": [], + "correlations": [ + { + "myField": "bottom2", + "refEntity": "A1C3D378-5246-4F80-9E47-ADF91DFB7EBF", + "refField": "top2", + "myRows": "1", + "refRows": "n", + "innerType": "" + } + ], "indexes": [] }, { @@ -3285,7 +3347,16 @@ "type": "P", "defName": "通讯链路", "notes": {}, - "correlations": [] + "correlations": [ + { + "myField": "in2", + "refEntity": "F146908D-A604-440F-9524-8C28E6A31564", + "refField": "out2", + "myRows": "1", + "refRows": "n", + "innerType": "" + } + ] }, { "id": "85CB25D9-D1CC-4C15-A0BE-611DCF579620", @@ -3645,7 +3716,16 @@ "type": "P", "defName": "链路映射表", "notes": {}, - "correlations": [] + "correlations": [ + { + "myField": "top2", + "refEntity": "C1EBE30B-0D85-4C7A-B992-FF70A793ED1D", + "refField": "bottom2", + "myRows": "1", + "refRows": "n", + "innerType": "" + } + ] }, { "id": "61D89BFE-FE50-42F5-BDCF-CC7378570C56", @@ -4041,7 +4121,16 @@ "type": "P", "defName": "职业&账号表", "notes": {}, - "correlations": [] + "correlations": [ + { + "myField": "top2", + "refEntity": "A1C3D378-5246-4F80-9E47-ADF91DFB7EBF", + "refField": "bottom2", + "myRows": "1", + "refRows": "n", + "innerType": "" + } + ] }, { "id": "9C865E82-EAC5-441E-A6E1-49B95EB0EFA9", @@ -4905,7 +4994,24 @@ "type": "P", "defName": "职员与角色关系表", "notes": {}, - "correlations": [] + "correlations": [ + { + "myField": "in2", + "refEntity": "61D89BFE-FE50-42F5-BDCF-CC7378570C56", + "refField": "bottom2", + "myRows": "1", + "refRows": "n", + "innerType": "" + }, + { + "myField": "out2", + "refEntity": "9C865E82-EAC5-441E-A6E1-49B95EB0EFA9", + "refField": "bottom2", + "myRows": "1", + "refRows": "n", + "innerType": "" + } + ] }, { "id": "AE06892E-BC15-4A74-9374-81B89277E005", @@ -5193,7 +5299,24 @@ "type": "P", "defName": "角色与权限关系表", "notes": {}, - "correlations": [] + "correlations": [ + { + "myField": "in2", + "refEntity": "9C865E82-EAC5-441E-A6E1-49B95EB0EFA9", + "refField": "bottom3", + "myRows": "1", + "refRows": "n", + "innerType": "" + }, + { + "myField": "out2", + "refEntity": "F68E1B95-2D0C-4F14-B395-10AB5F8910D7", + "refField": "bottom3", + "myRows": "1", + "refRows": "n", + "innerType": "" + } + ] }, { "id": "172B2FD1-14C3-499B-A87B-758F8BF87C58", @@ -5589,7 +5712,16 @@ "type": "P", "defName": "系统菜单", "notes": {}, - "correlations": [] + "correlations": [ + { + "myField": "in2", + "refEntity": "F68E1B95-2D0C-4F14-B395-10AB5F8910D7", + "refField": "out2", + "myRows": "1", + "refRows": "n", + "innerType": "" + } + ] }, { "id": "C6F277B3-10D0-41E9-B401-C4A5EE8E6457", @@ -6219,7 +6351,16 @@ "type": "P", "defName": "枚举值表", "notes": {}, - "correlations": [] + "correlations": [ + { + "myField": "in2", + "refEntity": "C6F277B3-10D0-41E9-B401-C4A5EE8E6457", + "refField": "out2", + "myRows": "1", + "refRows": "n", + "innerType": "" + } + ] }, { "id": "18957523-E336-46C8-8FF8-07D2915DAD55", @@ -7033,6 +7174,628 @@ "indexes": [], "notes": {}, "correlations": [] + }, + { + "id": "A449B105-0701-4B60-AD35-B9AEC66CBC2A", + "defKey": "sys_theoretical_power_curve", + "headers": [ + { + "refKey": "hideInGraph", + "hideInGraph": true + }, + { + "refKey": "defKey", + "freeze": false, + "hideInGraph": false + }, + { + "refKey": "defName", + "freeze": false, + "hideInGraph": false + }, + { + "refKey": "primaryKey", + "freeze": false, + "hideInGraph": false + }, + { + "refKey": "notNull", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "autoIncrement", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "domain", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "type", + "freeze": false, + "hideInGraph": false + }, + { + "refKey": "len", + "freeze": false, + "hideInGraph": false + }, + { + "refKey": "scale", + "freeze": false, + "hideInGraph": false + }, + { + "refKey": "comment", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "refDict", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "defaultValue", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "isStandard", + "freeze": false, + "hideInGraph": false + }, + { + "refKey": "uiHint", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "extProps", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "attr1", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "attr2", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "attr3", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "attr4", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "attr5", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "attr6", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "attr7", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "attr8", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "attr9", + "freeze": false, + "hideInGraph": true + } + ], + "fields": [ + { + "defKey": "id", + "defName": "主键", + "comment": "", + "type": "BIGINT", + "len": "", + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "domain": "", + "refDict": "", + "uiHint": "", + "id": "F7BA1DA4-AC76-467B-8118-073C34EAE34B", + "baseType": "58BC5143-46F3-4541-B5A3-A4218DD071EC" + }, + { + "defKey": "madeinfactory", + "defName": "制造商", + "comment": "", + "type": "VARCHAR", + "len": 128, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "domain": "", + "id": "6F04A7A1-F0B1-4570-9917-030ABB5F835F" + }, + { + "defKey": "model", + "defName": "型号规格", + "comment": "", + "type": "VARCHAR", + "len": 128, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "domain": "", + "id": "268CC31C-74ED-418B-9CBE-E5F0270C2004" + }, + { + "defKey": "nominal_capacity", + "defName": "额定容量", + "comment": "", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "domain": "FF4459C5-6B45-4DBF-8FC0-E06239BC05B4", + "id": "72F56387-CB01-4752-B4B4-8C8567A55F1B" + }, + { + "defKey": "revision", + "defName": "乐观锁", + "comment": "", + "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "uiHint": "", + "id": "15285A7D-1990-4FE4-BC58-770732FD0B2B", + "baseType": "1D764C4A-6F9F-421E-B11A-6F3E23B51811" + }, + { + "defKey": "created_by", + "defName": "创建人", + "comment": "", + "domain": "16120F75-6AA7-4483-868D-F07F511BB081", + "type": "", + "len": 32, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "uiHint": "", + "id": "D1883B8B-E7B8-49CB-8D85-42FA28BE6EA5", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" + }, + { + "defKey": "created_time", + "defName": "创建时间", + "comment": "", + "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "uiHint": "", + "id": "C54A4933-D37D-42A6-8AA7-1FA683A530D1", + "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098" + }, + { + "defKey": "updated_by", + "defName": "更新人", + "comment": "", + "domain": "16120F75-6AA7-4483-868D-F07F511BB081", + "type": "", + "len": 32, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "uiHint": "", + "id": "BB9DDC7F-F1E9-40DE-98A0-C4FD0BFA86D6", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" + }, + { + "defKey": "updated_time", + "defName": "更新时间", + "comment": "", + "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "uiHint": "", + "id": "FEA37A5D-4581-458A-B2C3-BECA02C21B71", + "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098" + } + ], + "properties": { + "partitioned by": "(date string)", + "row format delimited": "", + "fields terminated by ','": "", + "collection items terminated by '-'": "", + "map keys terminated by ':'": "", + "store as textfile;": "" + }, + "type": "P", + "defName": "风机理论功率曲线表", + "indexes": [], + "notes": {}, + "correlations": [] + }, + { + "id": "68316E6D-319D-4B03-B3FA-08781DF9B69A", + "defKey": "sys_theoretical_power_curve_item", + "headers": [ + { + "refKey": "hideInGraph", + "hideInGraph": true + }, + { + "refKey": "defKey", + "freeze": false, + "hideInGraph": false + }, + { + "refKey": "defName", + "freeze": false, + "hideInGraph": false + }, + { + "refKey": "primaryKey", + "freeze": false, + "hideInGraph": false + }, + { + "refKey": "notNull", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "autoIncrement", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "domain", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "type", + "freeze": false, + "hideInGraph": false + }, + { + "refKey": "len", + "freeze": false, + "hideInGraph": false + }, + { + "refKey": "scale", + "freeze": false, + "hideInGraph": false + }, + { + "refKey": "comment", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "refDict", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "defaultValue", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "isStandard", + "freeze": false, + "hideInGraph": false + }, + { + "refKey": "uiHint", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "extProps", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "attr1", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "attr2", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "attr3", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "attr4", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "attr5", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "attr6", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "attr7", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "attr8", + "freeze": false, + "hideInGraph": true + }, + { + "refKey": "attr9", + "freeze": false, + "hideInGraph": true + } + ], + "fields": [ + { + "defKey": "id", + "defName": "主键", + "comment": "", + "type": "BIGINT", + "len": "", + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "domain": "", + "refDict": "", + "uiHint": "", + "id": "D662A857-3A17-4172-B7DA-BD7261ADB936", + "baseType": "58BC5143-46F3-4541-B5A3-A4218DD071EC" + }, + { + "defKey": "parent", + "defName": "外键", + "comment": "", + "type": "BIGINT", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "baseType": "58BC5143-46F3-4541-B5A3-A4218DD071EC", + "extProps": {}, + "domain": "", + "id": "C0AA74A9-52D3-43C4-9CA3-D8002606FA67" + }, + { + "defKey": "speed", + "defName": "风速", + "comment": "", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "domain": "FF4459C5-6B45-4DBF-8FC0-E06239BC05B4", + "id": "99FF3CDC-4355-41E8-87D8-C98614A12EFE" + }, + { + "defKey": "power", + "defName": "功率", + "comment": "", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "domain": "FF4459C5-6B45-4DBF-8FC0-E06239BC05B4", + "id": "A6AD9B12-0750-415A-9192-27FC04EC76DD" + }, + { + "defKey": "revision", + "defName": "乐观锁", + "comment": "", + "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "uiHint": "", + "id": "41918437-B504-44B0-8749-4643F8C9386A", + "baseType": "1D764C4A-6F9F-421E-B11A-6F3E23B51811" + }, + { + "defKey": "created_by", + "defName": "创建人", + "comment": "", + "domain": "16120F75-6AA7-4483-868D-F07F511BB081", + "type": "", + "len": 32, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "uiHint": "", + "id": "4113D872-C0E5-4FD9-9261-1303B5590624", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" + }, + { + "defKey": "created_time", + "defName": "创建时间", + "comment": "", + "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "uiHint": "", + "id": "5ED08B08-81A4-4D3F-BC2B-65AF776CEFEB", + "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098" + }, + { + "defKey": "updated_by", + "defName": "更新人", + "comment": "", + "domain": "16120F75-6AA7-4483-868D-F07F511BB081", + "type": "", + "len": 32, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "uiHint": "", + "id": "E84BE655-0831-47D5-96A8-8F49536629DE", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" + }, + { + "defKey": "updated_time", + "defName": "更新时间", + "comment": "", + "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "uiHint": "", + "id": "0261C7E8-9512-46F8-B354-7684915C88AB", + "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098" + } + ], + "properties": { + "partitioned by": "(date string)", + "row format delimited": "", + "fields terminated by ','": "", + "collection items terminated by '-'": "", + "map keys terminated by ':'": "", + "store as textfile;": "" + }, + "type": "P", + "defName": "风功率曲线数据表", + "notes": {}, + "correlations": [ + { + "myField": "top2", + "refEntity": "A449B105-0701-4B60-AD35-B9AEC66CBC2A", + "refField": "bottom2", + "myRows": "1", + "refRows": "n", + "innerType": "" + } + ] } ], "views": [], @@ -8667,146 +9430,6 @@ ] } }, - { - "id": "1d3dd585-bacc-4259-9521-98795230b154", - "shape": "table", - "position": { - "x": -1260, - "y": -630 - }, - "count": 0, - "originKey": "3B7828B3-38C2-4A5B-9B5A-84E81DAB3A03", - "fillColor": "#DDE5FF", - "type": "P", - "size": { - "width": 396, - "height": 238 - }, - "autoSize": true, - "ports": { - "groups": { - "in": { - "attrs": { - "circle": { - "r": 4, - "magnet": true, - "stroke": "#1890FF", - "fill": "#FFF", - "strokeWidth": 1, - "style": { - "visibility": "hidden" - } - } - }, - "zIndex": 3, - "position": { - "name": "left" - } - }, - "out": { - "attrs": { - "circle": { - "r": 4, - "magnet": true, - "stroke": "#1890FF", - "fill": "#FFF", - "strokeWidth": 1, - "style": { - "visibility": "hidden" - } - } - }, - "position": { - "name": "right" - } - }, - "top": { - "attrs": { - "circle": { - "r": 4, - "magnet": true, - "stroke": "#1890FF", - "fill": "#FFF", - "strokeWidth": 1, - "style": { - "visibility": "hidden" - } - } - }, - "position": { - "name": "top" - } - }, - "bottom": { - "attrs": { - "circle": { - "r": 4, - "magnet": true, - "stroke": "#1890FF", - "fill": "#FFF", - "strokeWidth": 1, - "style": { - "visibility": "hidden" - } - } - }, - "position": { - "name": "bottom" - } - } - }, - "items": [ - { - "group": "in", - "id": "in" - }, - { - "group": "in", - "id": "in2" - }, - { - "group": "in", - "id": "in3" - }, - { - "group": "out", - "id": "out" - }, - { - "group": "out", - "id": "out2" - }, - { - "group": "out", - "id": "out3" - }, - { - "group": "top", - "id": "top" - }, - { - "group": "top", - "id": "top2" - }, - { - "group": "top", - "id": "top3" - }, - { - "group": "bottom", - "id": "bottom" - }, - { - "group": "bottom", - "id": "bottom2" - }, - { - "group": "bottom", - "id": "bottom3" - } - ] - } - }, { "id": "ee3bb43a-2484-4a03-8cc3-219f30706ca2", "shape": "table", @@ -8946,284 +9569,6 @@ ] } }, - { - "id": "5030703c-3b10-44b9-bc28-1bb8d31c8fac", - "shape": "table", - "position": { - "x": -1238, - "y": -200 - }, - "count": 0, - "originKey": "C6F277B3-10D0-41E9-B401-C4A5EE8E6457", - "type": "P", - "size": { - "width": 352, - "height": 215 - }, - "autoSize": true, - "ports": { - "groups": { - "in": { - "attrs": { - "circle": { - "r": 4, - "magnet": true, - "stroke": "#1890FF", - "fill": "#FFF", - "strokeWidth": 1, - "style": { - "visibility": "hidden" - } - } - }, - "zIndex": 3, - "position": { - "name": "left" - } - }, - "out": { - "attrs": { - "circle": { - "r": 4, - "magnet": true, - "stroke": "#1890FF", - "fill": "#FFF", - "strokeWidth": 1, - "style": { - "visibility": "hidden" - } - } - }, - "position": { - "name": "right" - } - }, - "top": { - "attrs": { - "circle": { - "r": 4, - "magnet": true, - "stroke": "#1890FF", - "fill": "#FFF", - "strokeWidth": 1, - "style": { - "visibility": "hidden" - } - } - }, - "position": { - "name": "top" - } - }, - "bottom": { - "attrs": { - "circle": { - "r": 4, - "magnet": true, - "stroke": "#1890FF", - "fill": "#FFF", - "strokeWidth": 1, - "style": { - "visibility": "hidden" - } - } - }, - "position": { - "name": "bottom" - } - } - }, - "items": [ - { - "group": "in", - "id": "in" - }, - { - "group": "in", - "id": "in2" - }, - { - "group": "in", - "id": "in3" - }, - { - "group": "out", - "id": "out" - }, - { - "group": "out", - "id": "out2" - }, - { - "group": "out", - "id": "out3" - }, - { - "group": "top", - "id": "top" - }, - { - "group": "top", - "id": "top2" - }, - { - "group": "top", - "id": "top3" - }, - { - "group": "bottom", - "id": "bottom" - }, - { - "group": "bottom", - "id": "bottom2" - }, - { - "group": "bottom", - "id": "bottom3" - } - ] - } - }, - { - "id": "a4493502-571d-4863-a467-39b891145b94", - "shape": "table", - "position": { - "x": -620, - "y": -768 - }, - "count": 0, - "originKey": "E88BA7F6-22EB-4733-B322-BDB382D57C62", - "type": "P", - "size": { - "width": 436, - "height": 514 - }, - "autoSize": true, - "ports": { - "groups": { - "in": { - "attrs": { - "circle": { - "r": 4, - "magnet": true, - "stroke": "#1890FF", - "fill": "#FFF", - "strokeWidth": 1, - "style": { - "visibility": "hidden" - } - } - }, - "zIndex": 3, - "position": { - "name": "left" - } - }, - "out": { - "attrs": { - "circle": { - "r": 4, - "magnet": true, - "stroke": "#1890FF", - "fill": "#FFF", - "strokeWidth": 1, - "style": { - "visibility": "hidden" - } - } - }, - "position": { - "name": "right" - } - }, - "top": { - "attrs": { - "circle": { - "r": 4, - "magnet": true, - "stroke": "#1890FF", - "fill": "#FFF", - "strokeWidth": 1, - "style": { - "visibility": "hidden" - } - } - }, - "position": { - "name": "top" - } - }, - "bottom": { - "attrs": { - "circle": { - "r": 4, - "magnet": true, - "stroke": "#1890FF", - "fill": "#FFF", - "strokeWidth": 1, - "style": { - "visibility": "hidden" - } - } - }, - "position": { - "name": "bottom" - } - } - }, - "items": [ - { - "group": "in", - "id": "in" - }, - { - "group": "in", - "id": "in2" - }, - { - "group": "in", - "id": "in3" - }, - { - "group": "out", - "id": "out" - }, - { - "group": "out", - "id": "out2" - }, - { - "group": "out", - "id": "out3" - }, - { - "group": "top", - "id": "top" - }, - { - "group": "top", - "id": "top2" - }, - { - "group": "top", - "id": "top3" - }, - { - "group": "bottom", - "id": "bottom" - }, - { - "group": "bottom", - "id": "bottom2" - }, - { - "group": "bottom", - "id": "bottom3" - } - ] - } - }, { "id": "1a42f2a5-52d2-4f20-9ea7-6f3bd8f3441e", "shape": "table", @@ -9363,146 +9708,6 @@ ] } }, - { - "id": "289d4d31-5848-4f0f-9f39-62b5be3be9bf", - "shape": "table", - "position": { - "x": -2020, - "y": -590 - }, - "count": 0, - "originKey": "18957523-E336-46C8-8FF8-07D2915DAD55", - "isLock": false, - "type": "P", - "size": { - "width": 346, - "height": 123 - }, - "autoSize": true, - "ports": { - "groups": { - "in": { - "attrs": { - "circle": { - "r": 4, - "magnet": true, - "stroke": "#1890FF", - "fill": "#FFF", - "strokeWidth": 1, - "style": { - "visibility": "hidden" - } - } - }, - "zIndex": 3, - "position": { - "name": "left" - } - }, - "out": { - "attrs": { - "circle": { - "r": 4, - "magnet": true, - "stroke": "#1890FF", - "fill": "#FFF", - "strokeWidth": 1, - "style": { - "visibility": "hidden" - } - } - }, - "position": { - "name": "right" - } - }, - "top": { - "attrs": { - "circle": { - "r": 4, - "magnet": true, - "stroke": "#1890FF", - "fill": "#FFF", - "strokeWidth": 1, - "style": { - "visibility": "hidden" - } - } - }, - "position": { - "name": "top" - } - }, - "bottom": { - "attrs": { - "circle": { - "r": 4, - "magnet": true, - "stroke": "#1890FF", - "fill": "#FFF", - "strokeWidth": 1, - "style": { - "visibility": "hidden" - } - } - }, - "position": { - "name": "bottom" - } - } - }, - "items": [ - { - "group": "in", - "id": "in" - }, - { - "group": "in", - "id": "in2" - }, - { - "group": "in", - "id": "in3" - }, - { - "group": "out", - "id": "out" - }, - { - "group": "out", - "id": "out2" - }, - { - "group": "out", - "id": "out3" - }, - { - "group": "top", - "id": "top" - }, - { - "group": "top", - "id": "top2" - }, - { - "group": "top", - "id": "top3" - }, - { - "group": "bottom", - "id": "bottom" - }, - { - "group": "bottom", - "id": "bottom2" - }, - { - "group": "bottom", - "id": "bottom3" - } - ] - } - }, { "id": "06afc394-00c8-4dad-ab6a-3700d00d2c66", "shape": "erdRelation", @@ -10357,8 +10562,8 @@ "id": "192f839e-8983-466e-9df7-818c17430f45", "shape": "table", "position": { - "x": -754, - "y": -234.5 + "x": -794, + "y": -200 }, "count": 0, "originKey": "693514C4-32C9-4FF9-9842-5E08581C905F", @@ -10492,6 +10697,586 @@ ] } }, + { + "id": "1d3dd585-bacc-4259-9521-98795230b154", + "shape": "table", + "position": { + "x": -1260, + "y": -630 + }, + "count": 0, + "originKey": "3B7828B3-38C2-4A5B-9B5A-84E81DAB3A03", + "fillColor": "#DDE5FF", + "type": "P", + "size": { + "width": 396, + "height": 238 + }, + "autoSize": true, + "ports": { + "groups": { + "in": { + "attrs": { + "circle": { + "r": 4, + "magnet": true, + "stroke": "#1890FF", + "fill": "#FFF", + "strokeWidth": 1, + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "circle": { + "r": 4, + "magnet": true, + "stroke": "#1890FF", + "fill": "#FFF", + "strokeWidth": 1, + "style": { + "visibility": "hidden" + } + } + }, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "circle": { + "r": 4, + "magnet": true, + "stroke": "#1890FF", + "fill": "#FFF", + "strokeWidth": 1, + "style": { + "visibility": "hidden" + } + } + }, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "circle": { + "r": 4, + "magnet": true, + "stroke": "#1890FF", + "fill": "#FFF", + "strokeWidth": 1, + "style": { + "visibility": "hidden" + } + } + }, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + } + ] + } + }, + { + "id": "5030703c-3b10-44b9-bc28-1bb8d31c8fac", + "shape": "table", + "position": { + "x": -1248, + "y": -228.5 + }, + "count": 0, + "originKey": "C6F277B3-10D0-41E9-B401-C4A5EE8E6457", + "type": "P", + "size": { + "width": 352, + "height": 215 + }, + "autoSize": true, + "ports": { + "groups": { + "in": { + "attrs": { + "circle": { + "r": 4, + "magnet": true, + "stroke": "#1890FF", + "fill": "#FFF", + "strokeWidth": 1, + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "circle": { + "r": 4, + "magnet": true, + "stroke": "#1890FF", + "fill": "#FFF", + "strokeWidth": 1, + "style": { + "visibility": "hidden" + } + } + }, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "circle": { + "r": 4, + "magnet": true, + "stroke": "#1890FF", + "fill": "#FFF", + "strokeWidth": 1, + "style": { + "visibility": "hidden" + } + } + }, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "circle": { + "r": 4, + "magnet": true, + "stroke": "#1890FF", + "fill": "#FFF", + "strokeWidth": 1, + "style": { + "visibility": "hidden" + } + } + }, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + } + ] + } + }, + { + "id": "a4493502-571d-4863-a467-39b891145b94", + "shape": "table", + "position": { + "x": -620, + "y": -768 + }, + "count": 0, + "originKey": "E88BA7F6-22EB-4733-B322-BDB382D57C62", + "type": "P", + "size": { + "width": 436, + "height": 537 + }, + "autoSize": true, + "ports": { + "groups": { + "in": { + "attrs": { + "circle": { + "r": 4, + "magnet": true, + "stroke": "#1890FF", + "fill": "#FFF", + "strokeWidth": 1, + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "circle": { + "r": 4, + "magnet": true, + "stroke": "#1890FF", + "fill": "#FFF", + "strokeWidth": 1, + "style": { + "visibility": "hidden" + } + } + }, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "circle": { + "r": 4, + "magnet": true, + "stroke": "#1890FF", + "fill": "#FFF", + "strokeWidth": 1, + "style": { + "visibility": "hidden" + } + } + }, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "circle": { + "r": 4, + "magnet": true, + "stroke": "#1890FF", + "fill": "#FFF", + "strokeWidth": 1, + "style": { + "visibility": "hidden" + } + } + }, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + } + ] + } + }, + { + "id": "2565bee4-6ce3-4e33-8a8b-3fa65e08568c", + "shape": "erdRelation", + "source": { + "cell": "b7cca971-e234-47e8-a756-a7e84e828946", + "port": "top2" + }, + "target": { + "cell": "6e0c29a6-a754-4d5f-b4a1-36efa7809f2c", + "port": "bottom2" + }, + "relation": "1:n", + "fillColor": "#ACDAFC", + "router": { + "name": "manhattan" + }, + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "289d4d31-5848-4f0f-9f39-62b5be3be9bf", + "shape": "table", + "position": { + "x": -2020, + "y": -590 + }, + "count": 0, + "originKey": "18957523-E336-46C8-8FF8-07D2915DAD55", + "isLock": false, + "type": "P", + "size": { + "width": 346, + "height": 123 + }, + "autoSize": true, + "ports": { + "groups": { + "in": { + "attrs": { + "circle": { + "r": 4, + "magnet": true, + "stroke": "#1890FF", + "fill": "#FFF", + "strokeWidth": 1, + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "circle": { + "r": 4, + "magnet": true, + "stroke": "#1890FF", + "fill": "#FFF", + "strokeWidth": 1, + "style": { + "visibility": "hidden" + } + } + }, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "circle": { + "r": 4, + "magnet": true, + "stroke": "#1890FF", + "fill": "#FFF", + "strokeWidth": 1, + "style": { + "visibility": "hidden" + } + } + }, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "circle": { + "r": 4, + "magnet": true, + "stroke": "#1890FF", + "fill": "#FFF", + "strokeWidth": 1, + "style": { + "visibility": "hidden" + } + } + }, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + } + ] + } + }, { "id": "57f1d22e-9b58-4f23-9cee-f9d539065bd3", "shape": "table", @@ -10642,7 +11427,7 @@ "originKey": "91968974-19D5-4C44-B8BD-741703AB01E3", "type": "P", "size": { - "width": 352, + "width": 344, "height": 215 }, "autoSize": true, @@ -10769,6 +11554,284 @@ } ] } + }, + { + "id": "6e0c29a6-a754-4d5f-b4a1-36efa7809f2c", + "shape": "table", + "position": { + "x": -1550, + "y": 119 + }, + "count": 0, + "originKey": "A449B105-0701-4B60-AD35-B9AEC66CBC2A", + "type": "P", + "size": { + "width": 463, + "height": 238 + }, + "autoSize": true, + "ports": { + "groups": { + "in": { + "attrs": { + "circle": { + "r": 4, + "magnet": true, + "stroke": "#1890FF", + "fill": "#FFF", + "strokeWidth": 1, + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "circle": { + "r": 4, + "magnet": true, + "stroke": "#1890FF", + "fill": "#FFF", + "strokeWidth": 1, + "style": { + "visibility": "hidden" + } + } + }, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "circle": { + "r": 4, + "magnet": true, + "stroke": "#1890FF", + "fill": "#FFF", + "strokeWidth": 1, + "style": { + "visibility": "hidden" + } + } + }, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "circle": { + "r": 4, + "magnet": true, + "stroke": "#1890FF", + "fill": "#FFF", + "strokeWidth": 1, + "style": { + "visibility": "hidden" + } + } + }, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + } + ] + } + }, + { + "id": "b7cca971-e234-47e8-a756-a7e84e828946", + "shape": "table", + "position": { + "x": -1557.5, + "y": 476 + }, + "count": 0, + "originKey": "68316E6D-319D-4B03-B3FA-08781DF9B69A", + "type": "P", + "size": { + "width": 478, + "height": 238 + }, + "autoSize": true, + "ports": { + "groups": { + "in": { + "attrs": { + "circle": { + "r": 4, + "magnet": true, + "stroke": "#1890FF", + "fill": "#FFF", + "strokeWidth": 1, + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "circle": { + "r": 4, + "magnet": true, + "stroke": "#1890FF", + "fill": "#FFF", + "strokeWidth": 1, + "style": { + "visibility": "hidden" + } + } + }, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "circle": { + "r": 4, + "magnet": true, + "stroke": "#1890FF", + "fill": "#FFF", + "strokeWidth": 1, + "style": { + "visibility": "hidden" + } + } + }, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "circle": { + "r": 4, + "magnet": true, + "stroke": "#1890FF", + "fill": "#FFF", + "strokeWidth": 1, + "style": { + "visibility": "hidden" + } + } + }, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + } + ] + } } ] }, diff --git a/docs/_sidebar.md b/docs/_sidebar.md index 4e35fc68..2dbc8451 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -8,7 +8,8 @@ - [人工操作接口](api/operation.md) - [页面访问接口](api/pages/) - [告警事件接口](api/event.md) - - [首页](api/pages/home.md) + - [计算模块接口](api/calc.md) + - [首页](api/pages/home.md) - [报表管理](api/pages/report.md) - [数据采集](datacollect/) - [系统部署](deploy/) diff --git a/docs/api/calc.md b/docs/api/calc.md new file mode 100644 index 00000000..d589f0b0 --- /dev/null +++ b/docs/api/calc.md @@ -0,0 +1,172 @@ +# 计算模块 + +# API接口一览表 + +| 接口分类 | 接口描述 | API接口 | 权限 | +|-------|-----------------|----------------------------------| ---------------------------- | +| 1.计算模块 | 1.1.1获取所有计算模块列表 | /api/calc/module/list | SYS_AUTHORITY_ID_ADMIN | +| | 1.1.2注册或者更新计算模块 | /api/calc/module/register | SYS_AUTHORITY_ID_ADMIN | +| | 1.1.3卸载计算模块 | /api/calc/module/remove | SYS_AUTHORITY_ID_ADMIN | +| | 1.1.4激活计算模块 | /api/node/module/active | | +| | 1.1.5禁用计算模块 | /api/calc/module/deactive | | +| | 1.1.5获取计算模块脚本 | /api/calc/module/script | | + + +## 1.1 计算模块相关接口 + +### 1.1.1 获取所有计算模块列表 + +POST 请求接口 + +> /api/calc/module/list + +请求参数 + +无 + +返回报文 + +```json +{ + "code": 200, + "success": true, + "data": [ + { + "name": "WindFarmStatistics", + "localName": "风场计实时统计量", + "version": "1.0.1", + "description": "计算风场的实时统计量,包括:全场总有功功率、全场总无功功率、全场平均风速、并网机组台数、故障机组台数、待机机组台、断连机组台数。", + "disabled": 0, + "cron": "0 */5 * * ?" + } + ], + "msg": "操作成功" +} +``` +返参描述 + +| 参数名 | 参数类型 | 可选 | 描述 | +| ------------- | -------- | ---- |------| +| name | String | 否 | 计算模块名称 | +| localName | String | 否 | 计算模块中文名 | +| version | String | 否 | 版本号 | +| description | String | 否 | 计算模块备注 | +| disabled | String | 否 | 是否禁用 | +| cron | String | 否 | 计算任务定时表达式 | + + +### 1.1.2 注册或者关联计算模块 + +POST 请求接口, form-data方式 + +> /api/calc/module/register + + +入参描述 + +| 参数名 | 参数类型 | 可选 | 描述 | +| ------------- | -------- | ---- |------| +| file | String | 否 | 计算模块脚本文件 | + + +返回报文 + +```json +{ + "code": 200, + "success": true, + "msg": "操作成功" +} +``` + +### 1.1.3 卸载计算模块 + +POST 请求接口 + +> /api/calc/module/remove + +请求参数 +```json +{ + "moduleName": "WindFarmStatistics" +} +``` +返回报文 + +```json +{ + "code": 200, + "success": true, + "msg": "删除成功" +} +``` + +### 1.1.4 激活计算模块 + +POST 请求接口 + +> /api/node/module/active + +请求参数 +```json +{ + "moduleName": "WindFarmStatistics" +} +``` +返回报文 + +```json +{ + "code": 200, + "success": true, + "msg": "激活成功" +} +``` + +### 1.1.5 禁用计算模块 +POST 请求接口 + +> /api/node/module/deactive + +请求参数 +```json +{ + "moduleName": "WindFarmStatistics" +} +``` +返回报文 + +```json +{ + "code": 200, + "success": true, + "msg": "禁用成功" +} + + +### 1.1.6 获取指定计算模块脚本内容 +POST 请求接口 + +> /api/node/module/script + +请求参数 +```json +{ + "moduleName": "WindFarmStatistics" +} +``` +返回报文 + +```json +{ + "code": 200, + "success": true, + "data": "IyMgTmFtZTogV2luZEZhcm1TdGF0aXN0aWNzDQojIyBMb2NhbE5hbWU6IOmjjuWcuuiuoeWunuaXtue7n+iuoemHjw0KIyMgVmVyc2lvbjoxLjAuMQ0KIyMgQ3JvbjowICovNSAqICogPw0KIyMgRGVzY3JpcHRpb246IOiuoeeul+mjjuWcuueahOWunuaXtue7n+iuoemHj++8jOWMheaLrO+8muWFqOWcuuaAu+acieWKn+WKn+eOh+OAgeWFqOWcuuaAu+aXoOWKn+WKn+eOh+OAgeWFqOWcuuW5s+Wdh+mjjumAn+OAgeW5tue9keacuue7hOWPsOaVsOOAgeaVhemanOacuue7hOWPsOaVsOOAgeW+heacuuacuue7hOWPsOOAgeaWrei/nuacuue7hOWPsOaVsOOAgg0KDQojIyDmraTohJrmnKzorqHnrpfpo47lnLrnmoTkuIDkupvnu5/orqHmlbDmja46DQojIyDohJrmnKznmoTliY3kupTooYzms6jph4rkuLrohJrmnKzlpLTljLrln5/vvIzloavlhpnohJrmnKzln7rnoYDkv6Hmga8uDQoNCiMjIOiOt+WPlumjjuWcuuS/oeaBr+WIl+ihqA0KbGV0IEdFTlMgPWZpbHRlciggR19ERVZJQ0VTLCBsYW1iZGEoZGV2KS0+IGRldi5vYmplY3RUeXBlID09IDEwMDAyIGVuZCk7DQoNCiMjIOWumuS5iemcgOimgeiOt+WPlueahOWunuaXtuaVsOaNrg0KbGV0IGF0dHJzID0gc2VxLmxpc3QoImlHZW5Qb3dlcjFzIiwiaVJlYWN0aXZlUG93ZXIiLCJpV2luZFNwZWVkMXMiLCJpVHVyYmluZU9wZXJhdGlvbk1vZGUiKTsNCg0KIyMg57uT5p6c5Y+Y6YePIC0g5YWo5Zy65oC75pyJ5Yqf5Yqf546HDQpsZXQgV2luZEZhcm1BY3RpdmVQb3dlciA9IDAuMDsNCiMjIOe7k+aenOWPmOmHjyAtIOWFqOWcuuaAu+aXoOWKn+WKn+eOhw0KbGV0IFdpbmRGYXJtUmVhY3RpdmVQb3dlciA9IDAuMDsNCiMjIOe7k+aenOWPmOmHjyAtIOWFqOWcuuW5s+Wdh+mjjumAnw0KbGV0IFdpbmRGYXJtQXZnV2luZFNwZWVkID0gbmlsOw0KIyMg57uT5p6c5Y+Y6YePIC0g5bm2572R5py657uE5Y+w5pWwDQpsZXQgVHVyYmluZUNvdW50UG93ZXJQcm9kID0gMDsNCiMjIOe7k+aenOWPmOmHjyAtIOaVhemanOacuue7hOWPsOaVsA0KVHVyYmluZUNvdW50RmF1bHRlZCA9IDA7DQojIyDnu5Pmnpzlj5jph48gLSDlvoXmnLrmnLrnu4Tlj7DmlbANClR1cmJpbmVDb3VudElkbGUgPSAwOw0KIyMg57uT5p6c5Y+Y6YePIC0g5pat6L+e5py657uE5Y+w5pWwDQpUdXJiaW5lQ291bnREaXNjb25uZWN0ZWQgPSAwOw0KDQojIyDkuLTml7blj5jph48NCg0KbGV0IHRfd2luZEZhcm1Ub3RhbCA9IDAuMDsNCmxldCB0X3dpbmRGYXJtQXZhaWxhYmxlQ291bnQgPSAwOw0KDQpmb3IgZyBpbiBHRU5TIHsNCiAgICAjIyDojrflj5bpo47mnLrlrp7ml7bmlbDmja4NCglsZXQgdiA9IHJ0KGcuZGV2aWNlQ29kZSwgYXR0cnMpOw0KDQogICAgIyMg57Sv5Yqg6K6h566XIOWFqOWcuuaAu+acieWKn+WKn+eOhw0KCWlmICh2LmlHZW5Qb3dlcjFzICE9IG5pbCkgew0KCQlXaW5kRmFybUFjdGl2ZVBvd2VyID0gV2luZEZhcm1BY3RpdmVQb3dlciArIHYuaUdlblBvd2VyMXM7DQoJfQ0KDQogICAgIyMg57Sv5Yqg6K6h566XIOWcuuaAu+aXoOWKn+WKn+eOhw0KCWlmICh2LmlSZWFjdGl2ZVBvd2VyICE9IG5pbCkgew0KCQlXaW5kRmFybVJlYWN0aXZlUG93ZXIgPSBXaW5kRmFybVJlYWN0aXZlUG93ZXIgKyB2LmlSZWFjdGl2ZVBvd2VyOw0KCX0NCg0KICAgICMjIOe0r+WKoOacieaViOeahOW5s+Wdh+mjjumAn+WPiumjjuWcuuS4quaVsA0KCWlmICh2LmlXaW5kU3BlZWQxcyAhPSBuaWwpIHsNCiAgICAgICAgdF93aW5kRmFybVRvdGFsID0gdF93aW5kRmFybVRvdGFsICsgdi5pV2luZFNwZWVkMXM7DQogICAgICAgIHRfd2luZEZhcm1BdmFpbGFibGVDb3VudCA9IHRfd2luZEZhcm1BdmFpbGFibGVDb3VudCArIDE7DQoJfQ0KDQoJIyMg6K6h566X5bm2572R5Y+w5pWw77yM5b6F5py65py657uE5Y+w5pWw77yM5pat6L+e5py657uE5Y+w5pWwDQoJaWYgKCB2LmlUdXJiaW5lT3BlcmF0aW9uTW9kZSA9PSAyMCB8fCB2LmlUdXJiaW5lT3BlcmF0aW9uTW9kZSA9PSAyMSApIHsNCgkJVHVyYmluZUNvdW50UG93ZXJQcm9kID0gVHVyYmluZUNvdW50UG93ZXJQcm9kICsgMTsNCgl9DQoJZWxzaWYgKCB2LmlUdXJiaW5lT3BlcmF0aW9uTW9kZSA9PSAxMSApIHsNCgkJVHVyYmluZUNvdW50SWRsZSA9IFR1cmJpbmVDb3VudElkbGUgKyAxOw0KCX0NCgllbHNpZiAoIHYuaVR1cmJpbmVPcGVyYXRpb25Nb2RlID09IDAgKSB7DQoJCVR1cmJpbmVDb3VudERpc2Nvbm5lY3RlZCA9IFR1cmJpbmVDb3VudERpc2Nvbm5lY3RlZCArIDE7DQoJfQ0KfQ0KDQojIyDorqHnrpcg5YWo5Zy65bmz5Z2H6aOO6YCfDQppZiAoIHRfd2luZEZhcm1BdmFpbGFibGVDb3VudCAhPSAwICl7DQogICAgV2luZEZhcm1BdmdXaW5kU3BlZWQgPSB0X3dpbmRGYXJtVG90YWwgLyB0X3dpbmRGYXJtQXZhaWxhYmxlQ291bnQ7DQp9DQojIyDkv53lrZjpo47lnLrnmoTorqHnrpfph48NCmxldCBjdXJyVGltZSA9IHN5c2RhdGUoKTsNCnNhdmUoIkEwIiwgY3VyclRpbWUsICJXaW5kRmFybUFjdGl2ZVBvd2VyIiwgV2luZEZhcm1BY3RpdmVQb3dlciwNCgkJCWN1cnJUaW1lLCAiV2luZEZhcm1SZWFjdGl2ZVBvd2VyIiwgV2luZEZhcm1SZWFjdGl2ZVBvd2VyLA0KCQkJY3VyclRpbWUsICJXaW5kRmFybUF2Z1dpbmRTcGVlZCIsIFdpbmRGYXJtQXZnV2luZFNwZWVkLA0KCQkJY3VyclRpbWUsICJUdXJiaW5lQ291bnRQb3dlclByb2QiLCBUdXJiaW5lQ291bnRQb3dlclByb2QsDQoJCQljdXJyVGltZSwgIlR1cmJpbmVDb3VudEZhdWx0ZWQiLCBUdXJiaW5lQ291bnRGYXVsdGVkLA0KCQkJY3VyclRpbWUsICJUdXJiaW5lQ291bnRJZGxlIiwgVHVyYmluZUNvdW50SWRsZSwNCgkJCWN1cnJUaW1lLCAiVHVyYmluZUNvdW50RGlzY29ubmVjdGVkIiwgVHVyYmluZUNvdW50RGlzY29ubmVjdGVkKTsNCg0K", + "msg": "操作成功" +} +``` +返参描述 + +| 参数名 | 参数类型 | 可选 | 描述 | +| ------------- | -------- | ---- |------| +| data | String | 否 | 脚本内容(Base64编码) | diff --git a/ui/dasadmin/src/views/backend/dashboard.vue b/ui/dasadmin/src/views/backend/dashboard.vue index ee3ab400..6b0d5919 100644 --- a/ui/dasadmin/src/views/backend/dashboard.vue +++ b/ui/dasadmin/src/views/backend/dashboard.vue @@ -1182,12 +1182,12 @@ onUnmounted(() => {