package cn.timer.api.controller.zzgl; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; import javax.transaction.Transactional; import cn.timer.api.bean.kqmk.KqglAssoMonthPunchSummary; import cn.timer.api.bean.zzgl.*; import com.google.common.collect.Lists; import freemarker.template.utility.StringUtil; import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.lang.tree.TreeNodeConfig; import cn.hutool.core.lang.tree.TreeUtil; import cn.hutool.core.util.StrUtil; import cn.timer.api.aspect.lang.annotation.Log; import cn.timer.api.aspect.lang.enums.BusinessType; import cn.timer.api.bean.admin.AdminMenuTemplate; import cn.timer.api.bean.qyzx.QyzxAdminMenu; import cn.timer.api.bean.yggl.YgglMainEmp; import cn.timer.api.config.annotation.CurrentUser; import cn.timer.api.config.annotation.UserBean; import cn.timer.api.config.enuminterface.YgEnumInterface; import cn.timer.api.controller.kqgl.ClockInTool; import cn.timer.api.controller.zzgl.service.ZzglBmgwMService; import cn.timer.api.dao.yggl.YgglMainEmpMapper; import cn.timer.api.dao.zzgl.ZzglBmgwMMapper; import cn.timer.api.dao.zzgl.ZzglLogDgjlMapper; import cn.timer.api.dao.zzgl.ZzglMenuMapper; import cn.timer.api.dao.zzgl.ZzglPostMenuMapper; import cn.timer.api.dto.qyzx.MenuStructureDto; import cn.timer.api.dto.zzgl.DepartmentStaffDto; import cn.timer.api.dto.zzgl.LogDgjlsDto; import cn.timer.api.dto.zzgl.LogDgjlsQueryDto; import cn.timer.api.dto.zzgl.ObtainDepartmentDto; import cn.timer.api.dto.zzgl.UpEmpDeptDto; import cn.timer.api.dto.zzgl.ZzglPostMenuDto; import cn.timer.api.utils.Result; import cn.timer.api.utils.ResultUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @Api(tags = "2.组织管理") @RestController @Transactional @RequestMapping(value = "/zzgl", produces = { "application/json" }) public class ZzglController { @Autowired ZzglBmgwMService zzglBmgwMService; @Autowired ZzglBmgwMMapper zzglBmgwMMapper; @Autowired ZzglPostMenuMapper zzglPostMenuMapper; @Autowired ZzglLogDgjlMapper zzglLogDgjlMapper; @Autowired YgglMainEmpMapper ygglMainEmpMapper; /** * 架构树/架构图/导出 * * @param * @return */ @GetMapping(value = "/deptlist") @ApiOperation(value = "获取部门岗位", httpMethod = "GET", notes = "接口发布说明") public Result<List<ZzglBmgwM>> selectlistdept(@CurrentUser UserBean userBean) { Integer orgCode = userBean.getOrgCode(); List<ZzglBmgwM> zzglBmgwMs = new LambdaQueryChainWrapper<ZzglBmgwM>(zzglBmgwMMapper) .eq(ZzglBmgwM::getOrgCode, orgCode).list(); return ResultUtil.data(zzglBmgwMs); } /** * 获取部门岗位-升级版 * * @param * @return */ @GetMapping(value = "/deptlist_plus") @ApiOperation(value = "1.获取部门岗位-升级版", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 1) public Result<List<Tree<String>>> deptlistPlus(@CurrentUser UserBean userBean) { Integer orgCode = userBean.getOrgCode(); List<ZzglBmgwM> zzglBmgwMs = new LambdaQueryChainWrapper<ZzglBmgwM>(zzglBmgwMMapper) .eq(ZzglBmgwM::getOrgCode, orgCode).list(); // 构建node列表 // List<TreeNode<String>> nodeList = CollUtil.newArrayList(); // zzglBmgwMs.forEach(z -> { // nodeList.add(new TreeNode<>(Convert.toStr(z.getId()), Convert.toStr(z.getUpId()), z.getName(), 0)); // }); //配置 TreeNodeConfig treeNodeConfig = new TreeNodeConfig(); // 自定义属性名 都要默认值的 treeNodeConfig.setIdKey("id"); treeNodeConfig.setParentIdKey("upId"); // 最大递归深度 // treeNodeConfig.setDeep(10); //转换器 List<Tree<String>> treeNodes = TreeUtil.build(zzglBmgwMs, "0", treeNodeConfig, (treeNode, tree) -> { tree.setId(Convert.toStr(treeNode.getId())); tree.setParentId(Convert.toStr(treeNode.getUpId())); // tree.setWeight(treeNode.getWeight()); tree.setName(treeNode.getName()); // 扩展属性 ... tree.putExtra("leader", treeNode.getLeader()); tree.putExtra("type", treeNode.getType()); // tree.putExtra("other", new Object()); }); // System.out.println(treeNodes); // System.out.println(treeNodes.size()); // System.out.println(deep2(treeNodes)); return ResultUtil.data(treeNodes); } @GetMapping(value = "/deptlist_ultra") @ApiOperation(value = "获取部门岗位", httpMethod = "GET", notes = "接口发布说明") public Result<List<ZzglBmgwM>> deptlist_plusUltra(@CurrentUser UserBean userBean) { Integer orgCode = userBean.getOrgCode(); List<ZzglBmgwM> zzglBmgwMs = new LambdaQueryChainWrapper<ZzglBmgwM>(zzglBmgwMMapper) .eq(ZzglBmgwM::getOrgCode, orgCode).list(); zzglBmgwMs.forEach(z->{ if(z.getType()==1){ z.setUserList(new LambdaQueryChainWrapper<YgglMainEmp>(ygglMainEmpMapper).eq(YgglMainEmp::getBmgwId,z.getId()).list()); } }); return ResultUtil.data(zzglBmgwMs); } // 非递归,利用树的层次遍历 // public static int deep2(List<Tree<String>> treeNodes) { // if(treeNodes == null) // return 0; // int depth = 0; // for (Tree<String> tree : treeNodes) { // if (tree.getChildren() == null) { // depth = tree.size()-1 > depth ? tree.size()-1 : depth; // if (Convert.toInt(tree.get("type")) == 1) { // depth = depth > 1 ? depth - 1 : depth; // } // System.out.println("depth = "+ depth); // }else { // int temp = deep2(tree.getChildren()); // depth = temp > depth ? temp : depth; // System.out.println("temp = "+ temp); // } // } // // return depth; // } /** * 获取部门 * * @param * @return */ @GetMapping(value = "/depts_tree") @ApiOperation(value = "2.获取部门", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 1) public Result<List<Tree<String>>> deptsOnlyone(@CurrentUser UserBean userBean) { Integer orgCode = userBean.getOrgCode(); List<ZzglBmgwM> zzglBmgwMs = new LambdaQueryChainWrapper<ZzglBmgwM>(zzglBmgwMMapper) .eq(ZzglBmgwM::getOrgCode, orgCode).list(); if (CollectionUtil.isNotEmpty(zzglBmgwMs)) { zzglBmgwMs = zzglBmgwMs.stream().filter(z -> z.getType() == 0).collect(Collectors.toList()); if (CollectionUtil.isNotEmpty(zzglBmgwMs)) { //配置 TreeNodeConfig treeNodeConfig = new TreeNodeConfig(); // 自定义属性名 都要默认值的 treeNodeConfig.setIdKey("id"); treeNodeConfig.setParentIdKey("upId"); //转换器 List<Tree<String>> treeNodes = TreeUtil.build(zzglBmgwMs, "0", treeNodeConfig, (treeNode, tree) -> { tree.setId(Convert.toStr(treeNode.getId())); tree.setParentId(Convert.toStr(treeNode.getUpId())); tree.setName(treeNode.getName()); // 扩展属性 ... tree.putExtra("leader", treeNode.getLeader()); tree.putExtra("type", treeNode.getType()); }); return ResultUtil.data(treeNodes); } } return ResultUtil.success(); } @GetMapping(value = "/depts") @ApiOperation(value = "2.获取部门", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 2) public Result<List<ZzglBmgwM>> selectdepts(@CurrentUser UserBean userBean) { Integer orgCode = userBean.getOrgCode(); List<ZzglBmgwM> zzglBmgwMs = new LambdaQueryChainWrapper<ZzglBmgwM>(zzglBmgwMMapper) .eq(ZzglBmgwM::getOrgCode, orgCode) .eq(ZzglBmgwM::getType, YgEnumInterface.OrgType.DEPARTMENT) .list(); return ResultUtil.data(zzglBmgwMs); } /** * 岗位成员 * * @param 部门岗位id * @return */ @GetMapping(value = "/otherlistent/{id}") @ApiOperation(value = "获取岗位成员列表", httpMethod = "GET", notes = "接口发布说明") public Result<List<YgglMainEmp>> selectOtherlistent(@CurrentUser UserBean userBean, @PathVariable Integer id, @ApiParam("过滤参数") @RequestParam(value = "param", required = false, defaultValue = "") String param) { Integer orgCode = userBean.getOrgCode(); ArrayList<Integer> list = new ArrayList<Integer>(); List<ZzglBmgwM> zzglBmgwMs = new LambdaQueryChainWrapper<ZzglBmgwM>(zzglBmgwMMapper) .eq(ZzglBmgwM::getOrgCode, orgCode).list(); list.add(id); ZzglBmgwM.getDepts(list, id, zzglBmgwMs); ZzglBmgwM messsage = ZzglBmgwM.builder().build().selectOne(new QueryWrapper<ZzglBmgwM>().eq("id", id)); Integer lead = messsage.getLeader(); // 获取部门或岗位领导id if (list == null || list.size() == 0) { return ResultUtil.error("部门信息不存在,请先添加部门!"); } else { LambdaQueryWrapper<YgglMainEmp> ygglMainEmpsLambdaQueryWrapper = new LambdaQueryWrapper<>(); ygglMainEmpsLambdaQueryWrapper .select(YgglMainEmp::getId, YgglMainEmp::getEmpNum, YgglMainEmp::getName, YgglMainEmp::getPhone, YgglMainEmp::getBmgwId,YgglMainEmp::getCustomNum) .eq(YgglMainEmp::getOrgCode, orgCode) .and(i -> i.in(YgglMainEmp::getBmgwId, list.toArray())) .and(!StrUtil.hasBlank(param),w -> w.like(YgglMainEmp::getName, param).or().like(YgglMainEmp::getEmpNum, param).or().eq(YgglMainEmp::getPhone, param).or().like(YgglMainEmp::getCustomNum, param)) .last(lead != null, "order by if (emp_num='" + lead + "',0,1)"); List<YgglMainEmp> ygglMainEmps = YgglMainEmp.builder().build().selectList(ygglMainEmpsLambdaQueryWrapper); return ResultUtil.data(ygglMainEmps); } } /** * 获取调岗记录(weng) * * @param 部门岗位id * @return */ @PostMapping(value = "/listdgjl") @ApiOperation(value = "获取调岗记录(weng)", httpMethod = "POST", notes = "接口发布说明") public Result<Object> selectlistdgjl(@CurrentUser UserBean userBean, @RequestBody LogDgjlsQueryDto logDgjlsQueryDto) { Integer orgCode = userBean.getOrgCode(); ArrayList<Integer> list = new ArrayList<Integer>(); List<ZzglBmgwM> zzglBmgwMs = new LambdaQueryChainWrapper<ZzglBmgwM>(zzglBmgwMMapper) .eq(ZzglBmgwM::getOrgCode, orgCode).list(); list.add(logDgjlsQueryDto.getDeptId()); ZzglBmgwM.getDepts(list, logDgjlsQueryDto.getDeptId(), zzglBmgwMs); if (list == null || list.size() == 0) { return ResultUtil.error("部门信息不存在,请先添加部门!"); } else { logDgjlsQueryDto.setDeptIdList(list); logDgjlsQueryDto.setOrgCode(orgCode); IPage<LogDgjlsDto> page = new Page<LogDgjlsDto>( logDgjlsQueryDto.getCurrentPage() == null ? 1 : logDgjlsQueryDto.getCurrentPage(), logDgjlsQueryDto.getTotalPage() == null ? 10 : logDgjlsQueryDto.getTotalPage()); List<LogDgjlsDto> logDgjlDtos = zzglLogDgjlMapper.selectListdgjls(page, logDgjlsQueryDto); return ResultUtil.data(page, logDgjlDtos, "查询成功"); } } /** * 未设置岗位的成员 * * @return */ @GetMapping(value = "/listent") @ApiOperation(value = "未设置岗位的成员", httpMethod = "GET", notes = "接口发布说明") public Result<List<YgglMainEmp>> selectlistent(@CurrentUser UserBean userBean) { Integer orgCode = userBean.getOrgCode(); LambdaQueryWrapper<YgglMainEmp> ygglMainEmpsLambdaQueryWrapper = new LambdaQueryWrapper<>(); ygglMainEmpsLambdaQueryWrapper .select(YgglMainEmp::getId, YgglMainEmp::getEmpNum, YgglMainEmp::getName, YgglMainEmp::getPhone) .eq(YgglMainEmp::getOrgCode, orgCode) .and(i -> i.isNull(YgglMainEmp::getBmgwId).or().eq(YgglMainEmp::getBmgwId, 0)); // .and(lqw -> lqw.notIn(id != null, // YgglMainEmp::getBmgwId,Arrays.asList(id)).or().isNull(YgglMainEmp::getBmgwId)) List<YgglMainEmp> ygglMainEmps = YgglMainEmp.builder().build().selectList(ygglMainEmpsLambdaQueryWrapper); // List<ZzglBmgwMEmpDto> zzglBmgwMEmpDtos = // zzglBmgwMMapper.selectOtherListByOrgCode(orgCode,id); return ResultUtil.data(ygglMainEmps); } /** * 添加/修改部门岗位 * * @param * @return */ @PostMapping(value = "/dept") @ApiOperation(value = "添加/修改部门", httpMethod = "POST", notes = "接口发布说明") @Log(title = "添加/修改-部门", businessType = BusinessType.INSERT_UPDATE) public Result<ZzglBmgwM> adddept(@CurrentUser UserBean userBean, @RequestBody ZzglBmgwM zzglBmgwM) { Integer count = zzglBmgwMMapper.selectCount(new QueryWrapper<ZzglBmgwM>().lambda() .eq(ZzglBmgwM::getOrgCode, userBean.getOrgCode())); if (count <= 0) { // 根部门upId 默认为0 zzglBmgwM.setUpId(0); } ZzglBmgwM bmgwM = zzglBmgwMMapper.selectById(zzglBmgwM.getUpId()); if(bmgwM !=null) { if (bmgwM.getType() != 0) { return ResultUtil.error("部门名称上级不能为岗位"); } } if (zzglBmgwM.getLeader() == null && StrUtil.length(StrUtil.trim(zzglBmgwM.getName())) == 0) return ResultUtil.error("部门名称不能为空"); Boolean notId = zzglBmgwM.getId() == null; if (notId && zzglBmgwM.getType() == null) zzglBmgwM.setType((Integer) 0); zzglBmgwM.setOrgCode(userBean.getOrgCode()); zzglBmgwM.insertOrUpdate(); return notId ? ResultUtil.data(zzglBmgwM) : ResultUtil.success(); } /** * 添加/修改部门岗位 * * @param * @return */ @PostMapping(value = "/job") @ApiOperation(value = "添加/修改部门", httpMethod = "POST", notes = "接口发布说明") @Log(title = "添加/修改-部门", businessType = BusinessType.INSERT_UPDATE) public Result<ZzglBmgwM> addjob (@CurrentUser UserBean userBean, @RequestBody ZzglBmgwM zzglBmgwM) { if (zzglBmgwM.getLeader() == null && StrUtil.length(StrUtil.trim(zzglBmgwM.getName())) == 0) return ResultUtil.error("岗位名称不能为空"); Boolean notId = zzglBmgwM.getId() == null; if (notId && zzglBmgwM.getType() == null) zzglBmgwM.setType((Integer) 1); zzglBmgwM.setOrgCode(userBean.getOrgCode()); zzglBmgwM.insertOrUpdate(); return notId ? ResultUtil.data(zzglBmgwM) : ResultUtil.success(); } /** * 删除部门岗位 * * @param 部门岗位ids [1,2,3,4] * @return */ @DeleteMapping(value = "/dept") @ApiOperation(value = "删除部门岗位", httpMethod = "DELETE", notes = "接口发布说明") @Log(title = "删除-部门岗位", businessType = BusinessType.DELETE) public Result<Integer> deldepts(@CurrentUser UserBean userBean, @RequestBody List<Integer> ids) { YgglMainEmp ygglMainEmp = YgglMainEmp.builder().build(); zzglLogDgjlMapper.insertbydeldept(ids, userBean.getEmpNum()); ygglMainEmp.update(new UpdateWrapper<YgglMainEmp>().lambda() .set(YgglMainEmp::getBmgwId, null) .in(YgglMainEmp::getBmgwId, ids)); zzglBmgwMMapper.deleteBatchIds(ids); return ResultUtil.success(); } /** * 批量修改/删除员工部门 * * @param 部门岗位id * @return */ @PostMapping(value = "/empdept") @ApiOperation(value = "批量修改/删除员工部门", httpMethod = "POST", notes = "接口发布说明") public Result<Void> updatelistempdept(@CurrentUser UserBean userBean, @RequestBody UpEmpDeptDto upEmpDeptDto) { Integer dpetId = upEmpDeptDto.getDpetId(); List<Integer> empNums = upEmpDeptDto.getEmpNum(); YgglMainEmp ygglMainEmp = YgglMainEmp.builder().build(); KqglAssoMonthPunchSummary kqglAssoMonthPunchSummary = KqglAssoMonthPunchSummary.builder().build(); String comm=null; Integer type=null; if(dpetId == null || dpetId == 0 ){ comm="岗位删除员工"; type=4; }else if(upEmpDeptDto.getIsdg() == null){ comm="岗位添加员工"; type=5; }else{ if(upEmpDeptDto.getIsdg()==1) { comm = "员工调岗"; type = 2; } if(upEmpDeptDto.getIsdg()==6) { comm = upEmpDeptDto.getRemake(); type = 6; } if(upEmpDeptDto.getIsdg()==7) { comm = upEmpDeptDto.getRemake();; type = 7; } } // zzglLogDgjlMapper.insertbyaddemp(empNums, userBean.getEmpNum(), dpetId,null, userBean.getOrgCode(),comm,type); // 清楚 leader 主管标记 if ((dpetId == null || dpetId == 0) || upEmpDeptDto.getIsdg() == null) { ZzglBmgwM.builder().leader(null).build() .update(new UpdateWrapper<ZzglBmgwM>().lambda() .eq(ZzglBmgwM::getOrgCode, userBean.getOrgCode()) .in(ZzglBmgwM::getLeader, empNums)); } // ygglMainEmp.update(new UpdateWrapper<YgglMainEmp>().lambda() // .set(YgglMainEmp::getBmgwId, dpetId).set(YgglMainEmp::getBmgwName, upEmpDeptDto.getDept()) // .eq(YgglMainEmp::getOrgCode, userBean.getOrgCode()).in(YgglMainEmp::getEmpNum, empNums)); List<YgglMainEmp> ygglMainEmpList=YgglMainEmp.builder().build().selectList(new QueryWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getOrgCode,userBean.getOrgCode()).in(YgglMainEmp::getEmpNum,empNums)); Integer oId=null; for(YgglMainEmp y:ygglMainEmpList) { if (upEmpDeptDto.getZpglCompanyId() != null) { y.setZpglCompanyId(upEmpDeptDto.getZpglCompanyId()); } if (upEmpDeptDto.getZpglCompanyId() != null) { y.setZpglGzddId(upEmpDeptDto.getZpglGzddId()); } if (upEmpDeptDto.getZpglCompanyId() != null) { y.setZpglZjId(upEmpDeptDto.getZpglZjId()); } if (dpetId != null) { oId = y.getBmgwId(); y.setBmgwId(dpetId); } y.updateById(); zzglLogDgjlMapper.insertbyaddemp(empNums, userBean.getEmpNum(), dpetId, oId, userBean.getOrgCode(), comm, type); } // 调岗 同步部门 和 岗位信息 打卡月汇总 if(!StringUtils.isEmpty(upEmpDeptDto.getIsdg()) && upEmpDeptDto.getIsdg().intValue()==1){ kqglAssoMonthPunchSummary.update(new UpdateWrapper<KqglAssoMonthPunchSummary>().lambda() .set(KqglAssoMonthPunchSummary::getDept, upEmpDeptDto.getDept()).set(KqglAssoMonthPunchSummary::getPost, upEmpDeptDto.getPost()) .eq(KqglAssoMonthPunchSummary::getOrgCode, userBean.getOrgCode()).in(KqglAssoMonthPunchSummary::getNum, empNums) ); } return ResultUtil.success(); } /** * 岗位权限 * * @param 部门岗位id * @return */ @GetMapping(value = "/auth/{id}") @ApiOperation(value = "获取岗位岗位权限", httpMethod = "GET", notes = "接口发布说明") public Result<List<ZzglAuth>> auth(@CurrentUser UserBean userBean, @PathVariable Integer id) { Integer orgCode = userBean.getOrgCode(); ArrayList<Integer> list = new ArrayList<Integer>(); List<ZzglBmgwM> zzglBmgwMs = new LambdaQueryChainWrapper<ZzglBmgwM>(zzglBmgwMMapper) .eq(ZzglBmgwM::getOrgCode, orgCode).list(); ZzglBmgwM.getupDepts(list, id, zzglBmgwMs); if (list == null || list.size() == 0) { return ResultUtil.error("部门信息不存在,请先添加部门!"); } else { LambdaQueryWrapper<ZzglAuth> wp = new LambdaQueryWrapper<>(); wp.select(ZzglAuth::getMenuId, ZzglAuth::getBmgwId).eq(ZzglAuth::getOrgCode, orgCode) .and(i -> i.in(ZzglAuth::getBmgwId, list.toArray())); List<ZzglAuth> zas = ZzglAuth.builder().build().selectList(wp); List<MenuStructureDto> mestrs = new ArrayList<MenuStructureDto>(); List<QyzxAdminMenu> qyme = QyzxAdminMenu.builder().build().selectList(new QueryWrapper<QyzxAdminMenu>().lambda().eq(QyzxAdminMenu::getOrgCode, userBean.getOrgCode()).orderByAsc(QyzxAdminMenu::getSortNumber)); String[] zdy = new String[qyme.size()]; int i = 0; for(QyzxAdminMenu me : qyme) { MenuStructureDto metr = MenuStructureDto.builder().build(); metr.setMenuCode(me.getMenuCode()); metr.setMenuName(me.getMenuName()); metr.setSortNumber(me.getSortNumber()); AdminMenuTemplate adte = AdminMenuTemplate.builder().build().selectOne(new QueryWrapper<AdminMenuTemplate>().lambda().eq(AdminMenuTemplate::getMenuCode, me.getMenuCode())); metr.setPath(adte.getPath()); mestrs.add(metr); zdy[i] = me.getMenuCode(); i++; } // List<AdminMenuTemplate> adtes = AdminMenuTemplate.builder().build().selectList(new QueryWrapper<AdminMenuTemplate>().lambda().eq(AdminMenuTemplate::getEnable, 1).orderByAsc(AdminMenuTemplate::getSortNumber)); for(AdminMenuTemplate adm : adtes) { if(!ClockInTool.useArrayUtils(ClockInTool.deleteArrayNull(zdy), adm.getMenuCode())) { if(adm.getDistribution() == 0 && userBean.getOrgCode() == 3) { MenuStructureDto metr = MenuStructureDto.builder().build(); metr.setMenuCode(adm.getMenuCode()); metr.setMenuName(adm.getMenuName()); metr.setSortNumber(adm.getSortNumber()); metr.setPath(adm.getPath()); mestrs.add(metr); }else if(adm.getDistribution() == 1) { MenuStructureDto metr = MenuStructureDto.builder().build(); metr.setMenuCode(adm.getMenuCode()); metr.setMenuName(adm.getMenuName()); metr.setSortNumber(adm.getSortNumber()); metr.setPath(adm.getPath()); mestrs.add(metr); } } } List<ZzglAuth> zas_ = new ArrayList<ZzglAuth>(); String[] qhf = new String[mestrs.size()]; int y = 0; for(MenuStructureDto metu : mestrs) { ZzglAuth zd = ZzglAuth.builder().build(); for(ZzglAuth zg : zas) { if(metu.getPath().equals(zg.getMenuId())) { zd.setBmgwId(zg.getBmgwId()); zd.setMenuId(zg.getMenuId()); zas_.add(zd); qhf[y] = zg.getMenuId(); y++; break; } } } for(ZzglAuth zg : zas) { if(!ClockInTool.useArrayUtils(ClockInTool.deleteArrayNull2(qhf), zg.getMenuId())) { ZzglAuth zd = ZzglAuth.builder().build(); zd.setBmgwId(zg.getBmgwId()); zd.setMenuId(zg.getMenuId()); zas_.add(zd); } } return ResultUtil.data(zas_); } } /** * 批量修改/删除岗位权限 * * @param 部门岗位id * @param 菜单ids * @return */ @PostMapping(value = "/auth/{id}") @ApiOperation(value = "批量修改/删除岗位权限", httpMethod = "POST", notes = "接口发布说明") public Result<Void> auth(@CurrentUser UserBean userBean, @PathVariable Integer id, @RequestBody List<String> ids) { Integer orgCode = userBean.getOrgCode(); ZzglAuth.builder().build().delete( new QueryWrapper<ZzglAuth>().lambda().eq(ZzglAuth::getOrgCode, orgCode).eq(ZzglAuth::getBmgwId, id)); ids.forEach(o -> { ZzglAuth za = ZzglAuth.builder().build(); za.setBmgwId(id); za.setOrgCode(orgCode); za.setMenuId(o); za.insert(); }); return ResultUtil.success(); } @Autowired private ZzglMenuMapper zzglMenuMapper; /** * 获取-菜单权限列表 * * @return */ @GetMapping(value = "/menu") @ApiOperation(value = "获取-菜单权限列表", httpMethod = "GET", notes = "接口发布说明") public Result<List<ZzglMenu>> selectMenu(@CurrentUser UserBean userBean) { List<ZzglMenu> list = zzglMenuMapper.selectList(null); return ResultUtil.data(list); } /** * 获取-菜单权限-搜索 * * @return */ // @PostMapping(value = "/querymenu") // @ApiOperation(value = "获取-菜单权限-搜索", httpMethod = "POST", notes = "接口发布说明") // public Result<List<Tree<String>>> queryMenu(@CurrentUser UserBean userBean,@RequestBody ZzglMenuQueryDto zzglMenuQueryDto) { // // List<ZzglMenu> list = zzglMenuMapper.queryList(zzglMenuQueryDto); // // //配置 // TreeNodeConfig treeNodeConfig = new TreeNodeConfig(); // // 自定义属性名 都要默认值的 //// treeNodeConfig.setIdKey("id"); //// treeNodeConfig.setParentIdKey("upId"); // treeNodeConfig.setNameKey("menuName"); // // 最大递归深度 //// treeNodeConfig.setDeep(10); // // //转换器 // List<Tree<String>> treeNodes = TreeUtil.build(list, "0", treeNodeConfig, // (treeNode, tree) -> { // tree.setId(Convert.toStr(treeNode.getMenuId())); // tree.setParentId(Convert.toStr(treeNode.getParentId())); //// tree.setWeight(treeNode.getWeight()); // tree.setName(treeNode.getMenuName()); // // 扩展属性 ... // tree.putExtra("icon", treeNode.getIcon()); // tree.putExtra("isFrame", treeNode.getIsFrame()); // tree.putExtra("menuType", treeNode.getMenuType()); // tree.putExtra("orderNum", treeNode.getOrderNum()); // tree.putExtra("path", treeNode.getPath()); // tree.putExtra("perms", treeNode.getPerms()); // tree.putExtra("remark", treeNode.getRemark()); // tree.putExtra("visible", treeNode.getVisible()); //// tree.putExtra("other", new Object()); // }); // // return ResultUtil.data(treeNodes); // } /** * 新增-菜单权限 * * @param 部门岗位id * @return */ @PostMapping(value = "/menu") @ApiOperation(value = "新增-菜单权限", httpMethod = "POST", notes = "接口发布说明") public Result<List<ZzglMenu>> insertPostMenus(@Validated @RequestBody ZzglMenu zzglMenu) { Integer conut = zzglMenuMapper.selectCount(new QueryWrapper<ZzglMenu>().lambda() .eq(ZzglMenu::getMenuId, zzglMenu.getParentId())); if (conut <= 0) { return ResultUtil.error("上级权限不存在!"); } return zzglMenu.insert() ? ResultUtil.success() : ResultUtil.error(); } /** * 删除-菜单权限 * * @param 部门岗位id * @return */ @DeleteMapping(value = "/menu/{id}") @ApiOperation(value = "删除-菜单权限", httpMethod = "DELETE", notes = "接口发布说明") public Result<List<ZzglMenu>> deletePostMenus(@Validated @RequestBody Integer id) { return zzglMenuMapper.deleteById(id) > 0 ? ResultUtil.success() : ResultUtil.error(); } /** * 修改-菜单权限 * * @param 部门岗位id * @return */ @PutMapping(value = "/menu/{id}") @ApiOperation(value = "修改-菜单权限", httpMethod = "PUT", notes = "接口发布说明") public Result<List<ZzglMenu>> updatePostMenus(@Validated @RequestBody ZzglMenu zzglMenu) { return zzglMenu.updateById() ? ResultUtil.success() : ResultUtil.error(); } /** * 获取-该岗位的菜单权限 * * @param 部门岗位id * @return */ @GetMapping(value = "/menu/{id}") @ApiOperation(value = "获取-该岗位的菜单权限", httpMethod = "GET", notes = "接口发布说明") public Result<List<Integer>> selectMenuByPostId(@CurrentUser UserBean userBean,@PathVariable Integer id) { return ResultUtil.data(zzglBmgwMService.selectMenuByPostId(id)); } /** * 修改-该岗位的菜单权限 * * @param 部门岗位id * @return */ @PutMapping(value = "/post_menu") @ApiOperation(value = "修改-该岗位的菜单权限", httpMethod = "PUT", notes = "接口发布说明") public Result<List<ZzglMenu>> updatePostMenus(@CurrentUser UserBean userBean,@RequestBody ZzglPostMenuDto zzglPostMenuDto) { Integer delCount = zzglPostMenuMapper.delete(new QueryWrapper<ZzglPostMenu>().lambda() .eq(ZzglPostMenu::getBmgwId, zzglPostMenuDto.getId())); Integer updateCount = zzglPostMenuMapper.insertPostMenus(zzglPostMenuDto.getId(),zzglPostMenuDto.getMenus()); return ResultUtil.success(); } @GetMapping(value = "/appdeptlist") @ApiOperation(value = "APP获取部门岗位", httpMethod = "GET", notes = "接口发布说明") public Result<Object> selectapplistdept(@CurrentUser UserBean userBean) { Integer orgCode = userBean.getOrgCode(); List<ObtainDepartmentDto> tmen = new ArrayList<ObtainDepartmentDto>(); List<ZzglBmgwM> zzglbmgwms = new LambdaQueryChainWrapper<ZzglBmgwM>(zzglBmgwMMapper) .eq(ZzglBmgwM::getOrgCode, userBean.getOrgCode()).eq(ZzglBmgwM::getType, 0).list(); for(ZzglBmgwM gw : zzglbmgwms) { ObtainDepartmentDto tm = ObtainDepartmentDto.builder().build(); BeanUtil.copyProperties(gw, tm); List<DepartmentStaffDto> destff = ygglMainEmpMapper.DepartmentStaff(orgCode,gw.getId()); tm.setUser(destff); tmen.add(tm); } return ResultUtil.data(tmen); } @GetMapping(value = "/dgListByUser") @ApiOperation(value = "获取异动记录", httpMethod = "GET", notes = "接口发布说明") public Result<Object> dgListByUser(@CurrentUser UserBean userBean,@RequestParam(value = "empNum", required = false, defaultValue = "") Integer empNum) { List<ZzglLogDgjl> zzglLogDgjlList=zzglLogDgjlMapper.selectListByUser(userBean.getOrgCode(),empNum); return ResultUtil.data(zzglLogDgjlList); } }