From 0e41f08327eca8ee4c9874bd5c8d32fd8a372b9d Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 9 Nov 2022 18:50:39 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=E6=90=9C=E7=B4=A2=E4=B8=8B=E6=8B=89=E6=A1=86=E3=80=81?= =?UTF-8?q?=E9=9B=86=E5=9B=A2=E8=B4=9F=E8=B4=A3=E4=BA=BABUG=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/OrgChartServiceImpl.java | 79 +++++++++++++++---- 1 file changed, 65 insertions(+), 14 deletions(-) diff --git a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java index 269ed0b4..0a39f75d 100644 --- a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java @@ -50,30 +50,30 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { item.put("companyname", rs.getString("companyname")); fclasslist.add(item); } - String sql = "select distinct id, fnumber, fname, ftype from jcl_org_map where ftype in (0, 1) order by ftype , id "; + String sql = "select distinct id, fnumber, fname, ftype from jcl_org_map where ftype in (0, 1) order by ftype , id,fdateend desc "; // 分部分权过滤 DetachUtil detachUtil = new DetachUtil(user.getUID()); if (detachUtil.isDETACH()) { String jclRoleLevels = detachUtil.getJclRoleLevels(); if (StringUtils.isNotBlank(jclRoleLevels)) { - sql = "select distinct id, fnumber, fname, ftype from jcl_org_map where (ftype = 0 or (ftype = 1 and fobjid in(" + jclRoleLevels + "))) order by ftype , id"; + sql = "select distinct id, fnumber, fname, ftype from jcl_org_map where (ftype = 0 or (ftype = 1 and fobjid in(" + jclRoleLevels + "))) order by ftype , id,fdateend desc"; } else { - sql = "select distinct id, fnumber, fname, ftype from jcl_org_map where ftype = 0 order by ftype , id"; + sql = "select distinct id, fnumber, fname, ftype from jcl_org_map where ftype = 0 order by ftype , id,fdateend desc"; } } rs.executeQuery(sql); - List> companylist = new ArrayList<>(); + Set companySet = new HashSet<>(); while (rs.next()) { - Map item = new HashMap<>(); - item.put("id", rs.getString("id")); - item.put("fnumber", rs.getString("fnumber")); - item.put("fname", rs.getString("fname")); - companylist.add(item); + OrgSelectItem item = new OrgSelectItem(); + item.setId(rs.getString("id")); + item.setFnumber(rs.getString("fnumber")); + item.setFname(rs.getString("fname")); + companySet.add(item); } result.put("api_status", true); result.put("fclasslist", fclasslist); - result.put("companylist", companylist); + result.put("companylist", companySet); return result; } @@ -268,15 +268,22 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { item.put("fname", rs.getString("fname")); item.put("ftype", rs.getString("ftype")); item.put("parentId", null); - item.put("fleadername", rs.getString("fleadername")); - item.put("fleaderimg", rs.getString("fleaderimg")); - item.put("fleaderjob", rs.getString("fleaderjob")); + if ("0".equals(id)) { + item.put("fleadername", ""); + item.put("fleaderimg", ""); + item.put("fleaderjob", ""); + item.put("fleader", ""); + } else { + item.put("fleadername", rs.getString("fleadername")); + item.put("fleaderimg", rs.getString("fleaderimg")); + item.put("fleaderjob", rs.getString("fleaderjob")); + item.put("fleader", rs.getString("fleader")); + } item.put("fplan", rs.getString("fplan")); item.put("fonjob", rs.getString("fonjob")); item.put("hasChildren", hasChildren(rs.getString("id"), false)); item.put("expand", "1"); item.put("fnumber", rs.getString("fnumber")); - item.put("fleader", rs.getString("fleader")); item.put("fobjid", rs.getString("fobjid")); item.put("fleaderlv", convertLevel(rs.getString("fleaderlv"))); item.put("fleaderst", convertGrade(rs.getString("fleaderst"))); @@ -489,4 +496,48 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { } }); } + + static class OrgSelectItem { + private String id; + private String fnumber; + private String fname; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getFnumber() { + return fnumber; + } + + public void setFnumber(String fnumber) { + this.fnumber = fnumber; + } + + public String getFname() { + return fname; + } + + public void setFname(String fname) { + this.fname = fname; + } + + @Override + public boolean equals(Object obj) { + if (obj instanceof OrgSelectItem) { + OrgSelectItem item = (OrgSelectItem) obj; + return this.getId().equals(item.getId()); + } + return false; + } + + @Override + public int hashCode() { + return Integer.parseInt(this.getId()); + } + } } From dcf8418edb53e7d0812d636ee65b2ee6c48e497b Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 10 Nov 2022 10:24:48 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=BF=98=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CardAccessServiceImpl.java | 63 ------------------- 1 file changed, 63 deletions(-) diff --git a/src/com/engine/organization/service/impl/CardAccessServiceImpl.java b/src/com/engine/organization/service/impl/CardAccessServiceImpl.java index 8929e6a7..6e6aace9 100644 --- a/src/com/engine/organization/service/impl/CardAccessServiceImpl.java +++ b/src/com/engine/organization/service/impl/CardAccessServiceImpl.java @@ -1,23 +1,16 @@ package com.engine.organization.service.impl; import com.cloudstore.eccom.result.WeaResultMsg; -import com.engine.common.service.HrmCommonService; -import com.engine.common.service.impl.HrmCommonServiceImpl; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; import com.engine.organization.entity.personnelcard.po.CardAccessPO; import com.engine.organization.entity.personnelcard.vo.CardAccessVO; -import com.engine.organization.exception.OrganizationRunTimeException; import com.engine.organization.mapper.personnelcard.CardAccessMapper; import com.engine.organization.service.CardAccessService; import com.engine.organization.util.HasRightUtil; -import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.db.MapperProxyFactory; -import org.apache.commons.lang.StringUtils; -import weaver.general.BaseBean; import weaver.general.Util; import weaver.hrm.User; -import weaver.hrm.resource.ResourceComInfo; import java.util.*; @@ -95,60 +88,4 @@ public class CardAccessServiceImpl extends Service implements CardAccessService return getCardAccessMapper().updateTabName(name, id); } - - /** - * 判断当前人员、是否有查看当前数据、当前模块的权限 - * - * @param typeId 人员卡片分组ID - * @param userId 当前卡片人员EcId - * @return - */ - public boolean hasGroupAccess(Integer typeId, String userId) { - // 人员信息有误,返回false - OrganizationAssert.notBlank(userId, "未获取到对应人员"); - - // 系统管理员、查看本人卡片直接返回true - if (user.isAdmin() || userId.equals(String.valueOf(user.getUID()))) { - return true; - } - - boolean hasAccess = false; - CardAccessPO cardAccessPO = getCardAccessMapper().selectById(typeId); - OrganizationAssert.notNull(cardAccessPO, "未查询到对应卡片权限,"); - // 所有人,返回true - if (1 == cardAccessPO.getAllPeople()) { - return true; - } - - try { - ResourceComInfo resourceComInfo = new ResourceComInfo(); - // 上级 - if ("1".equals(Util.null2String(cardAccessPO.getSuperior()))) { - String managerID = resourceComInfo.getManagerID(userId); - hasAccess = Arrays.asList(managerID.split(",")).contains(Util.null2String(user.getUID())); - } - - // 所有上级 - if (!hasAccess || "1".equals(Util.null2String(cardAccessPO.getAllSuperior()))) { - String managersIDs = resourceComInfo.getManagersIDs(userId); - hasAccess = hasAccess || Arrays.asList(managersIDs.split(",")).contains(Util.null2String(user.getUID())); - } - } catch (Exception e) { - new BaseBean().writeLog(e); - throw new OrganizationRunTimeException("人员卡片权限"); - } - // 角色判断 - if (!hasAccess || StringUtils.isNotBlank(cardAccessPO.getCustom())) { - List accessRoleIds = Arrays.asList(cardAccessPO.getCustom().split(",")); - HrmCommonService hrmCommonService = new HrmCommonServiceImpl(); - List roleInfo = hrmCommonService.getRoleInfo(user.getUID()); - for (Object o : roleInfo) { - Map roleDetailMap = (Map) o; - int roleid = Util.getIntValue(roleDetailMap.get("roleid"), -1); - // 判断角色是否满足,角色等级是否满足 - hasAccess = hasAccess || accessRoleIds.contains(Util.null2String(roleid)); - } - } - return hasAccess; - } }