From d4daa1ea31db6fd421c0e86bab178a9f3b512141 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 23 九月 2024 18:02:54 +0800
Subject: [PATCH] 使用新导入
---
src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java | 100 +++++++++++++++++++++++++++++++++----------------
1 files changed, 67 insertions(+), 33 deletions(-)
diff --git a/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java
index 0ad215c..0389eab 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java
@@ -4,6 +4,7 @@
import com.mindskip.xzs.domain.enums.DeptAdminEnum;
import com.mindskip.xzs.domain.vo.BaseSelect;
import com.mindskip.xzs.domain.vo.CascaderDataVO;
+import com.mindskip.xzs.domain.vo.DepartmentEditVO;
import com.mindskip.xzs.domain.vo.UpdateDeptAdminVO;
import com.mindskip.xzs.repository.BaseMapper;
import com.mindskip.xzs.repository.DepartmentMapper;
@@ -11,8 +12,10 @@
import com.mindskip.xzs.repository.UserMapper;
import com.mindskip.xzs.service.DepartmentService;
import com.mindskip.xzs.utility.ModelMapperSingle;
+import com.mindskip.xzs.utility.TreeUtils;
import com.mindskip.xzs.viewmodel.admin.department.DepartmentResponseVM;
import org.modelmapper.ModelMapper;
+import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
@@ -39,7 +42,45 @@
@Override
public Integer add(Department model) {
model.setDeleted("0");
+ if (Objects.nonNull(model.getParentId())) {
+ // 鏌ュ嚭鐖剁骇鐨勫眰绾�
+ List<Integer> fatherList = departmentMapper.getFather(model.getParentId());
+ Collections.reverse(fatherList);
+ model.setLevel(fatherList.size() + 1);
+ }
return departmentMapper.add(model);
+ }
+
+ @Transactional(rollbackFor = Exception.class)
+ @Override
+ public Integer update(Department department) {
+ Department entity = departmentMapper.getById(department.getId());
+ if (Objects.isNull(entity)) {
+ throw new RuntimeException("璇ラ儴闂ㄤ笉瀛樺湪");
+ }
+ // 鍏堟竻闄や箣鍓嶇殑绠$悊鍛樻爣璇�
+ List<BaseSelect> deptUserList = userDepartmentMapper.getDeptUserList(entity.getId());
+ List<Integer> userIds = deptUserList.stream().map(BaseSelect::getId).collect(Collectors.toList());
+ if (! CollectionUtils.isEmpty(userIds)) {
+ userMapper.clearDeptAdmin(userIds, entity.getId());
+ userMapper.cancelUserDeptAdmin(userIds);
+ }
+ // 璁剧疆閮ㄩ棬绠$悊鍛�
+ if (! CollectionUtils.isEmpty(department.getAdminId())) {
+ userMapper.updateDeptAdmin(department.getAdminId(), DeptAdminEnum.YES.getValue(), entity.getId());
+ UpdateDeptAdminVO updateDeptAdminVO = new UpdateDeptAdminVO();
+ updateDeptAdminVO.setAdminIds(department.getAdminId());
+ userMapper.updateUserDeptAdmin(updateDeptAdminVO);
+ }
+ if (Objects.nonNull(department.getParentId())) {
+ // 鏌ュ嚭鐖剁骇鐨勫眰绾�
+ List<Integer> fatherList = departmentMapper.getFather(department.getParentId());
+ department.setLevel(fatherList.size() + 1);
+ } else {
+ department.setLevel(1);
+ }
+ Integer update = departmentMapper.update(department);
+ return update;
}
@Override
@@ -48,28 +89,6 @@
department.setId(id);
department.setDeleted("1");
return departmentMapper.update(department);
- }
-
- @Transactional(rollbackFor = Exception.class)
- @Override
- public Integer update(Department department) {
-// userDepartmentMapper.removeByDepartmentId(department.getId());
- Department entity = departmentMapper.getById(department.getId());
- if (Objects.isNull(entity)) {
- throw new RuntimeException("璇ラ儴闂ㄤ笉瀛樺湪");
- }
- if (! CollectionUtils.isEmpty(department.getAdminId())) {
- List<BaseSelect> deptUserList = userDepartmentMapper.getDeptUserList(entity.getId());
- List<Integer> userIds = deptUserList.stream().map(BaseSelect::getId).collect(Collectors.toList());
- if (! CollectionUtils.isEmpty(userIds)) {
- // 鍏堟竻闄や箣鍓嶇殑绠$悊鍛樻爣璇�
- userMapper.clearDeptAdmin(userIds, entity.getId());
- }
- // 鏍囪瘑閮ㄩ棬绠$悊鍛�
- userMapper.updateDeptAdmin(department.getAdminId(), DeptAdminEnum.YES.getValue(), entity.getId());
- }
- Integer update = departmentMapper.update(department);
- return update;
}
@Override
@@ -108,8 +127,23 @@
}
@Override
+ public DepartmentEditVO getByIdVO(Integer id) {
+ Department dept = departmentMapper.getById(id);
+ DepartmentEditVO vo = new DepartmentEditVO();
+ BeanUtils.copyProperties(dept, vo);
+ if (Objects.nonNull(dept.getParentId())) {
+ // 鏌ュ嚭瀹屾暣鐨勭埗绾D
+ List<Integer> fatherList = departmentMapper.getFather(dept.getParentId());
+ Collections.reverse(fatherList);
+ vo.setParentIds(fatherList);
+ }
+ vo.setAdminId(userDepartmentMapper.selectDeptAdmin(id));
+ return vo;
+ }
+
+ @Override
public List<Department> gets(List<Integer> deptId) {
- return departmentMapper.gets(deptId);
+ return TreeUtils.build(departmentMapper.gets(deptId));
}
@Override
@@ -134,20 +168,20 @@
if (Objects.isNull(entity)) {
throw new RuntimeException("璇ラ儴闂ㄤ笉瀛樺湪");
}
+ List<BaseSelect> deptUserList = userDepartmentMapper.getDeptUserList(entity.getId());
+ List<Integer> userIds = deptUserList.stream().map(BaseSelect::getId).collect(Collectors.toList());
+ if (! CollectionUtils.isEmpty(userIds)) {
+ // 鍏堟竻闄や箣鍓嶇殑绠$悊鍛樻爣璇�
+ userMapper.clearDeptAdmin(userIds, entity.getId());
+ // 淇敼娌¤閫夋嫨鐨勭敤鎴峰苟涓斾笉鏄埆鐨勯儴闂ㄧ鐞嗗憳鐨勭敤鎴疯鑹蹭负1
+ userMapper.cancelUserDeptAdmin(userIds);
+ }
if (! CollectionUtils.isEmpty(form.getAdminIds())) {
- List<BaseSelect> deptUserList = userDepartmentMapper.getDeptUserList(entity.getId());
- List<Integer> userIds = deptUserList.stream().map(BaseSelect::getId).collect(Collectors.toList());
- if (! CollectionUtils.isEmpty(userIds)) {
- // 鍏堟竻闄や箣鍓嶇殑绠$悊鍛樻爣璇�
- userMapper.clearDeptAdmin(userIds, entity.getId());
- }
// 鏍囪瘑閮ㄩ棬绠$悊鍛�
userMapper.updateDeptAdmin(form.getAdminIds(), DeptAdminEnum.YES.getValue(), entity.getId());
+ // 淇敼琚�夋嫨鐨勭敤鎴蜂负閮ㄩ棬绠$悊鍛�
+ userMapper.updateUserDeptAdmin(form);
}
- // 淇敼琚�夋嫨鐨勭敤鎴蜂负閮ㄩ棬绠$悊鍛�
- userMapper.updateUserDeptAdmin(form);
- // 淇敼娌¤閫夋嫨鐨勭敤鎴峰苟涓斾笉鏄埆鐨勯儴闂ㄧ鐞嗗憳鐨勭敤鎴疯鑹蹭负1
- userMapper.cancelUserDeptAdmin(form);
}
@Override
--
Gitblit v1.8.0