From 4a1d5d28bb51bddf0dc798f7398b2305ea6bfbad Mon Sep 17 00:00:00 2001 From: zch Date: Wed, 21 May 2025 11:16:46 +0800 Subject: [PATCH 1/2] =?UTF-8?q?change(dms):=20=E6=B6=A6=E6=BB=91=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E5=AE=9E=E4=BE=8B=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 DmsBillsLubeInstance 中添加主键自增类型 - 更新 DmsBillsLubeInstanceActivityBo 和 DmsBillsLubeInstanceActivityVo 的映射配置 - 修改 DmsBillsLubeInstanceActivityController 中的添加和编辑方法返回值类型 - 更新 DmsBillsLubeInstanceVo 的映射配置 - 修改 DmsPlanLubeMapper.xml 中的 SQL 查询 --- .../DmsBillsLubeInstanceActivityController.java | 13 +++++++++---- .../dromara/dms/domain/DmsBillsLubeInstance.java | 2 +- .../domain/bo/DmsBillsLubeInstanceActivityBo.java | 2 +- .../domain/vo/DmsBillsLubeInstanceActivityVo.java | 2 +- .../dms/domain/vo/DmsBillsLubeInstanceVo.java | 2 +- .../main/resources/mapper/dms/DmsPlanLubeMapper.xml | 13 ++++++++++--- 6 files changed, 23 insertions(+), 11 deletions(-) diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/DmsBillsLubeInstanceActivityController.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/DmsBillsLubeInstanceActivityController.java index bdd611d..b7454a7 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/DmsBillsLubeInstanceActivityController.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/DmsBillsLubeInstanceActivityController.java @@ -77,8 +77,13 @@ public class DmsBillsLubeInstanceActivityController extends BaseController { @Log(title = "润滑工单实例节点", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody DmsBillsLubeInstanceActivityBo bo) { - return toAjax(dmsBillsLubeInstanceActivityService.insertByBo(bo)); + public R add(@Validated(AddGroup.class) @RequestBody DmsBillsLubeInstanceActivityBo bo) { + DmsBillsLubeInstanceActivityVo savedActivity = dmsBillsLubeInstanceActivityService.insertByBo(bo); + if (savedActivity != null && savedActivity.getInstanceActivityId() != null) { + return R.ok(savedActivity); + } else { + return R.fail("创建润滑工单活动记录失败"); + } } /** @@ -88,8 +93,8 @@ public class DmsBillsLubeInstanceActivityController extends BaseController { @Log(title = "润滑工单实例节点", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody DmsBillsLubeInstanceActivityBo bo) { - return toAjax(dmsBillsLubeInstanceActivityService.updateByBo(bo)); + public R edit(@Validated(EditGroup.class) @RequestBody DmsBillsLubeInstanceActivityBo bo) { + return R.ok(dmsBillsLubeInstanceActivityService.updateByBo(bo)); } /** diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBillsLubeInstance.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBillsLubeInstance.java index 560931b..caf8968 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBillsLubeInstance.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBillsLubeInstance.java @@ -31,7 +31,7 @@ public class DmsBillsLubeInstance extends TenantEntity { /** * 主键标识 */ - @TableId(value = "lube_instance_id") + @TableId(value = "lube_instance_id", type = IdType.AUTO) private Long lubeInstanceId; /** diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBillsLubeInstanceActivityBo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBillsLubeInstanceActivityBo.java index e291d61..c3fe862 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBillsLubeInstanceActivityBo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBillsLubeInstanceActivityBo.java @@ -19,7 +19,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; */ @Data @EqualsAndHashCode(callSuper = true) -@AutoMapper(target = DmsBillsLubeInstanceActivity.class, reverseConvertGenerate = false) +@AutoMapper(target = DmsBillsLubeInstanceActivity.class, reverseConvertGenerate = true) public class DmsBillsLubeInstanceActivityBo extends BaseEntity { /** diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsLubeInstanceActivityVo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsLubeInstanceActivityVo.java index 3bde736..0f216d1 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsLubeInstanceActivityVo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsLubeInstanceActivityVo.java @@ -24,7 +24,7 @@ import java.util.Date; */ @Data @ExcelIgnoreUnannotated -@AutoMapper(target = DmsBillsLubeInstanceActivity.class) +@AutoMapper(target = DmsBillsLubeInstanceActivity.class, reverseConvertGenerate = true) public class DmsBillsLubeInstanceActivityVo implements Serializable { @Serial diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsLubeInstanceVo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsLubeInstanceVo.java index dd1490c..aa51094 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsLubeInstanceVo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsLubeInstanceVo.java @@ -25,7 +25,7 @@ import java.util.List; */ @Data @ExcelIgnoreUnannotated -@AutoMapper(target = DmsBillsLubeInstance.class) +@AutoMapper(target = DmsBillsLubeInstance.class, reverseConvertGenerate = true) public class DmsBillsLubeInstanceVo implements Serializable { @Serial diff --git a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsPlanLubeMapper.xml b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsPlanLubeMapper.xml index 4039037..324cf02 100644 --- a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsPlanLubeMapper.xml +++ b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsPlanLubeMapper.xml @@ -45,9 +45,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + + From 62acb2414e59025d0a07edaecf8ab0f0e3655172 Mon Sep 17 00:00:00 2001 From: yinq Date: Wed, 21 May 2025 15:21:01 +0800 Subject: [PATCH 2/2] =?UTF-8?q?update=20ADD=E5=A4=A7=E5=B1=8F=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E9=A1=B5=E9=9D=A2=E8=8A=82=E7=82=B9=E3=80=81=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SysDesignPageConfigController.java | 13 +- .../system/domain/SysDesignPageEdges.java | 132 +++++++++++++++ .../system/domain/SysDesignPagePoint.java | 132 +++++++++++++++ .../domain/bo/SysDesignPageConfigBo.java | 24 +-- .../domain/bo/SysDesignPageEdgesBo.java | 128 +++++++++++++++ .../domain/bo/SysDesignPagePointBo.java | 125 ++++++++++++++ .../domain/vo/SysDesignPageConfigVo.java | 14 +- .../domain/vo/SysDesignPageEdgesVo.java | 153 ++++++++++++++++++ .../domain/vo/SysDesignPagePointVo.java | 153 ++++++++++++++++++ .../mapper/SysDesignPageEdgesMapper.java | 15 ++ .../mapper/SysDesignPagePointMapper.java | 15 ++ .../impl/SysDesignDataSourceServiceImpl.java | 33 ++-- .../impl/SysDesignPageConfigServiceImpl.java | 145 ++++++++++++++--- .../system/SysDesignPageEdgesMapper.xml | 7 + .../system/SysDesignPagePointMapper.xml | 7 + 15 files changed, 1044 insertions(+), 52 deletions(-) create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysDesignPageEdges.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysDesignPagePoint.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDesignPageEdgesBo.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDesignPagePointBo.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDesignPageEdgesVo.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDesignPagePointVo.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDesignPageEdgesMapper.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDesignPagePointMapper.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDesignPageEdgesMapper.xml create mode 100644 ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDesignPagePointMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysDesignPageConfigController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysDesignPageConfigController.java index a8b66c7..5d833f6 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysDesignPageConfigController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysDesignPageConfigController.java @@ -40,7 +40,7 @@ public class SysDesignPageConfigController extends BaseController { /** * 查询大屏设计页面配置列表 */ - @SaCheckPermission("system:designPageConfig:list") +// @SaCheckPermission("system:designPageConfig:list") @GetMapping("/list") public TableDataInfo list(SysDesignPageConfigBo bo, PageQuery pageQuery) { return sysDesignPageConfigService.queryPageList(bo, pageQuery); @@ -49,7 +49,7 @@ public class SysDesignPageConfigController extends BaseController { /** * 导出大屏设计页面配置列表 */ - @SaCheckPermission("system:designPageConfig:export") +// @SaCheckPermission("system:designPageConfig:export") @Log(title = "大屏设计页面配置", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(SysDesignPageConfigBo bo, HttpServletResponse response) { @@ -62,7 +62,7 @@ public class SysDesignPageConfigController extends BaseController { * * @param pageConfigId 主键 */ - @SaCheckPermission("system:designPageConfig:query") +// @SaCheckPermission("system:designPageConfig:query") @GetMapping("/{pageConfigId}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long pageConfigId) { @@ -72,7 +72,7 @@ public class SysDesignPageConfigController extends BaseController { /** * 新增大屏设计页面配置 */ - @SaCheckPermission("system:designPageConfig:add") +// @SaCheckPermission("system:designPageConfig:add") @Log(title = "大屏设计页面配置", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() @@ -83,7 +83,7 @@ public class SysDesignPageConfigController extends BaseController { /** * 修改大屏设计页面配置 */ - @SaCheckPermission("system:designPageConfig:edit") +// @SaCheckPermission("system:designPageConfig:edit") @Log(title = "大屏设计页面配置", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() @@ -96,7 +96,7 @@ public class SysDesignPageConfigController extends BaseController { * * @param pageConfigIds 主键串 */ - @SaCheckPermission("system:designPageConfig:remove") +// @SaCheckPermission("system:designPageConfig:remove") @Log(title = "大屏设计页面配置", businessType = BusinessType.DELETE) @DeleteMapping("/{pageConfigIds}") public R remove(@NotEmpty(message = "主键不能为空") @@ -108,7 +108,6 @@ public class SysDesignPageConfigController extends BaseController { /** * 下拉框查询大屏设计页面配置列表 */ - @GetMapping("/getSysDesignPageConfigList") public R> getSysDesignPageConfigList(SysDesignPageConfigBo bo) { List list = sysDesignPageConfigService.queryList(bo); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysDesignPageEdges.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysDesignPageEdges.java new file mode 100644 index 0000000..b2b1022 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysDesignPageEdges.java @@ -0,0 +1,132 @@ +package org.dromara.system.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 大屏设计页面连接线对象 sys_design_page_edges + * + * @author Yinq + * @date 2025-05-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_design_page_edges") +public class SysDesignPageEdges extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 页面连接线ID + */ + @TableId(value = "page_edges_id") + private String pageEdgesId; + + /** + * 页面配置ID + */ + private Long pageConfigId; + + /** + * 线类型 + */ + private String edgeType; + + /** + * 原节点ID + */ + private String sourceNodeId; + + /** + * 目标节点ID + */ + private String targetNodeId; + + /** + * 源句柄ID + */ + private String sourceHandleId; + + /** + * 目标句柄ID + */ + private String targetHandleId; + + /** + * X坐标 + */ + private Long posX; + + /** + * Y坐标 + */ + private Long posY; + + /** + * 宽度(px) + */ + private Long width; + + /** + * 高度(px) + */ + private Long height; + + /** + * 自定义内容 + */ + private String customContent; + + /** + * 显示排序 + */ + private Long sortOrder; + + /** + * 预留字段一 + */ + private String fieldOne; + + /** + * 预留字段二 + */ + private String fieldTwo; + + /** + * 预留字段三 + */ + private String fieldThree; + + /** + * 预留字段四 + */ + private String fieldFour; + + /** + * 预留字段五 + */ + private String fieldFive; + + /** + * 删除标志(0代表存在 2代表删除) + */ + @TableLogic + private String delFlag; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysDesignPagePoint.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysDesignPagePoint.java new file mode 100644 index 0000000..71dccf2 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysDesignPagePoint.java @@ -0,0 +1,132 @@ +package org.dromara.system.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 大屏设计页面节点对象 sys_design_page_point + * + * @author Yinq + * @date 2025-05-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_design_page_point") +public class SysDesignPagePoint extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 页面节点ID + */ + @TableId(value = "page_point_id") + private String pagePointId; + + /** + * 页面配置ID + */ + private Long pageConfigId; + + /** + * 页面节点编号 + */ + private String pagePointCode; + + /** + * 页面节点名称 + */ + private String pagePointName; + + /** + * 节点类型 + */ + private String pointType; + + /** + * 组件类型 + */ + private String componentType; + + /** + * X坐标 + */ + private Long posX; + + /** + * Y坐标 + */ + private Long posY; + + /** + * 宽度(px) + */ + private Long width; + + /** + * 高度(px) + */ + private Long height; + + /** + * 页面节点标题 + */ + private String pagePointTitle; + + /** + * 页面数据内容 + */ + private String dataContent; + + /** + * 显示排序 + */ + private Long sortOrder; + + /** + * 预留字段一 + */ + private String fieldOne; + + /** + * 预留字段二 + */ + private String fieldTwo; + + /** + * 预留字段三 + */ + private String fieldThree; + + /** + * 预留字段四 + */ + private String fieldFour; + + /** + * 预留字段五 + */ + private String fieldFive; + + /** + * 删除标志(0代表存在 2代表删除) + */ + @TableLogic + private String delFlag; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDesignPageConfigBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDesignPageConfigBo.java index 4a9bb56..e3095e1 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDesignPageConfigBo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDesignPageConfigBo.java @@ -8,6 +8,10 @@ import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; +import org.dromara.system.domain.SysDesignPageEdges; +import org.dromara.system.domain.SysDesignPagePoint; + +import java.util.List; /** * 大屏设计页面配置业务对象 sys_design_page_config @@ -23,7 +27,6 @@ public class SysDesignPageConfigBo extends BaseEntity { /** * 页面配置ID */ - @NotNull(message = "页面配置ID不能为空", groups = { AddGroup.class, EditGroup.class }) private Long pageConfigId; /** @@ -35,68 +38,65 @@ public class SysDesignPageConfigBo extends BaseEntity { /** * 页面背景 */ - @NotBlank(message = "页面背景不能为空", groups = { AddGroup.class, EditGroup.class }) private String pageBackground; /** * 页面路由 */ - @NotBlank(message = "页面路由不能为空", groups = { AddGroup.class, EditGroup.class }) private String pageRouting; /** * 自定义内容 */ - @NotBlank(message = "自定义内容不能为空", groups = { AddGroup.class, EditGroup.class }) private String customContent; /** * 显示排序 */ - @NotNull(message = "显示排序不能为空", groups = { AddGroup.class, EditGroup.class }) private Long sortOrder; /** * 预留字段一 */ - @NotBlank(message = "预留字段一不能为空", groups = { AddGroup.class, EditGroup.class }) private String fieldOne; /** * 预留字段二 */ - @NotBlank(message = "预留字段二不能为空", groups = { AddGroup.class, EditGroup.class }) private String fieldTwo; /** * 预留字段三 */ - @NotBlank(message = "预留字段三不能为空", groups = { AddGroup.class, EditGroup.class }) private String fieldThree; /** * 预留字段四 */ - @NotBlank(message = "预留字段四不能为空", groups = { AddGroup.class, EditGroup.class }) private String fieldFour; /** * 预留字段五 */ - @NotBlank(message = "预留字段五不能为空", groups = { AddGroup.class, EditGroup.class }) private String fieldFive; /** * 激活标识(1是 0否) */ - @NotBlank(message = "激活标识(1是 0否)不能为空", groups = { AddGroup.class, EditGroup.class }) private String activeFlag; /** * 备注 */ - @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) private String remark; + /** + * 连接线List + */ + private List designPageEdgesList; + /** + * 节点List + */ + private List designPagePointList; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDesignPageEdgesBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDesignPageEdgesBo.java new file mode 100644 index 0000000..edf1a0b --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDesignPageEdgesBo.java @@ -0,0 +1,128 @@ +package org.dromara.system.domain.bo; + +import org.dromara.system.domain.SysDesignPageEdges; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 大屏设计页面连接线业务对象 sys_design_page_edges + * + * @author Yinq + * @date 2025-05-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysDesignPageEdges.class, reverseConvertGenerate = false) +public class SysDesignPageEdgesBo extends BaseEntity { + + /** + * 页面连接线ID + */ + private String pageEdgesId; + + /** + * 页面配置ID + */ + private Long pageConfigId; + + /** + * 线类型 + */ + private String edgeType; + + /** + * 原节点ID + */ + private String sourceNodeId; + + /** + * 目标节点ID + */ + private String targetNodeId; + + /** + * 源句柄ID + */ + private String sourceHandleId; + + /** + * 目标句柄ID + */ + private String targetHandleId; + + /** + * X坐标 + */ + @NotNull(message = "X坐标不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long posX; + + /** + * Y坐标 + */ + @NotNull(message = "Y坐标不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long posY; + + /** + * 宽度(px) + */ + @NotNull(message = "宽度(px)不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long width; + + /** + * 高度(px) + */ + @NotNull(message = "高度(px)不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long height; + + /** + * 自定义内容 + */ + private String customContent; + + /** + * 显示排序 + */ + private Long sortOrder; + + /** + * 预留字段一 + */ + private String fieldOne; + + /** + * 预留字段二 + */ + private String fieldTwo; + + /** + * 预留字段三 + */ + private String fieldThree; + + /** + * 预留字段四 + */ + private String fieldFour; + + /** + * 预留字段五 + */ + private String fieldFive; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDesignPagePointBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDesignPagePointBo.java new file mode 100644 index 0000000..c23482b --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDesignPagePointBo.java @@ -0,0 +1,125 @@ +package org.dromara.system.domain.bo; + +import org.dromara.system.domain.SysDesignPagePoint; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 大屏设计页面节点业务对象 sys_design_page_point + * + * @author Yinq + * @date 2025-05-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysDesignPagePoint.class, reverseConvertGenerate = false) +public class SysDesignPagePointBo extends BaseEntity { + + /** + * 页面节点ID + */ + private String pagePointId; + + /** + * 页面配置ID + */ + private Long pageConfigId; + + /** + * 页面节点编号 + */ + @NotBlank(message = "页面节点编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String pagePointCode; + + /** + * 页面节点名称 + */ + private String pagePointName; + + /** + * 节点类型 + */ + private String pointType; + + /** + * 组件类型 + */ + private String componentType; + + /** + * X坐标 + */ + private Long posX; + + /** + * Y坐标 + */ + private Long posY; + + /** + * 宽度(px) + */ + private Long width; + + /** + * 高度(px) + */ + private Long height; + + /** + * 页面节点标题 + */ + private String pagePointTitle; + + /** + * 页面数据内容 + */ + private String dataContent; + + /** + * 显示排序 + */ + private Long sortOrder; + + /** + * 预留字段一 + */ + private String fieldOne; + + /** + * 预留字段二 + */ + private String fieldTwo; + + /** + * 预留字段三 + */ + private String fieldThree; + + /** + * 预留字段四 + */ + private String fieldFour; + + /** + * 预留字段五 + */ + private String fieldFive; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDesignPageConfigVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDesignPageConfigVo.java index 8a0e2e7..d65a2bd 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDesignPageConfigVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDesignPageConfigVo.java @@ -7,11 +7,12 @@ import org.dromara.common.excel.annotation.ExcelDictFormat; import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dromara.system.domain.SysDesignPageEdges; +import org.dromara.system.domain.SysDesignPagePoint; import java.io.Serial; import java.io.Serializable; -import java.util.Date; - +import java.util.List; /** @@ -107,5 +108,14 @@ public class SysDesignPageConfigVo implements Serializable { @ExcelProperty(value = "备注") private String remark; + /** + * 连接线List + */ + private List designPageEdgesList; + + /** + * 节点List + */ + private List designPagePointList; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDesignPageEdgesVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDesignPageEdgesVo.java new file mode 100644 index 0000000..7432781 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDesignPageEdgesVo.java @@ -0,0 +1,153 @@ +package org.dromara.system.domain.vo; + +import org.dromara.system.domain.SysDesignPageEdges; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 大屏设计页面连接线视图对象 sys_design_page_edges + * + * @author Yinq + * @date 2025-05-21 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SysDesignPageEdges.class) +public class SysDesignPageEdgesVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 页面连接线ID + */ + @ExcelProperty(value = "页面连接线ID") + private String pageEdgesId; + + /** + * 页面配置ID + */ + @ExcelProperty(value = "页面配置ID") + private Long pageConfigId; + + /** + * 线类型 + */ + @ExcelProperty(value = "线类型") + private String edgeType; + + /** + * 原节点ID + */ + @ExcelProperty(value = "原节点ID") + private String sourceNodeId; + + /** + * 目标节点ID + */ + @ExcelProperty(value = "目标节点ID") + private String targetNodeId; + + /** + * 源句柄ID + */ + @ExcelProperty(value = "源句柄ID") + private String sourceHandleId; + + /** + * 目标句柄ID + */ + @ExcelProperty(value = "目标句柄ID") + private String targetHandleId; + + /** + * X坐标 + */ + @ExcelProperty(value = "X坐标") + private Long posX; + + /** + * Y坐标 + */ + @ExcelProperty(value = "Y坐标") + private Long posY; + + /** + * 宽度(px) + */ + @ExcelProperty(value = "宽度(px)") + private Long width; + + /** + * 高度(px) + */ + @ExcelProperty(value = "高度(px)") + private Long height; + + /** + * 自定义内容 + */ + @ExcelProperty(value = "自定义内容") + private String customContent; + + /** + * 显示排序 + */ + @ExcelProperty(value = "显示排序") + private Long sortOrder; + + /** + * 预留字段一 + */ + @ExcelProperty(value = "预留字段一") + private String fieldOne; + + /** + * 预留字段二 + */ + @ExcelProperty(value = "预留字段二") + private String fieldTwo; + + /** + * 预留字段三 + */ + @ExcelProperty(value = "预留字段三") + private String fieldThree; + + /** + * 预留字段四 + */ + @ExcelProperty(value = "预留字段四") + private String fieldFour; + + /** + * 预留字段五 + */ + @ExcelProperty(value = "预留字段五") + private String fieldFive; + + /** + * 激活标识(1是 0否) + */ + @ExcelProperty(value = "激活标识", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String activeFlag; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDesignPagePointVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDesignPagePointVo.java new file mode 100644 index 0000000..b82266a --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDesignPagePointVo.java @@ -0,0 +1,153 @@ +package org.dromara.system.domain.vo; + +import org.dromara.system.domain.SysDesignPagePoint; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 大屏设计页面节点视图对象 sys_design_page_point + * + * @author Yinq + * @date 2025-05-21 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SysDesignPagePoint.class) +public class SysDesignPagePointVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 页面节点ID + */ + @ExcelProperty(value = "页面节点ID") + private String pagePointId; + + /** + * 页面配置ID + */ + @ExcelProperty(value = "页面配置ID") + private Long pageConfigId; + + /** + * 页面节点编号 + */ + @ExcelProperty(value = "页面节点编号") + private String pagePointCode; + + /** + * 页面节点名称 + */ + @ExcelProperty(value = "页面节点名称") + private String pagePointName; + + /** + * 节点类型 + */ + @ExcelProperty(value = "节点类型") + private String pointType; + + /** + * 组件类型 + */ + @ExcelProperty(value = "组件类型") + private String componentType; + + /** + * X坐标 + */ + @ExcelProperty(value = "X坐标") + private Long posX; + + /** + * Y坐标 + */ + @ExcelProperty(value = "Y坐标") + private Long posY; + + /** + * 宽度(px) + */ + @ExcelProperty(value = "宽度(px)") + private Long width; + + /** + * 高度(px) + */ + @ExcelProperty(value = "高度(px)") + private Long height; + + /** + * 页面节点标题 + */ + @ExcelProperty(value = "页面节点标题") + private String pagePointTitle; + + /** + * 页面数据内容 + */ + @ExcelProperty(value = "页面数据内容") + private String dataContent; + + /** + * 显示排序 + */ + @ExcelProperty(value = "显示排序") + private Long sortOrder; + + /** + * 预留字段一 + */ + @ExcelProperty(value = "预留字段一") + private String fieldOne; + + /** + * 预留字段二 + */ + @ExcelProperty(value = "预留字段二") + private String fieldTwo; + + /** + * 预留字段三 + */ + @ExcelProperty(value = "预留字段三") + private String fieldThree; + + /** + * 预留字段四 + */ + @ExcelProperty(value = "预留字段四") + private String fieldFour; + + /** + * 预留字段五 + */ + @ExcelProperty(value = "预留字段五") + private String fieldFive; + + /** + * 激活标识(1是 0否) + */ + @ExcelProperty(value = "激活标识", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String activeFlag; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDesignPageEdgesMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDesignPageEdgesMapper.java new file mode 100644 index 0000000..3178bfa --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDesignPageEdgesMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.mapper; + +import org.dromara.system.domain.SysDesignPageEdges; +import org.dromara.system.domain.vo.SysDesignPageEdgesVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 大屏设计页面连接线Mapper接口 + * + * @author Yinq + * @date 2025-05-21 + */ +public interface SysDesignPageEdgesMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDesignPagePointMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDesignPagePointMapper.java new file mode 100644 index 0000000..27a0fab --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDesignPagePointMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.mapper; + +import org.dromara.system.domain.SysDesignPagePoint; +import org.dromara.system.domain.vo.SysDesignPagePointVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 大屏设计页面节点Mapper接口 + * + * @author Yinq + * @date 2025-05-21 + */ +public interface SysDesignPagePointMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDesignDataSourceServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDesignDataSourceServiceImpl.java index ed5bb63..fd57a04 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDesignDataSourceServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDesignDataSourceServiceImpl.java @@ -9,6 +9,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.RequiredArgsConstructor; import org.dromara.system.domain.SysDesignDataField; +import org.dromara.system.domain.SysDesignPagePoint; import org.dromara.system.mapper.SysDesignDataFieldMapper; import org.springframework.stereotype.Service; import org.dromara.system.domain.bo.SysDesignDataSourceBo; @@ -18,9 +19,8 @@ import org.dromara.system.mapper.SysDesignDataSourceMapper; import org.dromara.system.service.ISysDesignDataSourceService; import org.springframework.transaction.annotation.Transactional; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; +import java.util.stream.Collectors; /** * 大屏设计数据源Service业务层处理 @@ -63,6 +63,13 @@ public class SysDesignDataSourceServiceImpl implements ISysDesignDataSourceServi public TableDataInfo queryPageList(SysDesignDataSourceBo bo, PageQuery pageQuery) { MPJLambdaWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + List records = result.getRecords(); + for (SysDesignDataSourceVo record : records) { + MPJLambdaWrapper lqwRecord = JoinWrappers.lambda(SysDesignDataField.class); + lqwRecord.eq(SysDesignDataField::getDataSourceId, record.getDataSourceId()); + List dataFieldList = designDataFieldMapper.selectList(lqwRecord); + record.setDesignDataFieldList(dataFieldList); + } return TableDataInfo.build(result); } @@ -137,18 +144,24 @@ public class SysDesignDataSourceServiceImpl implements ISysDesignDataSourceServi @Transactional(rollbackFor = Exception.class) public Boolean updateByBo(SysDesignDataSourceBo bo) { SysDesignDataSource update = MapstructUtils.convert(bo, SysDesignDataSource.class); - List designDataFieldList = bo.getDesignDataFieldList(); validEntityBeforeSave(update); + List designDataFieldList = bo.getDesignDataFieldList(); + MPJLambdaWrapper lqwRecord = JoinWrappers.lambda(SysDesignDataField.class); + lqwRecord.eq(SysDesignDataField::getDataSourceId, bo.getDataSourceId()); + List dataFieldList = designDataFieldMapper.selectList(lqwRecord); if (!designDataFieldList.isEmpty()) { -// MPJLambdaWrapper lqw = JoinWrappers.lambda(SysDesignDataField.class); -// lqw.eq(bo.getDataSourceId() != null, SysDesignDataField::getDataSourceId, bo.getDataSourceId()); -// List dataFieldList = designDataFieldMapper.selectList(lqw); -// for (SysDesignDataField field : dataFieldList) { -// designDataFieldMapper.deleteById(field.getDataFieldId()); -// } for (SysDesignDataField dataField : designDataFieldList) { designDataFieldMapper.insertOrUpdate(dataField); } + Set existingDataFieldIds = designDataFieldList.stream() + .map(SysDesignDataField::getDataFieldId) + .collect(Collectors.toSet()); + List filteredDataFields = dataFieldList.stream() + .filter(field -> !existingDataFieldIds.contains(field.getDataFieldId())) + .toList(); + for (SysDesignDataField dataField : filteredDataFields) { + designDataFieldMapper.deleteById(dataField.getDataFieldId()); + } } return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDesignPageConfigServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDesignPageConfigServiceImpl.java index aa53bf8..69e302e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDesignPageConfigServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDesignPageConfigServiceImpl.java @@ -8,16 +8,21 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.RequiredArgsConstructor; +import org.dromara.system.domain.SysDesignDataField; +import org.dromara.system.domain.SysDesignPageEdges; +import org.dromara.system.domain.SysDesignPagePoint; +import org.dromara.system.mapper.SysDesignPageEdgesMapper; +import org.dromara.system.mapper.SysDesignPagePointMapper; import org.springframework.stereotype.Service; import org.dromara.system.domain.bo.SysDesignPageConfigBo; import org.dromara.system.domain.vo.SysDesignPageConfigVo; import org.dromara.system.domain.SysDesignPageConfig; import org.dromara.system.mapper.SysDesignPageConfigMapper; import org.dromara.system.service.ISysDesignPageConfigService; +import org.springframework.transaction.annotation.Transactional; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; +import java.util.stream.Collectors; /** * 大屏设计页面配置Service业务层处理 @@ -31,6 +36,10 @@ public class SysDesignPageConfigServiceImpl implements ISysDesignPageConfigServi private final SysDesignPageConfigMapper baseMapper; + private final SysDesignPagePointMapper designPagePointMapper; + + private final SysDesignPageEdgesMapper designPageEdgesMapper; + /** * 查询大屏设计页面配置 * @@ -38,8 +47,13 @@ public class SysDesignPageConfigServiceImpl implements ISysDesignPageConfigServi * @return 大屏设计页面配置 */ @Override - public SysDesignPageConfigVo queryById(Long pageConfigId){ - return baseMapper.selectVoById(pageConfigId); + public SysDesignPageConfigVo queryById(Long pageConfigId) { + SysDesignPageConfigVo designPageConfigVo = baseMapper.selectVoById(pageConfigId); + List designPagePointList = getDesignPagePoints(pageConfigId); + designPageConfigVo.setDesignPagePointList(designPagePointList); + List designPageEdgesList = getDesignPageEdges(pageConfigId); + designPageConfigVo.setDesignPageEdgesList(designPageEdgesList); + return designPageConfigVo; } /** @@ -53,6 +67,13 @@ public class SysDesignPageConfigServiceImpl implements ISysDesignPageConfigServi public TableDataInfo queryPageList(SysDesignPageConfigBo bo, PageQuery pageQuery) { MPJLambdaWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); +// List records = result.getRecords(); +// for (SysDesignPageConfigVo record : records) { +// List designPagePointList = getDesignPagePoints(record.getPageConfigId()); +// record.setDesignPagePointList(designPagePointList); +// List designPageEdgesList = getDesignPageEdges(record.getPageConfigId()); +// record.setDesignPageEdgesList(designPageEdgesList); +// } return TableDataInfo.build(result); } @@ -71,20 +92,20 @@ public class SysDesignPageConfigServiceImpl implements ISysDesignPageConfigServi private MPJLambdaWrapper buildQueryWrapper(SysDesignPageConfigBo bo) { Map params = bo.getParams(); MPJLambdaWrapper lqw = JoinWrappers.lambda(SysDesignPageConfig.class) - .selectAll(SysDesignPageConfig.class) - .eq(bo.getPageConfigId() != null, SysDesignPageConfig::getPageConfigId, bo.getPageConfigId()) - .like(StringUtils.isNotBlank(bo.getPageConfigName()), SysDesignPageConfig::getPageConfigName, bo.getPageConfigName()) - .eq(StringUtils.isNotBlank(bo.getPageBackground()), SysDesignPageConfig::getPageBackground, bo.getPageBackground()) - .eq(StringUtils.isNotBlank(bo.getPageRouting()), SysDesignPageConfig::getPageRouting, bo.getPageRouting()) - .eq(StringUtils.isNotBlank(bo.getCustomContent()), SysDesignPageConfig::getCustomContent, bo.getCustomContent()) - .eq(bo.getSortOrder() != null, SysDesignPageConfig::getSortOrder, bo.getSortOrder()) - .eq(StringUtils.isNotBlank(bo.getFieldOne()), SysDesignPageConfig::getFieldOne, bo.getFieldOne()) - .eq(StringUtils.isNotBlank(bo.getFieldTwo()), SysDesignPageConfig::getFieldTwo, bo.getFieldTwo()) - .eq(StringUtils.isNotBlank(bo.getFieldThree()), SysDesignPageConfig::getFieldThree, bo.getFieldThree()) - .eq(StringUtils.isNotBlank(bo.getFieldFour()), SysDesignPageConfig::getFieldFour, bo.getFieldFour()) - .eq(StringUtils.isNotBlank(bo.getFieldFive()), SysDesignPageConfig::getFieldFive, bo.getFieldFive()) - .eq(StringUtils.isNotBlank(bo.getActiveFlag()), SysDesignPageConfig::getActiveFlag, bo.getActiveFlag()) - .orderByDesc(SysDesignPageConfig::getCreateTime); + .selectAll(SysDesignPageConfig.class) + .eq(bo.getPageConfigId() != null, SysDesignPageConfig::getPageConfigId, bo.getPageConfigId()) + .like(StringUtils.isNotBlank(bo.getPageConfigName()), SysDesignPageConfig::getPageConfigName, bo.getPageConfigName()) + .eq(StringUtils.isNotBlank(bo.getPageBackground()), SysDesignPageConfig::getPageBackground, bo.getPageBackground()) + .eq(StringUtils.isNotBlank(bo.getPageRouting()), SysDesignPageConfig::getPageRouting, bo.getPageRouting()) + .eq(StringUtils.isNotBlank(bo.getCustomContent()), SysDesignPageConfig::getCustomContent, bo.getCustomContent()) + .eq(bo.getSortOrder() != null, SysDesignPageConfig::getSortOrder, bo.getSortOrder()) + .eq(StringUtils.isNotBlank(bo.getFieldOne()), SysDesignPageConfig::getFieldOne, bo.getFieldOne()) + .eq(StringUtils.isNotBlank(bo.getFieldTwo()), SysDesignPageConfig::getFieldTwo, bo.getFieldTwo()) + .eq(StringUtils.isNotBlank(bo.getFieldThree()), SysDesignPageConfig::getFieldThree, bo.getFieldThree()) + .eq(StringUtils.isNotBlank(bo.getFieldFour()), SysDesignPageConfig::getFieldFour, bo.getFieldFour()) + .eq(StringUtils.isNotBlank(bo.getFieldFive()), SysDesignPageConfig::getFieldFive, bo.getFieldFive()) + .eq(StringUtils.isNotBlank(bo.getActiveFlag()), SysDesignPageConfig::getActiveFlag, bo.getActiveFlag()) + .orderByDesc(SysDesignPageConfig::getCreateTime); return lqw; } @@ -94,13 +115,28 @@ public class SysDesignPageConfigServiceImpl implements ISysDesignPageConfigServi * @param bo 大屏设计页面配置 * @return 是否新增成功 */ + @Transactional(rollbackFor = Exception.class) @Override public Boolean insertByBo(SysDesignPageConfigBo bo) { SysDesignPageConfig add = MapstructUtils.convert(bo, SysDesignPageConfig.class); + List designPagePointList = bo.getDesignPagePointList(); + List designPageEdgesList = bo.getDesignPageEdgesList(); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setPageConfigId(add.getPageConfigId()); + if (!designPagePointList.isEmpty()) { + for (SysDesignPagePoint designPagePoint : designPagePointList) { + designPagePoint.setPageConfigId(add.getPageConfigId()); + designPagePointMapper.insert(designPagePoint); + } + } + if (!designPageEdgesList.isEmpty()) { + for (SysDesignPageEdges designPageEdges : designPageEdgesList) { + designPageEdges.setPageConfigId(add.getPageConfigId()); + designPageEdgesMapper.insert(designPageEdges); + } + } } return flag; } @@ -111,17 +147,58 @@ public class SysDesignPageConfigServiceImpl implements ISysDesignPageConfigServi * @param bo 大屏设计页面配置 * @return 是否修改成功 */ + @Transactional(rollbackFor = Exception.class) @Override public Boolean updateByBo(SysDesignPageConfigBo bo) { SysDesignPageConfig update = MapstructUtils.convert(bo, SysDesignPageConfig.class); validEntityBeforeSave(update); + List designPagePointList = bo.getDesignPagePointList(); + List designPageEdgesList = bo.getDesignPageEdgesList(); + List oldDesignPagePoints = getDesignPagePoints(bo.getPageConfigId()); + List oldDesignPageEdges = getDesignPageEdges(bo.getPageConfigId()); + + if (!designPagePointList.isEmpty()) { + for (SysDesignPagePoint designPagePoint : designPagePointList) { + designPagePointMapper.insertOrUpdate(designPagePoint); + } + Set existingPagePointIds = new HashSet<>(designPagePointList.size()); + designPagePointList.forEach(point -> existingPagePointIds.add(point.getPagePointId())); + List filteredPagePointIds = new ArrayList<>(oldDesignPagePoints.size()); + for (SysDesignPagePoint point : oldDesignPagePoints) { + String pagePointId = point.getPagePointId(); + if (!existingPagePointIds.contains(pagePointId)) { + filteredPagePointIds.add(pagePointId); + } + } + for (String pagePointId : filteredPagePointIds) { + designPagePointMapper.deleteById(pagePointId); + } + } + if (!designPageEdgesList.isEmpty()) { + for (SysDesignPageEdges designPageEdges : designPageEdgesList) { + designPageEdgesMapper.insertOrUpdate(designPageEdges); + } + // 获取现有边ID集合(用于快速判断是否存在) + Set existingEdgeIds = new HashSet<>(designPageEdgesList.size()); + designPageEdgesList.forEach(edge -> existingEdgeIds.add(edge.getPageEdgesId())); // 假设边ID字段为getEdgeId() + List edgesToDelete = new ArrayList<>(oldDesignPageEdges.size()); + for (SysDesignPageEdges edge : oldDesignPageEdges) { + String edgeId = edge.getPageEdgesId(); + if (!existingEdgeIds.contains(edgeId)) { + edgesToDelete.add(edgeId); + } + } + for (String edgeId : edgesToDelete) { + designPageEdgesMapper.deleteById(edgeId); + } + } return baseMapper.updateById(update) > 0; } /** * 保存前的数据校验 */ - private void validEntityBeforeSave(SysDesignPageConfig entity){ + private void validEntityBeforeSave(SysDesignPageConfig entity) { //TODO 做一些数据校验,如唯一约束 } @@ -134,9 +211,35 @@ public class SysDesignPageConfigServiceImpl implements ISysDesignPageConfigServi */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ + if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; } + + + /** + * 根据页面配置ID获取设计页面点列表 + * + * @param pageConfigId 页面配置ID + * @return 页面点列表 + */ + private List getDesignPagePoints(Long pageConfigId) { + MPJLambdaWrapper lqw = JoinWrappers.lambda(SysDesignPagePoint.class); + lqw.eq(SysDesignPagePoint::getPageConfigId, pageConfigId); + return designPagePointMapper.selectList(lqw); + } + + /** + * 根据页面配置ID获取设计页面边列表 + * + * @param pageConfigId 页面配置ID + * @return 页面边列表 + */ + private List getDesignPageEdges(Long pageConfigId) { + MPJLambdaWrapper lqw = JoinWrappers.lambda(SysDesignPageEdges.class); + lqw.eq(SysDesignPageEdges::getPageConfigId, pageConfigId); + return designPageEdgesMapper.selectList(lqw); + } + } diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDesignPageEdgesMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDesignPageEdgesMapper.xml new file mode 100644 index 0000000..f4fb663 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDesignPageEdgesMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDesignPagePointMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDesignPagePointMapper.xml new file mode 100644 index 0000000..54c9d9a --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDesignPagePointMapper.xml @@ -0,0 +1,7 @@ + + + + +