From 5506edbe54883b31db3cc8e4a1d9d0795a18a3c9 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期五, 27 十二月 2024 14:37:54 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/2.0.1' into 2.0.1 --- server/service/src/main/java/com/doumee/service/business/impl/CompanyDepartmentServiceImpl.java | 84 +++++++++++++++++++++++++++++++++++++---- 1 files changed, 75 insertions(+), 9 deletions(-) diff --git a/server/service/src/main/java/com/doumee/service/business/impl/CompanyDepartmentServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/CompanyDepartmentServiceImpl.java index ecff560..b6741d2 100644 --- a/server/service/src/main/java/com/doumee/service/business/impl/CompanyDepartmentServiceImpl.java +++ b/server/service/src/main/java/com/doumee/service/business/impl/CompanyDepartmentServiceImpl.java @@ -1,6 +1,5 @@ package com.doumee.service.business.impl; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.model.LoginUserInfo; @@ -9,9 +8,9 @@ import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; import com.doumee.dao.business.CompanyDepartmentMapper; +import com.doumee.dao.business.dto.UpdateSortDTO; import com.doumee.dao.business.model.Company; import com.doumee.dao.business.model.CompanyDepartment; -import com.doumee.dao.business.model.Member; import com.doumee.dao.system.SystemUserMapper; import com.doumee.dao.system.model.SystemUser; import com.doumee.dao.system.vo.DepartmentTree; @@ -29,7 +28,7 @@ import java.util.Date; import java.util.List; -import java.util.UUID; +import java.util.Objects; /** * 浼佷笟淇℃伅琛⊿ervice瀹炵幇 @@ -43,11 +42,13 @@ private CompanyDepartmentMapper companyDepartmentMapper; @Autowired private SystemUserMapper systemUserMapper; + @Override public List<CompanyDepartment> departTree(Integer type){ + LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); MPJLambdaWrapper<CompanyDepartment> queryWrapper = new MPJLambdaWrapper<>(); - queryWrapper.selectAll(Company.class); - queryWrapper.select("t2.realname",CompanyDepartment::getEditorName); + queryWrapper.selectAll(CompanyDepartment.class); + queryWrapper.select("t3.realname",CompanyDepartment::getEditorName); queryWrapper.select("t2.realname",CompanyDepartment::getHeadName); queryWrapper.select("t2.mobile",CompanyDepartment::getHeadPhone); queryWrapper.select("t1.name",CompanyDepartment::getParentName); @@ -58,12 +59,76 @@ queryWrapper.leftJoin(SystemUser.class,SystemUser::getId,CompanyDepartment::getEditor); queryWrapper.eq(CompanyDepartment::getIsdeleted,Constants.ZERO); queryWrapper.eq(type!=null,CompanyDepartment::getType,type); - queryWrapper.orderByAsc(true,"t.sortnum"); + //濡傛灉鏄紒涓�/鍟嗘埛 鍙煡璇㈣嚜韬粍缁囦笅鐨勬暟鎹� + if( !Constants.equalsInteger(type,Constants.ZERO)){ + queryWrapper.eq(CompanyDepartment::getCompanyId,loginUserInfo.getCompanyId()); + }else{ + queryWrapper.eq(CompanyDepartment::getType,type); + } + queryWrapper.last(" order by t.sortnum asc "); List<CompanyDepartment> companyList = companyDepartmentMapper.selectJoinList(CompanyDepartment.class,queryWrapper); DepartmentTree treeBuild = new DepartmentTree(companyList); companyList = treeBuild.buildTree(); return companyList; } + + + @Override + public void updateSort(UpdateSortDTO dto) { + CompanyDepartment companyDepartment = companyDepartmentMapper.selectById(dto.getId()); + if(Objects.isNull(companyDepartment)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + + List<CompanyDepartment> companyDepartmentPool; + if (companyDepartment.getParentId() == null) { + companyDepartmentPool = companyDepartmentMapper.selectList(new QueryWrapper<CompanyDepartment>().lambda() + .eq(CompanyDepartment::getIsdeleted,Constants.ZERO) + .isNull(CompanyDepartment::getParentId) + .orderByAsc(CompanyDepartment::getSortnum) + ); + } else { + companyDepartmentPool = companyDepartmentMapper.selectList(new QueryWrapper<CompanyDepartment>().lambda() + .eq(CompanyDepartment::getIsdeleted,Constants.ZERO) + .eq(CompanyDepartment::getParentId,companyDepartment.getParentId()) + .orderByAsc(CompanyDepartment::getSortnum) + ); + } + int currentMenuIndex = 0; + for (int i = 0; i < companyDepartmentPool.size(); i++) { + if (companyDepartmentPool.get(i).getId().equals(dto.getId())) { + currentMenuIndex = i; + break; + } + } + // 涓婄Щ + if ("top".equals(dto.getDirection())) { + if (currentMenuIndex - 1 < 0) { + return; + } + CompanyDepartment preMenu = companyDepartmentPool.get(currentMenuIndex - 1); + companyDepartmentPool.remove(currentMenuIndex - 1); + companyDepartmentPool.add(currentMenuIndex, preMenu); + } + // 涓嬬Щ + else { + if (currentMenuIndex + 1 > companyDepartmentPool.size() - 1) { + return; + } + CompanyDepartment nextMenu = companyDepartmentPool.remove(currentMenuIndex + 1); + companyDepartmentPool.add(currentMenuIndex, nextMenu); + } + for (int i = 0; i < companyDepartmentPool.size(); i++) { + companyDepartmentPool.get(i).setSortnum(i); + } + + for (CompanyDepartment updCompanyDepartment:companyDepartmentPool) { + companyDepartmentMapper.updateById(updCompanyDepartment); + } + + } + + @Override public Integer create(CompanyDepartment company) { @@ -71,7 +136,7 @@ if(StringUtils.isBlank(company.getName())){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } - if(company.getType()==null || !(company.getType() ==0 || company.getType() ==1)){ + if(company.getType()==null || !(company.getType() ==0 || company.getType() ==1 || company.getType() ==2)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "瀵逛笉璧凤紝缁勭粐绫诲瀷涓嶆纭紝璇锋寜瑕佹眰濉啓~"); } int type = Constants.ZERO;//榛樿骞冲彴缁勭粐 @@ -247,9 +312,8 @@ //鏇存柊鐨刢ompanyPath String newName = model.getNamePath().replace(model.getName(),company.getName()); companyDepartmentMapper.update(null,new UpdateWrapper<CompanyDepartment>().lambda() - .setSql("company_name_path=REPLACE(name_path,'"+ model.getNamePath()+"','"+newName+"')") + .setSql("name_path = REPLACE(name_path,'"+ model.getNamePath()+"','"+newName+"')") .likeRight(CompanyDepartment::getIdPath,model.getIdPath())); - } @@ -362,4 +426,6 @@ QueryWrapper<CompanyDepartment> wrapper = new QueryWrapper<>(companyDepartment); return companyDepartmentMapper.selectCount(wrapper); } + + } -- Gitblit v1.9.3