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 @@ - + -