diff --git a/src/main/java/com/weaver/seconddev/portal/controller/ManagerPortalController.java b/src/main/java/com/weaver/seconddev/portal/controller/ManagerPortalController.java index 516f41a..678ebb4 100644 --- a/src/main/java/com/weaver/seconddev/portal/controller/ManagerPortalController.java +++ b/src/main/java/com/weaver/seconddev/portal/controller/ManagerPortalController.java @@ -43,6 +43,11 @@ public class ManagerPortalController { return managerPortalService.getBasicPersonnel(params); } + @PostMapping("/getBasicPersonnelSql") + private WeaResult getBasicPersonnelSql(@RequestBody Map params) { + return managerPortalService.getBasicPersonnelSql(params); + } + @PostMapping("/getTeamMemorialDay") private WeaResult> getTeamMemorialDay(@RequestBody Map params) { return managerPortalService.getTeamMemorialDay(params); diff --git a/src/main/java/com/weaver/seconddev/portal/service/ManagerPortalService.java b/src/main/java/com/weaver/seconddev/portal/service/ManagerPortalService.java index 590c7f6..50cf88f 100644 --- a/src/main/java/com/weaver/seconddev/portal/service/ManagerPortalService.java +++ b/src/main/java/com/weaver/seconddev/portal/service/ManagerPortalService.java @@ -39,6 +39,14 @@ public interface ManagerPortalService { */ WeaResult> getBasicPersonnel(Map params); + /** + * 基础人事SQL + * + * @param params + * @return + */ + WeaResult getBasicPersonnelSql(Map params); + /** * 团队纪念日 diff --git a/src/main/java/com/weaver/seconddev/portal/service/impl/EmployeePortalServiceImpl.java b/src/main/java/com/weaver/seconddev/portal/service/impl/EmployeePortalServiceImpl.java index cdeeb56..c2de990 100644 --- a/src/main/java/com/weaver/seconddev/portal/service/impl/EmployeePortalServiceImpl.java +++ b/src/main/java/com/weaver/seconddev/portal/service/impl/EmployeePortalServiceImpl.java @@ -70,20 +70,17 @@ public class EmployeePortalServiceImpl implements EmployeePortalService { employeeBasicInfoPo.setEmployeeId(currentUser.getEmployeeId()); SimpleEmployee byId = hrmCommonEmployeeDao.getById(currentUser.getEmployeeId()); - log.error("byId===" + JSON.toJSONString(byId)); Avatar avatar = byId.getAvatar(); employeeBasicInfoPo.setAvatar(avatar); employeeBasicInfoPo.setUserName(byId.getUsername()); employeeBasicInfoPo.setWorkCode(byId.getJobNum()); WeaDepartMent departmentById = departMentService.getDepartMentById(byId.getDepartmentId()); - log.error("departmentById===" + departmentById); employeeBasicInfoPo.setCompanyName(null != departmentById ? departmentById.getDepartMentName() : ""); employeeBasicInfoPo.setHireDate(byId.getHiredate()); employeeBasicInfoPo.setEmployeeStatus(PersonnelStatusEnum.getShowNameByValue(byId.getPersonnelStatus())); SimpleEmployee superior = byId.getSuperior(); - log.error("superior===" + JSON.toJSONString(superior)); employeeBasicInfoPo.setDirectSuperior(null != superior ? superior.getUsername() : ""); diff --git a/src/main/java/com/weaver/seconddev/portal/service/impl/ManagerPortalServiceImpl.java b/src/main/java/com/weaver/seconddev/portal/service/impl/ManagerPortalServiceImpl.java index a71325d..5fd5bcb 100644 --- a/src/main/java/com/weaver/seconddev/portal/service/impl/ManagerPortalServiceImpl.java +++ b/src/main/java/com/weaver/seconddev/portal/service/impl/ManagerPortalServiceImpl.java @@ -1,6 +1,7 @@ package com.weaver.seconddev.portal.service.impl; import cn.hutool.core.convert.Convert; +import com.alibaba.fastjson.JSON; import com.weaver.common.base.entity.result.WeaResult; import com.weaver.common.form.datasource.FormdataTemplateDetails; import com.weaver.common.form.metadata.field.FormField; @@ -126,25 +127,85 @@ public class ManagerPortalServiceImpl implements ManagerPortalService { // 在职人数 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("resignNumberUrl", urlMap.get("resignNumber")); + returnMap.put("resignNumberUrl", urlMap.get("resignNumber") + "?dataKey=resignNumber&startDate=" + basicPersonnelParam.getStartDate() + "&endDate=" + basicPersonnelParam.getEndDate()); // 年度入职人数 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("resigningNumberUrl", urlMap.get("resigningNumber")); + returnMap.put("resigningNumberUrl", urlMap.get("resigningNumber") + "?dataKey=resigningNumber&startDate=" + basicPersonnelParam.getStartDate() + "&endDate=" + basicPersonnelParam.getEndDate()); // 入职流程中人数 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); } + @Override + public WeaResult getBasicPersonnelSql(Map 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 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天 diff --git a/src/main/resources/mapper/ManagerPortalMapper.xml b/src/main/resources/mapper/ManagerPortalMapper.xml index 2cb74e6..d56770a 100644 --- a/src/main/resources/mapper/ManagerPortalMapper.xml +++ b/src/main/resources/mapper/ManagerPortalMapper.xml @@ -39,6 +39,12 @@ select count(t.id) from ${e10_common}.uf_jcl_rzsq t where t.delete_type = 0 and t.tenant_key = #{tenantKey} + + AND t.ssbm IN + + #{departmentId} + + and t.flow_status in (0,1,2)