Commit 48ac9b80 authored by suhuiguang's avatar suhuiguang

1.单位页面树,增加数量

parent 0be13336
......@@ -27,6 +27,7 @@ public class OrgMenuDto {
private List<OrgMenuDto> children;
private String bizOrgType;
private String bizOrgCode;
private Long total;
public Boolean getLeaf() {
return ObjectUtils.isEmpty(children);
......
package com.yeejoin.amos.boot.module.common.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
......@@ -78,4 +79,8 @@ public class OrgUsr extends BaseEntity {
@ApiModelProperty(value = "唯一编号")
private String code;
@ApiModelProperty(value = "数量")
@TableField(exist = false)
private Long total;
}
......@@ -101,4 +101,6 @@ public interface OrgUsrMapper extends BaseMapper<OrgUsr> {
List<OrgUsr> companyTreeByUserAndType(Map<String, Object> param);
OrgUsr queryBySequenceNbr(@Param("parentId") String parentId);
List<OrgUsr> companyDeptListWithPersonCount(Map<String, Object> param);
}
......@@ -303,4 +303,11 @@ public interface IOrgUsrService {
* @return list不分页
*/
List<OrgUsr> getListByBizOrgTypeCode(String orgTypes, String orgCode);
/**
* 公司部门树,包含用户数量统计
* @param reginParams 用户信息
* @return List<OrgMenuDto>
*/
List<OrgMenuDto> companyTreeByUserNumber(ReginParams reginParams);
}
......@@ -769,4 +769,15 @@ LEFT JOIN (
and usr.is_delete = false
</where>
</select>
<select id="companyDeptListWithPersonCount"
resultType="com.yeejoin.amos.boot.module.common.api.entity.OrgUsr">
SELECT
usr.*,
(select count(1) from cb_org_usr u where u.biz_org_type = 'PERSON' and u.is_delete = false and u.biz_org_code like CONCAT(usr.biz_org_code,'%')) as total
FROM
cb_org_usr usr
where
(usr.biz_org_type = 'COMPANY' OR usr.biz_org_type = 'DEPARTMENT')
and usr.is_delete = false
</select>
</mapper>
......@@ -378,10 +378,10 @@ public class OrgUsrController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/companyTreeByUserAndType", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据登录人及类型获取公司部门树", notes = "根据登录人及类型获取公司部门树")
public ResponseModel<List<OrgMenuDto>> companyTreeByUserAndType(@RequestParam(required = false) String type) throws Exception {
public ResponseModel<List<OrgMenuDto>> companyTreeByUserAndType() {
// 获取登陆人角色
ReginParams reginParams = getSelectedOrgInfo();
List<OrgMenuDto> menus = iOrgUsrService.companyTreeByUserAndType(reginParams, type);
List<OrgMenuDto> menus = iOrgUsrService.companyTreeByUserNumber(reginParams);
return ResponseHelper.buildResponse(menus);
}
......
......@@ -94,12 +94,10 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
public static List<OrgMenuDto> buildTreeParallel(List<OrgUsr> list) {
List<OrgMenuDto> menuList = list.stream().map(o -> {
OrgMenuDto menu = new OrgMenuDto(o.getSequenceNbr(), o.getBizOrgName(),
ObjectUtils.isEmpty(o.getParentId()) ? 0L : Long.valueOf(o.getParentId()), o.getBizOrgType(), false,
o.getBizOrgCode());
return menu;
}).collect(Collectors.toList());
List<OrgMenuDto> menuList = list.stream().map(o ->
new OrgMenuDto(o.getSequenceNbr(), o.getBizOrgName(),
ObjectUtils.isEmpty(o.getParentId()) ? 0L : Long.parseLong(o.getParentId()), o.getBizOrgType(), false,
o.getBizOrgCode()).setTotal(o.getTotal())).collect(Collectors.toList());
List<OrgMenuDto> result = new ArrayList<>();
......@@ -108,7 +106,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
Set<? extends Map.Entry<Long, ? extends OrgMenuDto>> entries = map.entrySet();
// 此处多线程,会value 出现null 的情况
// entries.parallelStream().forEach(entry -> {
entries.stream().forEach(entry -> {
entries.forEach(entry -> {
OrgMenuDto value = entry.getValue();
if (value != null) {
OrgMenuDto treeDto = map.get(value.getParentId());
......@@ -2071,4 +2069,12 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
}
return this.baseMapper.selectList(wrapper);
}
@Override
public List<OrgMenuDto> companyTreeByUserNumber(ReginParams reginParams) {
Map<String, Object> param = new HashMap<>();
param.put("bizOrgCode", reginParams.getPersonIdentity().getBizOrgCode());
List<OrgUsr> list = orgUsrMapper.companyDeptListWithPersonCount(param);
return buildTreeParallel(list);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment