From d9e2a695cfe69261cf3560ba69801701738f23e4 Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Fri, 14 Jul 2023 11:34:29 +0800 Subject: [PATCH 01/11] =?UTF-8?q?=E6=8E=92=E5=BA=8F=20=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E8=BD=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/organization/service/impl/OrgChartServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java index b184573b..8df27278 100644 --- a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java @@ -640,7 +640,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { String fclass = Util.null2String(params.get("fclass")); List timeLinesBOList = new ArrayList<>(); timeLinesBOList.add(TimeLinesBO.builder().key(0).id(0).title("当前版本").color("blue").time("").build()); - rs.executeQuery("SELECT id,recorddate,description from JCL_ORG_CHARTVERSION where fclass = ? and deletetype = ?",fclass,0); + rs.executeQuery("SELECT id,recorddate,description from JCL_ORG_CHARTVERSION where fclass = ? and deletetype = ? order by id desc",fclass,0); while (rs.next()) { timeLinesBOList.add(TimeLinesBO.builder() .key(rs.getInt("id")) From f4c29de76b5391886d1d90418c505b5c4c216df8 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 24 Jul 2023 10:32:10 +0800 Subject: [PATCH 02/11] =?UTF-8?q?=E6=96=B0=E5=BB=BA=E7=BC=96=E5=88=B6?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=88=9D=E5=A7=8B=E5=8C=96=E5=9C=A8=E7=BC=96?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ManagerDetachServiceImpl.java | 9 ++--- .../service/impl/StaffServiceImpl.java | 35 +++++++++++++++++-- .../util/saveimport/StaffInfoImportUtil.java | 3 ++ 3 files changed, 41 insertions(+), 6 deletions(-) diff --git a/src/com/engine/organization/service/impl/ManagerDetachServiceImpl.java b/src/com/engine/organization/service/impl/ManagerDetachServiceImpl.java index 717e9c8f..6d0f3808 100644 --- a/src/com/engine/organization/service/impl/ManagerDetachServiceImpl.java +++ b/src/com/engine/organization/service/impl/ManagerDetachServiceImpl.java @@ -25,6 +25,7 @@ import com.weaver.general.BaseBean; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; +import weaver.general.Util; import java.util.*; import java.util.stream.Collectors; @@ -157,11 +158,11 @@ public class ManagerDetachServiceImpl extends Service implements ManagerDetachSe private String buildSqlWhere(Map params) { DBType dbType = DBType.get(new RecordSet().getDBType()); String sqlWhere = " where delete_type = 0"; - String lastName = (String) params.get("ecManager"); - List resourceIds = MapperProxyFactory.getProxy(EmployeeMapper.class).getResourceIds(lastName); - String ecManager = StringUtils.join(resourceIds,","); + String lastName = Util.null2String(params.get("ecManager")); if (StringUtils.isNotBlank(lastName)) { - sqlWhere += " AND ec_manager in ("+ecManager+") "; + List resourceIds = MapperProxyFactory.getProxy(EmployeeMapper.class).getResourceIds(lastName); + String ecManager = StringUtils.join(resourceIds, ","); + sqlWhere += " AND ec_manager in (" + (StringUtils.isBlank(ecManager) ? "''" : ecManager) + ") "; } String ecRolelevel = (String) params.get("ecRolelevel"); if (StringUtils.isNotBlank(ecRolelevel)) { diff --git a/src/com/engine/organization/service/impl/StaffServiceImpl.java b/src/com/engine/organization/service/impl/StaffServiceImpl.java index 4e31de95..0da7379d 100644 --- a/src/com/engine/organization/service/impl/StaffServiceImpl.java +++ b/src/com/engine/organization/service/impl/StaffServiceImpl.java @@ -132,8 +132,8 @@ public class StaffServiceImpl extends Service implements StaffService { checkRequired(staffPO); int ignoreNull = getStaffMapper().insertIgnoreNull(staffPO); - // 同步组织架构图编制信息 - //new StaffTriggerRunnable(staffPO).run(); + // 初始化编制在编数 + initStaffInfo(staffPO); return ignoreNull; } @@ -458,4 +458,35 @@ public class StaffServiceImpl extends Service implements StaffService { } } + /** + * 初始化编制在编数 + * + * @param staffPO 编制信息实体列 + */ + public static void initStaffInfo(StaffPO staffPO) { + RecordSet rs = new RecordSet(); + String sql = "select count(1) as num from hrmresource where STATUS < 4"; + if (null != staffPO.getEcCompany() && 0 != staffPO.getEcCompany()) { + sql += " and subcompanyid1 = " + staffPO.getEcCompany(); + } + if (null != staffPO.getEcDepartment() && 0 != staffPO.getEcDepartment()) { + sql += " and departmentid = " + staffPO.getEcDepartment(); + } + if (null != staffPO.getJobId() && 0 != staffPO.getJobId()) { + JobPO jobById = MapperProxyFactory.getProxy(JobMapper.class).getJobById(staffPO.getJobId()); + if (null == jobById) { + return; + } + Integer ecJobTitle = jobById.getEcJobTitle(); + sql += " and jobtitle = " + ecJobTitle; + } + rs.executeQuery(sql); + if (rs.next()) { + staffPO.setPermanentNum(-1 == rs.getInt("num") ? 0 : rs.getInt("num")); + StaffBO.buildStaffDesc(staffPO); + MapperProxyFactory.getProxy(StaffMapper.class).updateStaff(staffPO); + } + + } + } diff --git a/src/com/engine/organization/util/saveimport/StaffInfoImportUtil.java b/src/com/engine/organization/util/saveimport/StaffInfoImportUtil.java index 4fc78a89..aedc24fd 100644 --- a/src/com/engine/organization/util/saveimport/StaffInfoImportUtil.java +++ b/src/com/engine/organization/util/saveimport/StaffInfoImportUtil.java @@ -15,6 +15,7 @@ import com.engine.organization.mapper.department.DepartmentMapper; import com.engine.organization.mapper.job.JobMapper; import com.engine.organization.mapper.staff.StaffMapper; import com.engine.organization.mapper.staff.StaffPlanMapper; +import com.engine.organization.service.impl.StaffServiceImpl; import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.collections.CollectionUtils; @@ -296,6 +297,8 @@ public class StaffInfoImportUtil { staffPO.setControlPolicy(1); } MapperProxyFactory.getProxy(StaffMapper.class).insertIgnoreNull(staffPO); + // 初始化编制信息 + StaffServiceImpl.initStaffInfo(staffPO); historyDetailPO.setOperateDetail("添加成功"); historyDetailPO.setStatus("1"); From fab01583ad4cef0df4fdd6babc3f4598e7a0f080 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 24 Jul 2023 16:38:17 +0800 Subject: [PATCH 03/11] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=EF=BC=8C=E9=83=A8=E9=97=A8=E9=80=89=E6=8B=A9=E6=A0=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/service/ChartService.java | 8 ++ .../service/impl/ChartServiceImpl.java | 100 ++++++++++++++++++ .../util/db/DBOperateAdapter.java | 2 + .../engine/organization/util/db/DBType.java | 23 ++++ .../organization/web/OrgChartController.java | 20 ++++ .../organization/wrapper/OrgChartWrapper.java | 4 + 6 files changed, 157 insertions(+) diff --git a/src/com/engine/organization/service/ChartService.java b/src/com/engine/organization/service/ChartService.java index 783040d6..bbb05649 100644 --- a/src/com/engine/organization/service/ChartService.java +++ b/src/com/engine/organization/service/ChartService.java @@ -47,4 +47,12 @@ public interface ChartService { * @return 数据集合 */ Map versionRecord(Map params, User user); + + /** + * 获取部门下拉框树结构 + * + * @param params 前端入参 + * @return 树结构 + */ + Map getDepartmentTree(Map params); } diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index becccc3e..e5d8a7b7 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -3,6 +3,7 @@ package com.engine.organization.service.impl; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.organization.entity.chart.ChartPO; +import com.engine.organization.entity.chart.CompanyTreePO; import com.engine.organization.mapper.hrmresource.SystemDataMapper; import com.engine.organization.mapper.jclorgmap.JclOrgMapper; import com.engine.organization.service.ChartService; @@ -10,6 +11,7 @@ import com.engine.organization.service.OrgChartService; import com.engine.organization.util.HasRightUtil; import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.OrganizationDateUtil; +import com.engine.organization.util.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -446,6 +448,29 @@ public class ChartServiceImpl extends Service implements ChartService { result.put("api_status", true); return result; } + + @Override + public Map getDepartmentTree(Map params) { + Map result = new HashMap<>(2); + + RecordSet rs = new RecordSet(); + List departmentTree = new ArrayList<>(); + String subCompany = Util.null2String(params.get("subcompany")); + String dimension = Util.null2String(params.get("fclass")); + String versionId = Util.null2String(params.get("id")); + if (StringUtils.isBlank(subCompany)) { + subCompany = "0"; + } + String sql = getDepartmentTreeSql(versionId, dimension, subCompany); + rs.executeQuery(sql); + while (rs.next()) { + departmentTree.add(CompanyTreePO.builder().id(rs.getString("id")).pId(rs.getString("pId")).value(rs.getString("value")).title(rs.getString("title")).isLeaf(judgeTreeLeaf(versionId, dimension, rs.getString("id"))).build()); + } + result.put("companyTree", departmentTree); + result.put("api_status", true); + return result; + } + private void trueDimension(RecordSetTrans recordSetTrans,String versionId,String currentUser,String currentDate){ RecordSet rs = new RecordSet(); rs.execute("delete from jcl_chart_subcompany where versionid = "+versionId); @@ -1184,4 +1209,79 @@ public class ChartServiceImpl extends Service implements ChartService { } return 0; } + + + /** + * 获取部门树下拉框SQL + * + * @param versionId 版本ID + * @param dimension 维度 + * @param subCompany 上级Id + * @return SQL + */ + private String getDepartmentTreeSql(String versionId, String dimension, String subCompany) { + // 是否展示当前数据 + boolean isSearchCurrent = StringUtils.isBlank(versionId) || "0".equals(versionId); + boolean isCurrentDimension = StringUtils.isNotBlank(dimension) && !"0".equals(dimension); + boolean isDepartment = subCompany.startsWith("d"); + String sql; + DBType dbType = DBType.get(new RecordSet().getDBType()); + if (isDepartment) { + subCompany = subCompany.replace("d", ""); + if (isSearchCurrent) { + sql = "select " + dbType.concat("d", "id") + "as id, id as value, departmentname as title, " + dbType.concat("d", "supdepid") + " as pId from hrmdepartment where (canceled is null or canceled != '1') and " + dbType.ifNull("supdepid", "0") + " = " + subCompany; + if (isCurrentDimension) { + sql = "select " + dbType.concat("d", "id") + "as id, id as value, departmentname as title, " + dbType.concat("d", "supdepid") + " as pId from hrmdepartmentvirtual where (canceled is null or canceled != '1') and " + dbType.ifNull("supdepid", "0") + " = " + subCompany; + } + } else { + sql = "select " + dbType.concat("d", "departmentid") + "as id, departmentid as value, departmentname as title, " + dbType.concat("d", "supdepartmentid") + " as pId from jcl_chart_department where (canceled is null or canceled != '1') and " + dbType.ifNull("supdepartmentid", "0") + " = " + subCompany; + if (isCurrentDimension) { + sql = "select " + dbType.concat("d", "departmentvirtualid") + "as id, departmentvirtualid as value, departmentname as title, " + dbType.concat("d", "supdepid") + " as pId from jcl_chart_departmentvirtual where (canceled is null or canceled != '1') and " + dbType.ifNull("supdepid", "0") + " = " + subCompany; + } + // 添加时间轴条件 + sql += " and versionid = " + versionId; + } + } else { + if (isSearchCurrent) { + sql = "select id as id, id as value, subcompanyname as title, supsubcomid as pId from hrmsubcompany where (canceled is null or canceled != '1') and " + dbType.ifNull("supsubcomid", "0") + " = " + subCompany + + " union select " + dbType.concat("d", "id") + "as id, id as value, departmentname as title, subcompanyid1 as pId from hrmdepartment where (canceled is null or canceled != '1') and " + dbType.ifNull("subcompanyid1", "0") + " = " + subCompany; + if (isCurrentDimension) { + sql = "select id as id, id as value, subcompanyname as title, supsubcomid as pId from hrmsubcompanyvirtual where (canceled is null or canceled != '1') and " + dbType.ifNull("supsubcomid", "0") + " = " + subCompany + " and companyid = '" + dimension + "' " + + " union select " + dbType.concat("d", "id") + "as id, id as value, departmentname as title, subcompanyid1 as pId from hrmdepartmentvirtual where (canceled is null or canceled != '1') and " + dbType.ifNull("subcompanyid1", "0") + " = " + subCompany; + } + } else { + sql = "select subcompanyid as id, subcompanyid as value, subcompanyname as title, supsubcompanyid as pId from jcl_chart_subcompany where (canceled is null or canceled != '1') and " + dbType.ifNull("supsubcompanyid", "0") + " = " + subCompany + + " union select " + dbType.concat("d", "subcompanyid") + "as id, subcompanyid as value, departmentname as title, subcompanyid as pId from jcl_chart_department where (canceled is null or canceled != '1') and " + dbType.ifNull("subcompanyid", "0") + " = " + subCompany; + if (isCurrentDimension) { + sql = "select subcompanyvirtualid as id, subcompanyvirtualid as value, subcompanyname as title, supsubcompanyid as pId from jcl_chart_subcompanyvirtual where (canceled is null or canceled != '1') and " + dbType.ifNull("supsubcompanyid", "0") + " = " + subCompany + " and companyid = '" + dimension + "' " + + " union select " + dbType.concat("d", "departmentvirtualid") + "as id, departmentvirtualid as value, departmentname as title, subcompanyid as pId from jcl_chart_departmentvirtual where (canceled is null or canceled != '1') and " + dbType.ifNull("subcompanyid", "0") + " = " + subCompany; + } + // 添加时间轴条件 + sql += " and versionid = " + versionId; + } + } + return sql; + } + + /** + * 判断树是否为叶子节点 + * + * @param sql 查询下级元素SQL + * @param treeId 当前元素ID + * @return + */ + + /** + * 判断树是否为叶子节点 + * @param versionId 版本ID + * @param dimension 维度 + * @param subCompany 上级元素ID + * @return + */ + private boolean judgeTreeLeaf(String versionId, String dimension, String subCompany) { + RecordSet recordSet = new RecordSet(); + String sql = getDepartmentTreeSql(versionId, dimension, subCompany); + recordSet.executeQuery(sql); + return !recordSet.next(); + } } diff --git a/src/com/engine/organization/util/db/DBOperateAdapter.java b/src/com/engine/organization/util/db/DBOperateAdapter.java index e9caa997..97fd62a9 100644 --- a/src/com/engine/organization/util/db/DBOperateAdapter.java +++ b/src/com/engine/organization/util/db/DBOperateAdapter.java @@ -5,6 +5,8 @@ public interface DBOperateAdapter { String concat(String some); + String concat(String concatStr, String fieldName); + String currentDate(); String ifNull(String some, String defaultValue); diff --git a/src/com/engine/organization/util/db/DBType.java b/src/com/engine/organization/util/db/DBType.java index 35fe3346..fa12c713 100644 --- a/src/com/engine/organization/util/db/DBType.java +++ b/src/com/engine/organization/util/db/DBType.java @@ -5,6 +5,9 @@ import com.engine.organization.exception.OrganizationRunTimeException; import weaver.conn.RecordSet; public enum DBType implements DBOperateAdapter { + /** + * 根据数据库类型,匹配不通的函数 + */ MYSQL("mysql") { @Override public String like(String some) { @@ -16,6 +19,11 @@ public enum DBType implements DBOperateAdapter { return " concat(','," + some + ",',') "; } + @Override + public String concat(String concatStr, String fieldName) { + return " concat('" + concatStr + "'," + fieldName + ") "; + } + @Override public String currentDate() { return "now()"; @@ -37,6 +45,11 @@ public enum DBType implements DBOperateAdapter { return " ','+" + some + "+',' "; } + @Override + public String concat(String concatStr, String fieldName) { + return " '" + concatStr + "' + " + fieldName; + } + @Override public String currentDate() { return "GETDATE()"; @@ -58,6 +71,11 @@ public enum DBType implements DBOperateAdapter { return " ',' ||" + some + "|| ',' "; } + @Override + public String concat(String concatStr, String fieldName) { + return " '" + concatStr + "' ||" + fieldName; + } + @Override public String currentDate() { return "SYSDATE"; @@ -79,6 +97,11 @@ public enum DBType implements DBOperateAdapter { return " ',' ||" + some + "|| ',' "; } + @Override + public String concat(String concatStr, String fieldName) { + return " '" + concatStr + "' ||" + fieldName; + } + @Override public String currentDate() { return "now()"; diff --git a/src/com/engine/organization/web/OrgChartController.java b/src/com/engine/organization/web/OrgChartController.java index a8c2015c..514fffdf 100644 --- a/src/com/engine/organization/web/OrgChartController.java +++ b/src/com/engine/organization/web/OrgChartController.java @@ -118,6 +118,26 @@ public class OrgChartController { return JSONObject.toJSONString(apidatas); } + @GET + @Path("/getDepartmentTree") + @Produces(MediaType.APPLICATION_JSON) + public String getDepartmentTree(@Context HttpServletRequest request, @Context HttpServletResponse response) { + Map apidatas = new HashMap<>(); + try { + User user = HrmUserVarify.getUser(request, response); + //实例化Service 并调用业务类处理 + apidatas = getOrgChartWrapper(user).getDepartmentTree(ParamUtil.request2Map(request), user); + apidatas.put("api_status", true); + } catch (Exception e) { + //异常处理 + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + //数据转换 + return JSONObject.toJSONString(apidatas); + } + /** * 组织架构数据 */ diff --git a/src/com/engine/organization/wrapper/OrgChartWrapper.java b/src/com/engine/organization/wrapper/OrgChartWrapper.java index 8d6c59ea..2bbf5a67 100644 --- a/src/com/engine/organization/wrapper/OrgChartWrapper.java +++ b/src/com/engine/organization/wrapper/OrgChartWrapper.java @@ -68,4 +68,8 @@ public class OrgChartWrapper extends Service { public Map versionRecord(Map request2Map, User user) { return getChartService(user).versionRecord(request2Map,user); } + + public Map getDepartmentTree(Map request2Map, User user) { + return getChartService(user).getDepartmentTree(request2Map); + } } From 46ecec4b17a6a5275f32e91a65c09cb2d4ec0840 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 25 Jul 2023 09:56:32 +0800 Subject: [PATCH 04/11] =?UTF-8?q?=E7=BB=84=E7=BB=87=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E5=B2=97=E4=BD=8D=E5=8F=B0=E8=B4=A6=E3=80=81=E5=B2=97?= =?UTF-8?q?=E4=BD=8D=E6=B5=8F=E8=A7=88=E6=8C=89=E9=92=AE=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=B1=95=E7=A4=BA=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../browser/service/impl/JobBrowserService.java | 8 +++++--- .../engine/organization/entity/job/bo/JobBO.java | 7 ++----- .../organization/entity/job/dto/JobListDTO.java | 14 ++++++++------ .../organization/entity/job/vo/JobBrowserVO.java | 14 ++++++++++++-- .../engine/organization/mapper/job/JobMapper.xml | 4 ++++ 5 files changed, 31 insertions(+), 16 deletions(-) diff --git a/src/com/api/browser/service/impl/JobBrowserService.java b/src/com/api/browser/service/impl/JobBrowserService.java index a5f7e59a..ccd216d1 100644 --- a/src/com/api/browser/service/impl/JobBrowserService.java +++ b/src/com/api/browser/service/impl/JobBrowserService.java @@ -78,10 +78,12 @@ public class JobBrowserService extends BrowserService { String q = Util.null2String(httpServletRequest.getParameter("q")); List sqlParams = new ArrayList<>(); String keyword = ""; - if (q.length() > 0) keyword = "%" + q + "%"; + if (q.length() > 0) { + keyword = "%" + q + "%"; + } RecordSet rs = new RecordSet(); String sqlwhere = " where t.delete_type = 0 "; - String backfields = "t.id, t.job_no, h.jobtitlename as name, t.sequence_id, t.scheme_id , t.grade_id , t.level_id "; + String backfields = "t.id, t.job_no, h.jobtitlename as name "; String fromSql = "FROM jcl_org_job t left join hrmjobtitles h on t.ec_jobTitle = h.id "; String orderby = " order by t.id "; sqlwhere += " "; @@ -99,7 +101,7 @@ public class JobBrowserService extends BrowserService { rs.executeQuery(sql, sqlParams); List> datas = new ArrayList<>(); while (rs.next()) { - Map item = new HashMap<>(); + Map item = new HashMap<>(3); item.put("id", Util.null2String(rs.getString("id"))); String name = Util.null2String(rs.getString("name")); item.put("name", name); diff --git a/src/com/engine/organization/entity/job/bo/JobBO.java b/src/com/engine/organization/entity/job/bo/JobBO.java index 9b31a888..2f5a3212 100644 --- a/src/com/engine/organization/entity/job/bo/JobBO.java +++ b/src/com/engine/organization/entity/job/bo/JobBO.java @@ -85,13 +85,10 @@ public class JobBO { .jobTitleName(e.getJobTitleName()) .subCompanyName(e.getSubCompanyName()) .departmentName(e.getDepartmentName()) - //.sequenceName(e.getSequenceName()) - //.schemeName(e.getSchemeName()) - //.parentJob(e.getParentJob()) - //.parentJobName(null == poMaps.get(e.getParentJob()) ? "" : poMaps.get(e.getParentJob()).getJobName()) + .jobGroupName(e.getJobGroupName()) + .jobActivityName(e.getJobActivityName()) .isKey(JobTransMethod.getIsKeySpan(e.getIsKey())) .showOrder(e.getShowOrder()) - //.forbiddenTag(e.getForbiddenTag()) .isUsed(0) .build()).collect(Collectors.toList()); List usedIds = MapperProxyFactory.getProxy(JobMapper.class).listUsedId(); diff --git a/src/com/engine/organization/entity/job/dto/JobListDTO.java b/src/com/engine/organization/entity/job/dto/JobListDTO.java index 0404210b..0796000c 100644 --- a/src/com/engine/organization/entity/job/dto/JobListDTO.java +++ b/src/com/engine/organization/entity/job/dto/JobListDTO.java @@ -51,16 +51,18 @@ public class JobListDTO { */ @TableTitle(title = "所属部门", dataIndex = "departmentName", key = "departmentName") private String departmentName; + /** - * 岗位序列 + * 职务类别 */ - //@TableTitle(title = "岗位序列", dataIndex = "sequenceName", key = "sequenceName") - //private String sequenceName; + @TableTitle(title = "职务类别", dataIndex = "jobGroupName", key = "jobGroupName") + private String jobGroupName; + /** - * 等级方案 + * 所属职务 */ - //@TableTitle(title = "等级方案", dataIndex = "schemeName", key = "schemeName") - //private String schemeName; + @TableTitle(title = "所属职务", dataIndex = "jobActivityName", key = "jobActivityName") + private String jobActivityName; /** * 上级岗位 */ diff --git a/src/com/engine/organization/entity/job/vo/JobBrowserVO.java b/src/com/engine/organization/entity/job/vo/JobBrowserVO.java index 097850f3..9404f807 100644 --- a/src/com/engine/organization/entity/job/vo/JobBrowserVO.java +++ b/src/com/engine/organization/entity/job/vo/JobBrowserVO.java @@ -19,8 +19,11 @@ import lombok.NoArgsConstructor; @NoArgsConstructor @AllArgsConstructor @OrganizationTable(pageId = "98e9c62f-cd12-11ec-a15f-00ffcbed7123", - fields = "t.id, t.job_no, h.jobtitlename as name, t.sequence_id, t.scheme_id , t.grade_id , t.level_id", - fromSql = "FROM jcl_org_job t left join hrmjobtitles h on t.ec_jobTitle = h.id ", + fields = "t.id, t.job_no, h.jobtitlename as name, t.sequence_id, t.scheme_id , t.grade_id , t.level_id , e.jobactivityname, f.jobgroupname ", + fromSql = "FROM jcl_org_job t" + + " left join hrmjobtitles h on t.ec_jobTitle = h.id" + + " left join hrmjobactivities e on h.jobactivityid =e.id" + + " left join hrmjobgroups f on e.jobgroupid =f.id ", orderby = "id", sortway = "asc", primarykey = "id", @@ -41,6 +44,13 @@ public class JobBrowserVO { @OrganizationTableColumn(text = "岗位名称", width = "25%", column = "name") private String jobName; + @OrganizationTableColumn(text = "职务类别", width = "25%", column = "jobGroupName") + private String jobGroupName; + + @OrganizationTableColumn(text = "所属职务", width = "25%", column = "jobActivityName") + private String jobActivityName; + + //@OrganizationTableColumn(text = "等级方案", width = "25%", column = "scheme_id", transmethod = "com.engine.organization.transmethod.JobTransMethod.getSchemeName") //private String schemeName; //@OrganizationTableColumn(text = "职等", width = "25%", column = "level_id", transmethod = "com.engine.organization.transmethod.JobTransMethod.getLevelName") diff --git a/src/com/engine/organization/mapper/job/JobMapper.xml b/src/com/engine/organization/mapper/job/JobMapper.xml index 663ef720..91b79acd 100644 --- a/src/com/engine/organization/mapper/job/JobMapper.xml +++ b/src/com/engine/organization/mapper/job/JobMapper.xml @@ -374,6 +374,8 @@ b.departmentname , c.sequence_name, d.scheme_name, + e.jobactivityname, + f.jobgroupname, FROM jcl_org_job t left join hrmsubcompany a on @@ -385,6 +387,8 @@ left join jcl_org_scheme d on t.scheme_id = d.id left join hrmjobtitles h on t.ec_jobTitle = h.id + left join hrmjobactivities e on h.jobactivityid =e.id + left join hrmjobgroups f on e.jobgroupid =f.id WHERE t.delete_type = 0 order by ${orderSql} From 87372be17f98cc50780132ebb348ccdea40d9a74 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 25 Jul 2023 16:46:08 +0800 Subject: [PATCH 05/11] =?UTF-8?q?=E7=BB=84=E7=BB=87=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E7=BC=96=E5=88=B6=E5=AF=BC=E5=85=A5BUG=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/organization/service/impl/JobServiceImpl.java | 9 +++++++++ .../organization/util/saveimport/OrgImportUtil.java | 2 ++ 2 files changed, 11 insertions(+) diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index 978d858b..865479fc 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -278,6 +278,15 @@ public class JobServiceImpl extends Service implements JobService { for (ExtendTitlePO extendTitle : extendTitles) { List items = getExtService(user).getExtSaveForm(user, EXTEND_TYPE + "", JCL_ORG_JOB, 2, extendTitle.getId().toString(), "job_no", RuleCodeType.JOBTITLES.getValue(), params, "scheme_id", "parent_comp"); if (CollectionUtils.isNotEmpty(items)) { + for (SearchConditionItem searchConditionItem : items) { + if("ec_jobTitle".equals(searchConditionItem.getDomkey()[0])){ + BrowserBean browserBean = searchConditionItem.getBrowserConditionParam(); + String s = JSONObject.toJSONString(browserBean); + browserBean.setHasAddBtn(true); + searchConditionItem.setBrowserConditionParam(browserBean); + } + + } addGroups.add(new SearchConditionGroup(extendTitle.getTitle(), true, items)); } } diff --git a/src/com/engine/organization/util/saveimport/OrgImportUtil.java b/src/com/engine/organization/util/saveimport/OrgImportUtil.java index c13bbcf3..2408bc5e 100644 --- a/src/com/engine/organization/util/saveimport/OrgImportUtil.java +++ b/src/com/engine/organization/util/saveimport/OrgImportUtil.java @@ -81,6 +81,8 @@ public class OrgImportUtil { object = Integer.parseInt(cellValue); } else if ("float".equals(valueType)) { object = Float.parseFloat(cellValue); + }else if("text".equals(valueType)) { + object = cellValue; } else { try { object = new BigDecimal(cellValue).toPlainString(); From 96103617334d83816cb1cb48040df85afb824ace Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 26 Jul 2023 10:52:10 +0800 Subject: [PATCH 06/11] =?UTF-8?q?=E7=BB=84=E7=BB=87=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E7=A7=BB=E5=8A=A8=E6=A0=91=E6=8E=A5=E5=8F=A3=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/entity/chart/MovingTree.java | 74 +++++++++++++++++++ .../organization/service/ChartService.java | 8 ++ .../service/impl/ChartServiceImpl.java | 15 ++++ .../organization/web/OrgChartController.java | 20 +++++ .../organization/wrapper/OrgChartWrapper.java | 4 + 5 files changed, 121 insertions(+) create mode 100644 src/com/engine/organization/entity/chart/MovingTree.java diff --git a/src/com/engine/organization/entity/chart/MovingTree.java b/src/com/engine/organization/entity/chart/MovingTree.java new file mode 100644 index 00000000..ab322e4f --- /dev/null +++ b/src/com/engine/organization/entity/chart/MovingTree.java @@ -0,0 +1,74 @@ +package com.engine.organization.entity.chart; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.apache.commons.collections.CollectionUtils; +import weaver.conn.RecordSet; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author:dxfeng + * @createTime: 2023/07/25 + * @version: 1.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class MovingTree { + public static final String SUB_COMPANY = "subCompany"; + public static final String DEPARTMENT = "department"; + + private String key; + private String id; + private String title; + private String type; + private List children; + + public List getChildren() { + if (null != children) { + return children; + } + children = new ArrayList<>(); + RecordSet rs = new RecordSet(); + if (SUB_COMPANY.equals(type)) { + String sql = "select id ,subcompanyname from hrmsubcompany where (canceled is null or canceled != 1) and supsubcomid = ? order by showorder desc"; + rs.executeQuery(sql, key); + while (rs.next()) { + children.add(MovingTree.builder().key(rs.getString("id")).title(rs.getString("subcompanyname")).type(SUB_COMPANY).build()); + } + sql = "select id,departmentname from hrmdepartment where (canceled is null or canceled != 1) and (supdepid is null or supdepid =0) and subcompanyid1 = ? order by showorder desc"; + rs.executeQuery(sql, key); + while (rs.next()) { + children.add(MovingTree.builder().key(rs.getString("id")).title(rs.getString("departmentname")).type(DEPARTMENT).build()); + } + } else if (DEPARTMENT.equals(type)) { + String sql = "select id,departmentname from hrmdepartment where (canceled is null or canceled != 1) and supdepid = ? order by showorder desc"; + rs.executeQuery(sql, key); + while (rs.next()) { + children.add(MovingTree.builder().key(rs.getString("id")).title(rs.getString("departmentname")).type(DEPARTMENT).build()); + } + } + return CollectionUtils.isEmpty(children) ? null : children; + } + + public String getKey() { + switch (type) { + case SUB_COMPANY: + return "s" + key; + case DEPARTMENT: + return "d" + key; + default: + break; + } + return key; + } + + public String getId() { + return key; + } +} diff --git a/src/com/engine/organization/service/ChartService.java b/src/com/engine/organization/service/ChartService.java index bbb05649..8152f878 100644 --- a/src/com/engine/organization/service/ChartService.java +++ b/src/com/engine/organization/service/ChartService.java @@ -55,4 +55,12 @@ public interface ChartService { * @return 树结构 */ Map getDepartmentTree(Map params); + + /** + * 可移动树接口 + * + * @param params 前端参数 + * @return + */ + Map getMovingTree(Map params); } diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index e5d8a7b7..4036cd5a 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -4,6 +4,7 @@ import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.organization.entity.chart.ChartPO; import com.engine.organization.entity.chart.CompanyTreePO; +import com.engine.organization.entity.chart.MovingTree; import com.engine.organization.mapper.hrmresource.SystemDataMapper; import com.engine.organization.mapper.jclorgmap.JclOrgMapper; import com.engine.organization.service.ChartService; @@ -471,6 +472,20 @@ public class ChartServiceImpl extends Service implements ChartService { return result; } + @Override + public Map getMovingTree(Map params) { + RecordSet rs = new RecordSet(); + rs.executeQuery("select id,subcompanyname from hrmsubcompany where (canceled is null or canceled != 1) and (supsubcomid is null or supsubcomid = 0)"); + List movingTrees = new ArrayList<>(); + while(rs.next()){ + movingTrees.add(MovingTree.builder().key(rs.getString("id")).title(rs.getString("subcompanyname")).type(MovingTree.SUB_COMPANY).build()); + } + Map result = new HashMap<>(2); + result.put("movingTree", movingTrees); + result.put("api_status", true); + return result; + } + private void trueDimension(RecordSetTrans recordSetTrans,String versionId,String currentUser,String currentDate){ RecordSet rs = new RecordSet(); rs.execute("delete from jcl_chart_subcompany where versionid = "+versionId); diff --git a/src/com/engine/organization/web/OrgChartController.java b/src/com/engine/organization/web/OrgChartController.java index 514fffdf..f5f23d49 100644 --- a/src/com/engine/organization/web/OrgChartController.java +++ b/src/com/engine/organization/web/OrgChartController.java @@ -138,6 +138,26 @@ public class OrgChartController { return JSONObject.toJSONString(apidatas); } + @GET + @Path("/getMovingTree") + @Produces(MediaType.APPLICATION_JSON) + public String getMovingTree(@Context HttpServletRequest request, @Context HttpServletResponse response) { + Map apidatas = new HashMap<>(); + try { + User user = HrmUserVarify.getUser(request, response); + //实例化Service 并调用业务类处理 + apidatas = getOrgChartWrapper(user).getMovingTree(ParamUtil.request2Map(request), user); + apidatas.put("api_status", true); + } catch (Exception e) { + //异常处理 + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + //数据转换 + return JSONObject.toJSONString(apidatas); + } + /** * 组织架构数据 */ diff --git a/src/com/engine/organization/wrapper/OrgChartWrapper.java b/src/com/engine/organization/wrapper/OrgChartWrapper.java index 2bbf5a67..781bfbe3 100644 --- a/src/com/engine/organization/wrapper/OrgChartWrapper.java +++ b/src/com/engine/organization/wrapper/OrgChartWrapper.java @@ -72,4 +72,8 @@ public class OrgChartWrapper extends Service { public Map getDepartmentTree(Map request2Map, User user) { return getChartService(user).getDepartmentTree(request2Map); } + + public Map getMovingTree(Map request2Map, User user) { + return getChartService(user).getMovingTree(request2Map); + } } From b1b24fc92585c6b2770c62a504092ec68bfe5ba4 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 26 Jul 2023 11:23:15 +0800 Subject: [PATCH 07/11] =?UTF-8?q?=E7=BB=84=E7=BB=87=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E7=A7=BB=E5=8A=A8=E6=A0=91=E6=8E=A5=E5=8F=A3=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/organization/service/impl/ChartServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 4036cd5a..98363731 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -24,6 +24,7 @@ import weaver.hrm.resource.ResourceComInfo; import java.time.LocalDate; import java.util.*; +import java.util.stream.Collectors; /** * @author:dxfeng @@ -482,6 +483,7 @@ public class ChartServiceImpl extends Service implements ChartService { } Map result = new HashMap<>(2); result.put("movingTree", movingTrees); + result.put("expandedKeys", movingTrees.stream().map(MovingTree::getKey).collect(Collectors.toList())); result.put("api_status", true); return result; } From 1280b3c6b9da8c78f8887d75cd9cf3ce8f1e803a Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 27 Jul 2023 14:32:07 +0800 Subject: [PATCH 08/11] =?UTF-8?q?=E7=BB=84=E7=BB=87=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8CTreeSelect=E7=BB=84=E4=BB=B6=E5=85=A8=E9=87=8F?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{MovingTree.java => TreeSelect.java} | 24 ++++++++++++----- .../organization/service/ChartService.java | 9 +++++++ .../service/impl/ChartServiceImpl.java | 27 ++++++++++++++++--- .../organization/web/OrgChartController.java | 20 ++++++++++++++ .../organization/wrapper/OrgChartWrapper.java | 4 +++ 5 files changed, 73 insertions(+), 11 deletions(-) rename src/com/engine/organization/entity/chart/{MovingTree.java => TreeSelect.java} (70%) diff --git a/src/com/engine/organization/entity/chart/MovingTree.java b/src/com/engine/organization/entity/chart/TreeSelect.java similarity index 70% rename from src/com/engine/organization/entity/chart/MovingTree.java rename to src/com/engine/organization/entity/chart/TreeSelect.java index ab322e4f..f5727244 100644 --- a/src/com/engine/organization/entity/chart/MovingTree.java +++ b/src/com/engine/organization/entity/chart/TreeSelect.java @@ -19,7 +19,8 @@ import java.util.List; @AllArgsConstructor @NoArgsConstructor @Builder -public class MovingTree { +public class TreeSelect { + public static final String COMPANY = "company"; public static final String SUB_COMPANY = "subCompany"; public static final String DEPARTMENT = "department"; @@ -27,30 +28,37 @@ public class MovingTree { private String id; private String title; private String type; - private List children; + private String icon; + private List children; - public List getChildren() { + public List getChildren() { if (null != children) { return children; } children = new ArrayList<>(); RecordSet rs = new RecordSet(); - if (SUB_COMPANY.equals(type)) { + if (COMPANY.equals(type)) { + String sql = "select id ,subcompanyname from hrmsubcompany where (canceled is null or canceled != 1) and (supsubcomid is null or supsubcomid = 0) and companyid = ? order by showorder desc"; + rs.executeQuery(sql, key); + while (rs.next()) { + children.add(TreeSelect.builder().key(rs.getString("id")).title(rs.getString("subcompanyname")).type(SUB_COMPANY).build()); + } + } else if (SUB_COMPANY.equals(type)) { String sql = "select id ,subcompanyname from hrmsubcompany where (canceled is null or canceled != 1) and supsubcomid = ? order by showorder desc"; rs.executeQuery(sql, key); while (rs.next()) { - children.add(MovingTree.builder().key(rs.getString("id")).title(rs.getString("subcompanyname")).type(SUB_COMPANY).build()); + children.add(TreeSelect.builder().key(rs.getString("id")).title(rs.getString("subcompanyname")).type(SUB_COMPANY).build()); } sql = "select id,departmentname from hrmdepartment where (canceled is null or canceled != 1) and (supdepid is null or supdepid =0) and subcompanyid1 = ? order by showorder desc"; rs.executeQuery(sql, key); while (rs.next()) { - children.add(MovingTree.builder().key(rs.getString("id")).title(rs.getString("departmentname")).type(DEPARTMENT).build()); + children.add(TreeSelect.builder().key(rs.getString("id")).title(rs.getString("departmentname")).type(DEPARTMENT).build()); } } else if (DEPARTMENT.equals(type)) { String sql = "select id,departmentname from hrmdepartment where (canceled is null or canceled != 1) and supdepid = ? order by showorder desc"; rs.executeQuery(sql, key); while (rs.next()) { - children.add(MovingTree.builder().key(rs.getString("id")).title(rs.getString("departmentname")).type(DEPARTMENT).build()); + children.add(TreeSelect.builder().key(rs.getString("id")).title(rs.getString("departmentname")).type(DEPARTMENT).build()); } } return CollectionUtils.isEmpty(children) ? null : children; @@ -58,6 +66,8 @@ public class MovingTree { public String getKey() { switch (type) { + case COMPANY: + return "c" + key; case SUB_COMPANY: return "s" + key; case DEPARTMENT: diff --git a/src/com/engine/organization/service/ChartService.java b/src/com/engine/organization/service/ChartService.java index 8152f878..cff12446 100644 --- a/src/com/engine/organization/service/ChartService.java +++ b/src/com/engine/organization/service/ChartService.java @@ -43,6 +43,7 @@ public interface ChartService { /** * 组织架构图,版本记录 + * * @param params 请求参数 * @return 数据集合 */ @@ -63,4 +64,12 @@ public interface ChartService { * @return */ Map getMovingTree(Map params); + + /** + * 获取完整TreeSelect数据 + * + * @param params + * @return + */ + Map getFullSelectTree(Map params); } diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 98363731..8a45fa8c 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -4,7 +4,7 @@ import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.organization.entity.chart.ChartPO; import com.engine.organization.entity.chart.CompanyTreePO; -import com.engine.organization.entity.chart.MovingTree; +import com.engine.organization.entity.chart.TreeSelect; import com.engine.organization.mapper.hrmresource.SystemDataMapper; import com.engine.organization.mapper.jclorgmap.JclOrgMapper; import com.engine.organization.service.ChartService; @@ -477,13 +477,32 @@ public class ChartServiceImpl extends Service implements ChartService { public Map getMovingTree(Map params) { RecordSet rs = new RecordSet(); rs.executeQuery("select id,subcompanyname from hrmsubcompany where (canceled is null or canceled != 1) and (supsubcomid is null or supsubcomid = 0)"); - List movingTrees = new ArrayList<>(); + List movingTrees = new ArrayList<>(); while(rs.next()){ - movingTrees.add(MovingTree.builder().key(rs.getString("id")).title(rs.getString("subcompanyname")).type(MovingTree.SUB_COMPANY).build()); + movingTrees.add(TreeSelect.builder().key(rs.getString("id")).title(rs.getString("subcompanyname")).type(TreeSelect.SUB_COMPANY).build()); } Map result = new HashMap<>(2); result.put("movingTree", movingTrees); - result.put("expandedKeys", movingTrees.stream().map(MovingTree::getKey).collect(Collectors.toList())); + result.put("expandedKeys", movingTrees.stream().map(TreeSelect::getKey).collect(Collectors.toList())); + result.put("api_status", true); + return result; + } + + @Override + public Map getFullSelectTree(Map params) { + RecordSet rs = new RecordSet(); + rs.executeQuery("select id,companyname from hrmcompany"); + TreeSelect companyTree = null; + List expandedKeys = new ArrayList<>(); + if(rs.next()){ + companyTree = TreeSelect.builder().key(rs.getString("id")).title(rs.getString("companyname")).type(TreeSelect.COMPANY).build(); + expandedKeys = companyTree.getChildren().stream().map(TreeSelect::getKey).collect(Collectors.toList()); + expandedKeys.add(companyTree.getKey()); + } + + Map result = new HashMap<>(2); + result.put("selectTree", companyTree); + result.put("expandedKeys", expandedKeys); result.put("api_status", true); return result; } diff --git a/src/com/engine/organization/web/OrgChartController.java b/src/com/engine/organization/web/OrgChartController.java index f5f23d49..86e1d17a 100644 --- a/src/com/engine/organization/web/OrgChartController.java +++ b/src/com/engine/organization/web/OrgChartController.java @@ -158,6 +158,26 @@ public class OrgChartController { return JSONObject.toJSONString(apidatas); } + @GET + @Path("/getFullSelectTree") + @Produces(MediaType.APPLICATION_JSON) + public String getFullSelectTree(@Context HttpServletRequest request, @Context HttpServletResponse response) { + Map apidatas = new HashMap<>(); + try { + User user = HrmUserVarify.getUser(request, response); + //实例化Service 并调用业务类处理 + apidatas = getOrgChartWrapper(user).getFullSelectTree(ParamUtil.request2Map(request), user); + apidatas.put("api_status", true); + } catch (Exception e) { + //异常处理 + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + //数据转换 + return JSONObject.toJSONString(apidatas); + } + /** * 组织架构数据 */ diff --git a/src/com/engine/organization/wrapper/OrgChartWrapper.java b/src/com/engine/organization/wrapper/OrgChartWrapper.java index 781bfbe3..6cb8fb97 100644 --- a/src/com/engine/organization/wrapper/OrgChartWrapper.java +++ b/src/com/engine/organization/wrapper/OrgChartWrapper.java @@ -76,4 +76,8 @@ public class OrgChartWrapper extends Service { public Map getMovingTree(Map request2Map, User user) { return getChartService(user).getMovingTree(request2Map); } + + public Map getFullSelectTree(Map request2Map, User user) { + return getChartService(user).getFullSelectTree(request2Map); + } } From 3fa679b139764e9059a044c9d2e9bfbe874c3d2c Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 27 Jul 2023 17:45:02 +0800 Subject: [PATCH 09/11] =?UTF-8?q?=E7=BB=84=E7=BB=87=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E6=A0=91=E7=BB=93=E6=9E=84=E5=85=BC=E5=AE=B9=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E5=B0=81=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/entity/chart/TreeSelect.java | 46 ++++++++++++++----- .../service/impl/ChartServiceImpl.java | 12 +++-- 2 files changed, 41 insertions(+), 17 deletions(-) diff --git a/src/com/engine/organization/entity/chart/TreeSelect.java b/src/com/engine/organization/entity/chart/TreeSelect.java index f5727244..d00ad699 100644 --- a/src/com/engine/organization/entity/chart/TreeSelect.java +++ b/src/com/engine/organization/entity/chart/TreeSelect.java @@ -5,6 +5,7 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import java.util.ArrayList; @@ -20,17 +21,19 @@ import java.util.List; @NoArgsConstructor @Builder public class TreeSelect { - public static final String COMPANY = "company"; - public static final String SUB_COMPANY = "subCompany"; - public static final String DEPARTMENT = "department"; + public static final String COMPANY = "0"; + public static final String SUB_COMPANY = "1"; + public static final String DEPARTMENT = "2"; private String key; private String id; private String title; private String type; - private String icon; + private String canceled; private List children; + private String cancelSql; + public List getChildren() { if (null != children) { return children; @@ -38,27 +41,27 @@ public class TreeSelect { children = new ArrayList<>(); RecordSet rs = new RecordSet(); if (COMPANY.equals(type)) { - String sql = "select id ,subcompanyname from hrmsubcompany where (canceled is null or canceled != 1) and (supsubcomid is null or supsubcomid = 0) and companyid = ? order by showorder desc"; + String sql = "select id ,subcompanyname ,canceled from hrmsubcompany where " + getCancelSqlStr() + " and (supsubcomid is null or supsubcomid = 0) and companyid = ? order by showorder desc"; rs.executeQuery(sql, key); while (rs.next()) { - children.add(TreeSelect.builder().key(rs.getString("id")).title(rs.getString("subcompanyname")).type(SUB_COMPANY).build()); + children.add(TreeSelect.builder().key(rs.getString("id")).title(rs.getString("subcompanyname")).canceled(rs.getString("canceled")).type(SUB_COMPANY).cancelSql(cancelSql).build()); } } else if (SUB_COMPANY.equals(type)) { - String sql = "select id ,subcompanyname from hrmsubcompany where (canceled is null or canceled != 1) and supsubcomid = ? order by showorder desc"; + String sql = "select id ,subcompanyname ,canceled from hrmsubcompany where " + getCancelSqlStr() + " and supsubcomid = ? order by showorder desc"; rs.executeQuery(sql, key); while (rs.next()) { - children.add(TreeSelect.builder().key(rs.getString("id")).title(rs.getString("subcompanyname")).type(SUB_COMPANY).build()); + children.add(TreeSelect.builder().key(rs.getString("id")).title(rs.getString("subcompanyname")).canceled(rs.getString("canceled")).type(SUB_COMPANY).cancelSql(cancelSql).build()); } - sql = "select id,departmentname from hrmdepartment where (canceled is null or canceled != 1) and (supdepid is null or supdepid =0) and subcompanyid1 = ? order by showorder desc"; + sql = "select id,departmentname ,canceled from hrmdepartment where " + getCancelSqlStr() + " and (supdepid is null or supdepid =0) and subcompanyid1 = ? order by showorder desc"; rs.executeQuery(sql, key); while (rs.next()) { - children.add(TreeSelect.builder().key(rs.getString("id")).title(rs.getString("departmentname")).type(DEPARTMENT).build()); + children.add(TreeSelect.builder().key(rs.getString("id")).title(rs.getString("departmentname")).canceled(rs.getString("canceled")).type(DEPARTMENT).cancelSql(cancelSql).build()); } } else if (DEPARTMENT.equals(type)) { - String sql = "select id,departmentname from hrmdepartment where (canceled is null or canceled != 1) and supdepid = ? order by showorder desc"; + String sql = "select id,departmentname ,canceled from hrmdepartment where " + getCancelSqlStr() + " and supdepid = ? order by showorder desc"; rs.executeQuery(sql, key); while (rs.next()) { - children.add(TreeSelect.builder().key(rs.getString("id")).title(rs.getString("departmentname")).type(DEPARTMENT).build()); + children.add(TreeSelect.builder().key(rs.getString("id")).title(rs.getString("departmentname")).canceled(rs.getString("canceled")).type(DEPARTMENT).cancelSql(cancelSql).build()); } } return CollectionUtils.isEmpty(children) ? null : children; @@ -81,4 +84,23 @@ public class TreeSelect { public String getId() { return key; } + + public String getCanceled() { + if (StringUtils.isBlank(canceled)) { + return "0"; + } + return canceled; + } + + public String getCancelSql() { + return null; + } + + private String getCancelSqlStr() { + if (StringUtils.isNotBlank(cancelSql) && "1".equals(cancelSql)) { + return " 1=1 "; + } else { + return " (canceled is null or canceled != 1) "; + } + } } diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 8a45fa8c..de339526 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -476,12 +476,13 @@ public class ChartServiceImpl extends Service implements ChartService { @Override public Map getMovingTree(Map params) { RecordSet rs = new RecordSet(); - rs.executeQuery("select id,subcompanyname from hrmsubcompany where (canceled is null or canceled != 1) and (supsubcomid is null or supsubcomid = 0)"); + String canceled = Util.null2String(params.get("canceled")); + rs.executeQuery("select id,subcompanyname,canceled from hrmsubcompany where (canceled is null or canceled != 1) and (supsubcomid is null or supsubcomid = 0)"); List movingTrees = new ArrayList<>(); while(rs.next()){ - movingTrees.add(TreeSelect.builder().key(rs.getString("id")).title(rs.getString("subcompanyname")).type(TreeSelect.SUB_COMPANY).build()); + movingTrees.add(TreeSelect.builder().key(rs.getString("id")).title(rs.getString("subcompanyname")).type(TreeSelect.SUB_COMPANY).cancelSql(canceled).build()); } - Map result = new HashMap<>(2); + Map result = new HashMap<>(3); result.put("movingTree", movingTrees); result.put("expandedKeys", movingTrees.stream().map(TreeSelect::getKey).collect(Collectors.toList())); result.put("api_status", true); @@ -494,13 +495,14 @@ public class ChartServiceImpl extends Service implements ChartService { rs.executeQuery("select id,companyname from hrmcompany"); TreeSelect companyTree = null; List expandedKeys = new ArrayList<>(); + String canceled = Util.null2String(params.get("canceled")); if(rs.next()){ - companyTree = TreeSelect.builder().key(rs.getString("id")).title(rs.getString("companyname")).type(TreeSelect.COMPANY).build(); + companyTree = TreeSelect.builder().key(rs.getString("id")).title(rs.getString("companyname")).type(TreeSelect.COMPANY).cancelSql(canceled).build(); expandedKeys = companyTree.getChildren().stream().map(TreeSelect::getKey).collect(Collectors.toList()); expandedKeys.add(companyTree.getKey()); } - Map result = new HashMap<>(2); + Map result = new HashMap<>(3); result.put("selectTree", companyTree); result.put("expandedKeys", expandedKeys); result.put("api_status", true); From 29bfcdc4187e914798814191402ab69745174d4c Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 28 Jul 2023 11:33:14 +0800 Subject: [PATCH 10/11] =?UTF-8?q?=E7=BB=84=E7=BB=87=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E5=88=86=E9=83=A8=E5=B0=81=E5=AD=98=E4=BC=A0=E5=8F=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/organization/entity/company/bo/CompBO.java | 2 +- src/com/engine/organization/entity/company/param/CompParam.java | 2 +- src/com/engine/organization/service/impl/CompServiceImpl.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/com/engine/organization/entity/company/bo/CompBO.java b/src/com/engine/organization/entity/company/bo/CompBO.java index 9281b193..86844c31 100644 --- a/src/com/engine/organization/entity/company/bo/CompBO.java +++ b/src/com/engine/organization/entity/company/bo/CompBO.java @@ -61,7 +61,7 @@ public class CompBO { .companyId(null == param.getCompanyId() ? 1 : param.getCompanyId()) .supSubComId(param.getSupSubComId()) .url(param.getUrl()) - .canceled(param.getCanceled() == null ? null : param.getCanceled() ? 0 : 1) + .canceled(param.getForbiddenTag() == null ? null : param.getForbiddenTag() ? 0 : 1) .subCompanyCode(param.getSubCompanyCode()) .outKey(param.getOutKey()) .limitUsers(null == param.getLimitUsers() ? 0 : param.getLimitUsers()) diff --git a/src/com/engine/organization/entity/company/param/CompParam.java b/src/com/engine/organization/entity/company/param/CompParam.java index 37f40917..b4393d8d 100644 --- a/src/com/engine/organization/entity/company/param/CompParam.java +++ b/src/com/engine/organization/entity/company/param/CompParam.java @@ -20,7 +20,7 @@ public class CompParam extends BaseQueryParam { private Integer companyId; private Integer supSubComId; private String url; - private Boolean canceled; + private Boolean forbiddenTag; private String subCompanyCode; private String outKey; private Integer limitUsers; diff --git a/src/com/engine/organization/service/impl/CompServiceImpl.java b/src/com/engine/organization/service/impl/CompServiceImpl.java index 94933d3d..32a139df 100644 --- a/src/com/engine/organization/service/impl/CompServiceImpl.java +++ b/src/com/engine/organization/service/impl/CompServiceImpl.java @@ -123,7 +123,7 @@ public class CompServiceImpl extends Service implements CompService { @Override public int updateForbiddenTagById(CompParam params) { HasRightUtil.hasRight(user, RIGHT_NAME, false); - CompPO compPO = CompPO.builder().id(params.getId()).canceled(params.getCanceled() ? 0 : 1).build(); + CompPO compPO = CompPO.builder().id(params.getId()).canceled(params.getForbiddenTag() ? 0 : 1).build(); Map map = new HashMap<>(); map.put("id", compPO.getId().toString()); map.put("forbiddenTag", compPO.getCanceled()); From 59d4fac4e27ed45af658ec0b7943941f5e723e4f Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 31 Jul 2023 09:29:10 +0800 Subject: [PATCH 11/11] =?UTF-8?q?=E7=BB=84=E7=BB=87=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E9=83=A8=E9=97=A8=E5=B0=81=E5=AD=98=E4=BC=A0=E5=8F=82?= =?UTF-8?q?=EF=BC=8C=E6=A0=91=E7=BB=93=E6=9E=84=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/organization/entity/chart/TreeSelect.java | 8 ++++---- src/com/engine/organization/entity/company/bo/CompBO.java | 2 +- .../organization/entity/company/param/CompParam.java | 2 +- .../entity/department/param/DeptSearchParam.java | 1 - .../organization/service/impl/ChartServiceImpl.java | 6 +++--- .../engine/organization/service/impl/CompServiceImpl.java | 2 +- .../organization/service/impl/DepartmentServiceImpl.java | 2 +- 7 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/com/engine/organization/entity/chart/TreeSelect.java b/src/com/engine/organization/entity/chart/TreeSelect.java index d00ad699..fed41471 100644 --- a/src/com/engine/organization/entity/chart/TreeSelect.java +++ b/src/com/engine/organization/entity/chart/TreeSelect.java @@ -41,24 +41,24 @@ public class TreeSelect { children = new ArrayList<>(); RecordSet rs = new RecordSet(); if (COMPANY.equals(type)) { - String sql = "select id ,subcompanyname ,canceled from hrmsubcompany where " + getCancelSqlStr() + " and (supsubcomid is null or supsubcomid = 0) and companyid = ? order by showorder desc"; + String sql = "select id ,subcompanyname ,canceled from hrmsubcompany where " + getCancelSqlStr() + " and (supsubcomid is null or supsubcomid = 0) and companyid = ? order by showorder"; rs.executeQuery(sql, key); while (rs.next()) { children.add(TreeSelect.builder().key(rs.getString("id")).title(rs.getString("subcompanyname")).canceled(rs.getString("canceled")).type(SUB_COMPANY).cancelSql(cancelSql).build()); } } else if (SUB_COMPANY.equals(type)) { - String sql = "select id ,subcompanyname ,canceled from hrmsubcompany where " + getCancelSqlStr() + " and supsubcomid = ? order by showorder desc"; + String sql = "select id ,subcompanyname ,canceled from hrmsubcompany where " + getCancelSqlStr() + " and supsubcomid = ? order by showorder"; rs.executeQuery(sql, key); while (rs.next()) { children.add(TreeSelect.builder().key(rs.getString("id")).title(rs.getString("subcompanyname")).canceled(rs.getString("canceled")).type(SUB_COMPANY).cancelSql(cancelSql).build()); } - sql = "select id,departmentname ,canceled from hrmdepartment where " + getCancelSqlStr() + " and (supdepid is null or supdepid =0) and subcompanyid1 = ? order by showorder desc"; + sql = "select id,departmentname ,canceled from hrmdepartment where " + getCancelSqlStr() + " and (supdepid is null or supdepid =0) and subcompanyid1 = ? order by showorder"; rs.executeQuery(sql, key); while (rs.next()) { children.add(TreeSelect.builder().key(rs.getString("id")).title(rs.getString("departmentname")).canceled(rs.getString("canceled")).type(DEPARTMENT).cancelSql(cancelSql).build()); } } else if (DEPARTMENT.equals(type)) { - String sql = "select id,departmentname ,canceled from hrmdepartment where " + getCancelSqlStr() + " and supdepid = ? order by showorder desc"; + String sql = "select id,departmentname ,canceled from hrmdepartment where " + getCancelSqlStr() + " and supdepid = ? order by showorder"; rs.executeQuery(sql, key); while (rs.next()) { children.add(TreeSelect.builder().key(rs.getString("id")).title(rs.getString("departmentname")).canceled(rs.getString("canceled")).type(DEPARTMENT).cancelSql(cancelSql).build()); diff --git a/src/com/engine/organization/entity/company/bo/CompBO.java b/src/com/engine/organization/entity/company/bo/CompBO.java index 86844c31..9281b193 100644 --- a/src/com/engine/organization/entity/company/bo/CompBO.java +++ b/src/com/engine/organization/entity/company/bo/CompBO.java @@ -61,7 +61,7 @@ public class CompBO { .companyId(null == param.getCompanyId() ? 1 : param.getCompanyId()) .supSubComId(param.getSupSubComId()) .url(param.getUrl()) - .canceled(param.getForbiddenTag() == null ? null : param.getForbiddenTag() ? 0 : 1) + .canceled(param.getCanceled() == null ? null : param.getCanceled() ? 0 : 1) .subCompanyCode(param.getSubCompanyCode()) .outKey(param.getOutKey()) .limitUsers(null == param.getLimitUsers() ? 0 : param.getLimitUsers()) diff --git a/src/com/engine/organization/entity/company/param/CompParam.java b/src/com/engine/organization/entity/company/param/CompParam.java index b4393d8d..37f40917 100644 --- a/src/com/engine/organization/entity/company/param/CompParam.java +++ b/src/com/engine/organization/entity/company/param/CompParam.java @@ -20,7 +20,7 @@ public class CompParam extends BaseQueryParam { private Integer companyId; private Integer supSubComId; private String url; - private Boolean forbiddenTag; + private Boolean canceled; private String subCompanyCode; private String outKey; private Integer limitUsers; diff --git a/src/com/engine/organization/entity/department/param/DeptSearchParam.java b/src/com/engine/organization/entity/department/param/DeptSearchParam.java index 099edd5a..76736320 100644 --- a/src/com/engine/organization/entity/department/param/DeptSearchParam.java +++ b/src/com/engine/organization/entity/department/param/DeptSearchParam.java @@ -29,5 +29,4 @@ public class DeptSearchParam extends BaseQueryParam { private String uuid; private Double showOrder; private Integer showOrderOfTree; - private Boolean forbiddenTag; } diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index de339526..15f23a14 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -477,14 +477,14 @@ public class ChartServiceImpl extends Service implements ChartService { public Map getMovingTree(Map params) { RecordSet rs = new RecordSet(); String canceled = Util.null2String(params.get("canceled")); - rs.executeQuery("select id,subcompanyname,canceled from hrmsubcompany where (canceled is null or canceled != 1) and (supsubcomid is null or supsubcomid = 0)"); + rs.executeQuery("select id,subcompanyname,canceled from hrmsubcompany where (canceled is null or canceled != 1) and (supsubcomid is null or supsubcomid = 0) order by showorder"); List movingTrees = new ArrayList<>(); while(rs.next()){ movingTrees.add(TreeSelect.builder().key(rs.getString("id")).title(rs.getString("subcompanyname")).type(TreeSelect.SUB_COMPANY).cancelSql(canceled).build()); } Map result = new HashMap<>(3); result.put("movingTree", movingTrees); - result.put("expandedKeys", movingTrees.stream().map(TreeSelect::getKey).collect(Collectors.toList())); + result.put("expandedKeys", movingTrees.stream().filter(item -> CollectionUtils.isNotEmpty(item.getChildren())).map(TreeSelect::getKey).collect(Collectors.toList())); result.put("api_status", true); return result; } @@ -498,7 +498,7 @@ public class ChartServiceImpl extends Service implements ChartService { String canceled = Util.null2String(params.get("canceled")); if(rs.next()){ companyTree = TreeSelect.builder().key(rs.getString("id")).title(rs.getString("companyname")).type(TreeSelect.COMPANY).cancelSql(canceled).build(); - expandedKeys = companyTree.getChildren().stream().map(TreeSelect::getKey).collect(Collectors.toList()); + expandedKeys = companyTree.getChildren().stream().filter(item -> CollectionUtils.isNotEmpty(item.getChildren())).map(TreeSelect::getKey).collect(Collectors.toList()); expandedKeys.add(companyTree.getKey()); } diff --git a/src/com/engine/organization/service/impl/CompServiceImpl.java b/src/com/engine/organization/service/impl/CompServiceImpl.java index 32a139df..94933d3d 100644 --- a/src/com/engine/organization/service/impl/CompServiceImpl.java +++ b/src/com/engine/organization/service/impl/CompServiceImpl.java @@ -123,7 +123,7 @@ public class CompServiceImpl extends Service implements CompService { @Override public int updateForbiddenTagById(CompParam params) { HasRightUtil.hasRight(user, RIGHT_NAME, false); - CompPO compPO = CompPO.builder().id(params.getId()).canceled(params.getForbiddenTag() ? 0 : 1).build(); + CompPO compPO = CompPO.builder().id(params.getId()).canceled(params.getCanceled() ? 0 : 1).build(); Map map = new HashMap<>(); map.put("id", compPO.getId().toString()); map.put("forbiddenTag", compPO.getCanceled()); diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index 38188968..79f320fb 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -182,7 +182,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService @Override public int updateForbiddenTagById(DeptSearchParam params) { HasRightUtil.hasRight(user, RIGHT_NAME, false); - DepartmentPO departmentPO = DepartmentPO.builder().id(params.getId()).canceled(params.getForbiddenTag() ? 0 : 1).build(); + DepartmentPO departmentPO = DepartmentPO.builder().id(params.getId()).canceled(params.getCanceled() ? 0 : 1).build(); Map map = new HashMap<>(); map.put("id", Util.null2String(departmentPO.getId())); map.put("forbiddenTag", Util.null2String(departmentPO.getCanceled()));