diff --git a/README.md b/README.md
index 622ed00..3abe32a 100644
--- a/README.md
+++ b/README.md
@@ -4,17 +4,13 @@
# 项目约束
- 引用外部(其它域、第三方)SDK时,需要与Leader确认,禁止私自引入
-- service分为`basic`(基础功能)与`biz`(业务功能)。`basic`不可依赖`biz`,`biz`应依赖`basic`完成部分功能。原则上`biz`与`biz`也不应该互相依赖
-- 代码风格:
- - 命名规范:采用驼峰命名法,如:`orgmanaxDomain`
- - 代码注释:
- - 类注释:类名、功能、作者、创建时间、修改时间等
- - 方法注释:方法名、功能、参数、返回值、作者、创建时间、修改时间等
- - 代码风格:
- - 缩进:4个空格
- - 换行:每行不超过120个字符
- - 空格:
- - 关键字前后:`if`、`for`、`while`、`switch`、`case`等前后各一个空格
+- service分为`foundation`(基础功能)与`biz`(业务功能)。`foundation`不可依赖`biz`,`biz`应依赖`foundation`完成部分功能。原则上`biz`与`biz`也不应该互相依赖
+- 枚举不要做成参数的返回值。防止使用方不发布版本,解析失败的问题。
+- 为每个接口定义自己的出入参,不要复用出入参
+- 所有接口统一采用POST,列表接口需要带上分页且设置默认大小1000条
+- 接口URL使用 【-】符号进行分割,比如: /orgmanax/node/create-team
+- service层提供的出参与入参不能包含ApiResult;
+- 提供出去的feign api,要自己注入spring容器
# 项目结构
## 模块层级
@@ -22,13 +18,12 @@
## 模块描述
-模块名称 | 功能 | 依赖
------- |-----------------------------------------------------| ----
-`orgmanax-api` | API层,提供给二方的SDK,方便二方快速接入人岗架相关功能 |无
-`orgmanax-common`| 公共组件、UTIL等 |无
-`orgmanax-domain`| 领域层,核心业务逻辑 | 无
-`orgmanax-infra` | 基础设施层,隔离非业务变化,防止外部变化引起内部业务变更。
对接二方依赖,数据库,MQ等中件间 | `orgmanax-domain` `orgmanax-common`
-`orgmanax-server`| 业务层,调用domain与infra实现业务逻辑的编排 | `orgmanax-api` `orgmanax-common` `orgmanax-infra` `orgmanax-domain`
+模块名称 | 功能 | 依赖
+------ |--------------------------------------------------------------------------------------| ----
+`orgmanax-api` | API层,提供给二方的SDK,方便二方快速接入人岗架相关功能 |无
+`orgmanax-common`| 公共组件、UTIL等 |无
+`orgmanax-infra` | 基础设施层,隔离非业务变化,防止外部变化引起内部业务变更。
对接外部依赖,数据库,MQ等中件间 | `orgmanax-common`
+`orgmanax-server`| 业务层,核心分为两层:
1、基础业务层:`foundation`
2、业务层:`biz`
`foundation`依赖`biz`完成业务编排 | `orgmanax-api` `orgmanax-common` `orgmanax-infra`
## 目录层级
```
@@ -42,16 +37,20 @@
│ │ └── orgmanax
│ │ └── api
│ │ ├── config #配置,如:将Feign接口托管至spring
-│ │ ├── node #部门相关接口
-│ │ │ ├── feign #API
-│ │ │ │ ├── basic #部门基础API,如:创建部门、通过ID查询部门、更新部门、删除部门
-│ │ │ │ └── biz #部门业务相关API,具体的实现可以依赖基础API的功能如:创建班组部门依赖创建部门等
-│ │ │ ├── req #请求入参
-│ │ │ └── resp #请求出参
-│ │ └── unit #单位相关接口
-│ │ └── feign #API
-│ │ ├── basic #单位基础API
-│ │ └── biz #单位业务相关API
+│ │ ├── foundation # 人岗架通用接口
+│ │ | ├── node #部门相关接口
+│ │ │ | ├── feign #API
+│ │ │ | ├── req #请求入参
+│ │ │ | └── resp #请求出参
+│ │ | ├── unit #单位相关接口
+│ │ │ | ├── feign #API
+│ │ │ | ├── req #请求入参
+│ │ │ | └── resp #请求出参
+│ │ ├── biz # 人岗架业务相关接口
+│ │ | ├── team #班组业务相关接口
+│ │ │ | ├── feign #API
+│ │ │ | ├── req #请求入参
+│ │ │ | └── resp #请求出参
│ └── resources
│ └── META-INF #SPI(service provider interface)
|
@@ -64,21 +63,7 @@
│ └── orgmanax
│ └── common
│ ├── config
-│ └── entity
|
-├── orgmanax-domain #领域层
-│ └── src
-│ ├── main
-│ │ └── java
-│ │ └── cn
-│ │ └── axzo
-│ │ └── orgmanax
-│ │ └── domain
-│ │ └── node #部门域
-│ │ ├── entity #实体 可以提供部门的属性(字段)及业务行为(接口),注意:会发生属性变更的操作才适合定义为行为
-│ │ └── gateway #部门相关的操作接口,只定义接口,具体的实现由infra层实现
-│ │ └── addregate #聚合多个实体的对象和业务操作可以放到该目录下
-
├── orgmanax-infra #基础设施层,主要是对接二方依赖,数据库,MQ等中件间。依赖domain层
│ └── src
│ ├── main
@@ -87,17 +72,18 @@
│ │ │ └── axzo
│ │ │ └── orgmanax
│ │ │ └── infra
-│ │ │ ├── config #基础配置,如MYBATISPLUS的配置
-│ │ │ └── dao #数据访问层
+│ │ │ ├── client #外部API防腐层
+│ │ │ ├── config #基础配置,如mybatis_plus的配置
+│ │ │ └── dao #数据访问层
│ │ │ └── node #部门相关
│ │ │ ├── convert #数据转换相关,比如将entity转换为数据实体do
│ │ │ ├── dao #mybatisplus的service实现,用于CRUD,可与Lambda表达式配合使用。
│ │ │ ├── DO #数据实体
-│ │ │ ├── gateway # 业务查询防腐层,提供给service层使用,用于隔离service层与dao层
+│ │ │ ├── repos # 业务查询防腐层,提供给service层使用,用于隔离service层与dao层
│ │ │ │ └── impl #gateway的具体实现可以调用dao完成相关功能,也可以作为聚合根获取数据的实现
│ │ │ └── mapper
|
-└── orgmanax-server #包含mvc的controller与service
+└── orgmanax-server
└── src
├── main
│ ├── java
@@ -105,16 +91,19 @@
│ │ └── axzo
│ │ └── orgmanax
│ │ └── server
- │ │ ├── controller #API
- │ │ │ ├── node #部门API
- │ │ │ └── unit #单位API
- │ │ └── service #业务层,调用infra层与domain层完成业务流程的编排
- │ │ └── node #部门相关业务
- │ │ ├── basic #基础的公共相关业务功能实现
- │ │ ├── biz #基础的业务功能,可以依赖basic里面的接口
- │ │ ├── check #业务校验相关
- │ │ └── convert #数据转换,如将请求REQ转换为领域对象
- │ └── resources
- └── test
- └── java
-```
+ │ │ ├── controller# 继承API实现
+ │ │ │ ├── biz #业务接口
+ │ │ │ │ └── team #班组业务接口
+ │ │ │ └── foundation #基础接口
+ │ │ │ ├── node #部门基础接口
+ │ │ │ └── unit #单位基础接口
+ │ │ └── service # 业务实现
+ │ │ ├── biz #业务接口
+ │ │ │ └── team # 班组相关API
+ │ │ └── foundation #基础接口
+ │ │ └── node #部门
+ │ │ ├── check #校验
+ │ │ ├── convert # 转换
+ │ │ ├── entity #foundation的业务入参指定为XXXQuery、XXXCreate
+ │ │ └── service #基础接口的业务实现
+
diff --git a/img.png b/img.png
index c1e16c8..fa77915 100644
Binary files a/img.png and b/img.png differ
diff --git a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/biz/team/OrgTeamApi.java b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/biz/team/OrgTeamApi.java
new file mode 100644
index 0000000..585aff8
--- /dev/null
+++ b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/biz/team/OrgTeamApi.java
@@ -0,0 +1,29 @@
+package cn.axzo.orgmanax.api.biz.team;
+
+import cn.axzo.framework.domain.web.result.ApiResult;
+import cn.axzo.orgmanax.api.biz.team.req.OrgCreateTeamReq;
+import cn.axzo.orgmanax.api.biz.team.resp.OrgCreateTeamResp;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * 班组相关API
+ * @author tanjie@axzo.cn
+ * @date 2024/12/2 15:40
+ */
+@FeignClient(
+ value = "orgmanax",
+ url = "${axzo.service.orgmanax:http://orgmanax:8080}")
+public interface OrgTeamApi {
+
+
+ /**
+ * 创建项目班组
+ * @param organizationalNodeCreateReq
+ * @return
+ */
+ @PostMapping("/api/org/project/create-team")
+ ApiResult createProjectTeam(@RequestBody OrgCreateTeamReq organizationalNodeCreateReq);
+
+}
diff --git a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/biz/team/req/OrgCreateTeamReq.java b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/biz/team/req/OrgCreateTeamReq.java
new file mode 100644
index 0000000..e2d88ad
--- /dev/null
+++ b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/biz/team/req/OrgCreateTeamReq.java
@@ -0,0 +1,44 @@
+package cn.axzo.orgmanax.api.biz.team.req;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 创建班组请求实体
+ * @author tanjie@axzo.cn
+ * @date 2024/12/5 10:46
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+public class OrgCreateTeamReq {
+
+ /**
+ *
+ */
+ private String name;
+
+ /**
+ *
+ */
+ private Long teamLeaderPersonId;
+
+ private Long inviteOuId;
+
+ private Long inviteWorkspaceId;
+
+ /**
+ * 单位班组的节点ID
+ */
+ private Long ouTeamNodeId;
+
+
+ /**
+ * 操作人ID: person id
+ */
+ private Long operatorId;
+
+}
diff --git a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/biz/team/resp/OrgCreateTeamResp.java b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/biz/team/resp/OrgCreateTeamResp.java
new file mode 100644
index 0000000..d3eca5a
--- /dev/null
+++ b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/biz/team/resp/OrgCreateTeamResp.java
@@ -0,0 +1,14 @@
+package cn.axzo.orgmanax.api.biz.team.resp;
+
+/**
+ * @author tanjie@axzo.cn
+ * @date 2024/12/5 10:55
+ */
+public class OrgCreateTeamResp {
+
+ private Long projectTeamId;
+
+ private String teamName;
+ private Long organizationalNodeId;
+
+}
diff --git a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/node/feign/basic/OrganizationalNodeBasicApi.java b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/foundation/node/feign/OrganizationalNodeBasicApi.java
similarity index 78%
rename from orgmanax-api/src/main/java/cn/axzo/orgmanax/api/node/feign/basic/OrganizationalNodeBasicApi.java
rename to orgmanax-api/src/main/java/cn/axzo/orgmanax/api/foundation/node/feign/OrganizationalNodeBasicApi.java
index f2d4a25..588fc4c 100644
--- a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/node/feign/basic/OrganizationalNodeBasicApi.java
+++ b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/foundation/node/feign/OrganizationalNodeBasicApi.java
@@ -1,8 +1,8 @@
-package cn.axzo.orgmanax.api.node.feign.basic;
+package cn.axzo.orgmanax.api.foundation.node.feign;
import cn.axzo.framework.domain.web.result.ApiResult;
-import cn.axzo.orgmanax.api.node.req.OrganizationalNodeCreateReq;
-import cn.axzo.orgmanax.api.node.resp.OrganizationalNodeInfoResp;
+import cn.axzo.orgmanax.api.foundation.node.req.OrganizationalNodeCreateReq;
+import cn.axzo.orgmanax.api.foundation.node.resp.OrganizationalNodeInfoResp;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
diff --git a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/node/req/OrganizationalNodeCreateReq.java b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/foundation/node/req/OrganizationalNodeCreateReq.java
similarity index 93%
rename from orgmanax-api/src/main/java/cn/axzo/orgmanax/api/node/req/OrganizationalNodeCreateReq.java
rename to orgmanax-api/src/main/java/cn/axzo/orgmanax/api/foundation/node/req/OrganizationalNodeCreateReq.java
index 3fe9515..16ea9a0 100644
--- a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/node/req/OrganizationalNodeCreateReq.java
+++ b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/foundation/node/req/OrganizationalNodeCreateReq.java
@@ -1,4 +1,4 @@
-package cn.axzo.orgmanax.api.node.req;
+package cn.axzo.orgmanax.api.foundation.node.req;
import lombok.AllArgsConstructor;
import lombok.Builder;
diff --git a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/foundation/node/req/package-info.java b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/foundation/node/req/package-info.java
new file mode 100644
index 0000000..1470de3
--- /dev/null
+++ b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/foundation/node/req/package-info.java
@@ -0,0 +1 @@
+package cn.axzo.orgmanax.api.foundation.node.req;
\ No newline at end of file
diff --git a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/node/resp/OrganizationalNodeInfoResp.java b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/foundation/node/resp/OrganizationalNodeInfoResp.java
similarity index 95%
rename from orgmanax-api/src/main/java/cn/axzo/orgmanax/api/node/resp/OrganizationalNodeInfoResp.java
rename to orgmanax-api/src/main/java/cn/axzo/orgmanax/api/foundation/node/resp/OrganizationalNodeInfoResp.java
index 8125a35..ab75d4e 100644
--- a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/node/resp/OrganizationalNodeInfoResp.java
+++ b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/foundation/node/resp/OrganizationalNodeInfoResp.java
@@ -1,4 +1,4 @@
-package cn.axzo.orgmanax.api.node.resp;
+package cn.axzo.orgmanax.api.foundation.node.resp;
import lombok.AllArgsConstructor;
import lombok.Builder;
diff --git a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/node/feign/biz/OrganizationalNodeBizApi.java b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/node/feign/biz/OrganizationalNodeBizApi.java
deleted file mode 100644
index 57c42dd..0000000
--- a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/node/feign/biz/OrganizationalNodeBizApi.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package cn.axzo.orgmanax.api.node.feign.biz;
-
-import org.springframework.cloud.openfeign.FeignClient;
-
-/**
- * business-oriented api related to node
- * @author tanjie@axzo.cn
- * @date 2024/12/2 15:40
- */
-@FeignClient(
- value = "orgmanax",
- url = "${axzo.service.orgmanax:http://orgmanax:8080}")
-public interface OrganizationalNodeBizApi {
-
-
-
-
-}
diff --git a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/node/req/package-info.java b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/node/req/package-info.java
deleted file mode 100644
index 40f0690..0000000
--- a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/node/req/package-info.java
+++ /dev/null
@@ -1 +0,0 @@
-package cn.axzo.orgmanax.api.node.req;
\ No newline at end of file
diff --git a/orgmanax-domain/pom.xml b/orgmanax-domain/pom.xml
deleted file mode 100644
index 04d14cb..0000000
--- a/orgmanax-domain/pom.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
- 4.0.0
-
- cn.axzo.orgmanax
- orgmanax
- ${revision}
-
-
- orgmanax-domain
-
-
- 8
- 8
- UTF-8
-
-
-
-
- cn.hutool
- hutool-all
-
-
-
\ No newline at end of file
diff --git a/orgmanax-domain/src/main/java/cn/axzo/orgmanax/domain/addregate/package-info.java b/orgmanax-domain/src/main/java/cn/axzo/orgmanax/domain/addregate/package-info.java
deleted file mode 100644
index bd75efd..0000000
--- a/orgmanax-domain/src/main/java/cn/axzo/orgmanax/domain/addregate/package-info.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package cn.axzo.orgmanax.domain.addregate;
-/**
- * @(package: cn.axzo.orgmanax.domain.addregate)
- *
- * 聚合多个实体的根对象
- * 如: NodeUnit聚合了OrganizationalNode、OrganizationalUnit
- *
- */
\ No newline at end of file
diff --git a/orgmanax-domain/src/main/java/cn/axzo/orgmanax/domain/node/entity/OrganizationalNode.java b/orgmanax-domain/src/main/java/cn/axzo/orgmanax/domain/node/entity/OrganizationalNode.java
deleted file mode 100644
index 204c1e0..0000000
--- a/orgmanax-domain/src/main/java/cn/axzo/orgmanax/domain/node/entity/OrganizationalNode.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package cn.axzo.orgmanax.domain.node.entity;
-
-import cn.hutool.core.lang.Assert;
-import lombok.Data;
-
-import java.util.Date;
-import java.util.Objects;
-
-/**
- * 领域对象
- * @author tanjie@axzo.cn
- * @date 2024/12/2 17:08
- */
-@Data
-public class OrganizationalNode {
-
-
- private Long id;
- /**
- * 单位id
- */
- private Long organizationalUnitId;
- /**
- * 部门名称
- */
- private String organizationalNodeName;
-
- /**
- * 节点类型 节点类型 1.部门 2.班组 3.小组
- */
- private Integer nodeType;
-
- /**
- * 上级部门ID
- */
- private Long parentId;
- /**
- * 顶级部门ID
- */
- private Long topNodeId;
- /**
- * 层级信息
- */
- private String path;
-
- /**
- * 状态
- */
- private Integer status;
- /**
- * 扩展信息
- */
- private String extra;
-
- /**
- * 创建人。自然人ID
- */
- private Long createBy;
- /**
- * 创建时间
- */
- private Date createAt;
-
- /**
- * 计算path、topNodeId等信息
- *
- * @param parentNode 父节点
- */
- public void calcPath(OrganizationalNode parentNode) {
- if (Objects.equals(this.getParentId(), 0L)) {
- this.topNodeId = id;
- this.path = id + ",";
- return;
- }
-
- Assert.notNull(parentNode, "重置路径时,父节点不能为空");
- this.topNodeId = parentNode.getTopNodeId();
- this.path = parentNode.path + id + ",";
- }
-}
diff --git a/orgmanax-domain/src/main/java/cn/axzo/orgmanax/domain/pakcage-info.java b/orgmanax-domain/src/main/java/cn/axzo/orgmanax/domain/pakcage-info.java
deleted file mode 100644
index 174404d..0000000
--- a/orgmanax-domain/src/main/java/cn/axzo/orgmanax/domain/pakcage-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-/**
- * @#{(#)package-info.java }
- * 领域层
- */
\ No newline at end of file
diff --git a/orgmanax-infra/pom.xml b/orgmanax-infra/pom.xml
index fb26153..812c1b5 100644
--- a/orgmanax-infra/pom.xml
+++ b/orgmanax-infra/pom.xml
@@ -17,11 +17,7 @@
UTF-8
-
- cn.axzo.orgmanax
- orgmanax-domain
- ${project.version}
-
+
org.apache.rocketmq
@@ -36,7 +32,10 @@
com.baomidou
mybatis-plus-boot-starter
-
+
+
+ cn.hutool
+ hutool-all
@@ -82,5 +81,9 @@
mapstruct-processor
+
+ cn.hutool
+ hutool-all
+
\ No newline at end of file
diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/RpcClientHolder.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/RpcClientHolder.java
deleted file mode 100644
index 11e33c5..0000000
--- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/client/RpcClientHolder.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package cn.axzo.orgmanax.infra.client;
-
-import cn.axzo.foundation.web.support.apps.AppCenter;
-import cn.axzo.foundation.web.support.rpc.RpcClient;
-import cn.axzo.foundation.web.support.rpc.RpcClientWrapper;
-import com.google.common.cache.CacheBuilder;
-import com.google.common.cache.CacheLoader;
-import com.google.common.cache.LoadingCache;
-import lombok.RequiredArgsConstructor;
-import org.springframework.stereotype.Component;
-
-import java.util.Objects;
-import java.util.concurrent.TimeUnit;
-
-@Component
-@RequiredArgsConstructor
-public class RpcClientHolder {
- final AppCenter appCenter;
- private final RpcClient rpcClient;
-
- private final LoadingCache rpcClientCache = CacheBuilder.newBuilder()
- .maximumSize(50)
- .expireAfterAccess(10, TimeUnit.MINUTES)
- .build(new CacheLoader() {
- @Override
- public RpcClient load(String key) {
- return RpcClientWrapper.builder()
- .normalRpcClient(rpcClient)
- .appResolver(() -> appCenter.getByName(key))
- .build();
- }
- });
-
- public RpcClient getRpcClient(String appName) {
- RpcClient result = rpcClientCache.getUnchecked(appName);
- Objects.requireNonNull(result);
- return result;
- }
-}
diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/config/Config.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/config/Config.java
index 71f42e2..a1ca86b 100644
--- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/config/Config.java
+++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/config/Config.java
@@ -35,22 +35,11 @@ import static org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfi
MybatisPlusConfig.class,
RocketMQEventConfig.class})
public class Config {
- @Value("${web.debug.host:}")
- private String debugHost;
- @Bean
- public ScheduledThreadPoolExecutor scheduledThreadPoolExecutor(AppRuntime appRuntime) {
- // bfs-client会使用这个scheduler
- ScheduledThreadPoolExecutor scheduledThreadPoolExecutor =
- new ScheduledThreadPoolExecutor(1, new ThreadFactoryBuilder()
- .setNameFormat(appRuntime.getAppName() + "-%d").build());
- scheduledThreadPoolExecutor.setMaximumPoolSize(8);
- return scheduledThreadPoolExecutor;
- }
+
/**
* XXX Spring默认配置当有Executor的bean后不再装载TaskExecutor, 这里因为手动注册了
- * {@link #scheduledThreadPoolExecutor}会导致spring不再自动注册TaskExecutor, 因此需要去掉ConditionalOnMissingBean的限制.
* 参考{@link TaskExecutionAutoConfiguration#applicationTaskExecutor}
*/
@Bean(name = {APPLICATION_TASK_EXECUTOR_BEAN_NAME,
@@ -64,22 +53,11 @@ public class Config {
return executor;
}
- @Bean
- AppRuntime appRuntime(ApplicationContext applicationContext) {
- return AppRuntime.builder().applicationContext(applicationContext).build();
- }
-
@Bean
public RequestLogAspect requestLogAspect() {
return RequestLogAspect.builder().build();
}
- @Bean
- @Primary
- public RpcClient rpcClient() {
- return RpcClientImpl.builder().build();
- }
-
@Bean
@Profile({"!unittest && !local"})
AbstractExceptionHandler.ExceptionHandlerHook exceptionHandlerHook() {
@@ -92,13 +70,4 @@ public class Config {
};
}
- @Bean
- AppCenter appCenter(ScheduledThreadPoolExecutor scheduledThreadPoolExecutor) {
- return AppCenterImpl.builder()
- .executor(scheduledThreadPoolExecutor)
- .debugHost(debugHost)
- //本地调试 需要特殊映射的路径 key=服务名 value = host后的映射的服务路径
- .debugAppRoutes(ImmutableMap.of("data-collection", "dataCollection"))
- .build();
- }
}
diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/DO/OrganizationalNodeDo.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/DO/OrganizationalNode.java
similarity index 83%
rename from orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/DO/OrganizationalNodeDo.java
rename to orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/DO/OrganizationalNode.java
index 555863b..882b70c 100644
--- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/DO/OrganizationalNodeDo.java
+++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/DO/OrganizationalNode.java
@@ -1,7 +1,7 @@
package cn.axzo.orgmanax.infra.dao.node.DO;
+import cn.hutool.core.lang.Assert;
import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
@@ -12,6 +12,7 @@ import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
+import java.util.Objects;
/**
* 组织节点表表实体类
@@ -27,7 +28,7 @@ import java.util.Date;
@Builder
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
-public class OrganizationalNodeDo implements Serializable {
+public class OrganizationalNode implements Serializable {
private static final long serialVersionUID = -14708237380609631L;
@TableId(
@@ -132,5 +133,21 @@ public class OrganizationalNodeDo implements Serializable {
protected Long isDelete = 0L;
+ /**
+ * 计算节点路径
+ * @param parentNode
+ */
+ public void calcPath(OrganizationalNode parentNode) {
+ if (Objects.equals(this.getParentId(), 0L)) {
+ this.topNodeId = id;
+ this.path = id + ",";
+ return;
+ }
+ Assert.notNull(parentNode, "重置路径时,父节点不能为空");
+ this.topNodeId = parentNode.getTopNodeId();
+ this.path = parentNode.path + id + ",";
+ }
+
+
}
diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/convert/NodeInfraConvert.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/convert/NodeInfraConvert.java
index d02a38e..548ac35 100644
--- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/convert/NodeInfraConvert.java
+++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/convert/NodeInfraConvert.java
@@ -1,7 +1,5 @@
package cn.axzo.orgmanax.infra.dao.node.convert;
-import cn.axzo.orgmanax.domain.node.entity.OrganizationalNode;
-import cn.axzo.orgmanax.infra.dao.node.DO.OrganizationalNodeDo;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
@@ -14,7 +12,4 @@ public interface NodeInfraConvert {
NodeInfraConvert INSTANCE = Mappers.getMapper(NodeInfraConvert.class);
- OrganizationalNode toDomain(OrganizationalNodeDo doo);
-
- OrganizationalNodeDo toEntity(OrganizationalNode doo);
}
diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/dao/NodeDao.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/dao/NodeDao.java
index b8c6d1a..6eb28e7 100644
--- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/dao/NodeDao.java
+++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/dao/NodeDao.java
@@ -1,8 +1,7 @@
package cn.axzo.orgmanax.infra.dao.node.dao;
-import cn.axzo.orgmanax.domain.node.entity.OrganizationalNode;
import cn.axzo.orgmanax.infra.dao.node.convert.NodeInfraConvert;
-import cn.axzo.orgmanax.infra.dao.node.DO.OrganizationalNodeDo;
+import cn.axzo.orgmanax.infra.dao.node.DO.OrganizationalNode;
import cn.axzo.orgmanax.infra.dao.node.mapper.OrganizationalNodeMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Repository;
@@ -12,10 +11,10 @@ import org.springframework.stereotype.Repository;
* @date 2024/12/2 18:10
*/
@Repository
-public class NodeDao extends ServiceImpl {
+public class NodeDao extends ServiceImpl {
public OrganizationalNode findById(Long id) {
- return NodeInfraConvert.INSTANCE.toDomain(getById(id));
+ return (getById(id));
}
}
diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/gateway/NodeQueryGateway.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/gateway/NodeQueryGateway.java
index a2978a3..fc02c05 100644
--- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/gateway/NodeQueryGateway.java
+++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/gateway/NodeQueryGateway.java
@@ -1,6 +1,7 @@
package cn.axzo.orgmanax.infra.dao.node.gateway;
-import cn.axzo.orgmanax.domain.node.entity.OrganizationalNode;
+
+import cn.axzo.orgmanax.infra.dao.node.DO.OrganizationalNode;
/**
* @author tanjie@axzo.cn
diff --git a/orgmanax-domain/src/main/java/cn/axzo/orgmanax/domain/node/gateway/NodeUpsertGateway.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/gateway/NodeUpsertGateway.java
similarity index 58%
rename from orgmanax-domain/src/main/java/cn/axzo/orgmanax/domain/node/gateway/NodeUpsertGateway.java
rename to orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/gateway/NodeUpsertGateway.java
index 1174b56..eea9424 100644
--- a/orgmanax-domain/src/main/java/cn/axzo/orgmanax/domain/node/gateway/NodeUpsertGateway.java
+++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/gateway/NodeUpsertGateway.java
@@ -1,13 +1,13 @@
-package cn.axzo.orgmanax.domain.node.gateway;
+package cn.axzo.orgmanax.infra.dao.node.gateway;
-import cn.axzo.orgmanax.domain.node.entity.OrganizationalNode;
+
+import cn.axzo.orgmanax.infra.dao.node.DO.OrganizationalNode;
/**
* @author tanjie@axzo.cn
- * @date 2024/12/2 18:21
+ * @date 2024/12/4 18:25
*/
public interface NodeUpsertGateway {
-
OrganizationalNode create(OrganizationalNode node);
OrganizationalNode update(OrganizationalNode node);
diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/gateway/impl/NodeQueryGatewayImpl.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/gateway/impl/NodeQueryGatewayImpl.java
index 9a45047..14ef2b2 100644
--- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/gateway/impl/NodeQueryGatewayImpl.java
+++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/gateway/impl/NodeQueryGatewayImpl.java
@@ -1,8 +1,6 @@
package cn.axzo.orgmanax.infra.dao.node.gateway.impl;
-import cn.axzo.foundation.web.support.rpc.RpcClient;
-import cn.axzo.orgmanax.domain.node.entity.OrganizationalNode;
-import cn.axzo.orgmanax.infra.client.RpcClientHolder;
+import cn.axzo.orgmanax.infra.dao.node.DO.OrganizationalNode;
import cn.axzo.orgmanax.infra.dao.node.dao.NodeDao;
import cn.axzo.orgmanax.infra.dao.node.gateway.NodeQueryGateway;
import lombok.RequiredArgsConstructor;
diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/gateway/impl/NodeUpsertGatewayImpl.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/gateway/impl/NodeUpsertGatewayImpl.java
index d915b84..3ddccc3 100644
--- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/gateway/impl/NodeUpsertGatewayImpl.java
+++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/gateway/impl/NodeUpsertGatewayImpl.java
@@ -1,10 +1,9 @@
package cn.axzo.orgmanax.infra.dao.node.gateway.impl;
-import cn.axzo.orgmanax.domain.node.entity.OrganizationalNode;
-import cn.axzo.orgmanax.domain.node.gateway.NodeUpsertGateway;
import cn.axzo.orgmanax.infra.dao.node.convert.NodeInfraConvert;
import cn.axzo.orgmanax.infra.dao.node.dao.NodeDao;
-import cn.axzo.orgmanax.infra.dao.node.DO.OrganizationalNodeDo;
+import cn.axzo.orgmanax.infra.dao.node.DO.OrganizationalNode;
+import cn.axzo.orgmanax.infra.dao.node.gateway.NodeUpsertGateway;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;
@@ -20,16 +19,14 @@ public class NodeUpsertGatewayImpl implements NodeUpsertGateway {
private final NodeDao nodeDao;
@Override
public OrganizationalNode create(OrganizationalNode node) {
- OrganizationalNodeDo nodeEntity = NodeInfraConvert.INSTANCE.toEntity(node);
- nodeDao.save(nodeEntity);
- node.setId(nodeEntity.getId());
+ nodeDao.save(node);
+ node.setId(node.getId());
return node;
}
@Override
public OrganizationalNode update(OrganizationalNode node) {
- OrganizationalNodeDo nodeEntity = NodeInfraConvert.INSTANCE.toEntity(node);
- nodeDao.updateById(nodeEntity);
+ nodeDao.updateById(node);
return node;
}
}
diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/mapper/OrganizationalNodeMapper.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/mapper/OrganizationalNodeMapper.java
index 70db364..f15dc68 100644
--- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/mapper/OrganizationalNodeMapper.java
+++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/node/mapper/OrganizationalNodeMapper.java
@@ -1,7 +1,7 @@
package cn.axzo.orgmanax.infra.dao.node.mapper;
-import cn.axzo.orgmanax.infra.dao.node.DO.OrganizationalNodeDo;
+import cn.axzo.orgmanax.infra.dao.node.DO.OrganizationalNode;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
@@ -13,7 +13,7 @@ import org.apache.ibatis.annotations.Mapper;
* @since 2022-05-21 18:53:19
*/
@Mapper
-public interface OrganizationalNodeMapper extends BaseMapper {
+public interface OrganizationalNodeMapper extends BaseMapper {
}
diff --git a/orgmanax-server/pom.xml b/orgmanax-server/pom.xml
index 99709dd..b9a05fb 100644
--- a/orgmanax-server/pom.xml
+++ b/orgmanax-server/pom.xml
@@ -19,11 +19,6 @@
-
- cn.axzo.orgmanax
- orgmanax-domain
- ${project.version}
-
cn.axzo.orgmanax
diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/controller/biz/team/OrgCreateTeamController.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/controller/biz/team/OrgCreateTeamController.java
new file mode 100644
index 0000000..f3f5a63
--- /dev/null
+++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/controller/biz/team/OrgCreateTeamController.java
@@ -0,0 +1,44 @@
+package cn.axzo.orgmanax.server.controller.biz.team;
+
+import cn.axzo.framework.domain.web.result.ApiResult;
+import cn.axzo.orgmanax.api.biz.team.OrgTeamApi;
+import cn.axzo.orgmanax.api.biz.team.req.OrgCreateTeamReq;
+import cn.axzo.orgmanax.api.biz.team.resp.OrgCreateTeamResp;
+import cn.axzo.orgmanax.server.service.foundation.node.service.NodeFoundationServiceImpl;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author tanjie@axzo.cn
+ * @date 2024/12/5 10:59
+ */
+@Component
+@RequiredArgsConstructor
+public class OrgCreateTeamController implements OrgTeamApi{
+ // 部门基础方法
+ private final NodeFoundationServiceImpl nodeBasicService;
+ // 协同关系基础方法
+// private final CooperShipFoundationService cooperShipFoundateionService;
+
+ // 消息发送器
+
+
+ @Override
+ public ApiResult createProjectTeam(OrgCreateTeamReq organizationalNodeCreateReq) {
+
+ // 校验
+
+ // 创建部门
+ nodeBasicService.create(null);
+
+ // 创建协同关系
+
+ // 设置角色
+
+
+ // 发送消息
+
+ // 返回结果
+ return null;
+ }
+}
diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/controller/foundation/node/OrganizationalNodeBasicController.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/controller/foundation/node/OrganizationalNodeBasicController.java
new file mode 100644
index 0000000..98a4c55
--- /dev/null
+++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/controller/foundation/node/OrganizationalNodeBasicController.java
@@ -0,0 +1,37 @@
+package cn.axzo.orgmanax.server.controller.foundation.node;
+
+import cn.axzo.framework.domain.web.result.ApiResult;
+import cn.axzo.orgmanax.api.foundation.node.feign.OrganizationalNodeBasicApi;
+import cn.axzo.orgmanax.api.foundation.node.req.OrganizationalNodeCreateReq;
+import cn.axzo.orgmanax.api.foundation.node.resp.OrganizationalNodeInfoResp;
+import cn.axzo.orgmanax.server.controller.foundation.node.convert.NodeApiConvert;
+import cn.axzo.orgmanax.server.service.foundation.node.service.NodeFoundationServiceImpl;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author tanjie@axzo.cn
+ * @date 2024/12/2 16:47
+ */
+@RestController
+@RequestMapping
+@RequiredArgsConstructor
+public class OrganizationalNodeBasicController implements OrganizationalNodeBasicApi {
+
+ private final NodeFoundationServiceImpl nodeBasicService;
+
+ /**
+ * 创建部门
+ *
+ * @param organizationalNodeCreateReq 创建部门参数
+ * @return
+ */
+ @Override
+ public ApiResult create(OrganizationalNodeCreateReq organizationalNodeCreateReq) {
+
+ return ApiResult.ok(nodeBasicService.create(NodeApiConvert.INSTANCE.toFoundation(organizationalNodeCreateReq)));
+ }
+
+
+}
diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/controller/foundation/node/convert/NodeApiConvert.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/controller/foundation/node/convert/NodeApiConvert.java
new file mode 100644
index 0000000..2396b51
--- /dev/null
+++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/controller/foundation/node/convert/NodeApiConvert.java
@@ -0,0 +1,17 @@
+package cn.axzo.orgmanax.server.controller.foundation.node.convert;
+
+import cn.axzo.orgmanax.api.foundation.node.req.OrganizationalNodeCreateReq;
+import cn.axzo.orgmanax.server.service.foundation.node.entity.OrganizationalNodeCreate;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+/**
+ * @author tanjie@axzo.cn
+ * @date 2024/12/5 10:32
+ */
+@Mapper
+public interface NodeApiConvert {
+
+ NodeApiConvert INSTANCE = Mappers.getMapper(NodeApiConvert.class);
+ OrganizationalNodeCreate toFoundation(OrganizationalNodeCreateReq req);
+}
diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/controller/unit/OrganizationalUnit.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/controller/foundation/unit/OrganizationalUnit.java
similarity index 82%
rename from orgmanax-server/src/main/java/cn/axzo/orgmanax/server/controller/unit/OrganizationalUnit.java
rename to orgmanax-server/src/main/java/cn/axzo/orgmanax/server/controller/foundation/unit/OrganizationalUnit.java
index db80f47..d9d80a4 100644
--- a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/controller/unit/OrganizationalUnit.java
+++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/controller/foundation/unit/OrganizationalUnit.java
@@ -1,4 +1,4 @@
-package cn.axzo.orgmanax.server.controller.unit;
+package cn.axzo.orgmanax.server.controller.foundation.unit;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/controller/node/OrganizationalNodeBasicController.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/controller/node/OrganizationalNodeBasicController.java
deleted file mode 100644
index 6b3862f..0000000
--- a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/controller/node/OrganizationalNodeBasicController.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package cn.axzo.orgmanax.server.controller.node;
-
-import cn.axzo.framework.domain.web.result.ApiResult;
-import cn.axzo.orgmanax.api.node.feign.basic.OrganizationalNodeBasicApi;
-import cn.axzo.orgmanax.api.node.req.OrganizationalNodeCreateReq;
-import cn.axzo.orgmanax.api.node.resp.OrganizationalNodeInfoResp;
-import cn.axzo.orgmanax.server.service.node.basic.NodeBasicService;
-import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * @author tanjie@axzo.cn
- * @date 2024/12/2 16:47
- */
-@RestController
-@RequestMapping
-@RequiredArgsConstructor
-public class OrganizationalNodeBasicController implements OrganizationalNodeBasicApi {
-
- private final NodeBasicService nodeBasicService;
-
- /**
- * 创建部门
- * @param organizationalNodeCreateReq 创建部门参数
- * @return
- */
- @Override
- public ApiResult create(OrganizationalNodeCreateReq organizationalNodeCreateReq) {
- return ApiResult.ok(nodeBasicService.create(organizationalNodeCreateReq));
- }
-
-
-}
diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/biz/package-info.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/biz/package-info.java
new file mode 100644
index 0000000..b5407ff
--- /dev/null
+++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/biz/package-info.java
@@ -0,0 +1,6 @@
+package cn.axzo.orgmanax.server.service.biz;
+/**
+ * 业务层
+ *
+ *
+ */
\ No newline at end of file
diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/biz/team/service/TeamServiceImpl.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/biz/team/service/TeamServiceImpl.java
new file mode 100644
index 0000000..0ad2062
--- /dev/null
+++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/biz/team/service/TeamServiceImpl.java
@@ -0,0 +1,12 @@
+package cn.axzo.orgmanax.server.service.biz.team.service;
+
+import org.springframework.stereotype.Service;
+
+/**
+ * @author tanjie@axzo.cn
+ * @date 2024/12/4 18:07
+ */
+@Service
+public class TeamServiceImpl {
+
+}
diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/node/check/NodeBasicCheck.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/foundation/node/check/NodeBasicCheck.java
similarity index 72%
rename from orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/node/check/NodeBasicCheck.java
rename to orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/foundation/node/check/NodeBasicCheck.java
index f7df1bb..e5bedfe 100644
--- a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/node/check/NodeBasicCheck.java
+++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/foundation/node/check/NodeBasicCheck.java
@@ -1,14 +1,11 @@
-package cn.axzo.orgmanax.server.service.node.check;
+package cn.axzo.orgmanax.server.service.foundation.node.check;
-import cn.axzo.framework.domain.web.BizException;
import cn.axzo.orgmanax.common.entity.BizErrorInfo;
-import cn.axzo.orgmanax.domain.node.entity.OrganizationalNode;
import cn.axzo.orgmanax.infra.dao.node.gateway.NodeQueryGateway;
+import cn.axzo.orgmanax.server.service.foundation.node.entity.OrganizationalNodeCreate;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
-import java.util.List;
-
/**
* @author tanjie@axzo.cn
* @date 2024/12/2 20:17
@@ -23,7 +20,7 @@ public class NodeBasicCheck {
* @param organizationalNode
* @return
*/
- public BizErrorInfo createNodeCheck(OrganizationalNode organizationalNode) {
+ public BizErrorInfo createNodeCheck(OrganizationalNodeCreate organizationalNode) {
// 重名校验
// nodeQueryGateway.find(organizationalNode.getOrganizationalNodeName());
diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/foundation/node/convert/NodeConvert.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/foundation/node/convert/NodeConvert.java
new file mode 100644
index 0000000..c8cbd67
--- /dev/null
+++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/foundation/node/convert/NodeConvert.java
@@ -0,0 +1,18 @@
+package cn.axzo.orgmanax.server.service.foundation.node.convert;
+
+import cn.axzo.orgmanax.infra.dao.node.DO.OrganizationalNode;
+import cn.axzo.orgmanax.server.service.foundation.node.entity.OrganizationalNodeCreate;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+/**
+ * @author tanjie@axzo.cn
+ * @date 2024/12/2 17:26
+ */
+@Mapper
+public interface NodeConvert {
+ NodeConvert INSTANCE = Mappers.getMapper(NodeConvert.class);
+
+ OrganizationalNode toDo(OrganizationalNodeCreate req);
+
+}
diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/foundation/node/entity/OrganizationalNodeCreate.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/foundation/node/entity/OrganizationalNodeCreate.java
new file mode 100644
index 0000000..12c99fa
--- /dev/null
+++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/foundation/node/entity/OrganizationalNodeCreate.java
@@ -0,0 +1,42 @@
+package cn.axzo.orgmanax.server.service.foundation.node.entity;
+
+/**
+ * 部门相关操作
+ * @author tanjie@axzo.cn
+ * @date 2024/12/5 10:28
+ */
+public class OrganizationalNodeCreate {
+
+
+ /**
+ * 单位ID
+ */
+ private Long organizationalUnitId;
+
+ /**
+ * 部门名称
+ */
+ private String organizationalNodeName;
+
+ /**
+ * 部门类型
+ */
+ private Integer nodeType;
+
+ /**
+ * 上级部门ID
+ */
+ private Long parentId;
+
+ /**
+ * 简介
+ */
+ private String remark;
+
+ /**
+ * 创建人
+ */
+ private Long crateBy;
+
+
+}
diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/node/basic/NodeBasicService.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/foundation/node/service/NodeFoundationServiceImpl.java
similarity index 56%
rename from orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/node/basic/NodeBasicService.java
rename to orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/foundation/node/service/NodeFoundationServiceImpl.java
index e73b95f..444f11a 100644
--- a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/node/basic/NodeBasicService.java
+++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/foundation/node/service/NodeFoundationServiceImpl.java
@@ -1,13 +1,13 @@
-package cn.axzo.orgmanax.server.service.node.basic;
+package cn.axzo.orgmanax.server.service.foundation.node.service;
-import cn.axzo.orgmanax.api.node.req.OrganizationalNodeCreateReq;
-import cn.axzo.orgmanax.api.node.resp.OrganizationalNodeInfoResp;
+import cn.axzo.orgmanax.api.foundation.node.resp.OrganizationalNodeInfoResp;
import cn.axzo.orgmanax.common.entity.BizErrorInfo;
-import cn.axzo.orgmanax.domain.node.entity.OrganizationalNode;
-import cn.axzo.orgmanax.domain.node.gateway.NodeUpsertGateway;
+import cn.axzo.orgmanax.infra.dao.node.DO.OrganizationalNode;
import cn.axzo.orgmanax.infra.dao.node.gateway.NodeQueryGateway;
-import cn.axzo.orgmanax.server.service.node.check.NodeBasicCheck;
-import cn.axzo.orgmanax.server.service.node.convert.NodeConvert;
+import cn.axzo.orgmanax.infra.dao.node.gateway.NodeUpsertGateway;
+import cn.axzo.orgmanax.server.service.foundation.node.check.NodeBasicCheck;
+import cn.axzo.orgmanax.server.service.foundation.node.convert.NodeConvert;
+import cn.axzo.orgmanax.server.service.foundation.node.entity.OrganizationalNodeCreate;
import cn.hutool.core.lang.Assert;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@@ -19,7 +19,7 @@ import org.springframework.transaction.annotation.Transactional;
*/
@Service
@RequiredArgsConstructor
-public class NodeBasicService {
+public class NodeFoundationServiceImpl {
private final NodeBasicCheck nodeBasicCheck;
private final NodeQueryGateway nodeQueryGateway;
@@ -27,37 +27,37 @@ public class NodeBasicService {
/**
- * 创建部门
+ * 创建部门标准接口
*
- * @param organizationalNodeCreateReq 创建部门参数
+ * @param
* @return
*/
@Transactional
- public OrganizationalNodeInfoResp create(OrganizationalNodeCreateReq organizationalNodeCreateReq) {
- OrganizationalNode node = NodeConvert.INSTANCE.toNodeDomain(organizationalNodeCreateReq);
+ public OrganizationalNodeInfoResp create(OrganizationalNodeCreate organizationalNodeCreate) {
// 业务校验
- BizErrorInfo bizErrorInfo = nodeBasicCheck.createNodeCheck(node);
+ BizErrorInfo bizErrorInfo = nodeBasicCheck.createNodeCheck(organizationalNodeCreate);
Assert.isTrue(bizErrorInfo.isSuccess(), bizErrorInfo.getErrorMsg());
// 转换为领域对象
// 持久化
- nodeUpsertGateway.create(node);
+ OrganizationalNode organizationalNode = NodeConvert.INSTANCE.toDo(organizationalNodeCreate);
+ nodeUpsertGateway.create(organizationalNode);
// 获取上级节点,为了重新计算path、topNodeId等数据
- OrganizationalNode parentNode = nodeQueryGateway.findById(node.getParentId());
+ OrganizationalNode parentNode = nodeQueryGateway.findById(organizationalNode.getParentId());
// 重新计算path、topNodeId等数据。 未来也可以添加workspaceId等信息
- node.calcPath(parentNode);
+ organizationalNode.calcPath(parentNode);
//更新数据
- nodeUpsertGateway.update(node);
+ nodeUpsertGateway.update(organizationalNode);
// 发送消息
// 返回结果
return OrganizationalNodeInfoResp.builder()
- .id(node.getId())
+ .id(organizationalNode.getId())
// ....
.build();
}
diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/foundation/package-info.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/foundation/package-info.java
new file mode 100644
index 0000000..c2be192
--- /dev/null
+++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/foundation/package-info.java
@@ -0,0 +1,8 @@
+package cn.axzo.orgmanax.server.service.foundation;
+
+
+/**
+ * 基础方法层
+ * 涉及到单域的业务操作都封装到该层
+ * 所以的读写操作都需要经过该层
+ */
\ No newline at end of file
diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/node/convert/NodeConvert.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/node/convert/NodeConvert.java
deleted file mode 100644
index 74c1e86..0000000
--- a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/service/node/convert/NodeConvert.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package cn.axzo.orgmanax.server.service.node.convert;
-
-import cn.axzo.orgmanax.api.node.req.OrganizationalNodeCreateReq;
-import cn.axzo.orgmanax.domain.node.entity.OrganizationalNode;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-/**
- * @author tanjie@axzo.cn
- * @date 2024/12/2 17:26
- */
-@Mapper
-public interface NodeConvert {
- NodeConvert INSTANCE = Mappers.getMapper(NodeConvert.class);
-
- OrganizationalNode toNodeDomain(OrganizationalNodeCreateReq req);
-
-}
diff --git a/pom.xml b/pom.xml
index 63f0cbd..18a4f81 100644
--- a/pom.xml
+++ b/pom.xml
@@ -117,7 +117,6 @@
orgmanax-api
orgmanax-common
- orgmanax-domain
orgmanax-server
orgmanax-infra