From 87372be17f98cc50780132ebb348ccdea40d9a74 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 25 Jul 2023 16:46:08 +0800 Subject: [PATCH 1/2] =?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 2/2] =?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); + } }