| | |
| | | */ |
| | | package org.sxkj.system.service.impl; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.logging.log4j.util.Strings; |
| | | import org.springblade.core.log.exception.ServiceException; |
| | |
| | | import org.sxkj.system.vo.DeptVO; |
| | | import org.sxkj.system.wrapper.DeptWrapper; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | * |
| | | * @author Chill |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements IDeptService { |
| | | |
| | |
| | | |
| | | |
| | | @Override |
| | | public List<DeptVO> tree(String tenantId) { |
| | | return ForestNodeMerger.merge(baseMapper.tree(tenantId)); |
| | | public List<DeptVO> tree(String tenantId, String sysType) { |
| | | return ForestNodeMerger.merge(baseMapper.tree(tenantId, sysType)); |
| | | } |
| | | |
| | | @Override |
| | |
| | | return removeByIds(Func.toLongList(ids)); |
| | | } |
| | | |
| | | /** |
| | | * 提交部门信息 |
| | | * |
| | | * @param dept 部门信息 |
| | | * @return 是否操作成功 |
| | | */ |
| | | @Override |
| | | public boolean submit(Dept dept) { |
| | | log.info("提交数据:{}", JSON.toJSONString(dept)); |
| | | // 处理父节点信息 |
| | | if (Func.isEmpty(dept.getParentId())) { |
| | | dept.setTenantId(AuthUtil.getTenantId()); |
| | | dept.setParentId(BladeConstant.TOP_PARENT_ID); |
| | |
| | | String ancestors = parent.getAncestors() + StringPool.COMMA + dept.getParentId(); |
| | | dept.setAncestors(ancestors); |
| | | } |
| | | |
| | | // 处理ID重复问题:如果ID存在但记录不存在,设置ID为null让MyBatis-Plus重新生成 |
| | | if (dept.getId() != null) { |
| | | Dept existingDept = getById(dept.getId()); |
| | | if (existingDept == null) { |
| | | dept.setId(null); |
| | | } |
| | | } |
| | | |
| | | dept.setIsDeleted(BladeConstant.DB_NOT_DELETED); |
| | | |
| | | return saveOrUpdate(dept); |
| | | } |
| | | |
| | |
| | | public void importDept(List<DeptImportExcel> data, Boolean isCovered) { |
| | | List<Dept> list = new ArrayList<>(); |
| | | data.forEach(deptExcel -> { |
| | | // 校验必填字段 |
| | | if (deptExcel.getDeptName() == null || deptExcel.getDeptName().trim().isEmpty()) { |
| | | throw new RuntimeException("机构名称不能为空"); |
| | | } |
| | | if (deptExcel.getAreaCode() == null || deptExcel.getAreaCode().trim().isEmpty()) { |
| | | throw new RuntimeException("所属区划编码不能为空"); |
| | | } |
| | | if (deptExcel.getRemark() == null || deptExcel.getRemark().trim().isEmpty()) { |
| | | throw new RuntimeException("机构描述不能为空"); |
| | | } |
| | | if (deptExcel.getStatus() == null || deptExcel.getStatus().trim().isEmpty()) { |
| | | throw new RuntimeException("机构状态不能为空"); |
| | | } |
| | | // 转换数据 |
| | | Dept dept = BeanUtil.copy(deptExcel, Dept.class); |
| | | dept.setStatus(1); |
| | | dept.setIsDeleted(0); |
| | | dept.setCreateTime(new Date()); |
| | | dept.setUpdateTime(new Date()); |
| | | dept.setDeptNature(2); |
| | | dept.setDeptCategory(2); |
| | | dept.setSysType(String.valueOf(6)); |
| | | list.add(dept); |
| | | }); |
| | | if (isCovered) { |