From 47aafefa5acb2e8aa90b61db48f823f390f9b41b Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 3 Nov 2022 11:06:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E6=9D=83BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/JobBrowserService.java | 7 ++++++- .../organization/mapper/comp/CompMapper.xml | 4 ++++ .../mapper/detach/ManagerDetachMapper.xml | 2 +- .../mapper/resource/ResourceMapper.java | 2 ++ .../mapper/resource/ResourceMapper.xml | 19 +++++++++++++++++++ .../service/impl/ExportCommonServiceImpl.java | 17 ++++++++++++++--- .../impl/ManagerDetachServiceImpl.java | 6 +++--- .../service/impl/OrgChartServiceImpl.java | 16 ++++++++++++---- 8 files changed, 61 insertions(+), 12 deletions(-) diff --git a/src/com/api/browser/service/impl/JobBrowserService.java b/src/com/api/browser/service/impl/JobBrowserService.java index f1f74e25..e778f88e 100644 --- a/src/com/api/browser/service/impl/JobBrowserService.java +++ b/src/com/api/browser/service/impl/JobBrowserService.java @@ -126,6 +126,11 @@ public class JobBrowserService extends BrowserService { } } } + // 分权 + DetachUtil detachUtil = new DetachUtil(user.getUID()); + if (detachUtil.isDETACH()) { + sqlWhere += " AND t.parent_comp in (" + detachUtil.getJclRoleLevels() + ")"; + } return sqlWhere; } @@ -138,7 +143,7 @@ public class JobBrowserService extends BrowserService { private List getCurrentTreeNode(SearchTreeParams params) { // 分权 DetachUtil detachUtil = new DetachUtil(user.getUID()); - List jclRoleLevelList = Arrays.asList(detachUtil.getJclRoleLevels().split(",")).stream().map(Long::parseLong).collect(Collectors.toList()); + List jclRoleLevelList = Arrays.stream(detachUtil.getJclRoleLevels().split(",")).map(Long::parseLong).collect(Collectors.toList()); List treeNodes = new ArrayList<>(); if (StringUtils.isBlank(params.getId())) { // 集团总部 diff --git a/src/com/engine/organization/mapper/comp/CompMapper.xml b/src/com/engine/organization/mapper/comp/CompMapper.xml index ad6b65d5..63e2fcf2 100644 --- a/src/com/engine/organization/mapper/comp/CompMapper.xml +++ b/src/com/engine/organization/mapper/comp/CompMapper.xml @@ -399,6 +399,10 @@ select company_id from JCL_ORG_STAFFPLAN where delete_type = 0 + union + select jcl_rolelevel + from jcl_org_detach + where delete_type = 0 + diff --git a/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java index 35bfb467..e9826054 100644 --- a/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java @@ -1,16 +1,20 @@ package com.engine.organization.service.impl; import com.engine.core.impl.Service; -import com.engine.organization.entity.hrmresource.param.HrmResourceSearchParam; import com.engine.organization.entity.hrmresource.vo.HrmResourceVO; import com.engine.organization.mapper.resource.ResourceMapper; import com.engine.organization.service.ExportCommonService; import com.engine.organization.util.HrmI18nUtil; import com.engine.organization.util.db.MapperProxyFactory; +import com.engine.organization.util.detach.DetachUtil; import com.engine.organization.util.excel.ExcelUtil; import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; +import java.util.stream.Collectors; /** * @Author weaver_cl @@ -23,7 +27,14 @@ public class ExportCommonServiceImpl extends Service implements ExportCommonServ @Override public XSSFWorkbook resourceExport(List ids) { - List hrmResourceVOS = MapperProxyFactory.getProxy(ResourceMapper.class).listAll(ids); + List hrmResourceVOS ; + DetachUtil detachUtil = new DetachUtil(user.getUID()); + if (detachUtil.isDETACH()) { + List jclRoleLevelList = Arrays.stream(detachUtil.getJclRoleLevels().split(",")).map(Long::parseLong).collect(Collectors.toList()); + hrmResourceVOS = MapperProxyFactory.getProxy(ResourceMapper.class).listDetachAll(ids, jclRoleLevelList); + } else { + hrmResourceVOS = MapperProxyFactory.getProxy(ResourceMapper.class).listAll(ids); + } if (hrmResourceVOS == null) { hrmResourceVOS = new ArrayList<>(); } diff --git a/src/com/engine/organization/service/impl/ManagerDetachServiceImpl.java b/src/com/engine/organization/service/impl/ManagerDetachServiceImpl.java index 3a329c5a..36b3b456 100644 --- a/src/com/engine/organization/service/impl/ManagerDetachServiceImpl.java +++ b/src/com/engine/organization/service/impl/ManagerDetachServiceImpl.java @@ -125,7 +125,7 @@ public class ManagerDetachServiceImpl extends Service implements ManagerDetachSe .ecManager(param.getEcManager()) .jclManager(getHrmResourceMapper().getJclResourceId(String.valueOf(param.getEcManager())).intValue()) .ecRolelevel(param.getEcRolelevel()) - .jclRolelevel(EcHrmRelationUtil.getJclCompanyId(param.getEcRolelevel()) != null ? String.valueOf(EcHrmRelationUtil.getBatchJclCompanyId(param.getEcRolelevel())) : null) + .jclRolelevel(EcHrmRelationUtil.getBatchJclCompanyId(param.getEcRolelevel()) != null ? String.valueOf(EcHrmRelationUtil.getBatchJclCompanyId(param.getEcRolelevel())) : null) .manageModule("组织管理") .creator((long)user.getUID()) .deleteType(0) @@ -143,7 +143,7 @@ public class ManagerDetachServiceImpl extends Service implements ManagerDetachSe .ecManager(param.getEcManager()) .jclManager(getHrmResourceMapper().getJclResourceId(String.valueOf(param.getEcManager())).intValue()) .ecRolelevel(param.getEcRolelevel()) - .jclRolelevel(EcHrmRelationUtil.getJclCompanyId(param.getEcRolelevel()) != null ? String.valueOf(EcHrmRelationUtil.getBatchJclCompanyId(param.getEcRolelevel())) : null) + .jclRolelevel(EcHrmRelationUtil.getBatchJclCompanyId(param.getEcRolelevel()) != null ? String.valueOf(EcHrmRelationUtil.getBatchJclCompanyId(param.getEcRolelevel())) : null) .build(); return getMangeDetachMapper().updateDetach(managerDetachPO); } @@ -166,7 +166,7 @@ public class ManagerDetachServiceImpl extends Service implements ManagerDetachSe } String ecRolelevel = (String) params.get("ecRolelevel"); if (StringUtils.isNotBlank(ecRolelevel)) { - sqlWhere += " AND ec_rolelevel " +dbType.like(ecRolelevel); + sqlWhere += " AND " + dbType.concat("ec_rolelevel") + dbType.like(ecRolelevel); } return sqlWhere; } diff --git a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java index b85d838e..f08c8437 100644 --- a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java @@ -160,8 +160,12 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { private void findCompanyItemByParantId(String id, int currentLevel, String level, RecordSet rs, List> list, String whereSql, boolean expand) { String sql = "select id, fname, ftype, fparentid,fobjid,fecid,fnumber from jcl_org_map " + whereSql; DetachUtil detachUtil = new DetachUtil(user.getUID()); - if (detachUtil.isDETACH() && "0".equals(id)) { - sql += " and ftype = 1 and fobjid in(" + detachUtil.getJclRoleLevels() + ")"; + if (detachUtil.isDETACH()) { + if ("0".equals(id)) { + sql += " and ftype = 1 and fobjid in(" + detachUtil.getJclRoleLevels() + ")"; + } else { + sql += " and fparentid = " + id + " and ftype !=1"; + } } else { sql += " and fparentid = " + id; } @@ -370,8 +374,12 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { private void findUserItemByParantId(String id, int currentLevel, String level, RecordSet rs, List> list, String whereSql, boolean expand) { String sql = "select t.id, t.fname, t.ftype, t.fparentid,t.fobjparentid,t.fleader, t.fleadername, t.fleaderimg, t.fleaderjob, t.fplan, t.fonjob, t.fnumber,t.fobjid,t.fecid,t.fleaderlv, t.fleaderst from jcl_org_map t " + whereSql; DetachUtil detachUtil = new DetachUtil(user.getUID()); - if (detachUtil.isDETACH() && "0".equals(id)) { - sql += " and ftype = 1 and fobjid in(" + detachUtil.getJclRoleLevels() + ")"; + if (detachUtil.isDETACH()) { + if ("0".equals(id)) { + sql += " and t.ftype = 1 and t.fobjid in(" + detachUtil.getJclRoleLevels() + ")"; + } else { + sql += " and t.fparentid = " + id + " and t.ftype !=1"; + } } else { sql += " and t.fparentid = " + id; } -- 2.40.0.windows.1