feat(portal): 增加基础人事SQL查询功能

- 新增 getBasicPersonnelSql 接口和实现方法
- 添加不同数据指标的 SQL 查询条件
- 优化在职人数、年度离职人数等查询的 URL 参数
-移除了一些不必要的日志输出
This commit is contained in:
dxfeng 2025-07-17 10:33:36 +08:00
parent 4cb3919e70
commit c21e4bb9d8
5 changed files with 91 additions and 8 deletions

View File

@ -43,6 +43,11 @@ public class ManagerPortalController {
return managerPortalService.getBasicPersonnel(params); return managerPortalService.getBasicPersonnel(params);
} }
@PostMapping("/getBasicPersonnelSql")
private WeaResult<String> getBasicPersonnelSql(@RequestBody Map<String, String> params) {
return managerPortalService.getBasicPersonnelSql(params);
}
@PostMapping("/getTeamMemorialDay") @PostMapping("/getTeamMemorialDay")
private WeaResult<Map<String, Object>> getTeamMemorialDay(@RequestBody Map<String, String> params) { private WeaResult<Map<String, Object>> getTeamMemorialDay(@RequestBody Map<String, String> params) {
return managerPortalService.getTeamMemorialDay(params); return managerPortalService.getTeamMemorialDay(params);

View File

@ -39,6 +39,14 @@ public interface ManagerPortalService {
*/ */
WeaResult<Map<String, Object>> getBasicPersonnel(Map<String, String> params); WeaResult<Map<String, Object>> getBasicPersonnel(Map<String, String> params);
/**
* 基础人事SQL
*
* @param params
* @return
*/
WeaResult<String> getBasicPersonnelSql(Map<String, String> params);
/** /**
* 团队纪念日 * 团队纪念日

View File

@ -70,20 +70,17 @@ public class EmployeePortalServiceImpl implements EmployeePortalService {
employeeBasicInfoPo.setEmployeeId(currentUser.getEmployeeId()); employeeBasicInfoPo.setEmployeeId(currentUser.getEmployeeId());
SimpleEmployee byId = hrmCommonEmployeeDao.getById(currentUser.getEmployeeId()); SimpleEmployee byId = hrmCommonEmployeeDao.getById(currentUser.getEmployeeId());
log.error("byId===" + JSON.toJSONString(byId));
Avatar avatar = byId.getAvatar(); Avatar avatar = byId.getAvatar();
employeeBasicInfoPo.setAvatar(avatar); employeeBasicInfoPo.setAvatar(avatar);
employeeBasicInfoPo.setUserName(byId.getUsername()); employeeBasicInfoPo.setUserName(byId.getUsername());
employeeBasicInfoPo.setWorkCode(byId.getJobNum()); employeeBasicInfoPo.setWorkCode(byId.getJobNum());
WeaDepartMent departmentById = departMentService.getDepartMentById(byId.getDepartmentId()); WeaDepartMent departmentById = departMentService.getDepartMentById(byId.getDepartmentId());
log.error("departmentById===" + departmentById);
employeeBasicInfoPo.setCompanyName(null != departmentById ? departmentById.getDepartMentName() : ""); employeeBasicInfoPo.setCompanyName(null != departmentById ? departmentById.getDepartMentName() : "");
employeeBasicInfoPo.setHireDate(byId.getHiredate()); employeeBasicInfoPo.setHireDate(byId.getHiredate());
employeeBasicInfoPo.setEmployeeStatus(PersonnelStatusEnum.getShowNameByValue(byId.getPersonnelStatus())); employeeBasicInfoPo.setEmployeeStatus(PersonnelStatusEnum.getShowNameByValue(byId.getPersonnelStatus()));
SimpleEmployee superior = byId.getSuperior(); SimpleEmployee superior = byId.getSuperior();
log.error("superior===" + JSON.toJSONString(superior));
employeeBasicInfoPo.setDirectSuperior(null != superior ? superior.getUsername() : ""); employeeBasicInfoPo.setDirectSuperior(null != superior ? superior.getUsername() : "");

View File

@ -1,6 +1,7 @@
package com.weaver.seconddev.portal.service.impl; package com.weaver.seconddev.portal.service.impl;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import com.alibaba.fastjson.JSON;
import com.weaver.common.base.entity.result.WeaResult; import com.weaver.common.base.entity.result.WeaResult;
import com.weaver.common.form.datasource.FormdataTemplateDetails; import com.weaver.common.form.datasource.FormdataTemplateDetails;
import com.weaver.common.form.metadata.field.FormField; import com.weaver.common.form.metadata.field.FormField;
@ -126,25 +127,85 @@ public class ManagerPortalServiceImpl implements ManagerPortalService {
// 在职人数 // 在职人数
returnMap.put("onJobNumber", onJobNum); returnMap.put("onJobNumber", onJobNum);
returnMap.put("onJobNumberUrl", urlMap.get("onJobNumber")); returnMap.put("onJobNumberUrl", urlMap.get("onJobNumber") + "?dataKey=onJobNumber&startDate=" + basicPersonnelParam.getStartDate() + "&endDate=" + basicPersonnelParam.getEndDate());
// 年度离职人数 // 年度离职人数
returnMap.put("resignNumber", resignNumber); returnMap.put("resignNumber", resignNumber);
returnMap.put("resignNumberUrl", urlMap.get("resignNumber")); returnMap.put("resignNumberUrl", urlMap.get("resignNumber") + "?dataKey=resignNumber&startDate=" + basicPersonnelParam.getStartDate() + "&endDate=" + basicPersonnelParam.getEndDate());
// 年度入职人数 // 年度入职人数
returnMap.put("entryNumber", entryNumber); returnMap.put("entryNumber", entryNumber);
returnMap.put("entryNumberUrl", urlMap.get("entryNumber")); returnMap.put("entryNumberUrl", urlMap.get("entryNumber") + "?dataKey=entryNumber&startDate=" + basicPersonnelParam.getStartDate() + "&endDate=" + basicPersonnelParam.getEndDate());
// 离职流程中人数 // 离职流程中人数
returnMap.put("resigningNumber", resigningNumber); returnMap.put("resigningNumber", resigningNumber);
returnMap.put("resigningNumberUrl", urlMap.get("resigningNumber")); returnMap.put("resigningNumberUrl", urlMap.get("resigningNumber") + "?dataKey=resigningNumber&startDate=" + basicPersonnelParam.getStartDate() + "&endDate=" + basicPersonnelParam.getEndDate());
// 入职流程中人数 // 入职流程中人数
returnMap.put("entryingNumber", entryingNumber); returnMap.put("entryingNumber", entryingNumber);
returnMap.put("entryingNumberUrl", urlMap.get("entryingNumber")); returnMap.put("entryingNumberUrl", urlMap.get("entryingNumber") + "?dataKey=entryingNumber&startDate=" + basicPersonnelParam.getStartDate() + "&endDate=" + basicPersonnelParam.getEndDate());
return WeaResult.success(returnMap); return WeaResult.success(returnMap);
} }
@Override
public WeaResult<String> getBasicPersonnelSql(Map<String, String> params) {
String dataKey = params.get("dataKey");
String startDate = params.get("startDate");
String endDate = params.get("endDate");
log.error("params==={}", JSON.toJSONString(params));
User currentUser = UserContext.getCurrentUser();
BasicPersonnelParam basicPersonnelParam = new BasicPersonnelParam();
basicPersonnelParam.setTenantKey(currentUser.getTenantKey());
Set<Long> allDepartmentIdList = getAllDepartmentIdList(basicPersonnelParam, currentUser.getEmployeeId());
StringJoiner andCondition = new StringJoiner(" and ");
switch (dataKey) {
case "onJobNumber":
// 在职人数
if (CollectionUtils.isNotEmpty(allDepartmentIdList)) {
andCondition.add(" t1.department in (" + StringUtils.join(allDepartmentIdList, ",") + ") ");
}
andCondition.add(" t1.hiredate <= #{endDate} AND (t1.zhgzr >= #{startDate} OR t1.zhgzr IS NULL OR t1.zhgzr = '') ");
break;
case "resignNumber":
// 年度离职人数
andCondition.add(" t1.lzzt = 1 ");
if (CollectionUtils.isNotEmpty(allDepartmentIdList)) {
andCondition.add(" t1.lzqbm in (" + StringUtils.join(allDepartmentIdList, ",") + ") ");
}
andCondition.add(" t1.zhgzr >= #{startDate} and t1.zhgzr <= #{endDate} ");
break;
case "entryNumber":
// 年度入职人数
andCondition.add(" t1.rzzt = 1 ");
if (CollectionUtils.isNotEmpty(allDepartmentIdList)) {
andCondition.add(" t1.department in (" + StringUtils.join(allDepartmentIdList, ",") + ") ");
}
andCondition.add(" t1.hiredate >= #{startDate} and t1.hiredate <= #{endDate} ");
break;
case "resigningNumber":
// 离职流程中人数
andCondition.add(" t1.flow_status in (0,1,2) ");
if (CollectionUtils.isNotEmpty(allDepartmentIdList)) {
andCondition.add(" t1.lzqbm in (" + StringUtils.join(allDepartmentIdList, ",") + ") ");
}
andCondition.add(" t1.sqrq >= #{startDate} and t1.sqrq <= #{endDate} ");
break;
case "entryingNumber":
// 入职流程中人数
andCondition.add(" t1.flow_status in (0,1,2) ");
if (CollectionUtils.isNotEmpty(allDepartmentIdList)) {
andCondition.add(" t1.ssbm in (" + StringUtils.join(allDepartmentIdList, ",") + ") ");
}
andCondition.add(" t1.sqsj >= #{startDate} and t1.sqsj <= #{endDate} ");
break;
default:
break;
}
String replaceSql = andCondition.toString().replace("#{startDate}", "'" + startDate + "'").replace("#{endDate}", "'" + endDate + "'");
log.error("replaceSql==={}", replaceSql);
return WeaResult.success(replaceSql);
}
/** /**
* 生日提醒提前一周 * 生日提醒提前一周
* 转正提醒提前30天 * 转正提醒提前30天

View File

@ -39,6 +39,12 @@
<select id="getResigningNumber" resultType="java.lang.Integer"> <select id="getResigningNumber" resultType="java.lang.Integer">
select count(t.id) from ${e10_common}.uf_jcl_lzsq t select count(t.id) from ${e10_common}.uf_jcl_lzsq t
where t.delete_type = 0 and t.tenant_key = #{tenantKey} where t.delete_type = 0 and t.tenant_key = #{tenantKey}
<if test="departmentIdList != null and departmentIdList.size() > 0">
AND t.lzqbm IN
<foreach collection="departmentIdList" item="departmentId" open="(" close=")" separator=",">
#{departmentId}
</foreach>
</if>
<!--审批中--> <!--审批中-->
and t.flow_status in (0,1,2) and t.flow_status in (0,1,2)
<!--申请日期--> <!--申请日期-->
@ -49,6 +55,12 @@
<select id="getEntryingNumber" resultType="java.lang.Integer"> <select id="getEntryingNumber" resultType="java.lang.Integer">
select count(t.id) from ${e10_common}.uf_jcl_rzsq t select count(t.id) from ${e10_common}.uf_jcl_rzsq t
where t.delete_type = 0 and t.tenant_key = #{tenantKey} where t.delete_type = 0 and t.tenant_key = #{tenantKey}
<if test="departmentIdList != null and departmentIdList.size() > 0">
AND t.ssbm IN
<foreach collection="departmentIdList" item="departmentId" open="(" close=")" separator=",">
#{departmentId}
</foreach>
</if>
<!--审批中--> <!--审批中-->
and t.flow_status in (0,1,2) and t.flow_status in (0,1,2)
<!--申请日期--> <!--申请日期-->