diff --git a/src/com/engine/organization/service/ExportCommonService.java b/src/com/engine/organization/service/ExportCommonService.java index 43fca88b..7320f1b6 100644 --- a/src/com/engine/organization/service/ExportCommonService.java +++ b/src/com/engine/organization/service/ExportCommonService.java @@ -21,5 +21,5 @@ public interface ExportCommonService { */ XSSFWorkbook resourceExport(List ids); - XSSFWorkbook resourceExport(HttpServletRequest request, HttpServletResponse response); + XSSFWorkbook resourceExport(HttpServletRequest request, HttpServletResponse response,String ids); } diff --git a/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java index 062e39dc..6e8b55fd 100644 --- a/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java @@ -86,7 +86,7 @@ public class ExportCommonServiceImpl extends Service implements ExportCommonServ } @Override - public XSSFWorkbook resourceExport(HttpServletRequest request, HttpServletResponse response) { + public XSSFWorkbook resourceExport(HttpServletRequest request, HttpServletResponse response,String ids) { List headerList = new ArrayList<>(); List headerNameList = new ArrayList<>(); OrganizationWeaTable table = new OrganizationWeaTable<>(user, HrmResourceVO.class); @@ -97,6 +97,11 @@ public class ExportCommonServiceImpl extends Service implements ExportCommonServ if (detachUtil.isDETACH()) { sqlWhere += " and t.subcompanyid1 in(" + parentCompanyIds + ")"; } + + if(StringUtils.isNotBlank(ids)){ + sqlWhere += " and t.id in(" + ids + ")"; + } + table.setSqlwhere(sqlWhere); List weaTableColumnList = new ArrayList<>(); String columns = ""; diff --git a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java index f55d82c4..86a6741b 100644 --- a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java @@ -6,6 +6,7 @@ import com.api.browser.bean.SearchConditionOption; import com.api.browser.util.ConditionType; import com.api.hrm.bean.HrmFieldBean; import com.api.hrm.util.HrmFieldSearchConditionComInfo; +import com.cloudstore.dev.api.util.Util_DataCache; import com.cloudstore.eccom.constant.WeaBoolAttr; import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.cloudstore.eccom.result.WeaResultMsg; @@ -141,6 +142,11 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic List fields = new ArrayList<>(); List allConditions = getAllConditions(); + if (Util_DataCache.getObjVal("hmc_allDept") == null) { + Map> deptStr = getDeptMap(); + Util_DataCache.setObjVal("hmc_allDept", deptStr, 7200); + } + if (jclOrgCustomTemplatePO != null) { if (StringUtils.isNotBlank(jclOrgCustomTemplatePO.getBasicFields())) { columns = jclOrgCustomTemplatePO.getBasicFields(); @@ -1209,4 +1215,23 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic return selectKeys; } + private static Map> getDeptMap() { + Map> data = new HashMap(); + String sql = "select id,departmentname,supdepid from HrmDepartment where (canceled IS NULL OR canceled !='1')"; + RecordSet rs = new RecordSet(); + rs.execute(sql); + + while(rs.next()) { + String id = Util.null2String(rs.getString("id")); + String departmentname = Util.null2String(rs.getString("departmentname")); + String supdepid = Util.null2String(rs.getString("supdepid")); + Map obj = new HashMap(); + obj.put("departmentname", departmentname); + obj.put("supdepid", supdepid); + data.put(id, obj); + } + + return data; + } + } diff --git a/src/com/engine/organization/transmethod/HrmResourceTransMethod.java b/src/com/engine/organization/transmethod/HrmResourceTransMethod.java index bcdcfbc9..93b1722a 100644 --- a/src/com/engine/organization/transmethod/HrmResourceTransMethod.java +++ b/src/com/engine/organization/transmethod/HrmResourceTransMethod.java @@ -1,14 +1,20 @@ package com.engine.organization.transmethod; +import com.cloudstore.dev.api.util.Util_DataCache; import com.engine.organization.entity.job.bo.JobBO; import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.mapper.department.DepartmentMapper; import com.engine.organization.mapper.hrmresource.SystemDataMapper; import com.engine.organization.util.db.MapperProxyFactory; import org.json.JSONObject; +import weaver.general.BaseBean; +import weaver.general.Util; import weaver.hrm.User; import weaver.hrm.definedfield.HrmFieldManager; +import javax.servlet.http.HttpSession; +import java.util.Map; + /** * @author:dxfeng * @createTime: 2022/06/21 @@ -18,14 +24,20 @@ public class HrmResourceTransMethod { public static String getFieldTrueValue(String id, String para) { HrmFieldManager hfm = new HrmFieldManager("HrmCustomFieldByInfoType", Integer.parseInt(para.split("_")[0])); - // hfm.getCustomFields(); String fieldName = para.substring(para.lastIndexOf("_") + 1); JSONObject hrmFieldConf = hfm.getHrmFieldConf(fieldName); User user = new User(); user.setUid(1); + try { - return hfm.getFieldvalue(null, user, null, hrmFieldConf.getString("dmlurl"), hrmFieldConf.getInt("id"), hrmFieldConf.getInt("fieldhtmltype"), hrmFieldConf.getInt("type"), id, 0, fieldName); - } catch (Exception e) { + if ("departmentid".equals(fieldName)) { + Map> dept = (Map) Util_DataCache.getObjVal("hmc_allDept"); + return getAllDepartmentName(id, dept); + } else { + return hfm.getFieldvalue((HttpSession)null, user, (String)null, hrmFieldConf.getString("dmlurl"), hrmFieldConf.getInt("id"), hrmFieldConf.getInt("fieldhtmltype"), hrmFieldConf.getInt("type"), id, 0, fieldName); + } + } catch (Exception var7) { + (new BaseBean()).writeLog("getFieldTrueValue Exception:" + var7.getMessage()); return ""; } } @@ -60,4 +72,26 @@ public class HrmResourceTransMethod { } return MapperProxyFactory.getProxy(SystemDataMapper.class).getScHrmResourceNameById(managerId); } + + private static String getAllDepartmentName(String id, Map> dept) { + String allname = ""; + String departmentname = ""; + + try { + while(!"".equals(id) && !"0".equals(id)) { + Map obj = (Map)dept.get(id); + id = Util.null2String((String)obj.get("supdepid")); + departmentname = Util.null2String((String)obj.get("departmentname")); + allname = departmentname + ">" + allname; + } + } catch (Exception var5) { + (new BaseBean()).writeLog("getAllDepartmentName Exception", var5.getMessage()); + } + + if (!"".equals(allname)) { + allname = allname.substring(0, allname.length() - 1); + } + + return allname; + } } diff --git a/src/com/engine/organization/web/ExportCommonController.java b/src/com/engine/organization/web/ExportCommonController.java index fdc36803..bec37c86 100644 --- a/src/com/engine/organization/web/ExportCommonController.java +++ b/src/com/engine/organization/web/ExportCommonController.java @@ -49,7 +49,7 @@ public class ExportCommonController { idList = Arrays.stream(ids.split(",")).map(Long::parseLong).collect(Collectors.toList()); } User user = HrmUserVarify.getUser(request, response); - XSSFWorkbook workbook = getExportCommonWrapper(user).resourceExport(request, response); + XSSFWorkbook workbook = getExportCommonWrapper(user).resourceExport(request, response,ids); String time = LocalDate.now().toString(); String fileName = "人员导出" + time; try { diff --git a/src/com/engine/organization/wrapper/ExportCommonWrapper.java b/src/com/engine/organization/wrapper/ExportCommonWrapper.java index b0c5fc53..a73be443 100644 --- a/src/com/engine/organization/wrapper/ExportCommonWrapper.java +++ b/src/com/engine/organization/wrapper/ExportCommonWrapper.java @@ -27,7 +27,7 @@ public class ExportCommonWrapper extends Service { return getExportCommonService(user).resourceExport(ids); } - public XSSFWorkbook resourceExport(HttpServletRequest request, HttpServletResponse response) { - return getExportCommonService(user).resourceExport(request,response); + public XSSFWorkbook resourceExport(HttpServletRequest request, HttpServletResponse response,String ids) { + return getExportCommonService(user).resourceExport(request,response,ids); } }