diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/controller/TsInstitutionController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/controller/TsInstitutionController.java index 48c379de..f6ad667d 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/controller/TsInstitutionController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/controller/TsInstitutionController.java @@ -105,6 +105,12 @@ public class TsInstitutionController extends BaseController { return tsInstitutionService.getNext(institutionId,userName); } + @ApiOperation("topNum 获取人员上几级部门") + @GetMapping("/selectNowInst") + public List selectNowInst(String institutionId,String userName,String topNum){ + return tsInstitutionService.selectNowInst(institutionId,userName,topNum); + } + @GetMapping("/getNextTwo") public List getNextTwo(String userName){ return tsInstitutionService.getNextTwo(userName); @@ -112,8 +118,8 @@ public class TsInstitutionController extends BaseController { @ApiOperation("获得下一级的部门和人员") @GetMapping("/getNextById") - public List getNextById(String ids){ - return tsInstitutionService.getNextById(ids); + public List getNextById(String ids,Integer topNum){ + return tsInstitutionService.getNextById(ids,topNum); } @ApiOperation("获得第一级部门目录") diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/dao/TsInstitutionDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/dao/TsInstitutionDao.java index ee5884f0..2bbd36c0 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/dao/TsInstitutionDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/dao/TsInstitutionDao.java @@ -7,6 +7,7 @@ import com.adc.da.slrs.sarInstitution.entity.TsUserVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import org.springframework.stereotype.Repository; import java.util.List; @@ -18,6 +19,7 @@ import java.util.List; * @author zyl * @since 2021-06-22 */ +@Repository public interface TsInstitutionDao extends BaseMapper { /** * 根据部门id查询此部门的子一级部门 @@ -37,6 +39,8 @@ public interface TsInstitutionDao extends BaseMapper { List selectNextUsers(@Param("institutionIds") List institutionIds,@Param("userName") String userName); + List selectNowInst(@Param("institutionId") String institutionId,@Param("topNum") String topNum); + List selectNextUserByIds(@Param("ids") List ids); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/entity/TsInstitution.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/entity/TsInstitution.java index 208c0c21..8889a405 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/entity/TsInstitution.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/entity/TsInstitution.java @@ -48,6 +48,9 @@ public class TsInstitution extends BaseEntity { @ApiModelProperty(value = "子机构") private List children; + @TableField(exist = false) + private List topChildren; + @JsonIgnore @TableField(exist = false) @ApiModelProperty(value = "人员") diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/entity/TsUserVO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/entity/TsUserVO.java index e33d3e4c..6a0c536c 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/entity/TsUserVO.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/entity/TsUserVO.java @@ -126,4 +126,15 @@ public class TsUserVO { @ApiModelProperty(value = "单位Id") @TableField(exist = false) private String unitId; + + @ApiModelProperty(value = "上级单位 根据规则参数 返回上几级单位") + @TableField(exist = false) + private String topUnit; + + @ApiModelProperty(value = "上级单位Id 根据规则参数 返回上几级单位") + @TableField(exist = false) + private String topUnitId; + + @TableField(exist = false) + private List children; } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/ITsInstitutionService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/ITsInstitutionService.java index 1e079bd4..5c4f991e 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/ITsInstitutionService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/ITsInstitutionService.java @@ -39,11 +39,13 @@ public interface ITsInstitutionService extends IService { */ public List getNext(String institutionId,String userName); + public List selectNowInst(String institutionId,String userName,String topNum); + public List getNextTwo(String userName); public List getInstitutionIdToDept(String institutionIds,String userName); - public List getNextById(String ids); + public List getNextById(String ids,Integer topNum); /** * 获得第一级的部门 diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/impl/TsInstitutionServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/impl/TsInstitutionServiceImpl.java index 5ae6190b..217f872f 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/impl/TsInstitutionServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/impl/TsInstitutionServiceImpl.java @@ -14,6 +14,9 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import io.swagger.models.auth.In; +import org.apache.commons.lang3.StringUtils; +import org.bouncycastle.pqc.math.linearalgebra.IntUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -211,6 +214,10 @@ public class TsInstitutionServiceImpl extends ServiceImpl selectNowInst(String institutionId,String userName,String topNum){ + return tsInstitutionDao.selectNowInst(institutionId, topNum); + } + /** * 通过部门id获得这个部门下的下一级部门 * @return @@ -223,6 +230,7 @@ public class TsInstitutionServiceImpl extends ServiceImpl getNextById(String ids){ + @Override + public List getNextById(String ids,Integer topNum){ List strings=new ArrayList<>(Arrays.asList(ids.split(","))); List tsUsers=tsInstitutionDao.selectNextUserByIds(strings); List res=new ArrayList<>(); + List list = tsInstitutionDao.selectList(new QueryWrapper<>()); + if (null!=tsUsers && tsUsers.size()>0){ Map middle=new HashMap<>(); for (TsUserVO u:tsUsers) { @@ -269,9 +280,36 @@ public class TsInstitutionServiceImpl extends ServiceImpl map = list.stream().collect(Collectors.toMap(TsInstitution::getId, tsInstitution -> tsInstitution)); + for (TsUserVO userVO : res) { + List tsInstitutions = new ArrayList<>(); + List institutions = getTopChild(map,userVO.getInstitutionId(),topNum,tsInstitutions); + if(!institutions.isEmpty()){ + if(institutions.size() >= topNum){ + userVO.setTopUnitId(institutions.get(topNum).getId()); + userVO.setTopUnit(institutions.get(topNum).getName()); + }else { + userVO.setTopUnitId(institutions.get(institutions.size()-1).getId()); + userVO.setTopUnit(institutions.get(institutions.size()-1).getName()); + } + } + } + + } return res; } + public List getTopChild(Map map,String id,int topNum,List institutions){ + TsInstitution institution = map.get(id); + if( institution != null && StringUtils.isNotBlank(institution.getParentId())){ + institutions.add(institution); + getTopChild(map,institution.getParentId(),topNum,institutions); + } + return institutions; + } public List getFirst(){ //查询第一层机构 diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarInstitution/TsInstitutionMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarInstitution/TsInstitutionMapper.xml index dfde8487..4e26835d 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarInstitution/TsInstitutionMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarInstitution/TsInstitutionMapper.xml @@ -81,6 +81,11 @@ order by ts_institution.id + + +