generated from dxfeng/secondev-wugang-dxfeng
feat(portal): 增加基础人事SQL查询功能
- 新增 getBasicPersonnelSql 接口和实现方法 - 添加不同数据指标的 SQL 查询条件 - 优化在职人数、年度离职人数等查询的 URL 参数 -移除了一些不必要的日志输出
This commit is contained in:
parent
4cb3919e70
commit
c21e4bb9d8
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 团队纪念日
|
* 团队纪念日
|
||||||
|
|
|
||||||
|
|
@ -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() : "");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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天
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
<!--申请日期-->
|
<!--申请日期-->
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue