From b963913d62e28c099654f365dbd589e90c0e7915 Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Thu, 29 Jun 2023 17:37:05 +0800 Subject: [PATCH 01/87] =?UTF-8?q?=E6=9E=B6=E6=9E=84=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/chart/TimeLinesBO.java | 29 +++++++++++++++++++ .../organization/service/OrgChartService.java | 8 +++++ .../service/impl/OrgChartServiceImpl.java | 23 +++++++++++++++ .../organization/web/OrgChartController.java | 26 +++++++++++++---- .../organization/wrapper/OrgChartWrapper.java | 3 ++ 5 files changed, 84 insertions(+), 5 deletions(-) create mode 100644 src/com/engine/organization/entity/chart/TimeLinesBO.java diff --git a/src/com/engine/organization/entity/chart/TimeLinesBO.java b/src/com/engine/organization/entity/chart/TimeLinesBO.java new file mode 100644 index 00000000..ee7c20c0 --- /dev/null +++ b/src/com/engine/organization/entity/chart/TimeLinesBO.java @@ -0,0 +1,29 @@ +package com.engine.organization.entity.chart; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author liang.cheng + * @Date 2023/6/29 11:19 AM + * @Description: TODO + * @Version 1.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TimeLinesBO { + + private Integer key; + + private Integer id; + + private String title; + + private String color; + + private String time; +} diff --git a/src/com/engine/organization/service/OrgChartService.java b/src/com/engine/organization/service/OrgChartService.java index 676c543a..84d355d7 100644 --- a/src/com/engine/organization/service/OrgChartService.java +++ b/src/com/engine/organization/service/OrgChartService.java @@ -85,4 +85,12 @@ public interface OrgChartService { */ void insertChartVersion(Integer fclass,String description); + /** + * @Description:时间轴查询 + * @Author: liang.cheng + * @Date: 2023/6/29 10:36 AM + * @param: [request2Map] + * @return: java.util.Map + */ + Map searchTimeLines(Map request2Map); } diff --git a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java index 6f7d7e97..720a5e62 100644 --- a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateUtil; import com.engine.core.impl.Service; import com.engine.organization.entity.chart.CompanyTreePO; +import com.engine.organization.entity.chart.TimeLinesBO; import com.engine.organization.entity.map.JclOrgMap; import com.engine.organization.entity.scheme.po.GradePO; import com.engine.organization.entity.scheme.po.LevelPO; @@ -620,6 +621,28 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { } + @Override + public Map searchTimeLines(Map params) { + Map datas = new HashMap<>(); + RecordSet rs = new RecordSet(); + 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); + while (rs.next()) { + timeLinesBOList.add(TimeLinesBO.builder() + .key(rs.getInt("id")) + .id(rs.getInt("id")) + .title(Util.null2String(rs.getString("description"))) + .color("grey") + .time(Util.null2String(rs.getString("recorddate"))) + .build()); + } + + datas.put("timelineList",timeLinesBOList); + return datas; + } + /** * 刷新在岗、编制数 */ diff --git a/src/com/engine/organization/web/OrgChartController.java b/src/com/engine/organization/web/OrgChartController.java index c3bec336..b4ddc9e8 100644 --- a/src/com/engine/organization/web/OrgChartController.java +++ b/src/com/engine/organization/web/OrgChartController.java @@ -30,9 +30,8 @@ public class OrgChartController { @GET @Path("/getCondition") @Produces(MediaType.APPLICATION_JSON) - public String getCondition(@Context HttpServletRequest request, @Context HttpServletResponse - response) { - Map apidatas = new HashMap(); + public String getCondition(@Context HttpServletRequest request, @Context HttpServletResponse response) { + Map apidatas = new HashMap<>(); try { User user = HrmUserVarify.getUser(request, response); //实例化Service 并调用业务类处理 @@ -47,7 +46,24 @@ public class OrgChartController { return JSONObject.toJSONString(apidatas); } - + @GET + @Path("/timeLines") + @Produces(MediaType.APPLICATION_JSON) + public String searchTimeLines(@Context HttpServletRequest request, @Context HttpServletResponse response) { + Map apidatas = new HashMap<>(); + try { + User user = HrmUserVarify.getUser(request, response); + apidatas = getOrgChartWrapper(user).searchTimeLines(ParamUtil.request2Map(request), user); + } catch (Exception e) { + //异常处理 + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + @GET @Path("/getSubCompanyTree") @@ -77,7 +93,7 @@ public class OrgChartController { @Produces(MediaType.APPLICATION_JSON) public String getCompanyData(@Context HttpServletRequest request, @Context HttpServletResponse response) { - Map apidatas = new HashMap(); + Map apidatas = new HashMap<>(); try { User user = HrmUserVarify.getUser(request, response); //实例化Service 并调用业务类处理 diff --git a/src/com/engine/organization/wrapper/OrgChartWrapper.java b/src/com/engine/organization/wrapper/OrgChartWrapper.java index 6388a796..78502c40 100644 --- a/src/com/engine/organization/wrapper/OrgChartWrapper.java +++ b/src/com/engine/organization/wrapper/OrgChartWrapper.java @@ -48,4 +48,7 @@ public class OrgChartWrapper extends Service { return getOrgChartService(user).synchronousData(request2Map, user); } + public Map searchTimeLines(Map request2Map, User user) { + return getOrgChartService(user).searchTimeLines(request2Map); + } } -- 2.40.0.windows.1 From 4e919dea65c83323827ab433dafa8453d3c8e5c8 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 30 Jun 2023 16:44:56 +0800 Subject: [PATCH 02/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/entity/chart/ChartPO.java | 55 ++++ .../organization/service/ChartService.java | 14 + .../service/impl/ChartServiceImpl.java | 286 ++++++++++++++++++ .../organization/wrapper/OrgChartWrapper.java | 10 +- 4 files changed, 364 insertions(+), 1 deletion(-) create mode 100644 src/com/engine/organization/entity/chart/ChartPO.java create mode 100644 src/com/engine/organization/service/ChartService.java create mode 100644 src/com/engine/organization/service/impl/ChartServiceImpl.java diff --git a/src/com/engine/organization/entity/chart/ChartPO.java b/src/com/engine/organization/entity/chart/ChartPO.java new file mode 100644 index 00000000..5495144b --- /dev/null +++ b/src/com/engine/organization/entity/chart/ChartPO.java @@ -0,0 +1,55 @@ +package com.engine.organization.entity.chart; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.apache.commons.lang3.StringUtils; + +/** + * @author:dxfeng + * @createTime: 2023/06/30 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ChartPO { + private String fname; + /** + * 0:集团,1:分部,2:部门 + */ + private String ftype; + private String fnumber; + private String fobjid; + private String parentId; + private String expand; + private String fisvitual; + private String hasChildren; + + private String id; + + public String getId() { + if (StringUtils.isNotBlank(ftype)) { + switch (ftype) { + case "0": + id = "c_" + fobjid; + break; + case "1": + id = "s_" + fobjid; + break; + case "2": + id = "d_" + fobjid; + break; + default: + break; + } + } + return id; + } + + public String getFisvitual() { + return StringUtils.isBlank(fisvitual) ? "0" : fisvitual; + } +} diff --git a/src/com/engine/organization/service/ChartService.java b/src/com/engine/organization/service/ChartService.java new file mode 100644 index 00000000..15f8e4aa --- /dev/null +++ b/src/com/engine/organization/service/ChartService.java @@ -0,0 +1,14 @@ +package com.engine.organization.service; + +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2023/06/29 + * @version: 1.0 + */ +public interface ChartService { + + Map getCompanyData(Map params); + +} diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java new file mode 100644 index 00000000..6da60222 --- /dev/null +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -0,0 +1,286 @@ +package com.engine.organization.service.impl; + +import com.engine.core.impl.Service; +import com.engine.organization.entity.chart.ChartPO; +import com.engine.organization.service.ChartService; +import com.engine.organization.util.HasRightUtil; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.Util; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2023/06/29 + * @version: 1.0 + */ +public class ChartServiceImpl extends Service implements ChartService { + private static final String COMPANY_RIGHT = "OrgChart:All"; + private static final String USER_RIGHT = "OrgPerspective:All"; + + public String COMPANY_TABLE = ""; + public String SUB_COMPANY_TABLE = ""; + public String SUB_COMPANY_DEFINED_TABLE = ""; + public String DEPARTMENT_TABLE = ""; + public String DEPARTMENT_DEFINED_TABLE = ""; + + /** + * 显示虚拟组织 + */ + boolean showVirtual = false; + + /** + * 是否已创建虚拟组织字段 + */ + boolean hasVirtualFields; + + public ChartServiceImpl() { + super(); + RecordSet rs = new RecordSet(); + rs.executeQuery("select count(1) as num from hrm_formfield where (GROUPID =6 and FIELDNAME = 'fblx') or (GROUPID =7 and FIELDNAME = 'bmlx')"); + if (rs.next()) { + String num = rs.getString("num"); + hasVirtualFields = "2".equals(num); + + } else { + hasVirtualFields = false; + } + } + + @Override + public Map getCompanyData(Map params) { + Map result = new HashMap<>(); + boolean hasRight = HasRightUtil.hasRight(user, COMPANY_RIGHT, true); + result.put("hasRight", hasRight); + if (!hasRight) { + return result; + } + + // 根结点 + String root = Util.null2String(params.get("root")); + root = StringUtils.isBlank(root) ? "0" : root; + + // 维度 + String dimension = Util.null2String(params.get("fclass")); + dimension = StringUtils.isBlank(dimension) ? "0" : dimension; + + // 是否展示虚拟组织 + String isVirtual = Util.null2String(params.get("fisvitual")); + showVirtual = "1".equals(isVirtual); + + // 初始化表名 + initTableNameByClass(dimension); + + RecordSet rs = new RecordSet(); + List dataList = new ArrayList<>(); + String sql = ""; + + ChartPO topChartPO = null; + //TODO 查询当前实际数据 + sql = getRealTimeTopSql(root, dimension); + rs.executeQuery(sql); + + // 封装顶部节点 + if (rs.next()) { + topChartPO = new ChartPO(); + topChartPO.setFtype(rs.getString("type")); + topChartPO.setFobjid(rs.getString("id")); + topChartPO.setFname(rs.getString("name")); + topChartPO.setParentId(null); + topChartPO.setExpand("1"); + topChartPO.setFisvitual(rs.getString("isvitual")); + topChartPO.setHasChildren(getHasChildren(topChartPO.getFtype(), topChartPO.getFobjid()).toString()); + dataList.add(topChartPO); + } + + // 向下查询数据 + if (null != topChartPO) { + findChildData(topChartPO, dataList); + } + + + result.put("api_status", true); + result.put("data", dataList); + return result; + } + + /** + * 查询实时数据,顶级元素SQL + * + * @param root 顶级元素ID + * @param dimension 维度ID + * @return 查询SQL + */ + private String getRealTimeTopSql(String root, String dimension) { + if ("0".equals(root)) { + // 查询集团数据 + if ("0".equals(dimension)) { + // 查询实际集团表 + return "select id,companyname as 'name','0' as 'type' from " + COMPANY_TABLE; + } else { + // 查询其他维度集团信息 + return "select id,companyname as 'name','0' as 'type' from " + COMPANY_TABLE + "where id = '" + dimension + "'"; + } + } else { + if (hasVirtualFields) { + if (showVirtual) { + return "select a.id,a.subcompanyname as 'name','1' as 'type' ,b.fblx as 'isvitual' from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where a.id = '" + root + "'"; + } else { + return "select a.id,a.subcompanyname as 'name','1' as 'type' ,b.fblx as 'isvitual' from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where a.id = '" + root + "' and (b.fblx is null or b.fblx!='1')"; + + } + } else { + return "select id,subcompanyname as 'name','1' as 'type' from " + SUB_COMPANY_TABLE + "where id = '" + root + "'"; + } + } + } + + /** + * 查询实时数据,子节点元素 + * + * @param topChartPO 父级元素 + * @param dataList 所有元素集合 + */ + private void findChildData(ChartPO topChartPO, List dataList) { + String fType = topChartPO.getFtype(); + String fObjId = topChartPO.getFobjid(); + String sql = ""; + if (StringUtils.isNotBlank(fType)) { + switch (fType) { + case "0": + if (hasVirtualFields) { + if (showVirtual) { + sql = "select a.id,a.subcompanyname as 'name','1' as 'type' ,b.fblx as 'isvitual' from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and (a.supsubcomid is null or a.supsubcomid = '0') and a.companyid = '" + fObjId + "'"; + } else { + sql = "select a.id,a.subcompanyname as 'name','1' as 'type' ,b.fblx as 'isvitual' from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and (a.supsubcomid is null or a.supsubcomid = '0') and (b.fblx is null or b.fblx != '1') and a.companyid = '" + fObjId + "'"; + } + } else { + sql = "select a.id,a.subcompanyname as 'name','1' as 'type' from " + SUB_COMPANY_TABLE + " a where (a.canceled is null or a.canceled != '1') and (a.supsubcomid is null or a.supsubcomid = '0') and a.companyid = '" + fObjId + "'"; + } + break; + case "1": + if (hasVirtualFields) { + if (showVirtual) { + sql = "select a.id,a.subcompanyname as 'name','1' as 'type' ,b.fblx as 'isvitual' from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and a.supsubcomid = '" + fObjId + "'" + + " union select a.id,a.departmentname as 'name','2' as 'type' ,b.bmlx as 'isvitual' from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and (a.supdepid is null or a.supdepid = '0') and subcompanyid1 = '" + fObjId + "'"; + } else { + sql = "select a.id,a.subcompanyname as 'name','1' as 'type' ,b.fblx as 'isvitual' from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and (b.fblx is null or b.fblx != '1') and a.supsubcomid = '" + fObjId + "'" + + " union select a.id,a.departmentname as 'name','2' as 'type' ,b.bmlx as 'isvitual' from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and (a.supdepid is null or a.supdepid = '0') and (b.bmlx is null or b.bmlx != '1') and subcompanyid1 = '" + fObjId + "'"; + } + } else { + sql = "select a.id,a.subcompanyname as 'name','1' as 'type' from " + SUB_COMPANY_TABLE + " a where (canceled is null or canceled != '1') and supsubcomid = '" + fObjId + "'" + + " union select a.id,a.departmentname as 'name','2' as 'type' from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and (supdepid is null or supdepid = '0') and subcompanyid1 = '" + fObjId + "'"; + } + break; + case "2": + if (hasVirtualFields) { + if (showVirtual) { + sql = "select a.id,a.departmentname as 'name','2' as 'type' ,b.bmlx as 'isvitual' from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and supdepid = '" + fObjId + "'"; + } else { + sql = "select a.id,a.departmentname as 'name','2' as 'type' ,b.bmlx as 'isvitual' from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where (canceled is null or canceled != '1') and (b.bmlx is null or b.bmlx != '1') and a.supdepid = '" + fObjId + "'"; + } + } else { + sql = "select a.id,a.departmentname as 'name','2' as 'type' from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and supdepid = '" + fObjId + "'"; + } + break; + default: + break; + } + } + + if (StringUtils.isNotBlank(sql)) { + List currentList = new ArrayList<>(); + RecordSet recordSet = new RecordSet(); + recordSet.executeQuery(sql); + while (recordSet.next()) { + ChartPO chartPO = new ChartPO(); + chartPO.setFtype(recordSet.getString("type")); + chartPO.setFobjid(recordSet.getString("id")); + chartPO.setFname(recordSet.getString("name")); + chartPO.setParentId(topChartPO.getId()); + // 非部门元素展开 + chartPO.setExpand(topChartPO.getId().startsWith("d") ? "0" : "1"); + chartPO.setFisvitual(recordSet.getString("isvitual")); + chartPO.setHasChildren(getHasChildren(chartPO.getFtype(), chartPO.getFobjid()).toString()); + currentList.add(chartPO); + } + for (ChartPO chartPO : currentList) { + if (chartPO.getParentId().startsWith("d")) { + // 部门只展示一级 + continue; + } + findChildData(chartPO, dataList); + } + dataList.addAll(currentList); + } + + + } + + + /** + * 根据维度初始化表名 + * + * @param fClass 所选维度 + */ + public void initTableNameByClass(String fClass) { + if (StringUtils.isBlank(fClass) || "0".equals(fClass)) { + COMPANY_TABLE = "hrmcompany"; + SUB_COMPANY_TABLE = "hrmsubcompany"; + SUB_COMPANY_DEFINED_TABLE = "hrmsubcompanydefined"; + DEPARTMENT_TABLE = "hrmdepartment"; + DEPARTMENT_DEFINED_TABLE = "hrmdepartmentdefined"; + } else { + COMPANY_TABLE = "hrmcompanyvirtual"; + SUB_COMPANY_TABLE = "hrmsubcompanyvirtual"; + DEPARTMENT_TABLE = "hrmdepartmentvirtual"; + // 其他维度,无虚拟组织 + hasVirtualFields = false; + } + } + + + /** + * 判断是否有子元素 + * + * @param fType 元素类型 + * @param fObjId 元素ID + * @return boolean 包含子元素:true,不包含子元素:false + */ + private Boolean getHasChildren(String fType, String fObjId) { + String sql = ""; + if (StringUtils.isNotBlank(fType)) { + switch (fType) { + case "0": + sql = "select id from " + SUB_COMPANY_TABLE + " where (supsubcomid is null or supsubcomid = '0') and companyid = '" + fObjId + "'"; + break; + case "1": + if (hasVirtualFields && !showVirtual) { + sql = "select a.id from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and (b.fblx is null or b.fblx != '1') and a.supsubcomid = '" + fObjId + "' union select a.id from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and (a.supdepid is null or a.supdepid = '0') and (b.bmlx is null or b.bmlx != '1') and subcompanyid1 = '" + fObjId + "'"; + } else { + sql = "select id from " + SUB_COMPANY_TABLE + " where (canceled is null or canceled != '1') and supsubcomid = '" + fObjId + "' union select id from " + DEPARTMENT_TABLE + " where (canceled is null or canceled != '1') and (supdepid is null or supdepid = '0') and subcompanyid1 = '" + fObjId + "'"; + } + break; + case "2": + if (hasVirtualFields && !showVirtual) { + sql = "select a.id from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where (canceled is null or canceled != '1') and (b.bmlx is null or b.bmlx != '1') and a.supdepid = '" + fObjId + "'"; + } else { + sql = "select id from " + DEPARTMENT_TABLE + " where (canceled is null or canceled != '1') and supdepid = '" + fObjId + "'"; + } + break; + default: + break; + } + } + if (StringUtils.isNotBlank(sql)) { + RecordSet rs = new RecordSet(); + rs.executeQuery(sql); + return rs.next(); + } + return false; + } +} diff --git a/src/com/engine/organization/wrapper/OrgChartWrapper.java b/src/com/engine/organization/wrapper/OrgChartWrapper.java index 6388a796..4218d42d 100644 --- a/src/com/engine/organization/wrapper/OrgChartWrapper.java +++ b/src/com/engine/organization/wrapper/OrgChartWrapper.java @@ -2,7 +2,9 @@ package com.engine.organization.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.organization.service.ChartService; import com.engine.organization.service.OrgChartService; +import com.engine.organization.service.impl.ChartServiceImpl; import com.engine.organization.service.impl.OrgChartServiceImpl; import weaver.hrm.User; @@ -17,6 +19,11 @@ import java.util.Map; public class OrgChartWrapper extends Service { private OrgChartService getOrgChartService(User user) { return ServiceUtil.getService(OrgChartServiceImpl.class, user); + + } + + private ChartService getChartService(User user) { + return ServiceUtil.getService(ChartServiceImpl.class, user); } @@ -29,7 +36,8 @@ public class OrgChartWrapper extends Service { } public Map getCompanyData(Map request2Map, User user) { - return getOrgChartService(user).getCompanyData(request2Map, user); + // return getOrgChartService(user).getCompanyData(request2Map, user); + return getChartService(user).getCompanyData(request2Map); } public Map getUserData(Map request2Map, User user) { -- 2.40.0.windows.1 From 78c4aa5127b08bc065e91fe7bce2766552bda73a Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 30 Jun 2023 17:12:58 +0800 Subject: [PATCH 03/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=E9=87=8D=E6=9E=84-BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/organization/service/impl/ChartServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 6da60222..21a446b0 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -123,7 +123,7 @@ public class ChartServiceImpl extends Service implements ChartService { return "select id,companyname as 'name','0' as 'type' from " + COMPANY_TABLE; } else { // 查询其他维度集团信息 - return "select id,companyname as 'name','0' as 'type' from " + COMPANY_TABLE + "where id = '" + dimension + "'"; + return "select id,companyname as 'name','0' as 'type' from " + COMPANY_TABLE + " where id = '" + dimension + "'"; } } else { if (hasVirtualFields) { @@ -134,7 +134,7 @@ public class ChartServiceImpl extends Service implements ChartService { } } else { - return "select id,subcompanyname as 'name','1' as 'type' from " + SUB_COMPANY_TABLE + "where id = '" + root + "'"; + return "select id,subcompanyname as 'name','1' as 'type' from " + SUB_COMPANY_TABLE + " where id = '" + root + "'"; } } } -- 2.40.0.windows.1 From c115308f9ecfcb20546a1cbf8c7cd42c26cf3821 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 3 Jul 2023 10:49:48 +0800 Subject: [PATCH 04/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=E9=87=8D=E6=9E=84-=E5=BC=82=E6=AD=A5=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/service/ChartService.java | 15 +++ .../service/impl/ChartServiceImpl.java | 91 ++++++++++++++++--- .../organization/wrapper/OrgChartWrapper.java | 3 +- 3 files changed, 94 insertions(+), 15 deletions(-) diff --git a/src/com/engine/organization/service/ChartService.java b/src/com/engine/organization/service/ChartService.java index 15f8e4aa..d49e9e78 100644 --- a/src/com/engine/organization/service/ChartService.java +++ b/src/com/engine/organization/service/ChartService.java @@ -9,6 +9,21 @@ import java.util.Map; */ public interface ChartService { + /** + * 组织架构图 ,获取数据(同步) + * + * @param params 请求参数 + * @return 数据集合 + */ Map getCompanyData(Map params); + /** + * 组织架构图 ,获取数据(异步) + * + * @param params 请求参数 + * @return 数据集合 + */ + Map asyncCompanyData(Map params); + + } diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 21a446b0..68fdb5af 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -20,7 +20,6 @@ import java.util.Map; */ public class ChartServiceImpl extends Service implements ChartService { private static final String COMPANY_RIGHT = "OrgChart:All"; - private static final String USER_RIGHT = "OrgPerspective:All"; public String COMPANY_TABLE = ""; public String SUB_COMPANY_TABLE = ""; @@ -38,19 +37,6 @@ public class ChartServiceImpl extends Service implements ChartService { */ boolean hasVirtualFields; - public ChartServiceImpl() { - super(); - RecordSet rs = new RecordSet(); - rs.executeQuery("select count(1) as num from hrm_formfield where (GROUPID =6 and FIELDNAME = 'fblx') or (GROUPID =7 and FIELDNAME = 'bmlx')"); - if (rs.next()) { - String num = rs.getString("num"); - hasVirtualFields = "2".equals(num); - - } else { - hasVirtualFields = false; - } - } - @Override public Map getCompanyData(Map params) { Map result = new HashMap<>(); @@ -108,6 +94,74 @@ public class ChartServiceImpl extends Service implements ChartService { return result; } + @Override + public Map asyncCompanyData(Map params) { + + // 维度 + String dimension = Util.null2String(params.get("fclass")); + dimension = StringUtils.isBlank(dimension) ? "0" : dimension; + + // 是否展示虚拟组织 + String isVirtual = Util.null2String(params.get("fisvitual")); + showVirtual = "1".equals(isVirtual); + + // 初始化表名 + initTableNameByClass(dimension); + + String ids = (String) params.get("ids"); + List dataList = new ArrayList<>(); + if (StringUtils.isNotBlank(ids)) { + RecordSet rs = new RecordSet(); + String[] split = ids.split(","); + for (String s : split) { + //TODO 查询当前实际数据 + if (s.contains("_")) { + String fObjId = s.split("_")[1]; + if (s.startsWith("s")) { + if (hasVirtualFields) { + if (showVirtual) { + rs.executeQuery("select a.id,a.subcompanyname as 'name','1' as 'type' ,b.fblx as 'isvitual' from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and a.supsubcomid = '" + fObjId + "'" + + " union select a.id,a.departmentname as 'name','2' as 'type' ,b.bmlx as 'isvitual' from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and (a.supdepid is null or a.supdepid = '0') and subcompanyid1 = '" + fObjId + "'"); + } else { + rs.executeQuery("select a.id,a.subcompanyname as 'name','1' as 'type' ,b.fblx as 'isvitual' from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and (b.fblx is null or b.fblx != '1') and a.supsubcomid = '" + fObjId + "'" + + " union select a.id,a.departmentname as 'name','2' as 'type' ,b.bmlx as 'isvitual' from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and (a.supdepid is null or a.supdepid = '0') and (b.bmlx is null or b.bmlx != '1') and subcompanyid1 = '" + fObjId + "'"); + } + } else { + rs.executeQuery("select a.id,a.subcompanyname as 'name','1' as 'type' from " + SUB_COMPANY_TABLE + " a where (canceled is null or canceled != '1') and supsubcomid = '" + fObjId + "'" + + " union select a.id,a.departmentname as 'name','2' as 'type' from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and (supdepid is null or supdepid = '0') and subcompanyid1 = '" + fObjId + "'"); + } + + } else if (s.startsWith("d")) { + if (hasVirtualFields) { + if (showVirtual) { + rs.executeQuery( "select a.id,a.departmentname as 'name','2' as 'type' ,b.bmlx as 'isvitual' from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and supdepid = '" + fObjId + "'"); + } else { + rs.executeQuery( "select a.id,a.departmentname as 'name','2' as 'type' ,b.bmlx as 'isvitual' from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where (canceled is null or canceled != '1') and (b.bmlx is null or b.bmlx != '1') and a.supdepid = '" + fObjId + "'"); + } + } else { + rs.executeQuery( "select a.id,a.departmentname as 'name','2' as 'type' from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and supdepid = '" + fObjId + "'"); + } + } + while (rs.next()){ + ChartPO chartPO = new ChartPO(); + chartPO.setFtype(rs.getString("type")); + chartPO.setFobjid(rs.getString("id")); + chartPO.setFname(rs.getString("name")); + chartPO.setParentId(s); + chartPO.setExpand("0"); + chartPO.setFisvitual(rs.getString("isvitual")); + chartPO.setHasChildren(getHasChildren(chartPO.getFtype(), chartPO.getFobjid()).toString()); + dataList.add(chartPO); + } + } + } + } + Map result = new HashMap<>(); + result.put("api_status", true); + result.put("data", dataList); + return result; + } + /** * 查询实时数据,顶级元素SQL * @@ -234,6 +288,15 @@ public class ChartServiceImpl extends Service implements ChartService { SUB_COMPANY_DEFINED_TABLE = "hrmsubcompanydefined"; DEPARTMENT_TABLE = "hrmdepartment"; DEPARTMENT_DEFINED_TABLE = "hrmdepartmentdefined"; + RecordSet rs = new RecordSet(); + rs.executeQuery("select count(1) as num from hrm_formfield where (GROUPID =6 and FIELDNAME = 'fblx') or (GROUPID =7 and FIELDNAME = 'bmlx')"); + if (rs.next()) { + String num = rs.getString("num"); + hasVirtualFields = "2".equals(num); + + } else { + hasVirtualFields = false; + } } else { COMPANY_TABLE = "hrmcompanyvirtual"; SUB_COMPANY_TABLE = "hrmsubcompanyvirtual"; diff --git a/src/com/engine/organization/wrapper/OrgChartWrapper.java b/src/com/engine/organization/wrapper/OrgChartWrapper.java index 47f35bc7..8d117795 100644 --- a/src/com/engine/organization/wrapper/OrgChartWrapper.java +++ b/src/com/engine/organization/wrapper/OrgChartWrapper.java @@ -49,7 +49,8 @@ public class OrgChartWrapper extends Service { } public Map asyncCompanyData(Map request2Map, User user) { - return getOrgChartService(user).asyncCompanyData(request2Map, user); + // return getOrgChartService(user).asyncCompanyData(request2Map, user); + return getChartService(user).asyncCompanyData(request2Map); } public String synchronousData(Map request2Map) { -- 2.40.0.windows.1 From a2247ddb12d40f1f9a8ada9fb7ca0370c48c7c2c Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 3 Jul 2023 10:50:07 +0800 Subject: [PATCH 05/87] =?UTF-8?q?TODO=E6=B3=A8=E9=87=8A=E6=B8=85=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/OrgVirtualController.java | 1 - .../entity/chart/TimeLinesBO.java | 1 - .../service/OrgVirtualService.java | 1 - .../service/impl/DepartmentServiceImpl.java | 22 +++++++++---------- .../service/impl/JobServiceImpl.java | 10 ++++----- .../service/impl/OrgVirtualServiceImpl.java | 1 - .../thread/OrganizationSyncEc.java | 1 - .../util/saveimport/CompanyImport.java | 4 ++-- .../util/saveimport/DepartmentImport.java | 2 +- .../web/OrgVirtualController.java | 1 - .../organization/wrapper/JobWrapper.java | 4 ++-- .../wrapper/OrgVirtualWrapper.java | 1 - 12 files changed, 21 insertions(+), 28 deletions(-) diff --git a/src/com/api/organization/web/OrgVirtualController.java b/src/com/api/organization/web/OrgVirtualController.java index 1af5c00e..daced802 100644 --- a/src/com/api/organization/web/OrgVirtualController.java +++ b/src/com/api/organization/web/OrgVirtualController.java @@ -5,7 +5,6 @@ import javax.ws.rs.Path; /** * @Author liang.cheng * @Date 2023/6/27 3:38 PM - * @Description: TODO * @Version 1.0 */ diff --git a/src/com/engine/organization/entity/chart/TimeLinesBO.java b/src/com/engine/organization/entity/chart/TimeLinesBO.java index ee7c20c0..2f2ff6a4 100644 --- a/src/com/engine/organization/entity/chart/TimeLinesBO.java +++ b/src/com/engine/organization/entity/chart/TimeLinesBO.java @@ -8,7 +8,6 @@ import lombok.NoArgsConstructor; /** * @Author liang.cheng * @Date 2023/6/29 11:19 AM - * @Description: TODO * @Version 1.0 */ @Data diff --git a/src/com/engine/organization/service/OrgVirtualService.java b/src/com/engine/organization/service/OrgVirtualService.java index a48d22d3..07c90318 100644 --- a/src/com/engine/organization/service/OrgVirtualService.java +++ b/src/com/engine/organization/service/OrgVirtualService.java @@ -5,7 +5,6 @@ import java.util.Map; /** * @Author liang.cheng * @Date 2023/6/27 3:45 PM - * @Description: TODO * @Version 1.0 */ public interface OrgVirtualService { diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index 955c0b36..38188968 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -469,7 +469,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService String ecDepartmentID = Util.null2String(syncMap.get("id")); OrganizationAssert.isTrue(StringUtils.isNotBlank(ecDepartmentID), syncMap.get("message").toString()); // 更新组织架构图 - //TODO new DepartmentTriggerRunnable(deptById.getId()).run(); + // new DepartmentTriggerRunnable(deptById.getId()).run(); // 复制当前部门岗位信息 //if ("1".equals(copyJob)) { @@ -540,7 +540,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService departmentPO.setSubCompanyId1(targetDepartment.getSubCompanyId1()); updateEcDepartment(departmentPO); // 更新组织架构图 - //TODO new DepartmentTriggerRunnable(departmentPO.getId()).run(); + // new DepartmentTriggerRunnable(departmentPO.getId()).run(); } // 查询该部门一级岗位、更新岗位所属分部、所属部门 //List firstChildJobList = getJobMapper().listJobsByDepartmentId(mergeParam.getId()); @@ -553,7 +553,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService // 更新岗位组织架构图 //for (JobPO jobPO : firstChildJobList) { // // 刷新组织架构图 - // TODO new JobTriggerRunnable(jobPO.getId()).run(); + // new JobTriggerRunnable(jobPO.getId()).run(); //} // 更新当前部门下的人员 rs.executeUpdate("update hrmresource set SUBCOMPANYID1 =?,DEPARTMENTID =? where DEPARTMENTID =?", targetDepartment.getSubCompanyId1(), targetEcDeptId, mergeEcDeptId); @@ -561,7 +561,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService //List hrmResourceIds = getSystemDataMapper().getHrmResourceIdsByDept(mergeParam.getId().toString()); //// 更新人员组织架构图 //for (Long hrmResourceId : hrmResourceIds) { - //TODO new HrmResourceTriggerRunnable(hrmResourceId).run(); + // new HrmResourceTriggerRunnable(hrmResourceId).run(); //} // 更新子部门下岗位的所属分部 for (DepartmentPO departmentPO : firstChildDeptList) { @@ -575,13 +575,13 @@ public class DepartmentServiceImpl extends Service implements DepartmentService // 删除部门 ServiceUtil.getService(OrganizationServiceImpl.class, user).doDepartmentCancel(map, user); // 更新组织架构图 - // TODO new DepartmentTriggerRunnable(mergeDepartment).run(); + // new DepartmentTriggerRunnable(mergeDepartment).run(); // 更新部门合并后名称 targetDepartment.setDepartmentName(mergeParam.getMergeName()); targetDepartment.setDepartmentMark(mergeParam.getMergeName()); updateEcDepartment(targetDepartment); // 更新组织架构图 - // TODO new DepartmentTriggerRunnable(oldFParentId, targetDepartment.getId()).run(); + // new DepartmentTriggerRunnable(oldFParentId, targetDepartment.getId()).run(); return 0; } @@ -622,7 +622,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService deptById.setSupDepId(null); // 更新组织架构图 - //TODO new DepartmentTriggerRunnable(company.toString(), deptById).run(); + // new DepartmentTriggerRunnable(company.toString(), deptById).run(); } else if ("1".equals(moveParam.getMoveType())) { Integer departmentId = moveParam.getDepartment(); OrganizationAssert.notNull(departmentId, "请选择要转移到的部门"); @@ -638,7 +638,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService deptById.setSubCompanyId1(parentDepartment.getSubCompanyId1()); // 更新组织架构图 - // TODO new DepartmentTriggerRunnable(Integer.toString(100000000 + department.intValue()), deptById).run(); + // new DepartmentTriggerRunnable(Integer.toString(100000000 + department.intValue()), deptById).run(); } // 更新EC部门 updateEcDepartment(deptById); @@ -651,7 +651,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService //// 更新人员组织架构图 //List hrmResourceIds = getSystemDataMapper().getHrmResourceIdsByDept(deptById.getId().toString()); //for (Long hrmResourceId : hrmResourceIds) { - //TODO new HrmResourceTriggerRunnable(hrmResourceId).run(); + // new HrmResourceTriggerRunnable(hrmResourceId).run(); //} forbiddenChildTag(deptById.getSubCompanyId1(), deptList); // 递归更新下级部门、岗位 @@ -672,7 +672,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService updateEcDepartment(departmentPO); // 更新组织架构图 - // TODO new DepartmentTriggerRunnable(departmentPO.getId()).run(); + // new DepartmentTriggerRunnable(departmentPO.getId()).run(); // 刷新岗位所属分部 //refreshJobComp(departmentPO.getId(), subCompanyId1); // 更新当前部门下的人员 @@ -682,7 +682,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService //List hrmResourceIds = getSystemDataMapper().getHrmResourceIdsByDept(departmentPO.getId().toString()); //// 更新人员组织架构图 //for (Long hrmResourceId : hrmResourceIds) { - //TODO new HrmResourceTriggerRunnable(hrmResourceId).run(); + // new HrmResourceTriggerRunnable(hrmResourceId).run(); //} List childList = getDepartmentMapper().getDeptListByPId(departmentPO.getId()); forbiddenChildTag(subCompanyId1, childList); diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index 5fb5b489..e6ea51a2 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -446,7 +446,7 @@ public class JobServiceImpl extends Service implements JobService { jobById.setShowOrder(orderNum); insertCount += getJobMapper().insertIgnoreNull(jobById); // 更新组织架构图 - //TODO new JobTriggerRunnable(jobById.getId()).run(); + // new JobTriggerRunnable(jobById.getId()).run(); } return insertCount; @@ -567,14 +567,14 @@ public class JobServiceImpl extends Service implements JobService { // 更新合并后的岗位,更新组织架构图 // updateEcJob(targetJob, mergeParam.getMergeName()); - // TODO targetJob.setJobName(mergeParam.getMergeName()); + // targetJob.setJobName(mergeParam.getMergeName()); getJobMapper().updateBaseJob(targetJob); - //TODO new JobTriggerRunnable(jobById.getId(), targetJob.getId()).run(); + // new JobTriggerRunnable(jobById.getId(), targetJob.getId()).run(); // 原岗位删除 //new OrganizationSyncEc(user, LogModuleNameEnum.JOB, OperateTypeEnum.CANCELED, null, jobById).sync(); getJobMapper().deleteByIds(Collections.singletonList(jobById.getId())); // 更新组织架构图 - //TODO new JobTriggerRunnable(jobById).run(); + // new JobTriggerRunnable(jobById).run(); return updateCount; } @@ -614,7 +614,7 @@ public class JobServiceImpl extends Service implements JobService { // 更新人员信息 // updateResourceJob(job); // 更新组织架构图 - //TODO new JobTriggerRunnable(job.getId()).run(); + // new JobTriggerRunnable(job.getId()).run(); // 递归处理子级元素 List jobsByPid = getJobMapper().getJobsByPid(job.getId()); diff --git a/src/com/engine/organization/service/impl/OrgVirtualServiceImpl.java b/src/com/engine/organization/service/impl/OrgVirtualServiceImpl.java index 9cdbfa1c..efae055c 100644 --- a/src/com/engine/organization/service/impl/OrgVirtualServiceImpl.java +++ b/src/com/engine/organization/service/impl/OrgVirtualServiceImpl.java @@ -8,7 +8,6 @@ import java.util.Map; /** * @Author liang.cheng * @Date 2023/6/27 3:45 PM - * @Description: TODO * @Version 1.0 */ public class OrgVirtualServiceImpl extends Service implements OrgVirtualService { diff --git a/src/com/engine/organization/thread/OrganizationSyncEc.java b/src/com/engine/organization/thread/OrganizationSyncEc.java index f6e47e88..a431a1a6 100644 --- a/src/com/engine/organization/thread/OrganizationSyncEc.java +++ b/src/com/engine/organization/thread/OrganizationSyncEc.java @@ -180,7 +180,6 @@ public class OrganizationSyncEc { * 封存、解封分部 */ private void cancelCompany() { - // TODO String forbiddenTag = Util.null2String(params.get("forbiddenTag")); if ("0".equals(forbiddenTag)) { // 解封 diff --git a/src/com/engine/organization/util/saveimport/CompanyImport.java b/src/com/engine/organization/util/saveimport/CompanyImport.java index 66b8854d..ff03b819 100644 --- a/src/com/engine/organization/util/saveimport/CompanyImport.java +++ b/src/com/engine/organization/util/saveimport/CompanyImport.java @@ -251,7 +251,7 @@ public class CompanyImport { Map syncMap = new OrganizationSyncEc(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.ADD, map, false).sync(); if (OrgImportUtil.isThrowError(syncMap)) { // 刷新组织架构图 - //TODO new CompanyTriggerRunnable(infoParams.getId()).run(); + // new CompanyTriggerRunnable(infoParams.getId()).run(); historyDetailPO.setOperateDetail("添加成功"); historyDetailPO.setStatus("1"); } else { @@ -274,7 +274,7 @@ public class CompanyImport { Map syncMap = new OrganizationSyncEc(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.UPDATE, map, false).sync(); if (OrgImportUtil.isThrowError(syncMap)) { // 刷新组织架构图 - //TODO new CompanyTriggerRunnable(companyId).run(); + // new CompanyTriggerRunnable(companyId).run(); historyDetailPO.setOperateDetail("更新成功"); historyDetailPO.setStatus("1"); } else { diff --git a/src/com/engine/organization/util/saveimport/DepartmentImport.java b/src/com/engine/organization/util/saveimport/DepartmentImport.java index 6f05cd62..756741c7 100644 --- a/src/com/engine/organization/util/saveimport/DepartmentImport.java +++ b/src/com/engine/organization/util/saveimport/DepartmentImport.java @@ -311,7 +311,7 @@ public class DepartmentImport { Map syncMap = new OrganizationSyncEc(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.UPDATE, map, false).sync(); if (OrgImportUtil.isThrowError(syncMap)) { // 刷新组织架构图 - //TODO new DepartmentTriggerRunnable(departmentId).run(); + // new DepartmentTriggerRunnable(departmentId).run(); historyDetailPO.setOperateDetail("更新成功"); historyDetailPO.setStatus("1"); } else { diff --git a/src/com/engine/organization/web/OrgVirtualController.java b/src/com/engine/organization/web/OrgVirtualController.java index 61ad0497..ccc89614 100644 --- a/src/com/engine/organization/web/OrgVirtualController.java +++ b/src/com/engine/organization/web/OrgVirtualController.java @@ -19,7 +19,6 @@ import java.util.Map; /** * @Author liang.cheng * @Date 2023/6/27 3:41 PM - * @Description: TODO * @Version 1.0 */ public class OrgVirtualController { diff --git a/src/com/engine/organization/wrapper/JobWrapper.java b/src/com/engine/organization/wrapper/JobWrapper.java index 718ca48d..fecae1d5 100644 --- a/src/com/engine/organization/wrapper/JobWrapper.java +++ b/src/com/engine/organization/wrapper/JobWrapper.java @@ -167,7 +167,7 @@ public class JobWrapper extends OrganizationWrapper { }.getClass(), jobById.getJobNo(), JSON.toJSONString(params), jobById, newJobById); // 更新组织架构图 - //TODO new Thread(new JobTriggerRunnable(jobById, newJobById)).start(); + // new Thread(new JobTriggerRunnable(jobById, newJobById)).start(); return updateForbiddenTagById; } @@ -185,7 +185,7 @@ public class JobWrapper extends OrganizationWrapper { writeOperateLog(new Object() { }.getClass(), jobPO.getJobTitleName(), JSON.toJSONString(ids), "删除岗位"); // 更新组织架构图 - // TODO new JobTriggerRunnable(jobPO).run(); + // new JobTriggerRunnable(jobPO).run(); } return deleteByIds; } diff --git a/src/com/engine/organization/wrapper/OrgVirtualWrapper.java b/src/com/engine/organization/wrapper/OrgVirtualWrapper.java index 88e1e5e2..2b3c88b4 100644 --- a/src/com/engine/organization/wrapper/OrgVirtualWrapper.java +++ b/src/com/engine/organization/wrapper/OrgVirtualWrapper.java @@ -11,7 +11,6 @@ import java.util.Map; /** * @Author liang.cheng * @Date 2023/6/27 3:42 PM - * @Description: TODO * @Version 1.0 */ public class OrgVirtualWrapper extends Service { -- 2.40.0.windows.1 From 2e58769c8b7b18f0ab60f5eba5a504523b374c5e Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Wed, 5 Jul 2023 09:16:17 +0800 Subject: [PATCH 06/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/chart/ReasourceListParam.java | 21 ++++++++++ .../entity/chart/ResourceListColumns.java | 27 +++++++++++++ .../hrmresource/po/ResourceChartPO.java | 39 +++++++++++++++++++ .../hrmresource/vo/ResourceChartVO.java | 38 ++++++++++++++++++ .../mapper/resource/HrmResourceMapper.java | 11 ++++++ .../mapper/resource/HrmResourceMapper.xml | 5 +++ .../mapper/resource/ResourceMapper.java | 3 ++ .../service/HrmResourceService.java | 12 ++++++ .../service/impl/HrmResourceServiceImpl.java | 6 +++ .../organization/web/OrgChartController.java | 2 + 10 files changed, 164 insertions(+) create mode 100644 src/com/engine/organization/entity/chart/ReasourceListParam.java create mode 100644 src/com/engine/organization/entity/chart/ResourceListColumns.java create mode 100644 src/com/engine/organization/entity/hrmresource/po/ResourceChartPO.java create mode 100644 src/com/engine/organization/entity/hrmresource/vo/ResourceChartVO.java diff --git a/src/com/engine/organization/entity/chart/ReasourceListParam.java b/src/com/engine/organization/entity/chart/ReasourceListParam.java new file mode 100644 index 00000000..a98e5d5e --- /dev/null +++ b/src/com/engine/organization/entity/chart/ReasourceListParam.java @@ -0,0 +1,21 @@ +package com.engine.organization.entity.chart; + +import com.engine.organization.common.BaseQueryParam; +import lombok.*; + +/** + * @Author liang.cheng + * @Date 2023/7/3 2:48 PM + * @Description: TODO + * @Version 1.0 + */ + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper=false) +public class ReasourceListParam extends BaseQueryParam { + + private Integer departmentId; +} diff --git a/src/com/engine/organization/entity/chart/ResourceListColumns.java b/src/com/engine/organization/entity/chart/ResourceListColumns.java new file mode 100644 index 00000000..4ed631c4 --- /dev/null +++ b/src/com/engine/organization/entity/chart/ResourceListColumns.java @@ -0,0 +1,27 @@ +package com.engine.organization.entity.chart; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author liang.cheng + * @Date 2023/7/3 2:16 PM + * @Description: TODO + * @Version 1.0 + */ + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ResourceListColumns { + + private String title; + + private String dataIndex; + + private String key; + +} diff --git a/src/com/engine/organization/entity/hrmresource/po/ResourceChartPO.java b/src/com/engine/organization/entity/hrmresource/po/ResourceChartPO.java new file mode 100644 index 00000000..63868f50 --- /dev/null +++ b/src/com/engine/organization/entity/hrmresource/po/ResourceChartPO.java @@ -0,0 +1,39 @@ +package com.engine.organization.entity.hrmresource.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author liang.cheng + * @Date 2023/7/3 2:25 PM + * @Description: TODO + * @Version 1.0 + */ + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ResourceChartPO { + + private Long id; + + private String workCode; + + private String lastName; + + private String sex; + + private Integer departmentId; + + private Integer subcompanyid1; + + private Integer jobTitle; + + private Integer status; + + private String mobile; + +} diff --git a/src/com/engine/organization/entity/hrmresource/vo/ResourceChartVO.java b/src/com/engine/organization/entity/hrmresource/vo/ResourceChartVO.java new file mode 100644 index 00000000..5ac49413 --- /dev/null +++ b/src/com/engine/organization/entity/hrmresource/vo/ResourceChartVO.java @@ -0,0 +1,38 @@ +package com.engine.organization.entity.hrmresource.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author liang.cheng + * @Date 2023/7/3 2:40 PM + * @Description: TODO + * @Version 1.0 + */ + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ResourceChartVO { + + private Long id; + + private String workCode; + + private String lastName; + + private String sex; + + private String departmentName; + + private String subcompanyName; + + private String jobTitle; + + private Integer status; + + private String mobile; +} diff --git a/src/com/engine/organization/mapper/resource/HrmResourceMapper.java b/src/com/engine/organization/mapper/resource/HrmResourceMapper.java index 1556a3d8..e926d5a1 100644 --- a/src/com/engine/organization/mapper/resource/HrmResourceMapper.java +++ b/src/com/engine/organization/mapper/resource/HrmResourceMapper.java @@ -1,6 +1,7 @@ package com.engine.organization.mapper.resource; import com.alibaba.fastjson.JSONObject; +import com.engine.organization.entity.hrmresource.po.ResourceChartPO; import com.engine.organization.entity.hrmresource.po.ResourcePO; import com.engine.organization.entity.hrmresource.param.SearchTemplateParam; import com.engine.organization.entity.hrmresource.po.SearchTemplatePO; @@ -78,4 +79,14 @@ public interface HrmResourceMapper { String queryLabelName(@Param("fieldName") String fieldName, @Param("scopeId") String scopeId); + /** + * @Description: 根据部门查询 + * @Author: liang.cheng + * @Date: 2023/7/3 2:38 PM + * @param: [departmentId] + * @return: java.util.List + */ + List selectByDepartmentId(@Param("departmentId")Integer departmentId); + + } diff --git a/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml b/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml index 6269d647..e7d48fa6 100644 --- a/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml +++ b/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml @@ -443,4 +443,9 @@ and creator = #{userId} + + \ No newline at end of file diff --git a/src/com/engine/organization/mapper/resource/ResourceMapper.java b/src/com/engine/organization/mapper/resource/ResourceMapper.java index 3883e6fd..3d348299 100644 --- a/src/com/engine/organization/mapper/resource/ResourceMapper.java +++ b/src/com/engine/organization/mapper/resource/ResourceMapper.java @@ -2,6 +2,7 @@ package com.engine.organization.mapper.resource; import com.engine.organization.entity.hrmresource.po.HrmResourcePO; +import com.engine.organization.entity.hrmresource.po.ResourceChartPO; import com.engine.organization.entity.hrmresource.vo.HrmResourceVO; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ public interface ResourceMapper { List getIdByKeyField(@Param("keyField") String keyField, @Param("keyFieldValue") String keyFieldValue); + + } diff --git a/src/com/engine/organization/service/HrmResourceService.java b/src/com/engine/organization/service/HrmResourceService.java index f5487042..d635110c 100644 --- a/src/com/engine/organization/service/HrmResourceService.java +++ b/src/com/engine/organization/service/HrmResourceService.java @@ -167,4 +167,16 @@ public interface HrmResourceService { Map getCustomTransferData(Map params); Integer saveColumnsCustomTemplate(Map params); + + + /** + * @Description: 组织图人员列表 + * @Author: liang.cheng + * @Date: 2023/7/3 11:04 AM + * @param: [departmentId] + * @return: java.util.Map + */ + Map chartResourceList(Integer departmentId); + + } diff --git a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java index 273c9fd6..478e5841 100644 --- a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java @@ -423,6 +423,12 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic return jclOrgCustomTemplatePO.getId(); } + @Override + public Map chartResourceList(Integer departmentId) { + + return null; + } + @Override public Map getSearchCondition(Map params) { String templateId = Util.null2String(params.get("templateId")); diff --git a/src/com/engine/organization/web/OrgChartController.java b/src/com/engine/organization/web/OrgChartController.java index b4ddc9e8..7bace160 100644 --- a/src/com/engine/organization/web/OrgChartController.java +++ b/src/com/engine/organization/web/OrgChartController.java @@ -65,6 +65,8 @@ public class OrgChartController { + + @GET @Path("/getSubCompanyTree") @Produces(MediaType.APPLICATION_JSON) -- 2.40.0.windows.1 From 9ffd5c3cfb067d872b4489d5efa7ceab2d8e64fd Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Wed, 5 Jul 2023 17:36:04 +0800 Subject: [PATCH 07/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/HrmResourceServiceImpl.java | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java index 478e5841..1680200d 100644 --- a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java @@ -13,6 +13,7 @@ import com.engine.core.impl.Service; import com.engine.hrm.util.face.HrmFaceCheckManager; import com.engine.organization.component.OrganizationWeaTable; import com.engine.organization.entity.DeleteParam; +import com.engine.organization.entity.chart.ResourceListColumns; import com.engine.organization.entity.company.bo.CompBO; import com.engine.organization.entity.company.po.CompPO; import com.engine.organization.entity.department.bo.DepartmentBO; @@ -22,10 +23,7 @@ import com.engine.organization.entity.extend.po.ExtendInfoPO; import com.engine.organization.entity.hrmresource.bo.HrmRelationBO; import com.engine.organization.entity.hrmresource.param.HrmRelationSaveParam; import com.engine.organization.entity.hrmresource.param.SearchTemplateParam; -import com.engine.organization.entity.hrmresource.po.HrmRelationPO; -import com.engine.organization.entity.hrmresource.po.JclOrgCustomTemplatePO; -import com.engine.organization.entity.hrmresource.po.SearchTemplatePO; -import com.engine.organization.entity.hrmresource.po.TransferDataPO; +import com.engine.organization.entity.hrmresource.po.*; import com.engine.organization.entity.hrmresource.vo.HrmResourceVO; import com.engine.organization.entity.jclimport.po.CusFormFieldPO; import com.engine.organization.entity.job.bo.JobBO; @@ -425,8 +423,28 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic @Override public Map chartResourceList(Integer departmentId) { + Map dataMap = new HashMap<>(); + List resourceListColumns = getTableColumns(); + List resourceChartPOS = getHrmResourceMapper().selectByDepartmentId(departmentId); + dataMap.put("columns",resourceListColumns); + dataMap.put("dataSource",resourceChartPOS); + return dataMap; + } + + private List getTableColumns() { + List list = new ArrayList<>(); + list.add(ResourceListColumns.builder().title("序号").dataIndex("id").key("id").build()); + list.add(ResourceListColumns.builder().title("工号").dataIndex("workCode").key("workCode").build()); + list.add(ResourceListColumns.builder().title("姓名").dataIndex("lastName").key("lastName").build()); + list.add(ResourceListColumns.builder().title("性别").dataIndex("sex").key("sex").build()); + list.add(ResourceListColumns.builder().title("部门").dataIndex("departmentId").key("departmentId").build()); + list.add(ResourceListColumns.builder().title("分部").dataIndex("subcompamyid1").key("subcompamyid1").build()); + list.add(ResourceListColumns.builder().title("岗位").dataIndex("jobTitle").key("jobTitle").build()); + //list.add(ResourceListColumns.builder().title("状态").dataIndex("status").key("status").build()); + list.add(ResourceListColumns.builder().title("手机号").dataIndex("mobile").key("mobile").build()); + + return list; - return null; } @Override -- 2.40.0.windows.1 From e760eae9a0a6b7e11ebeca3f1432a2039cc5c2eb Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 5 Jul 2023 17:41:30 +0800 Subject: [PATCH 08/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=EF=BC=8C=E4=BA=BA=E5=91=98=E5=8D=A1=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/service/ChartService.java | 3 + .../service/impl/ChartServiceImpl.java | 97 ++++++++++++++++++- .../organization/web/OrgChartController.java | 18 +++- .../organization/wrapper/OrgChartWrapper.java | 4 + 4 files changed, 116 insertions(+), 6 deletions(-) diff --git a/src/com/engine/organization/service/ChartService.java b/src/com/engine/organization/service/ChartService.java index d49e9e78..20710587 100644 --- a/src/com/engine/organization/service/ChartService.java +++ b/src/com/engine/organization/service/ChartService.java @@ -26,4 +26,7 @@ public interface ChartService { Map asyncCompanyData(Map params); + Map getDepartmentDetail(Map params); + + } diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 68fdb5af..ce1cf710 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -4,14 +4,14 @@ import com.engine.core.impl.Service; import com.engine.organization.entity.chart.ChartPO; import com.engine.organization.service.ChartService; import com.engine.organization.util.HasRightUtil; +import com.engine.organization.util.OrganizationAssert; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** * @author:dxfeng @@ -162,6 +162,95 @@ public class ChartServiceImpl extends Service implements ChartService { return result; } + @Override + public Map getDepartmentDetail(Map params) { + String rootId = Util.null2String(params.get("rootId")); + + OrganizationAssert.isFalse(StringUtils.isBlank(rootId) || !rootId.startsWith("d_"), "数据有误,未查询到对应数据"); + String departmentId = rootId.split("_")[1]; + + // 维度 + String dimension = Util.null2String(params.get("fclass")); + dimension = StringUtils.isBlank(dimension) ? "0" : dimension; + + + // 初始化表名 + initTableNameByClass(dimension); + + List dataList = new ArrayList<>(); + List resourceList = new ArrayList<>(); + Set jobTitleSet = new HashSet<>(); + RecordSet rs = new RecordSet(); + // TODO 查询当前实际的数据 + String sql; + // 查询当当前部门下的人员 + if ("0".equals(dimension)) { + sql = "select a.id,a.lastname as 'name' ,a.jobtitle from hrmresource a where a.departmentid = '" + departmentId + "'"; + } else { + sql = "select a.id,a.lastname as 'name' ,a.jobtitle from hrmresource a inner join hrmresourcevirtual b on a.id = b.resourceid where b.departmentid = '" + departmentId + "'"; + } + rs.executeQuery(sql); + while (rs.next()){ + String jobTitle = Util.null2String(rs.getString("jobtitle")); + ChartPO chartPO = new ChartPO(); + chartPO.setFtype("4"); + chartPO.setFobjid(rs.getString("id")); + chartPO.setFname(rs.getString("name")); + // 岗位处理后的ID + chartPO.setParentId(departmentId + "_" + jobTitle); + chartPO.setExpand("1"); + chartPO.setHasChildren("0"); + resourceList.add(chartPO); + + jobTitleSet.add(jobTitle); + } + Map> resourceMap = resourceList.stream().collect(Collectors.groupingBy(ChartPO::getParentId)); + // 查询人员的岗位 + if(CollectionUtils.isNotEmpty(jobTitleSet)) { + sql = "select a.id,a.jobtitlename as 'name' from hrmjobtitles a where a.id in(" + StringUtils.join(jobTitleSet, ",") + ")"; + rs.executeQuery(sql); + while (rs.next()){ + ChartPO chartPO = new ChartPO(); + chartPO.setFtype("3"); + chartPO.setFobjid(rs.getString("id")); + chartPO.setId(departmentId + "_" + chartPO.getFobjid()); + chartPO.setFname(rs.getString("name")); + // 岗位处理后的ID + chartPO.setParentId(rootId); + chartPO.setExpand("1"); + chartPO.setHasChildren("1"); + dataList.add(chartPO); + + // 避免出现人员没有上级岗位的情况 + List chartPOS = resourceMap.get(chartPO.getId()); + if (CollectionUtils.isNotEmpty(chartPOS)) { + dataList.addAll(chartPOS); + } + } + } + // 查询部门本身 + sql = "select a.id,a.departmentname as 'name' from " + DEPARTMENT_TABLE + " a where id = '" + departmentId + "'"; + rs.executeQuery(sql); + if(rs.next()){ + ChartPO chartPO = new ChartPO(); + chartPO.setFtype("2"); + chartPO.setFobjid(departmentId); + chartPO.setId(rootId); + chartPO.setFname(rs.getString("name")); + // 岗位处理后的ID + chartPO.setParentId(rootId); + chartPO.setExpand("1"); + chartPO.setHasChildren(CollectionUtils.isNotEmpty(dataList) ? "1" : "0"); + dataList.add(chartPO); + } + + + Map result = new HashMap<>(); + result.put("api_status", true); + result.put("data", dataList); + return result; + } + /** * 查询实时数据,顶级元素SQL * diff --git a/src/com/engine/organization/web/OrgChartController.java b/src/com/engine/organization/web/OrgChartController.java index 7bace160..2c9b94bb 100644 --- a/src/com/engine/organization/web/OrgChartController.java +++ b/src/com/engine/organization/web/OrgChartController.java @@ -63,8 +63,22 @@ public class OrgChartController { return JSONObject.toJSONString(apidatas); } - - + @GET + @Path("/getDepartmentDetail") + @Produces(MediaType.APPLICATION_JSON) + public String getDepartmentDetail(@Context HttpServletRequest request, @Context HttpServletResponse response) { + Map apidatas = new HashMap<>(); + try { + User user = HrmUserVarify.getUser(request, response); + apidatas = getOrgChartWrapper(user).getDepartmentDetail(ParamUtil.request2Map(request), user); + } catch (Exception e) { + //异常处理 + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } @GET diff --git a/src/com/engine/organization/wrapper/OrgChartWrapper.java b/src/com/engine/organization/wrapper/OrgChartWrapper.java index 8d117795..f916a2a1 100644 --- a/src/com/engine/organization/wrapper/OrgChartWrapper.java +++ b/src/com/engine/organization/wrapper/OrgChartWrapper.java @@ -60,4 +60,8 @@ public class OrgChartWrapper extends Service { public Map searchTimeLines(Map request2Map, User user) { return getOrgChartService(user).searchTimeLines(request2Map); } + + public Map getDepartmentDetail(Map request2Map, User user) { + return getChartService(user).getDepartmentDetail(request2Map); + } } -- 2.40.0.windows.1 From 603f7f606abe925144858882bac0d84239959c68 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 5 Jul 2023 17:54:58 +0800 Subject: [PATCH 09/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=EF=BC=8C=E4=BA=BA=E5=91=98=E5=8D=A1=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/organization/service/impl/ChartServiceImpl.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index ce1cf710..2cf6cbee 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -1,5 +1,6 @@ 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.service.ChartService; @@ -168,6 +169,11 @@ public class ChartServiceImpl extends Service implements ChartService { OrganizationAssert.isFalse(StringUtils.isBlank(rootId) || !rootId.startsWith("d_"), "数据有误,未查询到对应数据"); String departmentId = rootId.split("_")[1]; + String detauleType = Util.null2String(params.get("detauleType")); + if(!"chart".equals(detauleType)){ + return ServiceUtil.getService(HrmResourceServiceImpl.class, user).chartResourceList(Integer.parseInt(departmentId)); + } + // 维度 String dimension = Util.null2String(params.get("fclass")); -- 2.40.0.windows.1 From 49036ba7040bc93ce432110ac47af6f2f4c188e5 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 5 Jul 2023 18:13:43 +0800 Subject: [PATCH 10/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=EF=BC=8C=E4=BA=BA=E5=91=98=E5=8D=A1=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/organization/service/impl/ChartServiceImpl.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 2cf6cbee..006e5580 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -244,7 +244,6 @@ public class ChartServiceImpl extends Service implements ChartService { chartPO.setId(rootId); chartPO.setFname(rs.getString("name")); // 岗位处理后的ID - chartPO.setParentId(rootId); chartPO.setExpand("1"); chartPO.setHasChildren(CollectionUtils.isNotEmpty(dataList) ? "1" : "0"); dataList.add(chartPO); -- 2.40.0.windows.1 From 79f64f7f93a29042450fc65b868cae92ae1dca7b Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 6 Jul 2023 10:06:38 +0800 Subject: [PATCH 11/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=EF=BC=8C=E5=88=97=E8=A1=A8=E5=AD=97=E6=AE=B5=E8=BD=AC?= =?UTF-8?q?=E6=8D=A2=E3=80=81=E5=8D=A1=E7=89=87=E5=9C=A8=E5=B2=97=E6=95=B0?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/entity/chart/ChartPO.java | 8 ++++++++ .../entity/hrmresource/po/ResourceChartPO.java | 6 +++--- .../mapper/resource/HrmResourceMapper.xml | 18 ++++++++++++++++-- .../service/impl/ChartServiceImpl.java | 5 +++++ .../service/impl/HrmResourceServiceImpl.java | 2 +- 5 files changed, 33 insertions(+), 6 deletions(-) diff --git a/src/com/engine/organization/entity/chart/ChartPO.java b/src/com/engine/organization/entity/chart/ChartPO.java index 5495144b..46055172 100644 --- a/src/com/engine/organization/entity/chart/ChartPO.java +++ b/src/com/engine/organization/entity/chart/ChartPO.java @@ -28,7 +28,11 @@ public class ChartPO { private String fisvitual; private String hasChildren; + // 在岗数 + private Integer fonjob; + private String id; + private String key; public String getId() { if (StringUtils.isNotBlank(ftype)) { @@ -52,4 +56,8 @@ public class ChartPO { public String getFisvitual() { return StringUtils.isBlank(fisvitual) ? "0" : fisvitual; } + + public String getKey() { + return getId(); + } } diff --git a/src/com/engine/organization/entity/hrmresource/po/ResourceChartPO.java b/src/com/engine/organization/entity/hrmresource/po/ResourceChartPO.java index 63868f50..48b68d96 100644 --- a/src/com/engine/organization/entity/hrmresource/po/ResourceChartPO.java +++ b/src/com/engine/organization/entity/hrmresource/po/ResourceChartPO.java @@ -26,11 +26,11 @@ public class ResourceChartPO { private String sex; - private Integer departmentId; + private String departmentId; - private Integer subcompanyid1; + private String subcompanyid1; - private Integer jobTitle; + private String jobTitle; private Integer status; diff --git a/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml b/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml index e7d48fa6..56208857 100644 --- a/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml +++ b/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml @@ -444,8 +444,22 @@ \ No newline at end of file diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 006e5580..ea2203c7 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -186,6 +186,7 @@ public class ChartServiceImpl extends Service implements ChartService { List dataList = new ArrayList<>(); List resourceList = new ArrayList<>(); Set jobTitleSet = new HashSet<>(); + int departmentOnJob = 0; RecordSet rs = new RecordSet(); // TODO 查询当前实际的数据 String sql; @@ -201,6 +202,7 @@ public class ChartServiceImpl extends Service implements ChartService { ChartPO chartPO = new ChartPO(); chartPO.setFtype("4"); chartPO.setFobjid(rs.getString("id")); + chartPO.setId(chartPO.getFobjid()); chartPO.setFname(rs.getString("name")); // 岗位处理后的ID chartPO.setParentId(departmentId + "_" + jobTitle); @@ -231,6 +233,8 @@ public class ChartServiceImpl extends Service implements ChartService { List chartPOS = resourceMap.get(chartPO.getId()); if (CollectionUtils.isNotEmpty(chartPOS)) { dataList.addAll(chartPOS); + chartPO.setFonjob(chartPOS.size()); + departmentOnJob += chartPO.getFonjob(); } } } @@ -246,6 +250,7 @@ public class ChartServiceImpl extends Service implements ChartService { // 岗位处理后的ID chartPO.setExpand("1"); chartPO.setHasChildren(CollectionUtils.isNotEmpty(dataList) ? "1" : "0"); + chartPO.setFonjob(departmentOnJob); dataList.add(chartPO); } diff --git a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java index 1680200d..c7d054eb 100644 --- a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java @@ -438,7 +438,7 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic list.add(ResourceListColumns.builder().title("姓名").dataIndex("lastName").key("lastName").build()); list.add(ResourceListColumns.builder().title("性别").dataIndex("sex").key("sex").build()); list.add(ResourceListColumns.builder().title("部门").dataIndex("departmentId").key("departmentId").build()); - list.add(ResourceListColumns.builder().title("分部").dataIndex("subcompamyid1").key("subcompamyid1").build()); + list.add(ResourceListColumns.builder().title("分部").dataIndex("subcompanyid1").key("subcompanyid1").build()); list.add(ResourceListColumns.builder().title("岗位").dataIndex("jobTitle").key("jobTitle").build()); //list.add(ResourceListColumns.builder().title("状态").dataIndex("status").key("status").build()); list.add(ResourceListColumns.builder().title("手机号").dataIndex("mobile").key("mobile").build()); -- 2.40.0.windows.1 From 38656dde58d96194a1d93f097d1d4322afc6861c Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 6 Jul 2023 10:47:34 +0800 Subject: [PATCH 12/87] =?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=E8=B4=9F=E8=B4=A3=E4=BA=BA?= =?UTF-8?q?=E3=80=81=E4=B8=BB=E6=AC=A1=E8=B4=A6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/entity/chart/ChartPO.java | 10 +++++++ .../service/impl/ChartServiceImpl.java | 30 ++++++++++++++++--- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/src/com/engine/organization/entity/chart/ChartPO.java b/src/com/engine/organization/entity/chart/ChartPO.java index 46055172..e3b08876 100644 --- a/src/com/engine/organization/entity/chart/ChartPO.java +++ b/src/com/engine/organization/entity/chart/ChartPO.java @@ -31,6 +31,12 @@ public class ChartPO { // 在岗数 private Integer fonjob; + // 部门负责人 + private String fleader; + + // 人员主次账号 + private String belongto; + private String id; private String key; @@ -54,6 +60,10 @@ public class ChartPO { } public String getFisvitual() { + // 人员、岗位不展示次字段 + if (StringUtils.isNotBlank(ftype) && ("3".equals(ftype) || "4".equals(ftype))) { + return null; + } return StringUtils.isBlank(fisvitual) ? "0" : fisvitual; } diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index ea2203c7..c15b19c2 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -3,9 +3,11 @@ 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.mapper.hrmresource.SystemDataMapper; import com.engine.organization.service.ChartService; import com.engine.organization.util.HasRightUtil; import com.engine.organization.util.OrganizationAssert; +import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; @@ -192,9 +194,9 @@ public class ChartServiceImpl extends Service implements ChartService { String sql; // 查询当当前部门下的人员 if ("0".equals(dimension)) { - sql = "select a.id,a.lastname as 'name' ,a.jobtitle from hrmresource a where a.departmentid = '" + departmentId + "'"; + sql = "select a.id,a.lastname as 'name' ,a.jobtitle ,a.belongto from hrmresource a where a.departmentid = '" + departmentId + "'"; } else { - sql = "select a.id,a.lastname as 'name' ,a.jobtitle from hrmresource a inner join hrmresourcevirtual b on a.id = b.resourceid where b.departmentid = '" + departmentId + "'"; + sql = "select a.id,a.lastname as 'name' ,a.jobtitle ,a.belongto from hrmresource a inner join hrmresourcevirtual b on a.id = b.resourceid where b.departmentid = '" + departmentId + "'"; } rs.executeQuery(sql); while (rs.next()){ @@ -206,8 +208,9 @@ public class ChartServiceImpl extends Service implements ChartService { chartPO.setFname(rs.getString("name")); // 岗位处理后的ID chartPO.setParentId(departmentId + "_" + jobTitle); - chartPO.setExpand("1"); + chartPO.setExpand("0"); chartPO.setHasChildren("0"); + chartPO.setBelongto(Util.null2String(rs.getString("belongto"))); resourceList.add(chartPO); jobTitleSet.add(jobTitle); @@ -239,9 +242,10 @@ public class ChartServiceImpl extends Service implements ChartService { } } // 查询部门本身 - sql = "select a.id,a.departmentname as 'name' from " + DEPARTMENT_TABLE + " a where id = '" + departmentId + "'"; + sql = "select a.id,a.departmentname as 'name',b.bmfzr from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'"; rs.executeQuery(sql); if(rs.next()){ + String fLeader = Util.null2String(rs.getString("bmfzr")); ChartPO chartPO = new ChartPO(); chartPO.setFtype("2"); chartPO.setFobjid(departmentId); @@ -251,6 +255,9 @@ public class ChartServiceImpl extends Service implements ChartService { chartPO.setExpand("1"); chartPO.setHasChildren(CollectionUtils.isNotEmpty(dataList) ? "1" : "0"); chartPO.setFonjob(departmentOnJob); + + // 部门负责人 + chartPO.setFleader(getDepartmentLeader(fLeader)); dataList.add(chartPO); } @@ -445,4 +452,19 @@ public class ChartServiceImpl extends Service implements ChartService { } return false; } + + private String getDepartmentLeader(String ids) { + if (StringUtils.isBlank(ids)) { + return ""; + } + List leaderList = new ArrayList<>(); + String[] split = ids.split(","); + for (String s : split) { + String lastName = MapperProxyFactory.getProxy(SystemDataMapper.class).getScHrmResourceNameById(s); + if (StringUtils.isNotBlank(lastName)) { + leaderList.add(lastName); + } + } + return StringUtils.join(leaderList, ","); + } } -- 2.40.0.windows.1 From 436decbc85ef4784fb6ff984f48b345fd51b82f2 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 6 Jul 2023 13:30:39 +0800 Subject: [PATCH 13/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=EF=BC=8C=E4=BA=BA=E5=91=98=E5=88=97=E8=A1=A8=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E8=BD=AC=E6=8D=A2=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/entity/chart/ChartPO.java | 9 +++++ .../hrmresource/bo/ResourceChartBO.java | 37 +++++++++++++++++++ .../hrmresource/po/ResourceChartPO.java | 6 +-- .../mapper/resource/HrmResourceMapper.xml | 18 +-------- .../service/impl/ChartServiceImpl.java | 5 ++- .../service/impl/HrmResourceServiceImpl.java | 9 +++-- 6 files changed, 60 insertions(+), 24 deletions(-) create mode 100644 src/com/engine/organization/entity/hrmresource/bo/ResourceChartBO.java diff --git a/src/com/engine/organization/entity/chart/ChartPO.java b/src/com/engine/organization/entity/chart/ChartPO.java index e3b08876..89bf1860 100644 --- a/src/com/engine/organization/entity/chart/ChartPO.java +++ b/src/com/engine/organization/entity/chart/ChartPO.java @@ -36,6 +36,8 @@ public class ChartPO { // 人员主次账号 private String belongto; + // 人员工龄 + private String companyWorkYear; private String id; private String key; @@ -70,4 +72,11 @@ public class ChartPO { public String getKey() { return getId(); } + + public String getCompanyWorkYear() { + if (StringUtils.isNotBlank(ftype) && "4".equals(ftype)) { + return StringUtils.isNotBlank(companyWorkYear) ? companyWorkYear : "0"; + } + return null; + } } diff --git a/src/com/engine/organization/entity/hrmresource/bo/ResourceChartBO.java b/src/com/engine/organization/entity/hrmresource/bo/ResourceChartBO.java new file mode 100644 index 00000000..48d08b7e --- /dev/null +++ b/src/com/engine/organization/entity/hrmresource/bo/ResourceChartBO.java @@ -0,0 +1,37 @@ +package com.engine.organization.entity.hrmresource.bo; + +import com.engine.organization.entity.hrmresource.po.ResourceChartPO; +import com.engine.organization.entity.hrmresource.vo.ResourceChartVO; +import com.engine.organization.transmethod.HrmResourceTransMethod; +import weaver.general.Util; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author:dxfeng + * @createTime: 2023/07/06 + * @version: 1.0 + */ +public class ResourceChartBO { + + public static List convertToVO(List resourceChartPOS) { + List resourceChartVOS = new ArrayList<>(); + for (ResourceChartPO resourceChartPO : resourceChartPOS) { + ResourceChartVO resourceChartVO = new ResourceChartVO(); + resourceChartVO.setId(resourceChartPO.getId()); + resourceChartVO.setWorkCode(resourceChartPO.getWorkCode()); + resourceChartVO.setLastName(resourceChartPO.getLastName()); + resourceChartVO.setSex("1".equals(resourceChartPO.getSex()) ? "女" : "男"); + resourceChartVO.setDepartmentName(HrmResourceTransMethod.getDepartmentName(Util.null2String(resourceChartPO.getDepartmentId()))); + resourceChartVO.setSubcompanyName(HrmResourceTransMethod.getCompanyName(Util.null2String(resourceChartPO.getSubcompanyid1()))); + resourceChartVO.setJobTitle(HrmResourceTransMethod.getJobName(Util.null2String(resourceChartPO.getJobTitle()))); + resourceChartVO.setStatus(resourceChartPO.getStatus()); + resourceChartVO.setMobile(resourceChartPO.getMobile()); + resourceChartVOS.add(resourceChartVO); + } + return resourceChartVOS; + } + + +} diff --git a/src/com/engine/organization/entity/hrmresource/po/ResourceChartPO.java b/src/com/engine/organization/entity/hrmresource/po/ResourceChartPO.java index 48b68d96..63868f50 100644 --- a/src/com/engine/organization/entity/hrmresource/po/ResourceChartPO.java +++ b/src/com/engine/organization/entity/hrmresource/po/ResourceChartPO.java @@ -26,11 +26,11 @@ public class ResourceChartPO { private String sex; - private String departmentId; + private Integer departmentId; - private String subcompanyid1; + private Integer subcompanyid1; - private String jobTitle; + private Integer jobTitle; private Integer status; diff --git a/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml b/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml index 56208857..e7d48fa6 100644 --- a/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml +++ b/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml @@ -444,22 +444,8 @@ \ No newline at end of file diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index c15b19c2..283fd751 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -194,9 +194,9 @@ public class ChartServiceImpl extends Service implements ChartService { String sql; // 查询当当前部门下的人员 if ("0".equals(dimension)) { - sql = "select a.id,a.lastname as 'name' ,a.jobtitle ,a.belongto from hrmresource a where a.departmentid = '" + departmentId + "'"; + sql = "select a.id,a.lastname as 'name' ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a where a.departmentid = '" + departmentId + "'"; } else { - sql = "select a.id,a.lastname as 'name' ,a.jobtitle ,a.belongto from hrmresource a inner join hrmresourcevirtual b on a.id = b.resourceid where b.departmentid = '" + departmentId + "'"; + sql = "select a.id,a.lastname as 'name' ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a inner join hrmresourcevirtual b on a.id = b.resourceid where b.departmentid = '" + departmentId + "'"; } rs.executeQuery(sql); while (rs.next()){ @@ -211,6 +211,7 @@ public class ChartServiceImpl extends Service implements ChartService { chartPO.setExpand("0"); chartPO.setHasChildren("0"); chartPO.setBelongto(Util.null2String(rs.getString("belongto"))); + chartPO.setCompanyWorkYear(rs.getString("companyworkyear")); resourceList.add(chartPO); jobTitleSet.add(jobTitle); diff --git a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java index c7d054eb..aa2a34d7 100644 --- a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java @@ -21,10 +21,12 @@ import com.engine.organization.entity.department.po.DepartmentPO; import com.engine.organization.entity.extend.bo.ExtendInfoBO; import com.engine.organization.entity.extend.po.ExtendInfoPO; import com.engine.organization.entity.hrmresource.bo.HrmRelationBO; +import com.engine.organization.entity.hrmresource.bo.ResourceChartBO; import com.engine.organization.entity.hrmresource.param.HrmRelationSaveParam; import com.engine.organization.entity.hrmresource.param.SearchTemplateParam; import com.engine.organization.entity.hrmresource.po.*; import com.engine.organization.entity.hrmresource.vo.HrmResourceVO; +import com.engine.organization.entity.hrmresource.vo.ResourceChartVO; import com.engine.organization.entity.jclimport.po.CusFormFieldPO; import com.engine.organization.entity.job.bo.JobBO; import com.engine.organization.entity.job.po.JobPO; @@ -426,8 +428,9 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic Map dataMap = new HashMap<>(); List resourceListColumns = getTableColumns(); List resourceChartPOS = getHrmResourceMapper().selectByDepartmentId(departmentId); + List resourceChartVOS = ResourceChartBO.convertToVO(resourceChartPOS); dataMap.put("columns",resourceListColumns); - dataMap.put("dataSource",resourceChartPOS); + dataMap.put("dataSource",resourceChartVOS); return dataMap; } @@ -437,8 +440,8 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic list.add(ResourceListColumns.builder().title("工号").dataIndex("workCode").key("workCode").build()); list.add(ResourceListColumns.builder().title("姓名").dataIndex("lastName").key("lastName").build()); list.add(ResourceListColumns.builder().title("性别").dataIndex("sex").key("sex").build()); - list.add(ResourceListColumns.builder().title("部门").dataIndex("departmentId").key("departmentId").build()); - list.add(ResourceListColumns.builder().title("分部").dataIndex("subcompanyid1").key("subcompanyid1").build()); + list.add(ResourceListColumns.builder().title("部门").dataIndex("departmentName").key("departmentName").build()); + list.add(ResourceListColumns.builder().title("分部").dataIndex("subcompanyName").key("subcompanyName").build()); list.add(ResourceListColumns.builder().title("岗位").dataIndex("jobTitle").key("jobTitle").build()); //list.add(ResourceListColumns.builder().title("状态").dataIndex("status").key("status").build()); list.add(ResourceListColumns.builder().title("手机号").dataIndex("mobile").key("mobile").build()); -- 2.40.0.windows.1 From 7809f9ad3c6370654b0df84084deea3604fd15e7 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 6 Jul 2023 13:55:48 +0800 Subject: [PATCH 14/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=EF=BC=8C=E4=BA=BA=E5=91=98=E5=A4=B4=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/organization/entity/chart/ChartPO.java | 2 ++ .../mapper/resource/HrmResourceMapper.xml | 2 +- .../organization/service/impl/ChartServiceImpl.java | 13 ++++++++++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/com/engine/organization/entity/chart/ChartPO.java b/src/com/engine/organization/entity/chart/ChartPO.java index 89bf1860..cca64fba 100644 --- a/src/com/engine/organization/entity/chart/ChartPO.java +++ b/src/com/engine/organization/entity/chart/ChartPO.java @@ -38,6 +38,8 @@ public class ChartPO { private String belongto; // 人员工龄 private String companyWorkYear; + // 人员头像 + private String fleaderimg; private String id; private String key; diff --git a/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml b/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml index e7d48fa6..3bbc0605 100644 --- a/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml +++ b/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml @@ -445,7 +445,7 @@ \ No newline at end of file diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 283fd751..e8b32363 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -12,6 +12,7 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; +import weaver.hrm.resource.ResourceComInfo; import java.util.*; import java.util.stream.Collectors; @@ -212,6 +213,11 @@ public class ChartServiceImpl extends Service implements ChartService { chartPO.setHasChildren("0"); chartPO.setBelongto(Util.null2String(rs.getString("belongto"))); chartPO.setCompanyWorkYear(rs.getString("companyworkyear")); + try { + chartPO.setFleaderimg(new ResourceComInfo().getMessagerUrls(chartPO.getId())); + } catch (Exception e) { + throw new RuntimeException(e); + } resourceList.add(chartPO); jobTitleSet.add(jobTitle); @@ -243,7 +249,11 @@ public class ChartServiceImpl extends Service implements ChartService { } } // 查询部门本身 - sql = "select a.id,a.departmentname as 'name',b.bmfzr from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'"; + if(hasVirtualFields){ + sql = "select a.id,a.departmentname as 'name',b.bmfzr,b.bmlx as 'isvitual' from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'"; + }else { + sql = "select a.id,a.departmentname as 'name',b.bmfzr from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'"; + } rs.executeQuery(sql); if(rs.next()){ String fLeader = Util.null2String(rs.getString("bmfzr")); @@ -256,6 +266,7 @@ public class ChartServiceImpl extends Service implements ChartService { chartPO.setExpand("1"); chartPO.setHasChildren(CollectionUtils.isNotEmpty(dataList) ? "1" : "0"); chartPO.setFonjob(departmentOnJob); + chartPO.setFisvitual(rs.getString("isvitual")); // 部门负责人 chartPO.setFleader(getDepartmentLeader(fLeader)); -- 2.40.0.windows.1 From d2e1cacfa1cf5837d82fcd99af86167e9e4ef386 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 6 Jul 2023 14:10:39 +0800 Subject: [PATCH 15/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=EF=BC=8C=E4=BA=BA=E5=91=98=E5=88=97=E8=A1=A8=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0key?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/entity/hrmresource/vo/ResourceChartVO.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/com/engine/organization/entity/hrmresource/vo/ResourceChartVO.java b/src/com/engine/organization/entity/hrmresource/vo/ResourceChartVO.java index 5ac49413..ba1f9748 100644 --- a/src/com/engine/organization/entity/hrmresource/vo/ResourceChartVO.java +++ b/src/com/engine/organization/entity/hrmresource/vo/ResourceChartVO.java @@ -35,4 +35,10 @@ public class ResourceChartVO { private Integer status; private String mobile; + + private Long key; + + public Long getKey() { + return id; + } } -- 2.40.0.windows.1 From d9ea8fe26678c7d54b4839e2ea29fed667331ccd Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 6 Jul 2023 17:03:31 +0800 Subject: [PATCH 16/87] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=B9=B6=E5=8F=91?= =?UTF-8?q?=E6=83=85=E5=86=B5=E4=B8=8B=EF=BC=8C=E5=B2=97=E4=BD=8D=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=87=8D=E5=A4=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/JobServiceImpl.java | 43 ++++++++++--------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index e6ea51a2..978d858b 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -580,27 +580,30 @@ public class JobServiceImpl extends Service implements JobService { @Override public void refresh() { - //1.人员表查询 - List resourcePOS = getHrmResourceMapper().selectFilterDatas(); - //2.数据过滤 - //3.数据插入 - resourcePOS.forEach(resourcePO -> { - if (Objects.nonNull(resourcePO) && null != resourcePO.getJobtitle() && resourcePO.getJobtitle() > 0) { - int count = getJobMapper().selectByConditions(resourcePO); - if (count == 0) { - JobPO jobPO = JobPO.builder() - .ecCompany(resourcePO.getSubcompanyid1()) - .ecDepartment(resourcePO.getDepartmentid()) - .ecJobTitle(resourcePO.getJobtitle()) - .isKey(0) - .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) - .createTime(new Date()) - .updateTime(new Date()) - .build(); - getJobMapper().insertIgnoreNull(jobPO); + // 解决并发情况下,岗位数据重复问题 + synchronized(JobServiceImpl.class) { + //1.人员表查询 + List resourcePOS = getHrmResourceMapper().selectFilterDatas(); + //2.数据过滤 + //3.数据插入 + resourcePOS.forEach(resourcePO -> { + if (Objects.nonNull(resourcePO) && null != resourcePO.getJobtitle() && resourcePO.getJobtitle() > 0) { + int count = getJobMapper().selectByConditions(resourcePO); + if (count == 0) { + JobPO jobPO = JobPO.builder() + .ecCompany(resourcePO.getSubcompanyid1()) + .ecDepartment(resourcePO.getDepartmentid()) + .ecJobTitle(resourcePO.getJobtitle()) + .isKey(0) + .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) + .createTime(new Date()) + .updateTime(new Date()) + .build(); + getJobMapper().insertIgnoreNull(jobPO); + } } - } - }); + }); + } } -- 2.40.0.windows.1 From eb283282193ca0d4a91ea600acb1442967708bc4 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 7 Jul 2023 10:19:59 +0800 Subject: [PATCH 17/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=EF=BC=8C=E5=B2=97=E4=BD=8D=E8=B0=83=E6=95=B4=E4=B8=BA?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E8=81=9A=E6=89=8D=E6=9E=97=E5=B2=97=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ChartServiceImpl.java | 149 ++++++++++-------- 1 file changed, 87 insertions(+), 62 deletions(-) diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index e8b32363..26e3438c 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -15,7 +15,6 @@ import weaver.general.Util; import weaver.hrm.resource.ResourceComInfo; import java.util.*; -import java.util.stream.Collectors; /** * @author:dxfeng @@ -182,52 +181,49 @@ public class ChartServiceImpl extends Service implements ChartService { String dimension = Util.null2String(params.get("fclass")); dimension = StringUtils.isBlank(dimension) ? "0" : dimension; + // 是否显示岗位 + String showJobStr = Util.null2String(params.get("showJob")); + boolean showJob = "1".equals(showJobStr); + // 初始化表名 initTableNameByClass(dimension); List dataList = new ArrayList<>(); - List resourceList = new ArrayList<>(); - Set jobTitleSet = new HashSet<>(); + List jobTitleList = new ArrayList<>(); int departmentOnJob = 0; + int resourceNum; RecordSet rs = new RecordSet(); // TODO 查询当前实际的数据 String sql; - // 查询当当前部门下的人员 - if ("0".equals(dimension)) { - sql = "select a.id,a.lastname as 'name' ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a where a.departmentid = '" + departmentId + "'"; - } else { - sql = "select a.id,a.lastname as 'name' ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a inner join hrmresourcevirtual b on a.id = b.resourceid where b.departmentid = '" + departmentId + "'"; + // 查询部门本身 + if(hasVirtualFields){ + sql = "select a.id,a.departmentname as 'name',b.bmfzr,b.bmlx as 'isvitual' from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'"; + }else { + sql = "select a.id,a.departmentname as 'name',b.bmfzr from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'"; } rs.executeQuery(sql); - while (rs.next()){ - String jobTitle = Util.null2String(rs.getString("jobtitle")); - ChartPO chartPO = new ChartPO(); - chartPO.setFtype("4"); - chartPO.setFobjid(rs.getString("id")); - chartPO.setId(chartPO.getFobjid()); - chartPO.setFname(rs.getString("name")); + ChartPO departmentChartPO = new ChartPO(); + if(rs.next()){ + String fLeader = Util.null2String(rs.getString("bmfzr")); + departmentChartPO.setFtype("2"); + departmentChartPO.setFobjid(departmentId); + departmentChartPO.setId(rootId); + departmentChartPO.setFname(rs.getString("name")); // 岗位处理后的ID - chartPO.setParentId(departmentId + "_" + jobTitle); - chartPO.setExpand("0"); - chartPO.setHasChildren("0"); - chartPO.setBelongto(Util.null2String(rs.getString("belongto"))); - chartPO.setCompanyWorkYear(rs.getString("companyworkyear")); - try { - chartPO.setFleaderimg(new ResourceComInfo().getMessagerUrls(chartPO.getId())); - } catch (Exception e) { - throw new RuntimeException(e); - } - resourceList.add(chartPO); + departmentChartPO.setExpand("1"); + departmentChartPO.setFisvitual(rs.getString("isvitual")); - jobTitleSet.add(jobTitle); + // 部门负责人 + departmentChartPO.setFleader(getDepartmentLeader(fLeader)); + dataList.add(departmentChartPO); } - Map> resourceMap = resourceList.stream().collect(Collectors.groupingBy(ChartPO::getParentId)); - // 查询人员的岗位 - if(CollectionUtils.isNotEmpty(jobTitleSet)) { - sql = "select a.id,a.jobtitlename as 'name' from hrmjobtitles a where a.id in(" + StringUtils.join(jobTitleSet, ",") + ")"; + + if (showJob) { + // 查询部门下的岗位 + sql = "select a.id,a.jobtitlename as 'name' from hrmjobtitles a inner join jcl_org_job b on a.id = b.ec_jobtitle where b.ec_department = '" + departmentId + "'"; rs.executeQuery(sql); - while (rs.next()){ + while (rs.next()) { ChartPO chartPO = new ChartPO(); chartPO.setFtype("3"); chartPO.setFobjid(rs.getString("id")); @@ -237,41 +233,70 @@ public class ChartServiceImpl extends Service implements ChartService { chartPO.setParentId(rootId); chartPO.setExpand("1"); chartPO.setHasChildren("1"); - dataList.add(chartPO); + jobTitleList.add(chartPO); + } - // 避免出现人员没有上级岗位的情况 - List chartPOS = resourceMap.get(chartPO.getId()); - if (CollectionUtils.isNotEmpty(chartPOS)) { - dataList.addAll(chartPOS); - chartPO.setFonjob(chartPOS.size()); - departmentOnJob += chartPO.getFonjob(); + if ("0".equals(dimension)) { + sql = "select a.id,a.lastname as 'name' ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a where a.status < 4 and a.departmentid = ? and a.jobtitle = ?"; + } else { + sql = "select a.id,a.lastname as 'name' ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a inner join hrmresourcevirtual b on a.id = b.resourceid where a.status < 4 and b.departmentid = ? and a.jobtitle = ?"; + } + // 遍历岗位、查询对应岗位下的人员 + for (ChartPO jobTitlePO : jobTitleList) { + resourceNum = 0; + rs.executeQuery(sql, departmentId, jobTitlePO.getFobjid()); + while (rs.next()) { + String jobTitle = Util.null2String(rs.getString("jobtitle")); + ChartPO chartPO = new ChartPO(); + chartPO.setFtype("4"); + chartPO.setFobjid(rs.getString("id")); + chartPO.setId(chartPO.getFobjid()); + chartPO.setFname(rs.getString("name")); + // 岗位处理后的ID + chartPO.setParentId(departmentId + "_" + jobTitle); + chartPO.setExpand("0"); + chartPO.setHasChildren("0"); + chartPO.setBelongto(Util.null2String(rs.getString("belongto"))); + chartPO.setCompanyWorkYear(rs.getString("companyworkyear")); + try { + chartPO.setFleaderimg(new ResourceComInfo().getMessagerUrls(chartPO.getId())); + } catch (Exception e) { + throw new RuntimeException(e); + } + resourceNum++; + dataList.add(chartPO); } + jobTitlePO.setFonjob(resourceNum); + departmentOnJob += resourceNum; + dataList.add(jobTitlePO); } - } - // 查询部门本身 - if(hasVirtualFields){ - sql = "select a.id,a.departmentname as 'name',b.bmfzr,b.bmlx as 'isvitual' from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'"; + departmentChartPO.setHasChildren(CollectionUtils.isNotEmpty(jobTitleList) ? "1" : "0"); }else { - sql = "select a.id,a.departmentname as 'name',b.bmfzr from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'"; - } - rs.executeQuery(sql); - if(rs.next()){ - String fLeader = Util.null2String(rs.getString("bmfzr")); - ChartPO chartPO = new ChartPO(); - chartPO.setFtype("2"); - chartPO.setFobjid(departmentId); - chartPO.setId(rootId); - chartPO.setFname(rs.getString("name")); - // 岗位处理后的ID - chartPO.setExpand("1"); - chartPO.setHasChildren(CollectionUtils.isNotEmpty(dataList) ? "1" : "0"); - chartPO.setFonjob(departmentOnJob); - chartPO.setFisvitual(rs.getString("isvitual")); - - // 部门负责人 - chartPO.setFleader(getDepartmentLeader(fLeader)); - dataList.add(chartPO); + // 直接查询岗位下的人员 + sql = "select a.id,a.lastname as 'name' ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a where a.status < 4 and a.departmentid = ? "; + rs.executeQuery(sql, departmentId); + while (rs.next()) { + ChartPO chartPO = new ChartPO(); + chartPO.setFtype("4"); + chartPO.setFobjid(rs.getString("id")); + chartPO.setId(chartPO.getFobjid()); + chartPO.setFname(rs.getString("name")); + // 岗位处理后的ID + chartPO.setParentId(rootId); + chartPO.setExpand("0"); + chartPO.setHasChildren("0"); + chartPO.setBelongto(Util.null2String(rs.getString("belongto"))); + chartPO.setCompanyWorkYear(rs.getString("companyworkyear")); + try { + chartPO.setFleaderimg(new ResourceComInfo().getMessagerUrls(chartPO.getId())); + } catch (Exception e) { + throw new RuntimeException(e); + } + dataList.add(chartPO); + departmentOnJob++; + } } + departmentChartPO.setFonjob(departmentOnJob); Map result = new HashMap<>(); -- 2.40.0.windows.1 From a18e7a3dc7803cbbe0aa1a005f402bf0483d2d89 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 7 Jul 2023 14:54:21 +0800 Subject: [PATCH 18/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=EF=BC=8C=E6=B7=BB=E5=8A=A0=E9=83=A8=E9=97=A8=E5=B1=82?= =?UTF-8?q?=E7=BA=A7=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/entity/chart/ChartPO.java | 3 + .../service/impl/ChartServiceImpl.java | 57 +++++++++++++++---- 2 files changed, 50 insertions(+), 10 deletions(-) diff --git a/src/com/engine/organization/entity/chart/ChartPO.java b/src/com/engine/organization/entity/chart/ChartPO.java index cca64fba..003ecfb9 100644 --- a/src/com/engine/organization/entity/chart/ChartPO.java +++ b/src/com/engine/organization/entity/chart/ChartPO.java @@ -44,6 +44,9 @@ public class ChartPO { private String id; private String key; + // 部门层级 + private int departmentDepth; + public String getId() { if (StringUtils.isNotBlank(ftype)) { switch (ftype) { diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 26e3438c..fa278324 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -61,6 +61,8 @@ public class ChartServiceImpl extends Service implements ChartService { String isVirtual = Util.null2String(params.get("fisvitual")); showVirtual = "1".equals(isVirtual); + String depth = Util.null2String(params.get("level")); + // 初始化表名 initTableNameByClass(dimension); @@ -88,7 +90,7 @@ public class ChartServiceImpl extends Service implements ChartService { // 向下查询数据 if (null != topChartPO) { - findChildData(topChartPO, dataList); + findChildData(topChartPO, dataList,Integer.parseInt(depth)); } @@ -339,10 +341,11 @@ public class ChartServiceImpl extends Service implements ChartService { /** * 查询实时数据,子节点元素 * - * @param topChartPO 父级元素 - * @param dataList 所有元素集合 + * @param topChartPO 父级元素 + * @param dataList 所有元素集合 + * @param selectDepth 所选部门层级 */ - private void findChildData(ChartPO topChartPO, List dataList) { + private void findChildData(ChartPO topChartPO, List dataList,Integer selectDepth) { String fType = topChartPO.getFtype(); String fObjId = topChartPO.getFobjid(); String sql = ""; @@ -399,18 +402,17 @@ public class ChartServiceImpl extends Service implements ChartService { chartPO.setFobjid(recordSet.getString("id")); chartPO.setFname(recordSet.getString("name")); chartPO.setParentId(topChartPO.getId()); - // 非部门元素展开 - chartPO.setExpand(topChartPO.getId().startsWith("d") ? "0" : "1"); chartPO.setFisvitual(recordSet.getString("isvitual")); chartPO.setHasChildren(getHasChildren(chartPO.getFtype(), chartPO.getFobjid()).toString()); + chartPO.setDepartmentDepth(getDepartmentDepth(chartPO, topChartPO)); + // 小于、等于所选层级元素展开 + chartPO.setExpand(inDepth(selectDepth,chartPO.getDepartmentDepth()) ? "1" : "0"); currentList.add(chartPO); } for (ChartPO chartPO : currentList) { - if (chartPO.getParentId().startsWith("d")) { - // 部门只展示一级 - continue; + if (inDepth(selectDepth, chartPO.getDepartmentDepth())) { + findChildData(chartPO, dataList, selectDepth); } - findChildData(chartPO, dataList); } dataList.addAll(currentList); } @@ -490,6 +492,12 @@ public class ChartServiceImpl extends Service implements ChartService { return false; } + /** + * 获取部门负责人 + * + * @param ids 部门负责人ID + * @return 人员名称 + */ private String getDepartmentLeader(String ids) { if (StringUtils.isBlank(ids)) { return ""; @@ -504,4 +512,33 @@ public class ChartServiceImpl extends Service implements ChartService { } return StringUtils.join(leaderList, ","); } + + /** + * 当前元素是否在展开层级内 + * + * @param selectDepth 所选部门层级 + * @param currentDepth 当前部门层级 + */ + private boolean inDepth(Integer selectDepth, Integer currentDepth) { + if (selectDepth == 1) { + return true; + } + return currentDepth < selectDepth + 1; + } + + /** + * 获取当前部门层级 + * + * @param chartPO 当前元素 + * @param parentChart 上级元素 + */ + private Integer getDepartmentDepth(ChartPO chartPO, ChartPO parentChart) { + if ("2".equals(chartPO.getFtype())) { + if ("1".equals(parentChart.getFtype())) { + return 2; + } + return parentChart.getDepartmentDepth() + 1; + } + return 0; + } } -- 2.40.0.windows.1 From c023822ca5ebb3ada929224262d4b81458bb351b Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 11 Jul 2023 11:19:19 +0800 Subject: [PATCH 19/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=EF=BC=8C=E5=85=BC=E5=AE=B9PG=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ChartServiceImpl.java | 64 +++++++++---------- .../service/impl/OrgChartServiceImpl.java | 7 +- 2 files changed, 35 insertions(+), 36 deletions(-) diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index fa278324..cf821805 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -125,26 +125,26 @@ public class ChartServiceImpl extends Service implements ChartService { if (s.startsWith("s")) { if (hasVirtualFields) { if (showVirtual) { - rs.executeQuery("select a.id,a.subcompanyname as 'name','1' as 'type' ,b.fblx as 'isvitual' from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and a.supsubcomid = '" + fObjId + "'" + - " union select a.id,a.departmentname as 'name','2' as 'type' ,b.bmlx as 'isvitual' from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and (a.supdepid is null or a.supdepid = '0') and subcompanyid1 = '" + fObjId + "'"); + rs.executeQuery("select a.id,a.subcompanyname as name,'1' as type ,b.fblx as isvitual from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and a.supsubcomid = '" + fObjId + "'" + + " union select a.id,a.departmentname as name,'2' as type ,b.bmlx as isvitual from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and (a.supdepid is null or a.supdepid = '0') and subcompanyid1 = '" + fObjId + "'"); } else { - rs.executeQuery("select a.id,a.subcompanyname as 'name','1' as 'type' ,b.fblx as 'isvitual' from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and (b.fblx is null or b.fblx != '1') and a.supsubcomid = '" + fObjId + "'" + - " union select a.id,a.departmentname as 'name','2' as 'type' ,b.bmlx as 'isvitual' from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and (a.supdepid is null or a.supdepid = '0') and (b.bmlx is null or b.bmlx != '1') and subcompanyid1 = '" + fObjId + "'"); + rs.executeQuery("select a.id,a.subcompanyname as name,'1' as type ,b.fblx as isvitual from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and (b.fblx is null or b.fblx != '1') and a.supsubcomid = '" + fObjId + "'" + + " union select a.id,a.departmentname as name,'2' as type ,b.bmlx as isvitual from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and (a.supdepid is null or a.supdepid = '0') and (b.bmlx is null or b.bmlx != '1') and subcompanyid1 = '" + fObjId + "'"); } } else { - rs.executeQuery("select a.id,a.subcompanyname as 'name','1' as 'type' from " + SUB_COMPANY_TABLE + " a where (canceled is null or canceled != '1') and supsubcomid = '" + fObjId + "'" + - " union select a.id,a.departmentname as 'name','2' as 'type' from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and (supdepid is null or supdepid = '0') and subcompanyid1 = '" + fObjId + "'"); + rs.executeQuery("select a.id,a.subcompanyname as name,'1' as type from " + SUB_COMPANY_TABLE + " a where (canceled is null or canceled != '1') and supsubcomid = '" + fObjId + "'" + + " union select a.id,a.departmentname as name,'2' as type from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and (supdepid is null or supdepid = '0') and subcompanyid1 = '" + fObjId + "'"); } } else if (s.startsWith("d")) { if (hasVirtualFields) { if (showVirtual) { - rs.executeQuery( "select a.id,a.departmentname as 'name','2' as 'type' ,b.bmlx as 'isvitual' from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and supdepid = '" + fObjId + "'"); + rs.executeQuery( "select a.id,a.departmentname as name,'2' as type ,b.bmlx as isvitual from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and supdepid = '" + fObjId + "'"); } else { - rs.executeQuery( "select a.id,a.departmentname as 'name','2' as 'type' ,b.bmlx as 'isvitual' from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where (canceled is null or canceled != '1') and (b.bmlx is null or b.bmlx != '1') and a.supdepid = '" + fObjId + "'"); + rs.executeQuery( "select a.id,a.departmentname as name,'2' as type ,b.bmlx as isvitual from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where (canceled is null or canceled != '1') and (b.bmlx is null or b.bmlx != '1') and a.supdepid = '" + fObjId + "'"); } } else { - rs.executeQuery( "select a.id,a.departmentname as 'name','2' as 'type' from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and supdepid = '" + fObjId + "'"); + rs.executeQuery( "select a.id,a.departmentname as name,'2' as type from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and supdepid = '" + fObjId + "'"); } } while (rs.next()){ @@ -200,9 +200,9 @@ public class ChartServiceImpl extends Service implements ChartService { String sql; // 查询部门本身 if(hasVirtualFields){ - sql = "select a.id,a.departmentname as 'name',b.bmfzr,b.bmlx as 'isvitual' from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'"; + sql = "select a.id,a.departmentname as name,b.bmfzr,b.bmlx as isvitual from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'"; }else { - sql = "select a.id,a.departmentname as 'name',b.bmfzr from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'"; + sql = "select a.id,a.departmentname as name,b.bmfzr from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'"; } rs.executeQuery(sql); ChartPO departmentChartPO = new ChartPO(); @@ -223,7 +223,7 @@ public class ChartServiceImpl extends Service implements ChartService { if (showJob) { // 查询部门下的岗位 - sql = "select a.id,a.jobtitlename as 'name' from hrmjobtitles a inner join jcl_org_job b on a.id = b.ec_jobtitle where b.ec_department = '" + departmentId + "'"; + sql = "select a.id,a.jobtitlename as name from hrmjobtitles a inner join jcl_org_job b on a.id = b.ec_jobtitle where b.ec_department = '" + departmentId + "'"; rs.executeQuery(sql); while (rs.next()) { ChartPO chartPO = new ChartPO(); @@ -239,9 +239,9 @@ public class ChartServiceImpl extends Service implements ChartService { } if ("0".equals(dimension)) { - sql = "select a.id,a.lastname as 'name' ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a where a.status < 4 and a.departmentid = ? and a.jobtitle = ?"; + sql = "select a.id,a.lastname as name ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a where a.status < 4 and a.departmentid = ? and a.jobtitle = ?"; } else { - sql = "select a.id,a.lastname as 'name' ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a inner join hrmresourcevirtual b on a.id = b.resourceid where a.status < 4 and b.departmentid = ? and a.jobtitle = ?"; + sql = "select a.id,a.lastname as name ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a inner join hrmresourcevirtual b on a.id = b.resourceid where a.status < 4 and b.departmentid = ? and a.jobtitle = ?"; } // 遍历岗位、查询对应岗位下的人员 for (ChartPO jobTitlePO : jobTitleList) { @@ -275,7 +275,7 @@ public class ChartServiceImpl extends Service implements ChartService { departmentChartPO.setHasChildren(CollectionUtils.isNotEmpty(jobTitleList) ? "1" : "0"); }else { // 直接查询岗位下的人员 - sql = "select a.id,a.lastname as 'name' ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a where a.status < 4 and a.departmentid = ? "; + sql = "select a.id,a.lastname as name ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a where a.status < 4 and a.departmentid = ? "; rs.executeQuery(sql, departmentId); while (rs.next()) { ChartPO chartPO = new ChartPO(); @@ -319,21 +319,21 @@ public class ChartServiceImpl extends Service implements ChartService { // 查询集团数据 if ("0".equals(dimension)) { // 查询实际集团表 - return "select id,companyname as 'name','0' as 'type' from " + COMPANY_TABLE; + return "select id,companyname as name,'0' as type from " + COMPANY_TABLE; } else { // 查询其他维度集团信息 - return "select id,companyname as 'name','0' as 'type' from " + COMPANY_TABLE + " where id = '" + dimension + "'"; + return "select id,companyname as name,'0' as type from " + COMPANY_TABLE + " where id = '" + dimension + "'"; } } else { if (hasVirtualFields) { if (showVirtual) { - return "select a.id,a.subcompanyname as 'name','1' as 'type' ,b.fblx as 'isvitual' from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where a.id = '" + root + "'"; + return "select a.id,a.subcompanyname as name,'1' as type ,b.fblx as isvitual from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where a.id = '" + root + "'"; } else { - return "select a.id,a.subcompanyname as 'name','1' as 'type' ,b.fblx as 'isvitual' from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where a.id = '" + root + "' and (b.fblx is null or b.fblx!='1')"; + return "select a.id,a.subcompanyname as name,'1' as type ,b.fblx as isvitual from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where a.id = '" + root + "' and (b.fblx is null or b.fblx!='1')"; } } else { - return "select id,subcompanyname as 'name','1' as 'type' from " + SUB_COMPANY_TABLE + " where id = '" + root + "'"; + return "select id,subcompanyname as name,'1' as type from " + SUB_COMPANY_TABLE + " where id = '" + root + "'"; } } } @@ -354,37 +354,37 @@ public class ChartServiceImpl extends Service implements ChartService { case "0": if (hasVirtualFields) { if (showVirtual) { - sql = "select a.id,a.subcompanyname as 'name','1' as 'type' ,b.fblx as 'isvitual' from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and (a.supsubcomid is null or a.supsubcomid = '0') and a.companyid = '" + fObjId + "'"; + sql = "select a.id,a.subcompanyname as name,'1' as type ,b.fblx as isvitual from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and (a.supsubcomid is null or a.supsubcomid = '0') and a.companyid = '" + fObjId + "'"; } else { - sql = "select a.id,a.subcompanyname as 'name','1' as 'type' ,b.fblx as 'isvitual' from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and (a.supsubcomid is null or a.supsubcomid = '0') and (b.fblx is null or b.fblx != '1') and a.companyid = '" + fObjId + "'"; + sql = "select a.id,a.subcompanyname as name,'1' as type ,b.fblx as isvitual from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and (a.supsubcomid is null or a.supsubcomid = '0') and (b.fblx is null or b.fblx != '1') and a.companyid = '" + fObjId + "'"; } } else { - sql = "select a.id,a.subcompanyname as 'name','1' as 'type' from " + SUB_COMPANY_TABLE + " a where (a.canceled is null or a.canceled != '1') and (a.supsubcomid is null or a.supsubcomid = '0') and a.companyid = '" + fObjId + "'"; + sql = "select a.id,a.subcompanyname as name,'1' as type from " + SUB_COMPANY_TABLE + " a where (a.canceled is null or a.canceled != '1') and (a.supsubcomid is null or a.supsubcomid = '0') and a.companyid = '" + fObjId + "'"; } break; case "1": if (hasVirtualFields) { if (showVirtual) { - sql = "select a.id,a.subcompanyname as 'name','1' as 'type' ,b.fblx as 'isvitual' from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and a.supsubcomid = '" + fObjId + "'" + - " union select a.id,a.departmentname as 'name','2' as 'type' ,b.bmlx as 'isvitual' from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and (a.supdepid is null or a.supdepid = '0') and subcompanyid1 = '" + fObjId + "'"; + sql = "select a.id,a.subcompanyname as name,'1' as type ,b.fblx as isvitual from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and a.supsubcomid = '" + fObjId + "'" + + " union select a.id,a.departmentname as name,'2' as type ,b.bmlx as isvitual from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and (a.supdepid is null or a.supdepid = '0') and subcompanyid1 = '" + fObjId + "'"; } else { - sql = "select a.id,a.subcompanyname as 'name','1' as 'type' ,b.fblx as 'isvitual' from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and (b.fblx is null or b.fblx != '1') and a.supsubcomid = '" + fObjId + "'" + - " union select a.id,a.departmentname as 'name','2' as 'type' ,b.bmlx as 'isvitual' from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and (a.supdepid is null or a.supdepid = '0') and (b.bmlx is null or b.bmlx != '1') and subcompanyid1 = '" + fObjId + "'"; + sql = "select a.id,a.subcompanyname as name,'1' as type ,b.fblx as isvitual from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and (b.fblx is null or b.fblx != '1') and a.supsubcomid = '" + fObjId + "'" + + " union select a.id,a.departmentname as name,'2' as type ,b.bmlx as isvitual from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and (a.supdepid is null or a.supdepid = '0') and (b.bmlx is null or b.bmlx != '1') and subcompanyid1 = '" + fObjId + "'"; } } else { - sql = "select a.id,a.subcompanyname as 'name','1' as 'type' from " + SUB_COMPANY_TABLE + " a where (canceled is null or canceled != '1') and supsubcomid = '" + fObjId + "'" + - " union select a.id,a.departmentname as 'name','2' as 'type' from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and (supdepid is null or supdepid = '0') and subcompanyid1 = '" + fObjId + "'"; + sql = "select a.id,a.subcompanyname as name,'1' as type from " + SUB_COMPANY_TABLE + " a where (canceled is null or canceled != '1') and supsubcomid = '" + fObjId + "'" + + " union select a.id,a.departmentname as name,'2' as type from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and (supdepid is null or supdepid = '0') and subcompanyid1 = '" + fObjId + "'"; } break; case "2": if (hasVirtualFields) { if (showVirtual) { - sql = "select a.id,a.departmentname as 'name','2' as 'type' ,b.bmlx as 'isvitual' from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and supdepid = '" + fObjId + "'"; + sql = "select a.id,a.departmentname as name,'2' as type ,b.bmlx as isvitual from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and supdepid = '" + fObjId + "'"; } else { - sql = "select a.id,a.departmentname as 'name','2' as 'type' ,b.bmlx as 'isvitual' from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where (canceled is null or canceled != '1') and (b.bmlx is null or b.bmlx != '1') and a.supdepid = '" + fObjId + "'"; + sql = "select a.id,a.departmentname as name,'2' as type ,b.bmlx as isvitual from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where (canceled is null or canceled != '1') and (b.bmlx is null or b.bmlx != '1') and a.supdepid = '" + fObjId + "'"; } } else { - sql = "select a.id,a.departmentname as 'name','2' as 'type' from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and supdepid = '" + fObjId + "'"; + sql = "select a.id,a.departmentname as name,'2' as type from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and supdepid = '" + fObjId + "'"; } break; default: diff --git a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java index 720a5e62..638c45d1 100644 --- a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java @@ -18,7 +18,6 @@ import com.engine.organization.util.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; import com.engine.organization.util.detach.DetachUtil; import org.apache.commons.lang3.StringUtils; -import tebie.applib.api.O; import weaver.conn.RecordSet; import weaver.general.Util; import weaver.hrm.User; @@ -84,7 +83,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { } List companyTree = new ArrayList<>(); - 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.get(new RecordSet().getDBType()).ifNull("supsubcomid", "0") + " = '0'"; + 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.get(new RecordSet().getDBType()).ifNull("supsubcomid", "0") + " = '0'"; rs.executeQuery(sql); while (rs.next()) { companyTree.add(CompanyTreePO.builder().id(rs.getString("id")).pId(rs.getString("pId")).value(rs.getString("value")).title(rs.getString("title")).build()); @@ -107,9 +106,9 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { subcompany = "0"; } String fclass = Util.null2String(params.get("fclass")); - String 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.get(new RecordSet().getDBType()).ifNull("supsubcomid", "0") + " = '" + subcompany + "'"; + String 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.get(new RecordSet().getDBType()).ifNull("supsubcomid", "0") + " = '" + subcompany + "'"; if (StringUtils.isNotBlank(fclass) && !"0".equals(fclass)) { - 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.get(new RecordSet().getDBType()).ifNull("supsubcomid", "0") + " = '" + subcompany + "' and companyid = '" + fclass + "'"; + 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.get(new RecordSet().getDBType()).ifNull("supsubcomid", "0") + " = '" + subcompany + "' and companyid = '" + fclass + "'"; } rs.executeQuery(sql); while (rs.next()) { -- 2.40.0.windows.1 From 688eeb125c54a1a30cccbff8de8969d5421d8b0b Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Tue, 11 Jul 2023 15:17:56 +0800 Subject: [PATCH 20/87] v3 --- .../organization/service/ChartService.java | 10 +++++ .../service/impl/ChartServiceImpl.java | 37 ++++++++++++++++++- 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/src/com/engine/organization/service/ChartService.java b/src/com/engine/organization/service/ChartService.java index 20710587..5d789c64 100644 --- a/src/com/engine/organization/service/ChartService.java +++ b/src/com/engine/organization/service/ChartService.java @@ -29,4 +29,14 @@ public interface ChartService { Map getDepartmentDetail(Map params); + /** + * @Description: 根据Id获取版本日期 + * @Author: liang.cheng + * @Date: 2023/7/11 2:53 PM + * @param: [id] + * @return: java.lang.String + */ + String selectVersionDate(String id); + + } diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index fa278324..79bdddfc 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -63,6 +63,9 @@ public class ChartServiceImpl extends Service implements ChartService { String depth = Util.null2String(params.get("level")); + //版本id + String id = Util.null2String(params.get("id")); + // 初始化表名 initTableNameByClass(dimension); @@ -71,8 +74,13 @@ public class ChartServiceImpl extends Service implements ChartService { String sql = ""; ChartPO topChartPO = null; - //TODO 查询当前实际数据 - sql = getRealTimeTopSql(root, dimension); + //查询当前实际数据 + if("0".equals(id)){ + sql = getRealTimeTopSql(root, dimension); + }else { + sql = getLastTimeTopSql(root,dimension,id); + } + rs.executeQuery(sql); // 封装顶部节点 @@ -99,6 +107,8 @@ public class ChartServiceImpl extends Service implements ChartService { return result; } + + @Override public Map asyncCompanyData(Map params) { @@ -307,6 +317,29 @@ public class ChartServiceImpl extends Service implements ChartService { return result; } + @Override + public String selectVersionDate(String id) { + RecordSet rs = new RecordSet(); + rs.executeQuery("select recorddate from jcl_org_chartversion where id = ?",id); + rs.next(); + return rs.getString("recorddate"); + } + + /** + * 获取历史顶部元素sql + * @param root + * @param dimension 维度ID + * @param id + * @return + */ + private String getLastTimeTopSql(String root, String dimension, String id) { + if ("0".equals(root)) { + //查询集团维度历史数据 + + } + return null; + } + /** * 查询实时数据,顶级元素SQL * -- 2.40.0.windows.1 From 54abf562a474a3be9d840a21ca47f32344724bee Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Tue, 11 Jul 2023 16:06:23 +0800 Subject: [PATCH 21/87] v3 --- .../service/impl/ChartServiceImpl.java | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index af1d6c63..28207e6c 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -329,15 +329,24 @@ public class ChartServiceImpl extends Service implements ChartService { * 获取历史顶部元素sql * @param root * @param dimension 维度ID - * @param id + * @param vesionId * @return */ - private String getLastTimeTopSql(String root, String dimension, String id) { + private String getLastTimeTopSql(String root, String dimension, String vesionId) { if ("0".equals(root)) { - //查询集团维度历史数据 - + //查询集团维度历史版本 + if ("0".equals(dimension)) { + //组织维度 + return "select id,companyname as name,'0' as type from hrmcompany"; + } else { + //查询其他维度集团版本信息 + return "select id,companyname as name,'0' as type from jcl_chart_companyvirtual where " + + " versionid = "+vesionId+" and companyvirtualid = "+dimension; + } + }else { + return "select id,subcompanyname as name,'1' as type from jcl_chart_subcompanyvirtual where " + + " versionid= "+vesionId+" and subcompanyvirtualid"+root; } - return null; } /** -- 2.40.0.windows.1 From 075456caa9fa75c2eddf526dad5c45354ec29554 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 11 Jul 2023 16:11:49 +0800 Subject: [PATCH 22/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=EF=BC=8C<=E6=A0=B9=E7=BB=93=E7=82=B9>=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=9B=9E=E6=BA=AF=E8=81=94=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/OrgChartServiceImpl.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java index 638c45d1..462ff7d5 100644 --- a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java @@ -106,9 +106,22 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { subcompany = "0"; } String fclass = Util.null2String(params.get("fclass")); - String 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.get(new RecordSet().getDBType()).ifNull("supsubcomid", "0") + " = '" + subcompany + "'"; - if (StringUtils.isNotBlank(fclass) && !"0".equals(fclass)) { - 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.get(new RecordSet().getDBType()).ifNull("supsubcomid", "0") + " = '" + subcompany + "' and companyid = '" + fclass + "'"; + String id = Util.null2String(params.get("id")); + // 是否展示当前数据 + boolean isSearchCurrent = StringUtils.isBlank(id) || "0".equals(id); + String sql; + 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.get(new RecordSet().getDBType()).ifNull("supsubcomid", "0") + " = '" + subcompany + "'"; + if (StringUtils.isNotBlank(fclass) && !"0".equals(fclass)) { + 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.get(new RecordSet().getDBType()).ifNull("supsubcomid", "0") + " = '" + subcompany + "' and companyid = '" + fclass + "'"; + } + } else { + sql = "select id as id, id as value, subcompanyname as title, supsubcompanyid as pId from jcl_chart_subcompany where (canceled is null or canceled != '1') and " + DBType.get(new RecordSet().getDBType()).ifNull("supsubcompanyid", "0") + " = '" + subcompany + "'"; + if (StringUtils.isNotBlank(fclass) && !"0".equals(fclass)) { + sql = "select id as id, id as value, subcompanyname as title, supsubcompanyid as pId from jcl_chart_subcompanyvirtual where (canceled is null or canceled != '1') and " + DBType.get(new RecordSet().getDBType()).ifNull("supsubcompanyid", "0") + " = '" + subcompany + "' and companyid = '" + fclass + "'"; + } + // 添加时间轴条件 + sql += " and versionid = " + id; } rs.executeQuery(sql); while (rs.next()) { -- 2.40.0.windows.1 From 1a188a197547958c1e240b71077227b49b7bfb1c Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Tue, 11 Jul 2023 18:04:08 +0800 Subject: [PATCH 23/87] v3 --- .../chart/history/CompanyVirtualHistory.java | 46 +++++++++ .../chart/history/DepartmentHistory.java | 56 +++++++++++ .../history/DepartmentVirtualHistory.java | 56 +++++++++++ .../entity/chart/history/JobHistory.java | 51 ++++++++++ .../entity/chart/history/ResourceHistory.java | 94 +++++++++++++++++++ .../chart/history/ResourceVirtualHistory.java | 42 +++++++++ .../history/SubCompanyVirtualHistory.java | 54 +++++++++++ .../chart/history/SubcompanyHistory.java | 56 +++++++++++ 8 files changed, 455 insertions(+) create mode 100644 src/com/engine/organization/entity/chart/history/CompanyVirtualHistory.java create mode 100644 src/com/engine/organization/entity/chart/history/DepartmentHistory.java create mode 100644 src/com/engine/organization/entity/chart/history/DepartmentVirtualHistory.java create mode 100644 src/com/engine/organization/entity/chart/history/JobHistory.java create mode 100644 src/com/engine/organization/entity/chart/history/ResourceHistory.java create mode 100644 src/com/engine/organization/entity/chart/history/ResourceVirtualHistory.java create mode 100644 src/com/engine/organization/entity/chart/history/SubCompanyVirtualHistory.java create mode 100644 src/com/engine/organization/entity/chart/history/SubcompanyHistory.java diff --git a/src/com/engine/organization/entity/chart/history/CompanyVirtualHistory.java b/src/com/engine/organization/entity/chart/history/CompanyVirtualHistory.java new file mode 100644 index 00000000..f780c537 --- /dev/null +++ b/src/com/engine/organization/entity/chart/history/CompanyVirtualHistory.java @@ -0,0 +1,46 @@ +package com.engine.organization.entity.chart.history; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author liang.cheng + * @Date 2023/7/11 4:36 PM + * @Description: 虚拟维度历史表 + * @Version 1.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class CompanyVirtualHistory { + + private Integer id; + + private Integer companyVirtualId; + + private String creater; + + private String companyName; + + private String companyCode; + + private String companyDesc; + + private Integer showOrder; + + private Integer canceled; + + private String virtualType; + + private String virtualTypeDesc; + + private String versionDate; + + private Integer versionId; + + private Integer fonJob; + +} diff --git a/src/com/engine/organization/entity/chart/history/DepartmentHistory.java b/src/com/engine/organization/entity/chart/history/DepartmentHistory.java new file mode 100644 index 00000000..53cb1b7e --- /dev/null +++ b/src/com/engine/organization/entity/chart/history/DepartmentHistory.java @@ -0,0 +1,56 @@ +package com.engine.organization.entity.chart.history; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author liang.cheng + * @Date 2023/7/11 4:36 PM + * @Description: 部门历史表 + * @Version 1.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class DepartmentHistory { + + private Integer id; + + private String creater; + + private Integer departmentId; + + private String departmentMark; + + private String departmentName; + + private String subcompanyId; + + private String subcompany; + + private Integer supDepartmentId; + + private String supDepartment; + + private Integer canceled; + + private String departmentCode; + + private String coadJutant; + + private Integer tlevel; + + private String versionDate; + + private Integer versionId; + + private Integer fonjob; + + private Integer isVirtual; + + private String fLeader; + +} diff --git a/src/com/engine/organization/entity/chart/history/DepartmentVirtualHistory.java b/src/com/engine/organization/entity/chart/history/DepartmentVirtualHistory.java new file mode 100644 index 00000000..5c19d075 --- /dev/null +++ b/src/com/engine/organization/entity/chart/history/DepartmentVirtualHistory.java @@ -0,0 +1,56 @@ +package com.engine.organization.entity.chart.history; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author liang.cheng + * @Date 2023/7/11 4:36 PM + * @Description: 虚拟维度部门历史表 + * @Version 1.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class DepartmentVirtualHistory { + + private Integer id; + + private Integer departmentVirtualId; + + private String creater; + + private String departmentName; + + private String departmentCode; + + private String departmentMark; + + private String supDepartment; + + private Integer supDepId; + + private String allSupDepId; + + private String subCompany; + + private String subCompanyId; + + private Integer canceled; + + private String virtualType; + + private String tLevel; + + private String showOrder; + + private String versionDate; + + private Integer versionId; + + private Integer fonJob; + +} diff --git a/src/com/engine/organization/entity/chart/history/JobHistory.java b/src/com/engine/organization/entity/chart/history/JobHistory.java new file mode 100644 index 00000000..ce1052f9 --- /dev/null +++ b/src/com/engine/organization/entity/chart/history/JobHistory.java @@ -0,0 +1,51 @@ +package com.engine.organization.entity.chart.history; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author liang.cheng + * @Date 2023/7/11 4:59 PM + * @Description: 岗位历史表 + * @Version 1.0 + */ + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class JobHistory { + + private Integer id; + + private String creater; + + private Integer jobId; + + private String jobName; + + private Integer departmentId; + + private String department; + + private Integer subCompanyId; + + private String subCompany; + + private String jobResponsibility; + + private Integer canceled; + + private String jobCode; + + private String description; + + private String versionDate; + + private Integer versionId; + + private Integer fonJob; + +} diff --git a/src/com/engine/organization/entity/chart/history/ResourceHistory.java b/src/com/engine/organization/entity/chart/history/ResourceHistory.java new file mode 100644 index 00000000..dc642ef0 --- /dev/null +++ b/src/com/engine/organization/entity/chart/history/ResourceHistory.java @@ -0,0 +1,94 @@ +package com.engine.organization.entity.chart.history; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author liang.cheng + * @Date 2023/7/11 4:36 PM + * @Description: 人员历史表(增量) + * @Version 1.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ResourceHistory { + + private Integer id; + + private Integer resourceId; + + private String creater; + + private Integer workyear; + + private String usekind; + + private String managerStr; + + private Integer status; + + private String sex; + + private Integer accountType; + + private Integer belongTo; + + private String loginId; + + private String maritalStatus; + + private String telephone; + + private String mobile; + + private String mobileCall; + + private String email; + + private String locationName; + + private String resourceType; + + private String startDate; + + private String endDate; + + private Integer jobTitleId; + + private String jobTitle; + + private Integer jobLevel; + + private Integer secLevel; + + private Integer departmentId; + + private String department; + + private String subcompanyId; + + private String subcompany; + + private String costCenter; + + private Integer manager; + + private Integer assistant; + + private String workcode; + + private String classification; + + private String versionDate; + + private Integer versionId; + + private Integer policy; + + private String degree; + +} diff --git a/src/com/engine/organization/entity/chart/history/ResourceVirtualHistory.java b/src/com/engine/organization/entity/chart/history/ResourceVirtualHistory.java new file mode 100644 index 00000000..3ae6c245 --- /dev/null +++ b/src/com/engine/organization/entity/chart/history/ResourceVirtualHistory.java @@ -0,0 +1,42 @@ +package com.engine.organization.entity.chart.history; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author liang.cheng + * @Date 2023/7/11 4:59 PM + * @Description: 虚拟人员历史表 + * @Version 1.0 + */ + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ResourceVirtualHistory { + + private Integer id; + + private Integer resourceId; + + private Integer managerId; + + private Integer subCompanyId; + + private String departmentId; + + private String managerStr; + + private Integer virtualType; + + private String description; + + private String versionDate; + + private Integer versionId; + + +} diff --git a/src/com/engine/organization/entity/chart/history/SubCompanyVirtualHistory.java b/src/com/engine/organization/entity/chart/history/SubCompanyVirtualHistory.java new file mode 100644 index 00000000..c4dbb0b5 --- /dev/null +++ b/src/com/engine/organization/entity/chart/history/SubCompanyVirtualHistory.java @@ -0,0 +1,54 @@ +package com.engine.organization.entity.chart.history; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author liang.cheng + * @Date 2023/7/11 4:36 PM + * @Description: 虚拟维度分部历史表 + * @Version 1.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class SubCompanyVirtualHistory { + + private Integer id; + + private Integer subCompanyVirtualId; + + private String creater; + + private String subCompanyName; + + private String subCompanyCode; + + private String subCompanyDesc; + + private String supSubCompany; + + private Integer supSubCompId; + + private String company; + + private String companyId; + + private Integer canceled; + + private String virtualType; + + private String tLevel; + + private String showOrder; + + private String versionDate; + + private Integer versionId; + + private Integer fonJob; + +} diff --git a/src/com/engine/organization/entity/chart/history/SubcompanyHistory.java b/src/com/engine/organization/entity/chart/history/SubcompanyHistory.java new file mode 100644 index 00000000..704da6b2 --- /dev/null +++ b/src/com/engine/organization/entity/chart/history/SubcompanyHistory.java @@ -0,0 +1,56 @@ +package com.engine.organization.entity.chart.history; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author liang.cheng + * @Date 2023/7/11 4:36 PM + * @Description: 分部历史表 + * @Version 1.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class SubcompanyHistory { + + private Integer id; + + private String creater; + + private Integer subcompanyId; + + private String subcompanyName; + + private String subcompanyDesc; + + private String company; + + private String supSubcompanyId; + + private String supSubcompany; + + private Integer canceled; + + private String subcompanyCode; + + private Integer limitUsers; + + private Integer tlevel; + + private String versionDate; + + private Integer versionId; + + private Integer fonJob; + + private Integer isVirtual; + + + + + +} -- 2.40.0.windows.1 From 38f3e457efeb6d8fd74a1d4d4b4a0fb2fa5da7a5 Mon Sep 17 00:00:00 2001 From: Mlin Date: Tue, 11 Jul 2023 18:08:40 +0800 Subject: [PATCH 24/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E8=AE=B0=E5=BD=950711?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/jclorgmap/JclOrgMapper.java | 12 + .../mapper/jclorgmap/JclOrgMapper.xml | 185 ++++++++++++++++ .../organization/service/ChartService.java | 9 +- .../service/impl/ChartServiceImpl.java | 209 ++++++++++++++++++ 4 files changed, 414 insertions(+), 1 deletion(-) diff --git a/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.java b/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.java index 9d8e7a9f..334bfab5 100644 --- a/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.java +++ b/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.java @@ -48,4 +48,16 @@ public interface JclOrgMapper { JclOrgMap getResInfo(@Param("level") String level, @Param("grade") String grade, @Param("id") String id); + + int insertSubVersionRecord(@Param("currentDate") String currentDate, @Param("creator") String creator); + + int insertSubVirtualVersionRecord(@Param("currentDate") String currentDate, @Param("creator") String creator); + + int insertDeptVersionRecord(@Param("currentDate") String currentDate, @Param("creator") String creator); + + int insertDeptVirtualVersionRecord(@Param("currentDate") String currentDate, @Param("creator") String creator); + + int insertCompanyVirtualVersionRecord(@Param("currentDate") String currentDate, @Param("creator") String creator); + int insertJobVersionRecord(@Param("currentDate") String currentDate, @Param("creator") String creator); + } diff --git a/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.xml b/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.xml index 6d46360c..064d1e2e 100644 --- a/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.xml +++ b/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.xml @@ -407,4 +407,189 @@ left join jcl_org_grade f on d.${grade}=f.id where a.id=#{id} + + + + + insert into jcl_org_chart_subcompany(creater, subcompanyid, subcompanyname, subcompanydesc, company, + supsubcompanyid, supsubcompany, canceled, subcompanycode, limitusers, + tlevel, versiondate, type) + select #{creator}, + a.id as subcompanyid, + a.subcompanyname, + a.subcompanydesc, + a.companyid as company, + b.supsubcomid as supsubcompanyid, + b.subcompanyname as supsubcompany, + a.canceled, + a.subcompanycode, + a.limitusers, + a.tlevel, + #{currentDate}, + c.fblx as type + from hrmsubcompany a + left join hrmsubcompany b on a.supsubcomid = b.id + left join hrmsubcompanydefined c on a.id = c.subcomid left join hrmsubcompany b on a.supsubcomid=b.id + + + + + insert into jcl_chart_subcompanyvirtual(subcompanyvirtualid, creater, subcompanyname, subcompanycode, + subcompanydesc, supsubcompany, supsubcomid, company, companyid, + canceled, virtualtype, tlevel, showorder, versiondate) + select a.id as subcompanyvirtualid, + #{creator}, + a.subcompanyname, + a.subcompanycode, + a.subcompanydesc, + b.subcompanyname as supsubcompany, + a.supsubcomid, + c.companyname as company, + a.companyid, + a.canceled, + a.virtualtypeid as virtualtype, + a.tlevel, + a.showorder, + #{currentDate} + from hrmsubcompanyvirtual a + left join hrmsubcompanyvirtual b on a.supsubcomid = b.id + left join hrmcompanyvirtual c on a.companyid = c.id + + + + + insert into jcl_chart_department(creater, departmentid, departmentmark, departmentname, subcompanyid, + subcompany, supdepartmentid, supdepartment, canceled, departmentcode, + coadjutant, tlevel, versiondate, type, fleader) + select #{creator}, + a.id as departmentid, + a.departmentmark, + a.departmentname, + a.subcompanyid1 as subcompanyid, + b.SUBCOMPANYNAME as subcompany, + a.supdepid as supdepartmentid, + c.departmentname as supdepartment, + a.canceled, + a.departmentcode, + a.coadjutant, + a.tlevel, + #{currentDate}, + d.bmlx as type, + a.bmfzr as fleader + from hrmdepartment a + left join hrmsubcompany b on a.subcompanyid1 = b.id + left join hrmdepartment c on a.supdepid = c.id + left join hrmdepartmentdefined d on a.id=d.deptid;left join hrmdepartmentdefined d on a.id=d.deptid + + + + + insert into jcl_chart_departmentvirtual(departmentvirtualid, creater, departmentname, departmentcode, + departmentmark, supdeptment, supdepid, allsupdepid, subcompany, + subcompanyid, canceled, virtualtype, tlevel, showorder, versiondate) + select a.id as departmentvirtualid, + #{creator}, + a.departmentname, + a.departmentcode, + a.departmentmark, + b.DEPARTMENTNAME as supdeptment, + b.SUPDEPID as supdepid, + a.allsupdepid, + c.SUBCOMPANYNAME as subcompany, + a.SUBCOMPANYID1 as subcompanyid, + a.canceled, + a.virtualtype, + a.tlevel, + a.showorder, + #{currentDate} + from hrmdepartmentvirtual a + left join hrmdepartmentvirtual b on a.SUPDEPID = b.id + left join hrmsubcompanyvirtual c on a.SUBCOMPANYID1 = c.id + + + + + INSERT into jcl_chart_companyvirtual(companyvirtualid, creater, companyname, companycode, companydesc, + showorder, canceled, virtualtype, virtualtypedesc, versiondate) + select id as companyvirtualid, + #{creator}, + companyname, + companycode, + companydesc, + showorder, + canceled, + virtualtype, + virtualtypedesc, + #{currentDate} + from hrmcompanyvirtual + + + + + insert into jcl_org_chart_job(creater, jobname, department, subcompany, jobresponsibility, canceled, jobcode, + description, versiondate) + select #{creator}, + a.job_name as jobname, + a.ec_department as department, + a.ec_company as subcompany, + b.jobresponsibility, + a.forbidden_tag as canceled, + a.job_no as jobcode, + a.description, + #{currentDate} + from jcl_org_job a + left join hrmjobtitles b on a.ec_jobtitle = b.id + + + + insert into jcl_chart_resource(resourceid, creater, workyear, usekind, managerstr, status, sex, accounttype, + belongto, loginid, maritalstatus, telephone, mobile, mobilecall, email, + locationname, resourcetype, startdate, enddate, jobtitleid, jobtitle, joblevel, + seclevel, departmentid, department, subcompanyid, subcompany, costcenter, + manager, assistant, workcode, classification, versiondate, policy, degree, + versionid) + select a.id as resourceid, + 1, + workyear, + usekind, + managerstr, + status, + sex, + accounttype, + belongto, + loginid, + maritalstatus, + a.telephone, + mobile, + mobilecall, + email, + b.locationname, + resourcetype, + startdate, + enddate, + c.id as jobtitleid, + d.JOBTITLENAME as jobtitle, + joblevel, + seclevel, + departmentid, + e.departmentname as department, + a.subcompanyid1 as subcompanyid, + f.subcompanyname as subcompany, + a.costcenterid as costcenter, + a.managerid as manager, + a.assistantid as assistant, + workcode, + classification, + '2023-07-11 15:47', + policy, + degree, + 1111 + from hrmresource a + left join hrmlocations b on a.locationid = b.id + left join jcl_org_job c on a.jobtitle = c.id + left join hrmjobtitles d on c.ec_jobtitle = d.id + left join hrmdepartment e on a.departmentid = e.id + left join hrmsubcompany f on a.subcompanyid1= f.id; + + \ No newline at end of file diff --git a/src/com/engine/organization/service/ChartService.java b/src/com/engine/organization/service/ChartService.java index 20710587..3b32cee4 100644 --- a/src/com/engine/organization/service/ChartService.java +++ b/src/com/engine/organization/service/ChartService.java @@ -1,5 +1,7 @@ package com.engine.organization.service; +import weaver.hrm.User; + import java.util.Map; /** @@ -28,5 +30,10 @@ public interface ChartService { Map getDepartmentDetail(Map params); - + /** + * 组织架构图,版本记录 + * @param params 请求参数 + * @return 数据集合 + */ + Map versionRecord(Map params, User user); } diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index fa278324..82881f4e 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -4,16 +4,22 @@ import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.organization.entity.chart.ChartPO; import com.engine.organization.mapper.hrmresource.SystemDataMapper; +import com.engine.organization.mapper.jclorgmap.JclOrgMapper; import com.engine.organization.service.ChartService; +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.MapperProxyFactory; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; +import weaver.conn.RecordSetTrans; import weaver.general.Util; +import weaver.hrm.User; import weaver.hrm.resource.ResourceComInfo; +import java.time.LocalDate; import java.util.*; /** @@ -40,6 +46,15 @@ public class ChartServiceImpl extends Service implements ChartService { */ boolean hasVirtualFields; + private JclOrgMapper getJclOrgMapMapper() { + return MapperProxyFactory.getProxy(JclOrgMapper.class,true); + } + + private OrgChartService getOrgChartService(User user) { + return ServiceUtil.getService(OrgChartServiceImpl.class, user); + + } + @Override public Map getCompanyData(Map params) { Map result = new HashMap<>(); @@ -307,6 +322,200 @@ public class ChartServiceImpl extends Service implements ChartService { return result; } + @Override + public Map versionRecord(Map params, User user) { + RecordSetTrans recordSetTrans = new RecordSetTrans(); + recordSetTrans.setAutoCommit(false);//关闭自动提交 + + RecordSet rs = new RecordSet(); + + // 维度 + String dimension = Util.null2String(params.get("fclass")); + dimension = StringUtils.isBlank(dimension) ? "0" : dimension; + //描述 + String description = Util.null2String(params.get("description")); + + //当前日期 + String currentDate = OrganizationDateUtil.getFormatLocalDateTime(new Date()); + //当前用户 + String currentUser = String.valueOf(user.getUID()); + + + //版本记录表数据存储 + getOrgChartService(user).insertChartVersion(Integer.valueOf(dimension),description); + String versionId = ""; + String createDate = OrganizationDateUtil.getFormatLocalDate(LocalDate.now()); + rs.executeQuery("select id from JCL_ORG_CHARTVERSION where fclass = ? and createdate = ?",dimension,createDate); + if (rs.next()) { + versionId = Util.null2String(rs.getString("id")); + } + + String subCompanyQuerySql;//分部查询数据sql + String deptQuerySql;//部门查询数据sql + //判断是否有虚拟组织字段 + boolean virtualFlag = isHasVirtualFields(); + if (virtualFlag) { + subCompanyQuerySql = "select a.id as subcompanyid,\n" + + " a.subcompanyname,\n" + + " a.subcompanydesc,\n" + + " a.companyid as company,\n" + + " b.supsubcomid as supsubcompanyid,\n" + + " b.subcompanyname as supsubcompany,\n" + + " a.canceled,\n" + + " a.subcompanycode,\n" + + " a.limitusers,\n" + + " a.tlevel,\n" + + " c.fblx as type\n" + + " from hrmsubcompany a\n" + + " left join hrmsubcompany b on a.supsubcomid = b.id\n" + + " left join hrmsubcompanydefined c on a.id = c.subcomid "; + deptQuerySql = " select a.id as departmentid,\n" + + " a.departmentmark,\n" + + " a.departmentname,\n" + + " a.subcompanyid1 as subcompanyid,\n" + + " b.SUBCOMPANYNAME as subcompany,\n" + + " a.supdepid as supdepartmentid,\n" + + " c.departmentname as supdepartment,\n" + + " a.canceled,\n" + + " a.departmentcode,\n" + + " a.coadjutant,\n" + + " a.tlevel,\n" + + " d.bmlx as type,\n" + + " a.bmfzr as fleader\n" + + " from hrmdepartment a\n" + + " left join hrmsubcompany b on a.subcompanyid1 = b.id\n" + + " left join hrmdepartment c on a.supdepid = c.id\n" + + " left join hrmdepartmentdefined d on a.id=d.deptid;left join hrmdepartmentdefined d on a.id=d.deptid"; + + }else{ + subCompanyQuerySql = "select a.id as subcompanyid,\n" + + " a.subcompanyname,\n" + + " a.subcompanydesc,\n" + + " a.companyid as company,\n" + + " b.supsubcomid as supsubcompanyid,\n" + + " b.subcompanyname as supsubcompany,\n" + + " a.canceled,\n" + + " a.subcompanycode,\n" + + " a.limitusers,\n" + + " a.tlevel,\n" + + " from hrmsubcompany a\n" + + " left join hrmsubcompany b on a.supsubcomid = b.id"; + deptQuerySql = " select a.id as departmentid,\n" + + " a.departmentmark,\n" + + " a.departmentname,\n" + + " a.subcompanyid1 as subcompanyid,\n" + + " b.SUBCOMPANYNAME as subcompany,\n" + + " a.supdepid as supdepartmentid,\n" + + " c.departmentname as supdepartment,\n" + + " a.canceled,\n" + + " a.departmentcode,\n" + + " a.coadjutant,\n" + + " a.tlevel,\n" + + " a.bmfzr as fleader\n" + + " from hrmdepartment a\n" + + " left join hrmsubcompany b on a.subcompanyid1 = b.id\n" + + " left join hrmdepartment c on a.supdepid = c.id"; + } + + + //当前分部版本存储 + rs.executeQuery(subCompanyQuerySql); + while (rs.next()) { + rs.getString("subcompanyid"); + rs.getString("subcompanyname"); + rs.getString("subcompanydesc"); + rs.getString("company"); + rs.getString("supsubcompanyid"); + rs.getString("supsubcompany"); + rs.getString("canceled"); + rs.getString("subcompanycode"); + rs.getString("limitusers"); + rs.getString("tlevel"); + if (virtualFlag) { + rs.getString("type"); + } + //创建者、当前时间、versionId + } + int subFlag = getJclOrgMapMapper().insertSubVersionRecord(currentDate,currentUser); + + //当前部门版本存储 + rs.executeQuery(deptQuerySql); + while (rs.next()){ + rs.getString("departmentid"); + rs.getString("departmentmark"); + rs.getString("departmentname"); + rs.getString("subcompanyid"); + rs.getString("subcompany"); + rs.getString("supdepartmentid"); + rs.getString("supdepartment"); + rs.getString("canceled"); + rs.getString("departmentcode"); + rs.getString("coadjutant"); + rs.getString("tlevel"); + rs.getString("fleader"); + if (virtualFlag){ + rs.getString("type"); + } + //创建者、当前日期、versionId + } + int deptFlag = getJclOrgMapMapper().insertDeptVersionRecord(currentDate,currentDate); + + //虚拟总部存储 + rs.executeQuery("select id as companyvirtualid,companyname,companycode,companydesc,showorder,canceled," + + "virtualtype,virtualtypedesc from hrmcompanyvirtual"); + while (rs.next()){ + rs.getString("companyvirtualid"); + rs.getString("companyname"); + rs.getString("companycode"); + rs.getString("companydesc"); + rs.getString("canceled"); + rs.getString("virtualtype"); + rs.getString("virtualtypedesc"); + //创建者、当前时间 + } + + //虚拟分部版本存储 + rs.executeQuery("select a.id as subcompanyvirtualid,a.subcompanyname,a.subcompanycode,a.subcompanydesc," + + "b.subcompanyname as supsubcompany,a.supsubcomid,c.companyname as company,a.companyid,a.canceled," + + "a.virtualtypeid as virtualtype,a.tlevel,a.showorder from hrmsubcompanyvirtual a " + + "left join hrmsubcompanyvirtual b on a.supsubcomid = b.id\n" + + "left join hrmcompanyvirtual c on a.companyid = c.id"); + while (rs.next()) { + rs.getString("subcompanyvirtualid"); + rs.getString("subcompanyname"); + rs.getString("subcompanycode"); + rs.getString("subcompanydesc"); + rs.getString("supsubcompany"); + rs.getString("supsubcomid"); + rs.getString("company"); + rs.getString("companyid"); + rs.getString("canceled"); + rs.getString("virtualtype"); + rs.getString("tlevel"); + rs.getString("showorder"); + } + //虚拟部门版本存储 + int deptVirtualFlag = getJclOrgMapMapper().insertDeptVirtualVersionRecord(currentDate,currentUser); + + + //当前岗位版本存储 + + + + return null; + } + + private boolean isHasVirtualFields() { + RecordSet rs = new RecordSet(); + boolean flag = false; + rs.executeQuery("select count(1) as num from hrm_formfield where (GROUPID =6 and FIELDNAME = 'fblx') or (GROUPID =7 and FIELDNAME = 'bmlx')"); + if (rs.next()) { + String num = rs.getString("num"); + flag = "2".equals(num); + } + return flag; + } + /** * 查询实时数据,顶级元素SQL * -- 2.40.0.windows.1 From 104d94ba6f183601918b7875f0084c7db0d9f375 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 12 Jul 2023 10:17:06 +0800 Subject: [PATCH 25/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=EF=BC=8C=E5=9B=9E=E6=BA=AF=E6=95=B0=E6=8D=AE=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ChartServiceImpl.java | 283 ++++++++++++------ 1 file changed, 197 insertions(+), 86 deletions(-) diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 28207e6c..c548b3c7 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -40,6 +40,16 @@ public class ChartServiceImpl extends Service implements ChartService { */ boolean hasVirtualFields; + /** + * 是否实际组织维度 + */ + boolean isRealDimension; + + /** + * 是否即时数据 + */ + boolean isRealTime; + @Override public Map getCompanyData(Map params) { Map result = new HashMap<>(); @@ -67,7 +77,7 @@ public class ChartServiceImpl extends Service implements ChartService { String id = Util.null2String(params.get("id")); // 初始化表名 - initTableNameByClass(dimension); + initTableNameByClass(dimension, id); RecordSet rs = new RecordSet(); List dataList = new ArrayList<>(); @@ -75,10 +85,10 @@ public class ChartServiceImpl extends Service implements ChartService { ChartPO topChartPO = null; //查询当前实际数据 - if("0".equals(id)){ + if (isRealTime) { sql = getRealTimeTopSql(root, dimension); - }else { - sql = getLastTimeTopSql(root,dimension,id); + } else { + sql = getLastTimeTopSql(root, dimension, id); } rs.executeQuery(sql); @@ -98,7 +108,7 @@ public class ChartServiceImpl extends Service implements ChartService { // 向下查询数据 if (null != topChartPO) { - findChildData(topChartPO, dataList,Integer.parseInt(depth)); + findChildData(topChartPO, dataList, Integer.parseInt(depth), id); } @@ -108,7 +118,6 @@ public class ChartServiceImpl extends Service implements ChartService { } - @Override public Map asyncCompanyData(Map params) { @@ -119,9 +128,11 @@ public class ChartServiceImpl extends Service implements ChartService { // 是否展示虚拟组织 String isVirtual = Util.null2String(params.get("fisvitual")); showVirtual = "1".equals(isVirtual); + //版本id + String id = Util.null2String(params.get("id")); // 初始化表名 - initTableNameByClass(dimension); + initTableNameByClass(dimension, id); String ids = (String) params.get("ids"); List dataList = new ArrayList<>(); @@ -149,15 +160,15 @@ public class ChartServiceImpl extends Service implements ChartService { } else if (s.startsWith("d")) { if (hasVirtualFields) { if (showVirtual) { - rs.executeQuery( "select a.id,a.departmentname as name,'2' as type ,b.bmlx as isvitual from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and supdepid = '" + fObjId + "'"); + rs.executeQuery("select a.id,a.departmentname as name,'2' as type ,b.bmlx as isvitual from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and supdepid = '" + fObjId + "'"); } else { - rs.executeQuery( "select a.id,a.departmentname as name,'2' as type ,b.bmlx as isvitual from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where (canceled is null or canceled != '1') and (b.bmlx is null or b.bmlx != '1') and a.supdepid = '" + fObjId + "'"); + rs.executeQuery("select a.id,a.departmentname as name,'2' as type ,b.bmlx as isvitual from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where (canceled is null or canceled != '1') and (b.bmlx is null or b.bmlx != '1') and a.supdepid = '" + fObjId + "'"); } } else { - rs.executeQuery( "select a.id,a.departmentname as name,'2' as type from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and supdepid = '" + fObjId + "'"); + rs.executeQuery("select a.id,a.departmentname as name,'2' as type from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and supdepid = '" + fObjId + "'"); } } - while (rs.next()){ + while (rs.next()) { ChartPO chartPO = new ChartPO(); chartPO.setFtype(rs.getString("type")); chartPO.setFobjid(rs.getString("id")); @@ -184,7 +195,7 @@ public class ChartServiceImpl extends Service implements ChartService { OrganizationAssert.isFalse(StringUtils.isBlank(rootId) || !rootId.startsWith("d_"), "数据有误,未查询到对应数据"); String departmentId = rootId.split("_")[1]; String detauleType = Util.null2String(params.get("detauleType")); - if(!"chart".equals(detauleType)){ + if (!"chart".equals(detauleType)) { return ServiceUtil.getService(HrmResourceServiceImpl.class, user).chartResourceList(Integer.parseInt(departmentId)); } @@ -196,10 +207,11 @@ public class ChartServiceImpl extends Service implements ChartService { // 是否显示岗位 String showJobStr = Util.null2String(params.get("showJob")); boolean showJob = "1".equals(showJobStr); - + //版本id + String id = Util.null2String(params.get("id")); // 初始化表名 - initTableNameByClass(dimension); + initTableNameByClass(dimension, id); List dataList = new ArrayList<>(); List jobTitleList = new ArrayList<>(); @@ -209,14 +221,14 @@ public class ChartServiceImpl extends Service implements ChartService { // TODO 查询当前实际的数据 String sql; // 查询部门本身 - if(hasVirtualFields){ + if (hasVirtualFields) { sql = "select a.id,a.departmentname as name,b.bmfzr,b.bmlx as isvitual from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'"; - }else { + } else { sql = "select a.id,a.departmentname as name,b.bmfzr from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'"; } rs.executeQuery(sql); ChartPO departmentChartPO = new ChartPO(); - if(rs.next()){ + if (rs.next()) { String fLeader = Util.null2String(rs.getString("bmfzr")); departmentChartPO.setFtype("2"); departmentChartPO.setFobjid(departmentId); @@ -283,7 +295,7 @@ public class ChartServiceImpl extends Service implements ChartService { dataList.add(jobTitlePO); } departmentChartPO.setHasChildren(CollectionUtils.isNotEmpty(jobTitleList) ? "1" : "0"); - }else { + } else { // 直接查询岗位下的人员 sql = "select a.id,a.lastname as name ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a where a.status < 4 and a.departmentid = ? "; rs.executeQuery(sql, departmentId); @@ -320,32 +332,40 @@ public class ChartServiceImpl extends Service implements ChartService { @Override public String selectVersionDate(String id) { RecordSet rs = new RecordSet(); - rs.executeQuery("select recorddate from jcl_org_chartversion where id = ?",id); + rs.executeQuery("select recorddate from jcl_org_chartversion where id = ?", id); rs.next(); return rs.getString("recorddate"); } /** * 获取历史顶部元素sql + * * @param root * @param dimension 维度ID - * @param vesionId + * @param versionId * @return */ - private String getLastTimeTopSql(String root, String dimension, String vesionId) { + private String getLastTimeTopSql(String root, String dimension, String versionId) { if ("0".equals(root)) { //查询集团维度历史版本 - if ("0".equals(dimension)) { + if (isRealDimension) { //组织维度 - return "select id,companyname as name,'0' as type from hrmcompany"; + return "select id,companyname as name,'0' as type from " + COMPANY_TABLE; } else { //查询其他维度集团版本信息 - return "select id,companyname as name,'0' as type from jcl_chart_companyvirtual where " + - " versionid = "+vesionId+" and companyvirtualid = "+dimension; + return "select id,companyname as name,'0' as type from " + COMPANY_TABLE + " where " + + " versionid = " + versionId + " and companyvirtualid = " + dimension; + } + } else { + if (hasVirtualFields) { + if (showVirtual) { + return "select id,subcompanyname as name,'1' as type,isvirtual as isvitual from " + SUB_COMPANY_TABLE + " where versionid = " + versionId + " and subcompanyid = " + root; + } else { + return "select id,subcompanyname as name,'1' as type,isvirtual as isvitual from " + SUB_COMPANY_TABLE + " where versionid = " + versionId + " and subcompanyid = " + root + " and (isvirtual is null or isvirtual != '1')"; + } + } else { + return "select id,subcompanyname as name,'1' as type from " + SUB_COMPANY_TABLE + " where versionid = " + versionId + " and subcompanyid = " + root; } - }else { - return "select id,subcompanyname as name,'1' as type from jcl_chart_subcompanyvirtual where " + - " versionid= "+vesionId+" and subcompanyvirtualid"+root; } } @@ -359,7 +379,7 @@ public class ChartServiceImpl extends Service implements ChartService { private String getRealTimeTopSql(String root, String dimension) { if ("0".equals(root)) { // 查询集团数据 - if ("0".equals(dimension)) { + if (isRealDimension) { // 查询实际集团表 return "select id,companyname as name,'0' as type from " + COMPANY_TABLE; } else { @@ -381,16 +401,14 @@ public class ChartServiceImpl extends Service implements ChartService { } /** - * 查询实时数据,子节点元素 + * 查询实时数据,子元素SQL * - * @param topChartPO 父级元素 - * @param dataList 所有元素集合 - * @param selectDepth 所选部门层级 + * @param sql 查询SQL + * @param fType 上级元素类型 + * @param fObjId 上级元素ID + * @return 查询SQL */ - private void findChildData(ChartPO topChartPO, List dataList,Integer selectDepth) { - String fType = topChartPO.getFtype(); - String fObjId = topChartPO.getFobjid(); - String sql = ""; + private String getRealTimeChildSql(String sql, String fType, String fObjId) { if (StringUtils.isNotBlank(fType)) { switch (fType) { case "0": @@ -433,6 +451,82 @@ public class ChartServiceImpl extends Service implements ChartService { break; } } + return sql; + } + + /** + * 查询历史数据,子元素SQL + * + * @param sql 查询SQL + * @param fType 上级元素类型 + * @param fObjId 上级元素ID + * @return 查询SQL + */ + private String getLastTimeChildSql(String sql, String fType, String fObjId, String versionId) { + if (StringUtils.isNotBlank(fType)) { + switch (fType) { + case "0": + if (hasVirtualFields) { + if (showVirtual) { + sql = "select a.id,a.subcompanyname as name,'1' as type ,isvirtual as isvitual from " + SUB_COMPANY_TABLE + " a where (a.canceled is null or a.canceled != '1') and (a.supsubcompanyid is null or a.supsubcompanyid = '0') and versionid = "+versionId; + } else { + sql = "select a.id,a.subcompanyname as name,'1' as type ,isvirtual as isvitual from " + SUB_COMPANY_TABLE + " a where (a.canceled is null or a.canceled != '1') and (a.supsubcompanyid is null or a.supsubcompanyid = '0') and (isvirtual is null or isvirtual != '1') and versionid = "+versionId; + } + } else { + sql = "select a.id,a.subcompanyname as name,'1' as type from " + SUB_COMPANY_TABLE + " a where (a.canceled is null or a.canceled != '1') and (a.supsubcompanyid is null or a.supsubcompanyid = '0') and versionid = "+versionId; + } + if(!isRealDimension){ + sql += " and companyid = " + fObjId; + } + break; + case "1": + if (hasVirtualFields) { + if (showVirtual) { + sql = "select a.id,a.subcompanyname as name,'1' as type ,isvirtual as isvitual from " + SUB_COMPANY_TABLE + " a where (a.canceled is null or a.canceled != '1') and a.supsubcompanyid = '" + fObjId + "' and versionid = " + versionId + + " union select a.id,a.departmentname as name,'2' as type ,isvirtual as isvitual from " + DEPARTMENT_TABLE + " a where (a.canceled is null or a.canceled != '1') and (a.supdepartmentid is null or a.supdepartmentid = '0') and subcompanyid = '" + fObjId + "' and versionid = "+versionId; + } else { + sql = "select a.id,a.subcompanyname as name,'1' as type ,isvirtual as isvitual from " + SUB_COMPANY_TABLE + " a where (a.canceled is null or a.canceled != '1') and (isvirtual is null or isvirtual != '1') and a.supsubcompanyid = '" + fObjId + "' and versionid = "+versionId + + " union select a.id,a.departmentname as name,'2' as type ,isvirtual as isvitual from " + DEPARTMENT_TABLE + " a where (a.canceled is null or a.canceled != '1') and (a.supdepartmentid is null or a.supdepartmentid = '0') and (isvirtual is null or isvirtual != '1') and subcompanyid = '" + fObjId + "' and versionid = "+versionId; + } + } else { + sql = "select a.id,a.subcompanyname as name,'1' as type from " + SUB_COMPANY_TABLE + " a where (canceled is null or canceled != '1') and supsubcompanyid = '" + fObjId + "' and versionid = "+versionId + + " union select a.id,a.departmentname as name,'2' as type from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and (supdepartmentid is null or supdepartmentid = '0') and subcompanyid = '" + fObjId + "' and versionid = "+versionId; + } + break; + case "2": + if (hasVirtualFields) { + if (showVirtual) { + sql = "select a.id,a.departmentname as name,'2' as type ,isvirtual as isvitual from " + DEPARTMENT_TABLE + " a where (a.canceled is null or a.canceled != '1') and supdepartmentid = '" + fObjId + "' and versionid = "+versionId; + } else { + sql = "select a.id,a.departmentname as name,'2' as type ,isvirtual as isvitual from " + DEPARTMENT_TABLE + " where (canceled is null or canceled != '1') and (isvirtual is null or isvirtual != '1') and a.supdepartmentid = '" + fObjId + "' and versionid = "+versionId; + } + } else { + sql = "select a.id,a.departmentname as name,'2' as type from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and supdepartmentid = '" + fObjId + "' and versionid = "+versionId; + } + break; + default: + break; + } + } + return sql; + } + + /** + * 查询实时数据,子节点元素 + * + * @param topChartPO 父级元素 + * @param dataList 所有元素集合 + * @param selectDepth 所选部门层级 + */ + private void findChildData(ChartPO topChartPO, List dataList, Integer selectDepth,String versionId) { + String fType = topChartPO.getFtype(); + String fObjId = topChartPO.getFobjid(); + String sql = ""; + if (isRealTime) { + sql = getRealTimeChildSql(sql, fType, fObjId); + } else { + sql = getLastTimeChildSql(sql, fType, fObjId,versionId); + } if (StringUtils.isNotBlank(sql)) { List currentList = new ArrayList<>(); @@ -448,12 +542,12 @@ public class ChartServiceImpl extends Service implements ChartService { chartPO.setHasChildren(getHasChildren(chartPO.getFtype(), chartPO.getFobjid()).toString()); chartPO.setDepartmentDepth(getDepartmentDepth(chartPO, topChartPO)); // 小于、等于所选层级元素展开 - chartPO.setExpand(inDepth(selectDepth,chartPO.getDepartmentDepth()) ? "1" : "0"); + chartPO.setExpand(inDepth(selectDepth, chartPO.getDepartmentDepth()) ? "1" : "0"); currentList.add(chartPO); } for (ChartPO chartPO : currentList) { if (inDepth(selectDepth, chartPO.getDepartmentDepth())) { - findChildData(chartPO, dataList, selectDepth); + findChildData(chartPO, dataList, selectDepth,versionId); } } dataList.addAll(currentList); @@ -466,30 +560,47 @@ public class ChartServiceImpl extends Service implements ChartService { /** * 根据维度初始化表名 * - * @param fClass 所选维度 + * @param dimension 所选维度 */ - public void initTableNameByClass(String fClass) { - if (StringUtils.isBlank(fClass) || "0".equals(fClass)) { - COMPANY_TABLE = "hrmcompany"; - SUB_COMPANY_TABLE = "hrmsubcompany"; - SUB_COMPANY_DEFINED_TABLE = "hrmsubcompanydefined"; - DEPARTMENT_TABLE = "hrmdepartment"; - DEPARTMENT_DEFINED_TABLE = "hrmdepartmentdefined"; - RecordSet rs = new RecordSet(); - rs.executeQuery("select count(1) as num from hrm_formfield where (GROUPID =6 and FIELDNAME = 'fblx') or (GROUPID =7 and FIELDNAME = 'bmlx')"); - if (rs.next()) { - String num = rs.getString("num"); - hasVirtualFields = "2".equals(num); + public void initTableNameByClass(String dimension, String id) { + isRealDimension = StringUtils.isBlank(dimension) || "0".equals(dimension); + isRealTime = StringUtils.isBlank(id) || "0".equals(id); + if (isRealTime) { + if (isRealDimension) { + COMPANY_TABLE = "hrmcompany"; + SUB_COMPANY_TABLE = "hrmsubcompany"; + SUB_COMPANY_DEFINED_TABLE = "hrmsubcompanydefined"; + DEPARTMENT_TABLE = "hrmdepartment"; + DEPARTMENT_DEFINED_TABLE = "hrmdepartmentdefined"; + RecordSet rs = new RecordSet(); + rs.executeQuery("select count(1) as num from hrm_formfield where (GROUPID =6 and FIELDNAME = 'fblx') or (GROUPID =7 and FIELDNAME = 'bmlx')"); + if (rs.next()) { + String num = rs.getString("num"); + hasVirtualFields = "2".equals(num); + } else { + hasVirtualFields = false; + } } else { + COMPANY_TABLE = "hrmcompanyvirtual"; + SUB_COMPANY_TABLE = "hrmsubcompanyvirtual"; + DEPARTMENT_TABLE = "hrmdepartmentvirtual"; + // 其他维度,无虚拟组织 hasVirtualFields = false; } } else { - COMPANY_TABLE = "hrmcompanyvirtual"; - SUB_COMPANY_TABLE = "hrmsubcompanyvirtual"; - DEPARTMENT_TABLE = "hrmdepartmentvirtual"; - // 其他维度,无虚拟组织 - hasVirtualFields = false; + if (isRealDimension) { + COMPANY_TABLE = "hrmcompany"; + SUB_COMPANY_TABLE = "jcl_chart_subcompany"; + DEPARTMENT_TABLE = "jcl_chart_department"; + hasVirtualFields = true; + } else { + COMPANY_TABLE = "jcl_chart_companyvirtual"; + SUB_COMPANY_TABLE = "jcl_chart_subcompanyvirtual"; + DEPARTMENT_TABLE = "jcl_chart_departmentvirtual"; + // 其他维度,无虚拟组织 + hasVirtualFields = false; + } } } @@ -502,35 +613,35 @@ public class ChartServiceImpl extends Service implements ChartService { * @return boolean 包含子元素:true,不包含子元素:false */ private Boolean getHasChildren(String fType, String fObjId) { - String sql = ""; - if (StringUtils.isNotBlank(fType)) { - switch (fType) { - case "0": - sql = "select id from " + SUB_COMPANY_TABLE + " where (supsubcomid is null or supsubcomid = '0') and companyid = '" + fObjId + "'"; - break; - case "1": - if (hasVirtualFields && !showVirtual) { - sql = "select a.id from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and (b.fblx is null or b.fblx != '1') and a.supsubcomid = '" + fObjId + "' union select a.id from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and (a.supdepid is null or a.supdepid = '0') and (b.bmlx is null or b.bmlx != '1') and subcompanyid1 = '" + fObjId + "'"; - } else { - sql = "select id from " + SUB_COMPANY_TABLE + " where (canceled is null or canceled != '1') and supsubcomid = '" + fObjId + "' union select id from " + DEPARTMENT_TABLE + " where (canceled is null or canceled != '1') and (supdepid is null or supdepid = '0') and subcompanyid1 = '" + fObjId + "'"; - } - break; - case "2": - if (hasVirtualFields && !showVirtual) { - sql = "select a.id from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where (canceled is null or canceled != '1') and (b.bmlx is null or b.bmlx != '1') and a.supdepid = '" + fObjId + "'"; - } else { - sql = "select id from " + DEPARTMENT_TABLE + " where (canceled is null or canceled != '1') and supdepid = '" + fObjId + "'"; - } - break; - default: - break; - } - } - if (StringUtils.isNotBlank(sql)) { - RecordSet rs = new RecordSet(); - rs.executeQuery(sql); - return rs.next(); - } + //String sql = ""; + //if (StringUtils.isNotBlank(fType)) { + // switch (fType) { + // case "0": + // sql = "select id from " + SUB_COMPANY_TABLE + " where (supsubcomid is null or supsubcomid = '0') and companyid = '" + fObjId + "'"; + // break; + // case "1": + // if (hasVirtualFields && !showVirtual) { + // sql = "select a.id from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and (b.fblx is null or b.fblx != '1') and a.supsubcomid = '" + fObjId + "' union select a.id from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and (a.supdepid is null or a.supdepid = '0') and (b.bmlx is null or b.bmlx != '1') and subcompanyid1 = '" + fObjId + "'"; + // } else { + // sql = "select id from " + SUB_COMPANY_TABLE + " where (canceled is null or canceled != '1') and supsubcomid = '" + fObjId + "' union select id from " + DEPARTMENT_TABLE + " where (canceled is null or canceled != '1') and (supdepid is null or supdepid = '0') and subcompanyid1 = '" + fObjId + "'"; + // } + // break; + // case "2": + // if (hasVirtualFields && !showVirtual) { + // sql = "select a.id from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where (canceled is null or canceled != '1') and (b.bmlx is null or b.bmlx != '1') and a.supdepid = '" + fObjId + "'"; + // } else { + // sql = "select id from " + DEPARTMENT_TABLE + " where (canceled is null or canceled != '1') and supdepid = '" + fObjId + "'"; + // } + // break; + // default: + // break; + // } + //} + //if (StringUtils.isNotBlank(sql)) { + // RecordSet rs = new RecordSet(); + // rs.executeQuery(sql); + // return rs.next(); + //} return false; } -- 2.40.0.windows.1 From 151e77e69b1f2b6197de4f483f5872f636e95b36 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 12 Jul 2023 11:15:11 +0800 Subject: [PATCH 26/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=EF=BC=8C=E5=9B=9E=E6=BA=AF=E8=AF=A6=E7=BB=86=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ChartServiceImpl.java | 79 +++++++++++++------ 1 file changed, 53 insertions(+), 26 deletions(-) diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index c548b3c7..9be33725 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -29,6 +29,8 @@ public class ChartServiceImpl extends Service implements ChartService { public String SUB_COMPANY_DEFINED_TABLE = ""; public String DEPARTMENT_TABLE = ""; public String DEPARTMENT_DEFINED_TABLE = ""; + public String SUB_COMPANY_ID = "''"; + public String DEPARTMENT_ID = "''"; /** * 显示虚拟组织 @@ -196,6 +198,7 @@ public class ChartServiceImpl extends Service implements ChartService { String departmentId = rootId.split("_")[1]; String detauleType = Util.null2String(params.get("detauleType")); if (!"chart".equals(detauleType)) { + // 展示列表模块 return ServiceUtil.getService(HrmResourceServiceImpl.class, user).chartResourceList(Integer.parseInt(departmentId)); } @@ -208,10 +211,10 @@ public class ChartServiceImpl extends Service implements ChartService { String showJobStr = Util.null2String(params.get("showJob")); boolean showJob = "1".equals(showJobStr); //版本id - String id = Util.null2String(params.get("id")); + String versionId = Util.null2String(params.get("id")); // 初始化表名 - initTableNameByClass(dimension, id); + initTableNameByClass(dimension, versionId); List dataList = new ArrayList<>(); List jobTitleList = new ArrayList<>(); @@ -220,11 +223,19 @@ public class ChartServiceImpl extends Service implements ChartService { RecordSet rs = new RecordSet(); // TODO 查询当前实际的数据 String sql; - // 查询部门本身 - if (hasVirtualFields) { - sql = "select a.id,a.departmentname as name,b.bmfzr,b.bmlx as isvitual from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'"; + if (isRealTime) { + // 查询部门本身 + if (hasVirtualFields) { + sql = "select a.id,a.departmentname as name,b.bmfzr,b.bmlx as isvitual from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'"; + } else { + sql = "select a.id,a.departmentname as name,b.bmfzr from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'"; + } } else { - sql = "select a.id,a.departmentname as name,b.bmfzr from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'"; + if (hasVirtualFields) { + sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name,fleader as bmfzr,isvirtual as isvitual from " + DEPARTMENT_TABLE + " a where a.id = '" + departmentId + "' and versionid = " + versionId; + } else { + sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name,fleader as bmfzr from " + DEPARTMENT_TABLE + " a where a.id = '" + departmentId + "' and versionid = " + versionId; + } } rs.executeQuery(sql); ChartPO departmentChartPO = new ChartPO(); @@ -245,7 +256,11 @@ public class ChartServiceImpl extends Service implements ChartService { if (showJob) { // 查询部门下的岗位 - sql = "select a.id,a.jobtitlename as name from hrmjobtitles a inner join jcl_org_job b on a.id = b.ec_jobtitle where b.ec_department = '" + departmentId + "'"; + if (isRealTime) { + sql = "select a.id,a.jobtitlename as name from hrmjobtitles a inner join jcl_org_job b on a.id = b.ec_jobtitle where b.ec_department = '" + departmentId + "'"; + }else{ + sql = "select jobid as id ,jobname as name from jcl_chart_job where departmentid = '" + departmentId + "' and versionid = " + versionId; + } rs.executeQuery(sql); while (rs.next()) { ChartPO chartPO = new ChartPO(); @@ -260,12 +275,20 @@ public class ChartServiceImpl extends Service implements ChartService { jobTitleList.add(chartPO); } - if ("0".equals(dimension)) { - sql = "select a.id,a.lastname as name ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a where a.status < 4 and a.departmentid = ? and a.jobtitle = ?"; + // 遍历岗位、查询对应岗位下的人员 + if (isRealTime) { + if (isRealDimension) { + sql = "select a.id,a.lastname as name ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a where a.status < 4 and a.departmentid = ? and a.jobtitle = ?"; + } else { + sql = "select a.id,a.lastname as name ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a inner join hrmresourcevirtual b on a.id = b.resourceid where a.status < 4 and b.departmentid = ? and a.jobtitle = ?"; + } } else { - sql = "select a.id,a.lastname as name ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a inner join hrmresourcevirtual b on a.id = b.resourceid where a.status < 4 and b.departmentid = ? and a.jobtitle = ?"; + //if (isRealDimension) { + // sql = "select a.id,a.lastname as name ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a where a.status < 4 and a.departmentid = ? and a.jobtitle = ?"; + //} else { + // sql = "select a.id,a.lastname as name ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a inner join hrmresourcevirtual b on a.id = b.resourceid where a.status < 4 and b.departmentid = ? and a.jobtitle = ?"; + //} } - // 遍历岗位、查询对应岗位下的人员 for (ChartPO jobTitlePO : jobTitleList) { resourceNum = 0; rs.executeQuery(sql, departmentId, jobTitlePO.getFobjid()); @@ -359,12 +382,12 @@ public class ChartServiceImpl extends Service implements ChartService { } else { if (hasVirtualFields) { if (showVirtual) { - return "select id,subcompanyname as name,'1' as type,isvirtual as isvitual from " + SUB_COMPANY_TABLE + " where versionid = " + versionId + " and subcompanyid = " + root; + return "select " + SUB_COMPANY_ID + " as id,subcompanyname as name,'1' as type,isvirtual as isvitual from " + SUB_COMPANY_TABLE + " where versionid = " + versionId + " and subcompanyid = " + root; } else { - return "select id,subcompanyname as name,'1' as type,isvirtual as isvitual from " + SUB_COMPANY_TABLE + " where versionid = " + versionId + " and subcompanyid = " + root + " and (isvirtual is null or isvirtual != '1')"; + return "select " + SUB_COMPANY_ID + " as id,subcompanyname as name,'1' as type,isvirtual as isvitual from " + SUB_COMPANY_TABLE + " where versionid = " + versionId + " and subcompanyid = " + root + " and (isvirtual is null or isvirtual != '1')"; } } else { - return "select id,subcompanyname as name,'1' as type from " + SUB_COMPANY_TABLE + " where versionid = " + versionId + " and subcompanyid = " + root; + return "select " + SUB_COMPANY_ID + " as id,subcompanyname as name,'1' as type from " + SUB_COMPANY_TABLE + " where versionid = " + versionId + " and subcompanyid = " + root; } } } @@ -468,12 +491,12 @@ public class ChartServiceImpl extends Service implements ChartService { case "0": if (hasVirtualFields) { if (showVirtual) { - sql = "select a.id,a.subcompanyname as name,'1' as type ,isvirtual as isvitual from " + SUB_COMPANY_TABLE + " a where (a.canceled is null or a.canceled != '1') and (a.supsubcompanyid is null or a.supsubcompanyid = '0') and versionid = "+versionId; + sql = "select " + SUB_COMPANY_ID + " as id,a.subcompanyname as name,'1' as type ,isvirtual as isvitual from " + SUB_COMPANY_TABLE + " a where (a.canceled is null or a.canceled != '1') and (a.supsubcompanyid is null or a.supsubcompanyid = '0') and versionid = " + versionId; } else { - sql = "select a.id,a.subcompanyname as name,'1' as type ,isvirtual as isvitual from " + SUB_COMPANY_TABLE + " a where (a.canceled is null or a.canceled != '1') and (a.supsubcompanyid is null or a.supsubcompanyid = '0') and (isvirtual is null or isvirtual != '1') and versionid = "+versionId; + sql = "select " + SUB_COMPANY_ID + " as id,a.subcompanyname as name,'1' as type ,isvirtual as isvitual from " + SUB_COMPANY_TABLE + " a where (a.canceled is null or a.canceled != '1') and (a.supsubcompanyid is null or a.supsubcompanyid = '0') and (isvirtual is null or isvirtual != '1') and versionid = " + versionId; } } else { - sql = "select a.id,a.subcompanyname as name,'1' as type from " + SUB_COMPANY_TABLE + " a where (a.canceled is null or a.canceled != '1') and (a.supsubcompanyid is null or a.supsubcompanyid = '0') and versionid = "+versionId; + sql = "select " + SUB_COMPANY_ID + " as id,a.subcompanyname as name,'1' as type from " + SUB_COMPANY_TABLE + " a where (a.canceled is null or a.canceled != '1') and (a.supsubcompanyid is null or a.supsubcompanyid = '0') and versionid = " + versionId; } if(!isRealDimension){ sql += " and companyid = " + fObjId; @@ -482,26 +505,26 @@ public class ChartServiceImpl extends Service implements ChartService { case "1": if (hasVirtualFields) { if (showVirtual) { - sql = "select a.id,a.subcompanyname as name,'1' as type ,isvirtual as isvitual from " + SUB_COMPANY_TABLE + " a where (a.canceled is null or a.canceled != '1') and a.supsubcompanyid = '" + fObjId + "' and versionid = " + versionId + - " union select a.id,a.departmentname as name,'2' as type ,isvirtual as isvitual from " + DEPARTMENT_TABLE + " a where (a.canceled is null or a.canceled != '1') and (a.supdepartmentid is null or a.supdepartmentid = '0') and subcompanyid = '" + fObjId + "' and versionid = "+versionId; + sql = "select " + SUB_COMPANY_ID + " as id,a.subcompanyname as name,'1' as type ,isvirtual as isvitual from " + SUB_COMPANY_TABLE + " a where (a.canceled is null or a.canceled != '1') and a.supsubcompanyid = '" + fObjId + "' and versionid = " + versionId + + " union select " + DEPARTMENT_ID + " as id,a.departmentname as name,'2' as type ,isvirtual as isvitual from " + DEPARTMENT_TABLE + " a where (a.canceled is null or a.canceled != '1') and (a.supdepartmentid is null or a.supdepartmentid = '0') and subcompanyid = '" + fObjId + "' and versionid = " + versionId; } else { - sql = "select a.id,a.subcompanyname as name,'1' as type ,isvirtual as isvitual from " + SUB_COMPANY_TABLE + " a where (a.canceled is null or a.canceled != '1') and (isvirtual is null or isvirtual != '1') and a.supsubcompanyid = '" + fObjId + "' and versionid = "+versionId + - " union select a.id,a.departmentname as name,'2' as type ,isvirtual as isvitual from " + DEPARTMENT_TABLE + " a where (a.canceled is null or a.canceled != '1') and (a.supdepartmentid is null or a.supdepartmentid = '0') and (isvirtual is null or isvirtual != '1') and subcompanyid = '" + fObjId + "' and versionid = "+versionId; + sql = "select " + SUB_COMPANY_ID + " as id,a.subcompanyname as name,'1' as type ,isvirtual as isvitual from " + SUB_COMPANY_TABLE + " a where (a.canceled is null or a.canceled != '1') and (isvirtual is null or isvirtual != '1') and a.supsubcompanyid = '" + fObjId + "' and versionid = " + versionId + + " union select " + DEPARTMENT_ID + " as id,a.departmentname as name,'2' as type ,isvirtual as isvitual from " + DEPARTMENT_TABLE + " a where (a.canceled is null or a.canceled != '1') and (a.supdepartmentid is null or a.supdepartmentid = '0') and (isvirtual is null or isvirtual != '1') and subcompanyid = '" + fObjId + "' and versionid = " + versionId; } } else { - sql = "select a.id,a.subcompanyname as name,'1' as type from " + SUB_COMPANY_TABLE + " a where (canceled is null or canceled != '1') and supsubcompanyid = '" + fObjId + "' and versionid = "+versionId + - " union select a.id,a.departmentname as name,'2' as type from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and (supdepartmentid is null or supdepartmentid = '0') and subcompanyid = '" + fObjId + "' and versionid = "+versionId; + sql = "select " + SUB_COMPANY_ID + " as id,a.subcompanyname as name,'1' as type from " + SUB_COMPANY_TABLE + " a where (canceled is null or canceled != '1') and supsubcompanyid = '" + fObjId + "' and versionid = " + versionId + + " union select " + DEPARTMENT_ID + " as id,a.departmentname as name,'2' as type from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and (supdepartmentid is null or supdepartmentid = '0') and subcompanyid = '" + fObjId + "' and versionid = " + versionId; } break; case "2": if (hasVirtualFields) { if (showVirtual) { - sql = "select a.id,a.departmentname as name,'2' as type ,isvirtual as isvitual from " + DEPARTMENT_TABLE + " a where (a.canceled is null or a.canceled != '1') and supdepartmentid = '" + fObjId + "' and versionid = "+versionId; + sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name,'2' as type ,isvirtual as isvitual from " + DEPARTMENT_TABLE + " a where (a.canceled is null or a.canceled != '1') and supdepartmentid = '" + fObjId + "' and versionid = " + versionId; } else { - sql = "select a.id,a.departmentname as name,'2' as type ,isvirtual as isvitual from " + DEPARTMENT_TABLE + " where (canceled is null or canceled != '1') and (isvirtual is null or isvirtual != '1') and a.supdepartmentid = '" + fObjId + "' and versionid = "+versionId; + sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name,'2' as type ,isvirtual as isvitual from " + DEPARTMENT_TABLE + " where (canceled is null or canceled != '1') and (isvirtual is null or isvirtual != '1') and a.supdepartmentid = '" + fObjId + "' and versionid = " + versionId; } } else { - sql = "select a.id,a.departmentname as name,'2' as type from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and supdepartmentid = '" + fObjId + "' and versionid = "+versionId; + sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name,'2' as type from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and supdepartmentid = '" + fObjId + "' and versionid = " + versionId; } break; default: @@ -593,11 +616,15 @@ public class ChartServiceImpl extends Service implements ChartService { COMPANY_TABLE = "hrmcompany"; SUB_COMPANY_TABLE = "jcl_chart_subcompany"; DEPARTMENT_TABLE = "jcl_chart_department"; + SUB_COMPANY_ID = "subcompanyid"; + DEPARTMENT_ID = "departmentid"; hasVirtualFields = true; } else { COMPANY_TABLE = "jcl_chart_companyvirtual"; SUB_COMPANY_TABLE = "jcl_chart_subcompanyvirtual"; DEPARTMENT_TABLE = "jcl_chart_departmentvirtual"; + SUB_COMPANY_ID = "subcompanyvirtualid"; + DEPARTMENT_ID = "departmentvirtualid"; // 其他维度,无虚拟组织 hasVirtualFields = false; } -- 2.40.0.windows.1 From 81f7ecfec91604d64a99619231d36fc79eeff747 Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Wed, 12 Jul 2023 16:09:04 +0800 Subject: [PATCH 27/87] =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/HrmResourceService.java | 2 +- .../service/impl/ChartServiceImpl.java | 19 ++++--- .../service/impl/HrmResourceServiceImpl.java | 53 +++++++++++++++++-- 3 files changed, 59 insertions(+), 15 deletions(-) diff --git a/src/com/engine/organization/service/HrmResourceService.java b/src/com/engine/organization/service/HrmResourceService.java index d635110c..a6a3fc7f 100644 --- a/src/com/engine/organization/service/HrmResourceService.java +++ b/src/com/engine/organization/service/HrmResourceService.java @@ -176,7 +176,7 @@ public interface HrmResourceService { * @param: [departmentId] * @return: java.util.Map */ - Map chartResourceList(Integer departmentId); + Map chartResourceList(Integer departmentId,String versionId,String dimension); } diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 9be33725..e9be0864 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -193,16 +193,6 @@ public class ChartServiceImpl extends Service implements ChartService { @Override public Map getDepartmentDetail(Map params) { String rootId = Util.null2String(params.get("rootId")); - - OrganizationAssert.isFalse(StringUtils.isBlank(rootId) || !rootId.startsWith("d_"), "数据有误,未查询到对应数据"); - String departmentId = rootId.split("_")[1]; - String detauleType = Util.null2String(params.get("detauleType")); - if (!"chart".equals(detauleType)) { - // 展示列表模块 - return ServiceUtil.getService(HrmResourceServiceImpl.class, user).chartResourceList(Integer.parseInt(departmentId)); - } - - // 维度 String dimension = Util.null2String(params.get("fclass")); dimension = StringUtils.isBlank(dimension) ? "0" : dimension; @@ -213,6 +203,15 @@ public class ChartServiceImpl extends Service implements ChartService { //版本id String versionId = Util.null2String(params.get("id")); + OrganizationAssert.isFalse(StringUtils.isBlank(rootId) || !rootId.startsWith("d_"), "数据有误,未查询到对应数据"); + String departmentId = rootId.split("_")[1]; + String detauleType = Util.null2String(params.get("detauleType")); + if (!"chart".equals(detauleType)) { + // 展示列表模块 + return ServiceUtil.getService(HrmResourceServiceImpl.class, user).chartResourceList(Integer.parseInt(departmentId),versionId,dimension); + } + + // 初始化表名 initTableNameByClass(dimension, versionId); diff --git a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java index aa2a34d7..a2d3baef 100644 --- a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java @@ -66,6 +66,8 @@ import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; +import static weaver.general.Util.getIntValue; + /** * @author:dxfeng * @createTime: 2022/06/20 @@ -308,7 +310,7 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic @Override public Integer updateCustomTemplate(Map params) { - int rowNum = Util.getIntValue((String) params.get("rownum")); + int rowNum = getIntValue((String) params.get("rownum")); int count = 0; List allIds = getJclOrgCustomTemplateMapper().listAllId(); String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date()); @@ -424,11 +426,54 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic } @Override - public Map chartResourceList(Integer departmentId) { + public Map chartResourceList(Integer departmentId,String versionId,String dimension) { Map dataMap = new HashMap<>(); List resourceListColumns = getTableColumns(); - List resourceChartPOS = getHrmResourceMapper().selectByDepartmentId(departmentId); - List resourceChartVOS = ResourceChartBO.convertToVO(resourceChartPOS); + List resourceChartPOS = new ArrayList<>(); + List resourceChartVOS = new ArrayList<>(); + RecordSet rs = new RecordSet(); + if ("0".equals(dimension)) { + if ("0".equals(versionId)) { + //当前数据 + resourceChartPOS = getHrmResourceMapper().selectByDepartmentId(departmentId); + resourceChartVOS = ResourceChartBO.convertToVO(resourceChartPOS); + }else { + rs.executeQuery("select resourceid,workcode,lastname,sex,department,subcompany,jobtitle,mobile from jcl_chart_resource where departmentid = ? and versionid = ?",departmentId,versionId); + while (rs.next()) { + ResourceChartVO build = ResourceChartVO.builder() + .id((long) Util.getIntValue(rs.getString("resourceid"))) + .workCode(Util.null2String(rs.getString("workcode"))) + .lastName(Util.null2String(rs.getString("lastname"))) + .sex("1".equals(Util.null2String(rs.getString("workcode"))) ? "女" : "男") + .departmentName(Util.null2String(rs.getString("department"))) + .subcompanyName(Util.null2String(rs.getString("subcompany"))) + .jobTitle(Util.null2String(rs.getString("jobtitle"))) + .mobile(Util.null2String(rs.getString("mobile"))) + .build(); + + resourceChartVOS.add(build); + } + } + }else { + rs.executeQuery("select h.id,h.workcode,h.lastname,h.sex,h.departmentid,h.subcompanyid1,h.jobtitle,h.status,h.mobile " + + " from hrmresourcevirtual v left join hrmresource h on v.resourceid = h.id and v.virtualtype = ? and h.departmentid = ?",versionId,departmentId); + while (rs.next()) { + ResourceChartPO build = ResourceChartPO.builder() + .id((long) Util.getIntValue(rs.getString("id"))) + .workCode(Util.null2String(rs.getString("workcode"))) + .lastName(Util.null2String(rs.getString("lastname"))) + .sex(Util.null2String(rs.getString("sex"))) + .departmentId(Util.getIntValue(rs.getString("departmentid"))) + .subcompanyid1(Util.getIntValue(rs.getString("subcompanyid1"))) + .jobTitle(Util.getIntValue(rs.getString("jobtitle"))) + .status(Util.getIntValue(rs.getString("subcompanyid1"))) + .mobile(Util.null2String(rs.getString("subcompanyid1"))) + .build(); + resourceChartPOS.add(build); + } + resourceChartVOS = ResourceChartBO.convertToVO(resourceChartPOS); + } + dataMap.put("columns",resourceListColumns); dataMap.put("dataSource",resourceChartVOS); return dataMap; -- 2.40.0.windows.1 From 3bf299afa4bace7c569b920acd4bf7aab33639dd Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 12 Jul 2023 16:13:08 +0800 Subject: [PATCH 28/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=EF=BC=8C=E5=9B=9E=E6=BA=AF=E8=AF=A6=E7=BB=86=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ChartServiceImpl.java | 88 ++++++++++--------- 1 file changed, 46 insertions(+), 42 deletions(-) diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 9be33725..854821d1 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -234,7 +234,7 @@ public class ChartServiceImpl extends Service implements ChartService { if (hasVirtualFields) { sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name,fleader as bmfzr,isvirtual as isvitual from " + DEPARTMENT_TABLE + " a where a.id = '" + departmentId + "' and versionid = " + versionId; } else { - sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name,fleader as bmfzr from " + DEPARTMENT_TABLE + " a where a.id = '" + departmentId + "' and versionid = " + versionId; + sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name from " + DEPARTMENT_TABLE + " a where a.id = '" + departmentId + "' and versionid = " + versionId; } } rs.executeQuery(sql); @@ -278,38 +278,19 @@ public class ChartServiceImpl extends Service implements ChartService { // 遍历岗位、查询对应岗位下的人员 if (isRealTime) { if (isRealDimension) { - sql = "select a.id,a.lastname as name ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a where a.status < 4 and a.departmentid = ? and a.jobtitle = ?"; + sql = "select a.id,a.lastname as name ,a.belongto ,a.companyworkyear from hrmresource a where a.status < 4 and a.departmentid = ? and a.jobtitle = ?"; } else { - sql = "select a.id,a.lastname as name ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a inner join hrmresourcevirtual b on a.id = b.resourceid where a.status < 4 and b.departmentid = ? and a.jobtitle = ?"; + sql = "select a.id,a.lastname as name ,a.belongto ,a.companyworkyear from hrmresource a inner join hrmresourcevirtual b on a.id = b.resourceid where a.status < 4 and b.departmentid = ? and a.jobtitle = ?"; } } else { - //if (isRealDimension) { - // sql = "select a.id,a.lastname as name ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a where a.status < 4 and a.departmentid = ? and a.jobtitle = ?"; - //} else { - // sql = "select a.id,a.lastname as name ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a inner join hrmresourcevirtual b on a.id = b.resourceid where a.status < 4 and b.departmentid = ? and a.jobtitle = ?"; - //} + sql = "select a.resourceid as id,a.lastname as name ,a.belongto ,a.companyworkyear from jcl_chart_resource a where a.status < 4 and a.departmentid = ? and a.jobtitleid = ? and versionid = " + versionId; } for (ChartPO jobTitlePO : jobTitleList) { resourceNum = 0; rs.executeQuery(sql, departmentId, jobTitlePO.getFobjid()); + String parentId = departmentId + "_" + jobTitlePO.getFobjid(); while (rs.next()) { - String jobTitle = Util.null2String(rs.getString("jobtitle")); - ChartPO chartPO = new ChartPO(); - chartPO.setFtype("4"); - chartPO.setFobjid(rs.getString("id")); - chartPO.setId(chartPO.getFobjid()); - chartPO.setFname(rs.getString("name")); - // 岗位处理后的ID - chartPO.setParentId(departmentId + "_" + jobTitle); - chartPO.setExpand("0"); - chartPO.setHasChildren("0"); - chartPO.setBelongto(Util.null2String(rs.getString("belongto"))); - chartPO.setCompanyWorkYear(rs.getString("companyworkyear")); - try { - chartPO.setFleaderimg(new ResourceComInfo().getMessagerUrls(chartPO.getId())); - } catch (Exception e) { - throw new RuntimeException(e); - } + ChartPO chartPO = getResourceChartPO(rs.getString("id"), rs.getString("name"), parentId, rs.getString("belongto"), rs.getString("companyworkyear")); resourceNum++; dataList.add(chartPO); } @@ -320,25 +301,18 @@ public class ChartServiceImpl extends Service implements ChartService { departmentChartPO.setHasChildren(CollectionUtils.isNotEmpty(jobTitleList) ? "1" : "0"); } else { // 直接查询岗位下的人员 - sql = "select a.id,a.lastname as name ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a where a.status < 4 and a.departmentid = ? "; + if (isRealTime) { + if (isRealDimension) { + sql = "select a.id,a.lastname as name ,a.belongto ,a.companyworkyear from hrmresource a where a.status < 4 and a.departmentid = ? "; + } else { + sql = "select a.id,a.lastname as name ,a.belongto ,a.companyworkyear from hrmresource a inner join hrmresourcevirtual b on a.id = b.resourceid where a.status < 4 and b.departmentid = ? "; + } + } else { + sql = "select a.resourceid as id,a.lastname as name ,a.belongto ,a.companyworkyear from jcl_chart_resource a where a.status < 4 and a.departmentid = ? and versionid = " + versionId; + } rs.executeQuery(sql, departmentId); while (rs.next()) { - ChartPO chartPO = new ChartPO(); - chartPO.setFtype("4"); - chartPO.setFobjid(rs.getString("id")); - chartPO.setId(chartPO.getFobjid()); - chartPO.setFname(rs.getString("name")); - // 岗位处理后的ID - chartPO.setParentId(rootId); - chartPO.setExpand("0"); - chartPO.setHasChildren("0"); - chartPO.setBelongto(Util.null2String(rs.getString("belongto"))); - chartPO.setCompanyWorkYear(rs.getString("companyworkyear")); - try { - chartPO.setFleaderimg(new ResourceComInfo().getMessagerUrls(chartPO.getId())); - } catch (Exception e) { - throw new RuntimeException(e); - } + ChartPO chartPO = getResourceChartPO(rs.getString("id"), rs.getString("name"), rootId, rs.getString("belongto"), rs.getString("companyworkyear")); dataList.add(chartPO); departmentOnJob++; } @@ -360,6 +334,36 @@ public class ChartServiceImpl extends Service implements ChartService { return rs.getString("recorddate"); } + /** + * 构建人员图谱元素 + * + * @param id 人员ID + * @param name 人员名称 + * @param parentId 父级ID + * @param belongTo 是否次账号 + * @param companyWorkYear 司龄 + * @return + */ + private ChartPO getResourceChartPO(String id, String name, String parentId, String belongTo, String companyWorkYear) { + ChartPO chartPO = new ChartPO(); + chartPO.setFtype("4"); + chartPO.setFobjid(id); + chartPO.setId(chartPO.getFobjid()); + chartPO.setFname(name); + // 岗位处理后的ID + chartPO.setParentId(parentId); + chartPO.setExpand("0"); + chartPO.setHasChildren("0"); + chartPO.setBelongto(Util.null2String(belongTo)); + chartPO.setCompanyWorkYear(companyWorkYear); + try { + chartPO.setFleaderimg(new ResourceComInfo().getMessagerUrls(chartPO.getId())); + } catch (Exception e) { + throw new RuntimeException(e); + } + return chartPO; + } + /** * 获取历史顶部元素sql * -- 2.40.0.windows.1 From 62b25d6a65140872239f883855f2a4d0c5d08b30 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 12 Jul 2023 17:00:01 +0800 Subject: [PATCH 29/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=EF=BC=8C=E5=9B=9E=E6=BA=AF=E8=AF=A6=E7=BB=86=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ChartServiceImpl.java | 44 ++++++++----------- 1 file changed, 18 insertions(+), 26 deletions(-) diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 862ff2a4..34a8a033 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -131,10 +131,10 @@ public class ChartServiceImpl extends Service implements ChartService { String isVirtual = Util.null2String(params.get("fisvitual")); showVirtual = "1".equals(isVirtual); //版本id - String id = Util.null2String(params.get("id")); + String versionId = Util.null2String(params.get("id")); // 初始化表名 - initTableNameByClass(dimension, id); + initTableNameByClass(dimension, versionId); String ids = (String) params.get("ids"); List dataList = new ArrayList<>(); @@ -146,28 +146,17 @@ public class ChartServiceImpl extends Service implements ChartService { if (s.contains("_")) { String fObjId = s.split("_")[1]; if (s.startsWith("s")) { - if (hasVirtualFields) { - if (showVirtual) { - rs.executeQuery("select a.id,a.subcompanyname as name,'1' as type ,b.fblx as isvitual from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and a.supsubcomid = '" + fObjId + "'" + - " union select a.id,a.departmentname as name,'2' as type ,b.bmlx as isvitual from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and (a.supdepid is null or a.supdepid = '0') and subcompanyid1 = '" + fObjId + "'"); - } else { - rs.executeQuery("select a.id,a.subcompanyname as name,'1' as type ,b.fblx as isvitual from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and (b.fblx is null or b.fblx != '1') and a.supsubcomid = '" + fObjId + "'" + - " union select a.id,a.departmentname as name,'2' as type ,b.bmlx as isvitual from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and (a.supdepid is null or a.supdepid = '0') and (b.bmlx is null or b.bmlx != '1') and subcompanyid1 = '" + fObjId + "'"); - } + if (isRealTime) { + rs.executeQuery(getRealTimeChildSql("", "1", fObjId)); } else { - rs.executeQuery("select a.id,a.subcompanyname as name,'1' as type from " + SUB_COMPANY_TABLE + " a where (canceled is null or canceled != '1') and supsubcomid = '" + fObjId + "'" + - " union select a.id,a.departmentname as name,'2' as type from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and (supdepid is null or supdepid = '0') and subcompanyid1 = '" + fObjId + "'"); + rs.executeQuery(getLastTimeChildSql("", "1", fObjId, versionId)); } } else if (s.startsWith("d")) { - if (hasVirtualFields) { - if (showVirtual) { - rs.executeQuery("select a.id,a.departmentname as name,'2' as type ,b.bmlx as isvitual from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and supdepid = '" + fObjId + "'"); - } else { - rs.executeQuery("select a.id,a.departmentname as name,'2' as type ,b.bmlx as isvitual from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where (canceled is null or canceled != '1') and (b.bmlx is null or b.bmlx != '1') and a.supdepid = '" + fObjId + "'"); - } + if (isRealTime) { + rs.executeQuery(getRealTimeChildSql("", "2", fObjId)); } else { - rs.executeQuery("select a.id,a.departmentname as name,'2' as type from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and supdepid = '" + fObjId + "'"); + rs.executeQuery(getLastTimeChildSql("", "2", fObjId, versionId)); } } while (rs.next()) { @@ -208,7 +197,7 @@ public class ChartServiceImpl extends Service implements ChartService { String detauleType = Util.null2String(params.get("detauleType")); if (!"chart".equals(detauleType)) { // 展示列表模块 - return ServiceUtil.getService(HrmResourceServiceImpl.class, user).chartResourceList(Integer.parseInt(departmentId),versionId,dimension); + return ServiceUtil.getService(HrmResourceServiceImpl.class, user).chartResourceList(Integer.parseInt(departmentId), versionId, dimension); } @@ -257,7 +246,7 @@ public class ChartServiceImpl extends Service implements ChartService { // 查询部门下的岗位 if (isRealTime) { sql = "select a.id,a.jobtitlename as name from hrmjobtitles a inner join jcl_org_job b on a.id = b.ec_jobtitle where b.ec_department = '" + departmentId + "'"; - }else{ + } else { sql = "select jobid as id ,jobname as name from jcl_chart_job where departmentid = '" + departmentId + "' and versionid = " + versionId; } rs.executeQuery(sql); @@ -501,7 +490,7 @@ public class ChartServiceImpl extends Service implements ChartService { } else { sql = "select " + SUB_COMPANY_ID + " as id,a.subcompanyname as name,'1' as type from " + SUB_COMPANY_TABLE + " a where (a.canceled is null or a.canceled != '1') and (a.supsubcompanyid is null or a.supsubcompanyid = '0') and versionid = " + versionId; } - if(!isRealDimension){ + if (!isRealDimension) { sql += " and companyid = " + fObjId; } break; @@ -524,7 +513,7 @@ public class ChartServiceImpl extends Service implements ChartService { if (showVirtual) { sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name,'2' as type ,isvirtual as isvitual from " + DEPARTMENT_TABLE + " a where (a.canceled is null or a.canceled != '1') and supdepartmentid = '" + fObjId + "' and versionid = " + versionId; } else { - sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name,'2' as type ,isvirtual as isvitual from " + DEPARTMENT_TABLE + " where (canceled is null or canceled != '1') and (isvirtual is null or isvirtual != '1') and a.supdepartmentid = '" + fObjId + "' and versionid = " + versionId; + sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name,'2' as type ,isvirtual as isvitual from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and (isvirtual is null or isvirtual != '1') and a.supdepartmentid = '" + fObjId + "' and versionid = " + versionId; } } else { sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name,'2' as type from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and supdepartmentid = '" + fObjId + "' and versionid = " + versionId; @@ -544,14 +533,14 @@ public class ChartServiceImpl extends Service implements ChartService { * @param dataList 所有元素集合 * @param selectDepth 所选部门层级 */ - private void findChildData(ChartPO topChartPO, List dataList, Integer selectDepth,String versionId) { + private void findChildData(ChartPO topChartPO, List dataList, Integer selectDepth, String versionId) { String fType = topChartPO.getFtype(); String fObjId = topChartPO.getFobjid(); String sql = ""; if (isRealTime) { sql = getRealTimeChildSql(sql, fType, fObjId); } else { - sql = getLastTimeChildSql(sql, fType, fObjId,versionId); + sql = getLastTimeChildSql(sql, fType, fObjId, versionId); } if (StringUtils.isNotBlank(sql)) { @@ -573,7 +562,7 @@ public class ChartServiceImpl extends Service implements ChartService { } for (ChartPO chartPO : currentList) { if (inDepth(selectDepth, chartPO.getDepartmentDepth())) { - findChildData(chartPO, dataList, selectDepth,versionId); + findChildData(chartPO, dataList, selectDepth, versionId); } } dataList.addAll(currentList); @@ -682,6 +671,9 @@ public class ChartServiceImpl extends Service implements ChartService { * @return 人员名称 */ private String getDepartmentLeader(String ids) { + if (!isRealTime) { + return ids; + } if (StringUtils.isBlank(ids)) { return ""; } -- 2.40.0.windows.1 From 10a9a350b42ada4865621f4f388c1c5371ebf927 Mon Sep 17 00:00:00 2001 From: Mlin Date: Wed, 12 Jul 2023 18:00:47 +0800 Subject: [PATCH 30/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E8=AE=B0=E5=BD=95=E6=95=B0=E6=8D=AE=E5=90=8C?= =?UTF-8?q?=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ChartServiceImpl.java | 360 ++++++++++++++---- .../service/impl/OrgChartServiceImpl.java | 6 +- .../organization/web/OrgChartController.java | 17 + .../organization/wrapper/OrgChartWrapper.java | 4 + 4 files changed, 302 insertions(+), 85 deletions(-) diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 033cb134..e86d85c5 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -3,6 +3,8 @@ 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.history.DepartmentHistory; +import com.engine.organization.entity.chart.history.SubcompanyHistory; import com.engine.organization.mapper.hrmresource.SystemDataMapper; import com.engine.organization.mapper.jclorgmap.JclOrgMapper; import com.engine.organization.service.ChartService; @@ -382,16 +384,32 @@ public class ChartServiceImpl extends Service implements ChartService { //当前用户 String currentUser = String.valueOf(user.getUID()); - //版本记录表数据存储 getOrgChartService(user).insertChartVersion(Integer.valueOf(dimension),description); String versionId = ""; String createDate = OrganizationDateUtil.getFormatLocalDate(LocalDate.now()); - rs.executeQuery("select id from JCL_ORG_CHARTVERSION where fclass = ? and createdate = ?",dimension,createDate); + rs.executeQuery("select id from JCL_ORG_CHARTVERSION where fclass = ? and createtime = ?",dimension,createDate); if (rs.next()) { versionId = Util.null2String(rs.getString("id")); } + if ("0".equals(dimension)) { + //实体维度 + trueDimension(versionId,currentUser,currentDate); + } else { + virtualDimension(versionId,currentUser,currentDate,dimension); + } + Map result = new HashMap<>(); + result.put("api_status", true); + return result; + } + private void trueDimension(String versionId,String currentUser,String currentDate){ + RecordSet rs = new RecordSet(); + rs.execute("delete from jcl_chart_subcompany where versionid = "+versionId); + rs.execute("delete from jcl_chart_department where versionid = "+versionId); + rs.execute("delete from jcl_chart_job where versionid = "+versionId); + rs.execute("delete from jcl_chart_resource where versionid = "+versionId); + String subCompanyQuerySql;//分部查询数据sql String deptQuerySql;//部门查询数据sql //判断是否有虚拟组织字段 @@ -407,27 +425,16 @@ public class ChartServiceImpl extends Service implements ChartService { " a.subcompanycode,\n" + " a.limitusers,\n" + " a.tlevel,\n" + - " c.fblx as type\n" + + " c.fblx as isvirtual\n" + " from hrmsubcompany a\n" + " left join hrmsubcompany b on a.supsubcomid = b.id\n" + " left join hrmsubcompanydefined c on a.id = c.subcomid "; - deptQuerySql = " select a.id as departmentid,\n" + - " a.departmentmark,\n" + - " a.departmentname,\n" + - " a.subcompanyid1 as subcompanyid,\n" + - " b.SUBCOMPANYNAME as subcompany,\n" + - " a.supdepid as supdepartmentid,\n" + - " c.departmentname as supdepartment,\n" + - " a.canceled,\n" + - " a.departmentcode,\n" + - " a.coadjutant,\n" + - " a.tlevel,\n" + - " d.bmlx as type,\n" + - " a.bmfzr as fleader\n" + - " from hrmdepartment a\n" + - " left join hrmsubcompany b on a.subcompanyid1 = b.id\n" + - " left join hrmdepartment c on a.supdepid = c.id\n" + - " left join hrmdepartmentdefined d on a.id=d.deptid;left join hrmdepartmentdefined d on a.id=d.deptid"; + deptQuerySql = "select a.id as departmentid, a.departmentmark, a.departmentname, a.subcompanyid1 as subcompanyid, " + + "b.SUBCOMPANYNAME as subcompany,a.supdepid as supdepartmentid,c.departmentname as supdepartment," + + "a.canceled,a.departmentcode,a.coadjutant,a.tlevel,d.bmlx as isvirtual,a.bmfzr as fleader " + + "from hrmdepartment a left join hrmsubcompany b on a.subcompanyid1 = b.id " + + "left join hrmdepartment c on a.supdepid = c.id " + + "left join hrmdepartmentdefined d on a.id=d.deptid"; }else{ subCompanyQuerySql = "select a.id as subcompanyid,\n" + @@ -442,7 +449,7 @@ public class ChartServiceImpl extends Service implements ChartService { " a.tlevel,\n" + " from hrmsubcompany a\n" + " left join hrmsubcompany b on a.supsubcomid = b.id"; - deptQuerySql = " select a.id as departmentid,\n" + + deptQuerySql = "select a.id as departmentid,\n" + " a.departmentmark,\n" + " a.departmentname,\n" + " a.subcompanyid1 as subcompanyid,\n" + @@ -460,91 +467,280 @@ public class ChartServiceImpl extends Service implements ChartService { } + List insertList = new ArrayList<>(); + List> insertParamList = new ArrayList<>(); //当前分部版本存储 rs.executeQuery(subCompanyQuerySql); while (rs.next()) { - rs.getString("subcompanyid"); - rs.getString("subcompanyname"); - rs.getString("subcompanydesc"); - rs.getString("company"); - rs.getString("supsubcompanyid"); - rs.getString("supsubcompany"); - rs.getString("canceled"); - rs.getString("subcompanycode"); - rs.getString("limitusers"); - rs.getString("tlevel"); - if (virtualFlag) { - rs.getString("type"); - } - //创建者、当前时间、versionId + insertList = new ArrayList<>(); + insertList.add(currentUser); + insertList.add(rs.getInt("subcompanyid")); + insertList.add(rs.getString("subcompanyname")); + insertList.add(rs.getString("subcompanydesc")); + insertList.add(rs.getString("company")); + insertList.add(rs.getInt("supsubcompanyid")); + insertList.add(rs.getString("supsubcompany")); + insertList.add(rs.getInt("canceled")); + insertList.add(rs.getString("subcompanycode")); + insertList.add(rs.getInt("limitusers")); + insertList.add(rs.getInt("tlevel")); + insertList.add(currentDate); + insertList.add(virtualFlag ? Util.getIntValue(rs.getString("isvirtual"),0) : 1); + insertList.add(Util.getIntValue(versionId)); + insertParamList.add(insertList); } - int subFlag = getJclOrgMapMapper().insertSubVersionRecord(currentDate,currentUser); + + String insertSubSql = "insert into jcl_chart_subcompany(creater, subcompanyid, subcompanyname, subcompanydesc, company,\n" + + " supsubcompanyid, supsubcompany, canceled, subcompanycode, limitusers,\n" + + " tlevel, versiondate, isvirtual,versionId) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + insertData(insertSubSql,insertParamList); //当前部门版本存储 rs.executeQuery(deptQuerySql); + insertParamList = new ArrayList<>(); while (rs.next()){ - rs.getString("departmentid"); - rs.getString("departmentmark"); - rs.getString("departmentname"); - rs.getString("subcompanyid"); - rs.getString("subcompany"); - rs.getString("supdepartmentid"); - rs.getString("supdepartment"); - rs.getString("canceled"); - rs.getString("departmentcode"); - rs.getString("coadjutant"); - rs.getString("tlevel"); - rs.getString("fleader"); - if (virtualFlag){ - rs.getString("type"); - } - //创建者、当前日期、versionId + insertList = new ArrayList<>(); + insertList.add(currentUser); + insertList.add(rs.getInt("departmentid")); + insertList.add(rs.getString("departmentmark")); + insertList.add(rs.getString("departmentname")); + insertList.add(rs.getInt("subcompanyid")); + insertList.add(rs.getString("subcompany")); + insertList.add(rs.getInt("supdepartmentid")); + insertList.add(rs.getString("supdepartment")); + insertList.add(rs.getInt("canceled")); + insertList.add(rs.getString("departmentcode")); + insertList.add(rs.getString("coadjutant")); +// insertList.add(rs.getInt("tlevel")); + insertList.add(rs.getString("fleader")); + insertList.add(currentDate); + insertList.add(virtualFlag ? Util.getIntValue(rs.getString("isvirtual"),0) : 1); + insertList.add(Util.getIntValue(versionId)); + insertParamList.add(insertList); + } + String insertDeptSql = "insert into jcl_chart_department(creater, departmentid, departmentmark, departmentname, subcompanyid,\n" + + " subcompany, supdepartmentid, supdepartment, canceled, departmentcode,\n" + + " coadjutant, fleader,versiondate, isvirtual,versionid) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + insertData(insertDeptSql,insertParamList); + + //当前岗位版本存储 + rs.executeQuery("select a.id as jobid,a.job_name as jobname,a.ec_department as departmentid," + + "c.departmentname as department,a.ec_company as subcompanyid,d.subcompanyname as subcompany," + + "b.jobresponsibility,a.forbidden_tag as canceled,a.job_no as jobcode,a.description " + + "from jcl_org_job a left join hrmjobtitles b on a.ec_jobtitle = b.id " + + "left join hrmdepartment c on a.ec_department=c.id " + + "left join hrmsubcompany d on a.ec_company=d.id"); + insertParamList = new ArrayList<>(); + while (rs.next()){ + insertList = new ArrayList<>(); + insertList.add(rs.getString("jobid")); + insertList.add(currentUser); + insertList.add(rs.getString("jobname")); + insertList.add(rs.getString("departmentid")); + insertList.add(rs.getString("department")); + insertList.add(rs.getString("subcompanyid")); + insertList.add(rs.getString("subcompany")); + insertList.add(rs.getString("jobresponsibility")); + insertList.add(rs.getString("canceled")); + insertList.add(rs.getString("jobcode")); + insertList.add(rs.getString("description")); + insertList.add(currentDate); + insertList.add(Util.getIntValue(versionId)); + insertParamList.add(insertList); + } + String insertJobSql = "insert into jcl_chart_job(jobid,creater,jobname,departmentid,department,subcompanyid," + + "subcompany,jobresponsibility,canceled,jobcode,description,versiondate,versionid)values(?,?,?,?,?,?,?,?,?,?,?,?,?)"; + insertData(insertJobSql,insertParamList); + + //当前人员版本存储 + rs.executeQuery("select a.id as resourceid,workyear,usekind,managerstr,status,sex,accounttype,belongto," + + "loginid,maritalstatus,a.telephone,mobile,mobilecall,email,b.locationname,resourcetype,startdate," + + "enddate,c.id as jobtitleid,d.JOBTITLENAME as jobtitle,joblevel,seclevel,departmentid,e.departmentname as department," + + "a.subcompanyid1 as subcompanyid,f.subcompanyname as subcompany,a.costcenterid as costcenter," + + "a.managerid as manager,a.assistantid as assistant,workcode,classification,policy," + + "degree,a.lastname,a.companyworkyear from hrmresource a " + + "left join hrmlocations b on a.locationid = b.id " + + "left join jcl_org_job c on a.jobtitle = c.id " + + "left join hrmjobtitles d on c.ec_jobtitle = d.id " + + "left join hrmdepartment e on a.departmentid = e.id " + + "left join hrmsubcompany f on a.subcompanyid1=f.id"); + insertParamList = new ArrayList<>(); + while (rs.next()) { + insertList = new ArrayList<>(); + insertList.add(rs.getInt("resourceid")); + insertList.add(currentUser); + insertList.add(rs.getInt("workyear")); + insertList.add(rs.getString("usekind")); + insertList.add(rs.getString("managerstr")); + insertList.add(rs.getInt("status")); + insertList.add(rs.getString("sex")); + insertList.add(rs.getInt("accounttype")); + insertList.add(rs.getInt("belongto")); + insertList.add(rs.getString("loginid")); + insertList.add(rs.getString("maritalstatus")); + insertList.add(rs.getString("telephone")); + insertList.add(rs.getString("mobile")); + insertList.add(rs.getString("mobilecall")); + insertList.add(rs.getString("email")); + insertList.add(rs.getString("locationname")); + insertList.add(rs.getString("resourcetype")); + insertList.add(rs.getString("startdate")); + insertList.add(rs.getString("enddate")); + insertList.add(rs.getInt("jobtitleid")); + insertList.add(rs.getString("jobtitle")); + insertList.add(rs.getInt("joblevel")); + insertList.add(rs.getInt("seclevel")); + insertList.add(rs.getInt("departmentid")); + insertList.add(rs.getString("department")); + insertList.add(rs.getInt("subcompanyid")); + insertList.add(rs.getString("subcompany")); + insertList.add(rs.getString("costcenter")); + insertList.add(rs.getInt("manager")); + insertList.add(rs.getInt("assistant")); + insertList.add(rs.getString("workcode")); + insertList.add(rs.getString("classification")); + insertList.add(currentDate); + insertList.add(rs.getString("policy")); + insertList.add(rs.getString("degree")); + insertList.add(Util.getIntValue(versionId)); + insertList.add(rs.getString("lastname")); + insertList.add(rs.getString("companyworkyear")); + insertParamList.add(insertList); } - int deptFlag = getJclOrgMapMapper().insertDeptVersionRecord(currentDate,currentDate); + String insertResourceSql = "insert into jcl_chart_resource(resourceid, creater, workyear, usekind, managerstr," + + "status, sex, accounttype,belongto, loginid, maritalstatus, telephone, mobile, mobilecall, email," + + "locationname, resourcetype, startdate, enddate, jobtitleid, jobtitle, joblevel,seclevel, departmentid," + + "department, subcompanyid, subcompany, costcenter,manager, assistant, workcode, classification, " + + "versiondate, policy, degree,versionid,lastname,companyworkyear) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?," + + "?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + insertData(insertResourceSql,insertParamList); + } + + private void virtualDimension(String versionId,String currentUser,String currentDate,String fclass){ + RecordSet rs = new RecordSet(); + List insertList; + List> insertParamList = new ArrayList<>(); + rs.execute("delete from jcl_chart_companyvirtual where versionid = "+versionId); + rs.execute("delete from jcl_chart_subcompanyvirtual where versionid = "+versionId); + rs.execute("delete from jcl_chart_departmentvirtual where versionid = "+versionId); + rs.execute("delete from jcl_chart_resource where versionid = "+versionId); //虚拟总部存储 rs.executeQuery("select id as companyvirtualid,companyname,companycode,companydesc,showorder,canceled," + - "virtualtype,virtualtypedesc from hrmcompanyvirtual"); + "virtualtype,virtualtypedesc from hrmcompanyvirtual where id=?",fclass); while (rs.next()){ - rs.getString("companyvirtualid"); - rs.getString("companyname"); - rs.getString("companycode"); - rs.getString("companydesc"); - rs.getString("canceled"); - rs.getString("virtualtype"); - rs.getString("virtualtypedesc"); - //创建者、当前时间 + insertList = new ArrayList<>(); + insertList.add(rs.getInt("companyvirtualid")); + insertList.add(currentUser); + insertList.add(rs.getString("companyname")); + insertList.add(rs.getString("companycode")); + insertList.add(rs.getString("companydesc")); + insertList.add(Util.getIntValue(rs.getString("showorder"))); + insertList.add(rs.getInt("canceled")); + insertList.add(rs.getString("virtualtype")); + insertList.add(rs.getString("virtualtypedesc")); + insertList.add(currentDate); + insertList.add(Util.getIntValue(versionId)); + insertParamList.add(insertList); } + String insertVirtualComSql = "insert into jcl_chart_companyvirtual(companyvirtualid,creater,companyname,companycode,companydesc,showorder,\n" + + "canceled,virtualtype,virtualtypedesc,versiondate,versionid) values(?,?,?,?,?,?,?,?,?,?,?)"; + insertData(insertVirtualComSql,insertParamList); //虚拟分部版本存储 rs.executeQuery("select a.id as subcompanyvirtualid,a.subcompanyname,a.subcompanycode,a.subcompanydesc," + "b.subcompanyname as supsubcompany,a.supsubcomid,c.companyname as company,a.companyid,a.canceled," + "a.virtualtypeid as virtualtype,a.tlevel,a.showorder from hrmsubcompanyvirtual a " + "left join hrmsubcompanyvirtual b on a.supsubcomid = b.id\n" + - "left join hrmcompanyvirtual c on a.companyid = c.id"); + "left join hrmcompanyvirtual c on a.companyid = c.id where a.companyid=?",fclass); + insertParamList = new ArrayList<>(); while (rs.next()) { - rs.getString("subcompanyvirtualid"); - rs.getString("subcompanyname"); - rs.getString("subcompanycode"); - rs.getString("subcompanydesc"); - rs.getString("supsubcompany"); - rs.getString("supsubcomid"); - rs.getString("company"); - rs.getString("companyid"); - rs.getString("canceled"); - rs.getString("virtualtype"); - rs.getString("tlevel"); - rs.getString("showorder"); + insertList = new ArrayList<>(); + insertList.add(rs.getInt("subcompanyvirtualid")); + insertList.add(currentUser); + insertList.add(rs.getString("subcompanyname")); + insertList.add(rs.getString("subcompanycode")); + insertList.add(rs.getString("subcompanydesc")); + insertList.add(rs.getString("supsubcompany")); + insertList.add(rs.getInt("supsubcomid")); + insertList.add(rs.getString("company")); + insertList.add(rs.getInt("companyid")); + insertList.add(rs.getInt("canceled")); + insertList.add(rs.getString("virtualtype")); + insertList.add(rs.getString("tlevel")); + insertList.add(Util.getIntValue(rs.getString("showorder"))); + insertList.add(currentDate); + insertList.add(Util.getIntValue(versionId)); + insertParamList.add(insertList); } - //虚拟部门版本存储 - int deptVirtualFlag = getJclOrgMapMapper().insertDeptVirtualVersionRecord(currentDate,currentUser); - - - //当前岗位版本存储 - + String insertVirtualSubComSql = "insert into jcl_chart_subcompanyvirtual(subcompanyvirtualid, creater, " + + "subcompanyname, subcompanycode,subcompanydesc, supsubcompany, supsubcomid, company, companyid," + + "canceled, virtualtype, tlevel, showorder, versiondate,versionid) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + insertData(insertVirtualSubComSql,insertParamList); + //虚拟部门版本存储 + rs.executeQuery("select a.id as departmentvirtualid,a.departmentname,a.departmentcode,a.departmentmark," + + "b.DEPARTMENTNAME as supdeptment,b.SUPDEPID as supdepid,a.allsupdepid,c.SUBCOMPANYNAME as subcompany," + + "a.SUBCOMPANYID1 as subcompanyid,a.canceled,a.virtualtype,a.tlevel,a.showorder from hrmdepartmentvirtual a " + + "left join hrmdepartmentvirtual b on a.SUPDEPID = b.id " + + "left join hrmsubcompanyvirtual c on a.SUBCOMPANYID1 = c.id where a.companyid = ",fclass); + insertParamList = new ArrayList<>(); + while (rs.next()){ + insertList = new ArrayList<>(); + insertList.add(rs.getInt("departmentvirtualid")); + insertList.add(currentUser); + insertList.add(rs.getString("departmentname")); + insertList.add(rs.getString("departmentcode")); + insertList.add(rs.getString("departmentmark")); + insertList.add(rs.getString("supdeptment")); + insertList.add(rs.getInt("supdepid")); + insertList.add(rs.getString("allsupdepid")); + insertList.add(rs.getString("subcompany")); + insertList.add(rs.getInt("subcompanyid")); + insertList.add(rs.getInt("canceled")); + insertList.add(rs.getString("virtualtype")); + insertList.add(rs.getString("tlevel")); + insertList.add(Util.getIntValue(rs.getString("showorder"))); + insertList.add(currentDate); + insertList.add(Util.getIntValue(versionId)); + insertParamList.add(insertList); + } + String insertVirtualDeptSql = "insert into jcl_chart_departmentvirtual(departmentvirtualid, creater, " + + "departmentname, departmentcode,departmentmark, supdeptment, supdepid, allsupdepid, subcompany, " + + "subcompanyid, canceled, virtualtype, tlevel, showorder, versiondate,versionid) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + insertData(insertVirtualDeptSql,insertParamList); + + //虚拟人员版本存储 + rs.executeQuery("select resourceid,a.managerid,b.SUBCOMPANYID1 as subcompanyid,b.departmentid,a.managerstr," + + "virtualtype from hrmresourcevirtual a left join hrmresource b on a.RESOURCEID=b.ID where a.virtualtype=?",fclass); + insertParamList = new ArrayList<>(); + while (rs.next()) { + insertList = new ArrayList<>(); + insertList.add(rs.getInt("resourceid")); + insertList.add(rs.getInt("managerid")); + insertList.add(rs.getInt("subcompanyid")); + insertList.add(rs.getInt("departmentid")); + insertList.add(rs.getString("managerstr")); + insertList.add(rs.getString("virtualtype")); + insertList.add(currentDate); + insertList.add(Util.getIntValue(versionId)); + insertParamList.add(insertList); + } + String insertVirtualHrmSql = "insert into jcl_chart_resource(resourceid,MANAGER,subcompanyid," + + "departmentid,managerstr,virtualtype,versiondate,versionid) values (?,?,?,?,?,?,?,?)"; + insertData(insertVirtualHrmSql,insertParamList); + } - return null; + private void insertData(String insertSql,List> insertParamList) { + RecordSetTrans recordSetTrans = new RecordSetTrans(); + recordSetTrans.setAutoCommit(false);//关闭自动提交 + try { + recordSetTrans.executeBatchSql(insertSql,insertParamList); + recordSetTrans.commit(); + } catch (Exception e) { + recordSetTrans.rollback(); + e.printStackTrace(); + } } private boolean isHasVirtualFields() { diff --git a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java index 638c45d1..817bc11b 100644 --- a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java @@ -609,13 +609,13 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { RecordSet rs = new RecordSet(); String recordDate = OrganizationDateUtil.getFormatLocalDateTime(LocalDateTime.now()); String createDate = OrganizationDateUtil.getFormatLocalDate(LocalDate.now()); - rs.executeQuery("select id from JCL_ORG_CHARTVERSION where fclass = ? and createdate = ?",fclass,createDate); + rs.executeQuery("select id from JCL_ORG_CHARTVERSION where fclass = ? and createtime = ?",fclass,createDate); rs.next(); String id = Util.null2String(rs.getString("id")); if(StringUtils.isNotEmpty(id)){ - rs.executeUpdate("update JCL_ORG_CHARTVERSION set recorddate = ?,description = ?,creator = ? where fclass = ? and createdate = ?",recordDate,description,user.getUID(),fclass,createDate); + rs.executeUpdate("update JCL_ORG_CHARTVERSION set recorddate = ?,description = ?,creator = ? where fclass = ? and createtime = ?",recordDate,description,user.getUID(),fclass,createDate); }else { - rs.executeUpdate("insert into JCL_ORG_CHARTVERSION (recorddate,description,creator,deletetype,createdate,fclass) values(?,?,?,?,?,?)",recordDate,description,user.getUID(),0,createDate,fclass); + rs.executeUpdate("insert into JCL_ORG_CHARTVERSION (recorddate,description,creator,deletetype,createtime,fclass) values(?,?,?,?,?,?)",recordDate,description,user.getUID(),0,createDate,fclass); } } diff --git a/src/com/engine/organization/web/OrgChartController.java b/src/com/engine/organization/web/OrgChartController.java index 2c9b94bb..a8c2015c 100644 --- a/src/com/engine/organization/web/OrgChartController.java +++ b/src/com/engine/organization/web/OrgChartController.java @@ -80,6 +80,23 @@ public class OrgChartController { return JSONObject.toJSONString(apidatas); } + @GET + @Path("/versionRecord") + @Produces(MediaType.APPLICATION_JSON) + public String versionRecord(@Context HttpServletRequest request, @Context HttpServletResponse response) { + Map apidatas = new HashMap<>(); + try { + User user = HrmUserVarify.getUser(request, response); + apidatas = getOrgChartWrapper(user).versionRecord(ParamUtil.request2Map(request), user); + } catch (Exception e) { + //异常处理 + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + @GET @Path("/getSubCompanyTree") diff --git a/src/com/engine/organization/wrapper/OrgChartWrapper.java b/src/com/engine/organization/wrapper/OrgChartWrapper.java index f916a2a1..8d6c59ea 100644 --- a/src/com/engine/organization/wrapper/OrgChartWrapper.java +++ b/src/com/engine/organization/wrapper/OrgChartWrapper.java @@ -64,4 +64,8 @@ public class OrgChartWrapper extends Service { public Map getDepartmentDetail(Map request2Map, User user) { return getChartService(user).getDepartmentDetail(request2Map); } + + public Map versionRecord(Map request2Map, User user) { + return getChartService(user).versionRecord(request2Map,user); + } } -- 2.40.0.windows.1 From 725d64888c633538d6149d9fda65cc0ba1216afc Mon Sep 17 00:00:00 2001 From: Mlin Date: Thu, 13 Jul 2023 11:08:22 +0800 Subject: [PATCH 31/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E8=AE=B0=E5=BD=95int=E7=B1=BB=E5=9E=8Bbug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ChartServiceImpl.java | 97 ++++++++++--------- 1 file changed, 49 insertions(+), 48 deletions(-) diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index afb053a3..e980b1c8 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -17,6 +17,7 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.conn.RecordSetTrans; +import weaver.general.StringUtil; import weaver.general.Util; import weaver.hrm.User; import weaver.hrm.resource.ResourceComInfo; @@ -509,19 +510,19 @@ public class ChartServiceImpl extends Service implements ChartService { while (rs.next()) { insertList = new ArrayList<>(); insertList.add(currentUser); - insertList.add(rs.getInt("subcompanyid")); + insertList.add(StringUtils.isBlank(rs.getString("subcompanyid")) ? null : rs.getInt("subcompanyid")); insertList.add(rs.getString("subcompanyname")); insertList.add(rs.getString("subcompanydesc")); insertList.add(rs.getString("company")); - insertList.add(rs.getInt("supsubcompanyid")); + insertList.add(StringUtils.isBlank(rs.getString("supsubcompanyid")) ? null : rs.getInt("supsubcompanyid")); insertList.add(rs.getString("supsubcompany")); - insertList.add(rs.getInt("canceled")); + insertList.add(StringUtils.isBlank(rs.getString("canceled")) ? null : rs.getInt("canceled")); insertList.add(rs.getString("subcompanycode")); - insertList.add(rs.getInt("limitusers")); - insertList.add(rs.getInt("tlevel")); + insertList.add(StringUtils.isBlank(rs.getString("limitusers")) ? null : rs.getInt("limitusers")); + insertList.add(StringUtils.isBlank(rs.getString("tlevel")) ? null : rs.getInt("tlevel")); insertList.add(currentDate); insertList.add(virtualFlag ? Util.getIntValue(rs.getString("isvirtual"),0) : 1); - insertList.add(Util.getIntValue(versionId)); + insertList.add(StringUtils.isBlank(versionId) ? null : Util.getIntValue(versionId)); insertParamList.add(insertList); } @@ -536,12 +537,12 @@ public class ChartServiceImpl extends Service implements ChartService { while (rs.next()){ insertList = new ArrayList<>(); insertList.add(currentUser); - insertList.add(rs.getInt("departmentid")); + insertList.add(StringUtils.isBlank(rs.getString("departmentid")) ? null : rs.getInt("departmentid")); insertList.add(rs.getString("departmentmark")); insertList.add(rs.getString("departmentname")); - insertList.add(rs.getInt("subcompanyid")); + insertList.add(StringUtils.isBlank(rs.getString("subcompanyid")) ? null : rs.getInt("subcompanyid")); insertList.add(rs.getString("subcompany")); - insertList.add(rs.getInt("supdepartmentid")); + insertList.add(StringUtils.isBlank(rs.getString("supdepartmentid")) ? null : rs.getInt("supdepartmentid")); insertList.add(rs.getString("supdepartment")); insertList.add(rs.getInt("canceled")); insertList.add(rs.getString("departmentcode")); @@ -550,7 +551,7 @@ public class ChartServiceImpl extends Service implements ChartService { insertList.add(rs.getString("fleader")); insertList.add(currentDate); insertList.add(virtualFlag ? Util.getIntValue(rs.getString("isvirtual"),0) : 1); - insertList.add(Util.getIntValue(versionId)); + insertList.add(StringUtils.isBlank(versionId) ? null : Util.getIntValue(versionId)); insertParamList.add(insertList); } String insertDeptSql = "insert into jcl_chart_department(creater, departmentid, departmentmark, departmentname, subcompanyid,\n" + @@ -566,7 +567,7 @@ public class ChartServiceImpl extends Service implements ChartService { "left join hrmdepartment c on a.ec_department=c.id " + "left join hrmsubcompany d on a.ec_company=d.id"); insertParamList = new ArrayList<>(); - while (rs.next()){ + while (rs.next()) { insertList = new ArrayList<>(); insertList.add(rs.getString("jobid")); insertList.add(currentUser); @@ -580,7 +581,7 @@ public class ChartServiceImpl extends Service implements ChartService { insertList.add(rs.getString("jobcode")); insertList.add(rs.getString("description")); insertList.add(currentDate); - insertList.add(Util.getIntValue(versionId)); + insertList.add(StringUtils.isBlank(versionId) ? null : Util.getIntValue(versionId)); insertParamList.add(insertList); } String insertJobSql = "insert into jcl_chart_job(jobid,creater,jobname,departmentid,department,subcompanyid," + @@ -602,15 +603,15 @@ public class ChartServiceImpl extends Service implements ChartService { insertParamList = new ArrayList<>(); while (rs.next()) { insertList = new ArrayList<>(); - insertList.add(rs.getInt("resourceid")); + insertList.add(StringUtils.isBlank(rs.getString("resourceid")) ? null : rs.getInt("resourceid")); insertList.add(currentUser); - insertList.add(rs.getInt("workyear")); + insertList.add(StringUtils.isBlank(rs.getString("workyear")) ? null : rs.getInt("workyear")); insertList.add(rs.getString("usekind")); insertList.add(rs.getString("managerstr")); - insertList.add(rs.getInt("status")); + insertList.add(StringUtils.isBlank(rs.getString("status")) ? null : rs.getInt("status")); insertList.add(rs.getString("sex")); - insertList.add(rs.getInt("accounttype")); - insertList.add(rs.getInt("belongto")); + insertList.add(StringUtils.isBlank(rs.getString("accounttype")) ? null : rs.getInt("accounttype")); + insertList.add(StringUtils.isBlank(rs.getString("belongto")) ? null : rs.getInt("belongto")); insertList.add(rs.getString("loginid")); insertList.add(rs.getString("maritalstatus")); insertList.add(rs.getString("telephone")); @@ -621,25 +622,25 @@ public class ChartServiceImpl extends Service implements ChartService { insertList.add(rs.getString("resourcetype")); insertList.add(rs.getString("startdate")); insertList.add(rs.getString("enddate")); - insertList.add(rs.getInt("jobtitleid")); + insertList.add(StringUtils.isBlank(rs.getString("jobtitleid")) ? null : rs.getInt("jobtitleid")); insertList.add(rs.getString("jobtitle")); - insertList.add(rs.getInt("joblevel")); - insertList.add(rs.getInt("seclevel")); - insertList.add(rs.getInt("departmentid")); + insertList.add(StringUtils.isBlank(rs.getString("joblevel")) ? null : rs.getInt("joblevel")); + insertList.add(StringUtils.isBlank(rs.getString("seclevel")) ? null : rs.getInt("seclevel")); + insertList.add(StringUtils.isBlank(rs.getString("departmentid")) ? null : rs.getInt("departmentid")); insertList.add(rs.getString("department")); - insertList.add(rs.getInt("subcompanyid")); + insertList.add(StringUtils.isBlank(rs.getString("subcompanyid")) ? null : rs.getInt("subcompanyid")); insertList.add(rs.getString("subcompany")); insertList.add(rs.getString("costcenter")); - insertList.add(rs.getInt("manager")); - insertList.add(rs.getInt("assistant")); + insertList.add(StringUtils.isBlank(rs.getString("manager")) ? null : rs.getInt("manager")); + insertList.add(StringUtils.isBlank(rs.getString("assistant")) ? null : rs.getInt("assistant")); insertList.add(rs.getString("workcode")); insertList.add(rs.getString("classification")); insertList.add(currentDate); insertList.add(rs.getString("policy")); insertList.add(rs.getString("degree")); - insertList.add(Util.getIntValue(versionId)); + insertList.add(StringUtils.isBlank(versionId) ? null : Util.getIntValue(versionId)); insertList.add(rs.getString("lastname")); - insertList.add(rs.getString("companyworkyear")); + insertList.add(StringUtils.isBlank(rs.getString("companyworkyear")) ? null : rs.getString("companyworkyear")); insertParamList.add(insertList); } String insertResourceSql = "insert into jcl_chart_resource(resourceid, creater, workyear, usekind, managerstr," + @@ -665,17 +666,17 @@ public class ChartServiceImpl extends Service implements ChartService { "virtualtype,virtualtypedesc from hrmcompanyvirtual where id=?",fclass); while (rs.next()){ insertList = new ArrayList<>(); - insertList.add(rs.getInt("companyvirtualid")); + insertList.add(StringUtils.isBlank(rs.getString("companyvirtualid")) ? null : rs.getInt("companyvirtualid")); insertList.add(currentUser); insertList.add(rs.getString("companyname")); insertList.add(rs.getString("companycode")); insertList.add(rs.getString("companydesc")); - insertList.add(Util.getIntValue(rs.getString("showorder"))); - insertList.add(rs.getInt("canceled")); + insertList.add(StringUtils.isBlank(rs.getString("showorder")) ? null : rs.getInt("showorder")); + insertList.add(StringUtils.isBlank(rs.getString("canceled")) ? null : rs.getInt("canceled")); insertList.add(rs.getString("virtualtype")); insertList.add(rs.getString("virtualtypedesc")); insertList.add(currentDate); - insertList.add(Util.getIntValue(versionId)); + insertList.add(StringUtils.isBlank(versionId) ? null : Util.getIntValue(versionId)); insertParamList.add(insertList); } String insertVirtualComSql = "insert into jcl_chart_companyvirtual(companyvirtualid,creater,companyname,companycode,companydesc,showorder,\n" + @@ -691,21 +692,21 @@ public class ChartServiceImpl extends Service implements ChartService { insertParamList = new ArrayList<>(); while (rs.next()) { insertList = new ArrayList<>(); - insertList.add(rs.getInt("subcompanyvirtualid")); + insertList.add(StringUtils.isBlank(rs.getString("subcompanyvirtualid")) ? null : rs.getInt("subcompanyvirtualid")); insertList.add(currentUser); insertList.add(rs.getString("subcompanyname")); insertList.add(rs.getString("subcompanycode")); insertList.add(rs.getString("subcompanydesc")); insertList.add(rs.getString("supsubcompany")); - insertList.add(rs.getInt("supsubcomid")); + insertList.add(StringUtils.isBlank(rs.getString("supsubcomid")) ? null : rs.getInt("supsubcomid")); insertList.add(rs.getString("company")); - insertList.add(rs.getInt("companyid")); - insertList.add(rs.getInt("canceled")); + insertList.add(StringUtils.isBlank(rs.getString("companyid")) ? null : rs.getInt("companyid")); + insertList.add(StringUtils.isBlank(rs.getString("canceled")) ? null : rs.getInt("canceled")); insertList.add(rs.getString("virtualtype")); insertList.add(rs.getString("tlevel")); - insertList.add(Util.getIntValue(rs.getString("showorder"))); + insertList.add(StringUtils.isBlank(rs.getString("showorder")) ? null : rs.getInt("showorder")); insertList.add(currentDate); - insertList.add(Util.getIntValue(versionId)); + insertList.add(StringUtils.isBlank(versionId) ? null : Util.getIntValue(versionId)); insertParamList.add(insertList); } String insertVirtualSubComSql = "insert into jcl_chart_subcompanyvirtual(subcompanyvirtualid, creater, " + @@ -722,22 +723,22 @@ public class ChartServiceImpl extends Service implements ChartService { insertParamList = new ArrayList<>(); while (rs.next()){ insertList = new ArrayList<>(); - insertList.add(rs.getInt("departmentvirtualid")); + insertList.add(StringUtils.isBlank(rs.getString("departmentvirtualid")) ? null : rs.getInt("departmentvirtualid")); insertList.add(currentUser); insertList.add(rs.getString("departmentname")); insertList.add(rs.getString("departmentcode")); insertList.add(rs.getString("departmentmark")); insertList.add(rs.getString("supdeptment")); - insertList.add(rs.getInt("supdepid")); - insertList.add(rs.getString("allsupdepid")); + insertList.add(StringUtils.isBlank(rs.getString("supdepid")) ? null : rs.getInt("supdepid")); + insertList.add(StringUtils.isBlank(rs.getString("allsupdepid")) ? null : rs.getInt("allsupdepid")); insertList.add(rs.getString("subcompany")); - insertList.add(rs.getInt("subcompanyid")); - insertList.add(rs.getInt("canceled")); + insertList.add(StringUtils.isBlank(rs.getString("subcompanyid")) ? null : rs.getInt("subcompanyid")); + insertList.add(StringUtils.isBlank(rs.getString("canceled")) ? null : rs.getInt("canceled")); insertList.add(rs.getString("virtualtype")); insertList.add(rs.getString("tlevel")); - insertList.add(Util.getIntValue(rs.getString("showorder"))); + insertList.add(StringUtils.isBlank(rs.getString("showorder")) ? null : rs.getInt("showorder")); insertList.add(currentDate); - insertList.add(Util.getIntValue(versionId)); + insertList.add(StringUtils.isBlank(versionId) ? null : Util.getIntValue(versionId)); insertParamList.add(insertList); } String insertVirtualDeptSql = "insert into jcl_chart_departmentvirtual(departmentvirtualid, creater, " + @@ -751,14 +752,14 @@ public class ChartServiceImpl extends Service implements ChartService { insertParamList = new ArrayList<>(); while (rs.next()) { insertList = new ArrayList<>(); - insertList.add(rs.getInt("resourceid")); - insertList.add(rs.getInt("managerid")); - insertList.add(rs.getInt("subcompanyid")); - insertList.add(rs.getInt("departmentid")); + insertList.add(StringUtils.isBlank(rs.getString("resourceid")) ? null : rs.getInt("resourceid")); + insertList.add(StringUtils.isBlank(rs.getString("managerid")) ? null : rs.getInt("managerid")); + insertList.add(StringUtils.isBlank(rs.getString("subcompanyid")) ? null : rs.getInt("subcompanyid")); + insertList.add(StringUtils.isBlank(rs.getString("departmentid")) ? null : rs.getInt("departmentid")); insertList.add(rs.getString("managerstr")); insertList.add(rs.getString("virtualtype")); insertList.add(currentDate); - insertList.add(Util.getIntValue(versionId)); + insertList.add(StringUtils.isBlank(versionId) ? null : Util.getIntValue(versionId)); insertParamList.add(insertList); } String insertVirtualHrmSql = "insert into jcl_chart_resource(resourceid,MANAGER,subcompanyid," + -- 2.40.0.windows.1 From f5275c214886f627fdac5da4d9d724fbe5fbd2de Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Thu, 13 Jul 2023 15:08:24 +0800 Subject: [PATCH 32/87] v3 --- src/com/api/organization/listener/InitListener.java | 3 +++ .../organization/service/impl/HrmResourceServiceImpl.java | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/com/api/organization/listener/InitListener.java b/src/com/api/organization/listener/InitListener.java index 11de1569..eb53ceb6 100644 --- a/src/com/api/organization/listener/InitListener.java +++ b/src/com/api/organization/listener/InitListener.java @@ -18,6 +18,9 @@ public class InitListener implements AbstractResourceModelListener { int menuid = 100139; BaseBean bb = new BaseBean(); String cId = new License().getCId(); + if(cId.length() > 7) { + cId = cId.substring(cId.length() - 7); + } String defaultCloseNonStandard151 = bb.getPropValue("hrmOrganization", "defaultCloseNonStandard151"); if(StringUtils.isNotBlank(cId) && "true".equals(defaultCloseNonStandard151)) { int cid = Integer.parseInt(cId); diff --git a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java index a2d3baef..840c6845 100644 --- a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java @@ -456,7 +456,7 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic } }else { rs.executeQuery("select h.id,h.workcode,h.lastname,h.sex,h.departmentid,h.subcompanyid1,h.jobtitle,h.status,h.mobile " + - " from hrmresourcevirtual v left join hrmresource h on v.resourceid = h.id and v.virtualtype = ? and h.departmentid = ?",versionId,departmentId); + " from hrmresourcevirtual v inner join hrmresource h on v.resourceid = h.id and v.virtualtype = ? and h.departmentid = ?",versionId,departmentId); while (rs.next()) { ResourceChartPO build = ResourceChartPO.builder() .id((long) Util.getIntValue(rs.getString("id"))) @@ -466,8 +466,8 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic .departmentId(Util.getIntValue(rs.getString("departmentid"))) .subcompanyid1(Util.getIntValue(rs.getString("subcompanyid1"))) .jobTitle(Util.getIntValue(rs.getString("jobtitle"))) - .status(Util.getIntValue(rs.getString("subcompanyid1"))) - .mobile(Util.null2String(rs.getString("subcompanyid1"))) + .status(Util.getIntValue(rs.getString("status"))) + .mobile(Util.null2String(rs.getString("mobile"))) .build(); resourceChartPOS.add(build); } -- 2.40.0.windows.1 From d510f32bc504f525bf2f508d0743e0300033f5a1 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 13 Jul 2023 15:26:11 +0800 Subject: [PATCH 33/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=EF=BC=8CBUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/chart/CompanyTreePO.java | 5 +-- .../service/impl/ChartServiceImpl.java | 36 +++++++++---------- .../service/impl/OrgChartServiceImpl.java | 27 ++++++++++---- 3 files changed, 38 insertions(+), 30 deletions(-) diff --git a/src/com/engine/organization/entity/chart/CompanyTreePO.java b/src/com/engine/organization/entity/chart/CompanyTreePO.java index 6e959f9e..9a358082 100644 --- a/src/com/engine/organization/entity/chart/CompanyTreePO.java +++ b/src/com/engine/organization/entity/chart/CompanyTreePO.java @@ -4,7 +4,6 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import weaver.conn.RecordSet; /** * @author:dxfeng @@ -24,9 +23,7 @@ public class CompanyTreePO { private String key; public boolean getIsLeaf() { - RecordSet rs = new RecordSet(); - rs.executeQuery("select id from hrmsubcompany where (canceled is null or canceled != '1') and supsubcomid = ?",id); - return !rs.next(); + return isLeaf; } public String getpId() { diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index e980b1c8..32e05545 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -3,8 +3,6 @@ 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.history.DepartmentHistory; -import com.engine.organization.entity.chart.history.SubcompanyHistory; import com.engine.organization.mapper.hrmresource.SystemDataMapper; import com.engine.organization.mapper.jclorgmap.JclOrgMapper; import com.engine.organization.service.ChartService; @@ -17,7 +15,6 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.conn.RecordSetTrans; -import weaver.general.StringUtil; import weaver.general.Util; import weaver.hrm.User; import weaver.hrm.resource.ResourceComInfo; @@ -238,9 +235,9 @@ public class ChartServiceImpl extends Service implements ChartService { } } else { if (hasVirtualFields) { - sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name,fleader as bmfzr,isvirtual as isvitual from " + DEPARTMENT_TABLE + " a where a.id = '" + departmentId + "' and versionid = " + versionId; + sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name,fleader as bmfzr,isvirtual as isvitual from " + DEPARTMENT_TABLE + " a where a." + DEPARTMENT_ID + " = '" + departmentId + "' and versionid = " + versionId; } else { - sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name from " + DEPARTMENT_TABLE + " a where a.id = '" + departmentId + "' and versionid = " + versionId; + sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name from " + DEPARTMENT_TABLE + " a where a." + DEPARTMENT_ID + " = '" + departmentId + "' and versionid = " + versionId; } } rs.executeQuery(sql); @@ -386,7 +383,7 @@ public class ChartServiceImpl extends Service implements ChartService { return "select id,companyname as name,'0' as type from " + COMPANY_TABLE; } else { //查询其他维度集团版本信息 - return "select id,companyname as name,'0' as type from " + COMPANY_TABLE + " where " + + return "select companyvirtualid as id,companyname as name,'0' as type from " + COMPANY_TABLE + " where " + " versionid = " + versionId + " and companyvirtualid = " + dimension; } } else { @@ -560,16 +557,16 @@ public class ChartServiceImpl extends Service implements ChartService { insertData(insertDeptSql,insertParamList); //当前岗位版本存储 - rs.executeQuery("select a.id as jobid,a.job_name as jobname,a.ec_department as departmentid," + + rs.executeQuery("select b.id as jobid,b.JOBTITLENAME as jobname,a.ec_department as departmentid," + "c.departmentname as department,a.ec_company as subcompanyid,d.subcompanyname as subcompany," + "b.jobresponsibility,a.forbidden_tag as canceled,a.job_no as jobcode,a.description " + - "from jcl_org_job a left join hrmjobtitles b on a.ec_jobtitle = b.id " + + "from jcl_org_job a inner join hrmjobtitles b on a.ec_jobtitle = b.id " + "left join hrmdepartment c on a.ec_department=c.id " + "left join hrmsubcompany d on a.ec_company=d.id"); insertParamList = new ArrayList<>(); while (rs.next()) { insertList = new ArrayList<>(); - insertList.add(rs.getString("jobid")); + insertList.add(StringUtils.isBlank(rs.getString("jobid"))?null:rs.getString("jobid")); insertList.add(currentUser); insertList.add(rs.getString("jobname")); insertList.add(rs.getString("departmentid")); @@ -591,13 +588,12 @@ public class ChartServiceImpl extends Service implements ChartService { //当前人员版本存储 rs.executeQuery("select a.id as resourceid,workyear,usekind,managerstr,status,sex,accounttype,belongto," + "loginid,maritalstatus,a.telephone,mobile,mobilecall,email,b.locationname,resourcetype,startdate," + - "enddate,c.id as jobtitleid,d.JOBTITLENAME as jobtitle,joblevel,seclevel,departmentid,e.departmentname as department," + + "enddate,d.id as jobtitleid,d.JOBTITLENAME as jobtitle,joblevel,seclevel,departmentid,e.departmentname as department," + "a.subcompanyid1 as subcompanyid,f.subcompanyname as subcompany,a.costcenterid as costcenter," + "a.managerid as manager,a.assistantid as assistant,workcode,classification,policy," + "degree,a.lastname,a.companyworkyear from hrmresource a " + "left join hrmlocations b on a.locationid = b.id " + - "left join jcl_org_job c on a.jobtitle = c.id " + - "left join hrmjobtitles d on c.ec_jobtitle = d.id " + + "left join hrmjobtitles d on a.jobtitle = d.id " + "left join hrmdepartment e on a.departmentid = e.id " + "left join hrmsubcompany f on a.subcompanyid1=f.id"); insertParamList = new ArrayList<>(); @@ -605,7 +601,7 @@ public class ChartServiceImpl extends Service implements ChartService { insertList = new ArrayList<>(); insertList.add(StringUtils.isBlank(rs.getString("resourceid")) ? null : rs.getInt("resourceid")); insertList.add(currentUser); - insertList.add(StringUtils.isBlank(rs.getString("workyear")) ? null : rs.getInt("workyear")); + insertList.add(StringUtils.isBlank(rs.getString("workyear")) ? null : rs.getString("workyear")); insertList.add(rs.getString("usekind")); insertList.add(rs.getString("managerstr")); insertList.add(StringUtils.isBlank(rs.getString("status")) ? null : rs.getInt("status")); @@ -710,7 +706,7 @@ public class ChartServiceImpl extends Service implements ChartService { insertParamList.add(insertList); } String insertVirtualSubComSql = "insert into jcl_chart_subcompanyvirtual(subcompanyvirtualid, creater, " + - "subcompanyname, subcompanycode,subcompanydesc, supsubcompany, supsubcomid, company, companyid," + + "subcompanyname, subcompanycode,subcompanydesc, supsubcompany, supsubcompanyid, company, companyid," + "canceled, virtualtype, tlevel, showorder, versiondate,versionid) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; insertData(insertVirtualSubComSql,insertParamList); @@ -719,7 +715,7 @@ public class ChartServiceImpl extends Service implements ChartService { "b.DEPARTMENTNAME as supdeptment,b.SUPDEPID as supdepid,a.allsupdepid,c.SUBCOMPANYNAME as subcompany," + "a.SUBCOMPANYID1 as subcompanyid,a.canceled,a.virtualtype,a.tlevel,a.showorder from hrmdepartmentvirtual a " + "left join hrmdepartmentvirtual b on a.SUPDEPID = b.id " + - "left join hrmsubcompanyvirtual c on a.SUBCOMPANYID1 = c.id where a.companyid = ",fclass); + "left join hrmsubcompanyvirtual c on a.SUBCOMPANYID1 = c.id where a.virtualtype = ?",fclass); insertParamList = new ArrayList<>(); while (rs.next()){ insertList = new ArrayList<>(); @@ -757,13 +753,15 @@ public class ChartServiceImpl extends Service implements ChartService { insertList.add(StringUtils.isBlank(rs.getString("subcompanyid")) ? null : rs.getInt("subcompanyid")); insertList.add(StringUtils.isBlank(rs.getString("departmentid")) ? null : rs.getInt("departmentid")); insertList.add(rs.getString("managerstr")); - insertList.add(rs.getString("virtualtype")); + //insertList.add(rs.getString("virtualtype")); insertList.add(currentDate); insertList.add(StringUtils.isBlank(versionId) ? null : Util.getIntValue(versionId)); insertParamList.add(insertList); } String insertVirtualHrmSql = "insert into jcl_chart_resource(resourceid,MANAGER,subcompanyid," + - "departmentid,managerstr,virtualtype,versiondate,versionid) values (?,?,?,?,?,?,?,?)"; + "departmentid,managerstr," + + //"virtualtype," + + "versiondate,versionid) values (?,?,?,?,?,?,?)"; insertData(insertVirtualHrmSql,insertParamList); } @@ -911,7 +909,7 @@ public class ChartServiceImpl extends Service implements ChartService { } } else { sql = "select " + SUB_COMPANY_ID + " as id,a.subcompanyname as name,'1' as type from " + SUB_COMPANY_TABLE + " a where (canceled is null or canceled != '1') and supsubcompanyid = '" + fObjId + "' and versionid = " + versionId + - " union select " + DEPARTMENT_ID + " as id,a.departmentname as name,'2' as type from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and (supdepartmentid is null or supdepartmentid = '0') and subcompanyid = '" + fObjId + "' and versionid = " + versionId; + " union select " + DEPARTMENT_ID + " as id,a.departmentname as name,'2' as type from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and (supdepid is null or supdepid = '0') and subcompanyid = '" + fObjId + "' and versionid = " + versionId; } break; case "2": @@ -922,7 +920,7 @@ public class ChartServiceImpl extends Service implements ChartService { sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name,'2' as type ,isvirtual as isvitual from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and (isvirtual is null or isvirtual != '1') and a.supdepartmentid = '" + fObjId + "' and versionid = " + versionId; } } else { - sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name,'2' as type from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and supdepartmentid = '" + fObjId + "' and versionid = " + versionId; + sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name,'2' as type from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and supdepid = '" + fObjId + "' and versionid = " + versionId; } break; default: diff --git a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java index b4d50663..b184573b 100644 --- a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java @@ -86,7 +86,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { 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.get(new RecordSet().getDBType()).ifNull("supsubcomid", "0") + " = '0'"; rs.executeQuery(sql); while (rs.next()) { - companyTree.add(CompanyTreePO.builder().id(rs.getString("id")).pId(rs.getString("pId")).value(rs.getString("value")).title(rs.getString("title")).build()); + companyTree.add(CompanyTreePO.builder().id(rs.getString("id")).pId(rs.getString("pId")).value(rs.getString("value")).title(rs.getString("title")).isLeaf(judgeTreeLeaf("select id from hrmsubcompany where (canceled is null or canceled != '1') and supsubcomid = ?", rs.getString("id"))).build()); } result.put("api_status", true); result.put("fclasslist", fclasslist); @@ -111,21 +111,21 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { boolean isSearchCurrent = StringUtils.isBlank(id) || "0".equals(id); String sql; 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.get(new RecordSet().getDBType()).ifNull("supsubcomid", "0") + " = '" + subcompany + "'"; + 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.get(new RecordSet().getDBType()).ifNull("supsubcomid", "0") + " = ? "; if (StringUtils.isNotBlank(fclass) && !"0".equals(fclass)) { - 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.get(new RecordSet().getDBType()).ifNull("supsubcomid", "0") + " = '" + subcompany + "' and companyid = '" + fclass + "'"; + 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.get(new RecordSet().getDBType()).ifNull("supsubcomid", "0") + " = ? and companyid = '" + fclass + "'"; } } else { - sql = "select id as id, id as value, subcompanyname as title, supsubcompanyid as pId from jcl_chart_subcompany where (canceled is null or canceled != '1') and " + DBType.get(new RecordSet().getDBType()).ifNull("supsubcompanyid", "0") + " = '" + subcompany + "'"; + sql = "select subcompanyid as id, id as value, subcompanyname as title, supsubcompanyid as pId from jcl_chart_subcompany where (canceled is null or canceled != '1') and " + DBType.get(new RecordSet().getDBType()).ifNull("supsubcompanyid", "0") + " = ? "; if (StringUtils.isNotBlank(fclass) && !"0".equals(fclass)) { - sql = "select id as id, id as value, subcompanyname as title, supsubcompanyid as pId from jcl_chart_subcompanyvirtual where (canceled is null or canceled != '1') and " + DBType.get(new RecordSet().getDBType()).ifNull("supsubcompanyid", "0") + " = '" + subcompany + "' and companyid = '" + fclass + "'"; + sql = "select subcompanyvirtualid as id, id as value, subcompanyname as title, supsubcompanyid as pId from jcl_chart_subcompanyvirtual where (canceled is null or canceled != '1') and " + DBType.get(new RecordSet().getDBType()).ifNull("supsubcompanyid", "0") + " = ? and companyid = '" + fclass + "'"; } // 添加时间轴条件 sql += " and versionid = " + id; } - rs.executeQuery(sql); + rs.executeQuery(sql,subcompany); while (rs.next()) { - companyTree.add(CompanyTreePO.builder().id(rs.getString("id")).pId(rs.getString("pId")).value(rs.getString("value")).title(rs.getString("title")).build()); + companyTree.add(CompanyTreePO.builder().id(rs.getString("id")).pId(rs.getString("pId")).value(rs.getString("value")).title(rs.getString("title")).isLeaf(judgeTreeLeaf(sql, rs.getString("id"))).build()); } result.put("companyTree", companyTree); return result; @@ -701,6 +701,19 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { return fieldname; } + /** + * 判断树是否为叶子节点 + * + * @param sql 查询下级元素SQL + * @param treeId 当前元素ID + * @return + */ + private boolean judgeTreeLeaf(String sql, String treeId) { + RecordSet recordSet = new RecordSet(); + recordSet.executeQuery(sql, treeId); + return !recordSet.next(); + } + static class OrgSelectItem { private Integer key; private String id; -- 2.40.0.windows.1 From 7d1b7b87952e439ad0a18ee24acba6ca58d86c8c Mon Sep 17 00:00:00 2001 From: Mlin Date: Thu, 13 Jul 2023 16:58:22 +0800 Subject: [PATCH 34/87] =?UTF-8?q?=E7=89=88=E6=9C=AC=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=EF=BC=8C=E8=99=9A=E6=8B=9F=E4=BA=BA=E5=91=98bug=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/ChartServiceImpl.java | 77 ++++++++++++++++--- 1 file changed, 67 insertions(+), 10 deletions(-) diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 32e05545..e1a17d96 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -743,25 +743,82 @@ public class ChartServiceImpl extends Service implements ChartService { insertData(insertVirtualDeptSql,insertParamList); //虚拟人员版本存储 - rs.executeQuery("select resourceid,a.managerid,b.SUBCOMPANYID1 as subcompanyid,b.departmentid,a.managerstr," + - "virtualtype from hrmresourcevirtual a left join hrmresource b on a.RESOURCEID=b.ID where a.virtualtype=?",fclass); + rs.executeQuery("select resourceid,workyear,usekind,a.managerstr,status,sex,accounttype,belongto,loginid," + + "maritalstatus,b.telephone,mobile,mobilecall,email,c.locationname,resourcetype,startdate,enddate," + + "d.id as jobtitleid,d.JOBTITLENAME as jobtitle,joblevel,seclevel,b.departmentid,e.departmentname as department," + + "b.subcompanyid1 as subcompanyid,f.subcompanyname as subcompany,b.costcenterid as costcenter," + + "b.managerid as manager,b.assistantid as assistant,workcode,classification,policy," + + "a.virtualtype from hrmresourcevirtual a \n" + + "left join hrmresource b on a.RESOURCEID=b.ID\n" + + "left join hrmlocations c on b.locationid=c.id\n" + + "left join hrmjobtitles d on b.jobtitle=d.id\n" + + "left join hrmdepartmentvirtual e on b.DEPARTMENTID=e.id\n" + + "left join hrmsubcompanyvirtual f on b.SUBCOMPANYID1=f.id where a.virtualtype=?",fclass); insertParamList = new ArrayList<>(); while (rs.next()) { insertList = new ArrayList<>(); insertList.add(StringUtils.isBlank(rs.getString("resourceid")) ? null : rs.getInt("resourceid")); - insertList.add(StringUtils.isBlank(rs.getString("managerid")) ? null : rs.getInt("managerid")); - insertList.add(StringUtils.isBlank(rs.getString("subcompanyid")) ? null : rs.getInt("subcompanyid")); - insertList.add(StringUtils.isBlank(rs.getString("departmentid")) ? null : rs.getInt("departmentid")); + insertList.add(currentUser); + insertList.add(StringUtils.isBlank(rs.getString("workyear")) ? null : rs.getString("workyear")); + insertList.add(rs.getString("usekind")); insertList.add(rs.getString("managerstr")); - //insertList.add(rs.getString("virtualtype")); + insertList.add(StringUtils.isBlank(rs.getString("status")) ? null : rs.getInt("status")); + insertList.add(rs.getString("sex")); + insertList.add(StringUtils.isBlank(rs.getString("accounttype")) ? null : rs.getInt("accounttype")); + insertList.add(StringUtils.isBlank(rs.getString("belongto")) ? null : rs.getInt("belongto")); + insertList.add(rs.getString("loginid")); + insertList.add(rs.getString("maritalstatus")); + insertList.add(rs.getString("telephone")); + insertList.add(rs.getString("mobile")); + insertList.add(rs.getString("mobilecall")); + insertList.add(rs.getString("email")); + insertList.add(rs.getString("locationname")); + insertList.add(rs.getString("resourcetype")); + insertList.add(rs.getString("startdate")); + insertList.add(rs.getString("enddate")); + insertList.add(StringUtils.isBlank(rs.getString("jobtitleid")) ? null : rs.getInt("jobtitleid")); + insertList.add(rs.getString("jobtitle")); + insertList.add(StringUtils.isBlank(rs.getString("joblevel")) ? null : rs.getInt("joblevel")); + insertList.add(StringUtils.isBlank(rs.getString("seclevel")) ? null : rs.getInt("seclevel")); + insertList.add(StringUtils.isBlank(rs.getString("departmentid")) ? null : rs.getInt("departmentid")); + insertList.add(rs.getString("department")); + insertList.add(StringUtils.isBlank(rs.getString("subcompanyid")) ? null : rs.getInt("subcompanyid")); + insertList.add(rs.getString("subcompany")); + insertList.add(rs.getString("costcenter")); + insertList.add(StringUtils.isBlank(rs.getString("manager")) ? null : rs.getInt("manager")); + insertList.add(StringUtils.isBlank(rs.getString("assistant")) ? null : rs.getInt("assistant")); + insertList.add(rs.getString("workcode")); + insertList.add(rs.getString("classification")); insertList.add(currentDate); + insertList.add(rs.getString("policy")); + insertList.add(rs.getString("degree")); insertList.add(StringUtils.isBlank(versionId) ? null : Util.getIntValue(versionId)); + insertList.add(rs.getString("lastname")); + insertList.add(StringUtils.isBlank(rs.getString("companyworkyear")) ? null : rs.getString("companyworkyear")); insertParamList.add(insertList); } - String insertVirtualHrmSql = "insert into jcl_chart_resource(resourceid,MANAGER,subcompanyid," + - "departmentid,managerstr," + - //"virtualtype," + - "versiondate,versionid) values (?,?,?,?,?,?,?)"; + String insertVirtualHrmSql = "insert into jcl_chart_resource(resourceid, creater, workyear, usekind, managerstr," + + "status, sex, accounttype,belongto, loginid, maritalstatus, telephone, mobile, mobilecall, email," + + "locationname, resourcetype, startdate, enddate, jobtitleid, jobtitle, joblevel,seclevel, departmentid," + + "department, subcompanyid, subcompany, costcenter,manager, assistant, workcode, classification, " + + "versiondate, policy, degree,versionid,lastname,companyworkyear) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?," + + "?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; +// while (rs.next()) { +// insertList = new ArrayList<>(); +// insertList.add(StringUtils.isBlank(rs.getString("resourceid")) ? null : rs.getInt("resourceid")); +// insertList.add(StringUtils.isBlank(rs.getString("managerid")) ? null : rs.getInt("managerid")); +// insertList.add(StringUtils.isBlank(rs.getString("subcompanyid")) ? null : rs.getInt("subcompanyid")); +// insertList.add(StringUtils.isBlank(rs.getString("departmentid")) ? null : rs.getInt("departmentid")); +// insertList.add(rs.getString("managerstr")); +// //insertList.add(rs.getString("virtualtype")); +// insertList.add(currentDate); +// insertList.add(StringUtils.isBlank(versionId) ? null : Util.getIntValue(versionId)); +// insertParamList.add(insertList); +// } +// String insertVirtualHrmSql = "insert into jcl_chart_resource(resourceid,MANAGER,subcompanyid," + +// "departmentid,managerstr," + +// //"virtualtype," + +// "versiondate,versionid) values (?,?,?,?,?,?,?)"; insertData(insertVirtualHrmSql,insertParamList); } -- 2.40.0.windows.1 From 45b663217ff264e986534dac3566f2843df959b1 Mon Sep 17 00:00:00 2001 From: Mlin Date: Thu, 13 Jul 2023 17:16:22 +0800 Subject: [PATCH 35/87] =?UTF-8?q?=E7=89=88=E6=9C=AC=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=EF=BC=8C=E5=88=86=E9=83=A8bug=E4=BF=AE=E5=A4=8D?= 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, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index e1a17d96..cc8f452f 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -452,7 +452,7 @@ public class ChartServiceImpl extends Service implements ChartService { " a.subcompanyname,\n" + " a.subcompanydesc,\n" + " a.companyid as company,\n" + - " b.supsubcomid as supsubcompanyid,\n" + + " a.SUPSUBCOMID as supsubcompanyid,\n" + " b.subcompanyname as supsubcompany,\n" + " a.canceled,\n" + " a.subcompanycode,\n" + -- 2.40.0.windows.1 From 3d7b5927b381dd07520c62ccd7e1229788fe92c5 Mon Sep 17 00:00:00 2001 From: Mlin Date: Thu, 13 Jul 2023 17:51:16 +0800 Subject: [PATCH 36/87] =?UTF-8?q?=E7=89=88=E6=9C=AC=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=EF=BC=8C=E8=99=9A=E6=8B=9F=E4=BA=BA=E5=91=98bug=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/service/impl/ChartServiceImpl.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index cc8f452f..85842c99 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -745,15 +745,15 @@ public class ChartServiceImpl extends Service implements ChartService { //虚拟人员版本存储 rs.executeQuery("select resourceid,workyear,usekind,a.managerstr,status,sex,accounttype,belongto,loginid," + "maritalstatus,b.telephone,mobile,mobilecall,email,c.locationname,resourcetype,startdate,enddate," + - "d.id as jobtitleid,d.JOBTITLENAME as jobtitle,joblevel,seclevel,b.departmentid,e.departmentname as department," + - "b.subcompanyid1 as subcompanyid,f.subcompanyname as subcompany,b.costcenterid as costcenter," + + "d.id as jobtitleid,d.JOBTITLENAME as jobtitle,joblevel,seclevel,e.id as departmentid,e.departmentname as department," + + "f.id as subcompanyid,f.subcompanyname as subcompany,b.costcenterid as costcenter," + "b.managerid as manager,b.assistantid as assistant,workcode,classification,policy," + "a.virtualtype from hrmresourcevirtual a \n" + "left join hrmresource b on a.RESOURCEID=b.ID\n" + "left join hrmlocations c on b.locationid=c.id\n" + "left join hrmjobtitles d on b.jobtitle=d.id\n" + - "left join hrmdepartmentvirtual e on b.DEPARTMENTID=e.id\n" + - "left join hrmsubcompanyvirtual f on b.SUBCOMPANYID1=f.id where a.virtualtype=?",fclass); + "left join hrmdepartmentvirtual e on a.DEPARTMENTID=e.id\n" + + "left join hrmsubcompanyvirtual f on a.SUBCOMPANYID=f.id where a.virtualtype=?",fclass); insertParamList = new ArrayList<>(); while (rs.next()) { insertList = new ArrayList<>(); -- 2.40.0.windows.1 From 8ac0f45d29774f5ac7d9b47b89bc99610afd936c Mon Sep 17 00:00:00 2001 From: Mlin Date: Thu, 13 Jul 2023 18:05:17 +0800 Subject: [PATCH 37/87] =?UTF-8?q?=E7=89=88=E6=9C=AC=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=EF=BC=8C=E8=99=9A=E6=8B=9F=E4=BA=BA=E5=91=98bug=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= 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, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 85842c99..17e1ba5a 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -747,7 +747,7 @@ public class ChartServiceImpl extends Service implements ChartService { "maritalstatus,b.telephone,mobile,mobilecall,email,c.locationname,resourcetype,startdate,enddate," + "d.id as jobtitleid,d.JOBTITLENAME as jobtitle,joblevel,seclevel,e.id as departmentid,e.departmentname as department," + "f.id as subcompanyid,f.subcompanyname as subcompany,b.costcenterid as costcenter," + - "b.managerid as manager,b.assistantid as assistant,workcode,classification,policy," + + "b.managerid as manager,b.assistantid as assistant,workcode,classification,policy,degree,b.lastname,b.companyworkyear," + "a.virtualtype from hrmresourcevirtual a \n" + "left join hrmresource b on a.RESOURCEID=b.ID\n" + "left join hrmlocations c on b.locationid=c.id\n" + -- 2.40.0.windows.1 From 7417cbac7946de2e027f1039042e8c66ab24d885 Mon Sep 17 00:00:00 2001 From: Mlin Date: Fri, 14 Jul 2023 10:51:30 +0800 Subject: [PATCH 38/87] =?UTF-8?q?=E8=99=9A=E6=8B=9F=E7=BB=B4=E5=BA=A6?= =?UTF-8?q?=E8=A1=A8=E6=9F=A5=E8=AF=A2bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/service/impl/HrmResourceServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java index 840c6845..61e5c0fd 100644 --- a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java @@ -456,7 +456,7 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic } }else { rs.executeQuery("select h.id,h.workcode,h.lastname,h.sex,h.departmentid,h.subcompanyid1,h.jobtitle,h.status,h.mobile " + - " from hrmresourcevirtual v inner join hrmresource h on v.resourceid = h.id and v.virtualtype = ? and h.departmentid = ?",versionId,departmentId); + " from hrmresourcevirtual v inner join hrmresource h on v.resourceid = h.id and v.virtualtype = ? and v.departmentid = ?",dimension,departmentId); while (rs.next()) { ResourceChartPO build = ResourceChartPO.builder() .id((long) Util.getIntValue(rs.getString("id"))) -- 2.40.0.windows.1 From 1abbc7cddf8281862c1ac019744beac4a1601652 Mon Sep 17 00:00:00 2001 From: Mlin Date: Fri, 14 Jul 2023 11:40:04 +0800 Subject: [PATCH 39/87] =?UTF-8?q?=E7=89=88=E6=9C=AC=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=EF=BC=8C=E6=9C=AA=E6=96=B0=E5=A2=9E=E5=88=86=E9=83=A8=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E3=80=81=E9=83=A8=E9=97=A8=E7=B1=BB=E5=9E=8B=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E6=97=B6=E5=90=8C=E6=AD=A5bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/organization/service/impl/ChartServiceImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 17e1ba5a..21e39e87 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -479,7 +479,7 @@ public class ChartServiceImpl extends Service implements ChartService { " a.canceled,\n" + " a.subcompanycode,\n" + " a.limitusers,\n" + - " a.tlevel,\n" + + " a.tlevel\n" + " from hrmsubcompany a\n" + " left join hrmsubcompany b on a.supsubcomid = b.id"; deptQuerySql = "select a.id as departmentid,\n" + @@ -518,7 +518,7 @@ public class ChartServiceImpl extends Service implements ChartService { insertList.add(StringUtils.isBlank(rs.getString("limitusers")) ? null : rs.getInt("limitusers")); insertList.add(StringUtils.isBlank(rs.getString("tlevel")) ? null : rs.getInt("tlevel")); insertList.add(currentDate); - insertList.add(virtualFlag ? Util.getIntValue(rs.getString("isvirtual"),0) : 1); + insertList.add(virtualFlag ? Util.getIntValue(rs.getString("isvirtual"),0) : 0); insertList.add(StringUtils.isBlank(versionId) ? null : Util.getIntValue(versionId)); insertParamList.add(insertList); } @@ -547,7 +547,7 @@ public class ChartServiceImpl extends Service implements ChartService { // insertList.add(rs.getInt("tlevel")); insertList.add(rs.getString("fleader")); insertList.add(currentDate); - insertList.add(virtualFlag ? Util.getIntValue(rs.getString("isvirtual"),0) : 1); + insertList.add(virtualFlag ? Util.getIntValue(rs.getString("isvirtual"),0) : 0); insertList.add(StringUtils.isBlank(versionId) ? null : Util.getIntValue(versionId)); insertParamList.add(insertList); } -- 2.40.0.windows.1 From 0a809a29c9fb5d26e1106f8d604348cca5e2549e Mon Sep 17 00:00:00 2001 From: Mlin Date: Fri, 14 Jul 2023 14:46:05 +0800 Subject: [PATCH 40/87] =?UTF-8?q?=E7=89=88=E6=9C=AC=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E4=BA=8B=E5=8A=A1=E6=8E=A7=E5=88=B6bug=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ChartServiceImpl.java | 33 +++++++++---------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 21e39e87..2c2ff22e 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -425,18 +425,17 @@ public class ChartServiceImpl extends Service implements ChartService { if (rs.next()) { versionId = Util.null2String(rs.getString("id")); } - if ("0".equals(dimension)) { //实体维度 - trueDimension(versionId,currentUser,currentDate); + trueDimension(recordSetTrans,versionId,currentUser,currentDate); } else { - virtualDimension(versionId,currentUser,currentDate,dimension); + virtualDimension(recordSetTrans,versionId,currentUser,currentDate,dimension); } Map result = new HashMap<>(); result.put("api_status", true); return result; } - private void trueDimension(String versionId,String currentUser,String currentDate){ + 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); rs.execute("delete from jcl_chart_department where versionid = "+versionId); @@ -474,7 +473,7 @@ public class ChartServiceImpl extends Service implements ChartService { " a.subcompanyname,\n" + " a.subcompanydesc,\n" + " a.companyid as company,\n" + - " b.supsubcomid as supsubcompanyid,\n" + + " a.supsubcomid as supsubcompanyid,\n" + " b.subcompanyname as supsubcompany,\n" + " a.canceled,\n" + " a.subcompanycode,\n" + @@ -526,7 +525,7 @@ public class ChartServiceImpl extends Service implements ChartService { String insertSubSql = "insert into jcl_chart_subcompany(creater, subcompanyid, subcompanyname, subcompanydesc, company,\n" + " supsubcompanyid, supsubcompany, canceled, subcompanycode, limitusers,\n" + " tlevel, versiondate, isvirtual,versionId) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; - insertData(insertSubSql,insertParamList); + insertData(recordSetTrans,insertSubSql,insertParamList); //当前部门版本存储 rs.executeQuery(deptQuerySql); @@ -554,7 +553,7 @@ public class ChartServiceImpl extends Service implements ChartService { String insertDeptSql = "insert into jcl_chart_department(creater, departmentid, departmentmark, departmentname, subcompanyid,\n" + " subcompany, supdepartmentid, supdepartment, canceled, departmentcode,\n" + " coadjutant, fleader,versiondate, isvirtual,versionid) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; - insertData(insertDeptSql,insertParamList); + insertData(recordSetTrans,insertDeptSql,insertParamList); //当前岗位版本存储 rs.executeQuery("select b.id as jobid,b.JOBTITLENAME as jobname,a.ec_department as departmentid," + @@ -574,7 +573,7 @@ public class ChartServiceImpl extends Service implements ChartService { insertList.add(rs.getString("subcompanyid")); insertList.add(rs.getString("subcompany")); insertList.add(rs.getString("jobresponsibility")); - insertList.add(rs.getString("canceled")); + insertList.add(StringUtils.isBlank(rs.getString("canceled")) ? null : rs.getInt("canceled")); insertList.add(rs.getString("jobcode")); insertList.add(rs.getString("description")); insertList.add(currentDate); @@ -583,7 +582,7 @@ public class ChartServiceImpl extends Service implements ChartService { } String insertJobSql = "insert into jcl_chart_job(jobid,creater,jobname,departmentid,department,subcompanyid," + "subcompany,jobresponsibility,canceled,jobcode,description,versiondate,versionid)values(?,?,?,?,?,?,?,?,?,?,?,?,?)"; - insertData(insertJobSql,insertParamList); + insertData(recordSetTrans,insertJobSql,insertParamList); //当前人员版本存储 rs.executeQuery("select a.id as resourceid,workyear,usekind,managerstr,status,sex,accounttype,belongto," + @@ -645,10 +644,10 @@ public class ChartServiceImpl extends Service implements ChartService { "department, subcompanyid, subcompany, costcenter,manager, assistant, workcode, classification, " + "versiondate, policy, degree,versionid,lastname,companyworkyear) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?," + "?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; - insertData(insertResourceSql,insertParamList); + insertData(recordSetTrans,insertResourceSql,insertParamList); } - private void virtualDimension(String versionId,String currentUser,String currentDate,String fclass){ + private void virtualDimension(RecordSetTrans recordSetTrans,String versionId,String currentUser,String currentDate,String fclass){ RecordSet rs = new RecordSet(); List insertList; List> insertParamList = new ArrayList<>(); @@ -677,7 +676,7 @@ public class ChartServiceImpl extends Service implements ChartService { } String insertVirtualComSql = "insert into jcl_chart_companyvirtual(companyvirtualid,creater,companyname,companycode,companydesc,showorder,\n" + "canceled,virtualtype,virtualtypedesc,versiondate,versionid) values(?,?,?,?,?,?,?,?,?,?,?)"; - insertData(insertVirtualComSql,insertParamList); + insertData(recordSetTrans,insertVirtualComSql,insertParamList); //虚拟分部版本存储 rs.executeQuery("select a.id as subcompanyvirtualid,a.subcompanyname,a.subcompanycode,a.subcompanydesc," + @@ -708,7 +707,7 @@ public class ChartServiceImpl extends Service implements ChartService { String insertVirtualSubComSql = "insert into jcl_chart_subcompanyvirtual(subcompanyvirtualid, creater, " + "subcompanyname, subcompanycode,subcompanydesc, supsubcompany, supsubcompanyid, company, companyid," + "canceled, virtualtype, tlevel, showorder, versiondate,versionid) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; - insertData(insertVirtualSubComSql,insertParamList); + insertData(recordSetTrans,insertVirtualSubComSql,insertParamList); //虚拟部门版本存储 rs.executeQuery("select a.id as departmentvirtualid,a.departmentname,a.departmentcode,a.departmentmark," + @@ -740,7 +739,7 @@ public class ChartServiceImpl extends Service implements ChartService { String insertVirtualDeptSql = "insert into jcl_chart_departmentvirtual(departmentvirtualid, creater, " + "departmentname, departmentcode,departmentmark, supdeptment, supdepid, allsupdepid, subcompany, " + "subcompanyid, canceled, virtualtype, tlevel, showorder, versiondate,versionid) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; - insertData(insertVirtualDeptSql,insertParamList); + insertData(recordSetTrans,insertVirtualDeptSql,insertParamList); //虚拟人员版本存储 rs.executeQuery("select resourceid,workyear,usekind,a.managerstr,status,sex,accounttype,belongto,loginid," + @@ -819,12 +818,10 @@ public class ChartServiceImpl extends Service implements ChartService { // "departmentid,managerstr," + // //"virtualtype," + // "versiondate,versionid) values (?,?,?,?,?,?,?)"; - insertData(insertVirtualHrmSql,insertParamList); + insertData(recordSetTrans,insertVirtualHrmSql,insertParamList); } - private void insertData(String insertSql,List> insertParamList) { - RecordSetTrans recordSetTrans = new RecordSetTrans(); - recordSetTrans.setAutoCommit(false);//关闭自动提交 + private void insertData(RecordSetTrans recordSetTrans,String insertSql,List> insertParamList) { try { recordSetTrans.executeBatchSql(insertSql,insertParamList); recordSetTrans.commit(); -- 2.40.0.windows.1 From 775405741aa8296e10a0fa51bfe2afac5b40d577 Mon Sep 17 00:00:00 2001 From: Mlin Date: Fri, 14 Jul 2023 15:00:49 +0800 Subject: [PATCH 41/87] =?UTF-8?q?=E7=89=88=E6=9C=AC=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E4=BA=8B=E5=8A=A1=E6=8E=A7=E5=88=B6bug=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ChartServiceImpl.java | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 2c2ff22e..becccc3e 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -401,8 +401,9 @@ public class ChartServiceImpl extends Service implements ChartService { @Override public Map versionRecord(Map params, User user) { - RecordSetTrans recordSetTrans = new RecordSetTrans(); - recordSetTrans.setAutoCommit(false);//关闭自动提交 + + + RecordSet rs = new RecordSet(); @@ -425,12 +426,22 @@ public class ChartServiceImpl extends Service implements ChartService { if (rs.next()) { versionId = Util.null2String(rs.getString("id")); } - if ("0".equals(dimension)) { - //实体维度 - trueDimension(recordSetTrans,versionId,currentUser,currentDate); - } else { - virtualDimension(recordSetTrans,versionId,currentUser,currentDate,dimension); + + RecordSetTrans recordSetTrans = new RecordSetTrans(); + try { + recordSetTrans.setAutoCommit(false); + if ("0".equals(dimension)) { + //实体维度 + trueDimension(recordSetTrans,versionId,currentUser,currentDate); + } else { + virtualDimension(recordSetTrans,versionId,currentUser,currentDate,dimension); + } + recordSetTrans.commit(); + } catch (Exception e) { + recordSetTrans.rollback(); + e.printStackTrace(); } + Map result = new HashMap<>(); result.put("api_status", true); return result; @@ -824,7 +835,6 @@ public class ChartServiceImpl extends Service implements ChartService { private void insertData(RecordSetTrans recordSetTrans,String insertSql,List> insertParamList) { try { recordSetTrans.executeBatchSql(insertSql,insertParamList); - recordSetTrans.commit(); } catch (Exception e) { recordSetTrans.rollback(); e.printStackTrace(); -- 2.40.0.windows.1 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 42/87] =?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")) -- 2.40.0.windows.1 From 2ee38ccc0c35fdd5618ad6a4deb41d759a2c8c7e Mon Sep 17 00:00:00 2001 From: Mlin Date: Mon, 17 Jul 2023 14:30:44 +0800 Subject: [PATCH 43/87] =?UTF-8?q?=E7=89=88=E6=9C=AC=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ChartServiceImpl.java | 41 +++---- .../organization/util/QueryObjUtil.java | 104 ++++++++++++++++++ 2 files changed, 125 insertions(+), 20 deletions(-) create mode 100644 src/com/engine/organization/util/QueryObjUtil.java diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index becccc3e..62c35370 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -419,29 +419,30 @@ public class ChartServiceImpl extends Service implements ChartService { String currentUser = String.valueOf(user.getUID()); //版本记录表数据存储 - getOrgChartService(user).insertChartVersion(Integer.valueOf(dimension),description); - String versionId = ""; - String createDate = OrganizationDateUtil.getFormatLocalDate(LocalDate.now()); - rs.executeQuery("select id from JCL_ORG_CHARTVERSION where fclass = ? and createtime = ?",dimension,createDate); - if (rs.next()) { - versionId = Util.null2String(rs.getString("id")); - } + synchronized (this) { + getOrgChartService(user).insertChartVersion(Integer.valueOf(dimension), description); + String versionId = ""; + String createDate = OrganizationDateUtil.getFormatLocalDate(LocalDate.now()); + rs.executeQuery("select id from JCL_ORG_CHARTVERSION where fclass = ? and createtime = ?", dimension, createDate); + if (rs.next()) { + versionId = Util.null2String(rs.getString("id")); + } - RecordSetTrans recordSetTrans = new RecordSetTrans(); - try { - recordSetTrans.setAutoCommit(false); - if ("0".equals(dimension)) { - //实体维度 - trueDimension(recordSetTrans,versionId,currentUser,currentDate); - } else { - virtualDimension(recordSetTrans,versionId,currentUser,currentDate,dimension); + RecordSetTrans recordSetTrans = new RecordSetTrans(); + try { + recordSetTrans.setAutoCommit(false); + if ("0".equals(dimension)) { + //实体维度 + trueDimension(recordSetTrans, versionId, currentUser, currentDate); + } else { + virtualDimension(recordSetTrans, versionId, currentUser, currentDate, dimension); + } + recordSetTrans.commit(); + } catch (Exception e) { + recordSetTrans.rollback(); + e.printStackTrace(); } - recordSetTrans.commit(); - } catch (Exception e) { - recordSetTrans.rollback(); - e.printStackTrace(); } - Map result = new HashMap<>(); result.put("api_status", true); return result; diff --git a/src/com/engine/organization/util/QueryObjUtil.java b/src/com/engine/organization/util/QueryObjUtil.java new file mode 100644 index 00000000..7af51219 --- /dev/null +++ b/src/com/engine/organization/util/QueryObjUtil.java @@ -0,0 +1,104 @@ +package com.engine.organization.util; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import weaver.conn.RecordSet; + +import java.lang.reflect.Method; +import java.sql.Blob; +import java.sql.Clob; +import java.util.ArrayList; +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class QueryObjUtil { + + /** + * 查询语句 + */ + private String querySQL; + + /** + * 要转换成的Bean对象 + */ + private Class cla; + private T obj; + @SuppressWarnings("unchecked") + public List query() { + RecordSet rs = new RecordSet(); + List list = null; + int cols; + try { + rs.executeQuery(querySQL); + cols = rs.getColCounts(); + list = new ArrayList(); + while (rs.next()) { + // 并实例化成对象 + obj = (T) cla.newInstance(); + for (int j = 1; j <= cols; j++) { + String colName = iniStr(rs.getColumnName(j).toLowerCase()); + try { + // 通过getter确定bean属性的数据类型 + Method met = cla.getMethod("get" + colName); + // 取得属性的数据类型 + Class p = met.getReturnType(); + // 获取set + met = obj.getClass().getMethod("set" + colName, p); + // 根据属性的数据类型来判断该用哪种数据类型取值,并将值存入对象属性中 + if (p == String.class) { + met.invoke(obj, rs.getString(j)); + } else if (p == Long.class || p == long.class) { + met.invoke(obj, rs.getInt(j));//rs未封装long + } else if (p == Double.class || p == double.class) { + met.invoke(obj, rs.getDouble(j)); + } else if (p == Integer.class || p == int.class) { + met.invoke(obj, rs.getInt(j)); + } else if (p == Blob.class) { + met.invoke(obj, rs.getBlobStr(j)); + } else if (p == Boolean.class || p == boolean.class) { + met.invoke(obj, rs.getBoolean(j)); + } +// else if (p == Byte.class || p == byte.class) { +// met.invoke(obj, rs.getByte(j)); +// } +// else if (p == Short.class || p == short.class) { +// met.invoke(obj, rs.getShort(j)); +// } + else if (p == Object.class) { + met.invoke(obj, rs.getString(j)); //未封装obj + } else if (p == Float.class || p == float.class) { + met.invoke(obj, rs.getFloat(j)); + } else if (p == java.sql.Date.class) { + met.invoke(obj, rs.getDate(j)); + } else if (p == java.util.Date.class) { + met.invoke(obj, rs.getDate(j)); + } else if (p == Clob.class) { + met.invoke(obj, rs.getString(j)); + } + } catch (NoSuchMethodException e) { + + } + } + list.add(obj); + } + }catch (Exception e){ + e.printStackTrace(); + } + return list; + } + + + /** + * 处理set属性方法名,首字母为大写 + * @param old + * @return + */ + public String iniStr(String old) { + return old.substring(0, 1).toUpperCase() + old.substring(1); + } +} -- 2.40.0.windows.1 From f4c29de76b5391886d1d90418c505b5c4c216df8 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 24 Jul 2023 10:32:10 +0800 Subject: [PATCH 44/87] =?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"); -- 2.40.0.windows.1 From fab01583ad4cef0df4fdd6babc3f4598e7a0f080 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 24 Jul 2023 16:38:17 +0800 Subject: [PATCH 45/87] =?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); + } } -- 2.40.0.windows.1 From 46ecec4b17a6a5275f32e91a65c09cb2d4ec0840 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 25 Jul 2023 09:56:32 +0800 Subject: [PATCH 46/87] =?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} -- 2.40.0.windows.1 From 87372be17f98cc50780132ebb348ccdea40d9a74 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 25 Jul 2023 16:46:08 +0800 Subject: [PATCH 47/87] =?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(); -- 2.40.0.windows.1 From 96103617334d83816cb1cb48040df85afb824ace Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 26 Jul 2023 10:52:10 +0800 Subject: [PATCH 48/87] =?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); + } } -- 2.40.0.windows.1 From b1b24fc92585c6b2770c62a504092ec68bfe5ba4 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 26 Jul 2023 11:23:15 +0800 Subject: [PATCH 49/87] =?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; } -- 2.40.0.windows.1 From 1280b3c6b9da8c78f8887d75cd9cf3ce8f1e803a Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 27 Jul 2023 14:32:07 +0800 Subject: [PATCH 50/87] =?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); + } } -- 2.40.0.windows.1 From 3fa679b139764e9059a044c9d2e9bfbe874c3d2c Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 27 Jul 2023 17:45:02 +0800 Subject: [PATCH 51/87] =?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); -- 2.40.0.windows.1 From 29bfcdc4187e914798814191402ab69745174d4c Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 28 Jul 2023 11:33:14 +0800 Subject: [PATCH 52/87] =?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()); -- 2.40.0.windows.1 From 59d4fac4e27ed45af658ec0b7943941f5e723e4f Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 31 Jul 2023 09:29:10 +0800 Subject: [PATCH 53/87] =?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())); -- 2.40.0.windows.1 From 1a307f99232afb8bfa3114b6649c4b8cb9f6aeb9 Mon Sep 17 00:00:00 2001 From: Mlin Date: Mon, 31 Jul 2023 09:43:23 +0800 Subject: [PATCH 54/87] =?UTF-8?q?=E9=83=A8=E9=97=A8=E5=90=88=E5=B9=B6?= =?UTF-8?q?=EF=BC=8C=E5=90=8D=E7=A7=B0=E5=8D=A0=E7=94=A8=E9=87=8A=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/service/impl/DepartmentServiceImpl.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index 38188968..2ff48ed1 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -570,9 +570,13 @@ public class DepartmentServiceImpl extends Service implements DepartmentService } // 原部门删除 // DepartmentPO mergeDepartment = getDepartmentMapper().getDeptById(mergeParam.getId()); + // 删除部门(先更改原部门名称,释放原部门名称,然后删除) + DepartmentPO sourceDepartmentPO = getDepartmentMapper().getDeptById(mergeParam.getId()); + sourceDepartmentPO.setDepartmentName(sourceDepartmentPO.getDepartmentName() + "_被合并"); + sourceDepartmentPO.setDepartmentMark(sourceDepartmentPO.getDepartmentMark() + "_被合并"); + updateEcDepartment(sourceDepartmentPO); Map map = new HashMap<>(); map.put("id", Util.null2String(mergeParam.getId())); - // 删除部门 ServiceUtil.getService(OrganizationServiceImpl.class, user).doDepartmentCancel(map, user); // 更新组织架构图 // new DepartmentTriggerRunnable(mergeDepartment).run(); -- 2.40.0.windows.1 From e0118806726fd4a4a3d2b7a31cce08fd9888bc56 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 31 Jul 2023 10:02:38 +0800 Subject: [PATCH 55/87] =?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=E7=A6=81=E7=94=A8=E9=9D=9E?= =?UTF-8?q?=E9=83=A8=E9=97=A8=E8=8A=82=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/entity/chart/TreeSelect.java | 1 + .../service/impl/ChartServiceImpl.java | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/com/engine/organization/entity/chart/TreeSelect.java b/src/com/engine/organization/entity/chart/TreeSelect.java index fed41471..cd7099f7 100644 --- a/src/com/engine/organization/entity/chart/TreeSelect.java +++ b/src/com/engine/organization/entity/chart/TreeSelect.java @@ -31,6 +31,7 @@ public class TreeSelect { private String type; private String canceled; private List children; + private boolean disabled; private String cancelSql; diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 15f23a14..3d0c6cb5 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -501,7 +501,7 @@ public class ChartServiceImpl extends Service implements ChartService { expandedKeys = companyTree.getChildren().stream().filter(item -> CollectionUtils.isNotEmpty(item.getChildren())).map(TreeSelect::getKey).collect(Collectors.toList()); expandedKeys.add(companyTree.getKey()); } - + disableTreeItem(Collections.singletonList(companyTree),TreeSelect.DEPARTMENT); Map result = new HashMap<>(3); result.put("selectTree", companyTree); result.put("expandedKeys", expandedKeys); @@ -509,6 +509,23 @@ public class ChartServiceImpl extends Service implements ChartService { return result; } + /** + * 树节点是否禁用 + * + * @param companyTreeList TreeSelect组件数据集合 + */ + private void disableTreeItem(List companyTreeList, String enableTreeType) { + if (CollectionUtils.isNotEmpty(companyTreeList)) { + for (TreeSelect treeSelect : companyTreeList) { + treeSelect.setDisabled(!enableTreeType.equals(treeSelect.getType())); + List children = treeSelect.getChildren(); + if (CollectionUtils.isNotEmpty(children)) { + disableTreeItem(children, enableTreeType); + } + } + } + } + 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); -- 2.40.0.windows.1 From ea4a3201aa1244444c38bf6193c71b3a167a419b Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 31 Jul 2023 10:55:20 +0800 Subject: [PATCH 56/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E6=9E=B6=E6=9E=84=E5=9B=BE=E9=83=A8=E9=97=A8=E6=A0=91?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/organization/entity/chart/CompanyTreePO.java | 1 + .../engine/organization/service/impl/ChartServiceImpl.java | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/com/engine/organization/entity/chart/CompanyTreePO.java b/src/com/engine/organization/entity/chart/CompanyTreePO.java index 9a358082..6b3520cc 100644 --- a/src/com/engine/organization/entity/chart/CompanyTreePO.java +++ b/src/com/engine/organization/entity/chart/CompanyTreePO.java @@ -21,6 +21,7 @@ public class CompanyTreePO { private String title; private boolean isLeaf; private String key; + private boolean disabled; public boolean getIsLeaf() { return isLeaf; diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 3d0c6cb5..cf7aa53d 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -466,9 +466,9 @@ public class ChartServiceImpl extends Service implements ChartService { 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()); + departmentTree.add(CompanyTreePO.builder().id(rs.getString("id")).pId(rs.getString("pId")).disabled(!rs.getString("id").startsWith("d")).value(rs.getString("value")).title(rs.getString("title")).isLeaf(judgeTreeLeaf(versionId, dimension, rs.getString("id"))).build()); } - result.put("companyTree", departmentTree); + result.put("departmentTree", departmentTree); result.put("api_status", true); return result; } -- 2.40.0.windows.1 From 9a6f0a845ee6782275c92effb982cc219932e8f5 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 31 Jul 2023 17:45:42 +0800 Subject: [PATCH 57/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E6=9E=B6=E6=9E=84=E5=9B=BE=E6=A0=91=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E3=80=81BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/chart/CompanyTreePO.java | 4 +++ .../organization/entity/chart/TreeSelect.java | 19 +++++++++----- .../service/impl/ChartServiceImpl.java | 26 +++++++++++-------- 3 files changed, 31 insertions(+), 18 deletions(-) diff --git a/src/com/engine/organization/entity/chart/CompanyTreePO.java b/src/com/engine/organization/entity/chart/CompanyTreePO.java index 6b3520cc..c5c3dd1e 100644 --- a/src/com/engine/organization/entity/chart/CompanyTreePO.java +++ b/src/com/engine/organization/entity/chart/CompanyTreePO.java @@ -34,4 +34,8 @@ public class CompanyTreePO { public String getKey() { return id; } + + public String getValue() { + return id; + } } diff --git a/src/com/engine/organization/entity/chart/TreeSelect.java b/src/com/engine/organization/entity/chart/TreeSelect.java index cd7099f7..8e3da768 100644 --- a/src/com/engine/organization/entity/chart/TreeSelect.java +++ b/src/com/engine/organization/entity/chart/TreeSelect.java @@ -1,5 +1,6 @@ package com.engine.organization.entity.chart; +import com.alibaba.fastjson.annotation.JSONField; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -25,12 +26,16 @@ public class TreeSelect { public static final String SUB_COMPANY = "1"; public static final String DEPARTMENT = "2"; + @JSONField(ordinal = 1) private String key; - private String id; + @JSONField(ordinal = 2) private String title; + @JSONField(ordinal = 3) + private String id; + @JSONField(ordinal = 4) + private List children; private String type; private String canceled; - private List children; private boolean disabled; private String cancelSql; @@ -42,24 +47,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"; + String sql = "select id ,subcompanyname ,canceled from hrmsubcompany where " + getCancelSqlStr() + " and (supsubcomid is null or supsubcomid = 0) and companyid = ? order by showorder,id"; 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"; + String sql = "select id ,subcompanyname ,canceled from hrmsubcompany where " + getCancelSqlStr() + " and supsubcomid = ? order by showorder,id"; 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"; + sql = "select id,departmentname ,canceled from hrmdepartment where " + getCancelSqlStr() + " and (supdepid is null or supdepid =0) and subcompanyid1 = ? order by showorder,id"; 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"; + String sql = "select id,departmentname ,canceled from hrmdepartment where " + getCancelSqlStr() + " and supdepid = ? order by showorder,id"; 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()); @@ -83,7 +88,7 @@ public class TreeSelect { } public String getId() { - return key; + return getKey(); } public String getCanceled() { diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index cf7aa53d..eb5ec065 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -476,15 +476,17 @@ public class ChartServiceImpl extends Service implements ChartService { @Override public Map getMovingTree(Map params) { RecordSet rs = new RecordSet(); + rs.executeQuery("select id,companyname from hrmcompany"); + TreeSelect companyTree = null; + List expandedKeys = new ArrayList<>(); 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) 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()); + if(rs.next()){ + companyTree = TreeSelect.builder().key(rs.getString("id")).title(rs.getString("companyname")).type(TreeSelect.COMPANY).cancelSql(canceled).build(); + expandedKeys.add(companyTree.getKey()); } Map result = new HashMap<>(3); - result.put("movingTree", movingTrees); - result.put("expandedKeys", movingTrees.stream().filter(item -> CollectionUtils.isNotEmpty(item.getChildren())).map(TreeSelect::getKey).collect(Collectors.toList())); + result.put("movingTree", Collections.singletonList(companyTree)); + result.put("expandedKeys", expandedKeys); result.put("api_status", true); return result; } @@ -1288,6 +1290,7 @@ public class ChartServiceImpl extends Service implements ChartService { 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; } + sql += " order by showorder,id "; } 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) { @@ -1298,18 +1301,19 @@ public class ChartServiceImpl extends Service implements ChartService { } } 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; + sql = "select id as id, id as value, subcompanyname as title, supsubcomid as pId, showorder 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, showorder from hrmdepartment where (canceled is null or canceled != '1') and (supdepid is null or supdepid =0) 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; + " 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 (supdepid is null or supdepid =0) and" + dbType.ifNull("subcompanyid1", "0") + " = " + subCompany; } + sql += " order by showorder,id "; } 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; + " 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 (supdepartmentid is null or supdepartmentid =0) 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; + " 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 (supdepid is null or supdepid =0) and" + dbType.ifNull("subcompanyid", "0") + " = " + subCompany; } // 添加时间轴条件 sql += " and versionid = " + versionId; -- 2.40.0.windows.1 From 32029788c4b4f11c4768c539818b2806a91dadc7 Mon Sep 17 00:00:00 2001 From: Mlin Date: Tue, 1 Aug 2023 09:41:43 +0800 Subject: [PATCH 58/87] =?UTF-8?q?=E9=83=A8=E9=97=A8=E6=8B=96=E6=8B=BD?= =?UTF-8?q?=E8=BD=AC=E7=A7=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/DepartmentService.java | 7 ++ .../service/impl/DepartmentServiceImpl.java | 79 +++++++++++++++++++ .../web/DepartmentController.java | 12 +++ .../wrapper/DepartmentWrapper.java | 16 ++++ 4 files changed, 114 insertions(+) diff --git a/src/com/engine/organization/service/DepartmentService.java b/src/com/engine/organization/service/DepartmentService.java index 04791771..f60f2c2a 100644 --- a/src/com/engine/organization/service/DepartmentService.java +++ b/src/com/engine/organization/service/DepartmentService.java @@ -160,4 +160,11 @@ public interface DepartmentService { */ int moveDepartment(DepartmentMoveParam moveParam); + + /** + * 拖拽转移部门 + * @param params + * @return + */ + int dragDepartment(Map params); } diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index 93218c65..a353edf3 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -578,6 +578,9 @@ public class DepartmentServiceImpl extends Service implements DepartmentService Map map = new HashMap<>(); map.put("id", Util.null2String(mergeParam.getId())); ServiceUtil.getService(OrganizationServiceImpl.class, user).doDepartmentCancel(map, user); + // 删除原部门下的岗位 + + // 更新组织架构图 // new DepartmentTriggerRunnable(mergeDepartment).run(); // 更新部门合并后名称 @@ -662,6 +665,82 @@ public class DepartmentServiceImpl extends Service implements DepartmentService return 1; } + @Override + public int dragDepartment(Map params) { +// OrganizationAssert.notNull(params.get("sourcekey"), "请选择一个拖拽源"); +// OrganizationAssert.notNull(params.get("targetkey"), "请选择一个拖拽目的地"); + + String sourceKey = Util.null2String(params.get("sourcekey"));// 原目标 + String targetKey = Util.null2String(params.get("targetkey"));// 目的地 + String dragPostion = Util.null2String(params.get("dragpostion"));// 0:目的里面 1:目的外边 + + DepartmentPO deptById = getDepartmentMapper().getDeptById(Util.getIntValue(sourceKey.substring(1))); + + + RecordSet recordSet = new RecordSet(); + // 部门不能到集团下 + + String targetType = targetKey.substring(0, 1); + String targetId = targetKey.substring(1); + String supId = null; + String querySupIdSql = null; + if ("s".equals(targetType)) {// 分部 + querySupIdSql = "select supsubcomid as supId from hrmsubcompany where id = ?"; + } else { + querySupIdSql = "select supdepid as supId from hrmdepartment where id = ?"; + } + if ("1".equals(dragPostion)) { + recordSet.executeQuery(querySupIdSql, targetId); + if (recordSet.next()) { + supId = Util.null2String(recordSet.getString("supId")); + } + OrganizationAssert.isFalse("0".equals(supId), "部门不能直接拖拽至集团下"); + + if ("s".equals(targetType)) { + // 转移到分部外 + deptById.setSubCompanyId1(Util.getIntValue(supId)); + deptById.setSupDepId(null); + } else { + // 转移到部门外 + List deptListByPId = getDepartmentMapper().getDeptListByPId(Util.getIntValue(supId)); + Set disableIds = new HashSet<>(); + disableIds.add(Util.getIntValue(sourceKey.substring(1))); + if (CollectionUtils.isNotEmpty(deptListByPId)) { + addDisableIds(disableIds, deptListByPId); + } + OrganizationAssert.isFalse(disableIds.contains(Util.getIntValue(targetId)), "请勿选择当前部门本身及其子部门"); + deptById.setSupDepId(Util.getIntValue(supId)); + DepartmentPO parentDepartment = getDepartmentMapper().getDeptById(Util.getIntValue(supId)); + deptById.setSubCompanyId1(parentDepartment.getSubCompanyId1()); + } + + } else { + if ("s".equals(targetType)) { + //转移到分部下 + deptById.setSubCompanyId1(Util.getIntValue(targetId)); + deptById.setSupDepId(null); + } else { + //转移到部门下 + List deptListByPId = getDepartmentMapper().getDeptListByPId(Util.getIntValue(targetId)); + Set disableIds = new HashSet<>(); + disableIds.add(Util.getIntValue(sourceKey.substring(1))); + if (CollectionUtils.isNotEmpty(deptListByPId)) { + addDisableIds(disableIds, deptListByPId); + } + OrganizationAssert.isFalse(disableIds.contains(Util.getIntValue(targetId)), "请勿选择当前部门本身及其子部门"); + deptById.setSupDepId(Util.getIntValue(targetId)); + DepartmentPO parentDepartment = getDepartmentMapper().getDeptById(Util.getIntValue(targetId)); + deptById.setSubCompanyId1(parentDepartment.getSubCompanyId1()); + } + } + // 更新EC部门 + updateEcDepartment(deptById); + // 刷新岗位分部 + List deptList = getDepartmentMapper().getDeptListByPId(deptById.getId()); + forbiddenChildTag(deptById.getSubCompanyId1(), deptList); + return 1; + } + /** * 获取所有子部门id * diff --git a/src/com/engine/organization/web/DepartmentController.java b/src/com/engine/organization/web/DepartmentController.java index bba9f0c9..99397e1f 100644 --- a/src/com/engine/organization/web/DepartmentController.java +++ b/src/com/engine/organization/web/DepartmentController.java @@ -332,5 +332,17 @@ public class DepartmentController { return ReturnResult.exceptionHandle(e); } } + @POST + @Path("/dragDepartment") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult dragDepartment(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map params = ParamUtil.request2Map(request); + return ReturnResult.successed(getDepartmentWrapper(user).dragDepartment(params)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } } diff --git a/src/com/engine/organization/wrapper/DepartmentWrapper.java b/src/com/engine/organization/wrapper/DepartmentWrapper.java index 0fb057db..1f7441b5 100644 --- a/src/com/engine/organization/wrapper/DepartmentWrapper.java +++ b/src/com/engine/organization/wrapper/DepartmentWrapper.java @@ -21,6 +21,7 @@ import com.engine.organization.util.db.MapperProxyFactory; import com.engine.organization.util.page.PageInfo; import com.engine.organization.util.response.ReturnResult; import org.apache.commons.lang.StringUtils; +import weaver.general.Util; import weaver.hrm.User; import java.util.Collection; @@ -259,4 +260,19 @@ public class DepartmentWrapper extends OrganizationWrapper { }.getClass(), departmentPO.getDepartmentName(), JSON.toJSONString(moveParam), departmentPO, getDepartmentMapper().getDeptById(departmentPO.getId())); return moveDepartment; } + + /** + * 拖拽转移到指定分部或部门 + * + * @param moveParam + * @return + */ + @Log(operateType = OperateTypeEnum.MOVE, operateDesc = "拖拽转移部门", operateModule = LogModuleNameEnum.DEPARTMENT) + public int dragDepartment(Map params) { + DepartmentPO departmentPO = getDepartmentMapper().getDeptById(Util.getIntValue(Util.null2String(params.get("sourceKey")).substring(1))); + int moveDepartment = getDepartmentService(user).dragDepartment(params); + writeOperateLog(new Object() { + }.getClass(), departmentPO.getDepartmentName(), JSON.toJSONString(params), departmentPO, getDepartmentMapper().getDeptById(departmentPO.getId())); + return moveDepartment; + } } -- 2.40.0.windows.1 From 63491e9906c27e185ed66c5f97f782f4fef746cc Mon Sep 17 00:00:00 2001 From: Mlin Date: Tue, 1 Aug 2023 11:20:28 +0800 Subject: [PATCH 59/87] =?UTF-8?q?=E9=83=A8=E9=97=A8=E6=8B=96=E6=8B=BD?= =?UTF-8?q?=E8=BD=AC=E7=A7=BB=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../department/param/DepartmentDragParam.java | 16 +++++++++++ .../service/DepartmentService.java | 2 +- .../service/impl/DepartmentServiceImpl.java | 27 ++++++++++--------- .../web/DepartmentController.java | 4 +-- .../wrapper/DepartmentWrapper.java | 8 +++--- 5 files changed, 38 insertions(+), 19 deletions(-) create mode 100644 src/com/engine/organization/entity/department/param/DepartmentDragParam.java diff --git a/src/com/engine/organization/entity/department/param/DepartmentDragParam.java b/src/com/engine/organization/entity/department/param/DepartmentDragParam.java new file mode 100644 index 00000000..b6b80fd3 --- /dev/null +++ b/src/com/engine/organization/entity/department/param/DepartmentDragParam.java @@ -0,0 +1,16 @@ +package com.engine.organization.entity.department.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class DepartmentDragParam { + private Integer dropPosition; + private String sourcekey; + private String targetkey; +} diff --git a/src/com/engine/organization/service/DepartmentService.java b/src/com/engine/organization/service/DepartmentService.java index f60f2c2a..3e3bf813 100644 --- a/src/com/engine/organization/service/DepartmentService.java +++ b/src/com/engine/organization/service/DepartmentService.java @@ -166,5 +166,5 @@ public interface DepartmentService { * @param params * @return */ - int dragDepartment(Map params); + int dragDepartment(DepartmentDragParam departmentDragParam); } diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index a353edf3..436254fa 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -666,13 +666,13 @@ public class DepartmentServiceImpl extends Service implements DepartmentService } @Override - public int dragDepartment(Map params) { + public int dragDepartment(DepartmentDragParam departmentDragParam) { // OrganizationAssert.notNull(params.get("sourcekey"), "请选择一个拖拽源"); // OrganizationAssert.notNull(params.get("targetkey"), "请选择一个拖拽目的地"); - String sourceKey = Util.null2String(params.get("sourcekey"));// 原目标 - String targetKey = Util.null2String(params.get("targetkey"));// 目的地 - String dragPostion = Util.null2String(params.get("dragpostion"));// 0:目的里面 1:目的外边 + String sourceKey = Util.null2String(departmentDragParam.getSourcekey());// 原目标 + String targetKey = Util.null2String(departmentDragParam.getTargetkey());// 目的地 + String dragPostion = Util.null2String(departmentDragParam.getDropPosition());// 0:目的里面 1:目的外边 DepartmentPO deptById = getDepartmentMapper().getDeptById(Util.getIntValue(sourceKey.substring(1))); @@ -682,21 +682,24 @@ public class DepartmentServiceImpl extends Service implements DepartmentService String targetType = targetKey.substring(0, 1); String targetId = targetKey.substring(1); - String supId = null; - String querySupIdSql = null; + String supComId = ""; + String supId = ""; + String querySupIdSql; if ("s".equals(targetType)) {// 分部 - querySupIdSql = "select supsubcomid as supId from hrmsubcompany where id = ?"; - } else { - querySupIdSql = "select supdepid as supId from hrmdepartment where id = ?"; + querySupIdSql = "select companyId as supComId,supsubcomid as supId from hrmsubcompany where id = ?"; + + }else { + querySupIdSql = "select subcompanyid1 as supComId,supdepid as supId from hrmdepartment where id = ?"; } if ("1".equals(dragPostion)) { recordSet.executeQuery(querySupIdSql, targetId); if (recordSet.next()) { supId = Util.null2String(recordSet.getString("supId")); + supComId = Util.null2String(recordSet.getString("supComId")); } - OrganizationAssert.isFalse("0".equals(supId), "部门不能直接拖拽至集团下"); if ("s".equals(targetType)) { + OrganizationAssert.isFalse("0".equals(supId), "部门不能直接拖拽至集团下"); // 转移到分部外 deptById.setSubCompanyId1(Util.getIntValue(supId)); deptById.setSupDepId(null); @@ -708,9 +711,9 @@ public class DepartmentServiceImpl extends Service implements DepartmentService if (CollectionUtils.isNotEmpty(deptListByPId)) { addDisableIds(disableIds, deptListByPId); } - OrganizationAssert.isFalse(disableIds.contains(Util.getIntValue(targetId)), "请勿选择当前部门本身及其子部门"); +// OrganizationAssert.isFalse(disableIds.contains(Util.getIntValue(targetId)), "请勿选择当前部门本身及其子部门"); deptById.setSupDepId(Util.getIntValue(supId)); - DepartmentPO parentDepartment = getDepartmentMapper().getDeptById(Util.getIntValue(supId)); + DepartmentPO parentDepartment = getDepartmentMapper().getDeptById(Util.getIntValue(supId)==0 ? Util.getIntValue(supComId) : Util.getIntValue(supId)); deptById.setSubCompanyId1(parentDepartment.getSubCompanyId1()); } diff --git a/src/com/engine/organization/web/DepartmentController.java b/src/com/engine/organization/web/DepartmentController.java index 99397e1f..3e2dad8c 100644 --- a/src/com/engine/organization/web/DepartmentController.java +++ b/src/com/engine/organization/web/DepartmentController.java @@ -335,11 +335,11 @@ public class DepartmentController { @POST @Path("/dragDepartment") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult dragDepartment(@Context HttpServletRequest request, @Context HttpServletResponse response) { + public ReturnResult dragDepartment(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DepartmentDragParam departmentDragParam) { try { User user = HrmUserVarify.getUser(request, response); Map params = ParamUtil.request2Map(request); - return ReturnResult.successed(getDepartmentWrapper(user).dragDepartment(params)); + return ReturnResult.successed(getDepartmentWrapper(user).dragDepartment(departmentDragParam)); } catch (Exception e) { return ReturnResult.exceptionHandle(e); } diff --git a/src/com/engine/organization/wrapper/DepartmentWrapper.java b/src/com/engine/organization/wrapper/DepartmentWrapper.java index 1f7441b5..742db88c 100644 --- a/src/com/engine/organization/wrapper/DepartmentWrapper.java +++ b/src/com/engine/organization/wrapper/DepartmentWrapper.java @@ -268,11 +268,11 @@ public class DepartmentWrapper extends OrganizationWrapper { * @return */ @Log(operateType = OperateTypeEnum.MOVE, operateDesc = "拖拽转移部门", operateModule = LogModuleNameEnum.DEPARTMENT) - public int dragDepartment(Map params) { - DepartmentPO departmentPO = getDepartmentMapper().getDeptById(Util.getIntValue(Util.null2String(params.get("sourceKey")).substring(1))); - int moveDepartment = getDepartmentService(user).dragDepartment(params); + public int dragDepartment(DepartmentDragParam departmentDragParam) { + DepartmentPO departmentPO = getDepartmentMapper().getDeptById(Util.getIntValue(Util.null2String(departmentDragParam.getSourcekey()).substring(1))); + int moveDepartment = getDepartmentService(user).dragDepartment(departmentDragParam); writeOperateLog(new Object() { - }.getClass(), departmentPO.getDepartmentName(), JSON.toJSONString(params), departmentPO, getDepartmentMapper().getDeptById(departmentPO.getId())); + }.getClass(), departmentPO.getDepartmentName(), JSON.toJSONString(departmentDragParam), departmentPO, getDepartmentMapper().getDeptById(departmentPO.getId())); return moveDepartment; } } -- 2.40.0.windows.1 From 04826fcaa43ef3da456a761af3fc06b6c3e4c267 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 1 Aug 2023 14:05:17 +0800 Subject: [PATCH 60/87] =?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=B1=95=E5=BC=80=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/entity/chart/TreeSelect.java | 14 ++--- .../service/impl/ChartServiceImpl.java | 54 +++++++++++++++++-- 2 files changed, 57 insertions(+), 11 deletions(-) diff --git a/src/com/engine/organization/entity/chart/TreeSelect.java b/src/com/engine/organization/entity/chart/TreeSelect.java index 8e3da768..c3775af7 100644 --- a/src/com/engine/organization/entity/chart/TreeSelect.java +++ b/src/com/engine/organization/entity/chart/TreeSelect.java @@ -38,7 +38,7 @@ public class TreeSelect { private String canceled; private boolean disabled; - private String cancelSql; + private String showCanceled; public List getChildren() { if (null != children) { @@ -50,24 +50,24 @@ public class TreeSelect { String sql = "select id ,subcompanyname ,canceled from hrmsubcompany where " + getCancelSqlStr() + " and (supsubcomid is null or supsubcomid = 0) and companyid = ? order by showorder,id"; 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()); + children.add(TreeSelect.builder().key(rs.getString("id")).title(rs.getString("subcompanyname")).canceled(rs.getString("canceled")).type(SUB_COMPANY).showCanceled(showCanceled).build()); } } else if (SUB_COMPANY.equals(type)) { String sql = "select id ,subcompanyname ,canceled from hrmsubcompany where " + getCancelSqlStr() + " and supsubcomid = ? order by showorder,id"; 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()); + children.add(TreeSelect.builder().key(rs.getString("id")).title(rs.getString("subcompanyname")).canceled(rs.getString("canceled")).type(SUB_COMPANY).showCanceled(showCanceled).build()); } sql = "select id,departmentname ,canceled from hrmdepartment where " + getCancelSqlStr() + " and (supdepid is null or supdepid =0) and subcompanyid1 = ? order by showorder,id"; 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()); + children.add(TreeSelect.builder().key(rs.getString("id")).title(rs.getString("departmentname")).canceled(rs.getString("canceled")).type(DEPARTMENT).showCanceled(showCanceled).build()); } } else if (DEPARTMENT.equals(type)) { String sql = "select id,departmentname ,canceled from hrmdepartment where " + getCancelSqlStr() + " and supdepid = ? order by showorder,id"; 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()); + children.add(TreeSelect.builder().key(rs.getString("id")).title(rs.getString("departmentname")).canceled(rs.getString("canceled")).type(DEPARTMENT).showCanceled(showCanceled).build()); } } return CollectionUtils.isEmpty(children) ? null : children; @@ -98,12 +98,12 @@ public class TreeSelect { return canceled; } - public String getCancelSql() { + public String getShowCanceled() { return null; } private String getCancelSqlStr() { - if (StringUtils.isNotBlank(cancelSql) && "1".equals(cancelSql)) { + if (StringUtils.isNotBlank(showCanceled) && "1".equals(showCanceled)) { 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 eb5ec065..7c9faca7 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -20,6 +20,8 @@ import weaver.conn.RecordSet; import weaver.conn.RecordSetTrans; import weaver.general.Util; import weaver.hrm.User; +import weaver.hrm.company.DepartmentComInfo; +import weaver.hrm.company.SubCompanyComInfo; import weaver.hrm.resource.ResourceComInfo; import java.time.LocalDate; @@ -479,11 +481,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")); + String showCanceled = Util.null2String(params.get("showCanceled")); + String expandedKeyStr = Util.null2String(params.get("expandedKeys")); if(rs.next()){ - companyTree = TreeSelect.builder().key(rs.getString("id")).title(rs.getString("companyname")).type(TreeSelect.COMPANY).cancelSql(canceled).build(); + companyTree = TreeSelect.builder().key(rs.getString("id")).title(rs.getString("companyname")).type(TreeSelect.COMPANY).showCanceled(showCanceled).build(); expandedKeys.add(companyTree.getKey()); } + // 所有需展开节点,同时需查询父级部门、分部ID + addParentTreeId(expandedKeys, expandedKeyStr); Map result = new HashMap<>(3); result.put("movingTree", Collections.singletonList(companyTree)); result.put("expandedKeys", expandedKeys); @@ -497,9 +502,9 @@ 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")); + String showCanceled = Util.null2String(params.get("showCanceled")); if(rs.next()){ - companyTree = TreeSelect.builder().key(rs.getString("id")).title(rs.getString("companyname")).type(TreeSelect.COMPANY).cancelSql(canceled).build(); + companyTree = TreeSelect.builder().key(rs.getString("id")).title(rs.getString("companyname")).type(TreeSelect.COMPANY).showCanceled(showCanceled).build(); expandedKeys = companyTree.getChildren().stream().filter(item -> CollectionUtils.isNotEmpty(item.getChildren())).map(TreeSelect::getKey).collect(Collectors.toList()); expandedKeys.add(companyTree.getKey()); } @@ -511,6 +516,47 @@ public class ChartServiceImpl extends Service implements ChartService { return result; } + /** + * 添加树结构所有上级节点 + * + * @param expandedKeys 完整的上级ID集合 + * @param expandedKeyStr 需要展开的树ID + */ + private void addParentTreeId(List expandedKeys,String expandedKeyStr){ + if(StringUtils.isNotBlank(expandedKeyStr)) { + String[] split = expandedKeyStr.split(","); + for (String s : split) { + try { + // 上级分部ID + String subcompanyid1 = new DepartmentComInfo().getSubcompanyid1(s); + String allSupCompany = new SubCompanyComInfo().getAllSupCompany(subcompanyid1); + String[] array = allSupCompany.split(","); + for (String supCompany : array) { + if (StringUtils.isBlank(supCompany)) { + continue; + } + expandedKeys.add("s" + supCompany); + } + expandedKeys.add("s" + subcompanyid1); + + // 上级部门ID + String allSupDepartment = new DepartmentComInfo().getAllSupDepartment(s); + array = allSupDepartment.split(","); + for (String supDepartment : array) { + if (StringUtils.isBlank(supDepartment)) { + continue; + } + expandedKeys.add("d" + supDepartment); + } + + expandedKeys.add("d" + s); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + } + } + /** * 树节点是否禁用 * -- 2.40.0.windows.1 From 2fdd60487211ccdd3e12d65f6abde26545b8e7ce Mon Sep 17 00:00:00 2001 From: Mlin Date: Tue, 1 Aug 2023 15:17:59 +0800 Subject: [PATCH 61/87] =?UTF-8?q?=E9=83=A8=E9=97=A8=E6=8B=96=E6=8B=BD:?= =?UTF-8?q?=E5=88=86=E9=83=A8=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DepartmentServiceImpl.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index 436254fa..aa4b353e 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -680,11 +680,14 @@ public class DepartmentServiceImpl extends Service implements DepartmentService RecordSet recordSet = new RecordSet(); // 部门不能到集团下 + String sourceType = sourceKey.substring(0,1); + String sourceId = sourceKey.substring(1); String targetType = targetKey.substring(0, 1); String targetId = targetKey.substring(1); String supComId = ""; String supId = ""; String querySupIdSql; + OrganizationAssert.isFalse( "s".equals(sourceType)&&"d".equals(targetType),"分部不能转移到部门下"); if ("s".equals(targetType)) {// 分部 querySupIdSql = "select companyId as supComId,supsubcomid as supId from hrmsubcompany where id = ?"; @@ -720,8 +723,10 @@ public class DepartmentServiceImpl extends Service implements DepartmentService } else { if ("s".equals(targetType)) { //转移到分部下 - deptById.setSubCompanyId1(Util.getIntValue(targetId)); - deptById.setSupDepId(null); + Map params = new HashMap<>(); + params.put("id",sourceId); + params.put("supsubcomid",targetId); + new OrganizationSyncEc(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.UPDATE, params).sync(); } else { //转移到部门下 List deptListByPId = getDepartmentMapper().getDeptListByPId(Util.getIntValue(targetId)); @@ -734,13 +739,13 @@ public class DepartmentServiceImpl extends Service implements DepartmentService deptById.setSupDepId(Util.getIntValue(targetId)); DepartmentPO parentDepartment = getDepartmentMapper().getDeptById(Util.getIntValue(targetId)); deptById.setSubCompanyId1(parentDepartment.getSubCompanyId1()); + // 更新EC部门 + updateEcDepartment(deptById); + // 刷新岗位分部 + List deptList = getDepartmentMapper().getDeptListByPId(deptById.getId()); + forbiddenChildTag(deptById.getSubCompanyId1(), deptList); } } - // 更新EC部门 - updateEcDepartment(deptById); - // 刷新岗位分部 - List deptList = getDepartmentMapper().getDeptListByPId(deptById.getId()); - forbiddenChildTag(deptById.getSubCompanyId1(), deptList); return 1; } -- 2.40.0.windows.1 From 123f7eaea6324ff75469e2ad43ca7324c06c3560 Mon Sep 17 00:00:00 2001 From: Mlin Date: Tue, 1 Aug 2023 16:05:22 +0800 Subject: [PATCH 62/87] =?UTF-8?q?=E9=83=A8=E9=97=A8=E6=8B=96=E6=8B=BD?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/service/impl/DepartmentServiceImpl.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index aa4b353e..fde416c0 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -727,6 +727,11 @@ public class DepartmentServiceImpl extends Service implements DepartmentService params.put("id",sourceId); params.put("supsubcomid",targetId); new OrganizationSyncEc(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.UPDATE, params).sync(); + } else if ("c".equals(targetType)) { + Map params = new HashMap<>(); + params.put("id",sourceId); + params.put("supsubcomid","0"); + new OrganizationSyncEc(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.UPDATE, params).sync(); } else { //转移到部门下 List deptListByPId = getDepartmentMapper().getDeptListByPId(Util.getIntValue(targetId)); @@ -735,7 +740,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService if (CollectionUtils.isNotEmpty(deptListByPId)) { addDisableIds(disableIds, deptListByPId); } - OrganizationAssert.isFalse(disableIds.contains(Util.getIntValue(targetId)), "请勿选择当前部门本身及其子部门"); + OrganizationAssert.isFalse( "d".equals(targetType)&&disableIds.contains(Util.getIntValue(targetId)), "请勿选择当前部门本身及其子部门"); deptById.setSupDepId(Util.getIntValue(targetId)); DepartmentPO parentDepartment = getDepartmentMapper().getDeptById(Util.getIntValue(targetId)); deptById.setSubCompanyId1(parentDepartment.getSubCompanyId1()); -- 2.40.0.windows.1 From 33dda680df7a4bd99a8db1b0e1fac2ebefc97a73 Mon Sep 17 00:00:00 2001 From: Mlin Date: Wed, 2 Aug 2023 10:03:46 +0800 Subject: [PATCH 63/87] =?UTF-8?q?=E9=83=A8=E9=97=A8=E6=8B=96=E6=8B=BD?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/service/impl/DepartmentServiceImpl.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index fde416c0..2c513b23 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -694,7 +694,9 @@ public class DepartmentServiceImpl extends Service implements DepartmentService }else { querySupIdSql = "select subcompanyid1 as supComId,supdepid as supId from hrmdepartment where id = ?"; } - if ("1".equals(dragPostion)) { + if ("-1".equals(dragPostion)) { + OrganizationAssert.isFalse( true,"分部、部门不能转移至与集团平级"); + }else if ("1".equals(dragPostion)) { recordSet.executeQuery(querySupIdSql, targetId); if (recordSet.next()) { supId = Util.null2String(recordSet.getString("supId")); @@ -702,7 +704,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService } if ("s".equals(targetType)) { - OrganizationAssert.isFalse("0".equals(supId), "部门不能直接拖拽至集团下"); + OrganizationAssert.isFalse("0".equals(supId), "部门不能拖拽至集团下"); // 转移到分部外 deptById.setSubCompanyId1(Util.getIntValue(supId)); deptById.setSupDepId(null); @@ -728,6 +730,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService params.put("supsubcomid",targetId); new OrganizationSyncEc(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.UPDATE, params).sync(); } else if ("c".equals(targetType)) { + OrganizationAssert.isFalse("d".equals(sourceType),"部门不能拖拽到集团下"); Map params = new HashMap<>(); params.put("id",sourceId); params.put("supsubcomid","0"); -- 2.40.0.windows.1 From 1ac72f3519f6f6ff4be550854505b1949705eeb0 Mon Sep 17 00:00:00 2001 From: Mlin Date: Wed, 2 Aug 2023 10:51:59 +0800 Subject: [PATCH 64/87] =?UTF-8?q?=E9=83=A8=E9=97=A8=E6=8B=96=E6=8B=BD?= =?UTF-8?q?=E4=BC=98=E5=8C=960802?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/service/impl/DepartmentServiceImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index 2c513b23..bbcff0dc 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -694,9 +694,9 @@ public class DepartmentServiceImpl extends Service implements DepartmentService }else { querySupIdSql = "select subcompanyid1 as supComId,supdepid as supId from hrmdepartment where id = ?"; } - if ("-1".equals(dragPostion)) { - OrganizationAssert.isFalse( true,"分部、部门不能转移至与集团平级"); - }else if ("1".equals(dragPostion)) { + + OrganizationAssert.isFalse("-1".equals(dragPostion),"分部、部门不能转移至与集团平级"); + if ("1".equals(dragPostion)) { recordSet.executeQuery(querySupIdSql, targetId); if (recordSet.next()) { supId = Util.null2String(recordSet.getString("supId")); -- 2.40.0.windows.1 From d068aa6bc1cb5962993c54e12dead1874136fc6f Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 2 Aug 2023 11:29:19 +0800 Subject: [PATCH 65/87] =?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=B1=95=E5=BC=80=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=AE=8C=E5=96=84=E3=80=81=E5=88=86=E9=83=A8=E5=88=A0?= =?UTF-8?q?=E9=99=A4BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ChartServiceImpl.java | 42 ++++++++++--------- .../service/impl/CompServiceImpl.java | 9 ++++ 2 files changed, 31 insertions(+), 20 deletions(-) diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 94b6d9ca..4f005b5a 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -523,15 +523,16 @@ public class ChartServiceImpl extends Service implements ChartService { * @param expandedKeys 完整的上级ID集合 * @param expandedKeyStr 需要展开的树ID */ - private void addParentTreeId(List expandedKeys,String expandedKeyStr){ - if(StringUtils.isNotBlank(expandedKeyStr)) { - String[] split = expandedKeyStr.split(","); - for (String s : split) { - try { - // 上级分部ID - String subcompanyid1 = new DepartmentComInfo().getSubcompanyid1(s); + private void addParentTreeId(List expandedKeys,String expandedKeyStr) { + if (StringUtils.isNotBlank(expandedKeyStr)) { + expandedKeyStr = expandedKeyStr.replace("d", ""); + try { + String[] array; + // 上级分部ID + String subcompanyid1 = new DepartmentComInfo().getSubcompanyid1(expandedKeyStr); + if (StringUtils.isNotBlank(subcompanyid1)) { String allSupCompany = new SubCompanyComInfo().getAllSupCompany(subcompanyid1); - String[] array = allSupCompany.split(","); + array = allSupCompany.split(","); for (String supCompany : array) { if (StringUtils.isBlank(supCompany)) { continue; @@ -539,22 +540,23 @@ public class ChartServiceImpl extends Service implements ChartService { expandedKeys.add("s" + supCompany); } expandedKeys.add("s" + subcompanyid1); + } - // 上级部门ID - String allSupDepartment = new DepartmentComInfo().getAllSupDepartment(s); - array = allSupDepartment.split(","); - for (String supDepartment : array) { - if (StringUtils.isBlank(supDepartment)) { - continue; - } - expandedKeys.add("d" + supDepartment); + // 上级部门ID + String allSupDepartment = new DepartmentComInfo().getAllSupDepartment(expandedKeyStr); + array = allSupDepartment.split(","); + for (String supDepartment : array) { + if (StringUtils.isBlank(supDepartment)) { + continue; } - - expandedKeys.add("d" + s); - } catch (Exception e) { - throw new RuntimeException(e); + expandedKeys.add("d" + supDepartment); } + + expandedKeys.add("d" + expandedKeyStr); + } catch (Exception e) { + throw new RuntimeException(e); } + } } diff --git a/src/com/engine/organization/service/impl/CompServiceImpl.java b/src/com/engine/organization/service/impl/CompServiceImpl.java index 94933d3d..2c7aabb4 100644 --- a/src/com/engine/organization/service/impl/CompServiceImpl.java +++ b/src/com/engine/organization/service/impl/CompServiceImpl.java @@ -153,6 +153,15 @@ public class CompServiceImpl extends Service implements CompService { @Override public Map deleteByIds(Map params) { HasRightUtil.hasRight(user, RIGHT_NAME, false); + RecordSet rs = new RecordSet(); + HashMap returnMap = new HashMap<>(2); + rs.executeQuery("select id from HrmDepartment where subcompanyid1 =" + Util.null2String(params.get("id"))); + if (rs.next()) { + returnMap.put("status", "-1"); + returnMap.put("message", SystemEnv.getHtmlLabelName(81683, user.getLanguage())); + return returnMap; + } + return ServiceUtil.getService(OrganizationServiceImpl.class, user).delSubCompany(params, user); } -- 2.40.0.windows.1 From 3bb8c35fb54212bd83685f07a4ae14171e1eb727 Mon Sep 17 00:00:00 2001 From: Mlin Date: Wed, 2 Aug 2023 11:29:56 +0800 Subject: [PATCH 66/87] =?UTF-8?q?=E9=83=A8=E9=97=A8=E6=8B=96=E6=8B=BD?= =?UTF-8?q?=E4=BC=98=E5=8C=960802?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DepartmentServiceImpl.java | 35 ++++++++----------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index bbcff0dc..bc5f97a1 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -667,35 +667,29 @@ public class DepartmentServiceImpl extends Service implements DepartmentService @Override public int dragDepartment(DepartmentDragParam departmentDragParam) { -// OrganizationAssert.notNull(params.get("sourcekey"), "请选择一个拖拽源"); -// OrganizationAssert.notNull(params.get("targetkey"), "请选择一个拖拽目的地"); String sourceKey = Util.null2String(departmentDragParam.getSourcekey());// 原目标 String targetKey = Util.null2String(departmentDragParam.getTargetkey());// 目的地 String dragPostion = Util.null2String(departmentDragParam.getDropPosition());// 0:目的里面 1:目的外边 - DepartmentPO deptById = getDepartmentMapper().getDeptById(Util.getIntValue(sourceKey.substring(1))); - - RecordSet recordSet = new RecordSet(); - // 部门不能到集团下 - String sourceType = sourceKey.substring(0,1); + // 部门不能到集团下 + String sourceType = sourceKey.substring(0, 1); String sourceId = sourceKey.substring(1); String targetType = targetKey.substring(0, 1); String targetId = targetKey.substring(1); String supComId = ""; String supId = ""; String querySupIdSql; - OrganizationAssert.isFalse( "s".equals(sourceType)&&"d".equals(targetType),"分部不能转移到部门下"); + OrganizationAssert.isFalse("s".equals(sourceType) && "d".equals(targetType), "分部不能转移到部门下"); + OrganizationAssert.isFalse("-1".equals(dragPostion), "分部、部门不能转移至与集团平级"); if ("s".equals(targetType)) {// 分部 querySupIdSql = "select companyId as supComId,supsubcomid as supId from hrmsubcompany where id = ?"; - - }else { + } else { querySupIdSql = "select subcompanyid1 as supComId,supdepid as supId from hrmdepartment where id = ?"; } - OrganizationAssert.isFalse("-1".equals(dragPostion),"分部、部门不能转移至与集团平级"); if ("1".equals(dragPostion)) { recordSet.executeQuery(querySupIdSql, targetId); if (recordSet.next()) { @@ -718,32 +712,31 @@ public class DepartmentServiceImpl extends Service implements DepartmentService } // OrganizationAssert.isFalse(disableIds.contains(Util.getIntValue(targetId)), "请勿选择当前部门本身及其子部门"); deptById.setSupDepId(Util.getIntValue(supId)); - DepartmentPO parentDepartment = getDepartmentMapper().getDeptById(Util.getIntValue(supId)==0 ? Util.getIntValue(supComId) : Util.getIntValue(supId)); + DepartmentPO parentDepartment = getDepartmentMapper().getDeptById(Util.getIntValue(supId) == 0 ? Util.getIntValue(supComId) : Util.getIntValue(supId)); deptById.setSubCompanyId1(parentDepartment.getSubCompanyId1()); } - } else { if ("s".equals(targetType)) { - //转移到分部下 + // 转移到分部下 Map params = new HashMap<>(); - params.put("id",sourceId); - params.put("supsubcomid",targetId); + params.put("id", sourceId); + params.put("supsubcomid", targetId); new OrganizationSyncEc(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.UPDATE, params).sync(); } else if ("c".equals(targetType)) { - OrganizationAssert.isFalse("d".equals(sourceType),"部门不能拖拽到集团下"); + OrganizationAssert.isFalse("d".equals(sourceType), "部门不能拖拽到集团下"); Map params = new HashMap<>(); - params.put("id",sourceId); - params.put("supsubcomid","0"); + params.put("id", sourceId); + params.put("supsubcomid", "0"); new OrganizationSyncEc(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.UPDATE, params).sync(); } else { - //转移到部门下 + // 转移到部门下 List deptListByPId = getDepartmentMapper().getDeptListByPId(Util.getIntValue(targetId)); Set disableIds = new HashSet<>(); disableIds.add(Util.getIntValue(sourceKey.substring(1))); if (CollectionUtils.isNotEmpty(deptListByPId)) { addDisableIds(disableIds, deptListByPId); } - OrganizationAssert.isFalse( "d".equals(targetType)&&disableIds.contains(Util.getIntValue(targetId)), "请勿选择当前部门本身及其子部门"); + OrganizationAssert.isFalse("d".equals(targetType) && disableIds.contains(Util.getIntValue(targetId)), "请勿选择当前部门本身及其子部门"); deptById.setSupDepId(Util.getIntValue(targetId)); DepartmentPO parentDepartment = getDepartmentMapper().getDeptById(Util.getIntValue(targetId)); deptById.setSubCompanyId1(parentDepartment.getSubCompanyId1()); -- 2.40.0.windows.1 From 82d6cc74db41ff188f9798dc457d07d0dcbee1c0 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 2 Aug 2023 14:53:53 +0800 Subject: [PATCH 67/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E6=A0=91BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ChartServiceImpl.java | 57 ++++++++++++------- .../engine/organization/util/db/DBType.java | 6 +- 2 files changed, 38 insertions(+), 25 deletions(-) diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 4f005b5a..e43ee6cb 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -525,34 +525,47 @@ public class ChartServiceImpl extends Service implements ChartService { */ private void addParentTreeId(List expandedKeys,String expandedKeyStr) { if (StringUtils.isNotBlank(expandedKeyStr)) { - expandedKeyStr = expandedKeyStr.replace("d", ""); try { - String[] array; - // 上级分部ID - String subcompanyid1 = new DepartmentComInfo().getSubcompanyid1(expandedKeyStr); - if (StringUtils.isNotBlank(subcompanyid1)) { - String allSupCompany = new SubCompanyComInfo().getAllSupCompany(subcompanyid1); - array = allSupCompany.split(","); + if (expandedKeyStr.startsWith("d")) { + expandedKeyStr = expandedKeyStr.replace("d", ""); + String[] array; + // 上级分部ID + String subcompanyid1 = new DepartmentComInfo().getSubcompanyid1(expandedKeyStr); + if (StringUtils.isNotBlank(subcompanyid1)) { + String allSupCompany = new SubCompanyComInfo().getAllSupCompany(subcompanyid1); + array = allSupCompany.split(","); + for (String supCompany : array) { + if (StringUtils.isBlank(supCompany)) { + continue; + } + expandedKeys.add("s" + supCompany); + } + expandedKeys.add("s" + subcompanyid1); + } + + // 上级部门ID + String allSupDepartment = new DepartmentComInfo().getAllSupDepartment(expandedKeyStr); + array = allSupDepartment.split(","); + for (String supDepartment : array) { + if (StringUtils.isBlank(supDepartment)) { + continue; + } + expandedKeys.add("d" + supDepartment); + } + expandedKeys.add("d" + expandedKeyStr); + } else { + // 上级分部ID + String allSupCompany = new SubCompanyComInfo().getAllSupCompany(expandedKeyStr); + String[] array = allSupCompany.split(","); for (String supCompany : array) { if (StringUtils.isBlank(supCompany)) { continue; } expandedKeys.add("s" + supCompany); } - expandedKeys.add("s" + subcompanyid1); - } + expandedKeys.add("s" + expandedKeyStr); - // 上级部门ID - String allSupDepartment = new DepartmentComInfo().getAllSupDepartment(expandedKeyStr); - array = allSupDepartment.split(","); - for (String supDepartment : array) { - if (StringUtils.isBlank(supDepartment)) { - continue; - } - expandedKeys.add("d" + supDepartment); } - - expandedKeys.add("d" + expandedKeyStr); } catch (Exception e) { throw new RuntimeException(e); } @@ -1350,7 +1363,7 @@ public class ChartServiceImpl extends Service implements ChartService { } } else { if (isSearchCurrent) { - sql = "select id as id, id as value, subcompanyname as title, supsubcomid as pId, showorder from hrmsubcompany where (canceled is null or canceled != '1') and " + dbType.ifNull("supsubcomid", "0") + " = " + subCompany + + sql = "select " + dbType.concat("", "id") + " as id, id as value, subcompanyname as title, supsubcomid as pId, showorder 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, showorder from hrmdepartment where (canceled is null or canceled != '1') and (supdepid is null or supdepid =0) 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 + "' " + @@ -1358,10 +1371,10 @@ public class ChartServiceImpl extends Service implements ChartService { } sql += " order by showorder,id "; } 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 + + sql = "select " + dbType.concat("", "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 (supdepartmentid is null or supdepartmentid =0) 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 + "' " + + sql = "select " + dbType.concat("", "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 (supdepid is null or supdepid =0) and" + dbType.ifNull("subcompanyid", "0") + " = " + subCompany; } // 添加时间轴条件 diff --git a/src/com/engine/organization/util/db/DBType.java b/src/com/engine/organization/util/db/DBType.java index fa12c713..fae51acb 100644 --- a/src/com/engine/organization/util/db/DBType.java +++ b/src/com/engine/organization/util/db/DBType.java @@ -47,7 +47,7 @@ public enum DBType implements DBOperateAdapter { @Override public String concat(String concatStr, String fieldName) { - return " '" + concatStr + "' + " + fieldName; + return " '" + concatStr + "' + cast(" + fieldName + " as varchar) "; } @Override @@ -73,7 +73,7 @@ public enum DBType implements DBOperateAdapter { @Override public String concat(String concatStr, String fieldName) { - return " '" + concatStr + "' ||" + fieldName; + return " '" + concatStr + "' ||" + fieldName + " "; } @Override @@ -99,7 +99,7 @@ public enum DBType implements DBOperateAdapter { @Override public String concat(String concatStr, String fieldName) { - return " '" + concatStr + "' ||" + fieldName; + return " '" + concatStr + "' ||" + fieldName + " "; } @Override -- 2.40.0.windows.1 From 6247129bcf64fc30048c4350b43db5166484750e Mon Sep 17 00:00:00 2001 From: Mlin Date: Wed, 2 Aug 2023 15:04:01 +0800 Subject: [PATCH 68/87] =?UTF-8?q?=E6=8B=96=E6=8B=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DepartmentServiceImpl.java | 35 +++++++++++-------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index bc5f97a1..2345aa79 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -681,21 +681,23 @@ public class DepartmentServiceImpl extends Service implements DepartmentService String targetId = targetKey.substring(1); String supComId = ""; String supId = ""; + String ftype = ""; String querySupIdSql; OrganizationAssert.isFalse("s".equals(sourceType) && "d".equals(targetType), "分部不能转移到部门下"); OrganizationAssert.isFalse("-1".equals(dragPostion), "分部、部门不能转移至与集团平级"); if ("s".equals(targetType)) {// 分部 - querySupIdSql = "select companyId as supComId,supsubcomid as supId from hrmsubcompany where id = ?"; + querySupIdSql = "select companyId as supComId,supsubcomid as supId,'s' as ftype from hrmsubcompany where id = ?"; } else { - querySupIdSql = "select subcompanyid1 as supComId,supdepid as supId from hrmdepartment where id = ?"; + querySupIdSql = "select subcompanyid1 as supComId,supdepid as supId,'d' as ftype from hrmdepartment where id = ?"; } + recordSet.executeQuery(querySupIdSql, targetId); + if (recordSet.next()) { + supId = Util.null2String(recordSet.getString("supId")); + supComId = Util.null2String(recordSet.getString("supComId")); + ftype = Util.null2String(recordSet.getString("ftype")); + } if ("1".equals(dragPostion)) { - recordSet.executeQuery(querySupIdSql, targetId); - if (recordSet.next()) { - supId = Util.null2String(recordSet.getString("supId")); - supComId = Util.null2String(recordSet.getString("supComId")); - } if ("s".equals(targetType)) { OrganizationAssert.isFalse("0".equals(supId), "部门不能拖拽至集团下"); @@ -712,8 +714,9 @@ public class DepartmentServiceImpl extends Service implements DepartmentService } // OrganizationAssert.isFalse(disableIds.contains(Util.getIntValue(targetId)), "请勿选择当前部门本身及其子部门"); deptById.setSupDepId(Util.getIntValue(supId)); - DepartmentPO parentDepartment = getDepartmentMapper().getDeptById(Util.getIntValue(supId) == 0 ? Util.getIntValue(supComId) : Util.getIntValue(supId)); - deptById.setSubCompanyId1(parentDepartment.getSubCompanyId1()); +// DepartmentPO parentDepartment = getDepartmentMapper().getDeptById(Util.getIntValue(supId) == 0 ? Util.getIntValue(supComId) : Util.getIntValue(supId)); +// deptById.setSubCompanyId1(parentDepartment.getSubCompanyId1()); + deptById.setSubCompanyId1(Util.getIntValue(supComId)); } } else { if ("s".equals(targetType)) { @@ -722,6 +725,10 @@ public class DepartmentServiceImpl extends Service implements DepartmentService params.put("id", sourceId); params.put("supsubcomid", targetId); new OrganizationSyncEc(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.UPDATE, params).sync(); + if ("d".equals(sourceType)) { + deptById.setSupDepId(0); + deptById.setSubCompanyId1("s".equals(ftype) ? Util.getIntValue(targetId) : Util.getIntValue(supComId)); + } } else if ("c".equals(targetType)) { OrganizationAssert.isFalse("d".equals(sourceType), "部门不能拖拽到集团下"); Map params = new HashMap<>(); @@ -740,13 +747,13 @@ public class DepartmentServiceImpl extends Service implements DepartmentService deptById.setSupDepId(Util.getIntValue(targetId)); DepartmentPO parentDepartment = getDepartmentMapper().getDeptById(Util.getIntValue(targetId)); deptById.setSubCompanyId1(parentDepartment.getSubCompanyId1()); - // 更新EC部门 - updateEcDepartment(deptById); - // 刷新岗位分部 - List deptList = getDepartmentMapper().getDeptListByPId(deptById.getId()); - forbiddenChildTag(deptById.getSubCompanyId1(), deptList); } } + // 更新EC部门 + updateEcDepartment(deptById); + // 刷新岗位分部 + List deptList = getDepartmentMapper().getDeptListByPId(deptById.getId()); + forbiddenChildTag(deptById.getSubCompanyId1(), deptList); return 1; } -- 2.40.0.windows.1 From af4a2c87ef735623382831066e99923286947f11 Mon Sep 17 00:00:00 2001 From: Mlin Date: Wed, 2 Aug 2023 17:26:16 +0800 Subject: [PATCH 69/87] =?UTF-8?q?=E6=8B=96=E6=8B=BD=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DepartmentServiceImpl.java | 107 +++++++++--------- .../wrapper/DepartmentWrapper.java | 26 ++++- 2 files changed, 76 insertions(+), 57 deletions(-) diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index 2345aa79..2a07e239 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -683,7 +683,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService String supId = ""; String ftype = ""; String querySupIdSql; - OrganizationAssert.isFalse("s".equals(sourceType) && "d".equals(targetType), "分部不能转移到部门下"); +// OrganizationAssert.isFalse("s".equals(sourceType) && "d".equals(targetType), "分部不能转移到部门下"); OrganizationAssert.isFalse("-1".equals(dragPostion), "分部、部门不能转移至与集团平级"); if ("s".equals(targetType)) {// 分部 querySupIdSql = "select companyId as supComId,supsubcomid as supId,'s' as ftype from hrmsubcompany where id = ?"; @@ -697,63 +697,66 @@ public class DepartmentServiceImpl extends Service implements DepartmentService supComId = Util.null2String(recordSet.getString("supComId")); ftype = Util.null2String(recordSet.getString("ftype")); } - if ("1".equals(dragPostion)) { - - if ("s".equals(targetType)) { - OrganizationAssert.isFalse("0".equals(supId), "部门不能拖拽至集团下"); - // 转移到分部外 - deptById.setSubCompanyId1(Util.getIntValue(supId)); - deptById.setSupDepId(null); - } else { - // 转移到部门外 - List deptListByPId = getDepartmentMapper().getDeptListByPId(Util.getIntValue(supId)); - Set disableIds = new HashSet<>(); - disableIds.add(Util.getIntValue(sourceKey.substring(1))); - if (CollectionUtils.isNotEmpty(deptListByPId)) { - addDisableIds(disableIds, deptListByPId); + if ("s".equals(sourceType)) {// 拖拽源是分部 + Map params = new HashMap<>(); + params.put("id", sourceId); + if ("0".equals(dragPostion)) {//内部 + OrganizationAssert.isFalse("d".equals(targetType), "分部不能拖拽至部门下"); + if ("c".equals(targetType)) {// 集团下(上级分部为0) + params.put("supsubcomid", "0"); + }else if ("s".equals(targetType)){ + params.put("supsubcomid", targetId);//上下级关系 + } + }else{//外部 + if("s".equals(targetType)){// 分部外(平级) + params.put("supsubcomid",supId); + }else{// 部门外(找上级) + OrganizationAssert.isFalse("d".equals(ftype), "分部不能拖拽至部门下"); + params.put("supsubcomid",supId); } -// OrganizationAssert.isFalse(disableIds.contains(Util.getIntValue(targetId)), "请勿选择当前部门本身及其子部门"); - deptById.setSupDepId(Util.getIntValue(supId)); -// DepartmentPO parentDepartment = getDepartmentMapper().getDeptById(Util.getIntValue(supId) == 0 ? Util.getIntValue(supComId) : Util.getIntValue(supId)); -// deptById.setSubCompanyId1(parentDepartment.getSubCompanyId1()); - deptById.setSubCompanyId1(Util.getIntValue(supComId)); } - } else { - if ("s".equals(targetType)) { - // 转移到分部下 - Map params = new HashMap<>(); - params.put("id", sourceId); - params.put("supsubcomid", targetId); - new OrganizationSyncEc(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.UPDATE, params).sync(); - if ("d".equals(sourceType)) { - deptById.setSupDepId(0); - deptById.setSubCompanyId1("s".equals(ftype) ? Util.getIntValue(targetId) : Util.getIntValue(supComId)); + new OrganizationSyncEc(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.UPDATE, params).sync(); + } else {//拖拽源是部门 + List deptListByPId; + Set disableIds = new HashSet<>(); + if ("0".equals(dragPostion)) {//内部 + OrganizationAssert.isFalse("c".equals(targetType), "部门不能拖拽至集团下"); + if("s".equals(targetType)){ + deptById.setSubCompanyId1(Util.getIntValue(targetId)); + deptById.setSupDepId(null); + }else{ + deptListByPId = getDepartmentMapper().getDeptListByPId(Util.getIntValue(targetId)); + disableIds.add(Util.getIntValue(sourceKey.substring(1))); + if (CollectionUtils.isNotEmpty(deptListByPId)) { + addDisableIds(disableIds, deptListByPId); + } + OrganizationAssert.isFalse("d".equals(targetType) && disableIds.contains(Util.getIntValue(targetId)), "请勿选择当前部门本身及其子部门"); + deptById.setSupDepId(Util.getIntValue(targetId)); + DepartmentPO parentDepartment = getDepartmentMapper().getDeptById(Util.getIntValue(targetId)); + deptById.setSubCompanyId1(parentDepartment.getSubCompanyId1()); } - } else if ("c".equals(targetType)) { - OrganizationAssert.isFalse("d".equals(sourceType), "部门不能拖拽到集团下"); - Map params = new HashMap<>(); - params.put("id", sourceId); - params.put("supsubcomid", "0"); - new OrganizationSyncEc(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.UPDATE, params).sync(); - } else { - // 转移到部门下 - List deptListByPId = getDepartmentMapper().getDeptListByPId(Util.getIntValue(targetId)); - Set disableIds = new HashSet<>(); - disableIds.add(Util.getIntValue(sourceKey.substring(1))); - if (CollectionUtils.isNotEmpty(deptListByPId)) { - addDisableIds(disableIds, deptListByPId); + }else{//外部 + if("s".equals(targetType)){ + OrganizationAssert.isFalse("0".equals(supId), "部门不能拖拽至集团下"); + deptById.setSubCompanyId1(Util.getIntValue(supId)); + deptById.setSupDepId(null); + }else{ + // 转移到部门外 + deptListByPId = getDepartmentMapper().getDeptListByPId(Util.getIntValue(supId)); + disableIds.add(Util.getIntValue(sourceKey.substring(1))); + if (CollectionUtils.isNotEmpty(deptListByPId)) { + addDisableIds(disableIds, deptListByPId); + } + deptById.setSupDepId(Util.getIntValue(supId)); + deptById.setSubCompanyId1(Util.getIntValue(supComId)); } - OrganizationAssert.isFalse("d".equals(targetType) && disableIds.contains(Util.getIntValue(targetId)), "请勿选择当前部门本身及其子部门"); - deptById.setSupDepId(Util.getIntValue(targetId)); - DepartmentPO parentDepartment = getDepartmentMapper().getDeptById(Util.getIntValue(targetId)); - deptById.setSubCompanyId1(parentDepartment.getSubCompanyId1()); } + // 更新EC部门 + updateEcDepartment(deptById); + // 刷新岗位分部 + List deptList = getDepartmentMapper().getDeptListByPId(deptById.getId()); + forbiddenChildTag(deptById.getSubCompanyId1(), deptList); } - // 更新EC部门 - updateEcDepartment(deptById); - // 刷新岗位分部 - List deptList = getDepartmentMapper().getDeptListByPId(deptById.getId()); - forbiddenChildTag(deptById.getSubCompanyId1(), deptList); return 1; } diff --git a/src/com/engine/organization/wrapper/DepartmentWrapper.java b/src/com/engine/organization/wrapper/DepartmentWrapper.java index 742db88c..061e9cca 100644 --- a/src/com/engine/organization/wrapper/DepartmentWrapper.java +++ b/src/com/engine/organization/wrapper/DepartmentWrapper.java @@ -5,6 +5,7 @@ import com.api.browser.bean.SearchConditionGroup; import com.engine.common.util.ServiceUtil; import com.engine.organization.annotation.Log; import com.engine.organization.entity.DeleteParam; +import com.engine.organization.entity.company.po.CompPO; import com.engine.organization.entity.department.param.*; import com.engine.organization.entity.department.po.DepartmentPO; import com.engine.organization.entity.department.vo.SingleDeptTreeVO; @@ -12,6 +13,7 @@ import com.engine.organization.entity.job.vo.SingleJobTreeVO; import com.engine.organization.entity.searchtree.SearchTreeParams; import com.engine.organization.enums.LogModuleNameEnum; import com.engine.organization.enums.OperateTypeEnum; +import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.mapper.department.DepartmentMapper; import com.engine.organization.service.DepartmentService; import com.engine.organization.service.impl.DepartmentServiceImpl; @@ -44,6 +46,9 @@ public class DepartmentWrapper extends OrganizationWrapper { private DepartmentMapper getDepartmentMapper() { return MapperProxyFactory.getProxy(DepartmentMapper.class); } + private CompMapper getCompMapper() { + return MapperProxyFactory.getProxy(CompMapper.class); + } public ReturnResult getDeptListByPid(QuerySingleDeptListParam param) { PageInfo singleDeptTreeVOS = getDepartmentService(user).getDeptListByPid(param); @@ -267,12 +272,23 @@ public class DepartmentWrapper extends OrganizationWrapper { * @param moveParam * @return */ - @Log(operateType = OperateTypeEnum.MOVE, operateDesc = "拖拽转移部门", operateModule = LogModuleNameEnum.DEPARTMENT) + @Log(operateType = OperateTypeEnum.MOVE, operateDesc = "拖拽转移部门或分部", operateModule = LogModuleNameEnum.DEPARTMENT) public int dragDepartment(DepartmentDragParam departmentDragParam) { - DepartmentPO departmentPO = getDepartmentMapper().getDeptById(Util.getIntValue(Util.null2String(departmentDragParam.getSourcekey()).substring(1))); - int moveDepartment = getDepartmentService(user).dragDepartment(departmentDragParam); - writeOperateLog(new Object() { - }.getClass(), departmentPO.getDepartmentName(), JSON.toJSONString(departmentDragParam), departmentPO, getDepartmentMapper().getDeptById(departmentPO.getId())); + String type = departmentDragParam.getSourcekey().substring(0,1); + String sourceId = departmentDragParam.getSourcekey().substring(1); + int moveDepartment = 0; + if("d".equals(type)) { + DepartmentPO departmentPO = getDepartmentMapper().getDeptById(Integer.valueOf(sourceId)); + moveDepartment = getDepartmentService(user).dragDepartment(departmentDragParam); + writeOperateLog(new Object() { + }.getClass(), departmentPO.getDepartmentName(), JSON.toJSONString(departmentDragParam), departmentPO, getDepartmentMapper().getDeptById(departmentPO.getId())); + }else{ + CompPO compPO = getCompMapper().listById(Integer.valueOf(sourceId)); + moveDepartment = getDepartmentService(user).dragDepartment(departmentDragParam); + CompPO newcompPO = getCompMapper().listById(Integer.valueOf(sourceId)); + writeOperateLog(new Object() { + }.getClass(), compPO.getSubCompanyName(), JSON.toJSONString(departmentDragParam), compPO, newcompPO); + } return moveDepartment; } } -- 2.40.0.windows.1 From a065c7369db242c390f0ec6e5b82b087a6bd836e Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 2 Aug 2023 17:39:15 +0800 Subject: [PATCH 70/87] =?UTF-8?q?=E5=B2=97=E4=BD=8D=E5=8F=B0=E8=B4=A6?= =?UTF-8?q?=E5=B1=95=E7=A4=BA=E4=BF=A1=E6=81=AF=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/mapper/job/JobMapper.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/com/engine/organization/mapper/job/JobMapper.xml b/src/com/engine/organization/mapper/job/JobMapper.xml index 91b79acd..38a12f48 100644 --- a/src/com/engine/organization/mapper/job/JobMapper.xml +++ b/src/com/engine/organization/mapper/job/JobMapper.xml @@ -330,6 +330,8 @@ b.departmentname , c.sequence_name, d.scheme_name, + e.jobactivityname, + f.jobgroupname, FROM jcl_org_job t left join hrmjobtitles h on @@ -342,6 +344,9 @@ t.sequence_id = c.id 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 -- 2.40.0.windows.1 From 49e9e33624c1444009d5b3d93a7c9418dbfd8a78 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 2 Aug 2023 17:42:45 +0800 Subject: [PATCH 71/87] =?UTF-8?q?=E5=B2=97=E4=BD=8D=E5=8F=B0=E8=B4=A6?= =?UTF-8?q?=E5=B1=95=E7=A4=BA=E4=BF=A1=E6=81=AF=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/mapper/job/JobMapper.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/src/com/engine/organization/mapper/job/JobMapper.xml b/src/com/engine/organization/mapper/job/JobMapper.xml index 38a12f48..944360fc 100644 --- a/src/com/engine/organization/mapper/job/JobMapper.xml +++ b/src/com/engine/organization/mapper/job/JobMapper.xml @@ -344,7 +344,6 @@ t.sequence_id = c.id 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 -- 2.40.0.windows.1 From 853bf4b006638f8e51d9ce67e234ebf15bb6bed7 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 4 Aug 2023 10:07:36 +0800 Subject: [PATCH 72/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E6=A0=91=E3=80=81=E9=83=A8=E9=97=A8=E5=8F=B0=E8=B4=A6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=EF=BC=9B=E5=B2=97=E4=BD=8D=E5=90=8C=E6=AD=A5=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E9=87=8D=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/department/bo/DepartmentBO.java | 41 +++++++++++++---- .../organization/entity/job/bo/JobBO.java | 2 +- .../mapper/resource/HrmResourceMapper.xml | 12 ++++- .../service/impl/DepartmentServiceImpl.java | 4 +- .../service/impl/HrmResourceServiceImpl.java | 46 +++++-------------- .../service/impl/JobServiceImpl.java | 40 ++++++++-------- .../impl/PersonnelResumeServiceImpl.java | 15 +++--- 7 files changed, 85 insertions(+), 75 deletions(-) diff --git a/src/com/engine/organization/entity/department/bo/DepartmentBO.java b/src/com/engine/organization/entity/department/bo/DepartmentBO.java index 6841a0d7..8d3a107c 100644 --- a/src/com/engine/organization/entity/department/bo/DepartmentBO.java +++ b/src/com/engine/organization/entity/department/bo/DepartmentBO.java @@ -5,13 +5,14 @@ import com.engine.organization.entity.department.param.DeptSearchParam; import com.engine.organization.entity.department.po.DepartmentPO; import com.engine.organization.entity.department.vo.SingleDeptTreeVO; import com.engine.organization.entity.searchtree.SearchTree; -import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.mapper.department.DepartmentMapper; -import com.engine.organization.mapper.employee.EmployeeMapper; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import weaver.general.Util; +import weaver.hrm.company.DepartmentComInfo; +import weaver.hrm.company.SubCompanyComInfo; +import weaver.hrm.resource.ResourceComInfo; import java.util.*; import java.util.stream.Collectors; @@ -24,10 +25,25 @@ import java.util.stream.Collectors; **/ public class DepartmentBO { - public static List buildDeptDTOList(Collection list) { + /** + * 台账数据、值显示转换 + * @param list + * @return + */ + public static List buildDeptDTOShowNames(Collection list) { + SubCompanyComInfo subCompanyComInfo = new SubCompanyComInfo(); + DepartmentComInfo departmentComInfo = new DepartmentComInfo(); + return list.stream().map(e -> { + e.setSubCompanyName(0 == e.getSubCompanyId1() ? "" : subCompanyComInfo.getSubCompanyname(Util.null2String(e.getSubCompanyId1()))); + e.setSupDepName(0 == e.getSupDepId() ? "" : departmentComInfo.getDepartmentname(Util.null2String(e.getSupDepId()))); + e.setBmfzr(getEmployeeNameById(e.getId())); + return e; + } + ).collect(Collectors.toList()); + } + public static List buildDeptDTOList(Collection list) { // 递归添加父级数据 - Map poMaps = list.stream().collect(Collectors.toMap(DepartmentPO::getId, item -> item)); List dtoList = list.stream().map(e -> DepartmentListDTO .builder() @@ -36,10 +52,7 @@ public class DepartmentBO { .departmentName(e.getDepartmentName()) .departmentCode(e.getDepartmentCode()) .subCompanyId1(e.getSubCompanyId1()) - .subCompanyName(0 == e.getSubCompanyId1() ? "" : MapperProxyFactory.getProxy(CompMapper.class).listById(e.getSubCompanyId1()).getSubCompanyName()) .supDepId(e.getSupDepId()) - .supDepName(null == poMaps.get(e.getSupDepId()) ? "" : poMaps.get(e.getSupDepId()).getDepartmentName()) - .bmfzr(getEmployeeNameById(e.getId())) .showOrder(null == e.getShowOrder() ? 0 : e.getShowOrder()) .canceled(null == e.getCanceled() ? 0 : e.getCanceled()) .build()).collect(Collectors.toList()); @@ -162,11 +175,21 @@ public class DepartmentBO { if (StringUtils.isBlank(departmentPrincipal) || "$NULL$".equalsIgnoreCase(departmentPrincipal)) { return ""; } - List collect = Arrays.stream(departmentPrincipal.split(",")).map(Long::parseLong).collect(Collectors.toList()); + List collect = Arrays.stream(departmentPrincipal.split(",")).collect(Collectors.toList()); if (CollectionUtils.isEmpty(collect)) { return ""; } - List employeeNameById = MapperProxyFactory.getProxy(EmployeeMapper.class).getEmployeeNameById(collect); + List employeeNameById = new ArrayList<>(); + try { + for (String aLong : collect) { + String lastname = new ResourceComInfo().getLastname(Util.null2String(aLong)); + if (StringUtils.isNotBlank(lastname)) { + employeeNameById.add(lastname); + } + } + } catch (Exception e) { + throw new RuntimeException(e); + } return StringUtils.join(employeeNameById, ","); } diff --git a/src/com/engine/organization/entity/job/bo/JobBO.java b/src/com/engine/organization/entity/job/bo/JobBO.java index 2f5a3212..d10ac66e 100644 --- a/src/com/engine/organization/entity/job/bo/JobBO.java +++ b/src/com/engine/organization/entity/job/bo/JobBO.java @@ -142,7 +142,7 @@ public class JobBO { } } - public static List buildSetToSearchTree(Set builderJobs) { + public static List buildSetToSearchTree(Collection builderJobs) { return builderJobs.stream().map(item -> { SearchTree tree = new SearchTree(); tree.setCanClick(true); diff --git a/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml b/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml index 3bbc0605..44dc3af8 100644 --- a/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml +++ b/src/com/engine/organization/mapper/resource/HrmResourceMapper.xml @@ -17,8 +17,16 @@ + select id, isquicksearch, isshowtype, ishidename + from jcl_quicksearch_setting + where belongto = #{belongTo} + + \ No newline at end of file diff --git a/src/com/engine/organization/service/QuickSearchService.java b/src/com/engine/organization/service/QuickSearchService.java new file mode 100644 index 00000000..4f6d252a --- /dev/null +++ b/src/com/engine/organization/service/QuickSearchService.java @@ -0,0 +1,50 @@ +package com.engine.organization.service; + +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2023/08/08 + * @version: 1.0 + */ +public interface QuickSearchService { + /** + * 保存快速搜索条件 + * + * @param params 前端参数 + * @return return + */ + Map saveQuickSearchCondition(Map params); + + /** + * 获取快速搜索信息 + * + * @param params params + * @return return + */ + Map getQuickSearchInfo(Map params); + + /** + * 保存快速搜索信息 + * + * @param params params + * @return return + */ + Map saveQuickSearchInfo(Map params); + + /** + * 获取快速搜索详细信息 + * + * @param params params + * @return return + */ + Map getQuickSearchDetailInfo(Map params); + + /** + * 保存快速搜索详细信息 + * + * @param params params + * @return return + */ + Map saveQuickSearchDetailInfo(Map params); +} diff --git a/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java b/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java new file mode 100644 index 00000000..9d6f7216 --- /dev/null +++ b/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java @@ -0,0 +1,1165 @@ +package com.engine.organization.service.impl; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.cloudstore.dev.api.util.TextUtil; +import com.engine.core.impl.Service; +import com.engine.organization.entity.search.QuickSearchSetting; +import com.engine.organization.mapper.condition.QuickSearchMapper; +import com.engine.organization.mapper.post.PostMapper; +import com.engine.organization.service.QuickSearchService; +import com.engine.organization.util.db.MapperProxyFactory; +import org.apache.commons.lang.StringUtils; +import weaver.conn.RecordSet; +import weaver.conn.RecordSetTrans; +import weaver.formmode.exttools.impexp.common.DateUtils; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.hrm.resource.ResourceComInfo; +import weaver.systeminfo.SystemEnv; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +/** + * @author:dxfeng + * @createTime: 2023/08/08 + * @version: 1.0 + */ +public class QuickSearchServiceImpl extends Service implements QuickSearchService { + private QuickSearchMapper getQuickSearchMapper() { + return MapperProxyFactory.getProxy(QuickSearchMapper.class); + } + + + @Override + public Map saveQuickSearchCondition(Map params) { + return null; + } + + @Override + public Map getQuickSearchInfo(Map params) { + Map apiDatas = new HashMap<>(16); + RecordSet rs = new RecordSet(); + //开关查询 + String sql = "select id,isquicksearch,isshowtype,ishidename from jcl_quicksearch_setting where belongto=?"; + rs.executeQuery(sql, user.getUID()); + JSONObject json = new JSONObject(); + if (rs.next()) { + json.put("isquicksearch", Util.null2String(rs.getString("isquicksearch"))); + json.put("isshowtype", Util.null2s(rs.getString("isshowtype"), "1")); + json.put("ishidename", Util.null2o(rs.getString("ishidename"))); + json.put("id", Util.null2String(rs.getString("id"))); + } else { + json.put("isquicksearch", "0"); + json.put("isshowtype", "0"); + json.put("ishidename", "0"); + json.put("id", "0"); + } + apiDatas.put("setting", json); + + //条件字段查询 + sql = " select c.id, fieldid, c.customname, c.type typeTemp, c.orderid, c.showmodel from jcl_quicksearch_condition c where belongto = ? order by c.orderid asc, c.id asc"; + rs.executeQuery(sql, user.getUID()); + JSONArray datas = new JSONArray(); + while (rs.next()) { + JSONObject obj = new JSONObject(); + String id = Util.null2String(rs.getString("id")); + String fieldid = Util.null2String(rs.getString("fieldid")); + String customname = Util.null2String(rs.getString("customname")); + String type = Util.null2String(rs.getString("typeTemp")); + String orderid = Util.null2String(rs.getString("orderid")); + String showmodel = Util.null2o(rs.getString("showmodel")); + obj.put("cid", id); + obj.put("key", id); + obj.put("fieldid", fieldid); + obj.put("orifieldid", fieldid); + obj.put("customname", TextUtil.toBase64ForMultilang(customname)); + obj.put("type", type); + obj.put("orderid", orderid); + obj.put("groupid", ""); + obj.put("showmodel", showmodel); + datas.add(obj); + } + apiDatas.put("datas", datas); + + //字段下拉框查询 + sql = "select b.fieldid,b.fieldlabel,b.fieldname,fieldhtmltype,b.type typeTemp from hrm_formfield b inner join hrm_fieldgroup c on c.id=b.GROUPID and c.GROUPTYPE in(-1,1,3)"; + rs.executeQuery(sql); + JSONArray options = new JSONArray(); + while (rs.next()) { + JSONObject obj = new JSONObject(); + String fieldhtmltype = Util.null2String(rs.getString("fieldhtmltype")); + String fieldid = Util.null2String(rs.getString("fieldid")); + String fieldname = Util.null2String(rs.getString("fieldname")); + + + String type = Util.null2String(rs.getString("typeTemp")); + int fieldlabel = Util.getIntValue(rs.getString("fieldlabel"), 0); + String labelname = SystemEnv.getHtmlLabelName(Util.getIntValue(rs.getString("fieldlabel")), user.getLanguage()); + String fieldtype = "2"; + boolean isShowModel = false; + if ("1".equals(fieldhtmltype)) { + if ("1".equals(type)) { + //单行文本 + fieldtype = "5"; + } else { + //整数或浮点数 + fieldtype = "1"; + isShowModel = true; + } + } else if ("2".equals(fieldhtmltype) && "1".equals(type)) { + //多行文本 + fieldtype = "5"; + } else if ("2".equals(fieldhtmltype) && "2".equals(type)) { + //多行文本html + fieldtype = "5"; + } else if ("5".equals(fieldhtmltype) && "3".equals(type)) { + //选择框单选框 + fieldtype = "5"; + isShowModel = true; + } else if ("5".equals(fieldhtmltype) && "2".equals(type)) { + //选择框多选框 + fieldtype = "5"; + isShowModel = true; + } else if ("5".equals(fieldhtmltype) && "1".equals(type)) { + //选择框 + fieldtype = "5"; + isShowModel = true; + } else if ("4".equals(fieldhtmltype) && "1".equals(type)) { + //check框 + fieldtype = "5"; + isShowModel = true; + } else if ("3".equals(fieldhtmltype)) { + if ("2".equals(type)) { + //日期 + fieldtype = "3"; + } else if ("1".equals(type)) { + //人力资源 1已被占用,重新换一个 + fieldtype = "-1"; + } else if ("3".equals(type)) { + //会议室联系单 3已被占用,重新换一个 + fieldtype = "-3"; + } else if ("5".equals(type)) { + //仓库5已被占用,重新换一个 + fieldtype = "-5"; + } else { + fieldtype = type; + } + } else { + continue; + } + + if ("".equals(labelname)) { + labelname = SystemEnv.getHtmlLabelName(fieldlabel, user.getLanguage()); + } + + obj.put("key", fieldid); + obj.put("fieldid", fieldid); + obj.put("showname", labelname); + obj.put("isdetailtable", "0"); + obj.put("type", fieldtype); + obj.put("isShowModel", isShowModel); + options.add(obj); + } + apiDatas.put("options", options); + JSONArray groupidOptions = new JSONArray(); + apiDatas.put("groupidOptions", groupidOptions); + return apiDatas; + } + + @Override + public Map saveQuickSearchInfo(Map params) { + Map apidatas = new HashMap<>(); + RecordSet rs = new RecordSet(); + String isquicksearch = Util.null2String(params.get("isquicksearch")); + String isshowtype = Util.null2String(params.get("isshowtype")); + String ishidename = Util.null2String(params.get("ishidename")); + String _id = Util.null2String(params.get("id")); + String _data = Util.null2String(params.get("data")); + JSONArray datas = JSONArray.parseArray(_data); + String sql = ""; + //配置信息更新 + if ("0".equals(_id) || "".equals(_id)) { + //第一次修改配置 + sql = "insert into jcl_quicksearch_setting(belongto,isquicksearch,isshowtype,ishidename,updatetor,updatedate,updatetime) values(?,?,?,?,?,?,?)"; + rs.executeUpdate(sql, user.getUID(), isquicksearch, isshowtype, ishidename, user.getUID(), DateUtils.getCurrentDate(), DateUtils.getCurrentTime()); + } else { + sql = "update jcl_quicksearch_setting set isquicksearch=?,isshowtype=?,ishidename=? where id=?"; + rs.executeUpdate(sql, isquicksearch, isshowtype, ishidename, _id); + } + + + sql = "select id from jcl_quicksearch_condition where belongto=? "; + rs.executeQuery(sql, user.getUID()); + List list = new ArrayList<>(); + while (rs.next()) { + list.add(rs.getString("id")); + } + + for (int i = 0; i < datas.size(); i++) { + JSONObject obj = (JSONObject) datas.get(i); + String fieldid = obj.getString("fieldid"); + String orifieldid = obj.getString("orifieldid"); + int cid = Util.getIntValue(obj.getString("cid")); + String customname = obj.getString("customname"); + String type = obj.getString("type"); + String orderid = obj.getString("orderid"); + String showmodel = obj.getString("showmodel"); + String id = ""; + if (cid > 0) { + list.remove(cid + ""); + sql = "update jcl_quicksearch_condition set belongto=?,fieldid=?,customname=?,type=?,orderid=?,showmodel=? where id=" + cid; + rs.executeUpdate(sql, user.getUID(), fieldid, customname, type, orderid, showmodel); + id = cid + ""; + if (!fieldid.equals(orifieldid)) { + //改变了字段,将原先字段的明细删除 + sql = "delete from jcl_quicksearch_detail where cid=?"; + rs.executeUpdate(sql, id); + } + } else { + sql = "insert into jcl_quicksearch_condition(belongto,fieldid,customname,type,orderid,showmodel) values(?,?,?,?,?,?)"; + rs.executeUpdate(sql, user.getUID(), fieldid, customname, type, orderid, showmodel); + sql = "select max(id) id from jcl_quicksearch_condition where belongto=?"; + rs.executeQuery(sql, user.getUID()); + if (rs.next()) { + id = Util.null2String(rs.getString("id")); + } + } + + } + + if (list.size() > 0) { + String ids = StringUtils.join(list.toArray(), ","); + rs.executeUpdate("delete from jcl_quicksearch_condition where id in (" + ids + ")"); + sql = "delete from jcl_quicksearch_detail where cid in (" + ids + ")"; + rs.executeUpdate(sql); + } + + + return apidatas; + } + + @Override + public Map getQuickSearchDetailInfo(Map params) { + Map apidatas = new HashMap<>(16); + String cid = weaver.formmode.exttools.impexp.common.StringUtils.null2String(params.get("cid")); + RecordSet rs = new RecordSet(); + //开关查询 + String sql = "select id,customname,minnum,maxnum,type typeTemp,orderid,fieldid,belongto from jcl_quicksearch_detail where cid=? order by orderid asc,id asc"; + rs.executeQuery(sql, cid); + JSONArray datas = new JSONArray(); + while (rs.next()) { + JSONObject obj = new JSONObject(); + String id = Util.null2String(rs.getString("id")); + String customname = Util.null2String(rs.getString("customname")); + String minnum = Util.null2String(rs.getString("minnum")); + minnum = minnum.startsWith("0E") ? "0" : minnum; + String maxnum = Util.null2String(rs.getString("maxnum")); + maxnum = maxnum.startsWith("0E") ? "0" : maxnum; + String type = Util.null2String(rs.getString("typeTemp")); + String orderid = Util.null2String(rs.getString("orderid")); + String fieldid = Util.null2String(rs.getString("fieldid")); + String belongto = Util.null2String(rs.getString("belongto")); + obj.put("id", id); + obj.put("cid", cid); + obj.put("key", id); + obj.put("customname", customname); + obj.put("minnum", minnum); + obj.put("maxnum", maxnum); + obj.put("type", type); + obj.put("fieldid", fieldid); + obj.put("belongto", belongto); + obj.put("orderid", orderid); + datas.add(obj); + } + sql = "select b.fieldhtmltype,b.type typeTemp,b.fielddbtype from jcl_quicksearch_condition c left join hrm_formfield b on b.fieldid =c.fieldid where c.id= ? "; + rs.executeQuery(sql, cid); + int precision = 0; + while (rs.next()) { + String fieldhtmltype = rs.getString("fieldhtmltype"); + String type = rs.getString("typeTemp"); + String dbtype = rs.getString("fielddbtype"); + if ("1".equals(fieldhtmltype) && !"1".equals(type)) { + int digitsIndex = dbtype.indexOf(","); + precision = Util.getIntValue(dbtype.substring(digitsIndex + 1, dbtype.length() - 1), 0); + } + if ("1".equals(fieldhtmltype) && "5".equals(type)) { + //precision = Util.getIntValue(rs.getString("qfws"),2); + } + } + apidatas.put("datas", datas); + apidatas.put("precision", precision); + return apidatas; + } + + @Override + public Map saveQuickSearchDetailInfo(Map params) { + Map apidatas = new HashMap<>(16); + RecordSet rs = new RecordSet(); + String cid = Util.null2String(params.get("cid")); + String _data = Util.null2String(params.get("data")); + JSONArray datas = JSONArray.parseArray(_data); + String sql = ""; + //条件字段更新 + RecordSetTrans rst = new RecordSetTrans(); + sql = "select id from jcl_quicksearch_detail where cid=? "; + rs.executeQuery(sql, cid); + List list = new ArrayList<>(); + while (rs.next()) { + list.add(rs.getString("id")); + } + try { + for (Object object : datas) { + JSONObject obj = (JSONObject) object; + String customname = obj.getString("customname"); + String fieldid = obj.getString("fieldid"); + String minnum = obj.getString("minnum"); + minnum = "".equals(minnum) ? null : minnum; + String maxnum = obj.getString("maxnum"); + maxnum = "".equals(maxnum) ? null : maxnum; + String type = obj.getString("type"); + String orderid = obj.getString("orderid"); + int id = Util.getIntValue(obj.getString("id")); + if (id > 0) { + list.remove(id + ""); + sql = "update jcl_quicksearch_detail set cid=?,customname=?,minnum=?,maxnum=?,type=?,orderid=?,fieldid=?,belongto=? where id=?"; + rst.executeUpdate(sql, cid, customname, minnum, maxnum, type, orderid, fieldid, user.getUID(), id); + } else { + sql = "insert into jcl_quicksearch_detail(cid,customname,minnum,maxnum,type,orderid,fieldid,belongto) values(?,?,?,?,?,?,?,?)"; + rst.executeUpdate(sql, cid, customname, minnum, maxnum, type, orderid, fieldid, user.getUID()); + } + } + rst.commit(); + if (list.size() > 0) { + String ids = StringUtils.join(list.toArray(), ","); + rs.executeUpdate("delete from jcl_quicksearch_detail where id in (" + ids + ")"); + } + } catch (Exception e) { + rst.rollback(); + new BaseBean().writeLog(e); + e.printStackTrace(); + } + + return apidatas; + } + + +// public JSONArray GetQuickSearchInfo(String customid, User user, HttpServletRequest request) { +// JSONArray datas = new JSONArray(); +// RecordSet rs = new RecordSet(); +// RecordSet rs1 = new RecordSet(); +// String ss = request.getQueryString(); +// CustomSearchComInfo customSearchComInfo = new CustomSearchComInfo(); +// String defSql = Util.toScreenToEdit(customSearchComInfo.getDefaultSql(customid), user.getLanguage()) ; +// +// Map> groupMap=new HashMap>(); +// +// // 表单字段 +// String sql = "SELECT ID,fieldid,customname,fieldhtmltype,typeTemp,fielddbtype,fieldname,orderid,groupid,showmodel FROM ("; +// sql += "select quick.ID,bill.id fieldid,quick.customname,bill.fieldhtmltype,bill.type typeTemp,bill.fielddbtype,fieldname,orderid,groupid,showmodel from mode_quicksearch_condition quick left join workflow_billfield bill on bill.id=quick.fieldid where customid=? AND quick.fieldid NOT IN(-1,-2) "; +// +// List args = new ArrayList(); +// args.add(customid); +// ModeFormComInfo modeFormComInfo = new ModeFormComInfo(); +// String formId = customSearchComInfo.getFormId(customid); +// boolean isVirtualForm = "1".equals(modeFormComInfo.getIsVirtualForm(formId)); +// if(!isVirtualForm) { +// // 加入创建日期 +// sql += "UNION ALL "; +// sql += "SELECT id,1 fieldid,customname,'3' fieldhtmltype,2 typeTemp, 'char(10)' fielddbtype,'modedatacreatedate' fieldname,orderid,groupid,showmodel "; +// sql += "FROM mode_quicksearch_condition WHERE customid=? AND fieldid =-1 "; +// +// // 加入创建人 +// sql += "UNION ALL "; +// //sql += "SELECT id,2 fieldid,customname,'3' fieldhtmltype,1 TYPE, 'int' fielddbtype,'modedatacreater' fieldname,orderid "; +// sql += "SELECT id,2 fieldid,customname,'3' fieldhtmltype,1 typeTemp, 'int' fielddbtype,'modedatacreater' fieldname,orderid,groupid,showmodel "; +// sql += "FROM mode_quicksearch_condition WHERE customid=? AND fieldid =-2 "; +// +// //添加最后修改人 +// sql += "UNION ALL "; +// sql += "SELECT id,7 fieldid,customname,'3' fieldhtmltype,1 typeTemp, 'int' fielddbtype,'modedatacreater' fieldname,orderid,groupid,showmodel "; +// sql += "FROM mode_quicksearch_condition WHERE customid=? AND fieldid =-7 "; +// +// //添加最后修改日期时间 +// sql += "UNION ALL "; +// sql += "SELECT id,8 fieldid,customname,'3' fieldhtmltype,290 typeTemp, 'char(10)' fielddbtype,'modedatacreatedate' fieldname,orderid,groupid,showmodel "; +// sql += "FROM mode_quicksearch_condition WHERE customid=? AND fieldid =-8 "; +// +// //添加密级字段int +// sql += "UNION ALL "; +// sql += "SELECT id,9 fieldid,customname,'5' fieldhtmltype,2 typeTemp, 'int' fielddbtype,'seclevel' fieldname,orderid,groupid,showmodel "; +// sql += "FROM mode_quicksearch_condition WHERE customid=? AND fieldid =-9 "; +// +// args.add(customid); +// args.add(customid); +// args.add(customid); +// args.add(customid); +// args.add(customid); +// } +// +// // 按照字段排序 +// sql += ") a order by groupid asc,orderid asc,id asc"; +// +// rs.executeQuery(sql, args); +// while (rs.next()) { +// int viewAttr = 2; +// JSONObject json = new JSONObject(); +// String fieldhtmltype = Util.null2String(rs.getString("fieldhtmltype")); +// String fieldtype = Util.null2String(rs.getString("typeTemp")); +// String id = Util.null2String(rs.getString("id")); +// String fieldnames = Util.null2String(rs.getString("fieldname")); +// String fieldid = Util.null2String(rs.getString("fieldid")); +// String groupid = Util.null2String(rs.getString("groupid")); +// float orderid = Util.getFloatValue(Util.null2String(rs.getString("orderid")),0); +// String showmodel = Util.null2String(rs.getString("showmodel")); +// String querysql = "select t.* from mode_CustomDspField t where t.customid=? and t.fieldid=?"; +// String conditiontransition = ""; +// String searchparavalue = ""; +// String searchparavalue1 = ""; +// String conditionValue = ""; +// String conditionValue1 = ""; +// String conditionValue2 = ""; +// String fieldname_seclevel = Util.null2String(rs.getString("fieldname"));//用于验证是否是密级字段; +// String showtype = Util.null2o(rs.getString("showtype"));//显示模式主要 针对浏览框 0:浏览框模式 1:下拉拉框模式 +// rs1.executeQuery(querysql, customid, "1".equals(fieldid)?"-1":"2".equals(fieldid)?"-2":"7".equals(fieldid)?"-7":"8".equals(fieldid)?"-8":fieldid); +// int count = 0; +// String requiredCon = ""; +// if(rs1.next()){ +// count ++; +// conditiontransition = Util.null2String(rs1.getString("conditiontransition")); +// requiredCon = Util.null2String(rs1.getString("requiredCon")); +// if("1".equals(requiredCon)){ +// viewAttr = 3; +// } +// conditionValue = Util.null2String(rs1.getString("conditionValue")); +// conditionValue1 = Util.null2String(rs1.getString("conditionValue1")); +// conditionValue2 = Util.null2String(rs1.getString("conditionValue2")); +// String searchparaname = Util.null2String(rs1.getString("searchparaname")); +// String searchparaname1 = Util.null2String(rs1.getString("searchparaname1")); +// if(!StringHelper.isEmpty(searchparaname)) { +// searchparavalue = replaceParams(Util.null2String(request.getParameter(searchparaname)), user); +// } +// +// if(!StringHelper.isEmpty(searchparaname1)) { +// searchparavalue1 = replaceParams(Util.null2String(request.getParameter(searchparaname1)), user); +// } +// if("".equals(searchparavalue)){ +// if("3".equals(fieldhtmltype)&&"1".equals(fieldtype)){ //人力资源 +// if(!"".equals(conditionValue1)&&!"null".equals(conditionValue1)){ +// searchparavalue = conditionValue1; +// }else if(conditiontransition.equalsIgnoreCase("1") && "".equals(conditionValue1)&&!"-5".equals(conditionValue)){ +// searchparavalue = conditionValue; +// }else{ +// searchparavalue = conditionValue; +// } +// }else if ("3".equals(fieldhtmltype)&&("2".equals(fieldtype)||"19".equals(fieldtype)||"290".equals(fieldtype))){ +// if("3".equals(fieldhtmltype)&&"19".equals(fieldtype)){ //时间 +// if("".equals(conditionValue)&&"".equals(conditionValue1)){ +// searchparavalue = searchparavalue; +// }else{ +// searchparavalue = conditionValue+","+conditionValue1; +// } +// }else if("3".equals(fieldhtmltype)&&"2".equals(fieldtype)){ //日期 +// if("".equals(conditionValue)&&"".equals(conditionValue1)){ +// searchparavalue = searchparavalue; +// }else{ +// searchparavalue = conditionValue+","+conditionValue1; +// } +// }else if(!"".equals(conditionValue1)&&!"null".equals(conditionValue1)){ +// if(!"".equals(conditionValue1)&&!"null".equals(conditionValue1)){ +// searchparavalue = conditionValue1+","+conditionValue2; //处理时间,日期回显 +//// searchparavalue1 = conditionValue1; +// }else{ +// searchparavalue = conditionValue; +// } +// } +// }else{ +// String acValue = conditionValue; +// if(!"".equals(conditionValue1)&&!"null".equals(conditionValue1)){ +// if(!"".equals(conditionValue2)&&!"null".equals(conditionValue2)){ +// conditionValue = conditionValue+","+conditionValue1+","+conditionValue2; +// }else{ +// conditionValue = conditionValue+","+conditionValue1; +// } +// } +// if(!"".equals(conditionValue)){ +// searchparavalue = conditionValue; +// } +// if("1".equals(fieldhtmltype)&&!"1".equals(fieldtype)){ +// searchparavalue = acValue; +// } +// } +// } +// } +// if(conditiontransition.equalsIgnoreCase("1") && fieldhtmltype.equals("3")){ +// fieldtype = convertSingleBrowserTypeToMulti_All(fieldtype); +// } +// String fielddbtype = Util.null2String(rs.getString("fielddbtype")); +// if ("".equals(fieldid)) { +// continue; +// } +// +// String fieldname = "con_"+ (Util.getIntValue(fieldid) > 0 ? fieldid : "_"+(-Util.getIntValue(fieldid))); +// if(StringHelper.isEmpty(searchparavalue)&&StringHelper.isEmpty(searchparavalue1)){//con_fielid格式作为查询条件,解析到查询条件上 +// searchparavalue=Util.null2String(request.getParameter(fieldname)); +// } +// +// +// String customname = Util.null2String(rs.getString("customname")); +// customname=Util.formatMultiLang(customname, user.getLanguage()+""); +// if ("1".equals(fieldhtmltype)) { +// if ("1".equals(fieldtype)) {//单行文本 +// if(!searchparavalue.isEmpty()) { +// json.put("value", searchparavalue); +// } +// }else {//整数或浮点数 +// sql ="select id,customname,minnum,maxnum from mode_quicksearch_detail where cid=? order by orderid asc,id asc"; +// rs1.executeQuery(sql, id); +// JSONArray arr = new JSONArray(); +// JSONObject obj1 = new JSONObject(); +// if("1".equals(requiredCon)){ +// obj1.put("key", ""); +// }else{ +// obj1.put("key", "-1"); +// } +// obj1.put("showname", ""); +// arr.add(obj1); +// boolean flg = false; +// Map map = new HashMap(); +// while (rs1.next()) { +// String minnum = Util.null2String(rs1.getString("minnum")); +// String maxnum = Util.null2String(rs1.getString("maxnum")); +// String fieldValue = minnum+","+maxnum; +// map.put(rs1.getString("id"),fieldValue); +// boolean flgs = false; +// if (!"".equals(minnum) && !searchparavalue.isEmpty()) { +// float num = Util.getFloatValue(minnum); +// float num2 = Util.getFloatValue(maxnum); +// if(Util.getFloatValue(searchparavalue)==Util.getFloatValue("0")){ +// if(num<=Util.getFloatValue(searchparavalue) && num2>=Util.getFloatValue(searchparavalue) && !flg){ +// flg = true; +// flgs = true; +// //json.put("value", rs1.getString("id")); +// } +// }else{ +// if(num<=Util.getFloatValue(searchparavalue) && num2>=Util.getFloatValue(searchparavalue) && !flg){ +// flg = true; +// flgs = true; +// //json.put("value", rs1.getString("id")); +// } +// } +// } +// JSONObject obj2 = new JSONObject(); +// obj2.put("key",rs1.getString("id")); +// obj2.put("selected",flgs); +// obj2.put("showname", Util.formatMultiLang(rs1.getString("customname"), user.getLanguage()+"")); +// arr.add(obj2); +// } +// json.put("floatValue",map); +// json.put("options", arr); +// } +// } else if ("2".equals(fieldhtmltype)) {//多文本 +// if(!searchparavalue.isEmpty()) { +// json.put("value", searchparavalue); +// } +// }else if ("5".equals(fieldhtmltype) && "1".equals(fieldtype)) {//选择框 +// RecordSet record = new RecordSet(); +// StringBuffer sql1 = new StringBuffer(); +// Integer fieldlabel = 0; +// String parentDomkey = ""; +// Integer pubchilchoiceId = 0; +// +// sql1.append(" select a.id, b.fieldlabel, b.pubchilchoiceId "); +// sql1.append(" from mode_customdspfield a, workflow_billfield b "); +// sql1.append(" where a.fieldid = b.id and b.id=? "); +// sql1.append(" and a.customId = ? "); +// record.executeQuery(sql1.toString(),fieldid,customId); +// while(record.next()){ +// fieldlabel = record.getInt("fieldlabel"); +// pubchilchoiceId = record.getInt("pubchilchoiceId"); +// } +// if(pubchilchoiceId > 0){ +// parentDomkey = "con_"+pubchilchoiceId; +// }else{//#866910 +// String dlxzksql = "select t.id from workflow_billfield t where t.childfieldid=?"; +// rs1.executeQuery(dlxzksql,fieldid); +// if(rs1.next()){ +// String parentfieldid = Util.null2String(rs1.getString(1)); +// if(!parentfieldid.isEmpty()){ +// parentDomkey = "con_"+parentfieldid; +// } +// } +// } +// ConditionFactory conditionFactory = new ConditionFactory(user); +// CubeFieldService cfs = new CubeFieldService(); +// List options = new ArrayList(); +// SearchConditionItem conditionJson = new SearchConditionItem(); +// if(!"seclevel".equals(fieldname_seclevel)){ +// conditionJson = conditionFactory.createCondition(ConditionType.SELECT, fieldlabel, fieldname+","+parentDomkey, cfs.getWorkflowSelectItems(""+fieldid, user.getLanguage(),true)); +// //options = cfs.getWorkflowSelectItems(""+fieldid, user.getLanguage(),true); +// options = conditionJson.getOptions(); +// if("1".equals(conditiontransition) && options.size()>0&&"".equals(options.get(0).getKey())){//选择框多选时去除空选项 +// options.remove(0); +// } +// }else{ +// //密级修改为从人力资源那么获取 +// Map otherParam = new HashMap<>(); +// AddSeclevelUtil addSeclevelUtil = new AddSeclevelUtil(); +// otherParam.put("fieldlabel",fieldlabel); +// otherParam.put("fieldname",fieldname); +// otherParam.put("parentDomkey",parentDomkey); +// conditionJson = addSeclevelUtil.getSecLevelOptions(conditionFactory,user,otherParam); +// +//// HrmClassifiedProtectionBiz hrmClassifiedProtectionBiz = new HrmClassifiedProtectionBiz(); +//// SearchConditionOption searchConditionOption = new SearchConditionOption(); +//// searchConditionOption.setKey(""); +//// searchConditionOption.setShowname(""); +//// searchConditionOption.setChilditemid(Util.splitString("", ",")); +//// options.add(searchConditionOption); +//// //密级调用人力资源的 资源密级下拉选项 +//// List comOptions = hrmClassifiedProtectionBiz.getResourceOptionListByUser(user); +//// if (null != comOptions && comOptions.size() > 0) { +//// for (SearchConditionOption searchConditionOptioninner : comOptions) { +//// SearchConditionOption searchConditionOption_inner = new SearchConditionOption(); +//// String selectvalue = searchConditionOptioninner.getKey(); +//// String selectname = searchConditionOptioninner.getShowname(); +//// searchConditionOption_inner.setKey(selectvalue); +//// searchConditionOption_inner.setShowname(selectname); +//// searchConditionOption_inner.setChilditemid(Util.splitString("", ",")); +//// options.add(searchConditionOption_inner); +//// +//// } +//// conditionJson = conditionFactory.createCondition(ConditionType.SELECT, fieldlabel, fieldname + "," + parentDomkey, options); +//// } +// options = conditionJson.getOptions(); +// if("1".equals(conditiontransition) && options.size()>0&&"".equals(options.get(0).getKey())){//选择框多选时去除空选项 +// options.remove(0); +// } +// } +// +// +// +// json.put("options", options); +// json.put("parentDomkey",conditionJson.getParentDomkey()); +// json.put("domkey",conditionJson.getDomkey()); +// if(!searchparavalue.isEmpty()) { +// json.put("value", searchparavalue); +// } +// if(conditiontransition.equalsIgnoreCase("1")){ +// json.put("detailtype","2"); +// json.put("multiple",true); +// }else{ +// json.put("detailtype",""); +// } +// json.put("fieldid", fieldid); +// json.put("customname", customname); +// }else if ("5".equals(fieldhtmltype) && "2".equals(fieldtype)) {//多选 +// RecordSet record = new RecordSet(); +// StringBuffer sql1 = new StringBuffer(); +// Integer fieldlabel = 0; +// String parentDomkey = ""; +// Integer pubchilchoiceId = 0; +// +// sql1.append(" select a.id, b.fieldlabel,b.pubchilchoiceId "); +// sql1.append(" from mode_customdspfield a, workflow_billfield b "); +// sql1.append(" where a.fieldid = b.id and b.id=? "); +// sql1.append(" and a.customId = ? "); +// record.executeQuery(sql1.toString(),fieldid,customId); +// while(record.next()){ +// fieldlabel = record.getInt("fieldlabel"); +// pubchilchoiceId = record.getInt("pubchilchoiceId"); +// } +// if(pubchilchoiceId > 0){ +// parentDomkey = "con_"+pubchilchoiceId; +// }else{//#866910 +// String dlxzksql = "select t.id from workflow_billfield t where t.childfieldid=?"; +// rs1.executeQuery(dlxzksql,fieldid); +// if(rs1.next()){ +// String parentfieldid = Util.null2String(rs1.getString(1)); +// if(!parentfieldid.isEmpty()){ +// parentDomkey = "con_"+parentfieldid; +// } +// } +// } +// ConditionFactory conditionFactory = new ConditionFactory(user); +// CubeFieldService cfs = new CubeFieldService(); +// SearchConditionItem conditionJson = new SearchConditionItem(); +// if(!"seclevel".equals(fieldname_seclevel)){ +// conditionJson = conditionFactory.createCondition(ConditionType.SELECT, fieldlabel, fieldname+","+parentDomkey,cfs.getWorkflowSelectItems(""+fieldid, user.getLanguage(),true)); +// }else{ +// //密级修改为从人力资源那么获取 +// Map otherParam = new HashMap<>(); +// AddSeclevelUtil addSeclevelUtil = new AddSeclevelUtil(); +// otherParam.put("fieldlabel",fieldlabel); +// otherParam.put("fieldname",fieldname); +// otherParam.put("parentDomkey",parentDomkey); +// conditionJson = addSeclevelUtil.getSecLevelOptions(conditionFactory,user,otherParam); +// +// } +// List options = new ArrayList(); +// options = conditionJson.getOptions(); +// if(!searchparavalue.isEmpty()) { +// json.put("value", searchparavalue); +// } +// json.put("options", options); +// json.put("parentDomkey",conditionJson.getParentDomkey()); +// json.put("domkey",conditionJson.getDomkey()); +// json.put("viewAttr", viewAttr); +// json.put("detailtype","2"); +// json.put("customname", customname); +// }else if ("5".equals(fieldhtmltype) && "3".equals(fieldtype)) {//单选 +// RecordSet record = new RecordSet(); +// StringBuffer sql1 = new StringBuffer(); +// Integer fieldlabel = 0; +// String parentDomkey = ""; +// Integer pubchilchoiceId = 0; +// +// sql1.append(" select a.id, b.fieldlabel, b.pubchilchoiceId "); +// sql1.append(" from mode_customdspfield a, workflow_billfield b "); +// sql1.append(" where a.fieldid = b.id and b.id=? "); +// sql1.append(" and a.customId = ? "); +// record.executeQuery(sql1.toString(),fieldid,customId); +// while(record.next()){ +// fieldlabel = record.getInt("fieldlabel"); +// pubchilchoiceId = record.getInt("pubchilchoiceId"); +// } +// if(pubchilchoiceId > 0){ +// parentDomkey = "con_"+pubchilchoiceId; +// }else{//#866910 +// String dlxzksql = "select t.id from workflow_billfield t where t.childfieldid=?"; +// rs1.executeQuery(dlxzksql,fieldid); +// if(rs1.next()){ +// String parentfieldid = Util.null2String(rs1.getString(1)); +// if(!parentfieldid.isEmpty()){ +// parentDomkey = "con_"+parentfieldid; +// } +// } +// } +// ConditionFactory conditionFactory = new ConditionFactory(user); +// CubeFieldService cfs = new CubeFieldService(); +// SearchConditionItem conditionJson = conditionFactory.createCondition(ConditionType.SELECT, fieldlabel, fieldname+","+parentDomkey,cfs.getWorkflowSelectItems(""+fieldid, user.getLanguage(),true)); +// List options = new ArrayList(); +// options = conditionJson.getOptions(); +// if("1".equals(conditiontransition) && options.size()>0&&"".equals(options.get(0).getKey())){//选择框多选时去除空选项 +// options.remove(0); +// } +// json.put("options", options); +// if(!searchparavalue.isEmpty()) { +// json.put("value", searchparavalue); +// } +// json.put("detailtype","3"); +// json.put("parentDomkey",conditionJson.getParentDomkey()); +// json.put("domkey",conditionJson.getDomkey()); +// json.put("supportCancel", true); +// json.put("fieldid", fieldid); +// json.put("customname", customname); +// }else if ("4".equals(fieldhtmltype) && "1".equals(fieldtype)) {//勾选框 +// RecordSet record = new RecordSet(); +// StringBuffer sql1 = new StringBuffer(); +// Integer fieldlabel = 0; +// +// sql1.append(" select a.id, b.fieldlabel "); +// sql1.append(" from mode_customdspfield a, workflow_billfield b "); +// sql1.append(" where a.fieldid = b.id and b.id=? "); +// sql1.append(" and a.customId = ? "); +// record.executeQuery(sql1.toString(),fieldid,customId); +// while(record.next()){ +// fieldlabel = record.getInt("fieldlabel"); +// } +// ConditionFactory conditionFactory = new ConditionFactory(user); +// CubeFieldService cfs = new CubeFieldService(); +// SearchConditionItem conditionJson = conditionFactory.createCondition(ConditionType.SELECT, fieldlabel, fieldname,this.getCheckOptions(user.getLanguage())); +// List options = new ArrayList(); +// options = conditionJson.getOptions(); +// +// json.put("options", options); +// json.put("domkey",conditionJson.getDomkey()); +// json.put("viewAttr", viewAttr); +// json.put("detailtype","3"); +// json.put("customname", customname); +// }else if ("3".equals(fieldhtmltype)) {//日期 +// BrowserBean browserProps = null; +// if ("2".equals(fieldtype)||"19".equals(fieldtype)||"290".equals(fieldtype)) {//日期 时间 日期时间 +// if(searchparavalue.indexOf(",")>-1){ +// String[] vals = searchparavalue.split(","); +// if(vals.length>0){ +// searchparavalue = vals[0]; +// if(vals.length>1){ +// searchparavalue1 = vals[1]; +// if(vals.length>2){ +// searchparavalue1 = vals[1]+vals[2]; +// } +// } +// } +// } +// if("2".equals(fieldtype) && searchparavalue.isEmpty()){ +// searchparavalue = "0"; // 全部 +// } +// if("2".equals(fieldtype) && !searchparavalue.isEmpty()) { +// if(-1!=Util.getIntValue(searchparavalue)){ +// json.put("value", new String[]{searchparavalue,"",""}); +// }else{ +// json.put("value", new String[]{"6",searchparavalue,searchparavalue1}); +// } +// }else{ +// ArrayList dataValue = new ArrayList(); +// if("".equals(searchparavalue)&&"".equals(searchparavalue1)){ +// json.put("value", dataValue); +// }else{ +// dataValue.add(searchparavalue); +// dataValue.add(searchparavalue1); +// json.put("value", dataValue); +// } +//// json.put("value", searchparavalue); +// } +// }else if("402".equals(fieldtype) || "403".equals(fieldtype)){//年、年月 +// if(!searchparavalue.isEmpty()) { +// json.put("value", searchparavalue); +// } +// }else if("161".equals(fieldtype) || "162".equals(fieldtype)) { +// browserProps = new BrowserBean(fieldtype); +// BrowserValueInfoService browserValueInfoService = new BrowserValueInfoService(); +// List valueObj = null; +// List> replaceDatas = new ArrayList>(); +// try { +// valueObj = browserValueInfoService.getBrowserValueInfo(Util.getIntValue(fieldtype), fielddbtype, 0, searchparavalue, user.getLanguage(), -1); +// for(int i=0;i map = new HashMap(); +// BrowserValueInfo m=(BrowserValueInfo)valueObj.get(i); +// map.put("id",m.getId()); +// map.put("name",m.getName()); +// map.put("count",m.getCount()); +// replaceDatas.add(map); +// } +// json.put("replaceDatas",replaceDatas); +// browserProps.setReplaceDatas(replaceDatas); +// +// } catch (Exception e) { +// } +// new BrowserInitUtil().initCustomizeBrow(browserProps,fielddbtype, Util.getIntValue(fieldtype) , user.getUID()); +// browserProps.getDataParams().put("formmodefieldid",fieldid); +// browserProps.getConditionDataParams().put("formmodefieldid", fieldid); +// browserProps.getCompleteParams().put("formmodefieldid", fieldid); +// } else if("256".equals(fieldtype) || "257".equals(fieldtype)) { +// browserProps = new BrowserBean(fieldtype); +// browserProps.getDataParams().put("cube_treeid", fielddbtype); +// browserProps.getCompleteParams().put("cube_treeid", fielddbtype); +// BrowserValueInfoService browserValueInfoService = new BrowserValueInfoService(); +// List valueObj = null; +// List> replaceDatas = new ArrayList>(); +// try { +// valueObj = browserValueInfoService.getBrowserValueInfo(Util.getIntValue(fieldtype), fielddbtype, 0, searchparavalue, user.getLanguage(), -1); +// for(int i=0;i map = new HashMap(); +// BrowserValueInfo m=(BrowserValueInfo)valueObj.get(i); +// map.put("id",m.getId()); +// map.put("name",m.getName()); +// map.put("count",m.getCount()); +// replaceDatas.add(map); +// } +// json.put("replaceDatas",replaceDatas); +// browserProps.setReplaceDatas(replaceDatas); +// +// } catch (Exception e) { +// } +// new BrowserInitUtil().initBrowser(browserProps,user.getLanguage()); +// }else if("1".equals(fieldtype)||("1".equals(conditiontransition)&&"17".equals(fieldtype))){ //人力资源 +// if("1".equals(conditiontransition)&&"1".equals(fieldtype)){ +// browserProps = new BrowserBean(fieldtype); +// browserProps.setViewAttr(viewAttr); +// List objs = null; +// if(!searchparavalue.isEmpty()){ +// if (Util.getIntValue(searchparavalue) == 0||"-1".equals(searchparavalue)||Util.getIntValue(searchparavalue) == -2 +// ||Util.getIntValue(searchparavalue) == -3||Util.getIntValue(searchparavalue) == -4||Util.getIntValue(searchparavalue) == -5 +// ||Util.getIntValue(searchparavalue) == -6||Util.getIntValue(searchparavalue) == -7||Util.getIntValue(searchparavalue) == -8){ +// json.put("value",new String[]{searchparavalue,"",""}); +// } else { +// try { +// objs = new BrowserValueInfoService().getBrowserValueInfo(1,null,0,searchparavalue,user.getLanguage(),-1); +// } catch (Exception e) { +// } +// String valueSpan = ""; +// if(objs!=null) { +// for(Object obj : objs) { +// valueSpan+=((BrowserValueInfo) obj).getName()+","; +// } +// valueSpan = valueSpan.substring(0,valueSpan.length()-1); +// } +// json.put("value", new Object[]{"-5",new Object[]{searchparavalue,valueSpan, objs}}); +// } +// }else{ +// json.put("value", new Object[]{"-5","",""}); +// } +// new BrowserInitUtil().initBrowser(browserProps,user.getLanguage()); +// }else{ +// browserProps = new BrowserBean(fieldtype); +// browserProps.setViewAttr(viewAttr); +// List objs = null; +// if(!searchparavalue.isEmpty()){ +// if (Util.getIntValue(searchparavalue) <= 0){ +// json.put("value",new String[]{searchparavalue,""}); +// } else { +// try { +// objs = new BrowserValueInfoService().getBrowserValueInfo(1,null,0,searchparavalue,user.getLanguage(),-1); +// } catch (Exception e) { +// } +// String valueSpan = ""; +// if(objs!=null) { +// for(Object obj : objs) { +// valueSpan+=((BrowserValueInfo) obj).getName()+","; +// } +// } +// json.put("value", new Object[]{"-5",new Object[]{searchparavalue,valueSpan, objs}}); +// } +// }else{ +// json.put("value", new Object[]{"-5","",""}); +// } +// new BrowserInitUtil().initBrowser(browserProps,user.getLanguage()); +// } +// }else if("4".equals(fieldtype) || "57".equals(fieldtype)){ +// browserProps = new BrowserBean(fieldtype); +// if(!searchparavalue.isEmpty()){ +// BrowserValueInfoService browserValueInfoService = new BrowserValueInfoService(); +// List valueObj = null; +// List> replaceDatas = new ArrayList>(); +// try { +// valueObj = browserValueInfoService.getBrowserValueInfo(fieldtype, String.valueOf(fielddbtype), 0, searchparavalue, user.getLanguage(), "",""); +// for(int i=0;i map = new HashMap(); +// BrowserValueInfo m=(BrowserValueInfo)valueObj.get(i); +// map.put("id",m.getId()); +// map.put("name",m.getName()); +// map.put("count",m.getCount()); +// replaceDatas.add(map); +// } +// json.put("replaceDatas",replaceDatas); +// browserProps.setReplaceDatas(replaceDatas); +// } catch (Exception e) { +// } +// } +// browserProps.setViewAttr(viewAttr); +// Map map = new HashMap(); +// Map map1 = new HashMap(); +// Map map2 = new HashMap(); +// map.put("fromModule","model"); +// map1.put("fromModule","model"); +// map2.put("fromModule","model"); +// browserProps.setDataParams(map1); +// browserProps.setDestDataParams(map2); +// browserProps.setCompleteParams(map); +// new BrowserInitUtil().initBrowser(browserProps,user.getLanguage()); +// } else if("164".equals(fieldtype)||"194".equals(fieldtype)){ +// browserProps = new BrowserBean(fieldtype); +// if(!searchparavalue.isEmpty()){ +// BrowserValueInfoService browserValueInfoService = new BrowserValueInfoService(); +// List valueObj = null; +// List> replaceDatas = new ArrayList>(); +// try { +// valueObj = browserValueInfoService.getBrowserValueInfo(fieldtype, String.valueOf(fielddbtype), 0, searchparavalue, user.getLanguage(), "",""); +// for(int i=0;i map = new HashMap(); +// BrowserValueInfo m=(BrowserValueInfo)valueObj.get(i); +// map.put("id",m.getId()); +// map.put("name",m.getName()); +// map.put("count",m.getCount()); +// replaceDatas.add(map); +// } +// json.put("replaceDatas",replaceDatas); +// browserProps.setReplaceDatas(replaceDatas); +// } catch (Exception e) { +// } +// } +// browserProps.setViewAttr(viewAttr); +// Map map = new HashMap(); +// Map map1 = new HashMap(); +// Map map2 = new HashMap(); +// map.put("fromModule","model"); +// map1.put("fromModule","model"); +// map2.put("fromModule","model"); +// browserProps.setDataParams(map1); +// browserProps.setDestDataParams(map2); +// browserProps.setCompleteParams(map); +// new BrowserInitUtil().initBrowser(browserProps,user.getLanguage()); +// } else { +// browserProps = new BrowserBean(fieldtype); +// if(!searchparavalue.isEmpty()){ +// BrowserValueInfoService browserValueInfoService = new BrowserValueInfoService(); +// List valueObj = null; +// List> replaceDatas = new ArrayList>(); +// try { +// valueObj = browserValueInfoService.getBrowserValueInfo(Util.getIntValue(fieldtype), fielddbtype, 0, searchparavalue, user.getLanguage(), -1); +// for(int i=0;i map = new HashMap(); +// if("141".equals(fieldtype)){ +// map = (Map)valueObj.get(i); +// }else { +// BrowserValueInfo m=(BrowserValueInfo)valueObj.get(i); +// map.put("id", m.getId()); +// map.put("name", m.getName()); +// map.put("count", m.getCount()); +// } +// replaceDatas.add(map); +// } +// json.put("replaceDatas",replaceDatas); +// browserProps.setReplaceDatas(replaceDatas); +// +// } catch (Exception e) { +// } +// } +// //Map map = new HashMap<>(); +// //map.put("fromModule","model"); +// //browserProps.setDataParams(map); +// //browserProps.setDestDataParams(map); +// //browserProps.setCompleteParams(map); +// browserProps.setViewAttr(viewAttr); +// new BrowserInitUtil().initBrowser(browserProps,user.getLanguage()); +// } +// if(conditiontransition.equalsIgnoreCase("1")){ +// // browserProps.setIsMultCheckbox(true); +// browserProps.setType(fieldtype); +// } +// +// json.put("browserProps", browserProps); +// } +// json.put("conditiontransition",conditiontransition); +// json.put("fieldid", fieldid); +// json.put("customname", customname); +// json.put("fieldtype", fieldtype); +// json.put("viewAttr",viewAttr); +// json.put("requiredCon",requiredCon); +// json.put("fieldhtmltype", fieldhtmltype); +// json.put("showtype",showtype );//显示模式主要 针对浏览框 0:浏览框模式 1:下拉拉框模式 +// json.put("groupid",groupid ); +// json.put("showmodel",showmodel ); +// json.put("orderid",orderid ); +// if(!"".equals(groupid) && !"0".equals(groupid)){ +// List list=groupMap.get(groupid); +// if(null==list){ +// list=new ArrayList(); +// } +// list.add(json); +// groupMap.put(groupid,list); +// }else{ +// datas.add(json); +// } +// } +// +// rs.executeQuery("select * from mode_customsearchgroup where customid=?",customid); +// Map group=new HashMap(); +// while(rs.next()){ +// float minOrder = 10000000; +// JSONObject json = new JSONObject(); +// String id=Util.null2String(rs.getString("id")); +// String groupname=Util.null2String(rs.getString("groupname")); +// List list=groupMap.get(id);//当前分组下的所有快捷搜索 +// if(null==list) { +// continue; +// } +// +// json.put("groupid",id); +// json.put("groupname",groupname); +// JSONArray chrild = new JSONArray(); +// for(int i=0;i map = ParamUtil.request2Map(request); + return ReturnResult.successed(getQuickSearchWrapper(user).getQuickSearchInfo(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } + + @POST + @Path("/saveQuickSearchInfo") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult saveQuickSearchInfo(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getQuickSearchWrapper(user).saveQuickSearchInfo(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } + + @GET + @Path("/getQuickSearchDetailInfo") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getQuickSearchDetailInfo(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getQuickSearchWrapper(user).getQuickSearchDetailInfo(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } +} diff --git a/src/com/engine/organization/wrapper/QuickSearchWrapper.java b/src/com/engine/organization/wrapper/QuickSearchWrapper.java new file mode 100644 index 00000000..be3c1ef0 --- /dev/null +++ b/src/com/engine/organization/wrapper/QuickSearchWrapper.java @@ -0,0 +1,32 @@ +package com.engine.organization.wrapper; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.organization.service.QuickSearchService; +import com.engine.organization.service.impl.QuickSearchServiceImpl; +import weaver.hrm.User; + +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2023/08/08 + * @version: 1.0 + */ +public class QuickSearchWrapper extends Service { + private QuickSearchService getQuickSearchService(User user) { + return ServiceUtil.getService(QuickSearchServiceImpl.class, user); + } + + public Map getQuickSearchInfo(Map params) { + return getQuickSearchService(user).getQuickSearchInfo(params); + } + + public Map saveQuickSearchInfo(Map params) { + return getQuickSearchService(user).saveQuickSearchInfo(params); + } + + public Map getQuickSearchDetailInfo(Map params) { + return getQuickSearchService(user).getQuickSearchDetailInfo(params); + } +} -- 2.40.0.windows.1 From 53e96cafe551a3781bb8340c6ec39a0341abd298 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 9 Aug 2023 17:12:50 +0800 Subject: [PATCH 75/87] =?UTF-8?q?recordSet=E8=B0=83=E6=95=B4=E6=88=90MyBat?= =?UTF-8?q?is?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/search/QuickSearchOption.java | 23 ++ .../entity/search/QuickSearchSetting.java | 3 + .../mapper/condition/QuickSearchMapper.java | 88 +++++- .../mapper/condition/QuickSearchMapper.xml | 91 ++++++ .../service/impl/QuickSearchServiceImpl.java | 297 ++++++++++-------- 5 files changed, 362 insertions(+), 140 deletions(-) create mode 100644 src/com/engine/organization/entity/search/QuickSearchOption.java diff --git a/src/com/engine/organization/entity/search/QuickSearchOption.java b/src/com/engine/organization/entity/search/QuickSearchOption.java new file mode 100644 index 00000000..f59fecfa --- /dev/null +++ b/src/com/engine/organization/entity/search/QuickSearchOption.java @@ -0,0 +1,23 @@ +package com.engine.organization.entity.search; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author:dxfeng + * @createTime: 2023/08/09 + * @version: 1.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class QuickSearchOption { + private String fieldId; + private String fieldLabel; + private String fieldName; + private String fieldHtmlType; + private String type; +} diff --git a/src/com/engine/organization/entity/search/QuickSearchSetting.java b/src/com/engine/organization/entity/search/QuickSearchSetting.java index 521c43ff..8babc795 100644 --- a/src/com/engine/organization/entity/search/QuickSearchSetting.java +++ b/src/com/engine/organization/entity/search/QuickSearchSetting.java @@ -20,4 +20,7 @@ public class QuickSearchSetting { private Integer isQuickSearch; private Integer isShowType; private Integer isHideName; + private Integer updateTor; + private String updateDate; + private String updateTime; } diff --git a/src/com/engine/organization/mapper/condition/QuickSearchMapper.java b/src/com/engine/organization/mapper/condition/QuickSearchMapper.java index 0e3aad30..1396dddc 100644 --- a/src/com/engine/organization/mapper/condition/QuickSearchMapper.java +++ b/src/com/engine/organization/mapper/condition/QuickSearchMapper.java @@ -1,8 +1,14 @@ package com.engine.organization.mapper.condition; +import com.engine.organization.entity.search.QuickSearchCondition; +import com.engine.organization.entity.search.QuickSearchDetail; +import com.engine.organization.entity.search.QuickSearchOption; import com.engine.organization.entity.search.QuickSearchSetting; import org.apache.ibatis.annotations.Param; +import java.util.Collection; +import java.util.List; + /** * @author:dxfeng * @createTime: 2023/08/09 @@ -14,7 +20,87 @@ public interface QuickSearchMapper { * 查询快速搜索设置 * * @param belongTo 人员ID - * @return 速搜索设置实体 + * @return 搜索设置实体 */ QuickSearchSetting getQuickSearchSetting(@Param("belongTo") Integer belongTo); + + /** + * 获取快速搜索条件 + * + * @param belongTo 人员ID + * @return 搜索条件实体 + */ + List getQuickSearchConditionList(@Param("belongTo") Integer belongTo); + + /** + * 获取快速搜索选项列表 + * + * @return 搜索选项列表 + */ + List getQuickSearchOptionList(); + + /** + * 插入快速搜索设置 + * + * @param quickSearchSetting 快速搜索设置实体 + * @return return + */ + int insertQuickSearchSetting(@Param("quickSearchSetting") QuickSearchSetting quickSearchSetting); + + /** + * 更新快速搜索设置 + * + * @param quickSearchSetting 快速搜索设置实体 + * @return return + */ + int updateQuickSearchSetting(@Param("quickSearchSetting") QuickSearchSetting quickSearchSetting); + + /** + * 插入快速搜索条件 + * + * @param quickSearchCondition 快速搜索条件实体 + * @return return + */ + int insertQuickSearchCondition(@Param("quickSearchCondition") QuickSearchCondition quickSearchCondition); + + /** + * 更新快速搜索条件 + * + * @param quickSearchCondition 快速搜索条件实体 + * @return return + */ + int updateQuickSearchCondition(@Param("quickSearchCondition") QuickSearchCondition quickSearchCondition); + + /** + * 按Cid删除快速搜索详细信息 + * + * @param cId condition主键 + * @return return + */ + int deleteQuickSearchDetailByCid(@Param("cId") Integer cId); + + /** + * 按ID删除快速搜索条件 + * + * @param ids ids + * @return return + */ + int deleteQuickSearchConditionByIds(@Param("ids") Collection ids); + + /** + * 按Cids删除快速搜索详细信息 + * + * @param cIds cIds + * @return return + */ + int deleteQuickSearchDetailByCids(@Param("cIds") Collection cIds); + + /** + * 按Cid获取快速搜索详细信息 + * + * @param cId cId + * @return return + */ + List getQuickSearchDetailByCid(@Param("cId") String cId); + } diff --git a/src/com/engine/organization/mapper/condition/QuickSearchMapper.xml b/src/com/engine/organization/mapper/condition/QuickSearchMapper.xml index 1d058e85..cd8e972e 100644 --- a/src/com/engine/organization/mapper/condition/QuickSearchMapper.xml +++ b/src/com/engine/organization/mapper/condition/QuickSearchMapper.xml @@ -8,4 +8,95 @@ from jcl_quicksearch_setting where belongto = #{belongTo} + + + + + + + + insert into jcl_quicksearch_setting(belongto, + isquicksearch, + isshowtype, + ishidename, + updatetor, + updatedate, + updatetime) + values (#{quickSearchSetting.belongTo}, + #{quickSearchSetting.isQuickSearch}, + #{quickSearchSetting.isShowType}, + #{quickSearchSetting.isHideName}, + #{quickSearchSetting.updateTor}, + #{quickSearchSetting.updateDate}, + #{quickSearchSetting.updateTime}) + + + + update jcl_quicksearch_setting + set isquicksearch=#{quickSearchSetting.isQuickSearch}, + isshowtype=#{quickSearchSetting.isShowType}, + ishidename=#{quickSearchSetting.isHideName} + where id = #{quickSearchSetting.id} + + + + insert into jcl_quicksearch_condition(belongto, fieldid, customname, type, orderid, showmodel) + values (#{quickSearchCondition.belongTo}, #{quickSearchCondition.fieldId}, #{quickSearchCondition.customName}, + #{quickSearchCondition.type}, #{quickSearchCondition.orderId}, #{quickSearchCondition.showModel}) + + + + update jcl_quicksearch_condition + set belongto=#{quickSearchCondition.belongTo}, + fieldid=#{quickSearchCondition.fieldId}, + customname=#{quickSearchCondition.customName}, + type=#{quickSearchCondition.type}, + orderid=#{quickSearchCondition.orderId}, + showmodel=#{quickSearchCondition.showModel} + where id = #{quickSearchCondition.id} + + + + delete + from jcl_quicksearch_detail + where cid = #{cId} + + + delete from jcl_quicksearch_condition where id in + + #{id} + + + + + delete from jcl_quicksearch_detail where cid in + + #{cid} + + + + \ No newline at end of file diff --git a/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java b/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java index 9d6f7216..32ad7b72 100644 --- a/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java +++ b/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java @@ -4,11 +4,14 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.cloudstore.dev.api.util.TextUtil; import com.engine.core.impl.Service; +import com.engine.organization.entity.search.QuickSearchCondition; +import com.engine.organization.entity.search.QuickSearchDetail; +import com.engine.organization.entity.search.QuickSearchOption; import com.engine.organization.entity.search.QuickSearchSetting; import com.engine.organization.mapper.condition.QuickSearchMapper; -import com.engine.organization.mapper.post.PostMapper; import com.engine.organization.service.QuickSearchService; import com.engine.organization.util.db.MapperProxyFactory; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import weaver.conn.RecordSet; import weaver.conn.RecordSetTrans; @@ -23,6 +26,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** @@ -44,16 +48,14 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic @Override public Map getQuickSearchInfo(Map params) { Map apiDatas = new HashMap<>(16); - RecordSet rs = new RecordSet(); //开关查询 - String sql = "select id,isquicksearch,isshowtype,ishidename from jcl_quicksearch_setting where belongto=?"; - rs.executeQuery(sql, user.getUID()); + QuickSearchSetting quickSearchSetting = getQuickSearchMapper().getQuickSearchSetting(user.getUID()); JSONObject json = new JSONObject(); - if (rs.next()) { - json.put("isquicksearch", Util.null2String(rs.getString("isquicksearch"))); - json.put("isshowtype", Util.null2s(rs.getString("isshowtype"), "1")); - json.put("ishidename", Util.null2o(rs.getString("ishidename"))); - json.put("id", Util.null2String(rs.getString("id"))); + if (null != quickSearchSetting) { + json.put("isquicksearch", Util.null2String(quickSearchSetting.getIsQuickSearch())); + json.put("isshowtype", null != quickSearchSetting.getIsShowType() ? quickSearchSetting.getIsShowType() : "1"); + json.put("ishidename", null != quickSearchSetting.getIsHideName() ? quickSearchSetting.getIsHideName() : "0"); + json.put("id", Util.null2String(quickSearchSetting.getId())); } else { json.put("isquicksearch", "0"); json.put("isshowtype", "0"); @@ -63,143 +65,154 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic apiDatas.put("setting", json); //条件字段查询 - sql = " select c.id, fieldid, c.customname, c.type typeTemp, c.orderid, c.showmodel from jcl_quicksearch_condition c where belongto = ? order by c.orderid asc, c.id asc"; - rs.executeQuery(sql, user.getUID()); + List quickSearchConditionList = getQuickSearchMapper().getQuickSearchConditionList(user.getUID()); JSONArray datas = new JSONArray(); - while (rs.next()) { - JSONObject obj = new JSONObject(); - String id = Util.null2String(rs.getString("id")); - String fieldid = Util.null2String(rs.getString("fieldid")); - String customname = Util.null2String(rs.getString("customname")); - String type = Util.null2String(rs.getString("typeTemp")); - String orderid = Util.null2String(rs.getString("orderid")); - String showmodel = Util.null2o(rs.getString("showmodel")); - obj.put("cid", id); - obj.put("key", id); - obj.put("fieldid", fieldid); - obj.put("orifieldid", fieldid); - obj.put("customname", TextUtil.toBase64ForMultilang(customname)); - obj.put("type", type); - obj.put("orderid", orderid); - obj.put("groupid", ""); - obj.put("showmodel", showmodel); - datas.add(obj); + if(CollectionUtils.isNotEmpty(quickSearchConditionList)) { + for (QuickSearchCondition quickSearchCondition : quickSearchConditionList) { + JSONObject obj = new JSONObject(); + String id = Util.null2String(quickSearchCondition.getId()); + String fieldId = Util.null2String(quickSearchCondition.getFieldId()); + String customName = Util.null2String(quickSearchCondition.getCustomName()); + String type = Util.null2String(quickSearchCondition.getType()); + String orderId = Util.null2String(quickSearchCondition.getOrderId()); + String showModel = null!=quickSearchCondition.getShowModel()?quickSearchCondition.getShowModel().toString():"0"; + obj.put("cid", id); + obj.put("key", id); + obj.put("fieldid", fieldId); + obj.put("orifieldid", fieldId); + obj.put("customname", TextUtil.toBase64ForMultilang(customName)); + obj.put("type", type); + obj.put("orderid", orderId); + obj.put("groupid", ""); + obj.put("showmodel", showModel); + datas.add(obj); + } } apiDatas.put("datas", datas); //字段下拉框查询 - sql = "select b.fieldid,b.fieldlabel,b.fieldname,fieldhtmltype,b.type typeTemp from hrm_formfield b inner join hrm_fieldgroup c on c.id=b.GROUPID and c.GROUPTYPE in(-1,1,3)"; - rs.executeQuery(sql); + List quickSearchOptionList = getQuickSearchMapper().getQuickSearchOptionList(); JSONArray options = new JSONArray(); - while (rs.next()) { - JSONObject obj = new JSONObject(); - String fieldhtmltype = Util.null2String(rs.getString("fieldhtmltype")); - String fieldid = Util.null2String(rs.getString("fieldid")); - String fieldname = Util.null2String(rs.getString("fieldname")); - - - String type = Util.null2String(rs.getString("typeTemp")); - int fieldlabel = Util.getIntValue(rs.getString("fieldlabel"), 0); - String labelname = SystemEnv.getHtmlLabelName(Util.getIntValue(rs.getString("fieldlabel")), user.getLanguage()); - String fieldtype = "2"; - boolean isShowModel = false; - if ("1".equals(fieldhtmltype)) { - if ("1".equals(type)) { - //单行文本 - fieldtype = "5"; - } else { - //整数或浮点数 - fieldtype = "1"; + if(CollectionUtils.isNotEmpty(quickSearchOptionList)) { + for (QuickSearchOption quickSearchOption : quickSearchOptionList) { + JSONObject obj = new JSONObject(); + String fieldHtmlType = Util.null2String(quickSearchOption.getFieldHtmlType()); + String fieldId = Util.null2String(quickSearchOption.getFieldId()); + // String fieldName = Util.null2String(quickSearchOption.getFieldName()); + String type = Util.null2String(quickSearchOption.getType()); + int fieldLabel = Util.getIntValue(quickSearchOption.getFieldLabel(), 0); + String labelName = SystemEnv.getHtmlLabelName(Util.getIntValue(quickSearchOption.getFieldLabel()), user.getLanguage()); + String fieldType = "2"; + boolean isShowModel = false; + if ("1".equals(fieldHtmlType)) { + if ("1".equals(type)) { + //单行文本 + fieldType = "5"; + } else { + //整数或浮点数 + fieldType = "1"; + isShowModel = true; + } + } else if ("2".equals(fieldHtmlType) && "1".equals(type)) { + //多行文本 + fieldType = "5"; + } else if ("2".equals(fieldHtmlType) && "2".equals(type)) { + //多行文本html + fieldType = "5"; + } else if ("5".equals(fieldHtmlType) && "3".equals(type)) { + //选择框单选框 + fieldType = "5"; isShowModel = true; - } - } else if ("2".equals(fieldhtmltype) && "1".equals(type)) { - //多行文本 - fieldtype = "5"; - } else if ("2".equals(fieldhtmltype) && "2".equals(type)) { - //多行文本html - fieldtype = "5"; - } else if ("5".equals(fieldhtmltype) && "3".equals(type)) { - //选择框单选框 - fieldtype = "5"; - isShowModel = true; - } else if ("5".equals(fieldhtmltype) && "2".equals(type)) { - //选择框多选框 - fieldtype = "5"; - isShowModel = true; - } else if ("5".equals(fieldhtmltype) && "1".equals(type)) { - //选择框 - fieldtype = "5"; - isShowModel = true; - } else if ("4".equals(fieldhtmltype) && "1".equals(type)) { - //check框 - fieldtype = "5"; - isShowModel = true; - } else if ("3".equals(fieldhtmltype)) { - if ("2".equals(type)) { - //日期 - fieldtype = "3"; - } else if ("1".equals(type)) { - //人力资源 1已被占用,重新换一个 - fieldtype = "-1"; - } else if ("3".equals(type)) { - //会议室联系单 3已被占用,重新换一个 - fieldtype = "-3"; - } else if ("5".equals(type)) { - //仓库5已被占用,重新换一个 - fieldtype = "-5"; + } else if ("5".equals(fieldHtmlType) && "2".equals(type)) { + //选择框多选框 + fieldType = "5"; + isShowModel = true; + } else if ("5".equals(fieldHtmlType) && "1".equals(type)) { + //选择框 + fieldType = "5"; + isShowModel = true; + } else if ("4".equals(fieldHtmlType) && "1".equals(type)) { + //check框 + fieldType = "5"; + isShowModel = true; + } else if ("3".equals(fieldHtmlType)) { + switch (type) { + case "2": + //日期 + fieldType = "3"; + break; + case "1": + //人力资源 1已被占用,重新换一个 + fieldType = "-1"; + break; + case "3": + //会议室联系单 3已被占用,重新换一个 + fieldType = "-3"; + break; + case "5": + //仓库5已被占用,重新换一个 + fieldType = "-5"; + break; + default: + fieldType = type; + break; + } } else { - fieldtype = type; + continue; } - } else { - continue; - } - if ("".equals(labelname)) { - labelname = SystemEnv.getHtmlLabelName(fieldlabel, user.getLanguage()); - } + if ("".equals(labelName)) { + labelName = SystemEnv.getHtmlLabelName(fieldLabel, user.getLanguage()); + } - obj.put("key", fieldid); - obj.put("fieldid", fieldid); - obj.put("showname", labelname); - obj.put("isdetailtable", "0"); - obj.put("type", fieldtype); - obj.put("isShowModel", isShowModel); - options.add(obj); + obj.put("key", fieldId); + obj.put("fieldid", fieldId); + obj.put("showname", labelName); + obj.put("isdetailtable", "0"); + obj.put("type", fieldType); + obj.put("isShowModel", isShowModel); + options.add(obj); + } } apiDatas.put("options", options); - JSONArray groupidOptions = new JSONArray(); - apiDatas.put("groupidOptions", groupidOptions); + apiDatas.put("groupidOptions", new JSONArray()); return apiDatas; } @Override public Map saveQuickSearchInfo(Map params) { Map apidatas = new HashMap<>(); - RecordSet rs = new RecordSet(); String isquicksearch = Util.null2String(params.get("isquicksearch")); String isshowtype = Util.null2String(params.get("isshowtype")); String ishidename = Util.null2String(params.get("ishidename")); String _id = Util.null2String(params.get("id")); String _data = Util.null2String(params.get("data")); JSONArray datas = JSONArray.parseArray(_data); - String sql = ""; //配置信息更新 if ("0".equals(_id) || "".equals(_id)) { + QuickSearchSetting quickSearchSetting = QuickSearchSetting.builder() + .belongTo(user.getUID()) + .isQuickSearch(Integer.parseInt(isquicksearch)) + .isShowType(Integer.parseInt(isshowtype)) + .isHideName(Integer.parseInt(ishidename)) + .updateTor(user.getUID()) + .updateDate(DateUtils.getCurrentDate()) + .updateTime(DateUtils.getCurrentTime()) + .build(); //第一次修改配置 - sql = "insert into jcl_quicksearch_setting(belongto,isquicksearch,isshowtype,ishidename,updatetor,updatedate,updatetime) values(?,?,?,?,?,?,?)"; - rs.executeUpdate(sql, user.getUID(), isquicksearch, isshowtype, ishidename, user.getUID(), DateUtils.getCurrentDate(), DateUtils.getCurrentTime()); + getQuickSearchMapper().insertQuickSearchSetting(quickSearchSetting); } else { - sql = "update jcl_quicksearch_setting set isquicksearch=?,isshowtype=?,ishidename=? where id=?"; - rs.executeUpdate(sql, isquicksearch, isshowtype, ishidename, _id); + QuickSearchSetting quickSearchSetting = QuickSearchSetting.builder() + .id(Integer.parseInt(_id)) + .isQuickSearch(Integer.parseInt(isquicksearch)) + .isShowType(Integer.parseInt(isshowtype)) + .isHideName(Integer.parseInt(ishidename)) + .build(); + getQuickSearchMapper().updateQuickSearchSetting(quickSearchSetting); } - - sql = "select id from jcl_quicksearch_condition where belongto=? "; - rs.executeQuery(sql, user.getUID()); - List list = new ArrayList<>(); - while (rs.next()) { - list.add(rs.getString("id")); - } + List quickSearchConditionList = getQuickSearchMapper().getQuickSearchConditionList(user.getUID()); + List list = quickSearchConditionList.stream().map(QuickSearchCondition::getId).collect(Collectors.toList()); for (int i = 0; i < datas.size(); i++) { JSONObject obj = (JSONObject) datas.get(i); @@ -210,34 +223,39 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic String type = obj.getString("type"); String orderid = obj.getString("orderid"); String showmodel = obj.getString("showmodel"); - String id = ""; if (cid > 0) { - list.remove(cid + ""); - sql = "update jcl_quicksearch_condition set belongto=?,fieldid=?,customname=?,type=?,orderid=?,showmodel=? where id=" + cid; - rs.executeUpdate(sql, user.getUID(), fieldid, customname, type, orderid, showmodel); - id = cid + ""; + list.remove(cid); + QuickSearchCondition quickSearchCondition = QuickSearchCondition.builder() + .belongTo(user.getUID()) + .fieldId(fieldid) + .customName(customname) + .type(StringUtils.isBlank(type) ? null : Integer.parseInt(type)) + .orderId(StringUtils.isBlank(orderid) ? null : Integer.parseInt(orderid)) + .showModel(StringUtils.isBlank(showmodel) ? null : Integer.parseInt(showmodel)) + .id(cid) + .build(); + getQuickSearchMapper().updateQuickSearchCondition(quickSearchCondition); if (!fieldid.equals(orifieldid)) { //改变了字段,将原先字段的明细删除 - sql = "delete from jcl_quicksearch_detail where cid=?"; - rs.executeUpdate(sql, id); + getQuickSearchMapper().deleteQuickSearchDetailByCid(cid); } } else { - sql = "insert into jcl_quicksearch_condition(belongto,fieldid,customname,type,orderid,showmodel) values(?,?,?,?,?,?)"; - rs.executeUpdate(sql, user.getUID(), fieldid, customname, type, orderid, showmodel); - sql = "select max(id) id from jcl_quicksearch_condition where belongto=?"; - rs.executeQuery(sql, user.getUID()); - if (rs.next()) { - id = Util.null2String(rs.getString("id")); - } + QuickSearchCondition quickSearchCondition = QuickSearchCondition.builder() + .belongTo(user.getUID()) + .fieldId(fieldid) + .customName(customname) + .type(StringUtils.isBlank(type) ? null : Integer.parseInt(type)) + .orderId(StringUtils.isBlank(orderid) ? null : Integer.parseInt(orderid)) + .showModel(StringUtils.isBlank(showmodel) ? null : Integer.parseInt(showmodel)) + .build(); + getQuickSearchMapper().insertQuickSearchCondition(quickSearchCondition); } } - if (list.size() > 0) { - String ids = StringUtils.join(list.toArray(), ","); - rs.executeUpdate("delete from jcl_quicksearch_condition where id in (" + ids + ")"); - sql = "delete from jcl_quicksearch_detail where cid in (" + ids + ")"; - rs.executeUpdate(sql); + if (CollectionUtils.isNotEmpty(list)) { + getQuickSearchMapper().deleteQuickSearchConditionByIds(list); + getQuickSearchMapper().deleteQuickSearchDetailByCids(list); } @@ -250,6 +268,7 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic String cid = weaver.formmode.exttools.impexp.common.StringUtils.null2String(params.get("cid")); RecordSet rs = new RecordSet(); //开关查询 + List quickSearchDetailByCid = getQuickSearchMapper().getQuickSearchDetailByCid(cid); String sql = "select id,customname,minnum,maxnum,type typeTemp,orderid,fieldid,belongto from jcl_quicksearch_detail where cid=? order by orderid asc,id asc"; rs.executeQuery(sql, cid); JSONArray datas = new JSONArray(); @@ -288,9 +307,9 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic int digitsIndex = dbtype.indexOf(","); precision = Util.getIntValue(dbtype.substring(digitsIndex + 1, dbtype.length() - 1), 0); } - if ("1".equals(fieldhtmltype) && "5".equals(type)) { - //precision = Util.getIntValue(rs.getString("qfws"),2); - } + //if ("1".equals(fieldhtmltype) && "5".equals(type)) { + // precision = Util.getIntValue(rs.getString("qfws"),2); + //} } apidatas.put("datas", datas); apidatas.put("precision", precision); @@ -314,8 +333,8 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic list.add(rs.getString("id")); } try { - for (Object object : datas) { - JSONObject obj = (JSONObject) object; + for (int i = 0; i < datas.size(); i++) { + JSONObject obj = (JSONObject) datas.get(i); String customname = obj.getString("customname"); String fieldid = obj.getString("fieldid"); String minnum = obj.getString("minnum"); -- 2.40.0.windows.1 From 55a22e8038525b00009d2379d184789aaeda3635 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 10 Aug 2023 11:34:08 +0800 Subject: [PATCH 76/87] =?UTF-8?q?=E5=BF=AB=E6=8D=B7=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E6=8E=A5=E5=8F=A3BUG=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/search/QuickSearchField.java | 21 ++ .../mapper/condition/QuickSearchMapper.java | 37 ++- .../mapper/condition/QuickSearchMapper.xml | 38 +++- .../service/impl/QuickSearchServiceImpl.java | 211 ++++++++---------- 4 files changed, 189 insertions(+), 118 deletions(-) create mode 100644 src/com/engine/organization/entity/search/QuickSearchField.java diff --git a/src/com/engine/organization/entity/search/QuickSearchField.java b/src/com/engine/organization/entity/search/QuickSearchField.java new file mode 100644 index 00000000..b6d58efb --- /dev/null +++ b/src/com/engine/organization/entity/search/QuickSearchField.java @@ -0,0 +1,21 @@ +package com.engine.organization.entity.search; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author:dxfeng + * @createTime: 2023/08/09 + * @version: 1.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class QuickSearchField { + private String fieldHtmlType; + private String type; + private String fieldDbType; +} diff --git a/src/com/engine/organization/mapper/condition/QuickSearchMapper.java b/src/com/engine/organization/mapper/condition/QuickSearchMapper.java index 1396dddc..4bef7efb 100644 --- a/src/com/engine/organization/mapper/condition/QuickSearchMapper.java +++ b/src/com/engine/organization/mapper/condition/QuickSearchMapper.java @@ -1,9 +1,6 @@ package com.engine.organization.mapper.condition; -import com.engine.organization.entity.search.QuickSearchCondition; -import com.engine.organization.entity.search.QuickSearchDetail; -import com.engine.organization.entity.search.QuickSearchOption; -import com.engine.organization.entity.search.QuickSearchSetting; +import com.engine.organization.entity.search.*; import org.apache.ibatis.annotations.Param; import java.util.Collection; @@ -103,4 +100,36 @@ public interface QuickSearchMapper { */ List getQuickSearchDetailByCid(@Param("cId") String cId); + /** + * 按条件Id获取快速搜索字段列表 + * + * @param id 条件Id + * @return return + */ + List getQuickSearchFieldListByConditionId(@Param("id") String id); + + /** + * 更新快速搜索详细信息 + * + * @param quickSearchDetail 详细信息实体 + * @return return + */ + int updateQuickSearchDetail(@Param("quickSearchDetail") QuickSearchDetail quickSearchDetail); + + /** + * 插入快速搜索详细信息 + * + * @param quickSearchDetail 详细信息实体 + * @return return + */ + int insertQuickSearchDetail(@Param("quickSearchDetail") QuickSearchDetail quickSearchDetail); + + /** + * 按ID删除快速搜索详细信息 + * + * @param ids id + * @return return + */ + int deleteQuickSearchDetailByIds(@Param("ids") Collection ids); + } diff --git a/src/com/engine/organization/mapper/condition/QuickSearchMapper.xml b/src/com/engine/organization/mapper/condition/QuickSearchMapper.xml index cd8e972e..19925ce8 100644 --- a/src/com/engine/organization/mapper/condition/QuickSearchMapper.xml +++ b/src/com/engine/organization/mapper/condition/QuickSearchMapper.xml @@ -36,6 +36,13 @@ where cid = #{cId} order by orderid, id + insert into jcl_quicksearch_setting(belongto, @@ -68,6 +75,13 @@ #{quickSearchCondition.type}, #{quickSearchCondition.orderId}, #{quickSearchCondition.showModel}) + + insert into jcl_quicksearch_detail(cid, customname, minnum, maxnum, type, orderid, fieldid, belongto) + values (#{quickSearchDetail.cId}, #{quickSearchDetail.customName}, #{quickSearchDetail.minNum}, + #{quickSearchDetail.maxNum}, #{quickSearchDetail.type}, #{quickSearchDetail.orderId}, + #{quickSearchDetail.fieldId}, #{quickSearchDetail.belongTo}) + + update jcl_quicksearch_condition set belongto=#{quickSearchCondition.belongTo}, @@ -79,24 +93,44 @@ where id = #{quickSearchCondition.id} + + update jcl_quicksearch_detail + set cid=#{quickSearchDetail.cId}, + customname=#{quickSearchDetail.customName}, + minnum=#{quickSearchDetail.minNum}, + maxnum=#{quickSearchDetail.maxNum}, + type=#{quickSearchDetail.type}, + orderid=#{quickSearchDetail.orderId}, + fieldid=#{quickSearchDetail.fieldId}, + belongto=#{quickSearchDetail.belongTo} + where id = #{quickSearchDetail.id} + + delete from jcl_quicksearch_detail where cid = #{cId} - + delete from jcl_quicksearch_condition where id in #{id} - + delete from jcl_quicksearch_detail where cid in #{cid} + + delete from jcl_quicksearch_detail where id in + + #{id} + + + \ No newline at end of file diff --git a/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java b/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java index 32ad7b72..8109b73d 100644 --- a/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java +++ b/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java @@ -4,17 +4,12 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.cloudstore.dev.api.util.TextUtil; import com.engine.core.impl.Service; -import com.engine.organization.entity.search.QuickSearchCondition; -import com.engine.organization.entity.search.QuickSearchDetail; -import com.engine.organization.entity.search.QuickSearchOption; -import com.engine.organization.entity.search.QuickSearchSetting; +import com.engine.organization.entity.search.*; import com.engine.organization.mapper.condition.QuickSearchMapper; import com.engine.organization.service.QuickSearchService; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; -import weaver.conn.RecordSet; -import weaver.conn.RecordSetTrans; import weaver.formmode.exttools.impexp.common.DateUtils; import weaver.general.BaseBean; import weaver.general.Util; @@ -22,7 +17,6 @@ import weaver.hrm.User; import weaver.hrm.resource.ResourceComInfo; import weaver.systeminfo.SystemEnv; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -67,7 +61,7 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic //条件字段查询 List quickSearchConditionList = getQuickSearchMapper().getQuickSearchConditionList(user.getUID()); JSONArray datas = new JSONArray(); - if(CollectionUtils.isNotEmpty(quickSearchConditionList)) { + if (CollectionUtils.isNotEmpty(quickSearchConditionList)) { for (QuickSearchCondition quickSearchCondition : quickSearchConditionList) { JSONObject obj = new JSONObject(); String id = Util.null2String(quickSearchCondition.getId()); @@ -75,7 +69,7 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic String customName = Util.null2String(quickSearchCondition.getCustomName()); String type = Util.null2String(quickSearchCondition.getType()); String orderId = Util.null2String(quickSearchCondition.getOrderId()); - String showModel = null!=quickSearchCondition.getShowModel()?quickSearchCondition.getShowModel().toString():"0"; + String showModel = null != quickSearchCondition.getShowModel() ? quickSearchCondition.getShowModel().toString() : "0"; obj.put("cid", id); obj.put("key", id); obj.put("fieldid", fieldId); @@ -93,7 +87,7 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic //字段下拉框查询 List quickSearchOptionList = getQuickSearchMapper().getQuickSearchOptionList(); JSONArray options = new JSONArray(); - if(CollectionUtils.isNotEmpty(quickSearchOptionList)) { + if (CollectionUtils.isNotEmpty(quickSearchOptionList)) { for (QuickSearchOption quickSearchOption : quickSearchOptionList) { JSONObject obj = new JSONObject(); String fieldHtmlType = Util.null2String(quickSearchOption.getFieldHtmlType()); @@ -181,20 +175,22 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic @Override public Map saveQuickSearchInfo(Map params) { - Map apidatas = new HashMap<>(); - String isquicksearch = Util.null2String(params.get("isquicksearch")); - String isshowtype = Util.null2String(params.get("isshowtype")); - String ishidename = Util.null2String(params.get("ishidename")); - String _id = Util.null2String(params.get("id")); - String _data = Util.null2String(params.get("data")); - JSONArray datas = JSONArray.parseArray(_data); + Map apiDatas = new HashMap<>(16); + String isQuickSearch = Util.null2String(params.get("isquicksearch")); + String isShowType = Util.null2String(params.get("isshowtype")); + isShowType = StringUtils.isBlank(isShowType) ? "0" : isShowType; + String isHideName = Util.null2String(params.get("ishidename")); + isHideName = StringUtils.isBlank(isHideName) ? "0" : isHideName; + String id = Util.null2String(params.get("id")); + String data = Util.null2String(params.get("data")); + JSONArray datas = JSONArray.parseArray(data); //配置信息更新 - if ("0".equals(_id) || "".equals(_id)) { + if ("0".equals(id) || "".equals(id)) { QuickSearchSetting quickSearchSetting = QuickSearchSetting.builder() .belongTo(user.getUID()) - .isQuickSearch(Integer.parseInt(isquicksearch)) - .isShowType(Integer.parseInt(isshowtype)) - .isHideName(Integer.parseInt(ishidename)) + .isQuickSearch(Integer.parseInt(isQuickSearch)) + .isShowType(Integer.parseInt(isShowType)) + .isHideName(Integer.parseInt(isHideName)) .updateTor(user.getUID()) .updateDate(DateUtils.getCurrentDate()) .updateTime(DateUtils.getCurrentTime()) @@ -203,10 +199,10 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic getQuickSearchMapper().insertQuickSearchSetting(quickSearchSetting); } else { QuickSearchSetting quickSearchSetting = QuickSearchSetting.builder() - .id(Integer.parseInt(_id)) - .isQuickSearch(Integer.parseInt(isquicksearch)) - .isShowType(Integer.parseInt(isshowtype)) - .isHideName(Integer.parseInt(ishidename)) + .id(Integer.parseInt(id)) + .isQuickSearch(Integer.parseInt(isQuickSearch)) + .isShowType(Integer.parseInt(isShowType)) + .isHideName(Integer.parseInt(isHideName)) .build(); getQuickSearchMapper().updateQuickSearchSetting(quickSearchSetting); } @@ -216,41 +212,40 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic for (int i = 0; i < datas.size(); i++) { JSONObject obj = (JSONObject) datas.get(i); - String fieldid = obj.getString("fieldid"); - String orifieldid = obj.getString("orifieldid"); - int cid = Util.getIntValue(obj.getString("cid")); - String customname = obj.getString("customname"); + String fieldId = obj.getString("fieldid"); + String oriFieldId = obj.getString("orifieldid"); + Integer cid = Util.getIntValue(obj.getString("cid")); + String customName = obj.getString("customname"); String type = obj.getString("type"); - String orderid = obj.getString("orderid"); - String showmodel = obj.getString("showmodel"); + String orderId = obj.getString("orderid"); + String showModel = obj.getString("showmodel"); if (cid > 0) { list.remove(cid); QuickSearchCondition quickSearchCondition = QuickSearchCondition.builder() .belongTo(user.getUID()) - .fieldId(fieldid) - .customName(customname) + .fieldId(fieldId) + .customName(customName) .type(StringUtils.isBlank(type) ? null : Integer.parseInt(type)) - .orderId(StringUtils.isBlank(orderid) ? null : Integer.parseInt(orderid)) - .showModel(StringUtils.isBlank(showmodel) ? null : Integer.parseInt(showmodel)) + .orderId(StringUtils.isBlank(orderId) ? null : Integer.parseInt(orderId)) + .showModel(StringUtils.isBlank(showModel) ? null : Integer.parseInt(showModel)) .id(cid) .build(); getQuickSearchMapper().updateQuickSearchCondition(quickSearchCondition); - if (!fieldid.equals(orifieldid)) { + if (!fieldId.equals(oriFieldId)) { //改变了字段,将原先字段的明细删除 getQuickSearchMapper().deleteQuickSearchDetailByCid(cid); } } else { QuickSearchCondition quickSearchCondition = QuickSearchCondition.builder() .belongTo(user.getUID()) - .fieldId(fieldid) - .customName(customname) + .fieldId(fieldId) + .customName(customName) .type(StringUtils.isBlank(type) ? null : Integer.parseInt(type)) - .orderId(StringUtils.isBlank(orderid) ? null : Integer.parseInt(orderid)) - .showModel(StringUtils.isBlank(showmodel) ? null : Integer.parseInt(showmodel)) + .orderId(StringUtils.isBlank(orderId) ? null : Integer.parseInt(orderId)) + .showModel(StringUtils.isBlank(showModel) ? null : Integer.parseInt(showModel)) .build(); getQuickSearchMapper().insertQuickSearchCondition(quickSearchCondition); } - } if (CollectionUtils.isNotEmpty(list)) { @@ -258,113 +253,105 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic getQuickSearchMapper().deleteQuickSearchDetailByCids(list); } - - return apidatas; + return apiDatas; } @Override public Map getQuickSearchDetailInfo(Map params) { - Map apidatas = new HashMap<>(16); + Map apiDatas = new HashMap<>(16); String cid = weaver.formmode.exttools.impexp.common.StringUtils.null2String(params.get("cid")); - RecordSet rs = new RecordSet(); //开关查询 - List quickSearchDetailByCid = getQuickSearchMapper().getQuickSearchDetailByCid(cid); - String sql = "select id,customname,minnum,maxnum,type typeTemp,orderid,fieldid,belongto from jcl_quicksearch_detail where cid=? order by orderid asc,id asc"; - rs.executeQuery(sql, cid); + List quickSearchDetailList = getQuickSearchMapper().getQuickSearchDetailByCid(cid); JSONArray datas = new JSONArray(); - while (rs.next()) { + for (QuickSearchDetail quickSearchDetail : quickSearchDetailList) { JSONObject obj = new JSONObject(); - String id = Util.null2String(rs.getString("id")); - String customname = Util.null2String(rs.getString("customname")); - String minnum = Util.null2String(rs.getString("minnum")); - minnum = minnum.startsWith("0E") ? "0" : minnum; - String maxnum = Util.null2String(rs.getString("maxnum")); - maxnum = maxnum.startsWith("0E") ? "0" : maxnum; - String type = Util.null2String(rs.getString("typeTemp")); - String orderid = Util.null2String(rs.getString("orderid")); - String fieldid = Util.null2String(rs.getString("fieldid")); - String belongto = Util.null2String(rs.getString("belongto")); + String id = Util.null2String(quickSearchDetail.getId()); + String customName = Util.null2String(quickSearchDetail.getCustomName()); + String minNum = Util.null2String(quickSearchDetail.getMinNum()); + minNum = minNum.startsWith("0E") ? "0" : minNum; + String maxNum = Util.null2String(quickSearchDetail.getMaxNum()); + maxNum = maxNum.startsWith("0E") ? "0" : maxNum; + String type = Util.null2String(quickSearchDetail.getType()); + String orderId = Util.null2String(quickSearchDetail.getOrderId()); + String fieldId = Util.null2String(quickSearchDetail.getFieldId()); + String belongTo = Util.null2String(quickSearchDetail.getBelongTo()); obj.put("id", id); obj.put("cid", cid); obj.put("key", id); - obj.put("customname", customname); - obj.put("minnum", minnum); - obj.put("maxnum", maxnum); + obj.put("customname", customName); + obj.put("minnum", minNum); + obj.put("maxnum", maxNum); obj.put("type", type); - obj.put("fieldid", fieldid); - obj.put("belongto", belongto); - obj.put("orderid", orderid); + obj.put("fieldid", fieldId); + obj.put("belongto", belongTo); + obj.put("orderid", orderId); datas.add(obj); } - sql = "select b.fieldhtmltype,b.type typeTemp,b.fielddbtype from jcl_quicksearch_condition c left join hrm_formfield b on b.fieldid =c.fieldid where c.id= ? "; - rs.executeQuery(sql, cid); + List quickSearchFieldList = getQuickSearchMapper().getQuickSearchFieldListByConditionId(cid); int precision = 0; - while (rs.next()) { - String fieldhtmltype = rs.getString("fieldhtmltype"); - String type = rs.getString("typeTemp"); - String dbtype = rs.getString("fielddbtype"); - if ("1".equals(fieldhtmltype) && !"1".equals(type)) { - int digitsIndex = dbtype.indexOf(","); - precision = Util.getIntValue(dbtype.substring(digitsIndex + 1, dbtype.length() - 1), 0); + for (QuickSearchField quickSearchField : quickSearchFieldList) { + String fieldHtmlType = quickSearchField.getFieldHtmlType(); + String type = quickSearchField.getType(); + String fieldDbType = quickSearchField.getFieldDbType(); + if ("1".equals(fieldHtmlType) && !"1".equals(type)) { + int digitsIndex = fieldDbType.indexOf(","); + precision = Util.getIntValue(fieldDbType.substring(digitsIndex + 1, fieldDbType.length() - 1), 0); } - //if ("1".equals(fieldhtmltype) && "5".equals(type)) { - // precision = Util.getIntValue(rs.getString("qfws"),2); - //} } - apidatas.put("datas", datas); - apidatas.put("precision", precision); - return apidatas; + apiDatas.put("datas", datas); + apiDatas.put("precision", precision); + return apiDatas; } @Override public Map saveQuickSearchDetailInfo(Map params) { - Map apidatas = new HashMap<>(16); - RecordSet rs = new RecordSet(); + Map apiDatas = new HashMap<>(16); String cid = Util.null2String(params.get("cid")); - String _data = Util.null2String(params.get("data")); - JSONArray datas = JSONArray.parseArray(_data); - String sql = ""; - //条件字段更新 - RecordSetTrans rst = new RecordSetTrans(); - sql = "select id from jcl_quicksearch_detail where cid=? "; - rs.executeQuery(sql, cid); - List list = new ArrayList<>(); - while (rs.next()) { - list.add(rs.getString("id")); - } + String data = Util.null2String(params.get("data")); + JSONArray datas = JSONArray.parseArray(data); + List list = getQuickSearchMapper().getQuickSearchDetailByCid(cid).stream().map(QuickSearchDetail::getId).collect(Collectors.toList()); + try { for (int i = 0; i < datas.size(); i++) { JSONObject obj = (JSONObject) datas.get(i); - String customname = obj.getString("customname"); - String fieldid = obj.getString("fieldid"); - String minnum = obj.getString("minnum"); - minnum = "".equals(minnum) ? null : minnum; - String maxnum = obj.getString("maxnum"); - maxnum = "".equals(maxnum) ? null : maxnum; + String customName = obj.getString("customname"); + String fieldId = obj.getString("fieldid"); + String minNum = obj.getString("minnum"); + minNum = "".equals(minNum) ? null : minNum; + String maxNum = obj.getString("maxnum"); + maxNum = "".equals(maxNum) ? null : maxNum; String type = obj.getString("type"); - String orderid = obj.getString("orderid"); - int id = Util.getIntValue(obj.getString("id")); + String orderId = obj.getString("orderid"); + Integer id = Util.getIntValue(obj.getString("id")); + + QuickSearchDetail quickSearchDetail = QuickSearchDetail.builder() + .cId(StringUtils.isBlank(cid) ? null : Integer.parseInt(cid)) + .customName(customName) + .minNum(StringUtils.isBlank(minNum) ? null : Integer.parseInt(minNum)) + .maxNum(StringUtils.isBlank(maxNum) ? null : Integer.parseInt(maxNum)) + .type(StringUtils.isBlank(type) ? null : Integer.parseInt(type)) + .orderId(StringUtils.isBlank(orderId) ? null : Integer.parseInt(orderId)) + .fieldId(fieldId) + .belongTo(user.getUID()) + .build(); + if (id > 0) { - list.remove(id + ""); - sql = "update jcl_quicksearch_detail set cid=?,customname=?,minnum=?,maxnum=?,type=?,orderid=?,fieldid=?,belongto=? where id=?"; - rst.executeUpdate(sql, cid, customname, minnum, maxnum, type, orderid, fieldid, user.getUID(), id); + list.remove(id); + quickSearchDetail.setId(id); + getQuickSearchMapper().updateQuickSearchDetail(quickSearchDetail); } else { - sql = "insert into jcl_quicksearch_detail(cid,customname,minnum,maxnum,type,orderid,fieldid,belongto) values(?,?,?,?,?,?,?,?)"; - rst.executeUpdate(sql, cid, customname, minnum, maxnum, type, orderid, fieldid, user.getUID()); + getQuickSearchMapper().insertQuickSearchDetail(quickSearchDetail); } } - rst.commit(); - if (list.size() > 0) { - String ids = StringUtils.join(list.toArray(), ","); - rs.executeUpdate("delete from jcl_quicksearch_detail where id in (" + ids + ")"); + if (CollectionUtils.isNotEmpty(list)) { + getQuickSearchMapper().deleteQuickSearchDetailByIds(list); } } catch (Exception e) { - rst.rollback(); new BaseBean().writeLog(e); e.printStackTrace(); } - return apidatas; + return apiDatas; } -- 2.40.0.windows.1 From dc0c823caf4155e6cc47ec3174cf1e55b467fb69 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 11 Aug 2023 09:47:33 +0800 Subject: [PATCH 77/87] =?UTF-8?q?=E5=BF=AB=E6=8D=B7=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E6=8E=A5=E5=8F=A3BUG=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/web/QuickSearchController.java | 12 ++++++++++++ .../organization/wrapper/QuickSearchWrapper.java | 4 ++++ 2 files changed, 16 insertions(+) diff --git a/src/com/engine/organization/web/QuickSearchController.java b/src/com/engine/organization/web/QuickSearchController.java index 84649f72..40b59a33 100644 --- a/src/com/engine/organization/web/QuickSearchController.java +++ b/src/com/engine/organization/web/QuickSearchController.java @@ -65,4 +65,16 @@ public class QuickSearchController { return ReturnResult.exceptionHandle(e); } } + @POST + @Path("/saveQuickSearchDetailInfo") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult saveQuickSearchDetailInfo(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getQuickSearchWrapper(user).saveQuickSearchDetailInfo(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } } diff --git a/src/com/engine/organization/wrapper/QuickSearchWrapper.java b/src/com/engine/organization/wrapper/QuickSearchWrapper.java index be3c1ef0..5f5a9411 100644 --- a/src/com/engine/organization/wrapper/QuickSearchWrapper.java +++ b/src/com/engine/organization/wrapper/QuickSearchWrapper.java @@ -29,4 +29,8 @@ public class QuickSearchWrapper extends Service { public Map getQuickSearchDetailInfo(Map params) { return getQuickSearchService(user).getQuickSearchDetailInfo(params); } + + public Map saveQuickSearchDetailInfo(Map params) { + return getQuickSearchService(user).saveQuickSearchDetailInfo(params); + } } -- 2.40.0.windows.1 From 939c6c3f51884fc8d3b426c83ee0ebe7ae7d1b50 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 11 Aug 2023 15:44:58 +0800 Subject: [PATCH 78/87] =?UTF-8?q?=E5=BF=AB=E6=8D=B7=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E6=8E=A5=E5=8F=A3BUG=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/condition/QuickSearchMapper.java | 2 +- .../mapper/condition/QuickSearchMapper.xml | 23 +++++++++++-------- .../service/impl/QuickSearchServiceImpl.java | 7 ++++-- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/com/engine/organization/mapper/condition/QuickSearchMapper.java b/src/com/engine/organization/mapper/condition/QuickSearchMapper.java index 4bef7efb..845b49ad 100644 --- a/src/com/engine/organization/mapper/condition/QuickSearchMapper.java +++ b/src/com/engine/organization/mapper/condition/QuickSearchMapper.java @@ -27,7 +27,7 @@ public interface QuickSearchMapper { * @param belongTo 人员ID * @return 搜索条件实体 */ - List getQuickSearchConditionList(@Param("belongTo") Integer belongTo); + List getQuickSearchConditionList(@Param("belongTo") Integer belongTo, @Param("modelId") Integer modelId); /** * 获取快速搜索选项列表 diff --git a/src/com/engine/organization/mapper/condition/QuickSearchMapper.xml b/src/com/engine/organization/mapper/condition/QuickSearchMapper.xml index 19925ce8..4206d1c9 100644 --- a/src/com/engine/organization/mapper/condition/QuickSearchMapper.xml +++ b/src/com/engine/organization/mapper/condition/QuickSearchMapper.xml @@ -14,6 +14,7 @@ select c.id, fieldid, c.customname, c.type, c.orderid, c.showmodel from jcl_quicksearch_condition c where belongto = #{belongTo} + and modelid = #{modelId} order by c.orderid, c.id @@ -70,16 +71,10 @@ - insert into jcl_quicksearch_condition(belongto, fieldid, customname, type, orderid, showmodel) + insert into jcl_quicksearch_condition(belongto, fieldid, customname, type, orderid, showmodel, modelid) values (#{quickSearchCondition.belongTo}, #{quickSearchCondition.fieldId}, #{quickSearchCondition.customName}, - #{quickSearchCondition.type}, #{quickSearchCondition.orderId}, #{quickSearchCondition.showModel}) - - - - insert into jcl_quicksearch_detail(cid, customname, minnum, maxnum, type, orderid, fieldid, belongto) - values (#{quickSearchDetail.cId}, #{quickSearchDetail.customName}, #{quickSearchDetail.minNum}, - #{quickSearchDetail.maxNum}, #{quickSearchDetail.type}, #{quickSearchDetail.orderId}, - #{quickSearchDetail.fieldId}, #{quickSearchDetail.belongTo}) + #{quickSearchCondition.type}, #{quickSearchCondition.orderId}, #{quickSearchCondition.showModel}, + #{quickSearchCondition.modelId}) @@ -89,10 +84,18 @@ customname=#{quickSearchCondition.customName}, type=#{quickSearchCondition.type}, orderid=#{quickSearchCondition.orderId}, - showmodel=#{quickSearchCondition.showModel} + showmodel=#{quickSearchCondition.showModel}, + modelid = #{quickSearchCondition.modelId} where id = #{quickSearchCondition.id} + + insert into jcl_quicksearch_detail(cid, customname, minnum, maxnum, type, orderid, fieldid, belongto) + values (#{quickSearchDetail.cId}, #{quickSearchDetail.customName}, #{quickSearchDetail.minNum}, + #{quickSearchDetail.maxNum}, #{quickSearchDetail.type}, #{quickSearchDetail.orderId}, + #{quickSearchDetail.fieldId}, #{quickSearchDetail.belongTo}) + + update jcl_quicksearch_detail set cid=#{quickSearchDetail.cId}, diff --git a/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java b/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java index 8109b73d..1c9a152a 100644 --- a/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java +++ b/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject; import com.cloudstore.dev.api.util.TextUtil; import com.engine.core.impl.Service; import com.engine.organization.entity.search.*; +import com.engine.organization.enums.LogModuleNameEnum; import com.engine.organization.mapper.condition.QuickSearchMapper; import com.engine.organization.service.QuickSearchService; import com.engine.organization.util.db.MapperProxyFactory; @@ -59,7 +60,7 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic apiDatas.put("setting", json); //条件字段查询 - List quickSearchConditionList = getQuickSearchMapper().getQuickSearchConditionList(user.getUID()); + List quickSearchConditionList = getQuickSearchMapper().getQuickSearchConditionList(user.getUID(), LogModuleNameEnum.RESOURCE.getValue()); JSONArray datas = new JSONArray(); if (CollectionUtils.isNotEmpty(quickSearchConditionList)) { for (QuickSearchCondition quickSearchCondition : quickSearchConditionList) { @@ -207,7 +208,7 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic getQuickSearchMapper().updateQuickSearchSetting(quickSearchSetting); } - List quickSearchConditionList = getQuickSearchMapper().getQuickSearchConditionList(user.getUID()); + List quickSearchConditionList = getQuickSearchMapper().getQuickSearchConditionList(user.getUID(),LogModuleNameEnum.RESOURCE.getValue()); List list = quickSearchConditionList.stream().map(QuickSearchCondition::getId).collect(Collectors.toList()); for (int i = 0; i < datas.size(); i++) { @@ -229,6 +230,7 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic .orderId(StringUtils.isBlank(orderId) ? null : Integer.parseInt(orderId)) .showModel(StringUtils.isBlank(showModel) ? null : Integer.parseInt(showModel)) .id(cid) + .modelId(LogModuleNameEnum.RESOURCE.getValue()) .build(); getQuickSearchMapper().updateQuickSearchCondition(quickSearchCondition); if (!fieldId.equals(oriFieldId)) { @@ -243,6 +245,7 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic .type(StringUtils.isBlank(type) ? null : Integer.parseInt(type)) .orderId(StringUtils.isBlank(orderId) ? null : Integer.parseInt(orderId)) .showModel(StringUtils.isBlank(showModel) ? null : Integer.parseInt(showModel)) + .modelId(LogModuleNameEnum.RESOURCE.getValue()) .build(); getQuickSearchMapper().insertQuickSearchCondition(quickSearchCondition); } -- 2.40.0.windows.1 From 17b9c57649d973be054958d1900883ae201aba9f Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 14 Aug 2023 15:22:21 +0800 Subject: [PATCH 79/87] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ChartServiceImpl.java | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index e43ee6cb..1ad2d0b4 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -6,7 +6,6 @@ import com.engine.organization.entity.chart.ChartPO; import com.engine.organization.entity.chart.CompanyTreePO; 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; import com.engine.organization.service.OrgChartService; import com.engine.organization.util.HasRightUtil; @@ -54,10 +53,6 @@ public class ChartServiceImpl extends Service implements ChartService { */ boolean hasVirtualFields; - private JclOrgMapper getJclOrgMapMapper() { - return MapperProxyFactory.getProxy(JclOrgMapper.class,true); - } - private OrgChartService getOrgChartService(User user) { return ServiceUtil.getService(OrgChartServiceImpl.class, user); @@ -1016,13 +1011,13 @@ public class ChartServiceImpl extends Service implements ChartService { } else { if (hasVirtualFields) { if (showVirtual) { - return "select a.id,a.subcompanyname as name,'1' as type ,b.fblx as isvitual from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where a.id = '" + root + "'"; + return "select a.id,a.subcompanyname as name,'1' as type ,b.fblx as isvitual from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where a.id = '" + root + "' order by showorder,id"; } else { - return "select a.id,a.subcompanyname as name,'1' as type ,b.fblx as isvitual from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where a.id = '" + root + "' and (b.fblx is null or b.fblx!='1')"; + return "select a.id,a.subcompanyname as name,'1' as type ,b.fblx as isvitual from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where a.id = '" + root + "' and (b.fblx is null or b.fblx!='1') order by showorder,id"; } } else { - return "select id,subcompanyname as name,'1' as type from " + SUB_COMPANY_TABLE + " where id = '" + root + "'"; + return "select id,subcompanyname as name,'1' as type from " + SUB_COMPANY_TABLE + " where id = '" + root + "' order by showorder,id"; } } } @@ -1052,15 +1047,15 @@ public class ChartServiceImpl extends Service implements ChartService { case "1": if (hasVirtualFields) { if (showVirtual) { - sql = "select a.id,a.subcompanyname as name,'1' as type ,b.fblx as isvitual from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and a.supsubcomid = '" + fObjId + "'" + - " union select a.id,a.departmentname as name,'2' as type ,b.bmlx as isvitual from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and (a.supdepid is null or a.supdepid = '0') and subcompanyid1 = '" + fObjId + "'"; + sql = "select a.id,a.subcompanyname as name,'1' as type ,b.fblx as isvitual,showorder from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and a.supsubcomid = '" + fObjId + "'" + + " union select a.id,a.departmentname as name,'2' as type ,b.bmlx as isvitual,showorder from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and (a.supdepid is null or a.supdepid = '0') and subcompanyid1 = '" + fObjId + "'"; } else { - sql = "select a.id,a.subcompanyname as name,'1' as type ,b.fblx as isvitual from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and (b.fblx is null or b.fblx != '1') and a.supsubcomid = '" + fObjId + "'" + - " union select a.id,a.departmentname as name,'2' as type ,b.bmlx as isvitual from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and (a.supdepid is null or a.supdepid = '0') and (b.bmlx is null or b.bmlx != '1') and subcompanyid1 = '" + fObjId + "'"; + sql = "select a.id,a.subcompanyname as name,'1' as type ,b.fblx as isvitual,showorder from " + SUB_COMPANY_TABLE + " a left join " + SUB_COMPANY_DEFINED_TABLE + " b on a.id = b.subcomid where (a.canceled is null or a.canceled != '1') and (b.fblx is null or b.fblx != '1') and a.supsubcomid = '" + fObjId + "'" + + " union select a.id,a.departmentname as name,'2' as type ,b.bmlx as isvitual,showorder from " + DEPARTMENT_TABLE + " a left join " + DEPARTMENT_DEFINED_TABLE + " b on a.id = b.deptid where (a.canceled is null or a.canceled != '1') and (a.supdepid is null or a.supdepid = '0') and (b.bmlx is null or b.bmlx != '1') and subcompanyid1 = '" + fObjId + "'"; } } else { - sql = "select a.id,a.subcompanyname as name,'1' as type from " + SUB_COMPANY_TABLE + " a where (canceled is null or canceled != '1') and supsubcomid = '" + fObjId + "'" + - " union select a.id,a.departmentname as name,'2' as type from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and (supdepid is null or supdepid = '0') and subcompanyid1 = '" + fObjId + "'"; + sql = "select a.id,a.subcompanyname as name,'1' as type,showorder from " + SUB_COMPANY_TABLE + " a where (canceled is null or canceled != '1') and supsubcomid = '" + fObjId + "'" + + " union select a.id,a.departmentname as name,'2' as type,showorder from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and (supdepid is null or supdepid = '0') and subcompanyid1 = '" + fObjId + "'"; } break; case "2": @@ -1077,6 +1072,7 @@ public class ChartServiceImpl extends Service implements ChartService { default: break; } + sql += " order by showorder,id"; } return sql; } -- 2.40.0.windows.1 From 4438f3937a4f2cb9ead8ec449b04feb66ca44b0d Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 15 Aug 2023 09:07:41 +0800 Subject: [PATCH 80/87] =?UTF-8?q?=E5=BF=AB=E6=8D=B7=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E8=A1=A8=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../search/condition/ConditionOption.java | 21 ++++++ .../search/condition/RangeCondition.java | 41 +++++++++++ .../enums/QuickSearchConditionEnum.java | 37 ++++++++++ .../mapper/condition/QuickSearchMapper.java | 6 ++ .../mapper/condition/QuickSearchMapper.xml | 21 ++++++ .../service/QuickSearchService.java | 4 +- .../service/impl/QuickSearchServiceImpl.java | 73 +++++++++++++++++-- .../web/QuickSearchController.java | 14 ++++ .../wrapper/QuickSearchWrapper.java | 4 + 9 files changed, 212 insertions(+), 9 deletions(-) create mode 100644 src/com/engine/organization/entity/search/condition/ConditionOption.java create mode 100644 src/com/engine/organization/entity/search/condition/RangeCondition.java create mode 100644 src/com/engine/organization/enums/QuickSearchConditionEnum.java diff --git a/src/com/engine/organization/entity/search/condition/ConditionOption.java b/src/com/engine/organization/entity/search/condition/ConditionOption.java new file mode 100644 index 00000000..f55691ff --- /dev/null +++ b/src/com/engine/organization/entity/search/condition/ConditionOption.java @@ -0,0 +1,21 @@ +package com.engine.organization.entity.search.condition; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author:dxfeng + * @createTime: 2023/08/14 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ConditionOption { + private String key; + private String showname; + private Boolean selected; +} diff --git a/src/com/engine/organization/entity/search/condition/RangeCondition.java b/src/com/engine/organization/entity/search/condition/RangeCondition.java new file mode 100644 index 00000000..7cd57080 --- /dev/null +++ b/src/com/engine/organization/entity/search/condition/RangeCondition.java @@ -0,0 +1,41 @@ +package com.engine.organization.entity.search.condition; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2023/08/14 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class RangeCondition { + private String label; + private List options; + private List domkey; + private List> selectLinkageDatas; + private Integer labelcol; + private Integer fieldcol; + + public Integer getLabelcol() { + if (null == labelcol) { + return 6; + } + return labelcol; + } + + public Integer getFieldcol() { + if (null == fieldcol) { + return 18; + } + return fieldcol; + } +} diff --git a/src/com/engine/organization/enums/QuickSearchConditionEnum.java b/src/com/engine/organization/enums/QuickSearchConditionEnum.java new file mode 100644 index 00000000..37ed3d06 --- /dev/null +++ b/src/com/engine/organization/enums/QuickSearchConditionEnum.java @@ -0,0 +1,37 @@ +package com.engine.organization.enums; + +/** + * @author:dxfeng + * @createTime: 2023/08/14 + * @version: 1.0 + */ +public enum QuickSearchConditionEnum { + + /** + * 字段类型 + */ + SELECT("5"), DATETIME("3"),NUMBER("1"),RESOURCE("-1"),MEETING("-3"),WAREHOUSE("-5"); + + private String value; + + QuickSearchConditionEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static QuickSearchConditionEnum getByValue(String value) { + for (QuickSearchConditionEnum conditionEnum : values()) { + if (conditionEnum.getValue().equals(value)) { + return conditionEnum; + } + } + return null; + } +} diff --git a/src/com/engine/organization/mapper/condition/QuickSearchMapper.java b/src/com/engine/organization/mapper/condition/QuickSearchMapper.java index 845b49ad..b00649f1 100644 --- a/src/com/engine/organization/mapper/condition/QuickSearchMapper.java +++ b/src/com/engine/organization/mapper/condition/QuickSearchMapper.java @@ -1,5 +1,7 @@ package com.engine.organization.mapper.condition; +import com.engine.organization.entity.jclimport.po.HrmFormFieldPO; +import com.engine.organization.entity.jclimport.po.JclSelectItem; import com.engine.organization.entity.search.*; import org.apache.ibatis.annotations.Param; @@ -132,4 +134,8 @@ public interface QuickSearchMapper { */ int deleteQuickSearchDetailByIds(@Param("ids") Collection ids); + HrmFormFieldPO getHrmFormFieldByFieldId(@Param("fieldId") String fieldId); + + List getSelectItemListByFieldId(@Param("fieldId") String fieldId); + } diff --git a/src/com/engine/organization/mapper/condition/QuickSearchMapper.xml b/src/com/engine/organization/mapper/condition/QuickSearchMapper.xml index 4206d1c9..0dff8a19 100644 --- a/src/com/engine/organization/mapper/condition/QuickSearchMapper.xml +++ b/src/com/engine/organization/mapper/condition/QuickSearchMapper.xml @@ -44,6 +44,27 @@ left join hrm_formfield b on b.fieldid = c.fieldid where c.id = #{id} + + insert into jcl_quicksearch_setting(belongto, diff --git a/src/com/engine/organization/service/QuickSearchService.java b/src/com/engine/organization/service/QuickSearchService.java index 4f6d252a..44351cc0 100644 --- a/src/com/engine/organization/service/QuickSearchService.java +++ b/src/com/engine/organization/service/QuickSearchService.java @@ -9,12 +9,12 @@ import java.util.Map; */ public interface QuickSearchService { /** - * 保存快速搜索条件 + * 获取快速搜索条件 * * @param params 前端参数 * @return return */ - Map saveQuickSearchCondition(Map params); + Map getQuickSearchCondition(Map params); /** * 获取快速搜索信息 diff --git a/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java b/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java index 1c9a152a..c4a85843 100644 --- a/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java +++ b/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java @@ -4,7 +4,11 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.cloudstore.dev.api.util.TextUtil; import com.engine.core.impl.Service; +import com.engine.organization.entity.jclimport.po.HrmFormFieldPO; +import com.engine.organization.entity.jclimport.po.JclSelectItem; import com.engine.organization.entity.search.*; +import com.engine.organization.entity.search.condition.ConditionOption; +import com.engine.organization.entity.search.condition.RangeCondition; import com.engine.organization.enums.LogModuleNameEnum; import com.engine.organization.mapper.condition.QuickSearchMapper; import com.engine.organization.service.QuickSearchService; @@ -18,9 +22,7 @@ import weaver.hrm.User; import weaver.hrm.resource.ResourceComInfo; import weaver.systeminfo.SystemEnv; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; @@ -36,8 +38,65 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic @Override - public Map saveQuickSearchCondition(Map params) { - return null; + public Map getQuickSearchCondition(Map params) { + Map apiDatas = new HashMap<>(16); + List rangeConditions = new ArrayList<>(); + + List quickSearchConditionList = getQuickSearchMapper().getQuickSearchConditionList(user.getUID(), LogModuleNameEnum.RESOURCE.getValue()); + for (QuickSearchCondition quickSearchCondition : quickSearchConditionList) { + + HrmFormFieldPO formField = getQuickSearchMapper().getHrmFormFieldByFieldId(quickSearchCondition.getFieldId()); + + RangeCondition condition = new RangeCondition(); + condition.setLabel(quickSearchCondition.getCustomName()); + condition.setDomkey(Collections.singletonList(formField.getFieldName())); + // 根据条件字段类型,组装展示样式 + switch (quickSearchCondition.getType()) { + case 5: + // 字段本身值、判断有无下拉框选项 + if ("4".equals(formField.getFieldHtmlType()) || "5".equals(formField.getFieldHtmlType())) { + List selectItemListByFieldId = getQuickSearchMapper().getSelectItemListByFieldId(quickSearchCondition.getFieldId()); + condition.setOptions(selectItemListByFieldId.stream().map(item -> ConditionOption.builder().key(item.getSelectValue()).showname(item.getSelectName()).build()).collect(Collectors.toList())); + } else { + + } + break; + case 3: + // 日期类型数据 + List options = new ArrayList<>(); + options.add(ConditionOption.builder().key("0").showname(SystemEnv.getHtmlLabelName(332, user.getLanguage())).selected(true).build()); + options.add(ConditionOption.builder().key("1").showname(SystemEnv.getHtmlLabelName(15537, user.getLanguage())).build()); + options.add(ConditionOption.builder().key("2").showname(SystemEnv.getHtmlLabelName(15539, user.getLanguage())).build()); + options.add(ConditionOption.builder().key("3").showname(SystemEnv.getHtmlLabelName(15541, user.getLanguage())).build()); + options.add(ConditionOption.builder().key("7").showname(SystemEnv.getHtmlLabelName(27347, user.getLanguage())).build()); + options.add(ConditionOption.builder().key("4").showname(SystemEnv.getHtmlLabelName(21904, user.getLanguage())).build()); + options.add(ConditionOption.builder().key("5").showname(SystemEnv.getHtmlLabelName(15384, user.getLanguage())).build()); + options.add(ConditionOption.builder().key("8").showname(SystemEnv.getHtmlLabelName(81716, user.getLanguage())).build()); + options.add(ConditionOption.builder().key("6").showname(SystemEnv.getHtmlLabelName(32530, user.getLanguage())).build()); + condition.setOptions(options); + Map selectLinkageDataMap = new HashMap<>(1); + Map map = new HashMap<>(2); + map.put("conditionType", "RANGEPICKER"); + map.put("domkey", Arrays.asList("start", "end")); + selectLinkageDataMap.put("1", map); + condition.setSelectLinkageDatas(Collections.singletonList(selectLinkageDataMap)); + break; + case 1: + break; + case -1: + break; + case -3: + break; + case -4: + break; + default: + break; + + } + } + + apiDatas.put("rangeConditions", rangeConditions); + return apiDatas; } @Override @@ -122,7 +181,7 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic //选择框多选框 fieldType = "5"; isShowModel = true; - } else if ("5".equals(fieldHtmlType) && "1".equals(type)) { + } else if ("5".equals(fieldHtmlType) && "0".equals(type)) { //选择框 fieldType = "5"; isShowModel = true; @@ -208,7 +267,7 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic getQuickSearchMapper().updateQuickSearchSetting(quickSearchSetting); } - List quickSearchConditionList = getQuickSearchMapper().getQuickSearchConditionList(user.getUID(),LogModuleNameEnum.RESOURCE.getValue()); + List quickSearchConditionList = getQuickSearchMapper().getQuickSearchConditionList(user.getUID(), LogModuleNameEnum.RESOURCE.getValue()); List list = quickSearchConditionList.stream().map(QuickSearchCondition::getId).collect(Collectors.toList()); for (int i = 0; i < datas.size(); i++) { diff --git a/src/com/engine/organization/web/QuickSearchController.java b/src/com/engine/organization/web/QuickSearchController.java index 40b59a33..a5bb2e14 100644 --- a/src/com/engine/organization/web/QuickSearchController.java +++ b/src/com/engine/organization/web/QuickSearchController.java @@ -27,6 +27,19 @@ public class QuickSearchController { return ServiceUtil.getService(QuickSearchWrapper.class, user); } + @GET + @Path("/getQuickSearchCondition") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getQuickSearchCondition(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getQuickSearchWrapper(user).getQuickSearchCondition(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } + @GET @Path("/getQuickSearchInfo") @Produces(MediaType.APPLICATION_JSON) @@ -65,6 +78,7 @@ public class QuickSearchController { return ReturnResult.exceptionHandle(e); } } + @POST @Path("/saveQuickSearchDetailInfo") @Produces(MediaType.APPLICATION_JSON) diff --git a/src/com/engine/organization/wrapper/QuickSearchWrapper.java b/src/com/engine/organization/wrapper/QuickSearchWrapper.java index 5f5a9411..5720a506 100644 --- a/src/com/engine/organization/wrapper/QuickSearchWrapper.java +++ b/src/com/engine/organization/wrapper/QuickSearchWrapper.java @@ -18,6 +18,10 @@ public class QuickSearchWrapper extends Service { return ServiceUtil.getService(QuickSearchServiceImpl.class, user); } + public Map getQuickSearchCondition(Map params) { + return getQuickSearchService(user).getQuickSearchCondition(params); + } + public Map getQuickSearchInfo(Map params) { return getQuickSearchService(user).getQuickSearchInfo(params); } -- 2.40.0.windows.1 From a56b888a7491011791557db40e5a70e45a9042d0 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 15 Aug 2023 11:11:39 +0800 Subject: [PATCH 81/87] =?UTF-8?q?=E5=BF=AB=E6=8D=B7=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E8=A1=A8=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/QuickSearchServiceImpl.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java b/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java index c4a85843..9df7ff87 100644 --- a/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java +++ b/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java @@ -2,6 +2,7 @@ package com.engine.organization.service.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.api.browser.bean.SearchConditionItem; import com.cloudstore.dev.api.util.TextUtil; import com.engine.core.impl.Service; import com.engine.organization.entity.jclimport.po.HrmFormFieldPO; @@ -12,6 +13,7 @@ import com.engine.organization.entity.search.condition.RangeCondition; import com.engine.organization.enums.LogModuleNameEnum; import com.engine.organization.mapper.condition.QuickSearchMapper; import com.engine.organization.service.QuickSearchService; +import com.engine.organization.util.OrganizationFormItemUtil; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; @@ -40,7 +42,7 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic @Override public Map getQuickSearchCondition(Map params) { Map apiDatas = new HashMap<>(16); - List rangeConditions = new ArrayList<>(); + List rangeConditions = new ArrayList<>(); List quickSearchConditionList = getQuickSearchMapper().getQuickSearchConditionList(user.getUID(), LogModuleNameEnum.RESOURCE.getValue()); for (QuickSearchCondition quickSearchCondition : quickSearchConditionList) { @@ -57,6 +59,7 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic if ("4".equals(formField.getFieldHtmlType()) || "5".equals(formField.getFieldHtmlType())) { List selectItemListByFieldId = getQuickSearchMapper().getSelectItemListByFieldId(quickSearchCondition.getFieldId()); condition.setOptions(selectItemListByFieldId.stream().map(item -> ConditionOption.builder().key(item.getSelectValue()).showname(item.getSelectName()).build()).collect(Collectors.toList())); + rangeConditions.add(condition); } else { } @@ -80,16 +83,20 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic map.put("domkey", Arrays.asList("start", "end")); selectLinkageDataMap.put("1", map); condition.setSelectLinkageDatas(Collections.singletonList(selectLinkageDataMap)); + rangeConditions.add(condition); break; case 1: + // 整数-浮点数 + List quickSearchDetailList = getQuickSearchMapper().getQuickSearchDetailByCid(quickSearchCondition.getId().toString()); + condition.setOptions(quickSearchDetailList.stream().map(item -> ConditionOption.builder().key(item.getId().toString()).showname(item.getCustomName()).build()).collect(Collectors.toList())); + rangeConditions.add(condition); break; case -1: - break; case -3: - break; case -4: - break; default: + SearchConditionItem searchConditionItem = OrganizationFormItemUtil.browserItem(user, 2, 18, 2, false, quickSearchCondition.getCustomName(), formField.getType(), formField.getFieldName(), ""); + rangeConditions.add(searchConditionItem); break; } @@ -162,6 +169,7 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic if ("1".equals(type)) { //单行文本 fieldType = "5"; + continue; } else { //整数或浮点数 fieldType = "1"; @@ -170,9 +178,11 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic } else if ("2".equals(fieldHtmlType) && "1".equals(type)) { //多行文本 fieldType = "5"; + continue; } else if ("2".equals(fieldHtmlType) && "2".equals(type)) { //多行文本html fieldType = "5"; + continue; } else if ("5".equals(fieldHtmlType) && "3".equals(type)) { //选择框单选框 fieldType = "5"; -- 2.40.0.windows.1 From 5a71b861fd28452aa3f02c95e91b472cb4d804bc Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 15 Aug 2023 14:09:58 +0800 Subject: [PATCH 82/87] =?UTF-8?q?=E5=BF=AB=E6=8D=B7=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E8=A1=A8=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/search/condition/RangeCondition.java | 2 +- .../service/impl/QuickSearchServiceImpl.java | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/com/engine/organization/entity/search/condition/RangeCondition.java b/src/com/engine/organization/entity/search/condition/RangeCondition.java index 7cd57080..2dd5abb8 100644 --- a/src/com/engine/organization/entity/search/condition/RangeCondition.java +++ b/src/com/engine/organization/entity/search/condition/RangeCondition.java @@ -21,7 +21,7 @@ public class RangeCondition { private String label; private List options; private List domkey; - private List> selectLinkageDatas; + private Map selectLinkageDatas; private Integer labelcol; private Integer fieldcol; diff --git a/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java b/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java index 9df7ff87..ca4f04b3 100644 --- a/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java +++ b/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java @@ -42,6 +42,14 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic @Override public Map getQuickSearchCondition(Map params) { Map apiDatas = new HashMap<>(16); + + QuickSearchSetting quickSearchSetting = getQuickSearchMapper().getQuickSearchSetting(user.getUID()); + if (null != quickSearchSetting) { + apiDatas.put("enable", Util.null2String(quickSearchSetting.getIsQuickSearch())); + } else { + apiDatas.put("enable", "0"); + } + List rangeConditions = new ArrayList<>(); List quickSearchConditionList = getQuickSearchMapper().getQuickSearchConditionList(user.getUID(), LogModuleNameEnum.RESOURCE.getValue()); @@ -58,7 +66,9 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic // 字段本身值、判断有无下拉框选项 if ("4".equals(formField.getFieldHtmlType()) || "5".equals(formField.getFieldHtmlType())) { List selectItemListByFieldId = getQuickSearchMapper().getSelectItemListByFieldId(quickSearchCondition.getFieldId()); - condition.setOptions(selectItemListByFieldId.stream().map(item -> ConditionOption.builder().key(item.getSelectValue()).showname(item.getSelectName()).build()).collect(Collectors.toList())); + List options = selectItemListByFieldId.stream().map(item -> ConditionOption.builder().key(item.getSelectValue()).showname(item.getSelectName()).build()).collect(Collectors.toList()); + options.add(ConditionOption.builder().key("-1").showname("全部").build()); + condition.setOptions(options); rangeConditions.add(condition); } else { @@ -82,7 +92,7 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic map.put("conditionType", "RANGEPICKER"); map.put("domkey", Arrays.asList("start", "end")); selectLinkageDataMap.put("1", map); - condition.setSelectLinkageDatas(Collections.singletonList(selectLinkageDataMap)); + condition.setSelectLinkageDatas(selectLinkageDataMap); rangeConditions.add(condition); break; case 1: -- 2.40.0.windows.1 From 16cb2c844d50a2d8e3d7f4c6f921d775ff2dfb16 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 15 Aug 2023 15:30:27 +0800 Subject: [PATCH 83/87] =?UTF-8?q?=E5=BF=AB=E6=8D=B7=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E8=A1=A8=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../search/condition/RangeCondition.java | 2 + .../service/impl/QuickSearchServiceImpl.java | 47 ++++++------------- 2 files changed, 17 insertions(+), 32 deletions(-) diff --git a/src/com/engine/organization/entity/search/condition/RangeCondition.java b/src/com/engine/organization/entity/search/condition/RangeCondition.java index 2dd5abb8..5f30b852 100644 --- a/src/com/engine/organization/entity/search/condition/RangeCondition.java +++ b/src/com/engine/organization/entity/search/condition/RangeCondition.java @@ -24,6 +24,8 @@ public class RangeCondition { private Map selectLinkageDatas; private Integer labelcol; private Integer fieldcol; + //private Integer showModel; + private String com; public Integer getLabelcol() { if (null == labelcol) { diff --git a/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java b/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java index ca4f04b3..e727cee4 100644 --- a/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java +++ b/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java @@ -2,7 +2,6 @@ package com.engine.organization.service.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.api.browser.bean.SearchConditionItem; import com.cloudstore.dev.api.util.TextUtil; import com.engine.core.impl.Service; import com.engine.organization.entity.jclimport.po.HrmFormFieldPO; @@ -13,7 +12,6 @@ import com.engine.organization.entity.search.condition.RangeCondition; import com.engine.organization.enums.LogModuleNameEnum; import com.engine.organization.mapper.condition.QuickSearchMapper; import com.engine.organization.service.QuickSearchService; -import com.engine.organization.util.OrganizationFormItemUtil; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; @@ -60,19 +58,20 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic RangeCondition condition = new RangeCondition(); condition.setLabel(quickSearchCondition.getCustomName()); condition.setDomkey(Collections.singletonList(formField.getFieldName())); + //condition.setShowModel(quickSearchCondition.getShowModel()); // 根据条件字段类型,组装展示样式 switch (quickSearchCondition.getType()) { case 5: - // 字段本身值、判断有无下拉框选项 - if ("4".equals(formField.getFieldHtmlType()) || "5".equals(formField.getFieldHtmlType())) { - List selectItemListByFieldId = getQuickSearchMapper().getSelectItemListByFieldId(quickSearchCondition.getFieldId()); + List selectItemListByFieldId = getQuickSearchMapper().getSelectItemListByFieldId(quickSearchCondition.getFieldId()); + if (CollectionUtils.isEmpty(selectItemListByFieldId)) { + condition.setCom("未设置选项"); + } else { + // 字段本身值、判断有无下拉框选项 List options = selectItemListByFieldId.stream().map(item -> ConditionOption.builder().key(item.getSelectValue()).showname(item.getSelectName()).build()).collect(Collectors.toList()); options.add(ConditionOption.builder().key("-1").showname("全部").build()); condition.setOptions(options); - rangeConditions.add(condition); - } else { - } + rangeConditions.add(condition); break; case 3: // 日期类型数据 @@ -91,22 +90,25 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic Map map = new HashMap<>(2); map.put("conditionType", "RANGEPICKER"); map.put("domkey", Arrays.asList("start", "end")); - selectLinkageDataMap.put("1", map); + selectLinkageDataMap.put("6", map); condition.setSelectLinkageDatas(selectLinkageDataMap); rangeConditions.add(condition); break; case 1: // 整数-浮点数 List quickSearchDetailList = getQuickSearchMapper().getQuickSearchDetailByCid(quickSearchCondition.getId().toString()); - condition.setOptions(quickSearchDetailList.stream().map(item -> ConditionOption.builder().key(item.getId().toString()).showname(item.getCustomName()).build()).collect(Collectors.toList())); + if (CollectionUtils.isEmpty(quickSearchDetailList)) { + condition.setCom("未设置选项"); + } else { + condition.setOptions(quickSearchDetailList.stream().map(item -> ConditionOption.builder().key(item.getId().toString()).showname(item.getCustomName()).build()).collect(Collectors.toList())); + } rangeConditions.add(condition); break; case -1: case -3: case -4: default: - SearchConditionItem searchConditionItem = OrganizationFormItemUtil.browserItem(user, 2, 18, 2, false, quickSearchCondition.getCustomName(), formField.getType(), formField.getFieldName(), ""); - rangeConditions.add(searchConditionItem); + rangeConditions.add(condition); break; } @@ -178,21 +180,12 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic if ("1".equals(fieldHtmlType)) { if ("1".equals(type)) { //单行文本 - fieldType = "5"; continue; } else { //整数或浮点数 fieldType = "1"; isShowModel = true; } - } else if ("2".equals(fieldHtmlType) && "1".equals(type)) { - //多行文本 - fieldType = "5"; - continue; - } else if ("2".equals(fieldHtmlType) && "2".equals(type)) { - //多行文本html - fieldType = "5"; - continue; } else if ("5".equals(fieldHtmlType) && "3".equals(type)) { //选择框单选框 fieldType = "5"; @@ -216,20 +209,10 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic fieldType = "3"; break; case "1": - //人力资源 1已被占用,重新换一个 - fieldType = "-1"; - break; case "3": - //会议室联系单 3已被占用,重新换一个 - fieldType = "-3"; - break; case "5": - //仓库5已被占用,重新换一个 - fieldType = "-5"; - break; default: - fieldType = type; - break; + continue; } } else { continue; -- 2.40.0.windows.1 From 3ff6712b279468dd810aa35dfe6609c5e3b9f2ab Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 15 Aug 2023 15:38:28 +0800 Subject: [PATCH 84/87] =?UTF-8?q?=E5=BF=AB=E6=8D=B7=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E8=A1=A8=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/service/impl/QuickSearchServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java b/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java index e727cee4..3258dc0d 100644 --- a/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java +++ b/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java @@ -43,9 +43,9 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic QuickSearchSetting quickSearchSetting = getQuickSearchMapper().getQuickSearchSetting(user.getUID()); if (null != quickSearchSetting) { - apiDatas.put("enable", Util.null2String(quickSearchSetting.getIsQuickSearch())); + apiDatas.put("enable", "1".equals(Util.null2String(quickSearchSetting.getIsQuickSearch()))); } else { - apiDatas.put("enable", "0"); + apiDatas.put("enable", false); } List rangeConditions = new ArrayList<>(); -- 2.40.0.windows.1 From 6bc5db7912406b47fa0965feea0e806d21031d8b Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 15 Aug 2023 17:30:20 +0800 Subject: [PATCH 85/87] =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=BF=AB=E6=8D=B7?= =?UTF-8?q?=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/condition/QuickSearchMapper.java | 10 + .../mapper/condition/QuickSearchMapper.xml | 50 + .../service/impl/HrmResourceServiceImpl.java | 103 +- .../service/impl/QuickSearchServiceImpl.java | 892 ++---------------- 4 files changed, 191 insertions(+), 864 deletions(-) diff --git a/src/com/engine/organization/mapper/condition/QuickSearchMapper.java b/src/com/engine/organization/mapper/condition/QuickSearchMapper.java index b00649f1..86e9323a 100644 --- a/src/com/engine/organization/mapper/condition/QuickSearchMapper.java +++ b/src/com/engine/organization/mapper/condition/QuickSearchMapper.java @@ -1,5 +1,6 @@ package com.engine.organization.mapper.condition; +import com.engine.organization.entity.jclimport.po.CusFormFieldPO; import com.engine.organization.entity.jclimport.po.HrmFormFieldPO; import com.engine.organization.entity.jclimport.po.JclSelectItem; import com.engine.organization.entity.search.*; @@ -38,6 +39,13 @@ public interface QuickSearchMapper { */ List getQuickSearchOptionList(); + /** + * 获取主表、自定义表可以的所有字段信息 + * + * @return 自定义表可以的所有字段信息 + */ + List getAllFieldInfo(); + /** * 插入快速搜索设置 * @@ -102,6 +110,8 @@ public interface QuickSearchMapper { */ List getQuickSearchDetailByCid(@Param("cId") String cId); + QuickSearchDetail getQuickSearchDetailById(@Param("id") String id); + /** * 按条件Id获取快速搜索字段列表 * diff --git a/src/com/engine/organization/mapper/condition/QuickSearchMapper.xml b/src/com/engine/organization/mapper/condition/QuickSearchMapper.xml index 0dff8a19..af2ed2bf 100644 --- a/src/com/engine/organization/mapper/condition/QuickSearchMapper.xml +++ b/src/com/engine/organization/mapper/condition/QuickSearchMapper.xml @@ -37,6 +37,20 @@ where cid = #{cId} order by orderid, id + + + + insert into jcl_quicksearch_setting(belongto, diff --git a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java index f5cfe62e..8f125077 100644 --- a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java @@ -30,10 +30,12 @@ import com.engine.organization.entity.hrmresource.vo.ResourceChartVO; import com.engine.organization.entity.jclimport.po.CusFormFieldPO; import com.engine.organization.entity.job.bo.JobBO; import com.engine.organization.entity.job.po.JobPO; +import com.engine.organization.entity.search.QuickSearchDetail; import com.engine.organization.entity.searchtree.SearchTree; import com.engine.organization.entity.searchtree.SearchTreeParams; import com.engine.organization.enums.HrmGroupEnum; import com.engine.organization.mapper.comp.CompMapper; +import com.engine.organization.mapper.condition.QuickSearchMapper; import com.engine.organization.mapper.department.DepartmentMapper; import com.engine.organization.mapper.hrmresource.HrmRelationMapper; import com.engine.organization.mapper.hrmresource.SystemDataMapper; @@ -57,6 +59,7 @@ import org.json.JSONObject; import weaver.common.DateUtil; import weaver.conn.RecordSet; import weaver.general.StringUtil; +import weaver.general.TimeUtil; import weaver.general.Util; import weaver.hrm.definedfield.HrmFieldManager; @@ -117,6 +120,11 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic return MapperProxyFactory.getProxy(JclOrgCustomTemplateMapper.class); } + private QuickSearchMapper getQuickSearchMapper() { + return MapperProxyFactory.getProxy(QuickSearchMapper.class); + } + + // 所有满足条件的岗位ID private List jobTitleList = null; // 是否 @@ -426,7 +434,7 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic } @Override - public Map chartResourceList(Integer departmentId,String versionId,String dimension) { + public Map chartResourceList(Integer departmentId, String versionId, String dimension) { Map dataMap = new HashMap<>(); List resourceListColumns = getTableColumns(); List resourceChartPOS = new ArrayList<>(); @@ -437,8 +445,8 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic //当前数据 resourceChartPOS = getHrmResourceMapper().selectByDepartmentId(departmentId); resourceChartVOS = ResourceChartBO.convertToVO(resourceChartPOS); - }else { - rs.executeQuery("select resourceid,workcode,lastname,sex,department,subcompany,jobtitle,mobile from jcl_chart_resource where departmentid = ? and versionid = ?",departmentId,versionId); + } else { + rs.executeQuery("select resourceid,workcode,lastname,sex,department,subcompany,jobtitle,mobile from jcl_chart_resource where departmentid = ? and versionid = ?", departmentId, versionId); while (rs.next()) { ResourceChartVO build = ResourceChartVO.builder() .id((long) Util.getIntValue(rs.getString("resourceid"))) @@ -454,28 +462,28 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic resourceChartVOS.add(build); } } - }else { - rs.executeQuery("select h.id,h.workcode,h.lastname,h.sex,h.departmentid,h.subcompanyid1,h.jobtitle,h.status,h.mobile " + - " from hrmresourcevirtual v inner join hrmresource h on v.resourceid = h.id and v.virtualtype = ? and v.departmentid = ?",dimension,departmentId); - while (rs.next()) { - ResourceChartPO build = ResourceChartPO.builder() - .id((long) Util.getIntValue(rs.getString("id"))) - .workCode(Util.null2String(rs.getString("workcode"))) - .lastName(Util.null2String(rs.getString("lastname"))) - .sex(Util.null2String(rs.getString("sex"))) - .departmentId(Util.getIntValue(rs.getString("departmentid"))) - .subcompanyid1(Util.getIntValue(rs.getString("subcompanyid1"))) - .jobTitle(Util.getIntValue(rs.getString("jobtitle"))) - .status(Util.getIntValue(rs.getString("status"))) - .mobile(Util.null2String(rs.getString("mobile"))) - .build(); - resourceChartPOS.add(build); - } - resourceChartVOS = ResourceChartBO.convertToVO(resourceChartPOS); + } else { + rs.executeQuery("select h.id,h.workcode,h.lastname,h.sex,h.departmentid,h.subcompanyid1,h.jobtitle,h.status,h.mobile " + + " from hrmresourcevirtual v inner join hrmresource h on v.resourceid = h.id and v.virtualtype = ? and v.departmentid = ?", dimension, departmentId); + while (rs.next()) { + ResourceChartPO build = ResourceChartPO.builder() + .id((long) Util.getIntValue(rs.getString("id"))) + .workCode(Util.null2String(rs.getString("workcode"))) + .lastName(Util.null2String(rs.getString("lastname"))) + .sex(Util.null2String(rs.getString("sex"))) + .departmentId(Util.getIntValue(rs.getString("departmentid"))) + .subcompanyid1(Util.getIntValue(rs.getString("subcompanyid1"))) + .jobTitle(Util.getIntValue(rs.getString("jobtitle"))) + .status(Util.getIntValue(rs.getString("status"))) + .mobile(Util.null2String(rs.getString("mobile"))) + .build(); + resourceChartPOS.add(build); + } + resourceChartVOS = ResourceChartBO.convertToVO(resourceChartPOS); } - dataMap.put("columns",resourceListColumns); - dataMap.put("dataSource",resourceChartVOS); + dataMap.put("columns", resourceListColumns); + dataMap.put("dataSource", resourceChartVOS); return dataMap; } @@ -704,11 +712,11 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic hrmFieldsByScopeId = getSystemDataMapper().getHrmFieldsByScopeId(HrmGroupEnum.HRM_WORK.getGroupType().toString()); createConditionItems(hrmFieldSearchConditionComInfo, hrmFieldsByScopeId, conditionItems); Map allFieldsMap = conditionItems.stream().collect(Collectors.toMap(item -> item.getDomkey()[0], item -> item, (k1, k2) -> k1)); - + boolean isQuickSearch = "true".equals(Util.null2String(params.get("isQuickSearch"))); DBType dbType = DBType.get(new RecordSet().getDBType()); StringBuilder sb = new StringBuilder(" where 1=1 "); - if (params.containsKey("lastName")) { + if (params.containsKey("lastName") || !params.containsKey("-1_hrm_status")) { // sb.append(" and t.status = 1"); sb.append(" and t.status < 4"); } @@ -739,7 +747,7 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic SearchConditionItem searchConditionItem = allFieldsMap.get(key); // 根据不同的类型,不同的查询方式 - buildDynamicSql(searchConditionItem, key, value, sb, dbType); + buildDynamicSql(searchConditionItem, key, value, sb, dbType, isQuickSearch, params); } if (searchJobTitle) { String jobTitleIds = StringUtils.join(jobTitleList, ","); @@ -823,7 +831,7 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic Map departmentPOMap = getDepartmentMapper().listAll("showorder").stream().collect(Collectors.toMap(DepartmentPO::getId, item -> item)); for (DepartmentPO departmentPO : filterDeparts) { - buildParentDepts(departmentPO, builderDeparts,departmentPOMap); + buildParentDepts(departmentPO, builderDeparts, departmentPOMap); } List departmentList = DepartmentBO.buildSetToSearchTree(builderDeparts); List deptTrees = SearchTreeUtil.builderTreeMode(departmentList); @@ -873,7 +881,7 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic // 查询分部信息 Set builderDeparts = new HashSet<>(); for (DepartmentPO departmentPO : filterDeparts) { - buildParentDepts(departmentPO, builderDeparts,departmentPOMap); + buildParentDepts(departmentPO, builderDeparts, departmentPOMap); } return SearchTreeUtil.builderTreeMode(DepartmentBO.buildSetToSearchTree(builderDeparts), jobTrees); } @@ -884,14 +892,14 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic * @param departmentPO * @param builderDeparts */ - private void buildParentDepts(DepartmentPO departmentPO, Set builderDeparts,Map departmentPOMap) { + private void buildParentDepts(DepartmentPO departmentPO, Set builderDeparts, Map departmentPOMap) { builderDeparts.add(departmentPO); if (SearchTreeUtil.isTop(departmentPO.getSupDepId())) { return; } DepartmentPO parentDept = departmentPOMap.get(departmentPO.getSupDepId()); if (null != parentDept) { - buildParentDepts(parentDept, builderDeparts,departmentPOMap); + buildParentDepts(parentDept, builderDeparts, departmentPOMap); } } @@ -1091,7 +1099,7 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic * @param sb * @param dbType */ - private void buildDynamicSql(SearchConditionItem conditionItem, String key, String value, StringBuilder sb, DBType dbType) { + private void buildDynamicSql(SearchConditionItem conditionItem, String key, String value, StringBuilder sb, DBType dbType, boolean isQuickSearch, Map params) { if (null == conditionItem) { return; } @@ -1144,6 +1152,16 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic break; case INPUTNUMBER:// 数字 + if (isQuickSearch) { + QuickSearchDetail quickSearchDetailById = getQuickSearchMapper().getQuickSearchDetailById(value); + Integer maxNum = quickSearchDetailById.getMaxNum(); + Integer minNum = quickSearchDetailById.getMinNum(); + sb.append(" and ").append(dbType.ifNull(tableSql, "0")).append(" >= ").append(minNum); + sb.append(" and ").append(dbType.ifNull(tableSql, "0")).append(" <= ").append(maxNum); + } else { + sb.append(" and ").append(dbType.ifNull(tableSql, "0")).append(" = '").append(value).append("' "); + } + break; case CHECKBOX: case SWITCH: sb.append(" and ").append(dbType.ifNull(tableSql, "0")).append(" = '").append(value).append("' "); @@ -1161,8 +1179,27 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic case DATEPICKER: case TIMEPICKER: case RANGEPICKER: - // 精准搜索 - sb.append(" and ").append(tableSql).append(" = '").append(value).append("' "); + if (isQuickSearch) { + if (StringUtils.isNotBlank(value) && !"-1".equals(value) && !"0,,".equals(value) && !"0".equals(value)) { + if (!"6".equals(value)) { + sb.append(" and ").append(tableSql).append(" >= '").append(TimeUtil.getDateByOption(value, "0")).append(" 00:00:00'"); + sb.append(" and ").append(tableSql).append(" <= '").append(TimeUtil.getDateByOption(value, "")).append(" 23:59:59'"); + } else { + String startDate = Util.null2String(params.get(key + "_start")); + String endDate = Util.null2String(params.get(key + "_end")); + if (StringUtils.isNotBlank(startDate)) { + sb.append(" and ").append(tableSql).append(" >= '").append(startDate).append("' "); + + } + if (StringUtils.isNotBlank(endDate)) { + sb.append(" and ").append(tableSql).append(" <= '").append(endDate).append("' "); + } + } + } + } else { + // 精准搜索 + sb.append(" and ").append(tableSql).append(" = '").append(value).append("' "); + } break; default: break; diff --git a/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java b/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java index 3258dc0d..14fbf7fd 100644 --- a/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java +++ b/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java @@ -2,11 +2,17 @@ package com.engine.organization.service.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.api.browser.bean.SearchConditionItem; +import com.api.browser.bean.SearchConditionOption; +import com.api.hrm.bean.HrmFieldBean; +import com.api.hrm.util.HrmFieldSearchConditionComInfo; import com.cloudstore.dev.api.util.TextUtil; import com.engine.core.impl.Service; -import com.engine.organization.entity.jclimport.po.HrmFormFieldPO; -import com.engine.organization.entity.jclimport.po.JclSelectItem; -import com.engine.organization.entity.search.*; +import com.engine.organization.entity.jclimport.po.CusFormFieldPO; +import com.engine.organization.entity.search.QuickSearchCondition; +import com.engine.organization.entity.search.QuickSearchDetail; +import com.engine.organization.entity.search.QuickSearchField; +import com.engine.organization.entity.search.QuickSearchSetting; import com.engine.organization.entity.search.condition.ConditionOption; import com.engine.organization.entity.search.condition.RangeCondition; import com.engine.organization.enums.LogModuleNameEnum; @@ -15,11 +21,11 @@ import com.engine.organization.service.QuickSearchService; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; +import org.json.JSONException; import weaver.formmode.exttools.impexp.common.DateUtils; import weaver.general.BaseBean; import weaver.general.Util; -import weaver.hrm.User; -import weaver.hrm.resource.ResourceComInfo; +import weaver.hrm.definedfield.HrmFieldManager; import weaver.systeminfo.SystemEnv; import java.util.*; @@ -53,22 +59,18 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic List quickSearchConditionList = getQuickSearchMapper().getQuickSearchConditionList(user.getUID(), LogModuleNameEnum.RESOURCE.getValue()); for (QuickSearchCondition quickSearchCondition : quickSearchConditionList) { - HrmFormFieldPO formField = getQuickSearchMapper().getHrmFormFieldByFieldId(quickSearchCondition.getFieldId()); - RangeCondition condition = new RangeCondition(); condition.setLabel(quickSearchCondition.getCustomName()); - condition.setDomkey(Collections.singletonList(formField.getFieldName())); - //condition.setShowModel(quickSearchCondition.getShowModel()); + condition.setDomkey(Collections.singletonList(quickSearchCondition.getFieldId())); // 根据条件字段类型,组装展示样式 switch (quickSearchCondition.getType()) { case 5: - List selectItemListByFieldId = getQuickSearchMapper().getSelectItemListByFieldId(quickSearchCondition.getFieldId()); - if (CollectionUtils.isEmpty(selectItemListByFieldId)) { + List selectOptions = getSelectOptions(quickSearchCondition); + if (CollectionUtils.isEmpty(selectOptions)) { condition.setCom("未设置选项"); } else { // 字段本身值、判断有无下拉框选项 - List options = selectItemListByFieldId.stream().map(item -> ConditionOption.builder().key(item.getSelectValue()).showname(item.getSelectName()).build()).collect(Collectors.toList()); - options.add(ConditionOption.builder().key("-1").showname("全部").build()); + List options = selectOptions.stream().map(item -> ConditionOption.builder().key(item.getKey()).showname(item.getShowname()).build()).collect(Collectors.toList()); condition.setOptions(options); } rangeConditions.add(condition); @@ -76,7 +78,7 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic case 3: // 日期类型数据 List options = new ArrayList<>(); - options.add(ConditionOption.builder().key("0").showname(SystemEnv.getHtmlLabelName(332, user.getLanguage())).selected(true).build()); + options.add(ConditionOption.builder().key("0").showname(SystemEnv.getHtmlLabelName(332, user.getLanguage())).build()); options.add(ConditionOption.builder().key("1").showname(SystemEnv.getHtmlLabelName(15537, user.getLanguage())).build()); options.add(ConditionOption.builder().key("2").showname(SystemEnv.getHtmlLabelName(15539, user.getLanguage())).build()); options.add(ConditionOption.builder().key("3").showname(SystemEnv.getHtmlLabelName(15541, user.getLanguage())).build()); @@ -164,17 +166,18 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic apiDatas.put("datas", datas); //字段下拉框查询 - List quickSearchOptionList = getQuickSearchMapper().getQuickSearchOptionList(); + List allFieldInfo = getQuickSearchMapper().getAllFieldInfo(); + //List quickSearchOptionList = getQuickSearchMapper().getQuickSearchOptionList(); JSONArray options = new JSONArray(); - if (CollectionUtils.isNotEmpty(quickSearchOptionList)) { - for (QuickSearchOption quickSearchOption : quickSearchOptionList) { + if (CollectionUtils.isNotEmpty(allFieldInfo)) { + for (CusFormFieldPO formFieldPO : allFieldInfo) { JSONObject obj = new JSONObject(); - String fieldHtmlType = Util.null2String(quickSearchOption.getFieldHtmlType()); - String fieldId = Util.null2String(quickSearchOption.getFieldId()); + String fieldHtmlType = Util.null2String(formFieldPO.getFieldHtmlType()); + String fieldId = Util.null2String(formFieldPO.getScopeId() + "_" + formFieldPO.getTableName() + "_" + formFieldPO.getFieldName()); // String fieldName = Util.null2String(quickSearchOption.getFieldName()); - String type = Util.null2String(quickSearchOption.getType()); - int fieldLabel = Util.getIntValue(quickSearchOption.getFieldLabel(), 0); - String labelName = SystemEnv.getHtmlLabelName(Util.getIntValue(quickSearchOption.getFieldLabel()), user.getLanguage()); + String type = Util.null2String(formFieldPO.getType()); + int fieldLabel = Util.getIntValue(formFieldPO.getFieldLabel(), 0); + String labelName = SystemEnv.getHtmlLabelName(Util.getIntValue(formFieldPO.getFieldLabel()), user.getLanguage()); String fieldType = "2"; boolean isShowModel = false; if ("1".equals(fieldHtmlType)) { @@ -419,818 +422,45 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic return apiDatas; } - -// public JSONArray GetQuickSearchInfo(String customid, User user, HttpServletRequest request) { -// JSONArray datas = new JSONArray(); -// RecordSet rs = new RecordSet(); -// RecordSet rs1 = new RecordSet(); -// String ss = request.getQueryString(); -// CustomSearchComInfo customSearchComInfo = new CustomSearchComInfo(); -// String defSql = Util.toScreenToEdit(customSearchComInfo.getDefaultSql(customid), user.getLanguage()) ; -// -// Map> groupMap=new HashMap>(); -// -// // 表单字段 -// String sql = "SELECT ID,fieldid,customname,fieldhtmltype,typeTemp,fielddbtype,fieldname,orderid,groupid,showmodel FROM ("; -// sql += "select quick.ID,bill.id fieldid,quick.customname,bill.fieldhtmltype,bill.type typeTemp,bill.fielddbtype,fieldname,orderid,groupid,showmodel from mode_quicksearch_condition quick left join workflow_billfield bill on bill.id=quick.fieldid where customid=? AND quick.fieldid NOT IN(-1,-2) "; -// -// List args = new ArrayList(); -// args.add(customid); -// ModeFormComInfo modeFormComInfo = new ModeFormComInfo(); -// String formId = customSearchComInfo.getFormId(customid); -// boolean isVirtualForm = "1".equals(modeFormComInfo.getIsVirtualForm(formId)); -// if(!isVirtualForm) { -// // 加入创建日期 -// sql += "UNION ALL "; -// sql += "SELECT id,1 fieldid,customname,'3' fieldhtmltype,2 typeTemp, 'char(10)' fielddbtype,'modedatacreatedate' fieldname,orderid,groupid,showmodel "; -// sql += "FROM mode_quicksearch_condition WHERE customid=? AND fieldid =-1 "; -// -// // 加入创建人 -// sql += "UNION ALL "; -// //sql += "SELECT id,2 fieldid,customname,'3' fieldhtmltype,1 TYPE, 'int' fielddbtype,'modedatacreater' fieldname,orderid "; -// sql += "SELECT id,2 fieldid,customname,'3' fieldhtmltype,1 typeTemp, 'int' fielddbtype,'modedatacreater' fieldname,orderid,groupid,showmodel "; -// sql += "FROM mode_quicksearch_condition WHERE customid=? AND fieldid =-2 "; -// -// //添加最后修改人 -// sql += "UNION ALL "; -// sql += "SELECT id,7 fieldid,customname,'3' fieldhtmltype,1 typeTemp, 'int' fielddbtype,'modedatacreater' fieldname,orderid,groupid,showmodel "; -// sql += "FROM mode_quicksearch_condition WHERE customid=? AND fieldid =-7 "; -// -// //添加最后修改日期时间 -// sql += "UNION ALL "; -// sql += "SELECT id,8 fieldid,customname,'3' fieldhtmltype,290 typeTemp, 'char(10)' fielddbtype,'modedatacreatedate' fieldname,orderid,groupid,showmodel "; -// sql += "FROM mode_quicksearch_condition WHERE customid=? AND fieldid =-8 "; -// -// //添加密级字段int -// sql += "UNION ALL "; -// sql += "SELECT id,9 fieldid,customname,'5' fieldhtmltype,2 typeTemp, 'int' fielddbtype,'seclevel' fieldname,orderid,groupid,showmodel "; -// sql += "FROM mode_quicksearch_condition WHERE customid=? AND fieldid =-9 "; -// -// args.add(customid); -// args.add(customid); -// args.add(customid); -// args.add(customid); -// args.add(customid); -// } -// -// // 按照字段排序 -// sql += ") a order by groupid asc,orderid asc,id asc"; -// -// rs.executeQuery(sql, args); -// while (rs.next()) { -// int viewAttr = 2; -// JSONObject json = new JSONObject(); -// String fieldhtmltype = Util.null2String(rs.getString("fieldhtmltype")); -// String fieldtype = Util.null2String(rs.getString("typeTemp")); -// String id = Util.null2String(rs.getString("id")); -// String fieldnames = Util.null2String(rs.getString("fieldname")); -// String fieldid = Util.null2String(rs.getString("fieldid")); -// String groupid = Util.null2String(rs.getString("groupid")); -// float orderid = Util.getFloatValue(Util.null2String(rs.getString("orderid")),0); -// String showmodel = Util.null2String(rs.getString("showmodel")); -// String querysql = "select t.* from mode_CustomDspField t where t.customid=? and t.fieldid=?"; -// String conditiontransition = ""; -// String searchparavalue = ""; -// String searchparavalue1 = ""; -// String conditionValue = ""; -// String conditionValue1 = ""; -// String conditionValue2 = ""; -// String fieldname_seclevel = Util.null2String(rs.getString("fieldname"));//用于验证是否是密级字段; -// String showtype = Util.null2o(rs.getString("showtype"));//显示模式主要 针对浏览框 0:浏览框模式 1:下拉拉框模式 -// rs1.executeQuery(querysql, customid, "1".equals(fieldid)?"-1":"2".equals(fieldid)?"-2":"7".equals(fieldid)?"-7":"8".equals(fieldid)?"-8":fieldid); -// int count = 0; -// String requiredCon = ""; -// if(rs1.next()){ -// count ++; -// conditiontransition = Util.null2String(rs1.getString("conditiontransition")); -// requiredCon = Util.null2String(rs1.getString("requiredCon")); -// if("1".equals(requiredCon)){ -// viewAttr = 3; -// } -// conditionValue = Util.null2String(rs1.getString("conditionValue")); -// conditionValue1 = Util.null2String(rs1.getString("conditionValue1")); -// conditionValue2 = Util.null2String(rs1.getString("conditionValue2")); -// String searchparaname = Util.null2String(rs1.getString("searchparaname")); -// String searchparaname1 = Util.null2String(rs1.getString("searchparaname1")); -// if(!StringHelper.isEmpty(searchparaname)) { -// searchparavalue = replaceParams(Util.null2String(request.getParameter(searchparaname)), user); -// } -// -// if(!StringHelper.isEmpty(searchparaname1)) { -// searchparavalue1 = replaceParams(Util.null2String(request.getParameter(searchparaname1)), user); -// } -// if("".equals(searchparavalue)){ -// if("3".equals(fieldhtmltype)&&"1".equals(fieldtype)){ //人力资源 -// if(!"".equals(conditionValue1)&&!"null".equals(conditionValue1)){ -// searchparavalue = conditionValue1; -// }else if(conditiontransition.equalsIgnoreCase("1") && "".equals(conditionValue1)&&!"-5".equals(conditionValue)){ -// searchparavalue = conditionValue; -// }else{ -// searchparavalue = conditionValue; -// } -// }else if ("3".equals(fieldhtmltype)&&("2".equals(fieldtype)||"19".equals(fieldtype)||"290".equals(fieldtype))){ -// if("3".equals(fieldhtmltype)&&"19".equals(fieldtype)){ //时间 -// if("".equals(conditionValue)&&"".equals(conditionValue1)){ -// searchparavalue = searchparavalue; -// }else{ -// searchparavalue = conditionValue+","+conditionValue1; -// } -// }else if("3".equals(fieldhtmltype)&&"2".equals(fieldtype)){ //日期 -// if("".equals(conditionValue)&&"".equals(conditionValue1)){ -// searchparavalue = searchparavalue; -// }else{ -// searchparavalue = conditionValue+","+conditionValue1; -// } -// }else if(!"".equals(conditionValue1)&&!"null".equals(conditionValue1)){ -// if(!"".equals(conditionValue1)&&!"null".equals(conditionValue1)){ -// searchparavalue = conditionValue1+","+conditionValue2; //处理时间,日期回显 -//// searchparavalue1 = conditionValue1; -// }else{ -// searchparavalue = conditionValue; -// } -// } -// }else{ -// String acValue = conditionValue; -// if(!"".equals(conditionValue1)&&!"null".equals(conditionValue1)){ -// if(!"".equals(conditionValue2)&&!"null".equals(conditionValue2)){ -// conditionValue = conditionValue+","+conditionValue1+","+conditionValue2; -// }else{ -// conditionValue = conditionValue+","+conditionValue1; -// } -// } -// if(!"".equals(conditionValue)){ -// searchparavalue = conditionValue; -// } -// if("1".equals(fieldhtmltype)&&!"1".equals(fieldtype)){ -// searchparavalue = acValue; -// } -// } -// } -// } -// if(conditiontransition.equalsIgnoreCase("1") && fieldhtmltype.equals("3")){ -// fieldtype = convertSingleBrowserTypeToMulti_All(fieldtype); -// } -// String fielddbtype = Util.null2String(rs.getString("fielddbtype")); -// if ("".equals(fieldid)) { -// continue; -// } -// -// String fieldname = "con_"+ (Util.getIntValue(fieldid) > 0 ? fieldid : "_"+(-Util.getIntValue(fieldid))); -// if(StringHelper.isEmpty(searchparavalue)&&StringHelper.isEmpty(searchparavalue1)){//con_fielid格式作为查询条件,解析到查询条件上 -// searchparavalue=Util.null2String(request.getParameter(fieldname)); -// } -// -// -// String customname = Util.null2String(rs.getString("customname")); -// customname=Util.formatMultiLang(customname, user.getLanguage()+""); -// if ("1".equals(fieldhtmltype)) { -// if ("1".equals(fieldtype)) {//单行文本 -// if(!searchparavalue.isEmpty()) { -// json.put("value", searchparavalue); -// } -// }else {//整数或浮点数 -// sql ="select id,customname,minnum,maxnum from mode_quicksearch_detail where cid=? order by orderid asc,id asc"; -// rs1.executeQuery(sql, id); -// JSONArray arr = new JSONArray(); -// JSONObject obj1 = new JSONObject(); -// if("1".equals(requiredCon)){ -// obj1.put("key", ""); -// }else{ -// obj1.put("key", "-1"); -// } -// obj1.put("showname", ""); -// arr.add(obj1); -// boolean flg = false; -// Map map = new HashMap(); -// while (rs1.next()) { -// String minnum = Util.null2String(rs1.getString("minnum")); -// String maxnum = Util.null2String(rs1.getString("maxnum")); -// String fieldValue = minnum+","+maxnum; -// map.put(rs1.getString("id"),fieldValue); -// boolean flgs = false; -// if (!"".equals(minnum) && !searchparavalue.isEmpty()) { -// float num = Util.getFloatValue(minnum); -// float num2 = Util.getFloatValue(maxnum); -// if(Util.getFloatValue(searchparavalue)==Util.getFloatValue("0")){ -// if(num<=Util.getFloatValue(searchparavalue) && num2>=Util.getFloatValue(searchparavalue) && !flg){ -// flg = true; -// flgs = true; -// //json.put("value", rs1.getString("id")); -// } -// }else{ -// if(num<=Util.getFloatValue(searchparavalue) && num2>=Util.getFloatValue(searchparavalue) && !flg){ -// flg = true; -// flgs = true; -// //json.put("value", rs1.getString("id")); -// } -// } -// } -// JSONObject obj2 = new JSONObject(); -// obj2.put("key",rs1.getString("id")); -// obj2.put("selected",flgs); -// obj2.put("showname", Util.formatMultiLang(rs1.getString("customname"), user.getLanguage()+"")); -// arr.add(obj2); -// } -// json.put("floatValue",map); -// json.put("options", arr); -// } -// } else if ("2".equals(fieldhtmltype)) {//多文本 -// if(!searchparavalue.isEmpty()) { -// json.put("value", searchparavalue); -// } -// }else if ("5".equals(fieldhtmltype) && "1".equals(fieldtype)) {//选择框 -// RecordSet record = new RecordSet(); -// StringBuffer sql1 = new StringBuffer(); -// Integer fieldlabel = 0; -// String parentDomkey = ""; -// Integer pubchilchoiceId = 0; -// -// sql1.append(" select a.id, b.fieldlabel, b.pubchilchoiceId "); -// sql1.append(" from mode_customdspfield a, workflow_billfield b "); -// sql1.append(" where a.fieldid = b.id and b.id=? "); -// sql1.append(" and a.customId = ? "); -// record.executeQuery(sql1.toString(),fieldid,customId); -// while(record.next()){ -// fieldlabel = record.getInt("fieldlabel"); -// pubchilchoiceId = record.getInt("pubchilchoiceId"); -// } -// if(pubchilchoiceId > 0){ -// parentDomkey = "con_"+pubchilchoiceId; -// }else{//#866910 -// String dlxzksql = "select t.id from workflow_billfield t where t.childfieldid=?"; -// rs1.executeQuery(dlxzksql,fieldid); -// if(rs1.next()){ -// String parentfieldid = Util.null2String(rs1.getString(1)); -// if(!parentfieldid.isEmpty()){ -// parentDomkey = "con_"+parentfieldid; -// } -// } -// } -// ConditionFactory conditionFactory = new ConditionFactory(user); -// CubeFieldService cfs = new CubeFieldService(); -// List options = new ArrayList(); -// SearchConditionItem conditionJson = new SearchConditionItem(); -// if(!"seclevel".equals(fieldname_seclevel)){ -// conditionJson = conditionFactory.createCondition(ConditionType.SELECT, fieldlabel, fieldname+","+parentDomkey, cfs.getWorkflowSelectItems(""+fieldid, user.getLanguage(),true)); -// //options = cfs.getWorkflowSelectItems(""+fieldid, user.getLanguage(),true); -// options = conditionJson.getOptions(); -// if("1".equals(conditiontransition) && options.size()>0&&"".equals(options.get(0).getKey())){//选择框多选时去除空选项 -// options.remove(0); -// } -// }else{ -// //密级修改为从人力资源那么获取 -// Map otherParam = new HashMap<>(); -// AddSeclevelUtil addSeclevelUtil = new AddSeclevelUtil(); -// otherParam.put("fieldlabel",fieldlabel); -// otherParam.put("fieldname",fieldname); -// otherParam.put("parentDomkey",parentDomkey); -// conditionJson = addSeclevelUtil.getSecLevelOptions(conditionFactory,user,otherParam); -// -//// HrmClassifiedProtectionBiz hrmClassifiedProtectionBiz = new HrmClassifiedProtectionBiz(); -//// SearchConditionOption searchConditionOption = new SearchConditionOption(); -//// searchConditionOption.setKey(""); -//// searchConditionOption.setShowname(""); -//// searchConditionOption.setChilditemid(Util.splitString("", ",")); -//// options.add(searchConditionOption); -//// //密级调用人力资源的 资源密级下拉选项 -//// List comOptions = hrmClassifiedProtectionBiz.getResourceOptionListByUser(user); -//// if (null != comOptions && comOptions.size() > 0) { -//// for (SearchConditionOption searchConditionOptioninner : comOptions) { -//// SearchConditionOption searchConditionOption_inner = new SearchConditionOption(); -//// String selectvalue = searchConditionOptioninner.getKey(); -//// String selectname = searchConditionOptioninner.getShowname(); -//// searchConditionOption_inner.setKey(selectvalue); -//// searchConditionOption_inner.setShowname(selectname); -//// searchConditionOption_inner.setChilditemid(Util.splitString("", ",")); -//// options.add(searchConditionOption_inner); -//// -//// } -//// conditionJson = conditionFactory.createCondition(ConditionType.SELECT, fieldlabel, fieldname + "," + parentDomkey, options); -//// } -// options = conditionJson.getOptions(); -// if("1".equals(conditiontransition) && options.size()>0&&"".equals(options.get(0).getKey())){//选择框多选时去除空选项 -// options.remove(0); -// } -// } -// -// -// -// json.put("options", options); -// json.put("parentDomkey",conditionJson.getParentDomkey()); -// json.put("domkey",conditionJson.getDomkey()); -// if(!searchparavalue.isEmpty()) { -// json.put("value", searchparavalue); -// } -// if(conditiontransition.equalsIgnoreCase("1")){ -// json.put("detailtype","2"); -// json.put("multiple",true); -// }else{ -// json.put("detailtype",""); -// } -// json.put("fieldid", fieldid); -// json.put("customname", customname); -// }else if ("5".equals(fieldhtmltype) && "2".equals(fieldtype)) {//多选 -// RecordSet record = new RecordSet(); -// StringBuffer sql1 = new StringBuffer(); -// Integer fieldlabel = 0; -// String parentDomkey = ""; -// Integer pubchilchoiceId = 0; -// -// sql1.append(" select a.id, b.fieldlabel,b.pubchilchoiceId "); -// sql1.append(" from mode_customdspfield a, workflow_billfield b "); -// sql1.append(" where a.fieldid = b.id and b.id=? "); -// sql1.append(" and a.customId = ? "); -// record.executeQuery(sql1.toString(),fieldid,customId); -// while(record.next()){ -// fieldlabel = record.getInt("fieldlabel"); -// pubchilchoiceId = record.getInt("pubchilchoiceId"); -// } -// if(pubchilchoiceId > 0){ -// parentDomkey = "con_"+pubchilchoiceId; -// }else{//#866910 -// String dlxzksql = "select t.id from workflow_billfield t where t.childfieldid=?"; -// rs1.executeQuery(dlxzksql,fieldid); -// if(rs1.next()){ -// String parentfieldid = Util.null2String(rs1.getString(1)); -// if(!parentfieldid.isEmpty()){ -// parentDomkey = "con_"+parentfieldid; -// } -// } -// } -// ConditionFactory conditionFactory = new ConditionFactory(user); -// CubeFieldService cfs = new CubeFieldService(); -// SearchConditionItem conditionJson = new SearchConditionItem(); -// if(!"seclevel".equals(fieldname_seclevel)){ -// conditionJson = conditionFactory.createCondition(ConditionType.SELECT, fieldlabel, fieldname+","+parentDomkey,cfs.getWorkflowSelectItems(""+fieldid, user.getLanguage(),true)); -// }else{ -// //密级修改为从人力资源那么获取 -// Map otherParam = new HashMap<>(); -// AddSeclevelUtil addSeclevelUtil = new AddSeclevelUtil(); -// otherParam.put("fieldlabel",fieldlabel); -// otherParam.put("fieldname",fieldname); -// otherParam.put("parentDomkey",parentDomkey); -// conditionJson = addSeclevelUtil.getSecLevelOptions(conditionFactory,user,otherParam); -// -// } -// List options = new ArrayList(); -// options = conditionJson.getOptions(); -// if(!searchparavalue.isEmpty()) { -// json.put("value", searchparavalue); -// } -// json.put("options", options); -// json.put("parentDomkey",conditionJson.getParentDomkey()); -// json.put("domkey",conditionJson.getDomkey()); -// json.put("viewAttr", viewAttr); -// json.put("detailtype","2"); -// json.put("customname", customname); -// }else if ("5".equals(fieldhtmltype) && "3".equals(fieldtype)) {//单选 -// RecordSet record = new RecordSet(); -// StringBuffer sql1 = new StringBuffer(); -// Integer fieldlabel = 0; -// String parentDomkey = ""; -// Integer pubchilchoiceId = 0; -// -// sql1.append(" select a.id, b.fieldlabel, b.pubchilchoiceId "); -// sql1.append(" from mode_customdspfield a, workflow_billfield b "); -// sql1.append(" where a.fieldid = b.id and b.id=? "); -// sql1.append(" and a.customId = ? "); -// record.executeQuery(sql1.toString(),fieldid,customId); -// while(record.next()){ -// fieldlabel = record.getInt("fieldlabel"); -// pubchilchoiceId = record.getInt("pubchilchoiceId"); -// } -// if(pubchilchoiceId > 0){ -// parentDomkey = "con_"+pubchilchoiceId; -// }else{//#866910 -// String dlxzksql = "select t.id from workflow_billfield t where t.childfieldid=?"; -// rs1.executeQuery(dlxzksql,fieldid); -// if(rs1.next()){ -// String parentfieldid = Util.null2String(rs1.getString(1)); -// if(!parentfieldid.isEmpty()){ -// parentDomkey = "con_"+parentfieldid; -// } -// } -// } -// ConditionFactory conditionFactory = new ConditionFactory(user); -// CubeFieldService cfs = new CubeFieldService(); -// SearchConditionItem conditionJson = conditionFactory.createCondition(ConditionType.SELECT, fieldlabel, fieldname+","+parentDomkey,cfs.getWorkflowSelectItems(""+fieldid, user.getLanguage(),true)); -// List options = new ArrayList(); -// options = conditionJson.getOptions(); -// if("1".equals(conditiontransition) && options.size()>0&&"".equals(options.get(0).getKey())){//选择框多选时去除空选项 -// options.remove(0); -// } -// json.put("options", options); -// if(!searchparavalue.isEmpty()) { -// json.put("value", searchparavalue); -// } -// json.put("detailtype","3"); -// json.put("parentDomkey",conditionJson.getParentDomkey()); -// json.put("domkey",conditionJson.getDomkey()); -// json.put("supportCancel", true); -// json.put("fieldid", fieldid); -// json.put("customname", customname); -// }else if ("4".equals(fieldhtmltype) && "1".equals(fieldtype)) {//勾选框 -// RecordSet record = new RecordSet(); -// StringBuffer sql1 = new StringBuffer(); -// Integer fieldlabel = 0; -// -// sql1.append(" select a.id, b.fieldlabel "); -// sql1.append(" from mode_customdspfield a, workflow_billfield b "); -// sql1.append(" where a.fieldid = b.id and b.id=? "); -// sql1.append(" and a.customId = ? "); -// record.executeQuery(sql1.toString(),fieldid,customId); -// while(record.next()){ -// fieldlabel = record.getInt("fieldlabel"); -// } -// ConditionFactory conditionFactory = new ConditionFactory(user); -// CubeFieldService cfs = new CubeFieldService(); -// SearchConditionItem conditionJson = conditionFactory.createCondition(ConditionType.SELECT, fieldlabel, fieldname,this.getCheckOptions(user.getLanguage())); -// List options = new ArrayList(); -// options = conditionJson.getOptions(); -// -// json.put("options", options); -// json.put("domkey",conditionJson.getDomkey()); -// json.put("viewAttr", viewAttr); -// json.put("detailtype","3"); -// json.put("customname", customname); -// }else if ("3".equals(fieldhtmltype)) {//日期 -// BrowserBean browserProps = null; -// if ("2".equals(fieldtype)||"19".equals(fieldtype)||"290".equals(fieldtype)) {//日期 时间 日期时间 -// if(searchparavalue.indexOf(",")>-1){ -// String[] vals = searchparavalue.split(","); -// if(vals.length>0){ -// searchparavalue = vals[0]; -// if(vals.length>1){ -// searchparavalue1 = vals[1]; -// if(vals.length>2){ -// searchparavalue1 = vals[1]+vals[2]; -// } -// } -// } -// } -// if("2".equals(fieldtype) && searchparavalue.isEmpty()){ -// searchparavalue = "0"; // 全部 -// } -// if("2".equals(fieldtype) && !searchparavalue.isEmpty()) { -// if(-1!=Util.getIntValue(searchparavalue)){ -// json.put("value", new String[]{searchparavalue,"",""}); -// }else{ -// json.put("value", new String[]{"6",searchparavalue,searchparavalue1}); -// } -// }else{ -// ArrayList dataValue = new ArrayList(); -// if("".equals(searchparavalue)&&"".equals(searchparavalue1)){ -// json.put("value", dataValue); -// }else{ -// dataValue.add(searchparavalue); -// dataValue.add(searchparavalue1); -// json.put("value", dataValue); -// } -//// json.put("value", searchparavalue); -// } -// }else if("402".equals(fieldtype) || "403".equals(fieldtype)){//年、年月 -// if(!searchparavalue.isEmpty()) { -// json.put("value", searchparavalue); -// } -// }else if("161".equals(fieldtype) || "162".equals(fieldtype)) { -// browserProps = new BrowserBean(fieldtype); -// BrowserValueInfoService browserValueInfoService = new BrowserValueInfoService(); -// List valueObj = null; -// List> replaceDatas = new ArrayList>(); -// try { -// valueObj = browserValueInfoService.getBrowserValueInfo(Util.getIntValue(fieldtype), fielddbtype, 0, searchparavalue, user.getLanguage(), -1); -// for(int i=0;i map = new HashMap(); -// BrowserValueInfo m=(BrowserValueInfo)valueObj.get(i); -// map.put("id",m.getId()); -// map.put("name",m.getName()); -// map.put("count",m.getCount()); -// replaceDatas.add(map); -// } -// json.put("replaceDatas",replaceDatas); -// browserProps.setReplaceDatas(replaceDatas); -// -// } catch (Exception e) { -// } -// new BrowserInitUtil().initCustomizeBrow(browserProps,fielddbtype, Util.getIntValue(fieldtype) , user.getUID()); -// browserProps.getDataParams().put("formmodefieldid",fieldid); -// browserProps.getConditionDataParams().put("formmodefieldid", fieldid); -// browserProps.getCompleteParams().put("formmodefieldid", fieldid); -// } else if("256".equals(fieldtype) || "257".equals(fieldtype)) { -// browserProps = new BrowserBean(fieldtype); -// browserProps.getDataParams().put("cube_treeid", fielddbtype); -// browserProps.getCompleteParams().put("cube_treeid", fielddbtype); -// BrowserValueInfoService browserValueInfoService = new BrowserValueInfoService(); -// List valueObj = null; -// List> replaceDatas = new ArrayList>(); -// try { -// valueObj = browserValueInfoService.getBrowserValueInfo(Util.getIntValue(fieldtype), fielddbtype, 0, searchparavalue, user.getLanguage(), -1); -// for(int i=0;i map = new HashMap(); -// BrowserValueInfo m=(BrowserValueInfo)valueObj.get(i); -// map.put("id",m.getId()); -// map.put("name",m.getName()); -// map.put("count",m.getCount()); -// replaceDatas.add(map); -// } -// json.put("replaceDatas",replaceDatas); -// browserProps.setReplaceDatas(replaceDatas); -// -// } catch (Exception e) { -// } -// new BrowserInitUtil().initBrowser(browserProps,user.getLanguage()); -// }else if("1".equals(fieldtype)||("1".equals(conditiontransition)&&"17".equals(fieldtype))){ //人力资源 -// if("1".equals(conditiontransition)&&"1".equals(fieldtype)){ -// browserProps = new BrowserBean(fieldtype); -// browserProps.setViewAttr(viewAttr); -// List objs = null; -// if(!searchparavalue.isEmpty()){ -// if (Util.getIntValue(searchparavalue) == 0||"-1".equals(searchparavalue)||Util.getIntValue(searchparavalue) == -2 -// ||Util.getIntValue(searchparavalue) == -3||Util.getIntValue(searchparavalue) == -4||Util.getIntValue(searchparavalue) == -5 -// ||Util.getIntValue(searchparavalue) == -6||Util.getIntValue(searchparavalue) == -7||Util.getIntValue(searchparavalue) == -8){ -// json.put("value",new String[]{searchparavalue,"",""}); -// } else { -// try { -// objs = new BrowserValueInfoService().getBrowserValueInfo(1,null,0,searchparavalue,user.getLanguage(),-1); -// } catch (Exception e) { -// } -// String valueSpan = ""; -// if(objs!=null) { -// for(Object obj : objs) { -// valueSpan+=((BrowserValueInfo) obj).getName()+","; -// } -// valueSpan = valueSpan.substring(0,valueSpan.length()-1); -// } -// json.put("value", new Object[]{"-5",new Object[]{searchparavalue,valueSpan, objs}}); -// } -// }else{ -// json.put("value", new Object[]{"-5","",""}); -// } -// new BrowserInitUtil().initBrowser(browserProps,user.getLanguage()); -// }else{ -// browserProps = new BrowserBean(fieldtype); -// browserProps.setViewAttr(viewAttr); -// List objs = null; -// if(!searchparavalue.isEmpty()){ -// if (Util.getIntValue(searchparavalue) <= 0){ -// json.put("value",new String[]{searchparavalue,""}); -// } else { -// try { -// objs = new BrowserValueInfoService().getBrowserValueInfo(1,null,0,searchparavalue,user.getLanguage(),-1); -// } catch (Exception e) { -// } -// String valueSpan = ""; -// if(objs!=null) { -// for(Object obj : objs) { -// valueSpan+=((BrowserValueInfo) obj).getName()+","; -// } -// } -// json.put("value", new Object[]{"-5",new Object[]{searchparavalue,valueSpan, objs}}); -// } -// }else{ -// json.put("value", new Object[]{"-5","",""}); -// } -// new BrowserInitUtil().initBrowser(browserProps,user.getLanguage()); -// } -// }else if("4".equals(fieldtype) || "57".equals(fieldtype)){ -// browserProps = new BrowserBean(fieldtype); -// if(!searchparavalue.isEmpty()){ -// BrowserValueInfoService browserValueInfoService = new BrowserValueInfoService(); -// List valueObj = null; -// List> replaceDatas = new ArrayList>(); -// try { -// valueObj = browserValueInfoService.getBrowserValueInfo(fieldtype, String.valueOf(fielddbtype), 0, searchparavalue, user.getLanguage(), "",""); -// for(int i=0;i map = new HashMap(); -// BrowserValueInfo m=(BrowserValueInfo)valueObj.get(i); -// map.put("id",m.getId()); -// map.put("name",m.getName()); -// map.put("count",m.getCount()); -// replaceDatas.add(map); -// } -// json.put("replaceDatas",replaceDatas); -// browserProps.setReplaceDatas(replaceDatas); -// } catch (Exception e) { -// } -// } -// browserProps.setViewAttr(viewAttr); -// Map map = new HashMap(); -// Map map1 = new HashMap(); -// Map map2 = new HashMap(); -// map.put("fromModule","model"); -// map1.put("fromModule","model"); -// map2.put("fromModule","model"); -// browserProps.setDataParams(map1); -// browserProps.setDestDataParams(map2); -// browserProps.setCompleteParams(map); -// new BrowserInitUtil().initBrowser(browserProps,user.getLanguage()); -// } else if("164".equals(fieldtype)||"194".equals(fieldtype)){ -// browserProps = new BrowserBean(fieldtype); -// if(!searchparavalue.isEmpty()){ -// BrowserValueInfoService browserValueInfoService = new BrowserValueInfoService(); -// List valueObj = null; -// List> replaceDatas = new ArrayList>(); -// try { -// valueObj = browserValueInfoService.getBrowserValueInfo(fieldtype, String.valueOf(fielddbtype), 0, searchparavalue, user.getLanguage(), "",""); -// for(int i=0;i map = new HashMap(); -// BrowserValueInfo m=(BrowserValueInfo)valueObj.get(i); -// map.put("id",m.getId()); -// map.put("name",m.getName()); -// map.put("count",m.getCount()); -// replaceDatas.add(map); -// } -// json.put("replaceDatas",replaceDatas); -// browserProps.setReplaceDatas(replaceDatas); -// } catch (Exception e) { -// } -// } -// browserProps.setViewAttr(viewAttr); -// Map map = new HashMap(); -// Map map1 = new HashMap(); -// Map map2 = new HashMap(); -// map.put("fromModule","model"); -// map1.put("fromModule","model"); -// map2.put("fromModule","model"); -// browserProps.setDataParams(map1); -// browserProps.setDestDataParams(map2); -// browserProps.setCompleteParams(map); -// new BrowserInitUtil().initBrowser(browserProps,user.getLanguage()); -// } else { -// browserProps = new BrowserBean(fieldtype); -// if(!searchparavalue.isEmpty()){ -// BrowserValueInfoService browserValueInfoService = new BrowserValueInfoService(); -// List valueObj = null; -// List> replaceDatas = new ArrayList>(); -// try { -// valueObj = browserValueInfoService.getBrowserValueInfo(Util.getIntValue(fieldtype), fielddbtype, 0, searchparavalue, user.getLanguage(), -1); -// for(int i=0;i map = new HashMap(); -// if("141".equals(fieldtype)){ -// map = (Map)valueObj.get(i); -// }else { -// BrowserValueInfo m=(BrowserValueInfo)valueObj.get(i); -// map.put("id", m.getId()); -// map.put("name", m.getName()); -// map.put("count", m.getCount()); -// } -// replaceDatas.add(map); -// } -// json.put("replaceDatas",replaceDatas); -// browserProps.setReplaceDatas(replaceDatas); -// -// } catch (Exception e) { -// } -// } -// //Map map = new HashMap<>(); -// //map.put("fromModule","model"); -// //browserProps.setDataParams(map); -// //browserProps.setDestDataParams(map); -// //browserProps.setCompleteParams(map); -// browserProps.setViewAttr(viewAttr); -// new BrowserInitUtil().initBrowser(browserProps,user.getLanguage()); -// } -// if(conditiontransition.equalsIgnoreCase("1")){ -// // browserProps.setIsMultCheckbox(true); -// browserProps.setType(fieldtype); -// } -// -// json.put("browserProps", browserProps); -// } -// json.put("conditiontransition",conditiontransition); -// json.put("fieldid", fieldid); -// json.put("customname", customname); -// json.put("fieldtype", fieldtype); -// json.put("viewAttr",viewAttr); -// json.put("requiredCon",requiredCon); -// json.put("fieldhtmltype", fieldhtmltype); -// json.put("showtype",showtype );//显示模式主要 针对浏览框 0:浏览框模式 1:下拉拉框模式 -// json.put("groupid",groupid ); -// json.put("showmodel",showmodel ); -// json.put("orderid",orderid ); -// if(!"".equals(groupid) && !"0".equals(groupid)){ -// List list=groupMap.get(groupid); -// if(null==list){ -// list=new ArrayList(); -// } -// list.add(json); -// groupMap.put(groupid,list); -// }else{ -// datas.add(json); -// } -// } -// -// rs.executeQuery("select * from mode_customsearchgroup where customid=?",customid); -// Map group=new HashMap(); -// while(rs.next()){ -// float minOrder = 10000000; -// JSONObject json = new JSONObject(); -// String id=Util.null2String(rs.getString("id")); -// String groupname=Util.null2String(rs.getString("groupname")); -// List list=groupMap.get(id);//当前分组下的所有快捷搜索 -// if(null==list) { -// continue; -// } -// -// json.put("groupid",id); -// json.put("groupname",groupname); -// JSONArray chrild = new JSONArray(); -// for(int i=0;i getSelectOptions(QuickSearchCondition quickSearchCondition) { + try { + String fieldId = quickSearchCondition.getFieldId(); + HrmFieldSearchConditionComInfo hrmFieldSearchConditionComInfo = new HrmFieldSearchConditionComInfo(); + int scopeid = Integer.parseInt(fieldId.split("_")[0]); + HrmFieldManager hfm = new HrmFieldManager("HrmCustomFieldByInfoType", scopeid); + String fieldName = fieldId.substring(fieldId.lastIndexOf("_") + 1); + + org.json.JSONObject hrmFieldConf = hfm.getHrmFieldConf(fieldName); + if (null == hrmFieldConf) { + return new ArrayList<>(); } - } else if ("$SubcompanyId$".equalsIgnoreCase(value)) { - try { - ResourceComInfo resourceComInfo = new ResourceComInfo(); - return resourceComInfo.getSubCompanyID("" + user.getUID()); - } catch (Exception e) { + boolean baseField = hfm.isBaseField(fieldName); + HrmFieldBean hrmFieldBean = new HrmFieldBean(); + hrmFieldBean.setFieldid(Util.null2String(hrmFieldConf.getString("id"))); + hrmFieldBean.setFieldname(scopeid + "_" + (baseField ? "hrm" : "cus") + "_" + fieldName); + hrmFieldBean.setFieldlabel(hrmFieldConf.getString("fieldlabel")); + hrmFieldBean.setFieldhtmltype(hrmFieldConf.getString("fieldhtmltype")); + hrmFieldBean.setType(hrmFieldConf.getString("type")); + hrmFieldBean.setDmlurl(hrmFieldConf.getString("dmlurl")); + hrmFieldBean.setIssystem(baseField ? "1" : "0"); + hrmFieldBean.setIsFormField(true); + hrmFieldBean.setIsQuickSearch(false); + hrmFieldBean.setIsScope(false); + if ("jobactivity".equals(fieldName)) { + // 职务:282 + hrmFieldBean.setType("282"); } - } else if ("$yesterday$".equalsIgnoreCase(value)) { - return "9"; - } else if ("$tomorrow$".equalsIgnoreCase(value)) { - return "10"; - } else if ("$lastWeek$".equalsIgnoreCase(value)) { - return "11"; - } else if ("$nextWeek$".equalsIgnoreCase(value)) { - return "12"; + SearchConditionItem searchConditionItem = hrmFieldSearchConditionComInfo.getSearchConditionItem(hrmFieldBean, user); + return searchConditionItem.getOptions(); + } catch (JSONException e) { + throw new RuntimeException(e); } - return value; } - public static String convertSingleBrowserTypeToMulti_All(String fieldtype) { - switch (fieldtype) { -// case "1":return "17";//人力资源 - case "7": - return "18";//多客户 - case "9": - return "37";//多文档 -// case "4":return "57";//多部门 - case "267": - return "65";//多角色 - case "8": - return "135";//多项目 - case "16": - return "152";//多流程 - case "161": - return "162";//自定义多选 - case "165": - return "166";//分权多人力资源 - case "167": - return "168";//分权多部门 - case "169": - return "170";//分权多分部 -// case "164":return "194";//多分部 - case "256": - return "257";//自定义树形多选 - case "24": - return "278";//多岗位 - case "292": - return "293";//多发票 - case "87": - return "184";//会议室 - case "23": - return "315";//多资产 - case "25": - return "317";//多资产组 - case "179": - return "314";//多资产资料 - default: - return fieldtype; - } - } } -- 2.40.0.windows.1 From 0898759845e6957cf0fc00d87fc43de39a928f86 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 15 Aug 2023 18:10:05 +0800 Subject: [PATCH 86/87] =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=BF=AB=E6=8D=B7?= =?UTF-8?q?=E6=90=9C=E7=B4=A2BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/service/impl/QuickSearchServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java b/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java index 14fbf7fd..f8a05c89 100644 --- a/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java +++ b/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java @@ -91,7 +91,7 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic Map selectLinkageDataMap = new HashMap<>(1); Map map = new HashMap<>(2); map.put("conditionType", "RANGEPICKER"); - map.put("domkey", Arrays.asList("start", "end")); + map.put("domkey", Arrays.asList(quickSearchCondition.getFieldId() + "_start", quickSearchCondition.getFieldId() + "_end")); selectLinkageDataMap.put("6", map); condition.setSelectLinkageDatas(selectLinkageDataMap); rangeConditions.add(condition); -- 2.40.0.windows.1 From 01dc48072086a088a459a5656f8f99f239cf888e Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Wed, 16 Aug 2023 13:49:10 +0800 Subject: [PATCH 87/87] =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/service/impl/HrmResourceServiceImpl.java | 3 +++ .../organization/service/impl/QuickSearchServiceImpl.java | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java index 8f125077..1aba4a21 100644 --- a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java @@ -1153,6 +1153,9 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic case INPUTNUMBER:// 数字 if (isQuickSearch) { + if ("-1".equals(value)){ + break; + } QuickSearchDetail quickSearchDetailById = getQuickSearchMapper().getQuickSearchDetailById(value); Integer maxNum = quickSearchDetailById.getMaxNum(); Integer minNum = quickSearchDetailById.getMinNum(); diff --git a/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java b/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java index f8a05c89..e67399ed 100644 --- a/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java +++ b/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java @@ -71,6 +71,7 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic } else { // 字段本身值、判断有无下拉框选项 List options = selectOptions.stream().map(item -> ConditionOption.builder().key(item.getKey()).showname(item.getShowname()).build()).collect(Collectors.toList()); + options.add(0,ConditionOption.builder().key("-1").showname("全部").build()); condition.setOptions(options); } rangeConditions.add(condition); @@ -99,10 +100,13 @@ public class QuickSearchServiceImpl extends Service implements QuickSearchServic case 1: // 整数-浮点数 List quickSearchDetailList = getQuickSearchMapper().getQuickSearchDetailByCid(quickSearchCondition.getId().toString()); + if (CollectionUtils.isEmpty(quickSearchDetailList)) { condition.setCom("未设置选项"); } else { - condition.setOptions(quickSearchDetailList.stream().map(item -> ConditionOption.builder().key(item.getId().toString()).showname(item.getCustomName()).build()).collect(Collectors.toList())); + List collect = quickSearchDetailList.stream().map(item -> ConditionOption.builder().key(item.getId().toString()).showname(item.getCustomName()).build()).collect(Collectors.toList()); + collect.add(0,ConditionOption.builder().key("-1").showname("全部").build()); + condition.setOptions(collect); } rangeConditions.add(condition); break; -- 2.40.0.windows.1