diff --git a/epdc-cloud-admin/pom.xml b/epdc-cloud-admin/pom.xml
index 6c41c95..17d942f 100644
--- a/epdc-cloud-admin/pom.xml
+++ b/epdc-cloud-admin/pom.xml
@@ -87,7 +87,7 @@
com.esua.epdc.yushan
- epdc-optimize-dept-macode
+ epdc-optimize-department
1.0.0
diff --git a/epdc-cloud-client-yushan b/epdc-cloud-client-yushan
index 820d1e4..ac24e1b 160000
--- a/epdc-cloud-client-yushan
+++ b/epdc-cloud-client-yushan
@@ -1 +1 @@
-Subproject commit 820d1e418e28da9cc383ccd6c8489cbdf22c29f4
+Subproject commit ac24e1b28acb3f901024a783742e1559f0ae8222
diff --git a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/pom.xml b/epdc-cloud-optimize-yushan/epdc-optimize-department/pom.xml
similarity index 93%
rename from epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/pom.xml
rename to epdc-cloud-optimize-yushan/epdc-optimize-department/pom.xml
index 89d214c..ea61d44 100644
--- a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/pom.xml
+++ b/epdc-cloud-optimize-yushan/epdc-optimize-department/pom.xml
@@ -9,11 +9,16 @@
4.0.0
- epdc-optimize-dept-macode
+ epdc-optimize-department
小程序码维护功能优化
jar
+
+ com.esua.epdc.yushan
+ epdc-cloud-admin-client
+ ${epdc-cloud-commons.version}
+
org.projectlombok
lombok
diff --git a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/db/update.sql b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/db/update.sql
similarity index 100%
rename from epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/db/update.sql
rename to epdc-cloud-optimize-yushan/epdc-optimize-department/src/db/update.sql
diff --git a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/feign/OptOssFeignClient.java b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/feign/OptOssFeignClient.java
similarity index 81%
rename from epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/feign/OptOssFeignClient.java
rename to epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/feign/OptOssFeignClient.java
index 05f50c2..bb0e7cd 100644
--- a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/feign/OptOssFeignClient.java
+++ b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/feign/OptOssFeignClient.java
@@ -1,7 +1,7 @@
-package com.elink.esua.epdc.optimize.macode.feign;
+package com.elink.esua.epdc.optimize.feign;
-import com.elink.esua.epdc.optimize.macode.feign.fallback.OptOssFeignClientFallback;
-import com.elink.esua.epdc.optimize.macode.dto.UploadToOssDTO;
+import com.elink.esua.epdc.optimize.feign.fallback.OptOssFeignClientFallback;
+import com.elink.esua.epdc.optimize.modules.macode.dto.UploadToOssDTO;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import org.springframework.cloud.openfeign.FeignClient;
diff --git a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/feign/fallback/OptOssFeignClientFallback.java b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/feign/fallback/OptOssFeignClientFallback.java
similarity index 74%
rename from epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/feign/fallback/OptOssFeignClientFallback.java
rename to epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/feign/fallback/OptOssFeignClientFallback.java
index 052c11d..76e6717 100644
--- a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/feign/fallback/OptOssFeignClientFallback.java
+++ b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/feign/fallback/OptOssFeignClientFallback.java
@@ -1,7 +1,7 @@
-package com.elink.esua.epdc.optimize.macode.feign.fallback;
+package com.elink.esua.epdc.optimize.feign.fallback;
-import com.elink.esua.epdc.optimize.macode.feign.OptOssFeignClient;
-import com.elink.esua.epdc.optimize.macode.dto.UploadToOssDTO;
+import com.elink.esua.epdc.optimize.feign.OptOssFeignClient;
+import com.elink.esua.epdc.optimize.modules.macode.dto.UploadToOssDTO;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
diff --git a/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/deptlevel/controller/OptDeptLevelController.java b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/deptlevel/controller/OptDeptLevelController.java
new file mode 100644
index 0000000..61df862
--- /dev/null
+++ b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/deptlevel/controller/OptDeptLevelController.java
@@ -0,0 +1,43 @@
+package com.elink.esua.epdc.optimize.modules.deptlevel.controller;
+
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dto.DeptLevelAndLeaderDTO;
+import com.elink.esua.epdc.optimize.modules.deptlevel.service.OptSysDeptService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 部门层级相关调用
+ *
+ * @author work@yujt.net.cn
+ * @date 2020/5/21 09:58
+ */
+@RestController
+@RequestMapping("optimize/deptlevel")
+public class OptDeptLevelController {
+
+
+ @Autowired
+ private OptSysDeptService optSysDeptService;
+
+
+ /**
+ * 通过部门id,获取所有下级机构(包括冗余字段)
+ *
+ * @param typeKey 部门类别关键字{@link com.elink.esua.epdc.commons.tools.constant.OrganizationTypeConstant}
+ * @param deptId 部门id
+ * @return com.elink.esua.epdc.commons.tools.utils.Result>
+ * @author work@yujt.net.cn
+ * @date 2020/5/22 09:13
+ */
+ @GetMapping("listByParent/{typeKey}/{deptId}")
+ public Result> listChildDeptLevelById(@PathVariable("typeKey") String typeKey, @PathVariable("deptId") Long deptId) {
+ List childDeptLevelList = optSysDeptService.listChildDeptLevelById(typeKey, deptId);
+ return new Result().ok(childDeptLevelList);
+ }
+}
diff --git a/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/deptlevel/dao/OptSysDeptDao.java b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/deptlevel/dao/OptSysDeptDao.java
new file mode 100644
index 0000000..3915c75
--- /dev/null
+++ b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/deptlevel/dao/OptSysDeptDao.java
@@ -0,0 +1,41 @@
+package com.elink.esua.epdc.optimize.modules.deptlevel.dao;
+
+import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
+import com.elink.esua.epdc.dto.DeptLevelAndLeaderDTO;
+import com.elink.esua.epdc.optimize.modules.deptlevel.entity.OptSysDeptEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 部门相关
+ *
+ * @author work@yujt.net.cn
+ * @date 2020/5/21 10:11
+ */
+@Mapper
+public interface OptSysDeptDao extends BaseDao {
+
+ /**
+ * 根据父级部门id,获取单一类别的子部门
+ *
+ * @param typeKey 类别关键字
+ * @param deptId 父部门id
+ * @return java.util.List
+ * @author work@yujt.net.cn
+ * @date 2020/5/22 09:33
+ */
+ List selectListChildDept(@Param("typeKey") String typeKey,@Param("deptId") Long deptId);
+
+ /**
+ * 根据机构id和机构父id,查询机构及父机构名称
+ *
+ * @param deptId 机构id
+ * @param parentIds 父机构id
+ * @return java.util.List
+ * @author work@yujt.net.cn
+ * @date 2020/5/15 14:10
+ */
+ List selectListDeptAndParents(@Param("deptId") Long deptId, @Param("parentIds") String[] parentIds);
+}
diff --git a/epdc-cloud-optimize-yushan/epdc-optimize-dept-level/src/main/java/com/elink/esua/epdc/optimize/deptlevel/entity/OptSysDeptEntity.java b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/deptlevel/entity/OptSysDeptEntity.java
similarity index 95%
rename from epdc-cloud-optimize-yushan/epdc-optimize-dept-level/src/main/java/com/elink/esua/epdc/optimize/deptlevel/entity/OptSysDeptEntity.java
rename to epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/deptlevel/entity/OptSysDeptEntity.java
index 37922e9..9349231 100644
--- a/epdc-cloud-optimize-yushan/epdc-optimize-dept-level/src/main/java/com/elink/esua/epdc/optimize/deptlevel/entity/OptSysDeptEntity.java
+++ b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/deptlevel/entity/OptSysDeptEntity.java
@@ -1,4 +1,4 @@
-package com.elink.esua.epdc.optimize.deptlevel.entity;
+package com.elink.esua.epdc.optimize.modules.deptlevel.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
diff --git a/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/deptlevel/service/OptSysDeptService.java b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/deptlevel/service/OptSysDeptService.java
new file mode 100644
index 0000000..4508243
--- /dev/null
+++ b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/deptlevel/service/OptSysDeptService.java
@@ -0,0 +1,27 @@
+package com.elink.esua.epdc.optimize.modules.deptlevel.service;
+
+import com.elink.esua.epdc.commons.mybatis.service.BaseService;
+import com.elink.esua.epdc.dto.DeptLevelAndLeaderDTO;
+import com.elink.esua.epdc.optimize.modules.deptlevel.entity.OptSysDeptEntity;
+
+import java.util.List;
+
+/**
+ * 部门相关
+ *
+ * @author work@yujt.net.cn
+ * @date 2020/5/21 10:11
+ */
+public interface OptSysDeptService extends BaseService {
+
+ /**
+ * 通过部门id,获取所有下级机构(包括冗余字段)
+ *
+ * @param typeKey 部门类别关键字{@link com.elink.esua.epdc.commons.tools.constant.OrganizationTypeConstant}
+ * @param deptId 部门id
+ * @return java.util.List
+ * @author work@yujt.net.cn
+ * @date 2020/5/22 09:13
+ */
+ List listChildDeptLevelById(String typeKey, Long deptId);
+}
diff --git a/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/deptlevel/service/impl/OptSysDeptServiceImpl.java b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/deptlevel/service/impl/OptSysDeptServiceImpl.java
new file mode 100644
index 0000000..11b866f
--- /dev/null
+++ b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/deptlevel/service/impl/OptSysDeptServiceImpl.java
@@ -0,0 +1,110 @@
+package com.elink.esua.epdc.optimize.modules.deptlevel.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
+import com.elink.esua.epdc.commons.tools.constant.StrConstant;
+import com.elink.esua.epdc.dto.DeptLevelAndLeaderDTO;
+import com.elink.esua.epdc.optimize.modules.deptlevel.dao.OptSysDeptDao;
+import com.elink.esua.epdc.optimize.modules.deptlevel.entity.OptSysDeptEntity;
+import com.elink.esua.epdc.optimize.modules.deptlevel.service.OptSysDeptService;
+import com.elink.esua.epdc.optimize.utils.DeptUtils;
+import com.google.common.collect.Lists;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 部门相关业务实现
+ *
+ * @author work@yujt.net.cn
+ * @date 2020/5/21 10:12
+ */
+@Service
+public class OptSysDeptServiceImpl extends BaseServiceImpl implements OptSysDeptService {
+
+ @Override
+ public List listChildDeptLevelById(String typeKey, Long deptId) {
+ OptSysDeptEntity parentDept = baseDao.selectById(deptId);
+ List childDeptList = baseDao.selectListChildDept(typeKey, deptId);
+ // 直属子部门
+ List sonNodeDepts = Lists.newArrayList();
+ // 非直属子部门,可能是子部门的子部门
+ List grandsonNodeDepts = Lists.newArrayList();
+ childDeptList.forEach(
+ childDept -> {
+ if (childDept.getPid().equals(deptId)) {
+ sonNodeDepts.add(childDept);
+ } else {
+ grandsonNodeDepts.add(childDept);
+ }
+ }
+ );
+ List result = packSonNodeDeptLevelList(parentDept, sonNodeDepts);
+ if (CollUtil.isNotEmpty(grandsonNodeDepts)) {
+ grandsonNodeDepts.forEach(dept -> {
+ DeptLevelAndLeaderDTO dto = packCompleteDeptLevel(dept.getId(), dept.getPids());
+ if (null != dto) {
+ result.add(dto);
+ }
+ });
+ }
+ return result;
+ }
+
+
+ /**
+ * 组装所有子部门(父部门直属)的层级关系
+ *
+ * @param parentDept 父部门
+ * @param sonNodeDepts 所有子部门
+ * @return java.util.List
+ * @author work@yujt.net.cn
+ * @date 2020/5/22 11:09
+ */
+ private List packSonNodeDeptLevelList(OptSysDeptEntity parentDept, List sonNodeDepts) {
+ List result = Lists.newArrayList();
+ if (CollUtil.isEmpty(sonNodeDepts)) {
+ return result;
+ }
+ DeptLevelAndLeaderDTO baseDeptLevel = packCompleteDeptLevel(parentDept.getId(), parentDept.getPids());
+ sonNodeDepts.forEach(dept -> result.add(packSonNodeDeptLevel(dept, baseDeptLevel)));
+ return result;
+ }
+
+ /**
+ * 组装子部门(父部门直属)的层级关系
+ *
+ * @param dept 子部门
+ * @param baseDeptLevel 父部门及层级关系
+ * @return com.elink.esua.epdc.dto.DeptLevelAndLeaderDTO
+ * @author work@yujt.net.cn
+ * @date 2020/5/22 11:02
+ */
+ private DeptLevelAndLeaderDTO packSonNodeDeptLevel(OptSysDeptEntity dept, DeptLevelAndLeaderDTO baseDeptLevel) {
+ DeptLevelAndLeaderDTO dto = new DeptLevelAndLeaderDTO();
+ dto.setDeptId(dept.getId());
+ dto.setDeptName(dept.getName());
+ dto.setTypeKey(dept.getTypeKey());
+ dto.setParentDeptIds(baseDeptLevel.getAllDeptIds());
+ dto.setParentDeptNames(baseDeptLevel.getAllDeptNames());
+ dto.setAllDeptIds(baseDeptLevel.getAllDeptIds().concat(StrConstant.COMMA).concat(String.valueOf(dept.getId())));
+ dto.setAllDeptNames(baseDeptLevel.getAllDeptNames().concat(StrConstant.HYPHEN).concat(dept.getName()));
+ return dto;
+ }
+
+ /**
+ * 获取部门及父部门信息,拼接部门id,部门名称
+ *
+ * @param deptId 本部门id
+ * @param pids 所有父部门id
+ * @return OptDeptMaCodeEntity
+ * @author work@yujt.net.cn
+ * @date 2020/5/18 14:06
+ */
+ private DeptLevelAndLeaderDTO packCompleteDeptLevel(Long deptId, String pids) {
+ String[] deptPids = pids.split(StrConstant.COMMA);
+ // 查询机构及父级机构
+ List deptList = baseDao.selectListDeptAndParents(deptId, deptPids);
+ return DeptUtils.packageDeptLevelDto(deptPids, deptList);
+ }
+}
diff --git a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/controller/OptDeptMaCodeController.java b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/controller/OptDeptMaCodeController.java
similarity index 94%
rename from epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/controller/OptDeptMaCodeController.java
rename to epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/controller/OptDeptMaCodeController.java
index 1740208..c3fb0ba 100644
--- a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/controller/OptDeptMaCodeController.java
+++ b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/controller/OptDeptMaCodeController.java
@@ -15,10 +15,10 @@
* along with this program. If not, see .
*/
-package com.elink.esua.epdc.optimize.macode.controller;
+package com.elink.esua.epdc.optimize.modules.macode.controller;
-import com.elink.esua.epdc.optimize.macode.dto.OptDeptMaCodeDTO;
-import com.elink.esua.epdc.optimize.macode.service.OptDeptMaCodeService;
+import com.elink.esua.epdc.optimize.modules.macode.dto.OptDeptMaCodeDTO;
+import com.elink.esua.epdc.optimize.modules.macode.service.OptDeptMaCodeService;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.AssertUtils;
diff --git a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/dao/OptDeptMaCodeDao.java b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/dao/OptDeptMaCodeDao.java
similarity index 76%
rename from epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/dao/OptDeptMaCodeDao.java
rename to epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/dao/OptDeptMaCodeDao.java
index 1dc05d6..d5d169a 100644
--- a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/dao/OptDeptMaCodeDao.java
+++ b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/dao/OptDeptMaCodeDao.java
@@ -15,10 +15,10 @@
* along with this program. If not, see .
*/
-package com.elink.esua.epdc.optimize.macode.dao;
+package com.elink.esua.epdc.optimize.modules.macode.dao;
-import com.elink.esua.epdc.optimize.macode.dto.OptDeptMaCodeDTO;
-import com.elink.esua.epdc.optimize.macode.entity.OptDeptMaCodeEntity;
+import com.elink.esua.epdc.optimize.modules.macode.dto.OptDeptMaCodeDTO;
+import com.elink.esua.epdc.optimize.modules.macode.entity.OptDeptMaCodeEntity;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -46,17 +46,6 @@ public interface OptDeptMaCodeDao extends BaseDao {
*/
List selectListDeptIdByTypeKey(@Param("dataScopeDeptIds") List dataScopeDeptIds, @Param("typeKey") String typeKey);
- /**
- * 根据机构id和机构父id,查询机构及父机构名称
- *
- * @param deptId 机构id
- * @param parentIds 父机构id
- * @return java.util.List
- * @author work@yujt.net.cn
- * @date 2020/5/15 14:10
- */
- List selectListDeptAndParents(@Param("deptId") Long deptId, @Param("parentIds") String[] parentIds);
-
/**
* 小程序码维护 - 分页查询
*
diff --git a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/dto/OptDeptMaCodeDTO.java b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/dto/OptDeptMaCodeDTO.java
similarity index 97%
rename from epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/dto/OptDeptMaCodeDTO.java
rename to epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/dto/OptDeptMaCodeDTO.java
index c57b30e..2dba190 100644
--- a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/dto/OptDeptMaCodeDTO.java
+++ b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/dto/OptDeptMaCodeDTO.java
@@ -15,7 +15,7 @@
* along with this program. If not, see .
*/
-package com.elink.esua.epdc.optimize.macode.dto;
+package com.elink.esua.epdc.optimize.modules.macode.dto;
import java.io.Serializable;
import java.util.Date;
diff --git a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/dto/UploadToOssDTO.java b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/dto/UploadToOssDTO.java
similarity index 83%
rename from epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/dto/UploadToOssDTO.java
rename to epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/dto/UploadToOssDTO.java
index ec27755..c9c3b85 100644
--- a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/dto/UploadToOssDTO.java
+++ b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/dto/UploadToOssDTO.java
@@ -1,4 +1,4 @@
-package com.elink.esua.epdc.optimize.macode.dto;
+package com.elink.esua.epdc.optimize.modules.macode.dto;
import lombok.Data;
diff --git a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/entity/OptDeptMaCodeEntity.java b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/entity/OptDeptMaCodeEntity.java
similarity index 95%
rename from epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/entity/OptDeptMaCodeEntity.java
rename to epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/entity/OptDeptMaCodeEntity.java
index b5a7d89..1df8024 100644
--- a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/entity/OptDeptMaCodeEntity.java
+++ b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/entity/OptDeptMaCodeEntity.java
@@ -15,7 +15,7 @@
* along with this program. If not, see .
*/
-package com.elink.esua.epdc.optimize.macode.entity;
+package com.elink.esua.epdc.optimize.modules.macode.entity;
import com.baomidou.mybatisplus.annotation.TableName;
diff --git a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/service/OptDeptMaCodeService.java b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/service/OptDeptMaCodeService.java
similarity index 93%
rename from epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/service/OptDeptMaCodeService.java
rename to epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/service/OptDeptMaCodeService.java
index af26068..4e5e013 100644
--- a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/service/OptDeptMaCodeService.java
+++ b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/service/OptDeptMaCodeService.java
@@ -15,10 +15,10 @@
* along with this program. If not, see .
*/
-package com.elink.esua.epdc.optimize.macode.service;
+package com.elink.esua.epdc.optimize.modules.macode.service;
-import com.elink.esua.epdc.optimize.macode.dto.OptDeptMaCodeDTO;
-import com.elink.esua.epdc.optimize.macode.entity.OptDeptMaCodeEntity;
+import com.elink.esua.epdc.optimize.modules.macode.dto.OptDeptMaCodeDTO;
+import com.elink.esua.epdc.optimize.modules.macode.entity.OptDeptMaCodeEntity;
import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
diff --git a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/service/impl/OptDeptMaCodeServiceImpl.java b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/service/impl/OptDeptMaCodeServiceImpl.java
similarity index 75%
rename from epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/service/impl/OptDeptMaCodeServiceImpl.java
rename to epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/service/impl/OptDeptMaCodeServiceImpl.java
index bb278a2..677cfee 100644
--- a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/service/impl/OptDeptMaCodeServiceImpl.java
+++ b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/service/impl/OptDeptMaCodeServiceImpl.java
@@ -15,19 +15,20 @@
* along with this program. If not, see .
*/
-package com.elink.esua.epdc.optimize.macode.service.impl;
+package com.elink.esua.epdc.optimize.modules.macode.service.impl;
import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.util.ArrayUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.elink.esua.epdc.optimize.macode.feign.OptOssFeignClient;
-import com.elink.esua.epdc.optimize.macode.dao.OptDeptMaCodeDao;
-import com.elink.esua.epdc.optimize.macode.dto.OptDeptMaCodeDTO;
-import com.elink.esua.epdc.optimize.macode.dto.UploadToOssDTO;
-import com.elink.esua.epdc.optimize.macode.entity.OptDeptMaCodeEntity;
-import com.elink.esua.epdc.optimize.macode.service.OptDeptMaCodeService;
+import com.elink.esua.epdc.dto.DeptLevelAndLeaderDTO;
+import com.elink.esua.epdc.optimize.modules.deptlevel.dao.OptSysDeptDao;
+import com.elink.esua.epdc.optimize.feign.OptOssFeignClient;
+import com.elink.esua.epdc.optimize.modules.macode.dao.OptDeptMaCodeDao;
+import com.elink.esua.epdc.optimize.modules.macode.dto.OptDeptMaCodeDTO;
+import com.elink.esua.epdc.optimize.modules.macode.dto.UploadToOssDTO;
+import com.elink.esua.epdc.optimize.modules.macode.entity.OptDeptMaCodeEntity;
+import com.elink.esua.epdc.optimize.modules.macode.service.OptDeptMaCodeService;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.constant.OrganizationTypeConstant;
@@ -39,7 +40,8 @@ import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
-import com.elink.esua.epdc.optimize.macode.utils.FileUtils;
+import com.elink.esua.epdc.optimize.utils.DeptUtils;
+import com.elink.esua.epdc.optimize.utils.FileUtils;
import com.elink.esua.epdc.utils.WxMaServiceUtils;
import com.google.common.collect.Lists;
import me.chanjar.weixin.common.error.WxErrorException;
@@ -62,6 +64,9 @@ import java.util.Map;
@Service
public class OptDeptMaCodeServiceImpl extends BaseServiceImpl implements OptDeptMaCodeService {
+ @Autowired
+ private OptSysDeptDao sysDeptDao;
+
@Autowired
private WxMaServiceUtils wxMaServiceUtils;
@@ -170,51 +175,18 @@ public class OptDeptMaCodeServiceImpl extends BaseServiceImpl deptList = baseDao.selectListDeptAndParents(deptId, deptPids);
- if (CollUtil.isEmpty(deptList)) {
- return null;
- }
- // 按上下级顺序组装部门集合
- List newDeptIdList = Lists.newArrayList();
- if (ArrayUtil.isEmpty(deptPids)) {
- // 父级部门为空,则只有部门本身,没有上级
- newDeptIdList = deptList;
- } else {
- // 按部门顺序开始组装
- for (int i = 0; i < deptPids.length; i++) {
- for (OptDeptMaCodeEntity entity : deptList) {
- if (String.valueOf(entity.getGridId()).equals(deptPids[i])) {
- newDeptIdList.add(entity);
- deptList.remove(entity);
- break;
- }
- }
- }
- // 所有父级部门处理完成,最后剩下部门本身
- newDeptIdList.addAll(deptList);
- }
+ List deptList = sysDeptDao.selectListDeptAndParents(deptId, deptPids);
- int size = newDeptIdList.size();
- int maxIndex = size - NumConstant.ONE;
-
- String[] allDeptIds = new String[size];
- String[] allDeptNames = new String[size];
- String[] parentDeptIds = new String[maxIndex];
- String[] parentDeptNames = new String[maxIndex];
- for (int i = 0; i < size; i++) {
- allDeptIds[i] = String.valueOf(newDeptIdList.get(i).getGridId());
- allDeptNames[i] = newDeptIdList.get(i).getGrid();
- if (i < maxIndex) {
- parentDeptIds[i] = String.valueOf(newDeptIdList.get(i).getGridId());
- parentDeptNames[i] = newDeptIdList.get(i).getGrid();
- }
+ DeptLevelAndLeaderDTO deptLevel = DeptUtils.packageDeptLevelDto(deptPids, deptList);
+
+ OptDeptMaCodeEntity deptMaCodeEntity = ConvertUtils.sourceToTarget(deptLevel, OptDeptMaCodeEntity.class);
+ if (null == deptMaCodeEntity) {
+ return null;
}
- OptDeptMaCodeEntity deptMaCodeEntity = newDeptIdList.get(maxIndex);
+ deptMaCodeEntity.setGrid(deptLevel.getDeptName());
+ deptMaCodeEntity.setGridId(deptLevel.getDeptId());
deptMaCodeEntity.setLeaderFlag(YesOrNoEnum.NO.value());
- deptMaCodeEntity.setAllDeptIds(StringUtils.join(allDeptIds, StrConstant.COMMA));
- deptMaCodeEntity.setParentDeptIds(StringUtils.join(parentDeptIds, StrConstant.COMMA));
- deptMaCodeEntity.setAllDeptNames(StringUtils.join(allDeptNames, StrConstant.HYPHEN));
- deptMaCodeEntity.setParentDeptNames(StringUtils.join(parentDeptNames, StrConstant.HYPHEN));
+
return deptMaCodeEntity;
}
diff --git a/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/utils/DeptUtils.java b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/utils/DeptUtils.java
new file mode 100644
index 0000000..b70d956
--- /dev/null
+++ b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/utils/DeptUtils.java
@@ -0,0 +1,66 @@
+package com.elink.esua.epdc.optimize.utils;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ArrayUtil;
+import com.elink.esua.epdc.commons.tools.constant.NumConstant;
+import com.elink.esua.epdc.commons.tools.constant.StrConstant;
+import com.elink.esua.epdc.dto.DeptLevelAndLeaderDTO;
+import com.google.common.collect.Lists;
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.List;
+
+/**
+ * 部门相关静态方法工具类
+ *
+ * @author work@yujt.net.cn
+ * @date 2020/5/22 10:21
+ */
+public class DeptUtils {
+
+ public static DeptLevelAndLeaderDTO packageDeptLevelDto(String[] deptPids,List deptList){
+ if (CollUtil.isEmpty(deptList)) {
+ return null;
+ }
+ // 按上下级顺序组装部门集合
+ List newDeptIdList = Lists.newArrayList();
+ if (ArrayUtil.isEmpty(deptPids)) {
+ // 父级部门为空,则只有部门本身,没有上级
+ newDeptIdList = deptList;
+ } else {
+ // 按部门顺序开始组装
+ for (int i = 0; i < deptPids.length; i++) {
+ for (DeptLevelAndLeaderDTO entity : deptList) {
+ if (String.valueOf(entity.getDeptId()).equals(deptPids[i])) {
+ newDeptIdList.add(entity);
+ deptList.remove(entity);
+ break;
+ }
+ }
+ }
+ // 所有父级部门处理完成,最后剩下部门本身
+ newDeptIdList.addAll(deptList);
+ }
+ int size = newDeptIdList.size();
+ int maxIndex = size - NumConstant.ONE;
+
+ String[] allDeptIds = new String[size];
+ String[] allDeptNames = new String[size];
+ String[] parentDeptIds = new String[maxIndex];
+ String[] parentDeptNames = new String[maxIndex];
+ for (int i = 0; i < size; i++) {
+ allDeptIds[i] = String.valueOf(newDeptIdList.get(i).getDeptId());
+ allDeptNames[i] = newDeptIdList.get(i).getDeptName();
+ if (i < maxIndex) {
+ parentDeptIds[i] = String.valueOf(newDeptIdList.get(i).getDeptId());
+ parentDeptNames[i] = newDeptIdList.get(i).getDeptName();
+ }
+ }
+ DeptLevelAndLeaderDTO deptLevelDto = newDeptIdList.get(maxIndex);
+ deptLevelDto.setAllDeptIds(StringUtils.join(allDeptIds, StrConstant.COMMA));
+ deptLevelDto.setParentDeptIds(StringUtils.join(parentDeptIds, StrConstant.COMMA));
+ deptLevelDto.setAllDeptNames(StringUtils.join(allDeptNames, StrConstant.HYPHEN));
+ deptLevelDto.setParentDeptNames(StringUtils.join(parentDeptNames, StrConstant.HYPHEN));
+ return deptLevelDto;
+ }
+}
diff --git a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/utils/FileUtils.java b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/utils/FileUtils.java
similarity index 95%
rename from epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/utils/FileUtils.java
rename to epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/utils/FileUtils.java
index b54d83f..286d22b 100644
--- a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/java/com/elink/esua/epdc/optimize/macode/utils/FileUtils.java
+++ b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/java/com/elink/esua/epdc/optimize/utils/FileUtils.java
@@ -1,4 +1,4 @@
-package com.elink.esua.epdc.optimize.macode.utils;
+package com.elink.esua.epdc.optimize.utils;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
diff --git a/epdc-cloud-optimize-yushan/epdc-optimize-dept-level/src/main/resources/application.yml b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/resources/application.yml
similarity index 92%
rename from epdc-cloud-optimize-yushan/epdc-optimize-dept-level/src/main/resources/application.yml
rename to epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/resources/application.yml
index 2299de9..4cdbe7f 100644
--- a/epdc-cloud-optimize-yushan/epdc-optimize-dept-level/src/main/resources/application.yml
+++ b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/resources/application.yml
@@ -1,7 +1,7 @@
mybatis-plus:
mapper-locations: classpath:/mapper/**/*.xml
#实体扫描,多个package用逗号或者分号分隔
- typeAliasesPackage: com.elink.esua.epdc.optimize.deptlevel.entity
+ typeAliasesPackage: com.elink.esua.epdc.optimize.modules.*.entity
global-config:
#数据库相关配置
db-config:
diff --git a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/resources/logback-spring.xml b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/resources/logback-spring.xml
similarity index 100%
rename from epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/resources/logback-spring.xml
rename to epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/resources/logback-spring.xml
diff --git a/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/resources/mapper/deptlevel/OptSysDeptDao.xml b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/resources/mapper/deptlevel/OptSysDeptDao.xml
new file mode 100644
index 0000000..03e8a4b
--- /dev/null
+++ b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/resources/mapper/deptlevel/OptSysDeptDao.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/resources/mapper/OptDeptMaCodeDao.xml b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/resources/mapper/macode/OptDeptMaCodeDao.xml
similarity index 69%
rename from epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/resources/mapper/OptDeptMaCodeDao.xml
rename to epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/resources/mapper/macode/OptDeptMaCodeDao.xml
index ac02db5..cabc2a1 100644
--- a/epdc-cloud-optimize-yushan/epdc-optimize-dept-macode/src/main/resources/mapper/OptDeptMaCodeDao.xml
+++ b/epdc-cloud-optimize-yushan/epdc-optimize-department/src/main/resources/mapper/macode/OptDeptMaCodeDao.xml
@@ -1,10 +1,10 @@
-
+
-