From c39c9d4bfaf219d4297443c7df857aba216e7e1b Mon Sep 17 00:00:00 2001 From: xudawei Date: Thu, 27 Mar 2025 16:35:20 +0800 Subject: [PATCH 01/25] =?UTF-8?q?feat:=20(REQ-3846)=20=E5=9B=BE=E7=BA=B8?= =?UTF-8?q?=E7=B4=A0=E6=9D=90=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/bizattri/NodeBizAttributesApi.java | 61 ++++++++++++ .../CreateNodeBizAttributesRequest.java | 75 +++++++++++++++ .../SearchNodeBizAttributesRequest.java | 26 ++++++ .../UpdateNodeBizAttributesRequest.java | 47 ++++++++++ .../CreateNodeBizAttributesResponse.java | 24 +++++ .../SearchNodeBizAttributesResponse.java | 32 +++++++ .../UpdateNodeBizAttributesResponse.java | 24 +++++ .../cn/axzo/nanopart/doc/api/enums/State.java | 14 +++ .../NodeBizAttributesApiController.java | 77 ++++++++++++++++ .../bizattri/NodeBizAttributesManager.java | 47 ++++++++++ .../bizattri/dto/NodeBizAttributesDto.java | 24 +++++ .../doc/dao/NodeBizAttributesDao.java | 36 ++++++++ .../doc/entity/NodeBizAttributes.java | 92 +++++++++++++++++++ .../doc/mapper/NodeBizAttributesMapper.java | 16 ++++ 14 files changed, 595 insertions(+) create mode 100644 doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/NodeBizAttributesApi.java create mode 100644 doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/CreateNodeBizAttributesRequest.java create mode 100644 doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/SearchNodeBizAttributesRequest.java create mode 100644 doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpdateNodeBizAttributesRequest.java create mode 100644 doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/CreateNodeBizAttributesResponse.java create mode 100644 doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/SearchNodeBizAttributesResponse.java create mode 100644 doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/UpdateNodeBizAttributesResponse.java create mode 100644 doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/enums/State.java create mode 100644 doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java create mode 100644 doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java create mode 100644 doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/dto/NodeBizAttributesDto.java create mode 100644 doc/doc-server/src/main/java/cn/axzo/nanopart/doc/dao/NodeBizAttributesDao.java create mode 100644 doc/doc-server/src/main/java/cn/axzo/nanopart/doc/entity/NodeBizAttributes.java create mode 100644 doc/doc-server/src/main/java/cn/axzo/nanopart/doc/mapper/NodeBizAttributesMapper.java diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/NodeBizAttributesApi.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/NodeBizAttributesApi.java new file mode 100644 index 00000000..de9347e7 --- /dev/null +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/NodeBizAttributesApi.java @@ -0,0 +1,61 @@ + +package cn.axzo.nanopart.doc.api.bizattri; + +import cn.axzo.nanopart.doc.api.bizattri.request.CreateNodeBizAttributesRequest; +import cn.axzo.nanopart.doc.api.bizattri.request.SearchNodeBizAttributesRequest; +import cn.axzo.nanopart.doc.api.bizattri.request.UpdateNodeBizAttributesRequest; +import cn.axzo.nanopart.doc.api.bizattri.response.CreateNodeBizAttributesResponse; +import cn.axzo.nanopart.doc.api.bizattri.response.SearchNodeBizAttributesResponse; +import cn.axzo.nanopart.doc.api.bizattri.response.UpdateNodeBizAttributesResponse; +import cn.axzo.nanopart.doc.api.domain.IndexNodeInfo; +import cn.axzo.nanopart.doc.api.index.request.CopyNodeRequest; +import cn.axzo.nanopart.doc.api.index.request.DeleteNodeRequest; +import cn.axzo.nanopart.doc.api.index.request.IndexNodeSearchRequest; +import cn.axzo.nanopart.doc.api.index.request.MoveNodeRequest; +import cn.axzo.nanopart.doc.api.index.request.RenameNodeRequest; +import cn.axzo.nanopart.doc.api.templatedb.domain.TemplateDatabaseInfo; +import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseCreateDatabaseRequest; +import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseCreateDirRequest; +import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseCreateFileRequest; +import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseGetDatabaseOrDirInfoRequest; +import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseSearchRequest; +import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseUpdateDatabaseOrDirInfoRequest; +import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseUploadFileRequest; +import cn.axzo.nanopart.doc.api.templatedb.response.TemplateDatabaseGetDatabaseOrDirInfoResponse; +import cn.azxo.framework.common.model.CommonResponse; +import cn.azxo.framework.common.model.Page; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import javax.validation.Valid; +import java.util.List; + +/** + * @author xudawei@axzo.cn + * @date 2025/03/27 + */ +@FeignClient(name = "nanopart", url = "${axzo.service.nanopart:http://nanopart:8080}") +public interface NodeBizAttributesApi { + + /** + * 创建结点配置信息 + * @return 节点code + */ + @PostMapping("/api/nodeBizAttributes/create") + CommonResponse createNodeBizAttributes(@RequestBody @Valid CreateNodeBizAttributesRequest request); + + /** + * 更新结点配置信息 + * @return 节点code + */ + @PostMapping("/api/nodeBizAttributes/update") + CommonResponse updateNodeBizAttributes(@RequestBody @Valid UpdateNodeBizAttributesRequest request); + + /** + * 查询结点配置信息 + * @return 节点code + */ + @PostMapping("/api/nodeBizAttributes/search") + CommonResponse searchNodeBizAttributes(@RequestBody @Valid SearchNodeBizAttributesRequest request); +} diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/CreateNodeBizAttributesRequest.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/CreateNodeBizAttributesRequest.java new file mode 100644 index 00000000..f2a4a8f4 --- /dev/null +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/CreateNodeBizAttributesRequest.java @@ -0,0 +1,75 @@ +package cn.axzo.nanopart.doc.api.bizattri.request; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @author xudawei@axzo.cn + * @date 2025/3/27 + * @description 创建图纸素材请求 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class CreateNodeBizAttributesRequest { + + /** + * 结点编码 + */ + private String nodeCode; + + /** + * 图纸素材 + */ + private List attributes; + + /** + * 创建人 + */ + private Long createBy; + + /** + * 更新人 + */ + private Long updateBy; + + @Builder + @AllArgsConstructor + @NoArgsConstructor + @Data + public static class DrawMaterial { + /** + * 标题 + */ + private String title; + /** + * 素材 + */ + private List contents; + } + + @Builder + @AllArgsConstructor + @NoArgsConstructor + @Data + public static class Content { + /** + * 图片url + */ + private String picUrl; + /** + * dwg的url + */ + private String dwgUrl; + /** + * 名称 + */ + private String name; + } + +} diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/SearchNodeBizAttributesRequest.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/SearchNodeBizAttributesRequest.java new file mode 100644 index 00000000..4fb2101f --- /dev/null +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/SearchNodeBizAttributesRequest.java @@ -0,0 +1,26 @@ +package cn.axzo.nanopart.doc.api.bizattri.request; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @author xudawei@axzo.cn + * @date 2025/3/27 + * @description 查询图纸素材请求 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SearchNodeBizAttributesRequest { + + /** + * 结点编码 + */ + private String nodeCode; + +} diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpdateNodeBizAttributesRequest.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpdateNodeBizAttributesRequest.java new file mode 100644 index 00000000..8fad38af --- /dev/null +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpdateNodeBizAttributesRequest.java @@ -0,0 +1,47 @@ +package cn.axzo.nanopart.doc.api.bizattri.request; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @author xudawei@axzo.cn + * @date 2025/3/27 + * @description 更新图纸素材请求 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class UpdateNodeBizAttributesRequest { + + /** + * 结点编码 + */ + private String nodeCode; + + /** + * 更新内容 + */ + private UpdateNodeBizAttribytes updateContent; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class UpdateNodeBizAttribytes { + /** + * 图纸素材 + */ + private List drawMaterials; + + /** + * 更新人 + */ + private Long updateBy; + } + +} diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/CreateNodeBizAttributesResponse.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/CreateNodeBizAttributesResponse.java new file mode 100644 index 00000000..ae8afdb3 --- /dev/null +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/CreateNodeBizAttributesResponse.java @@ -0,0 +1,24 @@ +package cn.axzo.nanopart.doc.api.bizattri.response; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author xudawei@axzo.cn + * @date 2025/3/27 + * @description 创建图纸素材返回 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class CreateNodeBizAttributesResponse { + + /** + * 结点编码 + */ + private String nodeCode; + +} diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/SearchNodeBizAttributesResponse.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/SearchNodeBizAttributesResponse.java new file mode 100644 index 00000000..d2f01d28 --- /dev/null +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/SearchNodeBizAttributesResponse.java @@ -0,0 +1,32 @@ +package cn.axzo.nanopart.doc.api.bizattri.response; + +import cn.axzo.nanopart.doc.api.bizattri.request.CreateNodeBizAttributesRequest; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @author xudawei@axzo.cn + * @date 2025/3/27 + * @description 查询图纸素材请求 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SearchNodeBizAttributesResponse { + + /** + * 结点编码 + */ + private String nodeCode; + + /** + * 图纸素材 + */ + private List drawMaterials; + +} diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/UpdateNodeBizAttributesResponse.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/UpdateNodeBizAttributesResponse.java new file mode 100644 index 00000000..668c1a5b --- /dev/null +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/UpdateNodeBizAttributesResponse.java @@ -0,0 +1,24 @@ +package cn.axzo.nanopart.doc.api.bizattri.response; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author xudawei@axzo.cn + * @date 2025/3/27 + * @description 更新图纸素材返回 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class UpdateNodeBizAttributesResponse { + + /** + * 结点编码 + */ + private String nodeCode; + +} diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/enums/State.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/enums/State.java new file mode 100644 index 00000000..9d855ba1 --- /dev/null +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/enums/State.java @@ -0,0 +1,14 @@ + +package cn.axzo.nanopart.doc.api.enums; + +/** + * @author xudawei@axzo.cn + */ +public enum State { + + // 有效的 + VALID, + // 已删除 + DELETED + +} diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java new file mode 100644 index 00000000..7afc1358 --- /dev/null +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java @@ -0,0 +1,77 @@ + +package cn.axzo.nanopart.doc.bizattri; + +import cn.axzo.basics.common.BeanMapper; +import cn.axzo.maokai.api.vo.response.tree.RootNode; +import cn.axzo.maokai.api.vo.response.tree.ValueNode; +import cn.axzo.maokai.api.vo.response.tree.ValueNodeRecursiveVisitor; +import cn.axzo.maokai.api.vo.response.tree.WalkingDecision; +import cn.axzo.nanopart.doc.api.bizattri.NodeBizAttributesApi; +import cn.axzo.nanopart.doc.api.bizattri.request.CreateNodeBizAttributesRequest; +import cn.axzo.nanopart.doc.api.bizattri.request.SearchNodeBizAttributesRequest; +import cn.axzo.nanopart.doc.api.bizattri.request.UpdateNodeBizAttributesRequest; +import cn.axzo.nanopart.doc.api.bizattri.response.CreateNodeBizAttributesResponse; +import cn.axzo.nanopart.doc.api.bizattri.response.SearchNodeBizAttributesResponse; +import cn.axzo.nanopart.doc.api.bizattri.response.UpdateNodeBizAttributesResponse; +import cn.axzo.nanopart.doc.api.domain.IndexNodeInfo; +import cn.axzo.nanopart.doc.api.domain.IndexNodeScope; +import cn.axzo.nanopart.doc.api.enums.IndexNodeType; +import cn.axzo.nanopart.doc.api.index.request.CopyNodeRequest; +import cn.axzo.nanopart.doc.api.index.request.DeleteNodeRequest; +import cn.axzo.nanopart.doc.api.index.request.IndexNodeSearchRequest; +import cn.axzo.nanopart.doc.api.index.request.MoveNodeRequest; +import cn.axzo.nanopart.doc.api.index.request.RenameNodeRequest; +import cn.axzo.nanopart.doc.api.templatedb.TemplateDatabaseApi; +import cn.axzo.nanopart.doc.api.templatedb.domain.TemplateDatabaseInfo; +import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseCreateDatabaseRequest; +import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseCreateDirRequest; +import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseCreateFileRequest; +import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseGetDatabaseOrDirInfoRequest; +import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseSearchRequest; +import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseUpdateDatabaseOrDirInfoRequest; +import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseUploadFileRequest; +import cn.axzo.nanopart.doc.api.templatedb.response.TemplateDatabaseGetDatabaseOrDirInfoResponse; +import cn.axzo.nanopart.doc.api.util.BizAssertions; +import cn.axzo.nanopart.doc.entity.IndexNode; +import cn.axzo.nanopart.doc.entity.TemplateDatabase; +import cn.axzo.nanopart.doc.file.index.IndexManager; +import cn.axzo.nanopart.doc.file.index.IndexQueryService; +import cn.axzo.nanopart.doc.file.templatedb.TemplateDatabaseManager; +import cn.axzo.nanopart.doc.file.templatedb.TemplateDatabaseQueryService; +import cn.axzo.nanopart.doc.utils.AsyncUtils; +import cn.axzo.nanopart.doc.utils.IndexNodeTreeUtils; +import cn.azxo.framework.common.model.CommonResponse; +import cn.azxo.framework.common.model.Page; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.concurrent.Future; + +/** + * @author yanglin + */ +@Slf4j +@RestController +@RequiredArgsConstructor +public class NodeBizAttributesApiController implements NodeBizAttributesApi { + + + + + @Override + public CommonResponse createNodeBizAttributes(CreateNodeBizAttributesRequest request) { + return null; + } + + @Override + public CommonResponse updateNodeBizAttributes(UpdateNodeBizAttributesRequest request) { + return null; + } + + @Override + public CommonResponse searchNodeBizAttributes(SearchNodeBizAttributesRequest request) { + return null; + } +} diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java new file mode 100644 index 00000000..0fc33b8b --- /dev/null +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java @@ -0,0 +1,47 @@ + +package cn.axzo.nanopart.doc.bizattri; + +import cn.axzo.nanopart.doc.api.bizattri.request.CreateNodeBizAttributesRequest; +import cn.axzo.nanopart.doc.api.bizattri.request.UpdateNodeBizAttributesRequest; +import cn.axzo.nanopart.doc.dao.NodeBizAttributesDao; +import cn.axzo.nanopart.doc.entity.NodeBizAttributes; +import cn.hutool.core.bean.BeanUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author xudawei@axzo.cn + */ +@Slf4j +@RestController +@RequiredArgsConstructor +public class NodeBizAttributesManager { + + private final NodeBizAttributesDao nodeBizAttributesDao; + + public String create(CreateNodeBizAttributesRequest request) { + NodeBizAttributes attributes = NodeBizAttributes.builder() + .nodeCode(request.getNodeCode()) + .attributes(BeanUtil.copyToList(request.getAttributes(), NodeBizAttributes.Attributes.class)) + .build(); + + nodeBizAttributesDao.save(attributes); + return attributes.getNodeCode(); + } + + public String update(UpdateNodeBizAttributesRequest request) { + + nodeBizAttributesDao. + + + NodeBizAttributes attributes = NodeBizAttributes.builder() + .nodeCode(request.getNodeCode()) + .attributes(BeanUtil.copyToList(request.getAttributes(), NodeBizAttributes.Attributes.class)) + .build(); + + nodeBizAttributesDao.save(attributes); + return attributes.getNodeCode(); + } + +} diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/dto/NodeBizAttributesDto.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/dto/NodeBizAttributesDto.java new file mode 100644 index 00000000..54878900 --- /dev/null +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/dto/NodeBizAttributesDto.java @@ -0,0 +1,24 @@ +package cn.axzo.nanopart.doc.bizattri.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author xudawei@axzo.cn + * @date 2025/3/27 + * @description 结点配置信息 + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +public class NodeBizAttributesDto { + + /** + * 结点编码 + */ + private String nodeCode; + +} diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/dao/NodeBizAttributesDao.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/dao/NodeBizAttributesDao.java new file mode 100644 index 00000000..a9a3b664 --- /dev/null +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/dao/NodeBizAttributesDao.java @@ -0,0 +1,36 @@ + +package cn.axzo.nanopart.doc.dao; + +import cn.axzo.nanopart.doc.bizattri.dto.NodeBizAttributesDto; +import cn.axzo.nanopart.doc.entity.NodeBizAttributes; +import cn.axzo.nanopart.doc.mapper.NodeBizAttributesMapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Repository; + +/** + * @author xudawei@axzo.cn + * @date 2025/03/27 + */ +@Slf4j +@Repository +public class NodeBizAttributesDao extends ServiceImpl { + + + public NodeBizAttributes getByNodeCode(String nodeCode) { + LambdaQueryWrapper last = this.queryWrapper(NodeBizAttributesDto.builder().nodeCode(nodeCode).build()).last("limit 1"); + + } + + /** + * 通用查询,目前只有nodeCode + */ + private LambdaQueryWrapper queryWrapper(NodeBizAttributesDto dto) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper(); + lambdaQueryWrapper.eq(NodeBizAttributes::getNodeCode, dto.getNodeCode()); + return lambdaQueryWrapper; + } + +} diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/entity/NodeBizAttributes.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/entity/NodeBizAttributes.java new file mode 100644 index 00000000..29d7ad49 --- /dev/null +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/entity/NodeBizAttributes.java @@ -0,0 +1,92 @@ + +package cn.axzo.nanopart.doc.entity; + +import cn.axzo.nanopart.doc.api.enums.State; +import cn.axzo.pokonyan.config.mybatisplus.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 结点配置信息 + * @author xudawei@axzo.cn + * @date 2025/03/27 + */ +@Data +@TableName(value = "doc_node_biz_attributes", autoResultMap = true) +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class NodeBizAttributes extends BaseEntity { + + /** + * 结点编码 + */ + @TableField("node_code") + private String nodeCode; + + /** + * 状态. VALID: 有效的, DELETED: 已删除 + */ + @TableField("state") + private State state; + + /** + * 属性 + */ + @TableField(typeHandler = IgnorePropsJsonTypeHandler.class) + private List attributes; + + /** + * 创建人 + */ + @TableField("create_by") + private Long createBy; + + /** + * 更新人 + */ + @TableField("update_by") + private Long updateBy; + + @Builder + @AllArgsConstructor + @NoArgsConstructor + @Data + public static class Attributes { + /** + * 标题 + */ + private String title; + /** + * 内容 + */ + private List contents; + } + + @Builder + @AllArgsConstructor + @NoArgsConstructor + @Data + public static class Content { + /** + * 图片url + */ + private String picUrl; + /** + * dwg的url + */ + private String dwgUrl; + /** + * 名称 + */ + private String name; + } + + +} diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/mapper/NodeBizAttributesMapper.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/mapper/NodeBizAttributesMapper.java new file mode 100644 index 00000000..bc08b34f --- /dev/null +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/mapper/NodeBizAttributesMapper.java @@ -0,0 +1,16 @@ + +package cn.axzo.nanopart.doc.mapper; + +import cn.axzo.nanopart.doc.entity.NodeBizAttributes; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + * 结点配置信息 + * @author xudawei@axzo.cn + * @date 2025/03/27 + */ +@Mapper +public interface NodeBizAttributesMapper extends BaseMapper { + +} From cbf15c80ca6a70f30919f3355ab75ceb78dc30fa Mon Sep 17 00:00:00 2001 From: xudawei Date: Thu, 27 Mar 2025 16:38:56 +0800 Subject: [PATCH 02/25] feat: (REQ-3846) fix-complier-error --- .../bizattri/NodeBizAttributesManager.java | 20 +++++++++---------- .../doc/dao/NodeBizAttributesDao.java | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java index 0fc33b8b..ccf26bf6 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java @@ -32,16 +32,16 @@ public class NodeBizAttributesManager { public String update(UpdateNodeBizAttributesRequest request) { - nodeBizAttributesDao. - - - NodeBizAttributes attributes = NodeBizAttributes.builder() - .nodeCode(request.getNodeCode()) - .attributes(BeanUtil.copyToList(request.getAttributes(), NodeBizAttributes.Attributes.class)) - .build(); - - nodeBizAttributesDao.save(attributes); - return attributes.getNodeCode(); +// nodeBizAttributesDao. +// +// +// NodeBizAttributes attributes = NodeBizAttributes.builder() +// .nodeCode(request.getNodeCode()) +// .attributes(BeanUtil.copyToList(request.getAttributes(), NodeBizAttributes.Attributes.class)) +// .build(); +// +// nodeBizAttributesDao.save(attributes); + return null; } } diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/dao/NodeBizAttributesDao.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/dao/NodeBizAttributesDao.java index a9a3b664..e0d1920b 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/dao/NodeBizAttributesDao.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/dao/NodeBizAttributesDao.java @@ -21,7 +21,7 @@ public class NodeBizAttributesDao extends ServiceImpl last = this.queryWrapper(NodeBizAttributesDto.builder().nodeCode(nodeCode).build()).last("limit 1"); - + return this.getOne(last); } /** From a236389c495cd9c20ebc85f760a9bec665dc73f1 Mon Sep 17 00:00:00 2001 From: xudawei Date: Fri, 28 Mar 2025 16:53:56 +0800 Subject: [PATCH 03/25] =?UTF-8?q?feat:=20(REQ-3846)=20=E7=BB=93=E7=82=B9?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=BF=A1=E6=81=AF=E5=85=B7=E4=BD=93=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/bizattri/NodeBizAttributesApi.java | 2 +- .../UpdateNodeBizAttributesRequest.java | 4 +- .../NodeBizAttributesApiController.java | 45 +++---------------- .../bizattri/NodeBizAttributesManager.java | 23 ++++++---- .../doc/dao/NodeBizAttributesDao.java | 22 +++++++-- 5 files changed, 42 insertions(+), 54 deletions(-) diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/NodeBizAttributesApi.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/NodeBizAttributesApi.java index de9347e7..95726a8a 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/NodeBizAttributesApi.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/NodeBizAttributesApi.java @@ -57,5 +57,5 @@ public interface NodeBizAttributesApi { * @return 节点code */ @PostMapping("/api/nodeBizAttributes/search") - CommonResponse searchNodeBizAttributes(@RequestBody @Valid SearchNodeBizAttributesRequest request); + CommonResponse> searchNodeBizAttributes(@RequestBody @Valid SearchNodeBizAttributesRequest request); } diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpdateNodeBizAttributesRequest.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpdateNodeBizAttributesRequest.java index 8fad38af..531e8d60 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpdateNodeBizAttributesRequest.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpdateNodeBizAttributesRequest.java @@ -26,13 +26,13 @@ public class UpdateNodeBizAttributesRequest { /** * 更新内容 */ - private UpdateNodeBizAttribytes updateContent; + private UpdateNodeBizAttributes updateContent; @Data @Builder @NoArgsConstructor @AllArgsConstructor - public static class UpdateNodeBizAttribytes { + public static class UpdateNodeBizAttributes { /** * 图纸素材 */ diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java index 7afc1358..97aea6d2 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java @@ -1,11 +1,6 @@ package cn.axzo.nanopart.doc.bizattri; -import cn.axzo.basics.common.BeanMapper; -import cn.axzo.maokai.api.vo.response.tree.RootNode; -import cn.axzo.maokai.api.vo.response.tree.ValueNode; -import cn.axzo.maokai.api.vo.response.tree.ValueNodeRecursiveVisitor; -import cn.axzo.maokai.api.vo.response.tree.WalkingDecision; import cn.axzo.nanopart.doc.api.bizattri.NodeBizAttributesApi; import cn.axzo.nanopart.doc.api.bizattri.request.CreateNodeBizAttributesRequest; import cn.axzo.nanopart.doc.api.bizattri.request.SearchNodeBizAttributesRequest; @@ -13,41 +8,13 @@ import cn.axzo.nanopart.doc.api.bizattri.request.UpdateNodeBizAttributesRequest; import cn.axzo.nanopart.doc.api.bizattri.response.CreateNodeBizAttributesResponse; import cn.axzo.nanopart.doc.api.bizattri.response.SearchNodeBizAttributesResponse; import cn.axzo.nanopart.doc.api.bizattri.response.UpdateNodeBizAttributesResponse; -import cn.axzo.nanopart.doc.api.domain.IndexNodeInfo; -import cn.axzo.nanopart.doc.api.domain.IndexNodeScope; -import cn.axzo.nanopart.doc.api.enums.IndexNodeType; -import cn.axzo.nanopart.doc.api.index.request.CopyNodeRequest; -import cn.axzo.nanopart.doc.api.index.request.DeleteNodeRequest; -import cn.axzo.nanopart.doc.api.index.request.IndexNodeSearchRequest; -import cn.axzo.nanopart.doc.api.index.request.MoveNodeRequest; -import cn.axzo.nanopart.doc.api.index.request.RenameNodeRequest; -import cn.axzo.nanopart.doc.api.templatedb.TemplateDatabaseApi; -import cn.axzo.nanopart.doc.api.templatedb.domain.TemplateDatabaseInfo; -import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseCreateDatabaseRequest; -import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseCreateDirRequest; -import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseCreateFileRequest; -import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseGetDatabaseOrDirInfoRequest; -import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseSearchRequest; -import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseUpdateDatabaseOrDirInfoRequest; -import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseUploadFileRequest; -import cn.axzo.nanopart.doc.api.templatedb.response.TemplateDatabaseGetDatabaseOrDirInfoResponse; -import cn.axzo.nanopart.doc.api.util.BizAssertions; -import cn.axzo.nanopart.doc.entity.IndexNode; -import cn.axzo.nanopart.doc.entity.TemplateDatabase; -import cn.axzo.nanopart.doc.file.index.IndexManager; -import cn.axzo.nanopart.doc.file.index.IndexQueryService; -import cn.axzo.nanopart.doc.file.templatedb.TemplateDatabaseManager; -import cn.axzo.nanopart.doc.file.templatedb.TemplateDatabaseQueryService; -import cn.axzo.nanopart.doc.utils.AsyncUtils; -import cn.axzo.nanopart.doc.utils.IndexNodeTreeUtils; import cn.azxo.framework.common.model.CommonResponse; -import cn.azxo.framework.common.model.Page; +import cn.hutool.core.bean.BeanUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RestController; import java.util.List; -import java.util.concurrent.Future; /** * @author yanglin @@ -58,20 +25,20 @@ import java.util.concurrent.Future; public class NodeBizAttributesApiController implements NodeBizAttributesApi { - + private final NodeBizAttributesManager nodeBizAttributesManager; @Override public CommonResponse createNodeBizAttributes(CreateNodeBizAttributesRequest request) { - return null; + return CommonResponse.success(CreateNodeBizAttributesResponse.builder().nodeCode(nodeBizAttributesManager.create(request)).build()); } @Override public CommonResponse updateNodeBizAttributes(UpdateNodeBizAttributesRequest request) { - return null; + return CommonResponse.success(UpdateNodeBizAttributesResponse.builder().nodeCode(nodeBizAttributesManager.update(request)).build()); } @Override - public CommonResponse searchNodeBizAttributes(SearchNodeBizAttributesRequest request) { - return null; + public CommonResponse> searchNodeBizAttributes(SearchNodeBizAttributesRequest request) { + return CommonResponse.success(BeanUtil.copyToList(nodeBizAttributesManager.search(request), SearchNodeBizAttributesResponse.class)); } } diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java index ccf26bf6..0686b637 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java @@ -2,7 +2,10 @@ package cn.axzo.nanopart.doc.bizattri; import cn.axzo.nanopart.doc.api.bizattri.request.CreateNodeBizAttributesRequest; +import cn.axzo.nanopart.doc.api.bizattri.request.SearchNodeBizAttributesRequest; import cn.axzo.nanopart.doc.api.bizattri.request.UpdateNodeBizAttributesRequest; +import cn.axzo.nanopart.doc.api.util.BizAssertions; +import cn.axzo.nanopart.doc.bizattri.dto.NodeBizAttributesDto; import cn.axzo.nanopart.doc.dao.NodeBizAttributesDao; import cn.axzo.nanopart.doc.entity.NodeBizAttributes; import cn.hutool.core.bean.BeanUtil; @@ -10,6 +13,8 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + /** * @author xudawei@axzo.cn */ @@ -32,16 +37,16 @@ public class NodeBizAttributesManager { public String update(UpdateNodeBizAttributesRequest request) { -// nodeBizAttributesDao. -// -// -// NodeBizAttributes attributes = NodeBizAttributes.builder() -// .nodeCode(request.getNodeCode()) -// .attributes(BeanUtil.copyToList(request.getAttributes(), NodeBizAttributes.Attributes.class)) -// .build(); -// -// nodeBizAttributesDao.save(attributes); + NodeBizAttributes attributes = nodeBizAttributesDao.getByNodeCode(request.getNodeCode()); + BizAssertions.assertNotNull(attributes, "查询结点配置信息为空"); + attributes.setAttributes(BeanUtil.copyToList(request.getUpdateContent().getDrawMaterials(), NodeBizAttributes.Attributes.class)); + + nodeBizAttributesDao.saveOrUpdate(attributes); return null; } + public List search(SearchNodeBizAttributesRequest request) { + return nodeBizAttributesDao.list(BeanUtil.copyProperties(request, NodeBizAttributesDto.class)); + } + } diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/dao/NodeBizAttributesDao.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/dao/NodeBizAttributesDao.java index e0d1920b..6db2df3b 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/dao/NodeBizAttributesDao.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/dao/NodeBizAttributesDao.java @@ -4,12 +4,14 @@ package cn.axzo.nanopart.doc.dao; import cn.axzo.nanopart.doc.bizattri.dto.NodeBizAttributesDto; import cn.axzo.nanopart.doc.entity.NodeBizAttributes; import cn.axzo.nanopart.doc.mapper.NodeBizAttributesMapper; +import com.aliyuncs.utils.StringUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Repository; +import java.util.List; + /** * @author xudawei@axzo.cn * @date 2025/03/27 @@ -19,9 +21,15 @@ import org.springframework.stereotype.Repository; public class NodeBizAttributesDao extends ServiceImpl { + /** + * 根据nodeCode获取对象 + */ public NodeBizAttributes getByNodeCode(String nodeCode) { + if (StringUtils.isEmpty(nodeCode)) { + return null; + } LambdaQueryWrapper last = this.queryWrapper(NodeBizAttributesDto.builder().nodeCode(nodeCode).build()).last("limit 1"); - return this.getOne(last); + return this.list(last).stream().findFirst().orElse(null); } /** @@ -29,8 +37,16 @@ public class NodeBizAttributesDao extends ServiceImpl queryWrapper(NodeBizAttributesDto dto) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper(); - lambdaQueryWrapper.eq(NodeBizAttributes::getNodeCode, dto.getNodeCode()); + lambdaQueryWrapper.eq(NodeBizAttributes::getNodeCode, dto.getNodeCode()) + .eq(NodeBizAttributes::getIsDelete, 0L); return lambdaQueryWrapper; } + /** + * 查询对象列表 + */ + public List list(NodeBizAttributesDto dto) { + return this.list(this.queryWrapper(dto)); + } + } From 2b7bbda7413581e1a5882cd8e70835ab57c1c26f Mon Sep 17 00:00:00 2001 From: xudawei Date: Fri, 28 Mar 2025 17:54:38 +0800 Subject: [PATCH 04/25] =?UTF-8?q?feat:=20(REQ-3846)=20=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E7=BB=93=E7=82=B9=E9=85=8D=E7=BD=AE=E5=85=A5=E5=8F=82=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CreateNodeBizAttributesRequest.java | 2 +- .../NodeBizAttributesApiController.java | 19 ++++++++++++++++++- .../bizattri/NodeBizAttributesManager.java | 4 ++-- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/CreateNodeBizAttributesRequest.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/CreateNodeBizAttributesRequest.java index f2a4a8f4..b7e7eeb6 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/CreateNodeBizAttributesRequest.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/CreateNodeBizAttributesRequest.java @@ -26,7 +26,7 @@ public class CreateNodeBizAttributesRequest { /** * 图纸素材 */ - private List attributes; + private List drawMaterials; /** * 创建人 diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java index 97aea6d2..43b2d050 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java @@ -8,13 +8,17 @@ import cn.axzo.nanopart.doc.api.bizattri.request.UpdateNodeBizAttributesRequest; import cn.axzo.nanopart.doc.api.bizattri.response.CreateNodeBizAttributesResponse; import cn.axzo.nanopart.doc.api.bizattri.response.SearchNodeBizAttributesResponse; import cn.axzo.nanopart.doc.api.bizattri.response.UpdateNodeBizAttributesResponse; +import cn.axzo.nanopart.doc.entity.NodeBizAttributes; import cn.azxo.framework.common.model.CommonResponse; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RestController; +import java.util.Collections; import java.util.List; +import java.util.stream.Collectors; /** * @author yanglin @@ -39,6 +43,19 @@ public class NodeBizAttributesApiController implements NodeBizAttributesApi { @Override public CommonResponse> searchNodeBizAttributes(SearchNodeBizAttributesRequest request) { - return CommonResponse.success(BeanUtil.copyToList(nodeBizAttributesManager.search(request), SearchNodeBizAttributesResponse.class)); + List attributes = nodeBizAttributesManager.search(request); + return CommonResponse.success(convert(attributes)); + } + + /** + * 对象转换 + */ + private List convert(List attributes) { + if (CollectionUtil.isEmpty(attributes)) { + return Collections.emptyList(); + } + return attributes.stream().map(item -> SearchNodeBizAttributesResponse.builder() + .nodeCode(item.getNodeCode()) + .drawMaterials(BeanUtil.copyToList(item.getAttributes(), CreateNodeBizAttributesRequest.DrawMaterial.class)).build()).collect(Collectors.toList()); } } diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java index 0686b637..c85f8699 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java @@ -28,7 +28,7 @@ public class NodeBizAttributesManager { public String create(CreateNodeBizAttributesRequest request) { NodeBizAttributes attributes = NodeBizAttributes.builder() .nodeCode(request.getNodeCode()) - .attributes(BeanUtil.copyToList(request.getAttributes(), NodeBizAttributes.Attributes.class)) + .attributes(BeanUtil.copyToList(request.getDrawMaterials(), NodeBizAttributes.Attributes.class)) .build(); nodeBizAttributesDao.save(attributes); @@ -42,7 +42,7 @@ public class NodeBizAttributesManager { attributes.setAttributes(BeanUtil.copyToList(request.getUpdateContent().getDrawMaterials(), NodeBizAttributes.Attributes.class)); nodeBizAttributesDao.saveOrUpdate(attributes); - return null; + return request.getNodeCode(); } public List search(SearchNodeBizAttributesRequest request) { From eef8b293a02177a5bd9a51a906016af45756cca6 Mon Sep 17 00:00:00 2001 From: xudawei Date: Mon, 31 Mar 2025 14:00:51 +0800 Subject: [PATCH 05/25] =?UTF-8?q?feat:=20(REQ-3846)=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E7=BB=93=E7=82=B9=E5=8A=A0=E4=B8=8A=E6=9B=B4=E6=96=B0=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../doc/api/bizattri/NodeBizAttributesApi.java | 16 ---------------- .../request/UpdateNodeBizAttributesRequest.java | 5 +++++ .../doc/bizattri/NodeBizAttributesManager.java | 4 +++- 3 files changed, 8 insertions(+), 17 deletions(-) diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/NodeBizAttributesApi.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/NodeBizAttributesApi.java index 95726a8a..106311b7 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/NodeBizAttributesApi.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/NodeBizAttributesApi.java @@ -7,23 +7,7 @@ import cn.axzo.nanopart.doc.api.bizattri.request.UpdateNodeBizAttributesRequest; import cn.axzo.nanopart.doc.api.bizattri.response.CreateNodeBizAttributesResponse; import cn.axzo.nanopart.doc.api.bizattri.response.SearchNodeBizAttributesResponse; import cn.axzo.nanopart.doc.api.bizattri.response.UpdateNodeBizAttributesResponse; -import cn.axzo.nanopart.doc.api.domain.IndexNodeInfo; -import cn.axzo.nanopart.doc.api.index.request.CopyNodeRequest; -import cn.axzo.nanopart.doc.api.index.request.DeleteNodeRequest; -import cn.axzo.nanopart.doc.api.index.request.IndexNodeSearchRequest; -import cn.axzo.nanopart.doc.api.index.request.MoveNodeRequest; -import cn.axzo.nanopart.doc.api.index.request.RenameNodeRequest; -import cn.axzo.nanopart.doc.api.templatedb.domain.TemplateDatabaseInfo; -import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseCreateDatabaseRequest; -import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseCreateDirRequest; -import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseCreateFileRequest; -import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseGetDatabaseOrDirInfoRequest; -import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseSearchRequest; -import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseUpdateDatabaseOrDirInfoRequest; -import cn.axzo.nanopart.doc.api.templatedb.reqeust.TemplateDatabaseUploadFileRequest; -import cn.axzo.nanopart.doc.api.templatedb.response.TemplateDatabaseGetDatabaseOrDirInfoResponse; import cn.azxo.framework.common.model.CommonResponse; -import cn.azxo.framework.common.model.Page; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpdateNodeBizAttributesRequest.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpdateNodeBizAttributesRequest.java index 531e8d60..ebd51c6d 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpdateNodeBizAttributesRequest.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpdateNodeBizAttributesRequest.java @@ -28,6 +28,11 @@ public class UpdateNodeBizAttributesRequest { */ private UpdateNodeBizAttributes updateContent; + /** + * 更新人 + */ + private Long updateBy; + @Data @Builder @NoArgsConstructor diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java index c85f8699..27e4d8d2 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java @@ -29,6 +29,8 @@ public class NodeBizAttributesManager { NodeBizAttributes attributes = NodeBizAttributes.builder() .nodeCode(request.getNodeCode()) .attributes(BeanUtil.copyToList(request.getDrawMaterials(), NodeBizAttributes.Attributes.class)) + .createBy(request.getCreateBy()) + .updateBy(request.getUpdateBy()) .build(); nodeBizAttributesDao.save(attributes); @@ -40,7 +42,7 @@ public class NodeBizAttributesManager { NodeBizAttributes attributes = nodeBizAttributesDao.getByNodeCode(request.getNodeCode()); BizAssertions.assertNotNull(attributes, "查询结点配置信息为空"); attributes.setAttributes(BeanUtil.copyToList(request.getUpdateContent().getDrawMaterials(), NodeBizAttributes.Attributes.class)); - + attributes.setUpdateBy(request.getUpdateBy()); nodeBizAttributesDao.saveOrUpdate(attributes); return request.getNodeCode(); } From 9abd070c9ab85f0549151a724f2a5c4730c591e4 Mon Sep 17 00:00:00 2001 From: xudawei Date: Tue, 1 Apr 2025 17:01:27 +0800 Subject: [PATCH 06/25] =?UTF-8?q?feat:=20(REQ-3846)=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=8F=92=E5=85=A5=E6=88=96=E8=80=85=E6=9B=B4=E6=96=B0=E5=9B=BE?= =?UTF-8?q?=E7=BA=B8=E7=B4=A0=E6=9D=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/bizattri/NodeBizAttributesApi.java | 9 +++ .../UpsertNodeBizAttributesRequest.java | 75 +++++++++++++++++++ .../UpsertNodeBizAttributesResponse.java | 24 ++++++ .../NodeBizAttributesApiController.java | 23 ++++++ .../bizattri/NodeBizAttributesManager.java | 15 ++++ 5 files changed, 146 insertions(+) create mode 100644 doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java create mode 100644 doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/UpsertNodeBizAttributesResponse.java diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/NodeBizAttributesApi.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/NodeBizAttributesApi.java index 106311b7..c6ad5b0c 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/NodeBizAttributesApi.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/NodeBizAttributesApi.java @@ -4,9 +4,11 @@ package cn.axzo.nanopart.doc.api.bizattri; import cn.axzo.nanopart.doc.api.bizattri.request.CreateNodeBizAttributesRequest; import cn.axzo.nanopart.doc.api.bizattri.request.SearchNodeBizAttributesRequest; import cn.axzo.nanopart.doc.api.bizattri.request.UpdateNodeBizAttributesRequest; +import cn.axzo.nanopart.doc.api.bizattri.request.UpsertNodeBizAttributesRequest; import cn.axzo.nanopart.doc.api.bizattri.response.CreateNodeBizAttributesResponse; import cn.axzo.nanopart.doc.api.bizattri.response.SearchNodeBizAttributesResponse; import cn.axzo.nanopart.doc.api.bizattri.response.UpdateNodeBizAttributesResponse; +import cn.axzo.nanopart.doc.api.bizattri.response.UpsertNodeBizAttributesResponse; import cn.azxo.framework.common.model.CommonResponse; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -36,6 +38,13 @@ public interface NodeBizAttributesApi { @PostMapping("/api/nodeBizAttributes/update") CommonResponse updateNodeBizAttributes(@RequestBody @Valid UpdateNodeBizAttributesRequest request); + /** + * 更新或者插入结点配置信息 + * @return 节点code + */ + @PostMapping("/api/nodeBizAttributes/upsert") + CommonResponse upsertNodeBizAttributes(UpsertNodeBizAttributesRequest request); + /** * 查询结点配置信息 * @return 节点code diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java new file mode 100644 index 00000000..5798d627 --- /dev/null +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java @@ -0,0 +1,75 @@ +package cn.axzo.nanopart.doc.api.bizattri.request; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @author xudawei@axzo.cn + * @date 2025/3/27 + * @description 创建图纸素材请求 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class UpsertNodeBizAttributesRequest { + + /** + * 结点编码 + */ + private String nodeCode; + + /** + * 图纸素材 + */ + private List drawMaterials; + + /** + * 创建人 + */ + private Long createBy; + + /** + * 更新人 + */ + private Long updateBy; + + @Builder + @AllArgsConstructor + @NoArgsConstructor + @Data + public static class DrawMaterial { + /** + * 标题 + */ + private String title; + /** + * 素材 + */ + private List contents; + } + + @Builder + @AllArgsConstructor + @NoArgsConstructor + @Data + public static class Content { + /** + * 图片url + */ + private String picUrl; + /** + * dwg的url + */ + private String dwgUrl; + /** + * 名称 + */ + private String name; + } + +} diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/UpsertNodeBizAttributesResponse.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/UpsertNodeBizAttributesResponse.java new file mode 100644 index 00000000..7716c64e --- /dev/null +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/UpsertNodeBizAttributesResponse.java @@ -0,0 +1,24 @@ +package cn.axzo.nanopart.doc.api.bizattri.response; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author xudawei@axzo.cn + * @date 2025/3/27 + * @description 更新图纸素材返回 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class UpsertNodeBizAttributesResponse { + + /** + * 结点编码 + */ + private String nodeCode; + +} diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java index 43b2d050..7807492d 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java @@ -5,9 +5,11 @@ import cn.axzo.nanopart.doc.api.bizattri.NodeBizAttributesApi; import cn.axzo.nanopart.doc.api.bizattri.request.CreateNodeBizAttributesRequest; import cn.axzo.nanopart.doc.api.bizattri.request.SearchNodeBizAttributesRequest; import cn.axzo.nanopart.doc.api.bizattri.request.UpdateNodeBizAttributesRequest; +import cn.axzo.nanopart.doc.api.bizattri.request.UpsertNodeBizAttributesRequest; import cn.axzo.nanopart.doc.api.bizattri.response.CreateNodeBizAttributesResponse; import cn.axzo.nanopart.doc.api.bizattri.response.SearchNodeBizAttributesResponse; import cn.axzo.nanopart.doc.api.bizattri.response.UpdateNodeBizAttributesResponse; +import cn.axzo.nanopart.doc.api.bizattri.response.UpsertNodeBizAttributesResponse; import cn.axzo.nanopart.doc.entity.NodeBizAttributes; import cn.azxo.framework.common.model.CommonResponse; import cn.hutool.core.bean.BeanUtil; @@ -31,16 +33,37 @@ public class NodeBizAttributesApiController implements NodeBizAttributesApi { private final NodeBizAttributesManager nodeBizAttributesManager; + /** + * 创建结点配置信息 + * @return 节点code + */ @Override public CommonResponse createNodeBizAttributes(CreateNodeBizAttributesRequest request) { return CommonResponse.success(CreateNodeBizAttributesResponse.builder().nodeCode(nodeBizAttributesManager.create(request)).build()); } + /** + * 更新结点配置信息 + * @return 节点code + */ @Override public CommonResponse updateNodeBizAttributes(UpdateNodeBizAttributesRequest request) { return CommonResponse.success(UpdateNodeBizAttributesResponse.builder().nodeCode(nodeBizAttributesManager.update(request)).build()); } + /** + * 更新或者插入结点配置信息 + * @return 节点code + */ + @Override + public CommonResponse upsertNodeBizAttributes(UpsertNodeBizAttributesRequest request) { + return CommonResponse.success(UpsertNodeBizAttributesResponse.builder().nodeCode(nodeBizAttributesManager.upsert(request)).build()); + } + + /** + * 查询结点配置信息 + * @return 节点code + */ @Override public CommonResponse> searchNodeBizAttributes(SearchNodeBizAttributesRequest request) { List attributes = nodeBizAttributesManager.search(request); diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java index 27e4d8d2..79d10514 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java @@ -4,6 +4,7 @@ package cn.axzo.nanopart.doc.bizattri; import cn.axzo.nanopart.doc.api.bizattri.request.CreateNodeBizAttributesRequest; import cn.axzo.nanopart.doc.api.bizattri.request.SearchNodeBizAttributesRequest; import cn.axzo.nanopart.doc.api.bizattri.request.UpdateNodeBizAttributesRequest; +import cn.axzo.nanopart.doc.api.bizattri.request.UpsertNodeBizAttributesRequest; import cn.axzo.nanopart.doc.api.util.BizAssertions; import cn.axzo.nanopart.doc.bizattri.dto.NodeBizAttributesDto; import cn.axzo.nanopart.doc.dao.NodeBizAttributesDao; @@ -14,6 +15,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RestController; import java.util.List; +import java.util.Objects; /** * @author xudawei@axzo.cn @@ -47,6 +49,19 @@ public class NodeBizAttributesManager { return request.getNodeCode(); } + public String upsert(UpsertNodeBizAttributesRequest request) { + NodeBizAttributes attributes = nodeBizAttributesDao.getByNodeCode(request.getNodeCode()); + attributes.setUpdateBy(request.getUpdateBy()); + if (Objects.isNull(attributes) || Objects.isNull(attributes.getId())) { + attributes = new NodeBizAttributes(); + attributes.setCreateBy(request.getCreateBy()); + attributes.setUpdateBy(request.getCreateBy()); + } + attributes.setAttributes(BeanUtil.copyToList(request.getDrawMaterials(), NodeBizAttributes.Attributes.class)); + nodeBizAttributesDao.saveOrUpdate(attributes); + return request.getNodeCode(); + } + public List search(SearchNodeBizAttributesRequest request) { return nodeBizAttributesDao.list(BeanUtil.copyProperties(request, NodeBizAttributesDto.class)); } From 1a2f970425a715c1f3a4518ffb7e129f9e3c8bc1 Mon Sep 17 00:00:00 2001 From: xudawei Date: Tue, 1 Apr 2025 17:12:35 +0800 Subject: [PATCH 07/25] =?UTF-8?q?feat:=20(REQ-3846)=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=8F=92=E5=85=A5=E6=88=96=E8=80=85=E6=9B=B4=E6=96=B0=E5=9B=BE?= =?UTF-8?q?=E7=BA=B8=E7=B4=A0=E6=9D=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java index 79d10514..04a8be48 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java @@ -51,13 +51,13 @@ public class NodeBizAttributesManager { public String upsert(UpsertNodeBizAttributesRequest request) { NodeBizAttributes attributes = nodeBizAttributesDao.getByNodeCode(request.getNodeCode()); - attributes.setUpdateBy(request.getUpdateBy()); + if (Objects.isNull(attributes) || Objects.isNull(attributes.getId())) { attributes = new NodeBizAttributes(); attributes.setCreateBy(request.getCreateBy()); - attributes.setUpdateBy(request.getCreateBy()); } attributes.setAttributes(BeanUtil.copyToList(request.getDrawMaterials(), NodeBizAttributes.Attributes.class)); + attributes.setUpdateBy((Objects.nonNull(request.getUpdateBy()) && !Objects.equals(request.getUpdateBy(), 0L)) ? request.getUpdateBy() : request.getCreateBy()); nodeBizAttributesDao.saveOrUpdate(attributes); return request.getNodeCode(); } From 9100f5ae643ec6774f1a4eaad85ea403e873937e Mon Sep 17 00:00:00 2001 From: xudawei Date: Tue, 1 Apr 2025 18:47:24 +0800 Subject: [PATCH 08/25] =?UTF-8?q?feat:=20(REQ-3846)=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=8F=92=E5=85=A5=E6=88=96=E8=80=85=E6=9B=B4=E6=96=B0=E5=9B=BE?= =?UTF-8?q?=E7=BA=B8=E7=B4=A0=E6=9D=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../axzo/nanopart/doc/api/bizattri/NodeBizAttributesApi.java | 2 +- .../api/bizattri/request/UpsertNodeBizAttributesRequest.java | 4 ++++ .../axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/NodeBizAttributesApi.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/NodeBizAttributesApi.java index c6ad5b0c..9de2e03e 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/NodeBizAttributesApi.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/NodeBizAttributesApi.java @@ -43,7 +43,7 @@ public interface NodeBizAttributesApi { * @return 节点code */ @PostMapping("/api/nodeBizAttributes/upsert") - CommonResponse upsertNodeBizAttributes(UpsertNodeBizAttributesRequest request); + CommonResponse upsertNodeBizAttributes(@RequestBody @Valid UpsertNodeBizAttributesRequest request); /** * 查询结点配置信息 diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java index 5798d627..80470685 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java @@ -5,6 +5,8 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; import java.util.List; /** @@ -21,11 +23,13 @@ public class UpsertNodeBizAttributesRequest { /** * 结点编码 */ + @NotBlank(message = "结点编码不能为空") private String nodeCode; /** * 图纸素材 */ + @NotEmpty(message = "图纸素材不能为空") private List drawMaterials; /** diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java index 04a8be48..8c2895bf 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesManager.java @@ -54,6 +54,7 @@ public class NodeBizAttributesManager { if (Objects.isNull(attributes) || Objects.isNull(attributes.getId())) { attributes = new NodeBizAttributes(); + attributes.setNodeCode(request.getNodeCode()); attributes.setCreateBy(request.getCreateBy()); } attributes.setAttributes(BeanUtil.copyToList(request.getDrawMaterials(), NodeBizAttributes.Attributes.class)); From 1a740e01ffa86ab4ea30da6a158b646fe3643099 Mon Sep 17 00:00:00 2001 From: xudawei Date: Tue, 8 Apr 2025 09:26:07 +0800 Subject: [PATCH 09/25] =?UTF-8?q?feat:=20(REQ-3846)=20=E5=9B=BE=E7=BA=B8?= =?UTF-8?q?=E7=B4=A0=E6=9D=90=E5=8A=A0=E4=B8=8AdrawId/annoId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../request/CreateNodeBizAttributesRequest.java | 13 +++++++++++++ .../request/UpsertNodeBizAttributesRequest.java | 9 +++++++++ .../axzo/nanopart/doc/entity/NodeBizAttributes.java | 9 +++++++++ 3 files changed, 31 insertions(+) diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/CreateNodeBizAttributesRequest.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/CreateNodeBizAttributesRequest.java index b7e7eeb6..2a7717fa 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/CreateNodeBizAttributesRequest.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/CreateNodeBizAttributesRequest.java @@ -47,6 +47,13 @@ public class CreateNodeBizAttributesRequest { * 标题 */ private String title; + + + /** + * 图纸 + */ + private String drawId; + /** * 素材 */ @@ -70,6 +77,12 @@ public class CreateNodeBizAttributesRequest { * 名称 */ private String name; + + /** + * 素材 + */ + private String annoId; + } } diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java index 80470685..23af8458 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java @@ -51,6 +51,10 @@ public class UpsertNodeBizAttributesRequest { * 标题 */ private String title; + /** + * 图纸 + */ + private String drawId; /** * 素材 */ @@ -74,6 +78,11 @@ public class UpsertNodeBizAttributesRequest { * 名称 */ private String name; + + /** + * 素材 + */ + private String annoId; } } diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/entity/NodeBizAttributes.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/entity/NodeBizAttributes.java index 29d7ad49..5a10480e 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/entity/NodeBizAttributes.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/entity/NodeBizAttributes.java @@ -63,6 +63,10 @@ public class NodeBizAttributes extends BaseEntity { * 标题 */ private String title; + /** + * 图纸 + */ + private String drawId; /** * 内容 */ @@ -86,6 +90,11 @@ public class NodeBizAttributes extends BaseEntity { * 名称 */ private String name; + + /** + * 素材 + */ + private String annoId; } From 46bcebb08e30657cee94af908e00e3e90004e837 Mon Sep 17 00:00:00 2001 From: xudawei Date: Tue, 8 Apr 2025 12:46:47 +0800 Subject: [PATCH 10/25] =?UTF-8?q?feat:=20(REQ-3846)=20=E5=9B=BE=E7=BA=B8?= =?UTF-8?q?=E7=B4=A0=E6=9D=90=E9=9D=9E=E7=A9=BA=E6=A0=A1=E9=AA=8C=E5=8E=BB?= =?UTF-8?q?=E6=8E=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java index 23af8458..7a2bfe67 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java @@ -29,7 +29,6 @@ public class UpsertNodeBizAttributesRequest { /** * 图纸素材 */ - @NotEmpty(message = "图纸素材不能为空") private List drawMaterials; /** From 4d4f49d03424bc89ae3298808619dd39b9658be5 Mon Sep 17 00:00:00 2001 From: xudawei Date: Wed, 9 Apr 2025 14:38:57 +0800 Subject: [PATCH 11/25] =?UTF-8?q?feat:=20(REQ-3846)=20=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E9=93=BE=E6=8E=A5=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../NodeBizAttributesApiController.java | 38 ++++++++++++++++++- .../cn/axzo/nanopart/config/FeignConfig.java | 3 ++ 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java index 7807492d..5870163e 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java @@ -11,15 +11,23 @@ import cn.axzo.nanopart.doc.api.bizattri.response.SearchNodeBizAttributesRespons import cn.axzo.nanopart.doc.api.bizattri.response.UpdateNodeBizAttributesResponse; import cn.axzo.nanopart.doc.api.bizattri.response.UpsertNodeBizAttributesResponse; import cn.axzo.nanopart.doc.entity.NodeBizAttributes; +import cn.axzo.nanopart.doc.integration.DocOssGateway; +import cn.axzo.oss.http.model.ApiSignUrlDownloadRequest; +import cn.axzo.oss.http.model.ApiSignUrlDownloadResponse; import cn.azxo.framework.common.model.CommonResponse; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.web.bind.annotation.RestController; import java.util.Collections; import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.stream.Collectors; /** @@ -33,6 +41,8 @@ public class NodeBizAttributesApiController implements NodeBizAttributesApi { private final NodeBizAttributesManager nodeBizAttributesManager; + private final DocOssGateway docOssGateway; + /** * 创建结点配置信息 * @return 节点code @@ -77,8 +87,34 @@ public class NodeBizAttributesApiController implements NodeBizAttributesApi { if (CollectionUtil.isEmpty(attributes)) { return Collections.emptyList(); } - return attributes.stream().map(item -> SearchNodeBizAttributesResponse.builder() + List responseList = attributes.stream().map(item -> SearchNodeBizAttributesResponse.builder() .nodeCode(item.getNodeCode()) .drawMaterials(BeanUtil.copyToList(item.getAttributes(), CreateNodeBizAttributesRequest.DrawMaterial.class)).build()).collect(Collectors.toList()); + //dwgUrl/picUrl重新赋值 + this.rechangeDwgPicUrl(responseList); + return responseList; + } + + /** + * dwgUrl/picUrl重新赋值 + */ + private void rechangeDwgPicUrl(List responseList) { + List drawMaterials = responseList.stream().flatMap(item -> item.getDrawMaterials().stream()).collect(Collectors.toList()); + + List contentList = drawMaterials.stream().flatMap(item -> item.getContents().stream()).collect(Collectors.toList()); + Set dwgUrlList = contentList.stream().map(CreateNodeBizAttributesRequest.Content::getDwgUrl).collect(Collectors.toSet()); + Set picUrlList = contentList.stream().map(CreateNodeBizAttributesRequest.Content::getPicUrl).collect(Collectors.toSet()); + + Set fileKeys = Sets.newHashSet(); + fileKeys.addAll(dwgUrlList); + fileKeys.addAll(picUrlList); + + List apiSignUrlDownloadResponses = docOssGateway.signUrlFetchDownload(ApiSignUrlDownloadRequest.builder().fileKeys(Lists.newArrayList(fileKeys)).build()); + Map collect = apiSignUrlDownloadResponses.stream().collect(Collectors.toMap(item -> item.getFileKey(), value -> value.getSignUrl(), (x, y) -> x)); + + contentList.forEach(item -> { + item.setDwgUrl(StringUtils.isNotEmpty(collect.get(item.getDwgUrl())) ? collect.get(item.getDwgUrl()) : item.getDwgUrl()); + item.setPicUrl(StringUtils.isNotEmpty(collect.get(item.getPicUrl())) ? collect.get(item.getPicUrl()) : item.getPicUrl()); + }); } } diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/config/FeignConfig.java b/nanopart-server/src/main/java/cn/axzo/nanopart/config/FeignConfig.java index 819cfbcb..3adceffd 100644 --- a/nanopart-server/src/main/java/cn/axzo/nanopart/config/FeignConfig.java +++ b/nanopart-server/src/main/java/cn/axzo/nanopart/config/FeignConfig.java @@ -73,6 +73,8 @@ public class FeignConfig implements RequestInterceptor, EnvironmentAware { private String thorUrl; @Value("${orgGateway:http://dev-app.axzo.cn/org-gateway}") private String orgGatewayUrl; + @Value("${ossEnvUrl:http://dev-app.axzo.cn/oss}") + private String ossEnvUrl; private static String POD_NAMESPACE; @@ -114,6 +116,7 @@ public class FeignConfig implements RequestInterceptor, EnvironmentAware { url = url.replace("http://attendance:8080", attendanceApi); url = url.replace("http://thor:8080", thorUrl); url = url.replace("http://org-gateway:8080", orgGatewayUrl); + url = url.replace("http://oss:9123", ossEnvUrl); String profile = environment.getProperty("spring.profiles.active"); if(Objects.equals(profile, "test") && url.contains("dev-app.axzo.cn")) { url = url.replace("dev-app", "test-api"); From d762447539ef98a0cf099c6e0512bd1bfaa5f9ca Mon Sep 17 00:00:00 2001 From: xudawei Date: Wed, 9 Apr 2025 20:29:14 +0800 Subject: [PATCH 12/25] =?UTF-8?q?feat:=20(REQ-3846)=20=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E9=93=BE=E6=8E=A5=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CreateNodeBizAttributesRequest.java | 4 +- .../UpsertNodeBizAttributesRequest.java | 18 +++++-- .../SearchNodeBizAttributesResponse.java | 50 ++++++++++++++++++- .../NodeBizAttributesApiController.java | 16 ++---- .../doc/entity/NodeBizAttributes.java | 18 ++++--- 5 files changed, 80 insertions(+), 26 deletions(-) diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/CreateNodeBizAttributesRequest.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/CreateNodeBizAttributesRequest.java index 2a7717fa..6b7315b8 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/CreateNodeBizAttributesRequest.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/CreateNodeBizAttributesRequest.java @@ -66,9 +66,9 @@ public class CreateNodeBizAttributesRequest { @Data public static class Content { /** - * 图片url + * 图片的fileKey */ - private String picUrl; + private String picFileKey; /** * dwg的url */ diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java index 7a2bfe67..9688698b 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java @@ -6,7 +6,6 @@ import lombok.Data; import lombok.NoArgsConstructor; import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotEmpty; import java.util.List; /** @@ -58,6 +57,11 @@ public class UpsertNodeBizAttributesRequest { * 素材 */ private List contents; + + /** + * 创建时间 + */ + private Long createAt; } @Builder @@ -66,13 +70,13 @@ public class UpsertNodeBizAttributesRequest { @Data public static class Content { /** - * 图片url + * 图片的fileKey */ - private String picUrl; + private String picFileKey; /** - * dwg的url + * dwg的fileKey */ - private String dwgUrl; + private String dwgFileKey; /** * 名称 */ @@ -82,6 +86,10 @@ public class UpsertNodeBizAttributesRequest { * 素材 */ private String annoId; + /** + * 创建时间 + */ + private Long createAt; } } diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/SearchNodeBizAttributesResponse.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/SearchNodeBizAttributesResponse.java index d2f01d28..c513d6e3 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/SearchNodeBizAttributesResponse.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/SearchNodeBizAttributesResponse.java @@ -1,6 +1,5 @@ package cn.axzo.nanopart.doc.api.bizattri.response; -import cn.axzo.nanopart.doc.api.bizattri.request.CreateNodeBizAttributesRequest; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -27,6 +26,53 @@ public class SearchNodeBizAttributesResponse { /** * 图纸素材 */ - private List drawMaterials; + private List drawMaterials; + + @Builder + @AllArgsConstructor + @NoArgsConstructor + @Data + public static class DrawMaterial { + /** + * 标题 + */ + private String title; + + + /** + * 图纸 + */ + private String drawId; + + /** + * 素材 + */ + private List contents; + } + + @Builder + @AllArgsConstructor + @NoArgsConstructor + @Data + public static class Content { + /** + * 图片的fileKey + */ + private String picFileKey; + /** + * 图片的url + */ + private String picUrl; + /** + * 名称 + */ + private String name; + + /** + * 素材 + */ + private String annoId; + + } } diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java index 5870163e..f9fe6581 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java @@ -89,7 +89,7 @@ public class NodeBizAttributesApiController implements NodeBizAttributesApi { } List responseList = attributes.stream().map(item -> SearchNodeBizAttributesResponse.builder() .nodeCode(item.getNodeCode()) - .drawMaterials(BeanUtil.copyToList(item.getAttributes(), CreateNodeBizAttributesRequest.DrawMaterial.class)).build()).collect(Collectors.toList()); + .drawMaterials(BeanUtil.copyToList(item.getAttributes(), SearchNodeBizAttributesResponse.DrawMaterial.class)).build()).collect(Collectors.toList()); //dwgUrl/picUrl重新赋值 this.rechangeDwgPicUrl(responseList); return responseList; @@ -99,21 +99,15 @@ public class NodeBizAttributesApiController implements NodeBizAttributesApi { * dwgUrl/picUrl重新赋值 */ private void rechangeDwgPicUrl(List responseList) { - List drawMaterials = responseList.stream().flatMap(item -> item.getDrawMaterials().stream()).collect(Collectors.toList()); + List drawMaterials = responseList.stream().flatMap(item -> item.getDrawMaterials().stream()).collect(Collectors.toList()); - List contentList = drawMaterials.stream().flatMap(item -> item.getContents().stream()).collect(Collectors.toList()); - Set dwgUrlList = contentList.stream().map(CreateNodeBizAttributesRequest.Content::getDwgUrl).collect(Collectors.toSet()); - Set picUrlList = contentList.stream().map(CreateNodeBizAttributesRequest.Content::getPicUrl).collect(Collectors.toSet()); + List contentList = drawMaterials.stream().flatMap(item -> item.getContents().stream()).collect(Collectors.toList()); + Set picFileKeyList = contentList.stream().map(SearchNodeBizAttributesResponse.Content::getPicFileKey).collect(Collectors.toSet()); - Set fileKeys = Sets.newHashSet(); - fileKeys.addAll(dwgUrlList); - fileKeys.addAll(picUrlList); - - List apiSignUrlDownloadResponses = docOssGateway.signUrlFetchDownload(ApiSignUrlDownloadRequest.builder().fileKeys(Lists.newArrayList(fileKeys)).build()); + List apiSignUrlDownloadResponses = docOssGateway.signUrlFetchDownload(ApiSignUrlDownloadRequest.builder().fileKeys(Lists.newArrayList(picFileKeyList)).build()); Map collect = apiSignUrlDownloadResponses.stream().collect(Collectors.toMap(item -> item.getFileKey(), value -> value.getSignUrl(), (x, y) -> x)); contentList.forEach(item -> { - item.setDwgUrl(StringUtils.isNotEmpty(collect.get(item.getDwgUrl())) ? collect.get(item.getDwgUrl()) : item.getDwgUrl()); item.setPicUrl(StringUtils.isNotEmpty(collect.get(item.getPicUrl())) ? collect.get(item.getPicUrl()) : item.getPicUrl()); }); } diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/entity/NodeBizAttributes.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/entity/NodeBizAttributes.java index 5a10480e..d1a7edff 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/entity/NodeBizAttributes.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/entity/NodeBizAttributes.java @@ -71,6 +71,11 @@ public class NodeBizAttributes extends BaseEntity { * 内容 */ private List contents; + + /** + * 创建时间 + */ + private Long createAt; } @Builder @@ -79,13 +84,9 @@ public class NodeBizAttributes extends BaseEntity { @Data public static class Content { /** - * 图片url + * 图片的fileKey */ - private String picUrl; - /** - * dwg的url - */ - private String dwgUrl; + private String picFileKey; /** * 名称 */ @@ -95,6 +96,11 @@ public class NodeBizAttributes extends BaseEntity { * 素材 */ private String annoId; + + /** + * 创建时间 + */ + private Long createAt; } From 90734ccbcf106248fbfece5046c43cf11057b87d Mon Sep 17 00:00:00 2001 From: xudawei Date: Wed, 9 Apr 2025 21:01:11 +0800 Subject: [PATCH 13/25] =?UTF-8?q?feat:=20(REQ-3846)=20=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E9=93=BE=E6=8E=A5=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/bizattri/request/UpsertNodeBizAttributesRequest.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java index 9688698b..55bad076 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java @@ -73,10 +73,6 @@ public class UpsertNodeBizAttributesRequest { * 图片的fileKey */ private String picFileKey; - /** - * dwg的fileKey - */ - private String dwgFileKey; /** * 名称 */ From a753ff8a8018e258ed98cd7d26027dd48f404255 Mon Sep 17 00:00:00 2001 From: xudawei Date: Wed, 9 Apr 2025 21:24:08 +0800 Subject: [PATCH 14/25] =?UTF-8?q?feat:=20(REQ-3846)=20=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E9=93=BE=E6=8E=A5=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/bizattri/request/UpsertNodeBizAttributesRequest.java | 4 ++-- .../java/cn/axzo/nanopart/doc/entity/NodeBizAttributes.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java index 55bad076..56d154ef 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java @@ -61,7 +61,7 @@ public class UpsertNodeBizAttributesRequest { /** * 创建时间 */ - private Long createAt; + private Long createAtTime; } @Builder @@ -85,7 +85,7 @@ public class UpsertNodeBizAttributesRequest { /** * 创建时间 */ - private Long createAt; + private Long createAtTime; } } diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/entity/NodeBizAttributes.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/entity/NodeBizAttributes.java index d1a7edff..61e43d89 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/entity/NodeBizAttributes.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/entity/NodeBizAttributes.java @@ -75,7 +75,7 @@ public class NodeBizAttributes extends BaseEntity { /** * 创建时间 */ - private Long createAt; + private Long createAtTime; } @Builder @@ -100,7 +100,7 @@ public class NodeBizAttributes extends BaseEntity { /** * 创建时间 */ - private Long createAt; + private Long createAtTime; } From 40f17a620ad9f6af1c17d76bea6e6959b9887d90 Mon Sep 17 00:00:00 2001 From: xudawei Date: Wed, 9 Apr 2025 21:54:30 +0800 Subject: [PATCH 15/25] =?UTF-8?q?feat:=20(REQ-3846)=20=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E9=93=BE=E6=8E=A5=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bizattri/NodeBizAttributesApiController.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java index f9fe6581..6dd6d2da 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java @@ -18,7 +18,6 @@ import cn.azxo.framework.common.model.CommonResponse; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import com.google.common.collect.Lists; -import com.google.common.collect.Sets; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; @@ -87,11 +86,19 @@ public class NodeBizAttributesApiController implements NodeBizAttributesApi { if (CollectionUtil.isEmpty(attributes)) { return Collections.emptyList(); } - List responseList = attributes.stream().map(item -> SearchNodeBizAttributesResponse.builder() - .nodeCode(item.getNodeCode()) - .drawMaterials(BeanUtil.copyToList(item.getAttributes(), SearchNodeBizAttributesResponse.DrawMaterial.class)).build()).collect(Collectors.toList()); + List responseList = attributes.stream().filter(item -> { + + List attributesList = item.getAttributes().stream().filter(attr -> CollectionUtil.isNotEmpty(attr.getContents())).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(attributesList)) { + return true; + } + return false; + }).map(attr ->SearchNodeBizAttributesResponse.builder() + .nodeCode(attr.getNodeCode()) + .drawMaterials(BeanUtil.copyToList(attr.getAttributes(), SearchNodeBizAttributesResponse.DrawMaterial.class)).build()).collect(Collectors.toList()); //dwgUrl/picUrl重新赋值 this.rechangeDwgPicUrl(responseList); + return responseList; } From 1a6b57b5aff800e76b2aa4bf17ea48f2ff8996b3 Mon Sep 17 00:00:00 2001 From: xudawei Date: Wed, 9 Apr 2025 23:40:30 +0800 Subject: [PATCH 16/25] =?UTF-8?q?feat:=20(REQ-3846)=20=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E9=93=BE=E6=8E=A5=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SearchNodeBizAttributesResponse.java | 10 ++++++++++ .../NodeBizAttributesApiController.java | 20 +++++++++++++------ 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/SearchNodeBizAttributesResponse.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/SearchNodeBizAttributesResponse.java index c513d6e3..95108081 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/SearchNodeBizAttributesResponse.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/SearchNodeBizAttributesResponse.java @@ -48,6 +48,11 @@ public class SearchNodeBizAttributesResponse { * 素材 */ private List contents; + + /** + * 创建时间 + */ + private Long createAtTime; } @Builder @@ -73,6 +78,11 @@ public class SearchNodeBizAttributesResponse { */ private String annoId; + /** + * 创建时间 + */ + private Long createAtTime; + } } diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java index 6dd6d2da..29c99290 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java @@ -86,19 +86,27 @@ public class NodeBizAttributesApiController implements NodeBizAttributesApi { if (CollectionUtil.isEmpty(attributes)) { return Collections.emptyList(); } - List responseList = attributes.stream().filter(item -> { - List attributesList = item.getAttributes().stream().filter(attr -> CollectionUtil.isNotEmpty(attr.getContents())).collect(Collectors.toList()); + List copyRespList = attributes.stream().map(item -> SearchNodeBizAttributesResponse.builder() + .nodeCode(item.getNodeCode()) + .drawMaterials(BeanUtil.copyToList(item.getAttributes(), SearchNodeBizAttributesResponse.DrawMaterial.class)) + .build()).collect(Collectors.toList()); + + List responseList = copyRespList.stream().filter(item -> { + + List attributesList = item.getDrawMaterials().stream().filter(attr -> CollectionUtil.isNotEmpty(attr.getContents())).collect(Collectors.toList()); if (CollectionUtil.isNotEmpty(attributesList)) { return true; } return false; - }).map(attr ->SearchNodeBizAttributesResponse.builder() - .nodeCode(attr.getNodeCode()) - .drawMaterials(BeanUtil.copyToList(attr.getAttributes(), SearchNodeBizAttributesResponse.DrawMaterial.class)).build()).collect(Collectors.toList()); + }).collect(Collectors.toList()); //dwgUrl/picUrl重新赋值 this.rechangeDwgPicUrl(responseList); +// for (SearchNodeBizAttributesResponse response : responseList) { +// response.getDrawMaterials() +// } + return responseList; } @@ -115,7 +123,7 @@ public class NodeBizAttributesApiController implements NodeBizAttributesApi { Map collect = apiSignUrlDownloadResponses.stream().collect(Collectors.toMap(item -> item.getFileKey(), value -> value.getSignUrl(), (x, y) -> x)); contentList.forEach(item -> { - item.setPicUrl(StringUtils.isNotEmpty(collect.get(item.getPicUrl())) ? collect.get(item.getPicUrl()) : item.getPicUrl()); + item.setPicUrl(StringUtils.isNotEmpty(collect.get(item.getPicFileKey())) ? collect.get(item.getPicFileKey()) : item.getPicFileKey()); }); } } From 0ba2fb35fd8aa454c27ebf486cc56a9ff9677646 Mon Sep 17 00:00:00 2001 From: xudawei Date: Thu, 10 Apr 2025 00:19:02 +0800 Subject: [PATCH 17/25] =?UTF-8?q?feat:=20(REQ-3846)=20=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E9=93=BE=E6=8E=A5=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SearchNodeBizAttributesResponse.java | 48 ++++++++++++++++++- .../NodeBizAttributesApiController.java | 23 +++++++-- 2 files changed, 65 insertions(+), 6 deletions(-) diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/SearchNodeBizAttributesResponse.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/SearchNodeBizAttributesResponse.java index 95108081..b4972111 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/SearchNodeBizAttributesResponse.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/SearchNodeBizAttributesResponse.java @@ -6,6 +6,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.List; +import java.util.Objects; /** * @author xudawei@axzo.cn @@ -32,7 +33,7 @@ public class SearchNodeBizAttributesResponse { @AllArgsConstructor @NoArgsConstructor @Data - public static class DrawMaterial { + public static class DrawMaterial implements Comparable{ /** * 标题 */ @@ -53,13 +54,35 @@ public class SearchNodeBizAttributesResponse { * 创建时间 */ private Long createAtTime; + + @Override + public int compareTo(DrawMaterial o) { + Long first = this.getCreateAtTime(); + Long second = o.getCreateAtTime(); + if (Objects.isNull(first)) { + first = 0L; + } + + if (Objects.isNull(second)) { + second = 0L; + } + + if (Objects.equals(first, second)) { + return 0; + } + + if (first > second) { + return -1; + } + return 1; + } } @Builder @AllArgsConstructor @NoArgsConstructor @Data - public static class Content { + public static class Content implements Comparable{ /** * 图片的fileKey */ @@ -83,6 +106,27 @@ public class SearchNodeBizAttributesResponse { */ private Long createAtTime; + @Override + public int compareTo(Content o) { + Long first = this.getCreateAtTime(); + Long second = o.getCreateAtTime(); + if (Objects.isNull(first)) { + first = 0L; + } + + if (Objects.isNull(second)) { + second = 0L; + } + + if (Objects.equals(first, second)) { + return 0; + } + + if (first > second) { + return -1; + } + return 1; + } } } diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java index 29c99290..69c88ead 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java @@ -102,14 +102,29 @@ public class NodeBizAttributesApiController implements NodeBizAttributesApi { }).collect(Collectors.toList()); //dwgUrl/picUrl重新赋值 this.rechangeDwgPicUrl(responseList); - -// for (SearchNodeBizAttributesResponse response : responseList) { -// response.getDrawMaterials() -// } + //排序 + this.sort(responseList); return responseList; } + /** + * 排序 + * @param responseList + */ + private void sort(List responseList) { + for (SearchNodeBizAttributesResponse response : responseList) { + if (CollectionUtil.isNotEmpty(response.getDrawMaterials())) { + Collections.sort(response.getDrawMaterials()); + for (SearchNodeBizAttributesResponse.DrawMaterial drawMaterial : response.getDrawMaterials()) { + if (CollectionUtil.isNotEmpty(drawMaterial.getContents())) { + Collections.sort(drawMaterial.getContents()); + } + } + } + } + } + /** * dwgUrl/picUrl重新赋值 */ From 87d64d11cfb41f32adbde2bd15ebade1964e69b5 Mon Sep 17 00:00:00 2001 From: xudawei Date: Thu, 10 Apr 2025 09:43:52 +0800 Subject: [PATCH 18/25] =?UTF-8?q?feat:=20(REQ-3846)=20=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E9=93=BE=E6=8E=A5=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bizattri/NodeBizAttributesApiController.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java index 69c88ead..bd403f5a 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java @@ -134,11 +134,14 @@ public class NodeBizAttributesApiController implements NodeBizAttributesApi { List contentList = drawMaterials.stream().flatMap(item -> item.getContents().stream()).collect(Collectors.toList()); Set picFileKeyList = contentList.stream().map(SearchNodeBizAttributesResponse.Content::getPicFileKey).collect(Collectors.toSet()); - List apiSignUrlDownloadResponses = docOssGateway.signUrlFetchDownload(ApiSignUrlDownloadRequest.builder().fileKeys(Lists.newArrayList(picFileKeyList)).build()); - Map collect = apiSignUrlDownloadResponses.stream().collect(Collectors.toMap(item -> item.getFileKey(), value -> value.getSignUrl(), (x, y) -> x)); + if (CollectionUtil.isNotEmpty(picFileKeyList)) { + List apiSignUrlDownloadResponses = docOssGateway.signUrlFetchDownload(ApiSignUrlDownloadRequest.builder().fileKeys(Lists.newArrayList(picFileKeyList)).build()); + Map collect = apiSignUrlDownloadResponses.stream().collect(Collectors.toMap(item -> item.getFileKey(), value -> value.getSignUrl(), (x, y) -> x)); + + contentList.forEach(item -> { + item.setPicUrl(StringUtils.isNotEmpty(collect.get(item.getPicFileKey())) ? collect.get(item.getPicFileKey()) : item.getPicFileKey()); + }); + } - contentList.forEach(item -> { - item.setPicUrl(StringUtils.isNotEmpty(collect.get(item.getPicFileKey())) ? collect.get(item.getPicFileKey()) : item.getPicFileKey()); - }); } } From 5b39f78f084726518dec705613d15cccb7b245a3 Mon Sep 17 00:00:00 2001 From: xudawei Date: Thu, 10 Apr 2025 11:37:47 +0800 Subject: [PATCH 19/25] =?UTF-8?q?feat:=20(REQ-3846)=20=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E9=93=BE=E6=8E=A5=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../doc/bizattri/NodeBizAttributesApiController.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java index bd403f5a..34eaf086 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/bizattri/NodeBizAttributesApiController.java @@ -136,11 +136,13 @@ public class NodeBizAttributesApiController implements NodeBizAttributesApi { if (CollectionUtil.isNotEmpty(picFileKeyList)) { List apiSignUrlDownloadResponses = docOssGateway.signUrlFetchDownload(ApiSignUrlDownloadRequest.builder().fileKeys(Lists.newArrayList(picFileKeyList)).build()); - Map collect = apiSignUrlDownloadResponses.stream().collect(Collectors.toMap(item -> item.getFileKey(), value -> value.getSignUrl(), (x, y) -> x)); + if (CollectionUtil.isNotEmpty(apiSignUrlDownloadResponses)) { + Map collect = apiSignUrlDownloadResponses.stream().collect(Collectors.toMap(item -> item.getFileKey(), value -> value.getSignUrl(), (x, y) -> x)); - contentList.forEach(item -> { - item.setPicUrl(StringUtils.isNotEmpty(collect.get(item.getPicFileKey())) ? collect.get(item.getPicFileKey()) : item.getPicFileKey()); - }); + contentList.forEach(item -> { + item.setPicUrl(StringUtils.isNotEmpty(collect.get(item.getPicFileKey())) ? collect.get(item.getPicFileKey()) : item.getPicFileKey()); + }); + } } } From 44b57eb46143442b9443ddd3a443cf211ee58ed6 Mon Sep 17 00:00:00 2001 From: xudawei Date: Fri, 11 Apr 2025 17:50:04 +0800 Subject: [PATCH 20/25] =?UTF-8?q?feat:=20(REQ-3846)=20=E5=9B=BE=E6=96=87?= =?UTF-8?q?=E5=B9=B6=E8=8C=82=E5=8A=A0=E4=B8=8AcreateAt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../request/UpsertNodeBizAttributesRequest.java | 10 ++++++++++ .../cn/axzo/nanopart/doc/entity/NodeBizAttributes.java | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java index 56d154ef..d7dfefd1 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/request/UpsertNodeBizAttributesRequest.java @@ -62,6 +62,11 @@ public class UpsertNodeBizAttributesRequest { * 创建时间 */ private Long createAtTime; + + /** + * 创建时间 + */ + private String createAt; } @Builder @@ -86,6 +91,11 @@ public class UpsertNodeBizAttributesRequest { * 创建时间 */ private Long createAtTime; + + /** + * 创建时间 + */ + private String createAt; } } diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/entity/NodeBizAttributes.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/entity/NodeBizAttributes.java index 61e43d89..a679d21d 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/entity/NodeBizAttributes.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/entity/NodeBizAttributes.java @@ -76,6 +76,11 @@ public class NodeBizAttributes extends BaseEntity { * 创建时间 */ private Long createAtTime; + + /** + * 创建时间 + */ + private String createAt; } @Builder @@ -101,6 +106,11 @@ public class NodeBizAttributes extends BaseEntity { * 创建时间 */ private Long createAtTime; + + /** + * 创建时间 + */ + private String createAt; } From 3cf2f063d0c60de958b6b41088250a6aaf76794a Mon Sep 17 00:00:00 2001 From: xudawei Date: Fri, 11 Apr 2025 17:51:27 +0800 Subject: [PATCH 21/25] =?UTF-8?q?feat:=20(REQ-3846)=20=E5=9B=BE=E6=96=87?= =?UTF-8?q?=E5=B9=B6=E8=8C=82=E5=8A=A0=E4=B8=8AcreateAt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../response/SearchNodeBizAttributesResponse.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/SearchNodeBizAttributesResponse.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/SearchNodeBizAttributesResponse.java index b4972111..fcdb4b18 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/SearchNodeBizAttributesResponse.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/bizattri/response/SearchNodeBizAttributesResponse.java @@ -55,6 +55,11 @@ public class SearchNodeBizAttributesResponse { */ private Long createAtTime; + /** + * 创建时间 + */ + private String createAt; + @Override public int compareTo(DrawMaterial o) { Long first = this.getCreateAtTime(); @@ -106,6 +111,11 @@ public class SearchNodeBizAttributesResponse { */ private Long createAtTime; + /** + * 创建时间 + */ + private String createAt; + @Override public int compareTo(Content o) { Long first = this.getCreateAtTime(); From 6ca353c2219cb868da008af2a24cfc25c97f94d3 Mon Sep 17 00:00:00 2001 From: xudawei Date: Mon, 14 Apr 2025 11:03:57 +0800 Subject: [PATCH 22/25] =?UTF-8?q?feat:=20(REQ-3846)=20=E6=A0=B9=E6=8D=AEco?= =?UTF-8?q?de=E6=89=B9=E9=87=8F=E6=9F=A5=E8=AF=A2indexNode=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3-=E5=8A=A0=E4=B8=8AfileKey/fileUrl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../anonymous/DocAnonymousDatabaseApi.java | 10 ++++ .../doc/api/domain/IndexNodeInfo.java | 10 ++++ .../request/BatchGetNodeInfoRequest.java | 32 +++++++++++ .../axzo/nanopart/doc/dao/IndexNodeDao.java | 11 ++++ .../DocAnonymousDatabaseApiController.java | 57 +++++++++++++++++++ .../nanopart/doc/file/index/IndexManager.java | 4 ++ .../nanopart/doc/integration/OssClient.java | 18 ++++++ 7 files changed, 142 insertions(+) create mode 100644 doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/index/request/BatchGetNodeInfoRequest.java diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/anonymous/DocAnonymousDatabaseApi.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/anonymous/DocAnonymousDatabaseApi.java index 6536127a..93f83c8d 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/anonymous/DocAnonymousDatabaseApi.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/anonymous/DocAnonymousDatabaseApi.java @@ -3,6 +3,8 @@ package cn.axzo.nanopart.doc.api.anonymous; import javax.validation.Valid; +import cn.axzo.nanopart.doc.api.domain.IndexNodeInfo; +import cn.axzo.nanopart.doc.api.index.request.BatchGetNodeInfoRequest; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -13,6 +15,8 @@ import cn.axzo.nanopart.doc.api.anonymous.request.AnonymousUploadFileRequest; import cn.axzo.nanopart.doc.api.index.request.CopyNodeRequest; import cn.azxo.framework.common.model.CommonResponse; +import java.util.Map; + /** * @author yanglin */ @@ -51,4 +55,10 @@ public interface DocAnonymousDatabaseApi { @PostMapping("/api/anonymous/copy") CommonResponse copy(@RequestBody @Valid CopyNodeRequest request); + /** + * 批量获取节点信息集合 + */ + @PostMapping("/api/anonymous/batchGetNodeInfo") + CommonResponse> batchGetNodeInfo(@RequestBody @Valid BatchGetNodeInfoRequest request); + } diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/domain/IndexNodeInfo.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/domain/IndexNodeInfo.java index 39ed5031..493aa1a9 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/domain/IndexNodeInfo.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/domain/IndexNodeInfo.java @@ -125,6 +125,10 @@ public class IndexNodeInfo implements NodeValue, ValueContainer { private IndexNodeAttributes attributes; + private String ossFileKey; + + private String ossFileUrl; + public Path path() { return Path.wrap(path); } @@ -145,6 +149,12 @@ public class IndexNodeInfo implements NodeValue, ValueContainer { return fileTemplateNodeInfo; } + @JsonIgnore + @JSONField(serialize = false, deserialize = false) + public FileAttributes getOrCreateFileAttributes() { + return getOrCreateAttributes().getOrCreateFileAttributes(); + } + @Override public Long id() { return id; diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/index/request/BatchGetNodeInfoRequest.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/index/request/BatchGetNodeInfoRequest.java new file mode 100644 index 00000000..a231ca5b --- /dev/null +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/index/request/BatchGetNodeInfoRequest.java @@ -0,0 +1,32 @@ +package cn.axzo.nanopart.doc.api.index.request; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotEmpty; +import java.util.List; + +/** + * @author xudawei@axzo.cn + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class BatchGetNodeInfoRequest { + + /** + * 节点编码集合 + */ + @NotEmpty(message = "节点编码集合不能为空") + private List codes; + + /** + * 是否需要fileUrl,true:需要,false:不需要 + * 默认false + */ + private Boolean needFileUrl = false; + +} diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/dao/IndexNodeDao.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/dao/IndexNodeDao.java index 834cb748..bd56b1c9 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/dao/IndexNodeDao.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/dao/IndexNodeDao.java @@ -5,6 +5,8 @@ import java.util.List; import java.util.stream.Collectors; import cn.axzo.nanopart.doc.api.enums.DatabaseScope; +import com.google.common.collect.Lists; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Repository; @@ -53,6 +55,15 @@ public class IndexNodeDao extends ServiceImpl { .one(); } + public List findByCodes(List codes) { + if (CollectionUtils.isEmpty(codes)) { + return Lists.newArrayList(); + } + return lambdaQuery() // + .in(IndexNode::getCode, codes) // + .list(); + } + public void updatePath(String code, String path) { lambdaUpdate() // .eq(IndexNode::getCode, code) // diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/anonymous/DocAnonymousDatabaseApiController.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/anonymous/DocAnonymousDatabaseApiController.java index 5db288ea..af725866 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/anonymous/DocAnonymousDatabaseApiController.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/anonymous/DocAnonymousDatabaseApiController.java @@ -1,8 +1,22 @@ package cn.axzo.nanopart.doc.file.anonymous; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; import java.util.concurrent.Future; +import java.util.function.Function; +import java.util.stream.Collectors; +import cn.axzo.nanopart.doc.api.domain.IndexNodeInfo; +import cn.axzo.nanopart.doc.api.index.request.BatchGetNodeInfoRequest; +import cn.axzo.nanopart.doc.integration.OssClient; +import cn.axzo.oss.http.model.ApiSignUrlDownloadResponse; +import cn.hutool.core.bean.BeanUtil; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.RestController; import cn.axzo.nanopart.doc.api.anonymous.DocAnonymousDatabaseApi; @@ -28,6 +42,7 @@ public class DocAnonymousDatabaseApiController implements DocAnonymousDatabaseAp private final IndexManager indexManager; private final AsyncUtils asyncUtils; + private final OssClient ossClient; @Override public CommonResponse createDir(AnonymousCreateDirRequest request) { @@ -56,4 +71,46 @@ public class DocAnonymousDatabaseApiController implements DocAnonymousDatabaseAp return CommonResponse.success(asyncUtils.getOrTimeout(future, 60, "克隆").getCode()); } + /** + * 批量获取节点信息集合 + */ + @Override + public CommonResponse> batchGetNodeInfo(BatchGetNodeInfoRequest request) { + if (Objects.isNull(request) || CollectionUtils.isEmpty(request.getCodes())) { + return CommonResponse.success(Collections.emptyMap()); + } + List indexNodes = indexManager.findByCodes(request.getCodes()); + if (CollectionUtils.isEmpty(indexNodes)) { + return CommonResponse.success(Collections.emptyMap()); + } + List indexNodeInfos = BeanUtil.copyToList(indexNodes, IndexNodeInfo.class); + + //填充对象中的fileKey/fileUrl + this.fillFileKeyUrl(request, indexNodeInfos); + + Map nodeInfoMap = indexNodeInfos.stream() + .collect(Collectors.toMap(item -> item.getCode(), Function.identity(), (x, y) -> x)); + return CommonResponse.success(nodeInfoMap); + } + + /** + * 填充对象中的fileKey/fileUrl + */ + private void fillFileKeyUrl(BatchGetNodeInfoRequest request, List indexNodeInfos) { + if (request.getNeedFileUrl()) { + Set fileKeys = indexNodeInfos.stream().filter(item -> StringUtils.hasText(item.getOrCreateFileAttributes().getOssFileKey())) + .map(item -> item.getOrCreateFileAttributes().getOssFileKey()) + .collect(Collectors.toSet()); + if (CollectionUtils.isNotEmpty(fileKeys)) { + List urlResponses = ossClient.batchGetOssUrl(fileKeys); + Map fileKeyAndUrlMap = urlResponses.stream().collect(Collectors.toMap(key -> key.getFileKey(), value -> value.getSignUrl(), (x, y) -> x)); + indexNodeInfos.stream().filter(item -> StringUtils.hasText(item.getOrCreateFileAttributes().getOssFileKey())) + .forEach(item -> { + item.setOssFileKey(item.getOrCreateFileAttributes().getOssFileKey()); + item.setOssFileUrl(fileKeyAndUrlMap.get(item.getOssFileKey())); + }); + } + } + } + } diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/index/IndexManager.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/index/IndexManager.java index 38ae04b3..1b7bf93f 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/index/IndexManager.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/index/IndexManager.java @@ -254,6 +254,10 @@ public class IndexManager { return indexNodeDao.getOrThrow(code); } + public List findByCodes(List codes) { + return indexNodeDao.findByCodes(codes); + } + public void updateBizInfo(String code, String bizCode, String description, String icon) { if (StringUtils.isBlank(bizCode) && StringUtils.isBlank(description) && StringUtils.isBlank(icon)) return; diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/integration/OssClient.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/integration/OssClient.java index c989c750..280bb38e 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/integration/OssClient.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/integration/OssClient.java @@ -8,6 +8,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Component; @@ -152,4 +153,21 @@ public class OssClient { docLogDao.log(context, subject, logContents); } + public List batchGetOssUrl(Set ossFileKeys) { + if (CollectionUtils.isEmpty(ossFileKeys)) { + return Collections.emptyList(); + } + ApiSignUrlDownloadRequest request = new ApiSignUrlDownloadRequest(); + request.setFileKeys(Lists.newArrayList(ossFileKeys)); + try { + log.info("OssClient-batchGetOssUrl params:{}", JSON.toJSONString(ossFileKeys)); + CommonResponse> response = serverFileServiceApi.signUrlFetchDownload(request); + log.info("OssClient-batchGetOssUrl params:{},result:{}", JSON.toJSONString(ossFileKeys), JSON.toJSONString(response)); + return response.getData(); + } catch (Exception e) { + log.warn("OssClient-batchGetOssUrl exception, fileKeys:{}", JSON.toJSONString(ossFileKeys), e); + throw new RuntimeException(e); + } + } + } From e25bda3fa2d49a714d82138673e42e04c5f40ecd Mon Sep 17 00:00:00 2001 From: chenwenjian Date: Wed, 16 Apr 2025 20:23:12 +0800 Subject: [PATCH 23/25] =?UTF-8?q?fix:=20=E9=87=8D=E5=A4=8D=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=8E=BB=E9=87=8D=E5=8F=8A=E7=AE=80=E6=98=93=E5=B9=B6?= =?UTF-8?q?=E5=8F=91=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...GuideTenantProcedureStatusServiceImpl.java | 61 ++++++++++--------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/op/op-server/src/main/java/cn/axzo/nanopart/server/service/impl/GuideTenantProcedureStatusServiceImpl.java b/op/op-server/src/main/java/cn/axzo/nanopart/server/service/impl/GuideTenantProcedureStatusServiceImpl.java index d51afc66..67a08fa7 100644 --- a/op/op-server/src/main/java/cn/axzo/nanopart/server/service/impl/GuideTenantProcedureStatusServiceImpl.java +++ b/op/op-server/src/main/java/cn/axzo/nanopart/server/service/impl/GuideTenantProcedureStatusServiceImpl.java @@ -62,39 +62,40 @@ public class GuideTenantProcedureStatusServiceImpl extends ServiceImpl procedureStatusList.size()) { - // 将该租户未初始化的步骤点进行初始化 - List procedureStatusIdList = procedureStatusList.stream().map(GuideTenantProcedureStatus::getProcedureId).collect(Collectors.toList()); - respList.addAll(templateList.stream() - .filter(t -> !procedureStatusIdList.contains(t.getId())) - .map(t -> { - GuideTenantProcedureStatusCreateReq createReq = new GuideTenantProcedureStatusCreateReq(); - createReq.setWorkspaceId(req.getWorkspaceId()); - createReq.setCategoryCode(t.getCategoryCode()); - createReq.setProcedureId(t.getId()); - createReq.setProcedureName(t.getName()); - createReq.setStatus(GuideProcedureStatus.TODO); - create(createReq); - return BeanUtil.copyProperties(createReq, GuideTenantProcedureStatusListResp.class); - }) - .collect(Collectors.toList())); - } else if (templateList.size() < procedureStatusList.size()) { - log.warn("操作步骤模板:{},租户&分类:{},租户操作步骤状态:{}", JSONUtil.toJsonStr(templateList), JSONUtil.toJsonStr(req), JSONUtil.toJsonStr(procedureStatusList)); - throw new ServiceException("数据异常,操作步骤不存在,请联系管理人员"); + // 将租户操作步骤数量与模板操作步骤数量进行对比,是否需要根据模板为租户初始化新步骤点 + // 将该租户未初始化的步骤点进行初始化 + List procedureStatusIdList = procedureStatusList.stream().map(GuideTenantProcedureStatus::getProcedureId).distinct().collect(Collectors.toList()); + List newInitProcedures = templateList.stream() + .filter(t -> !procedureStatusIdList.contains(t.getId())) + .map(t -> { + GuideTenantProcedureStatusCreateReq createReq = new GuideTenantProcedureStatusCreateReq(); + createReq.setWorkspaceId(req.getWorkspaceId()); + createReq.setCategoryCode(t.getCategoryCode()); + createReq.setProcedureId(t.getId()); + createReq.setProcedureName(t.getName()); + createReq.setStatus(GuideProcedureStatus.TODO); + create(createReq); + return BeanUtil.copyProperties(createReq, GuideTenantProcedureStatusListResp.class); + }) + .collect(Collectors.toList()); + if (CollUtil.isNotEmpty(newInitProcedures)) { + respList.addAll(newInitProcedures); } // 对租户操作步骤的权限码和跳转链接进行补充 Map templateMap = templateList.stream().collect(Collectors.toMap(GuideProcedureTemplateResp::getId, Function.identity(), (v1, v2) -> v1)); - respList.forEach(r -> { - GuideProcedureTemplateResp t = templateMap.get(r.getProcedureId()); - r.setDescription(t.getDescription()); - r.setIsMust(t.getIsMust()); - r.setAuthCode(t.getAuthCode()); - r.setJumpUrl(t.getJumpUrl()); - r.setJumpReport(t.getJumpReport()); - r.setSort(t.getSort()); - }); + respList.stream() + .collect(Collectors.toMap(r -> r.getWorkspaceId() + "_" + r.getProcedureId(), Function.identity(), (v1, v2) -> v1)) + .values() + .forEach(r -> { + GuideProcedureTemplateResp t = templateMap.get(r.getProcedureId()); + r.setDescription(t.getDescription()); + r.setIsMust(t.getIsMust()); + r.setAuthCode(t.getAuthCode()); + r.setJumpUrl(t.getJumpUrl()); + r.setJumpReport(t.getJumpReport()); + r.setSort(t.getSort()); + }); return respList; } @@ -132,7 +133,7 @@ public class GuideTenantProcedureStatusServiceImpl extends ServiceImpl Date: Thu, 17 Apr 2025 10:11:18 +0800 Subject: [PATCH 24/25] =?UTF-8?q?fix:=20=E8=BF=94=E5=9B=9E=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/GuideTenantProcedureStatusServiceImpl.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/op/op-server/src/main/java/cn/axzo/nanopart/server/service/impl/GuideTenantProcedureStatusServiceImpl.java b/op/op-server/src/main/java/cn/axzo/nanopart/server/service/impl/GuideTenantProcedureStatusServiceImpl.java index 67a08fa7..9679cccc 100644 --- a/op/op-server/src/main/java/cn/axzo/nanopart/server/service/impl/GuideTenantProcedureStatusServiceImpl.java +++ b/op/op-server/src/main/java/cn/axzo/nanopart/server/service/impl/GuideTenantProcedureStatusServiceImpl.java @@ -84,10 +84,10 @@ public class GuideTenantProcedureStatusServiceImpl extends ServiceImpl templateMap = templateList.stream().collect(Collectors.toMap(GuideProcedureTemplateResp::getId, Function.identity(), (v1, v2) -> v1)); - respList.stream() + return respList.stream() .collect(Collectors.toMap(r -> r.getWorkspaceId() + "_" + r.getProcedureId(), Function.identity(), (v1, v2) -> v1)) - .values() - .forEach(r -> { + .values().stream() + .peek(r -> { GuideProcedureTemplateResp t = templateMap.get(r.getProcedureId()); r.setDescription(t.getDescription()); r.setIsMust(t.getIsMust()); @@ -95,8 +95,8 @@ public class GuideTenantProcedureStatusServiceImpl extends ServiceImpl Date: Thu, 17 Apr 2025 14:31:47 +0800 Subject: [PATCH 25/25] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0=E5=A4=9A?= =?UTF-8?q?=E6=9D=A1=E6=AD=A5=E9=AA=A4=E6=95=B0=E6=8D=AE=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/GuideTenantProcedureStatusServiceImpl.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/op/op-server/src/main/java/cn/axzo/nanopart/server/service/impl/GuideTenantProcedureStatusServiceImpl.java b/op/op-server/src/main/java/cn/axzo/nanopart/server/service/impl/GuideTenantProcedureStatusServiceImpl.java index 9679cccc..a2c8a34a 100644 --- a/op/op-server/src/main/java/cn/axzo/nanopart/server/service/impl/GuideTenantProcedureStatusServiceImpl.java +++ b/op/op-server/src/main/java/cn/axzo/nanopart/server/service/impl/GuideTenantProcedureStatusServiceImpl.java @@ -128,8 +128,11 @@ public class GuideTenantProcedureStatusServiceImpl extends ServiceImpl