花名册高级搜索BUG修复

pull/134/head
dxfeng 2 years ago
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…
Cancel
Save