花名册高级搜索BUG修复
This commit is contained in:
parent
6934133e0a
commit
4076a755f1
|
|
@ -63,4 +63,5 @@ public interface SystemDataMapper {
|
|||
|
||||
List<CusFormFieldPO> getHrmFieldsByScopeId(@Param("scopeId") String scopeId);
|
||||
|
||||
List<Integer> getJobTitleIds(@Param("jobActivityId") String jobActivityId, @Param("jobGroupId") String jobGroupId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -203,6 +203,21 @@
|
|||
WHERE FIELDHTMLTYPE != '6' and groupid IN (SELECT id FROM hrm_fieldgroup WHERE grouptype = #{scopeId})
|
||||
ORDER BY hrmallfield.groupid, hrmallfield.fieldorder
|
||||
</select>
|
||||
<select id="getJobTitleIds" resultType="java.lang.Integer">
|
||||
SELECT h.ID
|
||||
FROM HRMJOBTITLES h
|
||||
INNER JOIN HRMJOBACTIVITIES h1 ON
|
||||
h.JOBACTIVITYID = h1.ID
|
||||
INNER JOIN HRMJOBGROUPS h2 ON
|
||||
h1.JOBGROUPID = h2.ID
|
||||
WHERE 1 = 1
|
||||
<if test="jobActivityId !=null and jobActivityId != ''">
|
||||
AND h1.ID =#{jobActivityId}
|
||||
</if>
|
||||
<if test="jobGroupId !=null and jobGroupId != ''">
|
||||
AND h2.ID =#{jobGroupId}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
|
@ -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<Item> 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);
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
|
|||
}
|
||||
|
||||
// 所有满足条件的岗位ID
|
||||
private List<String> jobTitleList = new ArrayList<>();
|
||||
private List<Integer> jobTitleList = null;
|
||||
// 是否
|
||||
boolean searchJobTitle = false;
|
||||
|
||||
|
|
@ -407,12 +407,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();
|
||||
|
|
@ -779,15 +783,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<Integer> jobTitleIds = getSystemDataMapper().getJobTitleIds(value, null);
|
||||
if (null == jobTitleList) {
|
||||
jobTitleList = jobTitleIds;
|
||||
} else {
|
||||
jobTitleList.retainAll(jobTitleIds);
|
||||
}
|
||||
return;
|
||||
}
|
||||
// 职务类别
|
||||
if (key.endsWith("jobGroupId")) {
|
||||
searchJobTitle = true;
|
||||
List<Integer> 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)) {
|
||||
|
|
@ -831,29 +854,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();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue