diff --git a/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.java b/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.java index aeb9eb0d..ca16794d 100644 --- a/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.java +++ b/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.java @@ -63,4 +63,5 @@ public interface SystemDataMapper { List getHrmFieldsByScopeId(@Param("scopeId") String scopeId); + List getJobTitleIds(@Param("jobActivityId") String jobActivityId, @Param("jobGroupId") String jobGroupId); } diff --git a/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.xml b/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.xml index 9d5d0833..496434fe 100644 --- a/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.xml +++ b/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.xml @@ -203,6 +203,21 @@ WHERE FIELDHTMLTYPE != '6' and groupid IN (SELECT id FROM hrm_fieldgroup WHERE grouptype = #{scopeId}) ORDER BY hrmallfield.groupid, hrmallfield.fieldorder + \ No newline at end of file diff --git a/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java b/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java index 404ffc05..7b857b6b 100644 --- a/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java @@ -173,6 +173,7 @@ public class HrmPersonnelCardServiceImpl extends Service implements HrmPersonnel */ private FormItem getFormItem(CusTreeFormPO cusTreeFormPO, Long uId) throws Exception { FormItem formItem = new FormItem(); + RecordSet recordSet = new RecordSet(); formItem.setId(cusTreeFormPO.getId().toString()); formItem.setTitle(cusTreeFormPO.getFormLabel()); List itemList = new ArrayList<>(); @@ -188,9 +189,22 @@ public class HrmPersonnelCardServiceImpl extends Service implements HrmPersonnel } String hrmData = ""; if (hfm.isBaseField(fieldName)) { - hrmData = hfm.getHrmData(fieldName); + if ("jobactivity".equals(fieldName)) { + recordSet.execute("SELECT h1.ID AS jobactivity FROM HRMJOBTITLES h INNER JOIN HRMJOBACTIVITIES h1 ON h.JOBACTIVITYID = h1.ID WHERE h.ID = '" + hfm.getHrmData("jobtitle") + "'"); + if (recordSet.next()) { + hrmData = recordSet.getString(fieldName); + // 职务浏览按钮:282 + hrmFieldConf.put("type", 282); + } + } else if ("jobGroupId".equals(fieldName)) { + recordSet.execute("SELECT h2.ID AS jobGroupId FROM HRMJOBTITLES h INNER JOIN HRMJOBACTIVITIES h1 ON h.JOBACTIVITYID = h1.ID INNER JOIN HRMJOBGROUPS h2 ON h1.JOBGROUPID = h2.ID WHERE h.ID = '" + hfm.getHrmData("jobtitle") + "'"); + if (recordSet.next()) { + hrmData = recordSet.getString(fieldName); + } + } else { + hrmData = hfm.getHrmData(fieldName); + } } else { - RecordSet recordSet = new RecordSet(); recordSet.execute("select " + fieldName + " from cus_fielddata where SCOPE = '" + cusTreeFormPO.getScope() + "' and SCOPEID =" + cusTreeFormPO.getId() + " and id = " + uId); if (recordSet.next()) { hrmData = recordSet.getString(fieldName); diff --git a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java index 67993340..5de8cbff 100644 --- a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java @@ -105,7 +105,7 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic } // 所有满足条件的岗位ID - private List jobTitleList = new ArrayList<>(); + private List jobTitleList = null; // 是否 boolean searchJobTitle = false; @@ -429,12 +429,16 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic buildDynamicSql(searchConditionItem, key, value, sb, dbType); // 根据不同的类型,不同的查询方式 } + if (searchJobTitle) { + String jobTitleIds = StringUtils.join(jobTitleList, ","); + sb.append(" and t.jobtitle in (").append(StringUtils.isNotBlank(jobTitleIds) ? jobTitleIds : "''").append(") "); + } // 分权查询 DetachUtil detachUtil = new DetachUtil(user); String parentCompanyIds = detachUtil.getJclRoleLevels(); if (detachUtil.isDETACH()) { - sb.append(" And t.subcompanyid1 in(").append(parentCompanyIds).append(")"); + sb.append(" and t.subcompanyid1 in(").append(parentCompanyIds).append(")"); } return sb.toString(); @@ -801,15 +805,34 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic if (key.endsWith("workyear") || key.endsWith("companyworkyear")) { conditionItem.setConditionType(ConditionType.INPUTNUMBER); } - // + // 职务 if (key.endsWith("jobactivity")) { searchJobTitle = true; + List jobTitleIds = getSystemDataMapper().getJobTitleIds(value, null); + if (null == jobTitleList) { + jobTitleList = jobTitleIds; + } else { + jobTitleList.retainAll(jobTitleIds); + } + return; } + // 职务类别 if (key.endsWith("jobGroupId")) { searchJobTitle = true; + List jobTitleIds = getSystemDataMapper().getJobTitleIds(null, value); + if (null == jobTitleList) { + jobTitleList = jobTitleIds; + } else { + jobTitleList.retainAll(jobTitleIds); + } + return; } + // 岗位 if (key.endsWith("jobtitle")) { searchJobTitle = true; + jobTitleList = new ArrayList<>(); + jobTitleList.add(Integer.parseInt(value)); + return; } String tableSql = buildTableSql(key); if (StringUtils.isBlank(tableSql)) { @@ -853,29 +876,28 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic if (s.length < 3) { return ""; } + String scopeId = s[0]; String tableName = s[1]; String fieldName = s[2]; - if ("hrm".equals(tableName)) { - sb.append("t.").append(fieldName); - } else { - switch (scopeId) { - case "-1": - sb.append("t0.").append(fieldName); - break; - case "1": - sb.append("t1.").append(fieldName); - break; - case "3": - sb.append("t2.").append(fieldName); - break; - default: - return ""; - } + if ("hrm".equals(tableName)) { + return sb.append("t.").append(fieldName).toString(); } - + switch (scopeId) { + case "-1": + sb.append("t0.").append(fieldName); + break; + case "1": + sb.append("t1.").append(fieldName); + break; + case "3": + sb.append("t2.").append(fieldName); + break; + default: + return ""; + } return sb.toString(); }