Commit 86b8f070 by henry

天剑元模型工鞥

1 parent 1842f403
Showing with 2335 additions and 60 deletions
......@@ -16,7 +16,7 @@
## 1.7 arch-base 基础服务-包括工具类、枚举类
# <span style="color: red;">*************重要***********</span>
## vo(View Object):视图对象,用于展示层
## dto(Data Transfer Object):数据传输对象
## dto(Data Transfer Object):数据传输对象 再参数传递中 统一模块参数传递尽量统一DTO 不要每个方法创建一个,方便后期维护
## pojo(Persistent Object):持久化对象
## <span style="color:red"> * 方便统一加密,所有请求均用POST请求 </span>
参数统一在BODY中传递
\ No newline at end of file
package org.arch.common.modules.archoverall.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel(value = "元模型查询的传输对象", description = "元模型查询的传输对象")
public class ArchiInfoDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "架構歸屬Id")
private String arciBelongId;
@ApiModelProperty(value = "架構歸屬名稱")
private String arciBelongName;
private List eleDtos;
}
package org.arch.common.modules.archoverall.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel(value = "元模型分类图元查询的传输对象", description = "元模型分类图元查询的传输对象")
public class ArchiListResultDTO {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "元素类型(1:标准图元;2:常规图元)")
private String eleType;
private List<ArchiInfoDto> dataEle;
}
package org.arch.common.modules.archoverall.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 元模型DTO
*
* @author
* @date 2023/12/08
*/
@ApiModel(description = "元模型DTO")
@Data
public class MetaModel {
/**
* 元模型 ID
*/
@ApiModelProperty(value = "元模型 ID", position = 1, required = true)
private Long metaModelId;
}
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.ability;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.ability;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.arch.common.modules.archoverall.dto.BasePageEntity;
@Data
@ApiModel(value = "中台服务清单关联资产表请求参数", description = "中台服务清单关联资产表请求参数")
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.ability;
import io.swagger.annotations.ApiModel;
import lombok.Data;
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.ability;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.arch.common.modules.archoverall.dto.BasePageEntity;
import org.arch.enums.ArchiAbilityInventoryEnum;
@Data
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.ability;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.ability;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import org.arch.common.modules.archoverall.dto.BasePageEntity;
@Data
@ApiModel(value = "应用服务信息请求参数", description = "应用服务信息请求参数")
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.ability;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.arch.common.modules.archoverall.dto.BasePageEntity;
@Data
@ApiModel(value = "业务信息请求参数", description = "业务信息请求参数")
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.ability;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.ability;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
......@@ -6,6 +6,7 @@ import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.arch.common.modules.archoverall.dto.BasePageEntity;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.ability;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.arch.common.modules.archoverall.dto.BasePageEntity;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.ability;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.ability;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.arch.common.modules.archoverall.dto.BasePageEntity;
@Data
@ApiModel(value = "技术组件信息请求参数", description = "技术组件信息请求参数")
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.asset;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.annotation.JsonFormat;
......@@ -8,6 +8,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.arch.common.modules.archoverall.dto.BasePageEntity;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.asset;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.asset;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.arch.common.modules.archoverall.dto.BasePageEntity;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.asset;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.asset;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.asset;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.IdType;
......@@ -11,6 +11,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.arch.common.modules.archoverall.dto.BasePageEntity;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.asset;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.arch.common.modules.archoverall.dto.BasePageEntity;
/**
* 资产DTO
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.asset;
import io.swagger.annotations.ApiModel;
import lombok.Data;
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.asset;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.asset;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......@@ -7,6 +7,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.arch.common.modules.archoverall.dto.BasePageEntity;
/**
* 设计态-架构关系
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.ele;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.ele;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......@@ -6,6 +6,7 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.arch.common.modules.archoverall.dto.BasePageEntity;
/**
* 架构资产关系
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.ele;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.ele;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.ele;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.arch.common.modules.archoverall.dto.BasePageEntity;
import java.util.List;
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.ele;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.arch.common.modules.archoverall.dto.BasePageEntity;
import java.util.List;
......
package org.arch.common.modules.archoverall.dto;
package org.arch.common.modules.archoverall.dto.ele;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.arch.common.modules.archoverall.dto.BasePageEntity;
@EqualsAndHashCode(callSuper = true)
@Data
......
package org.arch.common.modules.archoverall.dto.ele;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.arch.common.modules.archoverall.dto.BasePageEntity;
/**
* <p>
* 元模型数据字典
* </p>
*
* @author admin
* @date 2024/02/22
* @since 2024-02-22
*/
@Getter
@Setter
@Accessors(chain = true)
@ApiModel(value = "ArchiModelDict对象", description = "元模型数据字典")
public class ArchiModelDictDTO extends BasePageEntity {
private Long id;
@ApiModelProperty(value = "字典名称")
private String name;
@ApiModelProperty(value = "字典状态 0:已停用 1:已发布 2:暂存")
private Byte state;
@ApiModelProperty(value = "字典标识")
private String typeValue;
@ApiModelProperty(value = "描述")
private String remark;
}
package org.arch.common.modules.archoverall.dto.ele;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* <p>
* 元模型数据字典详情
* </p>
*
* @author
* @since 2024-02-22
*/
@Getter
@Setter
@Accessors(chain = true)
@ApiModel(value = "ArchiModelDictDetail对象", description = "元模型数据字典详情")
public class ArchiModelDictDetailDTO {
@ApiModelProperty(value = "明细主键ID")
private Long id;
@ApiModelProperty(value = "字典id")
private Long dictId;
@ApiModelProperty(value = "字段中文名")
private String label;
@ApiModelProperty(value = "字段值")
private String value;
@ApiModelProperty(value = "排序")
private Integer sort;
@ApiModelProperty(value = "标记0、启用1、禁用")
private Byte flag;
@ApiModelProperty(value = "创建日期")
private Date createTime;
@ApiModelProperty(value = "创建人")
private Long createMan;
@ApiModelProperty(value = "最后一次修改时间")
private Date lastUpdateTime;
@ApiModelProperty(value = "最后一次修改人")
private Long lastUpdateMan;
@ApiModelProperty(value = "描述")
private String remark;
}
package org.arch.common.modules.archoverall.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.arch.common.BaseEntity;
/**
* <p>
* 元模型数据字典详情
* </p>
*
* @author
* @since 2024-02-22
*/
@Getter
@Setter
@Accessors(chain = true)
@ApiModel(value = "ArchiModelDictDetail对象", description = "元模型数据字典详情")
public class ArchiModelDictDetailVO extends BaseEntity {
@ApiModelProperty(value = "明细主键ID")
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ApiModelProperty(value = "字典id")
private Long dictId;
@ApiModelProperty(value = "字典名称")
private String label;
@ApiModelProperty(value = "字典值")
private String value;
@ApiModelProperty(value = "排序")
private Integer sort;
@ApiModelProperty(value = "描述")
private String remark;
}
package org.arch.common.modules.archoverall.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
* <p>
* 元模型数据字典
* </p>
*
* @author admin
* @date 2024/02/22
* @since 2024-02-22
*/
@Getter
@Setter
@Accessors(chain = true)
@ApiModel(value = "ArchiModelDict对象", description = "元模型数据字典")
public class ArchiModelDictVO {
private Long id;
@ApiModelProperty(value = "字典名称")
private String name;
@ApiModelProperty(value = "字典标识")
private String typeValue;
@ApiModelProperty(value = "描述")
private String remark;
@ApiModelProperty(value = "字典状态 0:已停用 1:已发布 2:暂存")
private Byte state;
@ApiModelProperty(value = "字典版本")
private String version;
@ApiModelProperty(value = "逻辑删除标记(0:显示;1:隐藏)")
private Byte delFlag;
@ApiModelProperty(value = "创建日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date createTime;
@ApiModelProperty(value = "创建人")
private Long createMan;
@ApiModelProperty(value = "最后一次修改时间")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date lastUpdateTime;
@ApiModelProperty(value = "最后一次修改人")
private Long lastUpdateMan;
@ApiModelProperty(value = "字典明细列表")
List<ArchiModelDictDetailVO> detailList;
}
package org.arch.common.modules.base.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 批量删除
*
* @author lizhen
* @since 2023-12-14
*/
@ApiModel(description = "批量删除")
@Data
public class BathRemoveDTO implements Serializable {
/**
* 钥匙
*/
@ApiModelProperty("主键集合")
private List<Long> ids;
}
......@@ -9,7 +9,7 @@ import org.arch.log.annotation.OperLog;
import org.arch.log.entity.DescContent;
import org.arch.log.logenum.LogOperTypeEnum;
import org.arch.log.logenum.LogTypeEnum;
import org.arch.common.modules.archoverall.dto.ArchiAssetInfoDTO;
import org.arch.common.modules.archoverall.dto.asset.ArchiAssetInfoDTO;
import org.arch.common.modules.archoverall.dto.DelDTO;
import org.arch.overall.dto.ArchiDto;
import org.arch.overall.entity.ArchiElementNestRelation;
......
......@@ -3,7 +3,7 @@ package org.arch.overall.controller;
import io.swagger.annotations.ApiOperation;
import org.arch.Result;
import org.arch.log.entity.DescContent;
import org.arch.common.modules.archoverall.dto.ArchiEleRelaDTO;
import org.arch.common.modules.archoverall.dto.ele.ArchiEleRelaDTO;
import org.arch.common.modules.archoverall.dto.BatchUpdateRelaDTO;
import org.arch.overall.entity.ArchiEleRela;
import org.arch.overall.service.ArchiElePropertyService;
......
......@@ -8,7 +8,7 @@ import org.arch.Result;
import org.arch.log.annotation.OperLog;
import org.arch.log.logenum.LogOperTypeEnum;
import org.arch.log.logenum.LogTypeEnum;
import org.arch.common.modules.archoverall.dto.ArchiElementDTO;
import org.arch.common.modules.archoverall.dto.ele.ArchiElementDTO;
import org.arch.common.modules.archoverall.dto.BatchUpdateDTO;
import org.arch.overall.entity.ArchiElement;
import org.arch.overall.service.ArchiElementService;
......
package org.arch.overall.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.arch.Result;
import org.arch.common.modules.archoverall.dto.asset.ArchiAssetInfoDTO;
import org.arch.common.modules.archoverall.dto.ele.ArchiMetaModelDTO;
import org.arch.common.modules.archoverall.dto.MetaModel;
import org.arch.log.annotation.OperLog;
import org.arch.log.logenum.LogTypeEnum;
import org.arch.log.logenum.LogOperTypeEnum;
import org.arch.overall.entity.ArchiMetaModel;
import org.arch.overall.service.ArchiAssetInfoService;
import org.arch.overall.service.ArchiAssetService;
import org.arch.overall.service.ArchiMetaModelService;
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;
@Slf4j
@Api(tags = "元模型管理")
@RestController
@RequestMapping("ma-ml")
@RequiredArgsConstructor
public class ArchiMetaModelController {
private final ArchiMetaModelService archiMetaModelService;
private final ArchiAssetInfoService archiAssetInfoService;
private final ArchiAssetService archiAssetService;
@ApiOperation("新增元模型")
@PostMapping("/add")
@OperLog(value = LogOperTypeEnum.ADD, logTypeValue = LogTypeEnum.BUSI_LOG, operDes = "新增元模型",moduleName = "元模型管理")
public Result addArchiMetaModel(@RequestBody ArchiMetaModel archiMetaModels) {
return Result.success(archiMetaModelService.insert(archiMetaModels));
}
@ApiOperation("修改元模型")
@PostMapping("/updArchiMetaModel")
@OperLog(value = LogOperTypeEnum.UPDATE, logTypeValue = LogTypeEnum.BUSI_LOG, operDes = "修改元模型",moduleName = "元模型管理")
public Result updArchiMetaModel(@RequestBody ArchiMetaModel archiMetaModels) {
return Result.success(archiMetaModelService.update(archiMetaModels));
}
@ApiOperation("查询元模型列表")
@PostMapping("/")
@OperLog(value = LogOperTypeEnum.QUERY, logTypeValue = LogTypeEnum.BUSI_LOG, operDes = "查询元模型列表",moduleName = "元模型管理")
public Result gtArchiMetaModel(@RequestBody ArchiMetaModelDTO dto) {
return Result.success(archiMetaModelService.gtArchiMetaModel(dto));
}
@ApiOperation(value = "根据Id删除", notes = "根据Id删除", httpMethod = "POST")
@PostMapping(value = "/del")
@OperLog(value = LogOperTypeEnum.DELETE, logTypeValue = LogTypeEnum.BUSI_LOG, operDes = "根据Id删除",moduleName = "元模型管理")
public Result delArchiMetaModel(@RequestBody ArchiMetaModel archiMetaModels) {
return Result.success(archiMetaModelService.del(archiMetaModels));
}
@ApiOperation("根据元模型ID查询元模型")
@PostMapping("/gBMMId")
@OperLog(value = LogOperTypeEnum.QUERY, logTypeValue = LogTypeEnum.BUSI_LOG, operDes = "根据元模型ID查询元模型",moduleName = "元模型管理")
public Result gBMMId(@RequestBody ArchiMetaModelDTO dto) {
Long metaModelId = dto.getMetaModelId();
return Result.success(archiMetaModelService.findMetaModelById(metaModelId));
}
@ApiOperation("更新画布信息")
@PostMapping("/upMxGraph")
@OperLog(value = LogOperTypeEnum.UPDATE, logTypeValue = LogTypeEnum.BUSI_LOG, operDes = "更新画布信息",moduleName = "元模型管理")
public Result updateMxGraph(@RequestBody ArchiMetaModelDTO dto) {
return Result.success(archiMetaModelService.updateMxGraphModel(dto));
}
@ApiOperation("根据元模型获取结构化数据")
@PostMapping("/fdBmd")
@OperLog(value = LogOperTypeEnum.QUERY, logTypeValue = LogTypeEnum.BUSI_LOG, operDes = "根据元模型获取结构化数据",moduleName = "元模型管理")
public Result getMxCellByMetaModelId(@RequestBody MetaModel model) {
return Result.success(archiAssetService.getMxCellByMetaModelId(model.getMetaModelId()));
}
@ApiOperation("加载画布左侧元素资产列表接口")
@PostMapping(value = "/archi-asset-list")
@OperLog(value = LogOperTypeEnum.QUERY, logTypeValue = LogTypeEnum.BUSI_LOG, operDes = "加载画布左侧元素资产列表接口",moduleName = "元模型管理")
public Result getArchiAssetList(@RequestBody ArchiAssetInfoDTO params) {
return Result.success(archiMetaModelService.getArchiAssetList(params));
}
@ApiOperation("加载画布右侧清单列表")
@PostMapping("/asset-ele-list")
@OperLog(value = LogOperTypeEnum.QUERY, logTypeValue = LogTypeEnum.BUSI_LOG, operDes = "加载画布右侧清单列表",moduleName = "元模型管理")
public Result gtAssetByEleList(@RequestBody ArchiAssetInfoDTO params) {
params.setArchiStage(1);
params.setArchiAssetState(2);
params.setLimit(10L);
return Result.success(archiAssetInfoService.assetList(params));
}
@ApiOperation("加载画布左侧元素资产列表")
@PostMapping("/archi-asset-list1")
@OperLog(value = LogOperTypeEnum.QUERY, logTypeValue = LogTypeEnum.BUSI_LOG, operDes = "加载画布左侧元素资产列表",moduleName = "元模型管理")
public Result getArchiAssetList1(@RequestBody ArchiAssetInfoDTO params) {
return Result.success(archiMetaModelService.getArchiAssetList1(params));
}
@ApiOperation("加载画布左侧列表(标准图元)接口")
@PostMapping(value = "/archi-list")
@OperLog(value = LogOperTypeEnum.QUERY, logTypeValue = LogTypeEnum.BUSI_LOG, operDes = "加载画布左侧列表(标准图元)接口",moduleName = "元模型管理")
public Result getArchiList() {
Integer type = 1;
return Result.success(archiMetaModelService.getEleListLeft(type));
}
@ApiOperation("加载画布左侧列表(常规图元)接口")
@PostMapping(value = "/archi-list2")
@OperLog(value = LogOperTypeEnum.QUERY, logTypeValue = LogTypeEnum.BUSI_LOG, operDes = "加载画布左侧列表(常规图元)接口",moduleName = "元模型管理")
public Result getArchiList2() {
Integer type = 2;
return Result.success(archiMetaModelService.getEleListLeft(type));
}
}
package org.arch.overall.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.arch.overall.entity.ArchiEleProperty;
import org.arch.overall.entity.AssetInfo;
import java.math.BigDecimal;
import java.util.List;
@Data
@ApiModel(value = "元模型查询的传输对象", description = "元模型查询的传输对象")
public class ArchiEleDto {
@ApiModelProperty(value = "字典屬性列表")
private List<ArchiEleProperty> dicys;
@ApiModelProperty(value = "元素名称")
private String eleName;
private Long elementId;
@ApiModelProperty(value = "架构归属Id")
private Long eleBelongId;
@ApiModelProperty(value = "架构归属名称")
private String eleBelongName;
@ApiModelProperty(value = "企业架构层级")
private Integer eaLevel;
@ApiModelProperty(value = "架构层次")
private Long archiLevelId;
@ApiModelProperty(value = "元素类型(1:标准图元;2:常规图元)")
private Integer eleType;
@ApiModelProperty(value = "图形")
private String icon;
@ApiModelProperty(value = "图形名称")
private String iconName;
@ApiModelProperty(value = "颜色值")
private String color;
@ApiModelProperty(value = "图像宽")
private BigDecimal shapeWidth;
@ApiModelProperty(value = "图像高")
private BigDecimal shapeHeight;
@ApiModelProperty(value = "架构资产列表")
private List<AssetInfo> assets;
@ApiModelProperty(value = "适用范围(1:总体架构 2:系统架构 3:总体及系统架构)")
private Integer scope;
@ApiModelProperty(value = "适用范围集合")
@TableField(exist = false)
private List<Long> scopeList;
@ApiModelProperty(value = "描述")
private String content;
@ApiModelProperty(value = "引用关系")
private String referenceRelationship;
@ApiModelProperty(value = "示例")
private String example;
@ApiModelProperty(value = "定义")
private String definition;
@ApiModelProperty(value = "资产数")
private String eleByAssetTotal;
}
package org.arch.overall.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
* 系统项目资产关联表
* </p>
*
* @author java
* @since 2024-02-28
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@TableName("archi_asset_app_prj")
@ApiModel(value = "ArchiAssetAppPrj对象", description = "系统项目资产关联表")
public class ArchiAssetAppPrj implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "系统项目资产关联ID")
@TableId(value = "archi_asset_app_prj_id", type = IdType.AUTO)
private Long archiAssetAppPrjId;
@ApiModelProperty(value = "项目ID")
@TableField("prj_id")
private Long prjId;
@ApiModelProperty(value = "项目编码")
@TableField("prj_code")
private String prjCode;
@ApiModelProperty(value = "项目名称")
@TableField("prj_name")
private String prjName;
@ApiModelProperty(value = "系统ID")
@TableField("app_id")
private Long appId;
@ApiModelProperty(value = "系统编码")
@TableField("app_code")
private String appCode;
@ApiModelProperty(value = "系统名称")
@TableField("app_name")
private String appName;
@ApiModelProperty(value = "架构组件ID")
@TableField("asset_id")
@JsonSerialize(using = ToStringSerializer.class)
private Long assetId;
@ApiModelProperty(value = "架构组件名称")
@TableField("asset_name")
private String assetName;
@ApiModelProperty(value = "资产编码")
@TableField("asset_code")
private String assetCode;
@ApiModelProperty(value = "架构类型")
private String archiType;
}
......@@ -9,7 +9,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.arch.common.BaseEntity;
import org.arch.common.modules.archoverall.dto.ArchiEleRelaConstrainDTO;
import org.arch.common.modules.archoverall.dto.ele.ArchiEleRelaConstrainDTO;
import java.math.BigDecimal;
import java.util.List;
......
package org.arch.overall.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.arch.common.BaseEntity;
import java.util.List;
/**
* <p>
* 元模型数据字典
* </p>
*
* @author
* @since 2024-02-22
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("archi_model_dict")
@ApiModel(value = "ArchiModelDict对象", description = "元模型数据字典")
public class ArchiModelDict extends BaseEntity {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ApiModelProperty(value = "字典名称")
private String name;
@ApiModelProperty(value = "字典标识")
private String typeValue;
@ApiModelProperty(value = "描述")
private String remark;
@ApiModelProperty(value = "字典状态 0:已停用 1:已发布 2:暂存")
private Byte state;
@ApiModelProperty(value = "字典版本")
private String version;
@ApiModelProperty(value = "字典明细列表")
@TableField(exist = false)
List<ArchiModelDictDetail> detailList;
}
package org.arch.overall.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.arch.common.BaseEntity;
/**
* <p>
* 元模型数据字典详情
* </p>
*
* @since 2024-02-22
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("archi_model_dict_detail")
@ApiModel(value = "ArchiModelDictDetail对象", description = "元模型数据字典详情")
public class ArchiModelDictDetail extends BaseEntity {
@ApiModelProperty(value = "明细主键ID")
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ApiModelProperty(value = "字典id")
private Long dictId;
@ApiModelProperty(value = "字典名称")
private String label;
@ApiModelProperty(value = "字典值")
private String value;
@ApiModelProperty(value = "排序")
private Integer sort;
@ApiModelProperty(value = "描述")
private String remark;
}
package org.arch.overall.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* 架构视图配置
* </p>
*
* @author lizhen
* @since 2023-12-06
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("archi_view_ele")
@ApiModel(value="ArchiViewEle", description="架构视图配置中间表")
public class ArchiViewEle {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "架构视图 ID")
private Long archiViewId;
@ApiModelProperty(value = "架构元素 ID")
private String archiEleId;
@ApiModelProperty(value = "架构元素名称")
private String eleName;
@ApiModelProperty(value = "架构元素关系 ID")
private String archiEleRelId;
@ApiModelProperty(value = "架构元素关系名称")
private String relName;
@ApiModelProperty(value = "1:元素范围 2:包含元素")
private Long type;
public static final String ARCHIVIEWID = "archiViewId";
public static final String ARCHIELEID = "archiEleId";
public static final String ELENAME = "eleName";
public static final String ARCHIELERELID = "archiEleRelId";
public static final String RELNAME = "relName";
public static final String TYPE = "type";
}
package org.arch.overall.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* 图形仓库
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "graph_repository")
public class GraphRepository extends Model<GraphRepository> {
/**
* 主键
*/
@TableId(value = "graph_id")
private Long graphId;
/**
* 图形编码
*/
@TableField(value = "graph_code")
private String graphCode;
/**
* 图形的中文名称,系统内检索使用
*/
@TableField(value = "graph_name")
private String graphName;
/**
* 图形类型
*/
@TableField(value = "graph_type")
private String graphType;
/**
* 图形svg信息
*/
@TableField(value = "icon")
private String icon;
/**
* 图形XML数据
*/
@TableField(value = "content")
private String content;
/**
* 创建时间
*/
@TableField(value = "create_time")
private Date createTime;
/**
* 创建人
*/
@TableField(value = "create_man")
private Integer createMan;
/**
* 更新时间
*/
@TableField(value = "last_update_time")
private Date lastUpdateTime;
/**
* 更新人
*/
@TableField(value = "last_update_man")
private Integer lastUpdateMan;
/**
* 删除标记(1:已删除;0:未删除)
*/
@TableField(value = "def_flag")
private Byte defFlag;
}
\ No newline at end of file
......@@ -4,8 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.arch.common.modules.archoverall.dto.ArchiAbilityInventoryDataDTO;
import org.arch.common.modules.archoverall.dto.ArchiAssetsRelationQueryDTO;
import org.arch.common.modules.archoverall.dto.ability.ArchiAbilityInventoryDataDTO;
import org.arch.common.modules.archoverall.dto.asset.ArchiAssetsRelationQueryDTO;
import org.arch.common.modules.archoverall.vo.ArchiAbilityAssetsRelationQueryVO;
import org.arch.overall.entity.ArchiAbilityAssetsRelation;
......
......@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.arch.common.modules.archoverall.dto.ArchiAssetInfoDTO;
import org.arch.common.modules.archoverall.dto.asset.ArchiAssetInfoDTO;
import org.arch.common.modules.archoverall.dto.NeedInfoDTO;
import org.arch.common.modules.archoverall.dto.OnlineReviewCountQueryDTO;
import org.arch.common.modules.archoverall.dto.OnlineReviewWriteDTO;
......
package org.arch.overall.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.arch.overall.entity.ArchiAssetAppPrj;
/**
* <p>
* 系统项目资产关联表 Mapper 接口
* </p>
*
* @author java
* @since 2024-02-28
*/
public interface ArchiAssetAppPrjMapper extends BaseMapper<ArchiAssetAppPrj> {
}
......@@ -6,7 +6,7 @@ import com.github.yulichang.base.MPJBaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.arch.common.modules.archoverall.dto.ArchiAssetInfoDTO;
import org.arch.common.modules.archoverall.dto.asset.ArchiAssetInfoDTO;
import org.arch.overall.entity.AssetInfo;
import org.arch.common.modules.archoverall.dto.WordContentDTO;
import java.util.List;
......
......@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.arch.common.modules.archoverall.dto.ArchiEleRelaDTO;
import org.arch.common.modules.archoverall.dto.ele.ArchiEleRelaDTO;
import org.arch.common.modules.archoverall.vo.ArchiEleRelaNameVO;
import org.arch.overall.entity.ArchiEleRela;
......
......@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.base.MPJBaseMapper;
import org.apache.ibatis.annotations.Param;
import org.arch.common.modules.archoverall.dto.ArchiElementDTO;
import org.arch.common.modules.archoverall.dto.ele.ArchiElementDTO;
import org.arch.overall.entity.ArchiElement;
import java.util.List;
......
......@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.base.MPJBaseMapper;
import org.apache.ibatis.annotations.Param;
import org.arch.common.modules.archoverall.dto.ArchiMetaModelDTO;
import org.arch.common.modules.archoverall.dto.ele.ArchiMetaModelDTO;
import org.arch.overall.entity.ArchiMetaModel;
import java.util.List;
......
package org.arch.overall.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import org.arch.overall.entity.ArchiModelDictDetail;
/**
* <p>
* 元模型数据字典详情 Mapper 接口
* </p>
*
* @author
* @since 2024-02-22
*/
public interface ArchiModelDictDetailMapper extends MPJBaseMapper<ArchiModelDictDetail> {
}
package org.arch.overall.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import org.arch.overall.entity.ArchiModelDict;
/**
* <p>
* 元模型数据字典 Mapper 接口
* </p>
*
* @author
* @since 2024-02-22
*/
public interface ArchiModelDictMapper extends MPJBaseMapper<ArchiModelDict> {
}
......@@ -3,7 +3,7 @@ package org.arch.overall.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.arch.common.modules.archoverall.dto.ArchiAssetDTO;
import org.arch.common.modules.archoverall.dto.asset.ArchiAssetDTO;
import org.arch.common.modules.archoverall.dto.ArchiViewDTO;
import org.arch.common.modules.archoverall.vo.ArchiAssetVO;
import org.arch.common.modules.archoverall.vo.ArchiVersionVO;
......
package org.arch.overall.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.arch.overall.entity.ArchiViewEle;
public interface ArchiViewEleMapper extends BaseMapper<ArchiViewEle> {
}
package org.arch.overall.mapper;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.arch.overall.entity.GraphRepository;
import org.arch.utils.Constant;
public interface GraphRepositoryMapper extends BaseMapper<GraphRepository> {
/**
* 初始化架构视图
*
* @return {@link Long }
*/
default Long initArchiView() {
GraphRepository repository = new GraphRepository();
repository.setGraphCode(IdUtil.fastUUID());
repository.setContent(Constant.MX_MODEL_GRAPH);
repository.setGraphType(Constant.ARCHI_VIEW_DATA);
insert(repository);
return repository.getGraphId();
}
/**
* 初始化原模型
*
* @return {@link Long }
*/
default Long initArchiModel() {
GraphRepository repository = new GraphRepository();
repository.setGraphCode(IdUtil.fastUUID());
repository.setContent(Constant.MX_MODEL_GRAPH);
repository.setGraphType(Constant.META_MODEL_DATA);
insert(repository);
return repository.getGraphId();
}
}
\ No newline at end of file
......@@ -2,8 +2,8 @@ package org.arch.overall.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.arch.common.modules.archoverall.dto.ArchiAssetInfoDTO;
import org.arch.common.modules.archoverall.dto.ArchiAssetVisalDTO;
import org.arch.common.modules.archoverall.dto.asset.ArchiAssetInfoDTO;
import org.arch.common.modules.archoverall.dto.asset.ArchiAssetVisalDTO;
import org.arch.common.modules.archoverall.dto.DelDTO;
import org.arch.common.modules.archoverall.vo.ArchVisualVO;
import org.arch.overall.dto.ArchiDto;
......
......@@ -3,6 +3,10 @@ package org.arch.overall.service;
import cn.hutool.core.lang.tree.Tree;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.arch.common.modules.archoverall.dto.*;
import org.arch.common.modules.archoverall.dto.asset.ArchiAssetDTO;
import org.arch.common.modules.archoverall.dto.asset.ArchiAssetInfoDTO;
import org.arch.common.modules.archoverall.dto.asset.ArchiAssetsRelationDTO;
import org.arch.common.modules.archoverall.dto.asset.ArchiAssetsRelationQueryDTO;
import org.arch.common.modules.archoverall.vo.ArchiAbilityAssetsRelationQueryVO;
import org.arch.common.modules.archoverall.vo.ArchiAssetVO;
import org.arch.common.modules.archoverall.vo.ArchiVersionVO;
......
package org.arch.overall.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.arch.common.modules.archoverall.dto.asset.ArchiAssetInfoDTO;
import org.arch.common.modules.archoverall.dto.DelDTO;
import org.arch.overall.entity.AssetInfo;
import org.arch.overall.vo.AssetInfoLevelVO;
import java.util.List;
/**
* <p>
* 资产架构 服务类
* </p>
*
* @author author
* @since 2024-01-09
*/
public interface ArchiAssetSysService extends IService<AssetInfo> {
/**
* 分页查询
*
* @param params 参数
* @return {@link IPage }<{@link AssetInfo }>
*/
IPage<AssetInfo> iPage(ArchiAssetInfoDTO params);
/**
* 列表查询
*
* @param params 参数
* @return {@link List }<{@link AssetInfo }>
*/
List<AssetInfo> assetList(ArchiAssetInfoDTO params);
Boolean inster(ArchiAssetInfoDTO params);
Boolean update(ArchiAssetInfoDTO params);
/**
* 批量删除
*
* @param params 参数
*/
Boolean delBatch(DelDTO params);
Boolean extend(ArchiAssetInfoDTO params);
List<AssetInfoLevelVO> assetInfoLevel(ArchiAssetInfoDTO params);
/**
* 停用
*
* @param params 参数
* @return {@link Boolean }
*/
Boolean stop(ArchiAssetInfoDTO params);
}
......@@ -2,8 +2,8 @@ package org.arch.overall.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.arch.common.modules.archoverall.dto.ArchiEleRelaConstrainDTO;
import org.arch.common.modules.archoverall.dto.ArchiEleRelaDTO;
import org.arch.common.modules.archoverall.dto.ele.ArchiEleRelaConstrainDTO;
import org.arch.common.modules.archoverall.dto.ele.ArchiEleRelaDTO;
import org.arch.common.modules.archoverall.dto.BatchUpdateRelaDTO;
import org.arch.common.modules.archoverall.vo.ArchiEleRelaNameVO;
import org.arch.common.modules.archoverall.vo.ArchiEleRelaVO;
......
......@@ -2,7 +2,7 @@ package org.arch.overall.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.arch.common.modules.archoverall.dto.ArchiElementDTO;
import org.arch.common.modules.archoverall.dto.ele.ArchiElementDTO;
import org.arch.common.modules.archoverall.dto.BatchUpdateDTO;
import org.arch.overall.entity.ArchiEleProperty;
import org.arch.overall.entity.ArchiElement;
......
package org.arch.overall.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.arch.common.modules.archoverall.dto.asset.ArchiAssetInfoDTO;
import org.arch.common.modules.archoverall.dto.ArchiListResultDTO;
import org.arch.common.modules.archoverall.dto.ele.ArchiMetaModelDTO;
import org.arch.overall.entity.ArchiMetaModel;
import java.util.List;
public interface ArchiMetaModelService extends IService<ArchiMetaModel> {
/**
* 删除
*
* @param archiMetaModels Archi 元模型
* @return {@link Boolean }
*/
Boolean del(ArchiMetaModel archiMetaModels);
List<ArchiMetaModel> selectVer();
/**
* 插入
*
* @param dto DTO
* @return {@link Boolean }
*/
Long insert(ArchiMetaModel dto);
/**
* 更新
*
* @return {@link Boolean }
*/
Boolean update(ArchiMetaModel dto);
/**
* 更新 MX 图形模型
*
* @param dto DTO
* @return int
*/
Boolean updateMxGraphModel(ArchiMetaModelDTO dto);
/**
* 查询架构原模型
*
* @param id 同上
* @return {@link ArchiMetaModel}
*/
ArchiMetaModel findMetaModelById(Long id);
/**
* 获取画布左侧资产列表
*
* @param params 参数
* @return {@link ArchiListResultDTO }
*/
ArchiListResultDTO getArchiAssetList(ArchiAssetInfoDTO params);
/**
* 分页列表
*
* @param dto DTO
* @return {@link IPage }<{@link ArchiMetaModel }>
*/
IPage<ArchiMetaModel> gtArchiMetaModel(ArchiMetaModelDTO dto);
/**
* 获取画布左侧资产列表
*
* @param params 参数
* @return {@link ArchiListResultDTO }
*/
ArchiListResultDTO getArchiAssetList1(ArchiAssetInfoDTO params);
/**
* 获取画布左侧标准元素列表
*
* @param type 类型 1:常规图元 2:标准图元
* @return {@link ArchiListResultDTO }
*/
ArchiListResultDTO getEleListLeft(Integer type);
}
package org.arch.overall.service;
import org.arch.common.modules.archoverall.vo.ArchiModelDictVO;
import org.arch.overall.entity.ArchiModelDict;
import org.mapstruct.Mapper;
/**
* <p>
*
* </p>
*
* @author makejava
* @since 2023-12-25
*/
@Mapper(componentModel = "spring")
public interface ArchiModelDictCovert {
ArchiModelDictVO convertToVO(ArchiModelDict archiModelDict);
}
package org.arch.overall.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.arch.common.modules.archoverall.dto.ele.ArchiModelDictDetailDTO;
import org.arch.common.modules.archoverall.vo.ArchiModelDictDetailVO;
import org.arch.common.modules.base.dto.BathRemoveDTO;
import org.arch.overall.entity.ArchiModelDict;
import org.arch.overall.entity.ArchiModelDictDetail;
import java.util.List;
/**
* <p>
* 元模型数据字典详情 服务类
* </p>
*
* @author
* @since 2024-02-22
*/
public interface ArchiModelDictDetailService extends IService<ArchiModelDictDetail> {
Boolean insert(List<ArchiModelDictDetailDTO> dto);
Boolean update(ArchiModelDictDetailDTO dto);
Boolean del(BathRemoveDTO dto);
List<ArchiModelDictDetailVO> getDictDetails(String key);
List<ArchiModelDict> getAllDict();
}
package org.arch.overall.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.arch.common.modules.archoverall.dto.ele.ArchiModelDictDTO;
import org.arch.common.modules.archoverall.vo.ArchiModelDictDetailVO;
import org.arch.common.modules.archoverall.vo.ArchiModelDictVO;
import org.arch.common.modules.base.dto.BathRemoveDTO;
import org.arch.overall.entity.ArchiModelDict;
import java.util.List;
/**
* <p>
* 元模型数据字典 服务类
* </p>
*
* @author
* @since 2024-02-22
*/
public interface ArchiModelDictService extends IService<ArchiModelDict> {
IPage<ArchiModelDictVO> page(ArchiModelDictDTO dto);
Boolean insert(ArchiModelDictDTO dto);
Boolean update(ArchiModelDictDTO dto);
ArchiModelDictVO detail(ArchiModelDictDTO dto);
Boolean post(ArchiModelDictDTO dto);
Boolean del(BathRemoveDTO dto);
/**
* 获取元模型字典详情
*
* @param value 字典值
* @return {@link List }<{@link ArchiModelDictDetailVO }>
*/
List<ArchiModelDictDetailVO> getDictDetails(String value);
}
......@@ -20,6 +20,10 @@ import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.arch.common.modules.archoverall.dto.*;
import org.arch.common.modules.archoverall.dto.asset.ArchiAssetDTO;
import org.arch.common.modules.archoverall.dto.asset.ArchiAssetInfoDTO;
import org.arch.common.modules.archoverall.dto.asset.ArchiAssetsRelationDTO;
import org.arch.common.modules.archoverall.dto.asset.ArchiAssetsRelationQueryDTO;
import org.arch.common.modules.archoverall.vo.ArchiAbilityAssetsRelationQueryVO;
import org.arch.common.modules.archoverall.vo.ArchiAssetVO;
import org.arch.common.modules.archoverall.vo.ArchiVersionVO;
......
......@@ -14,8 +14,8 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.compress.utils.Lists;
import org.arch.common.modules.archoverall.dto.ArchiAssetInfoDTO;
import org.arch.common.modules.archoverall.dto.ArchiAssetVisalDTO;
import org.arch.common.modules.archoverall.dto.asset.ArchiAssetInfoDTO;
import org.arch.common.modules.archoverall.dto.asset.ArchiAssetVisalDTO;
import org.arch.common.modules.archoverall.vo.ArchVisualVO;
import org.arch.common.modules.archoverall.dto.DelDTO;
import org.arch.overall.dto.ArchiDto;
......
package org.arch.overall.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Assert;
import com.alibaba.cloud.commons.lang.StringUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.type.CollectionType;
import org.arch.common.modules.archoverall.dto.asset.ArchiAssetExtendDTO;
import org.arch.common.modules.archoverall.dto.asset.ArchiAssetInfoDTO;
import org.arch.common.modules.archoverall.dto.DelDTO;
import org.arch.common.modules.archoverall.vo.ArchiModelDictDetailVO;
import org.arch.enums.ArchiStateEnum;
import org.arch.overall.entity.ArchiAssetAppPrj;
import org.arch.overall.entity.ArchiAssetSystem;
import org.arch.overall.entity.AssetInfo;
import org.arch.overall.mapper.ArchiAssetAppPrjMapper;
import org.arch.overall.mapper.ArchiAssetInfoMapper;
import org.arch.overall.mapper.ArchiAssetSystemMapper;
import org.arch.overall.service.ArchiAssetInfoService;
import org.arch.overall.service.ArchiAssetService;
import org.arch.overall.service.ArchiAssetSysService;
import org.arch.overall.service.ArchiModelDictDetailService;
import org.arch.overall.vo.AssetInfoLevelVO;
import org.arch.utils.VersionUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.*;
/**
* <p>
* 总体架构 服务实现类
* </p>
*
* @author author
* @since 2024-01-09
*/
@Service
public class ArchiAssetSysServiceImpl extends ServiceImpl<ArchiAssetInfoMapper, AssetInfo> implements ArchiAssetSysService {
@Autowired
private ArchiAssetSystemMapper archiAssetSystemMapper;
@Autowired
private ArchiAssetAppPrjMapper archiAssetAppPrjMapper;
@Autowired
private ArchiAssetSysService archiAssetSysService;
@Autowired
private ArchiAssetService archiAssetService;
@Autowired
private ArchiAssetInfoMapper archiAssetInfoMapper;
@Autowired
private ArchiAssetInfoService archiAssetInfoService;
@Autowired
private ArchiModelDictDetailService archiModelDictDetailService;
@Override
public IPage<AssetInfo> iPage(ArchiAssetInfoDTO params) {
Page<AssetInfo> page = PageDTO.of(params.getCurrent(), params.getPageSize());
Long prjId = params.getPrjId();
Long appId = params.getAppId();
if (null == prjId && null == appId) {
return page;
}
return baseMapper.query(params, page);
}
@Override
public List<AssetInfo> assetList(ArchiAssetInfoDTO params) {
return baseMapper.query(params);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean inster(ArchiAssetInfoDTO params) {
String assetNumber = params.getAssetNumber();
Assert.notEmpty(assetNumber, "资产编号不能为空");
Long graphId = params.getGraphId();
Assert.notNull(graphId, "图形ID不能为空");
Long archiBelongId = params.getArchiBelongId();
Assert.notNull(archiBelongId, "架构所属ID不能为空");
Long l = archiAssetInfoMapper.selectCount(Wrappers.<AssetInfo>lambdaQuery()
.eq(AssetInfo::getAssetNumber, assetNumber)
.eq(AssetInfo::getArchiBelongId, archiBelongId)
.eq(Objects.nonNull(params.getArchiStage()), AssetInfo::getArchiStage, params.getArchiStage())
.eq(Objects.nonNull(params.getArchiAssetState()), AssetInfo::getArchiAssetState, params.getArchiAssetState()));
Assert.isFalse(l > 0, "资产编号已存在");
// 构建查询条件
LambdaQueryWrapper<ArchiAssetSystem> wrapper = new LambdaQueryWrapper<ArchiAssetSystem>()
.select(ArchiAssetSystem::getVersionId)
.eq(ArchiAssetSystem::getArchiStatus, 1);
// 查询最新版本
ArchiAssetSystem version = archiAssetSystemMapper.selectOne(wrapper);
Assert.notNull(version, "最新版本不存在");
params.setVersionId(version.getVersionId());
AssetInfo asset = new AssetInfo();
BeanUtil.copyProperties(params, asset);
Date time = Calendar.getInstance().getTime();
asset.setCreateTime(time);
asset.setLastUpdateTime(time);
asset.setDelFlag(0);
// 20240425取消资产名称重复校验
// Long count = archiAssetInfoMapper.selectCount(
// Wrappers.lambdaQuery(AssetInfo.class)
// .eq(AssetInfo::getAssetName, params.getAssetName())
// .eq(Objects.nonNull(params.getCreateMan()), AssetInfo::getCreateMan, params.getCreateMan())
// .eq(Objects.nonNull(params.getArchiAssetTypeId()), AssetInfo::getArchiAssetTypeId, params.getArchiAssetTypeId())
// .eq(Objects.nonNull(params.getArchiEleId()), AssetInfo::getArchiEleId, params.getArchiEleId())
// .eq(Objects.nonNull(params.getArchiAssetType()), AssetInfo::getArchiAssetType, params.getArchiAssetType())
// .eq(Objects.nonNull(params.getArchiStage()), AssetInfo::getArchiStage, params.getArchiStage())
// .eq(Objects.nonNull(params.getArchiAssetState()), AssetInfo::getArchiAssetState, params.getArchiAssetState())
// .eq(Objects.nonNull(params.getIsExtend()), AssetInfo::getIsExtend, params.getIsExtend())
// .eq(AssetInfo::getState, 1)
// .eq(AssetInfo::getDelFlag, 0));
// Assert.isFalse(count > 0, "架构组件名称已存在");
// 将JSON对象转换为字符串
List<JSONObject> fieldsValue = params.getFieldsValue();
String fieldsValueStr = JSON.toJSONString(fieldsValue, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty);
asset.setFieldsValue(fieldsValueStr);
List<JSONObject> targetAsset = params.getTargetAsset();
String targetAssetStr = JSON.toJSONString(targetAsset, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty);
asset.setTargetAsset(targetAssetStr);
int insertResult = archiAssetInfoMapper.insert(asset);
params.setAssetId(asset.getAssetId());
params.setAssetCode(asset.getAssetCode());
insertArchiAssetAppPrj(params);
return insertResult > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean update(ArchiAssetInfoDTO params) {
AssetInfo one = archiAssetInfoMapper.selectById(params.getAssetId());
Assert.notNull(one, "架构不存在");
Integer state = params.getState();
if (1 != state) {
String assetNumber = params.getAssetNumber();
Assert.notEmpty(assetNumber, "资产编号不能为空");
Long archiBelongId = params.getArchiBelongId();
Assert.notNull(archiBelongId, "架构所属ID不能为空");
Long l = archiAssetInfoMapper.selectCount(Wrappers.<AssetInfo>lambdaQuery()
.eq(AssetInfo::getAssetNumber, assetNumber)
.eq(AssetInfo::getArchiBelongId, archiBelongId)
.eq(Objects.nonNull(params.getArchiStage()), AssetInfo::getArchiStage, params.getArchiStage())
.eq(Objects.nonNull(params.getArchiAssetState()), AssetInfo::getArchiAssetState, params.getArchiAssetState())
.ne(AssetInfo::getAssetId, params.getAssetId()));
Assert.isFalse(l > 0, "资产编号已存在");
}
if (params.getState() == 1 && StringUtils.isBlank(params.getVersion())) {
params.setVersion(archiAssetInfoService.selectVer());
} else if (params.getState() == 1 && StringUtils.isNotBlank(params.getVersion())) {
List<AssetInfo> assetMaxVer = archiAssetService.maxVer(params);
String lastMaxVer = assetMaxVer.get(0).getVersion();
String str = params.getVersion();
String ver = VersionUtil.getNextVersion(lastMaxVer);
params.setVersion(ver);
archiAssetInfoService.inster(params);
params.setState(0);
params.setVersion(str);
}
AssetInfo asset = new AssetInfo();
BeanUtil.copyProperties(params, asset);
Date time = Calendar.getInstance().getTime();
asset.setLastUpdateTime(time);
// 将JSON对象转换为字符串
List<JSONObject> fieldsValue = params.getFieldsValue();
if (!CollectionUtils.isEmpty(fieldsValue)) {
String fieldsValueStr = JSON.toJSONString(fieldsValue, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty);
asset.setFieldsValue(fieldsValueStr);
}
List<JSONObject> targetAsset = params.getTargetAsset();
if (!CollectionUtils.isEmpty(targetAsset)) {
String targetAssetStr = JSON.toJSONString(targetAsset, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty);
asset.setTargetAsset(targetAssetStr);
}
return archiAssetInfoMapper.updateById(asset) > 0;
}
@Override
public Boolean delBatch(DelDTO requestMap) {
List<Long> assetIds = requestMap.getAssetId();
Assert.isFalse(assetIds.isEmpty(), "至少选择一条资产");
assetIds.forEach(e -> {
AssetInfo assetInfo = archiAssetInfoMapper.selectById(e);
Assert.isFalse(assetInfo.getState() == 1, "发布状态不可删除");
});
return archiAssetInfoMapper.deleteBatchIds(assetIds) > 0;
}
@Override
public Boolean extend(ArchiAssetInfoDTO params) {
List<ArchiAssetExtendDTO> extendList = params.getExtend();
if (extendList == null || extendList.isEmpty()) {
throw new IllegalArgumentException("Extend参数不能为空");
}
for (ArchiAssetExtendDTO extendParams : extendList) {
ArchiAssetInfoDTO newParams = new ArchiAssetInfoDTO();
newParams.setAssetIdList(extendParams.getAssetIdList());
newParams.setArchiBelongId(Long.valueOf(extendParams.getArchiBelongId()));
List<AssetInfo> extendAsset = archiAssetInfoService.assetList(newParams);
for (AssetInfo asset : extendAsset) {
// 创建新的参数对象,避免修改原始参数对象
ArchiAssetInfoDTO newParamsCopy = new ArchiAssetInfoDTO();
// 将字符串转换为JSON对象
// 20240416改造注释
// String fieldsValueStr = asset.getFieldsValue();
// String targetAssetStr = asset.getTargetAsset();
// 创建ObjectMapper对象
ObjectMapper objectMapper = new ObjectMapper();
// 构建泛型类型,用于List<JSONObject>
CollectionType listType = objectMapper.getTypeFactory().constructCollectionType(List.class, JSONObject.class);
// 将字符串转换为JSON对象
// 20240416改造注释
// List<JSONObject> fieldsValue = objectMapper.readValue(fieldsValueStr, listType);
// List<JSONObject> targetAsset = objectMapper.readValue(targetAssetStr, listType);
BeanUtil.copyProperties(asset, newParamsCopy, "assetId", "fieldsValue", "targetAsset", "archiStage");
newParamsCopy.setAssetId(null);
newParamsCopy.setIsExtend(params.getIsExtend()); // 来源:0系统资产,1总体资产,2概设关联业务管理同步更新 #
newParamsCopy.setArchiStage(params.getArchiStage()); // 1:总体架构 #;2:系统架构
// newParamsCopy.setFieldsValue(fieldsValue);
// newParamsCopy.setTargetAsset(targetAsset);
newParamsCopy.setBuildType(params.getBuildType());
newParamsCopy.setArchiBelongId(Long.valueOf(extendParams.getArchiBelongId()));
newParamsCopy.setAppId(params.getAppId());
newParamsCopy.setAppCode(params.getAppCode());
newParamsCopy.setAppName(params.getAppName());
newParamsCopy.setPrjId(params.getAppId());
newParamsCopy.setPrjCode(params.getPrjCode());
newParamsCopy.setPrjName(params.getPrjName());
if (params.getIsExtend() == 1) {
archiAssetSysService.inster(newParamsCopy);
} else if (params.getIsExtend() == 2) {
archiAssetInfoService.inster(newParamsCopy);
}
params.setAssetId(newParamsCopy.getAssetId());
params.setAssetCode(newParamsCopy.getAssetCode());
params.setAssetName(newParamsCopy.getAssetName());
insertArchiAssetAppPrj(params);
}
}
return null;
}
public void insertArchiAssetAppPrj(ArchiAssetInfoDTO params) {
ArchiAssetAppPrj aaap = new ArchiAssetAppPrj();
aaap.setAppId(params.getAppId());
aaap.setAppCode(params.getAppCode());
aaap.setAppName(params.getAppName());
aaap.setPrjId(params.getPrjId());
aaap.setPrjCode(params.getPrjCode());
aaap.setPrjName(params.getPrjName());
aaap.setAssetId(params.getAssetId());
aaap.setAssetCode(params.getAssetCode());
aaap.setAssetName(params.getAssetName());
aaap.setArchiType(params.getArchiType());
archiAssetAppPrjMapper.insert(aaap);
}
@Override
public List<AssetInfoLevelVO> assetInfoLevel(ArchiAssetInfoDTO params) {
// 查询数据字典架构归属信息
String typeValue = "archi_belong";
List<ArchiModelDictDetailVO> archiBelongs = archiModelDictDetailService.getDictDetails(typeValue);
List<AssetInfoLevelVO> assetInfoLevels = new ArrayList<>();
for (ArchiModelDictDetailVO archiBelong : archiBelongs) {
AssetInfoLevelVO assetInfoLevel = new AssetInfoLevelVO();
assetInfoLevel.setArchiBelongId(archiBelong.getValue());
assetInfoLevel.setArchiBelongName(archiBelong.getLabel());
params.setArchiBelongId(Long.valueOf(archiBelong.getValue()));
params.setArchiAssetState(2);
params.setArchiStage(1);
params.setState(1);
List<AssetInfo> assetList = archiAssetInfoMapper.query(params);
assetInfoLevel.setSubList(assetList);
assetInfoLevels.add(assetInfoLevel);
}
return assetInfoLevels;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean stop(ArchiAssetInfoDTO params) {
AssetInfo info = getById(params.getAssetId());
Assert.notNull(info, "资产不存在");
info.setState(ArchiStateEnum.DISABLED.getCode());
return updateById(info);
}
}
......@@ -10,8 +10,8 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.arch.common.modules.archoverall.dto.ArchiEleRelaConstrainDTO;
import org.arch.common.modules.archoverall.dto.ArchiEleRelaDTO;
import org.arch.common.modules.archoverall.dto.ele.ArchiEleRelaConstrainDTO;
import org.arch.common.modules.archoverall.dto.ele.ArchiEleRelaDTO;
import org.arch.common.modules.archoverall.dto.BatchUpdateRelaDTO;
import org.arch.common.modules.archoverall.vo.ArchiEleRelaNameVO;
import org.arch.common.modules.archoverall.vo.ArchiEleRelaVO;
......
......@@ -14,7 +14,7 @@ import org.arch.overall.entity.ArchiEleProperty;
import org.arch.overall.entity.ArchiElement;
import org.arch.overall.mapper.ArchiElePropertyMapper;
import org.arch.overall.mapper.ArchiElementMapper;
import org.arch.common.modules.archoverall.dto.ArchiElementDTO;
import org.arch.common.modules.archoverall.dto.ele.ArchiElementDTO;
import org.arch.common.modules.archoverall.dto.BatchUpdateDTO;
import org.arch.overall.service.ArchiElementService;
import org.arch.utils.VersionUtil;
......
package org.arch.overall.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.UUID;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import org.arch.common.modules.archoverall.dto.*;
import org.arch.common.modules.archoverall.dto.asset.ArchiAssetInfoDTO;
import org.arch.common.modules.archoverall.dto.ele.ArchiElementDTO;
import org.arch.common.modules.archoverall.dto.ele.ArchiMetaModelDTO;
import org.arch.common.modules.archoverall.vo.ArchiModelDictDetailVO;
import org.arch.overall.dto.ArchiEleDto;
import org.arch.overall.entity.*;
import org.arch.overall.mapper.ArchiElementMapper;
import org.arch.overall.mapper.ArchiMetaModelMapper;
import org.arch.overall.mapper.ArchiViewEleMapper;
import org.arch.overall.service.*;
import org.arch.utils.VersionUtil;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.arch.overall.mapper.GraphRepositoryMapper;
import java.util.*;
import java.util.stream.Collectors;
@Service
@RequiredArgsConstructor
public class ArchiMetaModelImpl extends ServiceImpl<ArchiMetaModelMapper, ArchiMetaModel> implements ArchiMetaModelService {
private final ArchiMetaModelMapper archiMetaModelMapper;
private final GraphRepositoryMapper graphRepositoryMapper;
private final ArchiModelDictService archiModelDictService;
private final ArchiViewEleMapper archiViewEleMapper;
private final ArchiElementMapper archiElementMapper;
private final ArchiAssetInfoService archiAssetInfoService;
private final ArchiAssetSysService archiAssetSysService;
private final ArchiElementService archiElementService;
private final ArchiModelDictDetailService archiModelDictDetailService;
private final ArchiElementService elementService;
private final ArchiEleRelaService eleRelaService;
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean del(ArchiMetaModel archiMetaModels) {
ArchiMetaModel model = findMetaModelById(archiMetaModels.getMetaModelId());
Assert.notNull(model, "未找到元模型");
Integer state = model.getState();
Assert.isFalse(1 == state, "当前状态下不可删除!");
return removeById(archiMetaModels);
}
@Override
public List<ArchiMetaModel> selectVer() {
return archiMetaModelMapper.selectVer();
}
@Override
@Transactional(rollbackFor = Exception.class)
public Long insert(ArchiMetaModel archiMetaModels) {
archiMetaModels.setMetaModelCode(UUID.fastUUID().toString());
archiMetaModels.setGraphId(graphRepositoryMapper.initArchiModel());
archiMetaModels.setState(2);
archiMetaModels.setDelFlag(0);
save(archiMetaModels);
return archiMetaModels.getMetaModelId();
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean update(ArchiMetaModel dto) {
Assert.isFalse(dto.getMetaModelId() == null, "修改元模型主键不能为空!");
String str = dto.getVersion();
String ver = VersionUtil.getNextVersion(str);
dto.setVersion(ver);
return updateById(dto);
}
@Override
public IPage<ArchiMetaModel> gtArchiMetaModel(ArchiMetaModelDTO dto) {
return archiMetaModelMapper.getYnMol(dto, PageDTO.of(dto.getCurrent(), dto.getPageSize()));
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateMxGraphModel(ArchiMetaModelDTO dto) {
ArchiMetaModel archiMetaModel = archiMetaModelMapper.selectById(dto.getMetaModelId());
Assert.notNull(archiMetaModel, "元模型不存在");
GraphRepository repository = graphRepositoryMapper.selectById(archiMetaModel.getGraphId());
repository.setIcon(dto.getMetaModelSvg());
repository.setContent(dto.getMetaModelData());
return graphRepositoryMapper.updateById(repository) > 0;
}
@Override
public ArchiMetaModel findMetaModelById(Long id) {
return archiMetaModelMapper.findMetaModelById(id);
}
@Override
public ArchiListResultDTO getArchiAssetList(ArchiAssetInfoDTO params) {
String value = Long.toString(params.getArchiBelongId());
List<ArchiModelDictDetailVO> archiBelongs = archiModelDictService.getDictDetails(value);
List<ArchiInfoDto> dtos = new ArrayList<>();
List<ArchiViewEle> archiViewEles = archiViewEleMapper
.selectList(Wrappers.lambdaQuery(ArchiViewEle.class)
.eq(Objects.nonNull(params.getArchiViewId()), ArchiViewEle::getArchiViewId, params.getArchiViewId()));
// 元素ID集合
List<Long> eleIdList = new ArrayList<>();
if (archiViewEles.size() > 0) {
if (archiViewEles.get(0).getArchiEleId() != null && archiViewEles.get(0).getArchiEleId().length() != 0) {
String[] eleIds = archiViewEles.get(0).getArchiEleId().split(",");
for (String eleId : eleIds) {
eleIdList.add(Long.parseLong(eleId.trim()));
}
}
} else {
throw new IllegalArgumentException("架构视图配置不能为空!");
}
params.setEleIdList(eleIdList);
ArchiElement eleParams = new ArchiElement();
eleParams.setEleIdList(eleIdList);
ArchiElementDTO dto = new ArchiElementDTO();
dto.setDelFlag(0);
dto.setState(1);
dto.setArchiBelongId(params.getArchiBelongId());
dto.setEleIdList(eleIdList);
List<ArchiElement> eles = archiElementMapper.gtEleList(dto);
// 将架构元素分组存放,键:架构归属Id,值:元素列表
Map<Long, List<ArchiElement>> arcElesByBelongIdMap = new HashMap<>();
eles.forEach(ele -> {
List<ArchiElement> eleList = arcElesByBelongIdMap.get(ele.getArchiBelongId());
if (eleList == null || eleList.isEmpty()) {
eleList = new ArrayList<>();
}
eleList.add(ele);
arcElesByBelongIdMap.put(ele.getArchiBelongId(), eleList);
});
// 遍历架构归属
archiBelongs.forEach(belong -> {
ArchiInfoDto archiInfoDto = new ArchiInfoDto();
archiInfoDto.setArciBelongId(belong.getValue());
archiInfoDto.setArciBelongName(belong.getLabel());
// 遍历元素
List eleDtos = new ArrayList<>();
List<ArchiElement> eleList = arcElesByBelongIdMap.get(params.getArchiBelongId().longValue());
if (eleList != null) {
List<AssetInfo> assetsList;
// 查询架构资产
Integer archiStage = params.getArchiStage();
if (1 == archiStage) {
assetsList = archiAssetInfoService.assetList(params);
// 20240419分页改造注释
// assets = archiAssetInfoService.iPage(params,new Page<>(current, pageSize));
} else {
assetsList = archiAssetSysService.assetList(params);
// 20240419分页改造注释
// assets = archiAssetSysService.iPage(params,new Page<>(current, pageSize));
}
// log.info("打印出来看看资产:");
// assets.getRecords().forEach(asset -> log.info(asset.toString()));
Map<Long, List<AssetInfo>> assetMap = new HashMap<>();
Map<Long, List<AssetInfo>> assetListMap = new HashMap<>();
Map<Long, Integer> assetCountMap = new HashMap<>();
if (!CollectionUtils.isEmpty(assetsList)) {
// 20240419分页改造注释
// if (assets != null && !assets.getRecords().isEmpty()) {
assetsList.stream().forEach(asset -> {
// 20240419分页改造注释
// assets.getRecords().forEach(asset -> {
List<AssetInfo> archis = assetMap.get(asset.getArchiEleId());
if (archis == null) {
archis = new ArrayList<>();
}
archis.add(asset);
assetMap.put(asset.getArchiEleId(), archis);
});
for (Map.Entry<Long, List<AssetInfo>> entry : assetMap.entrySet()) {
Long archiEleId = entry.getKey();
List<AssetInfo> assetList = entry.getValue();
assetCountMap.put(archiEleId, assetList.size());
}
assetsList.stream().forEach(asset -> {
Integer pageSize = params.getPageSize();
Integer current = params.getCurrent();
if (current == null) {
current = 1;
}
if (pageSize == null) {
pageSize = 500;
}
List<AssetInfo> archis = assetListMap.get(asset.getArchiEleId());
if (archis == null) {
archis = new ArrayList<>();
}
archis.add(asset);
int total = assetCountMap.getOrDefault(asset.getArchiEleId(), 0);
if (total == archis.size()) {
int startIndex = (current - 1) * pageSize;
int endIndex = Math.min(startIndex + pageSize, archis.size());
if (startIndex < archis.size() && endIndex <= archis.size()) {
archis = archis.subList(startIndex, endIndex);
} else if (startIndex < archis.size() && endIndex > archis.size()) {
startIndex = Math.max(0, archis.size() - pageSize);
archis = archis.subList(startIndex, archis.size());
}
}
assetListMap.put(asset.getArchiEleId(), archis);
});
}
// 查询元素属性
List<ArchiEleProperty> proys = archiElementService.findMetaModelProperties(1, eleIdList);
Map<Long, List<ArchiEleProperty>> propertiesByTypeIdMap = new HashMap<>();
if (!CollectionUtils.isEmpty(proys)) {
proys.stream().forEach(property -> {
List<ArchiEleProperty> ynMolProys = propertiesByTypeIdMap.get(property.getTypeId());
if (ynMolProys == null) {
ynMolProys = new ArrayList<>();
}
ynMolProys.add(property);
propertiesByTypeIdMap.put(property.getTypeId(), ynMolProys);
});
}
eleList.forEach(ele -> {
ArchiEleDto eleDto = new ArchiEleDto();
// 添加属性信息
eleDto.setElementId(ele.getElementId());
eleDto.setAssets(assetListMap.get(ele.getElementId()));
eleDto.setDicys(propertiesByTypeIdMap.get(ele.getElementId()));
eleDto.setEleName(ele.getElementName());
eleDto.setEleBelongId(ele.getArchiBelongId());
eleDto.setArchiLevelId(ele.getArchiLevelId());
eleDto.setEleType(ele.getEleType());
eleDto.setIcon(ele.getIcon());
eleDto.setIconName(ele.getIconName());
eleDto.setColor(ele.getColor());
eleDto.setShapeHeight(ele.getShapeHeight());
eleDto.setShapeWidth(ele.getShapeWidth());
eleDto.setContent(ele.getContent());
eleDto.setReferenceRelationship(ele.getReferenceRelationship());
eleDto.setExample(ele.getExample());
eleDto.setDefinition(ele.getDefinition());
eleDto.setScope(ele.getScope());
eleDto.setEleByAssetTotal(String.valueOf(assetCountMap.getOrDefault(ele.getElementId(), 0)));
eleDtos.add(eleDto);
});
}
// 添加属性
archiInfoDto.setEleDtos(eleDtos);
dtos.add(archiInfoDto);
});
// 创建包装后的结果对象
ArchiListResultDTO result = new ArchiListResultDTO();
result.setDataEle(dtos); // 设置data字段的值
return result;
}
@Override
public ArchiListResultDTO getArchiAssetList1(ArchiAssetInfoDTO params) {
ArchiListResultDTO result = new ArchiListResultDTO();
List<ArchiInfoDto> dos = new ArrayList<>();
// 兼容之前版本查询元模型字典
String value = Long.toString(params.getArchiBelongId());
List<ArchiModelDictDetailVO> archiBelongs = archiModelDictService.getDictDetails(value);
// 查询视图绑定元素
archiBelongs.forEach(it -> {
ArchiInfoDto archiInfoDto = new ArchiInfoDto();
archiInfoDto.setArciBelongId(it.getValue());
archiInfoDto.setArciBelongName(it.getLabel());
archiInfoDto.setEleDtos(archiElementMapper.queryEleByAssertView(params.getArchiViewId()));
dos.add(archiInfoDto);
});
result.setDataEle(dos);
return result;
}
/**
* 获取左侧元素列表。
*
* @return ArchiListResultDTO - 包含元素列表的数据传输对象。
*/
@Override
public ArchiListResultDTO getEleListLeft(Integer type) {
// 创建一个新的ArchiInfoDto列表
List<ArchiInfoDto> dtos = new ArrayList<>();
// 获取架构归属详情
List<ArchiModelDictDetailVO> archiBelongs = archiModelDictDetailService.getDictDetails("archi_belong");
// 获取归属ID列表
List<String> belongIds = archiBelongs.stream()
.map(ArchiModelDictDetailVO::getValue)
.collect(Collectors.toList());
// 创建一个新的ArchiElementDTO并设置其属性
ArchiElementDTO dto = new ArchiElementDTO();
dto.setState(1);
dto.setBelongIdList(belongIds);
dto.setEleType(type);
// 获取架构元素列表
List<ArchiElement> eles = archiElementMapper.gtEleList(dto);
// 将架构元素按其架构归属ID分组
Map<Long, List<ArchiElement>> arcElesByBelongIdMap = eles.stream()
.collect(Collectors.groupingBy(ArchiElement::getArchiBelongId));
// 遍历每个架构归属
archiBelongs.parallelStream().forEachOrdered(belong -> {
// 创建一个新的元素DTO列表
List eleDtos = new ArrayList<>();
// 创建一个新的ArchiInfoDto并设置其属性
ArchiInfoDto archiInfoDto = new ArchiInfoDto();
archiInfoDto.setArciBelongId(belong.getValue());
archiInfoDto.setArciBelongName(belong.getLabel());
// 获取此架构归属的元素列表
List<ArchiElement> eleList = arcElesByBelongIdMap.get(Long.parseLong(belong.getValue()));
if (eleList != null) {
// 创建一个新的元素ID列表
List<Long> eleIdList = new ArrayList<>();
eleList.forEach(ele -> {
eleIdList.add(ele.getElementId());
});
// 获取这些元素的属性
List<ArchiEleProperty> proys = elementService.findMetaModelProperties(1, eleIdList);
// 将属性按其类型ID分组
Map<Long, List<ArchiEleProperty>> propertiesByTypeIdMap = proys
.stream().collect(Collectors.groupingBy(ArchiEleProperty::getTypeId));
// 遍历每个元素
eleList.forEach(ele -> {
// 创建一个新的ArchiEleDto并设置其属性
ArchiEleDto eleDto = new ArchiEleDto();
BeanUtil.copyProperties(ele, eleDto);
eleDto.setEleName(ele.getElementName());
eleDto.setEleBelongId(ele.getArchiBelongId());
eleDto.setDicys(propertiesByTypeIdMap.get(ele.getElementId()));
// 将此ArchiEleDto添加到元素DTO列表中
eleDtos.add(eleDto);
});
}
// 设置此架构归属的元素DTO列表
archiInfoDto.setEleDtos(eleDtos);
// 将此ArchiInfoDto添加到ArchiInfoDto列表中
dtos.add(archiInfoDto);
});
// 创建一个新的ArchiListResultDTO并设置其属性
ArchiListResultDTO result = new ArchiListResultDTO();
result.setEleType(1 == type ? "标准图元" : "常规图元");
result.setDataEle(dtos);
// 创建一个新的ArchiInfoDto并设置其属性
ArchiInfoDto infoDto = new ArchiInfoDto();
infoDto.setArciBelongName("架构元素关系");
infoDto.setArciBelongId("0l");
// 获取架构元素关系列表
List<ArchiEleRela> eleRelas = eleRelaService.list(Wrappers.<ArchiEleRela>lambdaQuery()
.eq(ArchiEleRela::getState, 1)
.eq(ArchiEleRela::getDelFlag, 0));
// 设置此ArchiInfoDto的架构元素关系列表
infoDto.setEleDtos(eleRelas);
// 将此ArchiInfoDto添加到ArchiInfoDto列表中
dtos.add(infoDto);
// 返回结果
return result;
}
}
package org.arch.overall.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.RequiredArgsConstructor;
import org.arch.common.modules.archoverall.dto.ele.ArchiModelDictDetailDTO;
import org.arch.common.modules.archoverall.vo.ArchiModelDictDetailVO;
import org.arch.common.modules.base.dto.BathRemoveDTO;
import org.arch.overall.entity.ArchiModelDict;
import org.arch.overall.entity.ArchiModelDictDetail;
import org.arch.overall.mapper.ArchiModelDictDetailMapper;
import org.arch.overall.mapper.ArchiModelDictMapper;
import org.arch.overall.service.ArchiModelDictDetailService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 元模型数据字典详情 服务实现类
* </p>
*
* @author
* @since 2024-02-22
*/
@Service
@RequiredArgsConstructor
public class ArchiModelDictDetailServiceImpl extends ServiceImpl<ArchiModelDictDetailMapper, ArchiModelDictDetail> implements ArchiModelDictDetailService {
private final ArchiModelDictMapper archiModelDictMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insert(List<ArchiModelDictDetailDTO> dto) {
List<ArchiModelDictDetail> details = new ArrayList<>();
dto.forEach(it -> {
ArchiModelDictDetail detail = new ArchiModelDictDetail();
Long dictId = it.getDictId();
String label = it.getLabel();
String value = it.getValue();
Assert.notNull(dictId, "数据字典ID不能为空");
Assert.notBlank(label, "字段中文名不能为空");
Assert.notBlank(value, "字段值不能为空");
LambdaQueryWrapper<ArchiModelDictDetail> wrapper = Wrappers.lambdaQuery();
wrapper.eq(ArchiModelDictDetail::getDictId, it.getDictId());
wrapper.eq(ArchiModelDictDetail::getLabel, it.getLabel());
Assert.isFalse(count(wrapper) > 0, "字典中文名已存在");
LambdaQueryWrapper<ArchiModelDictDetail> wrapper1 = Wrappers.lambdaQuery();
wrapper1.eq(ArchiModelDictDetail::getDictId, it.getDictId());
wrapper1.eq(ArchiModelDictDetail::getValue, it.getValue());
Assert.isFalse(count(wrapper1) > 0, "字段值已存在");
detail.setDictId(dictId);
detail.setLabel(label);
detail.setValue(value);
detail.setSort(it.getSort());
detail.setRemark(it.getRemark());
details.add(detail);
});
return saveBatch(details);
}
@Override
public Boolean update(ArchiModelDictDetailDTO dto) {
ArchiModelDictDetail detail = new ArchiModelDictDetail();
Long id = dto.getId();
String label = dto.getLabel();
String value = dto.getValue();
ArchiModelDictDetail model = baseMapper.selectById(id);
Assert.notNull(id, "数据字典详情ID不能为空");
Assert.notBlank(label, "字段中文名不能为空");
Assert.notBlank(value, "字段值不能为空");
LambdaQueryWrapper<ArchiModelDictDetail> wrapper = Wrappers.lambdaQuery();
wrapper.eq(ArchiModelDictDetail::getLabel, dto.getLabel());
wrapper.eq(ArchiModelDictDetail::getDictId, model.getDictId());
wrapper.notIn(ArchiModelDictDetail::getId, dto.getId());
Assert.isFalse(count(wrapper) > 0, "字典中文名已存在");
LambdaQueryWrapper<ArchiModelDictDetail> wrapper1 = Wrappers.lambdaQuery();
wrapper1.eq(ArchiModelDictDetail::getValue, dto.getValue());
wrapper1.eq(ArchiModelDictDetail::getDictId, model.getDictId());
wrapper1.notIn(ArchiModelDictDetail::getId, dto.getId());
Assert.isFalse(count(wrapper1) > 0, "字段值已存在");
BeanUtil.copyProperties(dto, detail);
return updateById(detail);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean del(BathRemoveDTO dto) {
List<Long> ids = dto.getIds();
Assert.isFalse(CollUtil.isEmpty(ids), "请至少选择一条记录");
ids.forEach(it -> {
ArchiModelDictDetail detail = baseMapper.selectById(it);
Assert.notNull(detail, "该数据不存在");
});
return baseMapper.deleteBatchIds(ids) > 0;
}
@Override
public List<ArchiModelDictDetailVO> getDictDetails(String key) {
return baseMapper.selectJoinList(ArchiModelDictDetailVO.class,
new MPJLambdaWrapper<ArchiModelDictDetail>()
.selectAll(ArchiModelDictDetail.class)
.leftJoin(ArchiModelDict.class, ArchiModelDict::getId, ArchiModelDictDetail::getDictId)
.eq(ArchiModelDict::getTypeValue, key)
.eq(ArchiModelDict::getState, 1)
.orderByAsc(ArchiModelDictDetail::getSort));
}
@Override
public List<ArchiModelDict> getAllDict() {
LambdaQueryWrapper<ArchiModelDict> wrapper = Wrappers.lambdaQuery();
wrapper.eq(ArchiModelDict::getState, 1);
return archiModelDictMapper.selectList(wrapper);
}
}
package org.arch.overall.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.RequiredArgsConstructor;
import org.arch.common.modules.archoverall.dto.ele.ArchiModelDictDTO;
import org.arch.common.modules.archoverall.vo.ArchiModelDictDetailVO;
import org.arch.common.modules.archoverall.vo.ArchiModelDictVO;
import org.arch.common.modules.base.dto.BathRemoveDTO;
import org.arch.overall.entity.ArchiModelDict;
import org.arch.overall.entity.ArchiModelDictDetail;
import org.arch.overall.service.ArchiModelDictCovert;
import org.arch.overall.mapper.ArchiModelDictDetailMapper;
import org.arch.overall.mapper.ArchiModelDictMapper;
import org.arch.overall.service.ArchiModelDictService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
* <p>
* 元模型数据字典 服务实现类
* </p>
*
* @author
* @since 2024-02-22
*/
@Service
@RequiredArgsConstructor
public class ArchiModelDictServiceImpl extends ServiceImpl<ArchiModelDictMapper, ArchiModelDict> implements ArchiModelDictService {
private final ArchiModelDictCovert covert;
private final ArchiModelDictDetailMapper archiModelDictDetailMapper;
@Override
public IPage<ArchiModelDictVO> page(ArchiModelDictDTO dto) {
LambdaQueryWrapper<ArchiModelDict> wrapper = Wrappers.lambdaQuery();
wrapper.like(StrUtil.isNotBlank(dto.getName()), ArchiModelDict::getName, dto.getName());
wrapper.eq(Objects.nonNull(dto.getState()), ArchiModelDict::getState, dto.getState());
IPage<ArchiModelDict> iPage = baseMapper.selectPage(PageDTO.of(dto.getCurrent(), dto.getPageSize()), wrapper);
return iPage.convert(covert::convertToVO);
}
@Override
public Boolean insert(ArchiModelDictDTO dto) {
Assert.isFalse(StrUtil.isBlank(dto.getName()), "字典名称不能为空");
String typeValue = dto.getTypeValue();
Assert.isFalse(StrUtil.isBlank(typeValue), "字典标识不能为空");
// 只能输入英文或者下划线
Assert.isFalse(!typeValue.matches("^[a-zA-Z_]+$"), "字典标识只能输入英文和下划线");
LambdaQueryWrapper<ArchiModelDict> wrapper = Wrappers.lambdaQuery();
wrapper.eq(StrUtil.isNotBlank(dto.getName()), ArchiModelDict::getName, dto.getName());
Assert.isFalse(count(wrapper) > 0, "字典名称已存在");
LambdaQueryWrapper<ArchiModelDict> wrapper1 = Wrappers.lambdaQuery();
wrapper1.eq(StrUtil.isNotBlank(dto.getName()), ArchiModelDict::getTypeValue, dto.getTypeValue());
Assert.isFalse(count(wrapper1) > 0, "字典标识已存在");
ArchiModelDict model = new ArchiModelDict();
BeanUtil.copyProperties(dto, model);
return save(model);
}
@Override
public Boolean update(ArchiModelDictDTO dto) {
Assert.isFalse(Objects.isNull(dto.getId()), "元模型字典ID不能为空");
Assert.isFalse(StrUtil.isBlank(dto.getName()), "字典名称不能为空");
String typeValue = dto.getTypeValue();
Assert.isFalse(StrUtil.isBlank(typeValue), "字典标识不能为空");
Assert.isFalse(!typeValue.matches("^[a-zA-Z_]+$"), "字典标识只能输入英文和下划线");
LambdaQueryWrapper<ArchiModelDict> wrapper = Wrappers.lambdaQuery();
wrapper.eq(StrUtil.isNotBlank(dto.getName()), ArchiModelDict::getName, dto.getName());
wrapper.notIn(ArchiModelDict::getId, dto.getId());
Assert.isFalse(count(wrapper) > 0, "字典名称已存在");
LambdaQueryWrapper<ArchiModelDict> wrapper1 = Wrappers.lambdaQuery();
wrapper1.notIn(ArchiModelDict::getId, dto.getId());
wrapper1.eq(StrUtil.isNotBlank(dto.getName()), ArchiModelDict::getTypeValue, dto.getTypeValue());
Assert.isFalse(count(wrapper1) > 0, "字典标识已存在");
ArchiModelDict model = new ArchiModelDict();
BeanUtil.copyProperties(dto, model);
return updateById(model);
}
@Override
public ArchiModelDictVO detail(ArchiModelDictDTO dto) {
Assert.isFalse(Objects.isNull(dto.getId()), "元模型字典ID不能为空");
return baseMapper.selectJoinOne(ArchiModelDictVO.class, new MPJLambdaWrapper<ArchiModelDict>()
.selectAll(ArchiModelDict.class)
.selectCollection(ArchiModelDictDetail.class, ArchiModelDict::getDetailList)
.leftJoin(ArchiModelDictDetail.class, ArchiModelDictDetail::getDictId, ArchiModelDict::getId)
.eq(ArchiModelDict::getId, dto.getId())
.orderByDesc(ArchiModelDictDetail::getCreateTime));
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean post(ArchiModelDictDTO dto) {
Long id = dto.getId();
Byte state = dto.getState();
Assert.isFalse(Objects.isNull(id), "元模型字典ID不能为空");
Assert.isFalse(Objects.isNull(state), "状态不能为空");
ArchiModelDict dict = getById(dto.getId());
// 发布
if (state == 1) {
LambdaUpdateWrapper<ArchiModelDict> wrapper = Wrappers.lambdaUpdate();
wrapper.set(ArchiModelDict::getVersion, getVersion(dict.getVersion()));
wrapper.set(ArchiModelDict::getState, dto.getState());
wrapper.eq(ArchiModelDict::getId, dto.getId());
return update(wrapper);
}
// 停用
if (state == 0) {
LambdaUpdateWrapper<ArchiModelDict> wrapper = Wrappers.lambdaUpdate();
wrapper.set(ArchiModelDict::getState, state);
wrapper.eq(ArchiModelDict::getId, dto.getId());
return update(wrapper);
}
return false;
}
/**
* 获取版本号
* 如果传入的版本号为空或白名单,则基于当前日期生成格式为"yyyyMMdd-V1.MM.1"的版本号;
* 如果传入的版本号非空,会根据当前年份和传入版本号的年份判断是否需要重新生成版本号,
* 若年份相同,则在原有基础上加1小版本;
* 若年份不同,则生成新的版本号,格式为"yyyyMMdd-Vx.MM.1",x为当前年份减去传入版本号年份。
*
* @param version 当前版本号,格式为"yyyyMMdd-V1.MM.1",其中日期部分为可选。
* @return 返回计算后的版本号,字符串类型。
*/
private String getVersion(String version) {
Date date = new Date();
String v;
if (StrUtil.isBlank(version)) {
// 当版本号为空时,直接基于当前日期生成版本号
v = DateUtil.format(date, "yyyyMMdd") + "-V" + DateUtil.format(new Date(), "1.MM.1");
} else {
String[] split = version.split("-");
DateTime dateTime = DateUtil.parse(split[0]);
int year = dateTime.year();
int year1 = DateUtil.year(date);
// 判断当前年份与版本号年份是否相同,以决定如何生成新版本号
if (year1 - year == 0) {
// 当年份相同时,只增加小版本号
int lastDotIndex = version.lastIndexOf(".");
String majorVersion = version.substring(0, lastDotIndex);
int minorVersion = Integer.parseInt(version.substring(lastDotIndex + 1)) + 1;
v = majorVersion + "." + minorVersion;
} else {
// 当年份不同时,重新计算版本号,包括主版本和小版本
int sub = year1 - year;
v = DateUtil.format(date, "yyyyMMdd") + "-V" + (sub + 1) + DateUtil.format(new Date(), ".MM.1");
}
}
return v;
}
@Override
public List<ArchiModelDictDetailVO> getDictDetails(String value) {
return archiModelDictDetailMapper.selectJoinList(ArchiModelDictDetailVO.class,
new MPJLambdaWrapper<ArchiModelDictDetail>()
.selectAll(ArchiModelDictDetail.class)
.leftJoin(ArchiModelDict.class, ArchiModelDict::getId, ArchiModelDictDetail::getDictId)
.eq(ArchiModelDictDetail::getValue, value)
.eq(ArchiModelDict::getTypeValue, "archi_belong")
.orderByAsc(ArchiModelDictDetail::getSort));
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean del(BathRemoveDTO dto) {
List<Long> ids = dto.getIds();
Assert.isFalse(CollUtil.isEmpty(ids), "请至少选择一条记录");
ids.forEach(it -> {
ArchiModelDict detail = baseMapper.selectById(it);
Assert.notNull(detail, "该数据不存在");
});
return baseMapper.deleteBatchIds(ids) > 0;
}
}
......@@ -108,7 +108,7 @@
</select>
<!--资产关系-->
<select id="queryAssetRelation" resultType="org.arch.common.archoverall.vo.ArchiAbilityAssetsRelationQueryVO">
<select id="queryAssetRelation" resultType="org.arch.common.modules.archoverall.vo.ArchiAbilityAssetsRelationQueryVO">
select aaar.rela_id,
aaar.asset_id,
aaar.asset_code,
......
......@@ -19,7 +19,7 @@
</select>
<!--根据需求评审-->
<select id="qyNeedReview" resultType="org.arch.common.archoverall.vo.NeedReviewVo">
<select id="qyNeedReview" resultType="org.arch.common.modules.archoverall.vo.NeedReviewVo">
select ni.year,
ni.bat_name,
ni.need_name,
......@@ -103,7 +103,7 @@
</select>
<!--概设关联业务管理-概设统计分析-各单位概设统计-->
<select id="qyneedCount" resultType="org.arch.common.archoverall.vo.OnlineReviewCountVO">
<select id="qyneedCount" resultType="org.arch.common.modules.archoverall.vo.OnlineReviewCountVO">
<choose>
<when test="orcy.countType != null and orcy.countType == 1">
SELECT so.org_id AS manageorgid,
......@@ -138,7 +138,7 @@
</choose>
</select>
<select id="qyreviewPassCount" resultType="org.arch.common.archoverall.vo.OnlineReviewCountVO">
<select id="qyreviewPassCount" resultType="org.arch.common.modules.archoverall.vo.OnlineReviewCountVO">
SELECT subquery.manage_org_id,
(select og.org_name from sys_org og where og.org_id = subquery.manage_org_id) AS manage_org_name,
COUNT(subquery.need_id) as review_pass_count
......@@ -155,7 +155,7 @@
GROUP BY subquery.manage_org_id
</select>
<select id="qybatNeedCount" resultType="org.arch.common.archoverall.vo.OnlineReviewCountVO">
<select id="qybatNeedCount" resultType="org.arch.common.modules.archoverall.vo.OnlineReviewCountVO">
SELECT bat.bat_plan_id,
bat.bat_name,
COUNT(ned.need_id) as need_count
......@@ -170,7 +170,7 @@
bat.bat_name
</select>
<select id="qybatReviewPassCount" resultType="org.arch.common.archoverall.vo.OnlineReviewCountVO">
<select id="qybatReviewPassCount" resultType="org.arch.common.modules.archoverall.vo.OnlineReviewCountVO">
SELECT subquery.bat_plan_id, subquery.bat_name, COUNT(subquery.need_id) as review_pass_count
FROM (SELECT bat.bat_plan_id, bat.bat_name, ned.need_id
FROM bat_plan_info bat
......
......@@ -21,7 +21,7 @@
</resultMap>
<!--元素和元素关系列表-->
<resultMap id="EleBaseResultMap" type="org.arch.common.archoverall.vo.ArchiEleRelaVO">
<resultMap id="EleBaseResultMap" type="org.arch.common.modules.archoverall.vo.ArchiEleRelaVO">
<id column="ele_rela_id" jdbcType="BIGINT" property="eleRelaId"/>
<result column="ele_rela_name" jdbcType="VARCHAR" property="eleRelaName"/>
<result column="source_element_id" property="sourceElementId"/>
......
......@@ -89,7 +89,7 @@
</select>
<!--查询资产关系-->
<select id="findEleRelaList" resultType="org.arch.common.archoverall.vo.ArchiEleRelaNameVO">
<select id="findEleRelaList" resultType="org.arch.common.modules.archoverall.vo.ArchiEleRelaNameVO">
select aer.ele_rela_id,
aer.rs_name
from archi_ele_rela aer
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.arch.overall.mapper.ArchiViewEleMapper">
<resultMap id="BaseResultMap" type="org.arch.overall.entity.ArchiViewEle">
<result column="archi_view_id" property="archiViewId"/>
<result column="archi_ele_id" property="archiEleId"/>
<result column="ele_name" property="eleName"/>
<result column="type" property="type"/>
</resultMap>
<sql id="Base_Column_List">
<!--@sql select -->
archi_view_id,
archi_ele_id,
ele_name,
type
<!--@sql from archi_view_ele-->
</sql>
</mapper>
\ No newline at end of file
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!