|
@@ -1,26 +1,28 @@
|
|
package com.persagy.fm.department.controller;
|
|
package com.persagy.fm.department.controller;
|
|
|
|
|
|
import com.persagy.fm.common.constant.enums.BoolEnum;
|
|
import com.persagy.fm.common.constant.enums.BoolEnum;
|
|
-import com.persagy.fm.common.response.*;
|
|
|
|
|
|
+import com.persagy.fm.common.response.CommonResult;
|
|
|
|
+import com.persagy.fm.common.response.FmResponseUpsertVO;
|
|
|
|
+import com.persagy.fm.common.response.PageList;
|
|
import com.persagy.fm.common.utils.ResultHelper;
|
|
import com.persagy.fm.common.utils.ResultHelper;
|
|
import com.persagy.fm.department.model.ConvertDepartmentTool;
|
|
import com.persagy.fm.department.model.ConvertDepartmentTool;
|
|
import com.persagy.fm.department.model.Department;
|
|
import com.persagy.fm.department.model.Department;
|
|
import com.persagy.fm.department.model.dto.*;
|
|
import com.persagy.fm.department.model.dto.*;
|
|
-import com.persagy.fm.department.model.vo.ManagerVO;
|
|
|
|
import com.persagy.fm.department.model.vo.ResponseDepartmentItemVO;
|
|
import com.persagy.fm.department.model.vo.ResponseDepartmentItemVO;
|
|
import com.persagy.fm.department.model.vo.ResponseDepartmentListItemVO;
|
|
import com.persagy.fm.department.model.vo.ResponseDepartmentListItemVO;
|
|
import com.persagy.fm.department.model.vo.ResponseDepartmentTreeItemVO;
|
|
import com.persagy.fm.department.model.vo.ResponseDepartmentTreeItemVO;
|
|
|
|
+import com.persagy.fm.department.service.IDepTranslator;
|
|
import com.persagy.fm.department.service.IDepTreeService;
|
|
import com.persagy.fm.department.service.IDepTreeService;
|
|
import com.persagy.fm.department.service.IDepartmentService;
|
|
import com.persagy.fm.department.service.IDepartmentService;
|
|
import com.persagy.fm.department.utils.DepDataUtil;
|
|
import com.persagy.fm.department.utils.DepDataUtil;
|
|
|
|
+import com.persagy.fm.depproject.model.DepProject;
|
|
|
|
+import com.persagy.fm.depproject.model.dto.QueryDepProjectDTO;
|
|
import com.persagy.fm.depproject.service.IDepProjectService;
|
|
import com.persagy.fm.depproject.service.IDepProjectService;
|
|
import com.persagy.fm.saas.project.model.vo.ProjectTreeItemVO;
|
|
import com.persagy.fm.saas.project.model.vo.ProjectTreeItemVO;
|
|
import com.persagy.fm.translate.model.Trans;
|
|
import com.persagy.fm.translate.model.Trans;
|
|
import com.persagy.fm.translate.model.TransType;
|
|
import com.persagy.fm.translate.model.TransType;
|
|
-import com.persagy.fm.translate.model.Transes;
|
|
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import io.swagger.annotations.ApiOperation;
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
|
import org.assertj.core.util.Lists;
|
|
import org.assertj.core.util.Lists;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.util.CollectionUtils;
|
|
import org.springframework.util.CollectionUtils;
|
|
@@ -31,7 +33,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
import javax.validation.Valid;
|
|
import javax.validation.Valid;
|
|
-import java.util.Arrays;
|
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
@@ -53,53 +54,37 @@ public class DepartmentController {
|
|
private IDepTreeService depTreeService;
|
|
private IDepTreeService depTreeService;
|
|
@Autowired
|
|
@Autowired
|
|
private IDepProjectService depProjectService;
|
|
private IDepProjectService depProjectService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private IDepTranslator depTranslator;
|
|
|
|
|
|
@ApiOperation(value = "创建部门")
|
|
@ApiOperation(value = "创建部门")
|
|
@PostMapping("/create")
|
|
@PostMapping("/create")
|
|
public CommonResult<FmResponseUpsertVO> createDepartment(
|
|
public CommonResult<FmResponseUpsertVO> createDepartment(
|
|
@Valid @RequestBody AddDepartmentDTO addDepartmentDTO) {
|
|
@Valid @RequestBody AddDepartmentDTO addDepartmentDTO) {
|
|
- Long id = departmentService.createDepartment(addDepartmentDTO);
|
|
|
|
|
|
+ String id = departmentService.createDepartment(addDepartmentDTO);
|
|
return ResultHelper.single(new FmResponseUpsertVO(id));
|
|
return ResultHelper.single(new FmResponseUpsertVO(id));
|
|
}
|
|
}
|
|
|
|
|
|
@ApiOperation(value = "部门详情")
|
|
@ApiOperation(value = "部门详情")
|
|
@PostMapping("/get")
|
|
@PostMapping("/get")
|
|
- // TODO: 2021/3/24 使用翻译器
|
|
|
|
-// @Transes({
|
|
|
|
-// @Trans(source = "personNameTranslator",
|
|
|
|
-// type = TransType.SERVICE, batch = true,
|
|
|
|
-// parameter = "managerIds", target = "managerObjs"),
|
|
|
|
-//// @Trans(source = "com.persagy.fm.person.service.IPersonTransBatchHandler",
|
|
|
|
-//// type = TransType.SERVICE, result = "name", batch = true,
|
|
|
|
-//// condition = "id", parameter = "projectIds", target = "projectsShowName")
|
|
|
|
-// })
|
|
|
|
|
|
+ @Trans(type = TransType.DB, source = "department", parameter = "parentId", target = "parentShowName")
|
|
public CommonResult<ResponseDepartmentItemVO> queryDepartmentDetail(
|
|
public CommonResult<ResponseDepartmentItemVO> queryDepartmentDetail(
|
|
@Valid @RequestBody QueryDepartmentDetailDTO queryDepartmentDetailDTO) {
|
|
@Valid @RequestBody QueryDepartmentDetailDTO queryDepartmentDetailDTO) {
|
|
Department department = departmentService.queryDepartmentDetail(queryDepartmentDetailDTO.getId());
|
|
Department department = departmentService.queryDepartmentDetail(queryDepartmentDetailDTO.getId());
|
|
ResponseDepartmentItemVO responseDepartmentItemVO = ConvertDepartmentTool.INSTANCE.convert2ResponseItemDTO(department);
|
|
ResponseDepartmentItemVO responseDepartmentItemVO = ConvertDepartmentTool.INSTANCE.convert2ResponseItemDTO(department);
|
|
- List<ManagerVO> test = test(department.getManagers());
|
|
|
|
- responseDepartmentItemVO.setManagerObjs(test);
|
|
|
|
|
|
+ // 给部门负责人赋值
|
|
|
|
+ String managers = department.getManagers();
|
|
|
|
+ responseDepartmentItemVO.setManagers(depTranslator.getManagerVOList(managers));
|
|
|
|
+ // 给项目赋值
|
|
|
|
+ QueryDepProjectDTO queryDepProjectDTO = new QueryDepProjectDTO();
|
|
|
|
+ queryDepProjectDTO.setDepId(department.getId());
|
|
|
|
+ List<DepProject> depProjectList = depProjectService.queryDepProjectList(queryDepProjectDTO);
|
|
|
|
+ List<String> projectIds = depProjectList.stream().
|
|
|
|
+ map(DepProject::getProjectId).collect(Collectors.toList());
|
|
|
|
+ responseDepartmentItemVO.setProjects(depTranslator.getProjectVOList(projectIds));
|
|
return ResultHelper.single(responseDepartmentItemVO);
|
|
return ResultHelper.single(responseDepartmentItemVO);
|
|
}
|
|
}
|
|
|
|
|
|
- @Trans(source = "personNameTranslator",
|
|
|
|
- type = TransType.SERVICE, batch = true,
|
|
|
|
- parameter = "id", target = "name")
|
|
|
|
- private List<ManagerVO> test(String manager) {
|
|
|
|
- String[] ids = manager.split(",");
|
|
|
|
- if (ids.length == 0) {
|
|
|
|
- return null;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- List<ManagerVO> result = Lists.newArrayList();
|
|
|
|
- for (String id : ids) {
|
|
|
|
- ManagerVO managerVO = new ManagerVO();
|
|
|
|
- managerVO.setId(Long.valueOf(id));
|
|
|
|
- result.add(managerVO);
|
|
|
|
- }
|
|
|
|
- return result;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
@ApiOperation(value = "更新部门")
|
|
@ApiOperation(value = "更新部门")
|
|
@PostMapping("/update")
|
|
@PostMapping("/update")
|
|
public CommonResult<FmResponseUpsertVO> updateDepartment(
|
|
public CommonResult<FmResponseUpsertVO> updateDepartment(
|
|
@@ -130,11 +115,11 @@ public class DepartmentController {
|
|
return ResultHelper.multi(resultList);
|
|
return ResultHelper.multi(resultList);
|
|
}
|
|
}
|
|
// 获取部门的子部门
|
|
// 获取部门的子部门
|
|
- List<Long> deptIds = departmentList.stream().
|
|
|
|
|
|
+ List<String> deptIds = departmentList.stream().
|
|
map(Department::getId).
|
|
map(Department::getId).
|
|
collect(Collectors.toList());
|
|
collect(Collectors.toList());
|
|
List<Department> sonDeps = departmentService.queryDepListByParentIds(deptIds);
|
|
List<Department> sonDeps = departmentService.queryDepListByParentIds(deptIds);
|
|
- Map<Long, List<Department>> parentIdMap = DepDataUtil.sonDeps2ParentIdMap(sonDeps);
|
|
|
|
|
|
+ Map<String, List<Department>> parentIdMap = DepDataUtil.sonDeps2ParentIdMap(sonDeps);
|
|
resultList.forEach(item -> {
|
|
resultList.forEach(item -> {
|
|
// 如果map中包含部门的id,代表部门有子部门
|
|
// 如果map中包含部门的id,代表部门有子部门
|
|
if (DepDataUtil.hasChildren(item.getId(), parentIdMap)) {
|
|
if (DepDataUtil.hasChildren(item.getId(), parentIdMap)) {
|
|
@@ -174,8 +159,25 @@ public class DepartmentController {
|
|
public CommonResult<PageList<ProjectTreeItemVO>> queryDepProjectTree(
|
|
public CommonResult<PageList<ProjectTreeItemVO>> queryDepProjectTree(
|
|
@Valid @RequestBody QueryDepProjectTreeDTO queryDepProjectTreeDTO) {
|
|
@Valid @RequestBody QueryDepProjectTreeDTO queryDepProjectTreeDTO) {
|
|
List<ProjectTreeItemVO> projectTreeItemVOList = depProjectService.queryDepProjectTree(queryDepProjectTreeDTO.getParentDepId());
|
|
List<ProjectTreeItemVO> projectTreeItemVOList = depProjectService.queryDepProjectTree(queryDepProjectTreeDTO.getParentDepId());
|
|
|
|
+ projectTreeItemVOList = projectTreeItemVOList == null ? Lists.newArrayList() : projectTreeItemVOList;
|
|
return ResultHelper.multi(projectTreeItemVOList);
|
|
return ResultHelper.multi(projectTreeItemVOList);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @ApiOperation(value = "检验部门是否可删除")
|
|
|
|
+ @PostMapping("/deleteAvailable")
|
|
|
|
+ public CommonResult checkDepDeletable(
|
|
|
|
+ @RequestBody @Valid DeleteDepartmentDTO deleteDepartmentDTO) {
|
|
|
|
+ departmentService.checkDeletable(deleteDepartmentDTO.getId());
|
|
|
|
+ return ResultHelper.success();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+// @Autowired
|
|
|
|
+// CreateDbService createDbService;
|
|
|
|
+//
|
|
|
|
+// @PostMapping("/createDb")
|
|
|
|
+// public CommonResult test() {
|
|
|
|
+// createDbService.createDb("test");
|
|
|
|
+// return ResultHelper.success();
|
|
|
|
+// }
|
|
}
|
|
}
|
|
|
|
|