From aded6d51dd8cc3b7d2b5a9a0be54378c5b2ee924 Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期三, 01 一月 2025 15:11:15 +0800 Subject: [PATCH] merge --- medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDepartmentServiceImpl.java | 120 ++++++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 92 insertions(+), 28 deletions(-) diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDepartmentServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDepartmentServiceImpl.java index a1a5eed..556c15a 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDepartmentServiceImpl.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysDepartmentServiceImpl.java @@ -1,9 +1,11 @@ package com.sinata.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.sinata.common.constant.CacheConstants; +import com.sinata.common.core.domain.entity.SysUser; import com.sinata.common.entity.PageDTO; import com.sinata.common.exception.ServiceException; import com.sinata.common.utils.BeanUtils; @@ -29,6 +31,7 @@ import com.sinata.system.service.SysUserDepartmentService; import lombok.RequiredArgsConstructor; import org.jetbrains.annotations.NotNull; +import org.springframework.context.annotation.Lazy; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -52,7 +55,7 @@ * @since 2024-12-02 */ @Service -@RequiredArgsConstructor +@RequiredArgsConstructor(onConstructor_ = {@Lazy}) public class SysDepartmentServiceImpl extends ServiceImpl<SysDepartmentMapper, SysDepartment> implements SysDepartmentService { private final SysUserDepartmentService sysUserDepartmentService; private final RedisTemplate<Object, Object> redisTemplate; @@ -123,6 +126,27 @@ public List<SysDepartmentVO> getRegionTree(String keyword) { List<SysDepartmentVO> root = new ArrayList<>(); SysDepartment currentDepartment = getMyDepartment(); + if (Objects.isNull(currentDepartment)) { + return root; + } + if (!currentDepartment.getOrgType().equals(DepartmentEnum.REGION.getCode())) { + return root; + } + Map<Long, List<SysDepartment>> childrenMap = getChildrenDepartmentByOrgType(currentDepartment, Collections.singletonList(DepartmentEnum.REGION.getCode())); + SysDepartmentVO sysDepartmentVO = fillChildrenTreeModel(currentDepartment, childrenMap); + root.add(sysDepartmentVO); + if (StringUtils.isNotBlank(keyword)) { + treeMatch(root, keyword); + } + return root; + } + @Override + public List<SysDepartmentVO> getRegionTree1(String keyword) { + SysUser sysUser = SecurityUtils.getLoginUser().getUser(); + + List<SysDepartmentVO> root = new ArrayList<>(); + SysDepartment sysDepartment = this.baseMapper.selectById(sysUser.getDepartmentId()); + SysDepartment currentDepartment = this.baseMapper.selectById(sysDepartment.getParentId()); if (Objects.isNull(currentDepartment)) { return root; } @@ -222,7 +246,7 @@ SysDepartment department = BeanUtils.copyBean(dto, SysDepartment.class); //获取部门树编码 department.setOrgType(DepartmentEnum.REGION.getCode()); - department.setTreeCode(getTreeCode(dto.getParentId())); + department.setTreeCode(generateTreeCode(dto.getParentId())); department.setOrgCode(getOrgCode(dto.getParentId(), DepartmentEnum.REGION.getCode())); save(department); } @@ -257,7 +281,7 @@ SysDepartment sysDepartment = getById(dto.getId()); if (!dto.getParentId().equals(sysDepartment.getParentId())) { //获取部门树编码 - department.setTreeCode(getTreeCode(dto.getParentId())); + department.setTreeCode(generateTreeCode(dto.getParentId())); } updateById(department); } @@ -269,7 +293,7 @@ * @return */ @Override - public String getTreeCode(Long parentId) { + public String generateTreeCode(Long parentId) { String treeId; String preTreeCode = ""; @@ -362,14 +386,22 @@ */ @Override public PageDTO<MedicalInstitutionVO> pageMedicalList(DepartmentQuery query) { - String treeCode = ""; + String treeCode; if (Objects.isNull(query.getDepartmentId())) { - SysDepartment myDepartment = getMyDepartment(); - if (Objects.nonNull(myDepartment)) { - treeCode = myDepartment.getTreeCode(); + SysDepartment department = getMyDepartment(); + treeCode = department.getTreeCode(); + } else { + SysDepartment department = getById(query.getDepartmentId()); + //如果是处置单位,则获取父级部门 + if (department.getOrgType().equals(DepartmentEnum.DISPOSAL_UNIT.getCode())) { + department = getDepartmentByParentId(department.getParentId()); } + treeCode = department.getTreeCode(); } - Page<MedicalInstitutionVO> page = baseMapper.pageMedicalList(new Page<>(query.getPageCurr(), query.getPageSize()), query.getDepartmentId(), query.getDepartmentName(), query.getContactPerson(), query.getContactPhone(), treeCode); + if (StringUtils.isBlank(treeCode)) { + return PageDTO.empty(0L, 0L); + } + Page<MedicalInstitutionVO> page = baseMapper.pageMedicalList(new Page<>(query.getPageCurr(), query.getPageSize()), query.getDepartmentName(), query.getContactPerson(), query.getContactPhone(), treeCode); return PageDTO.of(page); } @@ -399,7 +431,7 @@ throw new ServiceException("医疗机构已存在"); } SysDepartment department = BeanUtils.copyBean(dto, SysDepartment.class); - department.setTreeCode(getTreeCode(parent.getId())); + department.setTreeCode(generateTreeCode(parent.getId())); department.setOrgCode(getOrgCode(parent.getId(), DepartmentEnum.MEDICAL_INSTITUTION.getCode())); department.setOrgType(DepartmentEnum.MEDICAL_INSTITUTION.getCode()); //查询父级完整区域 @@ -411,6 +443,12 @@ sysDepartmentInfoService.save(sysDepartmentInfo); } + /** + * 根据父级区域id查询处置单位列表 + * + * @param id + * @return + */ @Override public List<DisposalUnitVO> getDisposalUnitListByParentId(Long id) { List<DisposalUnitVO> disposalUnitList = null; @@ -423,7 +461,7 @@ } /** - * 获取完成区域 + * 获取完整区域 * * @param department * @return @@ -473,7 +511,7 @@ } SysDepartment department = BeanUtils.copyBean(dto, SysDepartment.class); if (!department.getParentId().equals(sysDepartment.getParentId())) { - department.setTreeCode(getTreeCode(parent.getId())); + department.setTreeCode(generateTreeCode(parent.getId())); //查询父级完整区域 String region = getRegionName(parent); department.setRegion(region); @@ -522,12 +560,9 @@ */ @Override public PageDTO<DisposalUnitVO> pageDisposalUnitList(DepartmentQuery query) { - String treeCode = ""; - if (Objects.isNull(query.getDepartmentId())) { - SysDepartment myDepartment = getMyDepartment(); - if (Objects.nonNull(myDepartment)) { - treeCode = myDepartment.getTreeCode(); - } + String treeCode = getTreeCodeByDepartmentId(query.getDepartmentId()); + if (StringUtils.isBlank(treeCode)) { + return PageDTO.empty(0L, 0L); } Page<DisposalUnitVO> page = baseMapper.pageRegulatoryUnitList(new Page<>(query.getPageCurr(), query.getPageSize()), query.getDepartmentId(), query.getDepartmentName(), query.getContactPerson(), query.getContactPhone(), treeCode); return PageDTO.of(page); @@ -559,7 +594,7 @@ throw new ServiceException("处置单位已存在"); } SysDepartment department = BeanUtils.copyBean(dto, SysDepartment.class); - department.setTreeCode(getTreeCode(parent.getId())); + department.setTreeCode(generateTreeCode(parent.getId())); department.setOrgCode(getOrgCode(parent.getId(), DepartmentEnum.DISPOSAL_UNIT.getCode())); department.setOrgType(DepartmentEnum.DISPOSAL_UNIT.getCode()); //查询父级完整区域 @@ -606,7 +641,7 @@ SysDepartment department = BeanUtils.copyBean(dto, SysDepartment.class); if (!department.getParentId().equals(sysDepartment.getParentId())) { - department.setTreeCode(getTreeCode(parent.getId())); + department.setTreeCode(generateTreeCode(parent.getId())); //查询父级完整区域 String region = getRegionName(parent); department.setRegion(region); @@ -647,18 +682,16 @@ */ @Override public PageDTO<RegulatoryUnitVO> pageRegulatoryUnitList(DepartmentQuery query) { - String treeCode = ""; - if (Objects.isNull(query.getDepartmentId())) { - SysDepartment myDepartment = getMyDepartment(); - if (Objects.nonNull(myDepartment)) { - treeCode = myDepartment.getTreeCode(); - } + String treeCode = getTreeCodeByDepartmentId(query.getDepartmentId()); + if (StringUtils.isBlank(treeCode)) { + return PageDTO.empty(0L, 0L); } Page<SysDepartment> page = this.lambdaQuery().eq(Objects.nonNull(query.getDepartmentId()), SysDepartment::getParentId, query.getDepartmentId()) .likeRight(StringUtils.isNotBlank(treeCode), SysDepartment::getTreeCode, treeCode) .like(StringUtils.isNotEmpty(query.getDepartmentName()), SysDepartment::getDepartmentName, query.getDepartmentName()) .like(StringUtils.isNotBlank(query.getContactPerson()), SysDepartment::getContactPerson, query.getContactPerson()) .like(StringUtils.isNotBlank(query.getContactPhone()), SysDepartment::getContactPhone, query.getContactPhone()) + .eq(SysDepartment::getOrgType, DepartmentEnum.REGULATORY_UNIT.getCode()) .page(new Page<>(query.getPageCurr(), query.getPageSize())); return PageDTO.of(page, RegulatoryUnitVO.class); } @@ -688,7 +721,7 @@ throw new ServiceException("监管单位已存在"); } SysDepartment department = BeanUtils.copyBean(dto, SysDepartment.class); - department.setTreeCode(getTreeCode(parent.getId())); + department.setTreeCode(generateTreeCode(parent.getId())); department.setOrgCode(getOrgCode(parent.getId(), DepartmentEnum.REGULATORY_UNIT.getCode())); department.setOrgType(DepartmentEnum.REGULATORY_UNIT.getCode()); //查询父级完整区域 @@ -732,7 +765,7 @@ SysDepartment department = BeanUtils.copyBean(dto, SysDepartment.class); if (!department.getParentId().equals(sysDepartment.getParentId())) { - department.setTreeCode(getTreeCode(parent.getId())); + department.setTreeCode(generateTreeCode(parent.getId())); //查询父级完整区域 String region = getRegionName(parent); department.setRegion(region); @@ -768,4 +801,35 @@ } removeById(id); } + + /** + * 根据部门id获取树编码,如果为空则获取当前登录用户所在区域树编码 + * + * @param departmentId + * @return + */ + @Override + public String getTreeCodeByDepartmentId(Long departmentId) { + SysDepartment department; + if (Objects.isNull(departmentId)) { + department = getMyDepartment(); + } else { + department = getById(departmentId); + } + if (Objects.nonNull(department)) { + return department.getTreeCode(); + } + return null; + } + + /** + * 路线关联医院列表 + * + * @param id + * @return + */ + @Override + public List<MedicalInstitutionVO> getHospitalListByRouteId(Long id) { + return baseMapper.getHospitalListByRouteId(id); + } } -- Gitblit v1.7.1