From 93ab91c1a8d28391a5021fd843186ef2c890f5ed Mon Sep 17 00:00:00 2001 From: yuwanchiren <863666755@qq.com> Date: Wed, 16 Oct 2024 15:04:53 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=BC=96=E7=A0=81?= =?UTF-8?q?=E4=B8=8D=E8=83=BD=E9=87=8D=E5=A4=8D=20=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../equipment/equipmentManagement/index.vue | 58 ++++++++++++------- 1 file changed, 36 insertions(+), 22 deletions(-) diff --git a/ui/dasadmin/src/views/backend/equipment/equipmentManagement/index.vue b/ui/dasadmin/src/views/backend/equipment/equipmentManagement/index.vue index cadbbba9..4f4d4bc4 100644 --- a/ui/dasadmin/src/views/backend/equipment/equipmentManagement/index.vue +++ b/ui/dasadmin/src/views/backend/equipment/equipmentManagement/index.vue @@ -793,20 +793,27 @@ const saveData = () => { editDeviceData.objectType = ele.equipmentTypeId } }) - equipUpdate(editDeviceData).then((res: any) => { - if (res.code == 200) { - ElMessage({ - message: res.msg, - type: 'success', - }) - deviceQuery(formQuery) - } else { + equipUpdate(editDeviceData) + .then((res: any) => { + if (res.code == 200) { + ElMessage({ + message: res.msg, + type: 'success', + }) + deviceQuery(formQuery) + } else { + ElMessage.error({ + message: res.msg, + type: 'error', + }) + } + }) + .catch((err) => { ElMessage.error({ - message: res.msg, + message: err.response?.data?.msg ?? '编辑失败!', type: 'error', }) - } - }) + }) } else { return false } @@ -870,20 +877,27 @@ const saveAddData = () => { editAddDeviceData.objectType = ele.equipmentTypeId } }) - equipAdd(editAddDeviceData).then((res) => { - if (res.code == 200) { - ElMessage({ - message: res.msg, - type: 'success', - }) - deviceQuery(formQuery) - } else { + equipAdd(editAddDeviceData) + .then((res) => { + if (res.code == 200) { + ElMessage({ + message: res.msg, + type: 'success', + }) + deviceQuery(formQuery) + } else { + ElMessage.error({ + message: res.msg, + type: 'error', + }) + } + }) + .catch((err) => { ElMessage.error({ - message: res.msg, + message: err.response?.data?.msg ?? '新增失败!', type: 'error', }) - } - }) + }) editAddDeviceDialog.value = false } }) From 1087f539af4c79645c338c60dc0c1902274fcebb Mon Sep 17 00:00:00 2001 From: chenhaojie Date: Wed, 16 Oct 2024 15:05:52 +0800 Subject: [PATCH 2/4] =?UTF-8?q?[301]=20=E8=AE=BE=E5=A4=87=E7=BC=96?= =?UTF-8?q?=E7=A0=81=20=E6=B2=A1=E5=81=9A=E5=94=AF=E4=B8=80=E6=80=A7?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=EF=BC=8C=E5=8F=AF=E4=BB=A5=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E7=9B=B8=E5=90=8C=E7=BC=96=E7=A0=81=E7=9A=84=E8=AE=BE=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../equipment/service/impl/SysEquipmentServiceImpl.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/das/src/main/java/com/das/modules/equipment/service/impl/SysEquipmentServiceImpl.java b/das/src/main/java/com/das/modules/equipment/service/impl/SysEquipmentServiceImpl.java index 947ef728..4badc526 100644 --- a/das/src/main/java/com/das/modules/equipment/service/impl/SysEquipmentServiceImpl.java +++ b/das/src/main/java/com/das/modules/equipment/service/impl/SysEquipmentServiceImpl.java @@ -65,7 +65,7 @@ public class SysEquipmentServiceImpl implements SysEquipmentService { SysUserVo sysUserVo = (SysUserVo) StpUtil.getTokenSession().get(SessionUtil.SESSION_USER_KEY); // 判断设备编码是否存在 if (sysEquipmentMapper.queryEquipmentByCode(sysEquipment.getCode()) > 0) { - throw new ServiceException("设备编码已存在"); + throw new RuntimeException("设备编码已存在"); } sysEquipment.setCreatedTime(new Date()); sysEquipment.setUpdatedTime(new Date()); @@ -83,6 +83,10 @@ public class SysEquipmentServiceImpl implements SysEquipmentService { SysEquipment sysEquipment = new SysEquipment(); BeanCopyUtils.copy(sysEquipmentDto, sysEquipment); SysUserVo sysUserVo = (SysUserVo) StpUtil.getTokenSession().get(SessionUtil.SESSION_USER_KEY); + // 判断设备编码是否存在 + if (sysEquipmentMapper.queryEquipmentByCode(sysEquipment.getCode()) > 0) { + throw new RuntimeException("设备编码已存在"); + } sysEquipment.setUpdatedTime(new Date()); sysEquipment.setUpdatedBy(sysUserVo.getAccount()); sysEquipmentMapper.updateById(sysEquipment); @@ -95,7 +99,7 @@ public class SysEquipmentServiceImpl implements SysEquipmentService { public void deleteSysEquipment(SysEquipmentDto sysEquipmentDto) { // 设备下面有子设备则不能删除 if (sysEquipmentMapper.queryChildEquipmentCount(sysEquipmentDto.getId()) > 0) { - throw new ServiceException("该设备下有子设备,不能删除"); + throw new RuntimeException("该设备下有子设备,不能删除"); } sysEquipmentMapper.deleteById(sysEquipmentDto.getId()); } From 78f5af7e3e9c8cd97f804b652823cb0917ebb3d1 Mon Sep 17 00:00:00 2001 From: yu Date: Wed, 16 Oct 2024 16:58:31 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=A2=9D=E5=BA=A6=E5=AE=B9=E9=87=8F=E5=AD=97?= =?UTF-8?q?=E6=AE=B5;=20=E9=A6=96=E9=A1=B5API=E6=96=87=E6=A1=A3;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../equipment/domain/dto/SysEquipmentDto.java | 4 + .../equipment/domain/vo/SysEquipmentVo.java | 5 + .../equipment/entity/SysEquipment.java | 6 + .../resources/mapper/SysEquipmentMapper.xml | 1 + docs/api/home.md | 430 ++++++++++++++++++ 5 files changed, 446 insertions(+) create mode 100644 docs/api/home.md diff --git a/das/src/main/java/com/das/modules/equipment/domain/dto/SysEquipmentDto.java b/das/src/main/java/com/das/modules/equipment/domain/dto/SysEquipmentDto.java index 486a0a65..ed329244 100644 --- a/das/src/main/java/com/das/modules/equipment/domain/dto/SysEquipmentDto.java +++ b/das/src/main/java/com/das/modules/equipment/domain/dto/SysEquipmentDto.java @@ -106,5 +106,9 @@ public class SysEquipmentDto { */ private Integer standard; + /** + * 额定容量 + */ + private Double nominalCapacity; } diff --git a/das/src/main/java/com/das/modules/equipment/domain/vo/SysEquipmentVo.java b/das/src/main/java/com/das/modules/equipment/domain/vo/SysEquipmentVo.java index cd63e6b6..cc15b392 100644 --- a/das/src/main/java/com/das/modules/equipment/domain/vo/SysEquipmentVo.java +++ b/das/src/main/java/com/das/modules/equipment/domain/vo/SysEquipmentVo.java @@ -113,4 +113,9 @@ public class SysEquipmentVo{ */ private Integer standard; + /** + * 额定容量 + */ + private Double nominalCapacity; + } diff --git a/das/src/main/java/com/das/modules/equipment/entity/SysEquipment.java b/das/src/main/java/com/das/modules/equipment/entity/SysEquipment.java index b33d349d..53f888db 100644 --- a/das/src/main/java/com/das/modules/equipment/entity/SysEquipment.java +++ b/das/src/main/java/com/das/modules/equipment/entity/SysEquipment.java @@ -131,4 +131,10 @@ public class SysEquipment extends BaseEntity { */ @TableField(value = "standard") private Integer standard; + + /** + * 额定容量 + */ + @TableField(value = "nominal_capacity") + private Double nominalCapacity; } diff --git a/das/src/main/resources/mapper/SysEquipmentMapper.xml b/das/src/main/resources/mapper/SysEquipmentMapper.xml index a5463f94..819d9f30 100644 --- a/das/src/main/resources/mapper/SysEquipmentMapper.xml +++ b/das/src/main/resources/mapper/SysEquipmentMapper.xml @@ -19,6 +19,7 @@ + diff --git a/docs/api/home.md b/docs/api/home.md new file mode 100644 index 00000000..224790d8 --- /dev/null +++ b/docs/api/home.md @@ -0,0 +1,430 @@ +# 首页 + +## API接口一览表 + +| 接口分类 | 接口描述 | API接口 | 权限 | +|--------|-------------|------------------------------| ---------------------------- | +| 2.1 首页 | 2.1.1风场概况 | /api/home/windFarmOverview | | +| | 2.1.2今日运行状态 | /api/home/currentDayStatus | | +| | 2.1.3功率趋势 | /api/home/powerTrends | | +| | 2.1.4风机矩阵 | /api/home/windTurbineMatrix | | +| | 2.1.5发电量概况 | /api/home/generationOverview | | +| | 2.1.6发电量趋势 | /api/home/generationTrend | | +| | 2.1.7实时告警 | /api/home/realTimeAlert | | +| | 2.1.8实时告警确认 | /api/home/realTimeAlertConfirm | | + + +### 2.1 首页相关接口 + +#### 2.1.1 风场概况 + +POST 请求接口 + +> /api/home/windFarmOverview + +请求参数 + + +```json +{ + "requestTime":"2024-10-16" +} +``` +入参描述 + +| 参数名 | 参数类型 | 可选 | 描述 | +| ------------ | -------- | ---- |------| +| requestTime | String | yes | 请求时间 | + +注:请求时间默认为:昨日时间 + +返回报文 + +```json +{ + "code": 200, + "msg": "操作成功", + "success": true, + "data": + { + "power": 56.2, + "windSpeed": 45.3, + "dailyUsageHours": 20, + "monthlyUsageHours": 78 + } +} +``` +返参描述 + +| 参数名 | 参数类型 | 可选 | 描述 | +| ------------- |---------| ---- |--------| +| power | Double | 否 | 功率 | +| windSpeed | Double | 否 | 风速 | +| dailyUsageHours | Integer | 否 | 日利用小时数 | +| monthlyUsageHours | Integer | 否 | 月利用小时数 | + + + + +#### 2.1.2 今日运行状态 + +POST 请求接口 + +> /api/home/currentDayStatus + +请求参数 + + +```json +{ + "requestTime":"2024-10-16" +} +``` +入参描述 + +| 参数名 | 参数类型 | 可选 | 描述 | +| ------------ | -------- | ---- |------| +| requestTime | String | yes | 请求时间 | + + +返回报文 + +```json +{ + "code": 200, + "msg": "操作成功", + "success": true, + "data": + { + "windTurbineNum": 40, + "installedCapacity": 45.32, + "runCapacity": 20.2, + "runNum": 78, + "standbyCapacity": 63.2, + "standbyNum": 35, + "faultCapacity": 56.4, + "faultNum": 53, + "offlineCapacity": 16.4, + "offlineNum": 20 + } +} +``` +返参描述 + +| 参数名 | 参数类型 | 可选 | 描述 | +| ------------- |---------| ---- |------| +| windTurbineNum | Integer | 否 | 风机台数 | +| installedCapacity | Double | 否 | 装机容量 | +| runCapacity | Double | 否 | 运行容量 | +| runNum | Integer | 否 | 运行台数 | +| standbyCapacity | Double | 否 | 待机容量 | +| standbyNum | Integer | 否 | 待机台数 | +| faultCapacity | Double | 否 | 故障容量 | +| faultNum | Integer | 否 | 故障台数 | +| offlineCapacity | Double | 否 | 离线容量 | +| offlineNum | Integer | 否 | 离线台数 | + + +#### 2.1.3 功率趋势 + +POST 请求接口 + +> /api/home/powerTrends + +请求参数 + + +```json +{ + "requestTime":"2024-10-16" +} +``` + +入参描述 + +| 参数名 | 参数类型 | 可选 | 描述 | +| ------------ | -------- | ---- |------| +| requestTime | String | yes | 请求时间 | + +注:请求时间默认为:昨日时间 + +返回报文 + +```json +{ + "code": 200, + "msg": "操作成功", + "success": true, + "data": [ + { + "power": 12.6, + "windSpeed": 56.3, + "windTurbine": "GDWT00001" + }, + { + "power": 10.6, + "windSpeed": 16.3, + "windTurbine": "GDWT00002" + } + ] +} +``` + +返参描述 + +| 参数名 | 参数类型 | 可选 | 描述 | +|-------------|--------| ---- |------| +| power | Double | 否 | 功率 | +| windSpeed | Double | 否 | 风速 | +| windTurbine | String | 否 | 风机编码 | + +#### 2.1.4 风机矩阵 + +POST 请求接口 + +> /api/home/windTurbineMatrix + +请求参数 + + +```json +{ + "requestTime":"2024-10-16" +} +``` + +入参描述 + +| 参数名 | 参数类型 | 可选 | 描述 | +| ------------ | -------- | ---- |------| +| requestTime | String | yes | 请求时间 | + +注:请求时间默认为:昨日时间 + +返回报文 + +```json +{ + "code": 200, + "msg": "操作成功", + "success": true, + "data": [ + { + "power": 12.6, + "windSpeed": 56.3, + "dayGeneration": 56.2, + "windStatus": "并网", + "standard": 1, + "windTurbine": "GDWT00001" + }, + { + "power": 12.6, + "windSpeed": 56.3, + "dayGeneration": 56.2, + "windStatus": "待机", + "standard": 1, + "windTurbine": "GDWT00002" + } + ] +} +``` + +返参描述 + +| 参数名 | 参数类型 | 可选 | 描述 | +|-------------|---------| ---- |---------| +| power | Double | 否 | 功率 | +| windSpeed | Double | 否 | 风速 | +| dayGeneration | Double | 否 | 日发电量 | +| windStatus | String | 否 | 风机状态 | +| standard | Integer | 否 | 是否为标杆机组 | +| windTurbine | String | 否 | 风机编码 | + +#### 2.1.5 发电量概况 + +POST 请求接口 + +> /api/home/generationOverview + +请求参数 + + +```json +{ + "requestTime":"2024-10-16" +} +``` + +入参描述 + +| 参数名 | 参数类型 | 可选 | 描述 | +| ------------ | -------- | ---- |------| +| requestTime | String | yes | 请求时间 | + +注:请求时间默认为:昨日时间 + +返回报文 + +```json +{ + "code": 200, + "msg": "操作成功", + "success": true, + "data": + { + "dayGeneration": 56.2, + "monthGeneration": 60.2, + "yearGeneration": 200.6, + "totalGeneration": 500.6 + } + +} +``` + +返参描述 + +| 参数名 | 参数类型 | 可选 | 描述 | +|-------------|---------| ---- |------| +| dayGeneration | Double | 否 | 日发电量 | +| monthGeneration | Double | 否 | 月发电量 | +| yearGeneration | Double | 否 | 年发电量 | +| totalGeneration | Double | 否 | 总发电量 | + +#### 2.1.6 发电量趋势 + +POST 请求接口 + +> /api/home/generationTrend + +请求参数 + + +```json +{ + "timeType":"日" +} +``` + +入参描述 + +| 参数名 | 参数类型 | 可选 | 描述 | +| ------------ | -------- | ---- |------| +| timeType | String | yes | 时间类型 | + +注:时间类型:日/月 + +返回报文 + +```json +{ + "code": 200, + "msg": "操作成功", + "success": true, + "data": [ + { + "currentPeriod": 56.3, + "samePeriod": 63.5, + "generationTime": "2024-10-01" + }, + { + "currentPeriod": 66.3, + "samePeriod": 73.5, + "generationTime": "2024-10-02" + } + ] + +} +``` + +返参描述 + +| 参数名 | 参数类型 | 可选 | 描述 | +|-------------|---------| ---- |-------| +| currentPeriod | Double | 否 | 本期 | +| samePeriod | Double | 否 | 同期 | +| generationTime | Double | 否 | 发电量时间 | + +#### 2.1.7 实时告警 + +POST 请求接口 + +> /api/home/realTimeAlert + +请求参数 + +无 + + + +返回报文 + +```json +{ + "code": 200, + "msg": "操作成功", + "success": true, + "data": [ + { + "alertTime": "2024-10-16 12:16:42", + "windTurbine": "SC-01", + "alertContent": "故障" + }, + { + "alertTime": "2024-10-16 12:16:42", + "windTurbine": "SC-01", + "alertContent": "待机" + } + ] + +} +``` +返参描述 + +| 参数名 | 参数类型 | 可选 | 描述 | +|-------------|--------| ---- |------| +| alertTime | String | 否 | 告警时间 | +| windTurbine | String | 否 | 风机编码 | +| alertContent | String | 否 | 告警内容 | + +#### 2.1.8 实时告警-确认 + +POST 请求接口 + +> /api/home/realTimeAlertConfirm + +请求参数 + + +```json +{ + "windTurbine":"SC-01" +} +``` + +入参描述 + +| 参数名 | 参数类型 | 可选 | 描述 | +| ------------ | -------- | ---- |------| +| windTurbine | String | yes | 风机编码 | + + + +返回报文 + +```json +{ + "code": 200, + "msg": "操作成功", + "success": true, + "data": [ + + ] + +} +``` + +返参描述 + +| 参数名 | 参数类型 | 可选 | 描述 | +|-------------|---------| ---- |-------| + From 49447c0191515231a8f7c8dc037aa6765b4300b5 Mon Sep 17 00:00:00 2001 From: houwei Date: Wed, 16 Oct 2024 17:20:36 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E7=89=A9=E6=A8=A1=E5=9E=8B=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E5=A2=9E=E5=8A=A0=20=E5=AD=90=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- database/风场采集.pdma.json | 1831 ++++++++++++++++++----------------- 1 file changed, 950 insertions(+), 881 deletions(-) diff --git a/database/风场采集.pdma.json b/database/风场采集.pdma.json index ffaa3833..12007701 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-6-14 14:47:53", + "updatedTime": "2024-10-16 12:46:26", "dbConns": [], "profile": { "default": { @@ -1397,6 +1397,24 @@ "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", "id": "594FFDDE-1103-459A-A385-AE9CD70C12E7" }, + { + "defKey": "belong_line", + "defName": "所属线路", + "comment": "", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "id": "42219230-305A-4E79-BD0D-386E5B961524" + }, { "defKey": "org_id", "defName": "设备所属机构", @@ -1451,6 +1469,24 @@ "domain": "", "id": "076FB324-70E3-4FBC-84E2-1CD0EE7061CB" }, + { + "defKey": "standard", + "defName": "是否标杆设备", + "comment": "", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "baseType": "1D764C4A-6F9F-421E-B11A-6F3E23B51811", + "extProps": {}, + "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E", + "id": "E99B79B9-A2E0-4187-93F0-5AC28F95F18F" + }, { "defKey": "revision", "defName": "乐观锁", @@ -2082,6 +2118,24 @@ "domain": "", "id": "EC128D1C-2BF4-404D-BEF1-5AB8925F8B8D" }, + { + "defKey": "subsystem", + "defName": "子系统", + "comment": "", + "type": "VARCHAR", + "len": 64, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "domain": "", + "id": "DF43F6D4-E604-424A-9360-F31C9429ABB8" + }, { "defKey": "attribute_type", "defName": "量测类型", @@ -5342,7 +5396,7 @@ }, { "defKey": "menu_name", - "defName": "菜单名称", + "defName": "菜单英文名称", "comment": "", "type": "VARCHAR", "len": 32, @@ -5358,6 +5412,24 @@ "domain": "", "id": "6F99CCD2-3E2E-4302-88FF-66ACB1E0AEAD" }, + { + "defKey": "menu_desc", + "defName": "菜单中文描述", + "comment": "", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "id": "B3381CED-87BC-4B97-8751-D04219307C1B" + }, { "defKey": "menu_order", "defName": "菜单排列顺序", @@ -6878,145 +6950,6 @@ "relationType": "entity", "canvasData": { "cells": [ - { - "id": "1306f2f8-afb2-44c7-99bd-6a4b4e639626", - "shape": "table", - "position": { - "x": 1490, - "y": -297.5 - }, - "count": 0, - "originKey": "172B2FD1-14C3-499B-A87B-758F8BF87C58", - "type": "P", - "size": { - "width": 394, - "height": 330 - }, - "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", @@ -7435,18 +7368,158 @@ } }, { - "id": "83041117-0d9d-4b01-8b42-d19a5a5417ab", + "id": "8be908ab-85b6-4230-b708-1ddf2da33830", "shape": "table", "position": { - "x": 638, - "y": -706 + "x": 290, + "y": 150 }, "count": 0, - "originKey": "85CB25D9-D1CC-4C15-A0BE-611DCF579620", + "originKey": "80203FEF-6CCA-4E85-8EE8-EB117AAEE55C", "type": "P", "size": { - "width": 423, - "height": 307 + "width": 348, + "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": "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": { @@ -7713,18 +7786,18 @@ } }, { - "id": "a4493502-571d-4863-a467-39b891145b94", + "id": "83041117-0d9d-4b01-8b42-d19a5a5417ab", "shape": "table", "position": { - "x": -619, - "y": -745 + "x": 638, + "y": -706 }, "count": 0, - "originKey": "E88BA7F6-22EB-4733-B322-BDB382D57C62", + "originKey": "85CB25D9-D1CC-4C15-A0BE-611DCF579620", "type": "P", "size": { - "width": 436, - "height": 468 + "width": 423, + "height": 307 }, "autoSize": true, "ports": { @@ -7852,17 +7925,295 @@ } }, { - "id": "8be908ab-85b6-4230-b708-1ddf2da33830", + "id": "4e9a7a00-d60a-43d2-8600-f83922c37647", "shape": "table", "position": { - "x": 290, + "x": 511, + "y": -240 + }, + "count": 0, + "originKey": "9C865E82-EAC5-441E-A6E1-49B95EB0EFA9", + "type": "P", + "size": { + "width": 344, + "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": "1306f2f8-afb2-44c7-99bd-6a4b4e639626", + "shape": "table", + "position": { + "x": 1490, + "y": -297.5 + }, + "count": 0, + "originKey": "172B2FD1-14C3-499B-A87B-758F8BF87C58", + "type": "P", + "size": { + "width": 394, + "height": 353 + }, + "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": "7252c2d8-e00e-4b57-b42e-3497c5691814", + "shape": "table", + "position": { + "x": 830, "y": 150 }, "count": 0, - "originKey": "80203FEF-6CCA-4E85-8EE8-EB117AAEE55C", + "originKey": "AE06892E-BC15-4A74-9374-81B89277E005", "type": "P", "size": { - "width": 348, + "width": 381, "height": 215 }, "autoSize": true, @@ -7990,6 +8341,423 @@ ] } }, + { + "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": "192f839e-8983-466e-9df7-818c17430f45", + "shape": "table", + "position": { + "x": -754, + "y": -234.5 + }, + "count": 0, + "originKey": "693514C4-32C9-4FF9-9842-5E08581C905F", + "type": "P", + "size": { + "width": 433, + "height": 284 + }, + "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": "06afc394-00c8-4dad-ab6a-3700d00d2c66", "shape": "erdRelation", @@ -8402,6 +9170,25 @@ } } }, + { + "id": "7a19023e-0271-4478-833f-b0a620ce7613", + "shape": "erdRelation", + "source": { + "cell": "192f839e-8983-466e-9df7-818c17430f45", + "port": "in2" + }, + "target": { + "cell": "5030703c-3b10-44b9-bc28-1bb8d31c8fac", + "port": "out2" + }, + "relation": "1:n", + "fillColor": "#ACDAFC", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, { "id": "aa4e8223-979d-4f00-95c0-120a4ec4885a", "shape": "table", @@ -8543,423 +9330,6 @@ ] } }, - { - "id": "7252c2d8-e00e-4b57-b42e-3497c5691814", - "shape": "table", - "position": { - "x": 830, - "y": 150 - }, - "count": 0, - "originKey": "AE06892E-BC15-4A74-9374-81B89277E005", - "type": "P", - "size": { - "width": 381, - "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": "4e9a7a00-d60a-43d2-8600-f83922c37647", - "shape": "table", - "position": { - "x": 511, - "y": -240 - }, - "count": 0, - "originKey": "9C865E82-EAC5-441E-A6E1-49B95EB0EFA9", - "type": "P", - "size": { - "width": 344, - "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": "1254016c-0ee0-4df2-bc66-8d15a5f2d775", - "shape": "table", - "position": { - "x": 39, - "y": -240 - }, - "count": 0, - "originKey": "61D89BFE-FE50-42F5-BDCF-CC7378570C56", - "type": "P", - "size": { - "width": 392, - "height": 353 - }, - "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": "7ac8a5d4-1b88-4286-af3e-bf143e4511ca", "shape": "table", @@ -9100,319 +9470,18 @@ } }, { - "id": "1d3dd585-bacc-4259-9521-98795230b154", + "id": "1254016c-0ee0-4df2-bc66-8d15a5f2d775", "shape": "table", "position": { - "x": -1260, - "y": -630 + "x": 39, + "y": -240 }, "count": 0, - "originKey": "3B7828B3-38C2-4A5B-9B5A-84E81DAB3A03", - "fillColor": "#DDE5FF", + "originKey": "61D89BFE-FE50-42F5-BDCF-CC7378570C56", "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": "7a19023e-0271-4478-833f-b0a620ce7613", - "shape": "erdRelation", - "source": { - "cell": "192f839e-8983-466e-9df7-818c17430f45", - "port": "in2" - }, - "target": { - "cell": "5030703c-3b10-44b9-bc28-1bb8d31c8fac", - "port": "out2" - }, - "relation": "1:n", - "fillColor": "#ACDAFC", - "router": { - "name": "manhattan" - }, - "attrs": { - "line": { - "strokeDasharray": "" - } - } - }, - { - "id": "192f839e-8983-466e-9df7-818c17430f45", - "shape": "table", - "position": { - "x": -754, - "y": -234.5 - }, - "count": 0, - "originKey": "693514C4-32C9-4FF9-9842-5E08581C905F", - "type": "P", - "size": { - "width": 433, - "height": 284 - }, - "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": -1238, - "y": -200 - }, - "count": 0, - "originKey": "C6F277B3-10D0-41E9-B401-C4A5EE8E6457", - "type": "P", - "size": { - "width": 352, - "height": 215 + "width": 392, + "height": 353 }, "autoSize": true, "ports": {