部门组织权限修改

This commit is contained in:
pengjie 2024-04-13 18:34:33 +08:00
parent 05b773ce8e
commit b35ae41c5b
3 changed files with 44 additions and 2 deletions

View File

@ -1,14 +1,20 @@
package com.zhgd.xmgl.modules.basicdata.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.wflow.bean.do_.DeptDo;
import com.wflow.bean.do_.RoleDo;
import com.wflow.bean.do_.UserDeptDo;
import com.wflow.bean.do_.UserDo;
import com.wflow.bean.entity.WflowModelPerms;
import com.wflow.bean.entity.WflowModels;
import com.wflow.bean.vo.ModelGroupVo;
import com.wflow.bean.vo.OrgTreeVo;
import com.wflow.bean.vo.UserVo;
import com.wflow.mapper.WflowModelPermsMapper;
import com.wflow.mapper.WflowModelsMapper;
import com.wflow.service.OrgRepositoryService;
import com.zhgd.xmgl.modules.basicdata.entity.BaseRoleUser;
import com.zhgd.xmgl.modules.basicdata.entity.Company;
@ -43,9 +49,45 @@ public class FlowOrgRepositoryServiceImpl implements OrgRepositoryService {
@Autowired
private XzProjectOrgMapper xzProjectOrgMapper;
@Autowired
private WflowModelPermsMapper modelPermsMapper;
@Autowired
private WflowModelsMapper wflowModelsMapper;
@Override
public List<ModelGroupVo.Form> getModelsByPerm(String userId) {
return null;
List<ModelGroupVo.Form> list = new ArrayList<>();
Long xzProjectOrgId = systemUserMapper.selectById(userId).getXzProjectOrgId();
// XzProjectOrg xzProjectOrg = xzProjectOrgMapper.selectById(xzProjectOrgId);
// List<XzProjectOrg> orgList = new ArrayList<>();
// getList(xzProjectOrg.getParentId(), orgList);
// List<Long> collect = orgList.stream().map(o -> o.getId()).collect(Collectors.toList());
// collect.add(xzProjectOrgId);
// List<String> deptFormIds = modelPermsMapper.selectList(Wrappers.<WflowModelPerms>lambdaQuery().eq(WflowModelPerms::getPermType, "dept")
// .in(WflowModelPerms::getOrgId, collect)).stream().map(m -> m.getFormId()).collect(Collectors.toList());
if (xzProjectOrgId == null) {
return list;
}
List<String> userOrgIds = modelPermsMapper.selectList(Wrappers.<WflowModelPerms>lambdaQuery().eq(WflowModelPerms::getPermType, "user")
.eq(WflowModelPerms::getOrgId, userId)).stream().map(m -> m.getOrgId()).collect(Collectors.toList());
userOrgIds.add(xzProjectOrgId.toString());
List<String> formIds = modelPermsMapper.selectList(Wrappers.<WflowModelPerms>lambdaQuery().in(WflowModelPerms::getOrgId, userOrgIds)).stream().map(w -> w.getFormId()).collect(Collectors.toList());
List<String> permIds = modelPermsMapper.selectList(null).stream().map(w -> w.getFormId()).collect(Collectors.toList());
List<WflowModels> wflowModels = wflowModelsMapper.selectList(Wrappers.<WflowModels>lambdaQuery().in(WflowModels::getFormId, formIds).or().notIn(WflowModels::getFormId, permIds));
for (int i = 0; i < wflowModels.size(); i++) {
ModelGroupVo.Form form = JSON.parseObject(JSONObject.toJSONString(wflowModels.get(i)), ModelGroupVo.Form.class);
list.add(form);
}
return list;
}
private void getList(Long deptId, List<XzProjectOrg> orgList){
XzProjectOrg parentId = xzProjectOrgMapper.selectOne(Wrappers.<XzProjectOrg>lambdaQuery().eq(XzProjectOrg::getId, deptId));
if (parentId != null) {
getList(parentId.getParentId(), orgList);
orgList.add(parentId);
}
}
@Override

View File

@ -32,6 +32,6 @@ public interface XzProjectOrgMapper extends BaseMapper<XzProjectOrg> {
* @param deptId 父部门
* @return 子部门列表type字段固定返回固定值 dept
*/
@Select("SELECT id id, dept_name `name`, 'dept' AS 'type' FROM xz_project_org WHERE parent_id=#{deptId} AND project_sn = #{projectSn}")
@Select("SELECT id id, dept_name `name`, 'dept' AS 'type' FROM xz_project_org WHERE parent_id=#{deptId} AND project_sn = #{projectSn} AND status = 0")
List<OrgTreeVo> selectByDept(@Param("deptId") String deptId, @Param("projectSn") String projectSn);
}