package org.jeecg.modules.base.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import org.jeecg.common.system.vo.SelectTreeModel;
|
import org.jeecg.modules.base.entity.WorkCenterUser;
|
import org.jeecg.modules.base.mapper.WorkCenterUserMapper;
|
import org.jeecg.modules.base.service.IWorkCenterUserService;
|
import org.jeecg.modules.system.entity.SysDepart;
|
import org.jeecg.modules.system.mapper.SysDepartMapper;
|
import org.jeecg.modules.system.mapper.SysUserMapper;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
/**
|
* @Description: mom_base_work_center_user
|
* @Author: jeecg-boot
|
* @Date: 2022-12-06
|
* @Version: V1.0
|
*/
|
@Service
|
public class WorkCenterUserServiceImpl extends ServiceImpl<WorkCenterUserMapper, WorkCenterUser> implements IWorkCenterUserService {
|
@Autowired
|
private WorkCenterUserMapper workCenterUserMapper;
|
|
@Autowired
|
private SysDepartMapper sysDepartMapper;
|
|
@Override
|
public Page<Map<String,Object>> listByWorkCenterId(Page<Map<String, Object>> page, String workCenterId) {
|
return page.setRecords(workCenterUserMapper.listByWorkCenterId(page,workCenterId));
|
}
|
|
@Override
|
public Page<Map<String, Object>> getAddUserList(Page<Map<String, Object>> page, String departId, List<String> userIdList) {
|
|
return page.setRecords(workCenterUserMapper.getAddUserList(page,departId,userIdList));
|
}
|
|
@Override
|
public Page<Map<String, Object>> getUserList(Page<Map<String, Object>> page, List<String> userIdList, String departId) {
|
return page.setRecords(workCenterUserMapper.getUserList(page,userIdList,departId));
|
}
|
|
@Override
|
public List<SelectTreeModel> getDepartTreeByEnterpriseId(String enterpriseId, String departId,Integer version) {
|
return loadDepartTreeByParentId(enterpriseId,departId,version);
|
}
|
|
@Override
|
public Page<Map<String, Object>> listByEnterpriseId(Page<Map<String, Object>> page, String enterpriseId, List<String> userIdList,String departId) {
|
Set<String> departIds = getDepartIds(departId);
|
departIds.add(departId);
|
return page.setRecords(workCenterUserMapper.listByEnterpriseId(page,enterpriseId,userIdList,departIds.stream().collect(Collectors.toList())));
|
}
|
|
public List<SelectTreeModel> loadDepartTreeByParentId(String parentId,String departId,Integer version){
|
List<SelectTreeModel> list = workCenterUserMapper.getAddDepartTree(parentId,departId,version);
|
if(list.size()!=0){
|
for(SelectTreeModel selectTreeModel:list){
|
selectTreeModel.setChildren(loadDepartTreeByParentId(selectTreeModel.getKey(),departId,version));
|
}
|
}
|
return list;
|
}
|
public Set<String> getDepartIds(String parentId){
|
Set<String> departIds = new HashSet<>();
|
List <String> child = sysDepartMapper.selectList(
|
new QueryWrapper<SysDepart>()
|
.eq("parent_id",parentId)
|
.eq("del_flag",0)
|
).stream().map(SysDepart::getId).collect(Collectors.toList());
|
if(CollectionUtils.isNotEmpty(child)){
|
child.forEach(id->{
|
departIds.add(id);
|
departIds.addAll(getDepartIds(id));
|
});
|
}
|
return departIds;
|
|
}
|
|
}
|