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 5ec8ae0..dcb5f6a 100644 --- a/src/main/java/com/weaver/seconddev/portal/controller/ManagerPortalController.java +++ b/src/main/java/com/weaver/seconddev/portal/controller/ManagerPortalController.java @@ -21,7 +21,7 @@ import java.util.Map; */ @Slf4j @RestController -@RequestMapping("/api/secondev/portal/manager") + @RequestMapping("/api/secondev/portal/manager") @WeaPermission(publicPermission = true) public class ManagerPortalController { diff --git a/src/main/java/com/weaver/seconddev/portal/entity/param/BaseParam.java b/src/main/java/com/weaver/seconddev/portal/entity/param/BaseParam.java index f88b1ab..3dcb9dc 100644 --- a/src/main/java/com/weaver/seconddev/portal/entity/param/BaseParam.java +++ b/src/main/java/com/weaver/seconddev/portal/entity/param/BaseParam.java @@ -29,10 +29,10 @@ public class BaseParam { * 请假表单 */ private String leaveFormCus = "ft_1151420254779654145"; - ///** - // * 员工自定义表 - // */ - //private String table_emp_cus = "ft_1152026012537184302"; + /** + * 员工自定义表 + */ + private String table_emp_cus = "ft_1152026012537184302"; /** * 人事档案-个人信息表 diff --git a/src/main/java/com/weaver/seconddev/portal/entity/param/BasicPersonnelParam.java b/src/main/java/com/weaver/seconddev/portal/entity/param/BasicPersonnelParam.java index 42886b2..f764f84 100644 --- a/src/main/java/com/weaver/seconddev/portal/entity/param/BasicPersonnelParam.java +++ b/src/main/java/com/weaver/seconddev/portal/entity/param/BasicPersonnelParam.java @@ -3,6 +3,7 @@ package com.weaver.seconddev.portal.entity.param; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.Date; import java.util.Set; /** @@ -21,6 +22,7 @@ public class BasicPersonnelParam extends BaseParam { private Integer startIndex; private Integer endIndex; private String belongYear; + private Date paramDate; /*分页查询*/ diff --git a/src/main/java/com/weaver/seconddev/portal/entity/param/HrbpParam.java b/src/main/java/com/weaver/seconddev/portal/entity/param/HrbpParam.java index 36e8a2c..85e611e 100644 --- a/src/main/java/com/weaver/seconddev/portal/entity/param/HrbpParam.java +++ b/src/main/java/com/weaver/seconddev/portal/entity/param/HrbpParam.java @@ -3,6 +3,7 @@ package com.weaver.seconddev.portal.entity.param; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.Date; import java.util.Set; /** @@ -12,9 +13,10 @@ import java.util.Set; */ @Data @EqualsAndHashCode(callSuper = false) -public class HrbpParam extends com.weaver.seconddev.portal.entity.param.BaseParam { +public class HrbpParam extends BaseParam { private Set departmentIdList; private Long matrixId; private Long matrixValueConfigId; - private Long userId; + private String userId; + private Date paramDate; } diff --git a/src/main/java/com/weaver/seconddev/portal/entity/po/EmployeeBasicInfoPo.java b/src/main/java/com/weaver/seconddev/portal/entity/po/EmployeeBasicInfoPo.java index d97e578..cf5d6a6 100644 --- a/src/main/java/com/weaver/seconddev/portal/entity/po/EmployeeBasicInfoPo.java +++ b/src/main/java/com/weaver/seconddev/portal/entity/po/EmployeeBasicInfoPo.java @@ -29,6 +29,7 @@ public class EmployeeBasicInfoPo { */ private String companyName; private String departmentName; + private String positionName; /** * 入职日期 */ diff --git a/src/main/java/com/weaver/seconddev/portal/mapper/portal/HrbpPortalMapper.java b/src/main/java/com/weaver/seconddev/portal/mapper/portal/HrbpPortalMapper.java index c9ba2bb..05f511c 100644 --- a/src/main/java/com/weaver/seconddev/portal/mapper/portal/HrbpPortalMapper.java +++ b/src/main/java/com/weaver/seconddev/portal/mapper/portal/HrbpPortalMapper.java @@ -130,4 +130,26 @@ public interface HrbpPortalMapper { */ int getKqRequireByBp(HrbpParam param); + /** + * 部门矩阵可查看的所有今日有打卡人数 + * @param param + * @return + */ + int getTodayAllSignByBp(HrbpParam param); + + /** + * 部门矩阵可查看的某日迟到人数 + * @param param + * @return + */ + int getTotalLateByBp(HrbpParam param); + int getTodayNoSign(HrbpParam hrbpParam); + + /** + * 部门矩阵可查看的某日休假人数 + * @param param + * @return + */ + int getTotalVacationByBp(HrbpParam param); + } diff --git a/src/main/java/com/weaver/seconddev/portal/mapper/portal/ManagerPortalMapper.java b/src/main/java/com/weaver/seconddev/portal/mapper/portal/ManagerPortalMapper.java index e83ff6e..1fc32d7 100644 --- a/src/main/java/com/weaver/seconddev/portal/mapper/portal/ManagerPortalMapper.java +++ b/src/main/java/com/weaver/seconddev/portal/mapper/portal/ManagerPortalMapper.java @@ -65,7 +65,7 @@ public interface ManagerPortalMapper { * @param emdId * @return */ - List getManageDeptIds(@Param("param") BasicPersonnelParam param, @Param("empId") Long emdId); + List getManageDeptIds(@Param("param") BasicPersonnelParam param, @Param("empId") String emdId); /** * 获取生日人数 @@ -178,4 +178,14 @@ public interface ManagerPortalMapper { //Integer sumAnnualLeaveCount(@Param("param") BasicPersonnelParam param,@Param("holidayIds") Collection holidayIds); Integer sumAnnualLeaveDuration(BasicPersonnelParam param); + + Integer getKqRequire(@Param("param") BasicPersonnelParam param, @Param("userId") String userId); + + Integer getTodayAllSign(@Param("param") BasicPersonnelParam param, @Param("userId") String userId); + + Integer getTotalLate(@Param("param") BasicPersonnelParam param, @Param("userId") String userId); + + Integer getTotalVacation(@Param("param") BasicPersonnelParam param, @Param("userId") String userId); + + Integer getTodayNoSign(@Param("param") BasicPersonnelParam param, @Param("userId") String userId); } 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 a76f220..409d0e3 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 @@ -5,7 +5,10 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.common.cache.tablecache.impl.ComInfoCache; import com.weaver.common.hr.util.Util; +import com.weaver.common.hrm.cache.HrmEmployeeComInfo; +import com.weaver.common.hrm.cache.HrmPositionComInfo; import com.weaver.common.hrm.dao.HrmCommonEmployeeDao; import com.weaver.seconddev.portal.entity.po.EmployeeBasicInfoPo; import com.weaver.seconddev.portal.entity.po.PortalUrlDetail; @@ -45,6 +48,8 @@ public class EmployeePortalServiceImpl implements EmployeePortalService { @Autowired DepartMentService departMentService; + @Autowired + private ComInfoCache comInfoCache; @Autowired PortalMapper portalMapper; @@ -77,7 +82,13 @@ public class EmployeePortalServiceImpl implements EmployeePortalService { employeeBasicInfoPo.setWorkCode(byId.getJobNum()); //WeaDepartMent departmentById = departMentService.getDepartMentById(byId.getDepartmentId()); //employeeBasicInfoPo.setCompanyName(null != departmentById ? departmentById.getDepartMentName() : ""); - employeeBasicInfoPo.setDepartmentName(null==department?"":department.getName()); + HrmEmployeeComInfo hrmEmployeeInfo = + comInfoCache.getCacheById(HrmEmployeeComInfo.class, currentUser.getEmployeeId()); + HrmPositionComInfo positionComInfo = comInfoCache.getCacheById(HrmPositionComInfo.class, hrmEmployeeInfo.getPosition()); + + employeeBasicInfoPo.setPositionName(positionComInfo != null ? positionComInfo.getName() : ""); + + employeeBasicInfoPo.setDepartmentName(null == department ? "" : department.getName()); employeeBasicInfoPo.setHireDate(cn.hutool.core.date.DateUtil.formatDate(byId.getHiredate())); employeeBasicInfoPo.setEmployeeStatus(PersonnelStatusEnum.getShowNameByValue(byId.getPersonnelStatus())); diff --git a/src/main/java/com/weaver/seconddev/portal/service/impl/HrbpPortalServiceImpl.java b/src/main/java/com/weaver/seconddev/portal/service/impl/HrbpPortalServiceImpl.java index feca773..65dd6f9 100644 --- a/src/main/java/com/weaver/seconddev/portal/service/impl/HrbpPortalServiceImpl.java +++ b/src/main/java/com/weaver/seconddev/portal/service/impl/HrbpPortalServiceImpl.java @@ -1,17 +1,19 @@ package com.weaver.seconddev.portal.service.impl; import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.eb.common.util.TimeUtils; import com.weaver.seconddev.portal.entity.param.HrbpParam; import com.weaver.seconddev.portal.entity.po.PortalUrlDetail; import com.weaver.seconddev.portal.mapper.portal.HrbpPortalMapper; import com.weaver.seconddev.portal.mapper.portal.PortalMapper; import com.weaver.seconddev.portal.service.HrbpPortalService; import com.weaver.teams.security.context.UserContext; -import org.springframework.beans.factory.annotation.Value; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -120,16 +122,47 @@ public class HrbpPortalServiceImpl implements HrbpPortalService { @Override public WeaResult> getTodayOverview(Map params) { Map resultMap = new HashMap<>(); + Date todayDate = TimeUtils.getString2Date(TimeUtils.getCurrentDateString(), "yyyy-MM-dd"); + if (params.get("date") != null) { + String date = params.get("date"); + todayDate = TimeUtils.getString2Date(date, "yyyy-MM-dd"); + } //部门矩阵中,hrbp负责的部门 - //应出勤人数,部门在职人数 HrbpParam hrbpParam = new HrbpParam(); hrbpParam.setTenantKey(UserContext.getCurrentUser().getTenantKey()); hrbpParam.setMatrixId(Long.valueOf(matrixId)); hrbpParam.setMatrixValueConfigId(Long.valueOf(matrixValueConfigId)); - hrbpParam.setUserId(UserContext.getCurrentUser().getUserId()); + hrbpParam.setUserId(String.valueOf(UserContext.getCurrentUser().getEmployeeId())); + List portalUrlDetails = portalMapper.getPortalUrlDetail(UserContext.getCurrentUser().getTenantKey(), PORTAL_KEY, "getTodayOverview"); + Map urlMap = portalUrlDetails.stream().collect(Collectors.toMap(PortalUrlDetail::getDetailKey, PortalUrlDetail::getUrlAddress)); + + //应出勤人数 int totalRequire = hrbpPortalMapper.getKqRequireByBp(hrbpParam); resultMap.put("totalRequire", totalRequire); + resultMap.put("totalRequireUrl", urlMap.get("totalRequire")); + + //今日实际打卡人数 + int todayAllSignByBp = hrbpPortalMapper.getTodayAllSignByBp(hrbpParam); + resultMap.put("totalSign", todayAllSignByBp); + resultMap.put("totalSignUrl", urlMap.get("totalSign")); + + //今日未打卡人数 + int todayNoSign = hrbpPortalMapper.getTodayNoSign(hrbpParam); + resultMap.put("totalNoSign", todayNoSign); + resultMap.put("totalNoSignUrl", urlMap.get("totalNoSign")); + + //今日迟到人数 + hrbpParam.setParamDate(todayDate); + int totalLate = hrbpPortalMapper.getTotalLateByBp(hrbpParam); + resultMap.put("totalLate", totalLate); + resultMap.put("totalLateUrl", urlMap.get("totalLate")); + + //今日休假人数 + int totalVacation = hrbpPortalMapper.getTotalVacationByBp(hrbpParam); + resultMap.put("totalVacation", totalVacation); + resultMap.put("totalVacationUrl", urlMap.get("totalVacation")); + return WeaResult.success(resultMap); } } 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 845eb00..09b123b 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 @@ -10,6 +10,7 @@ import com.weaver.common.hrm.cache.HrmDepartmentComInfo; import com.weaver.common.hrm.dao.HrmCommonDepartmentDao; import com.weaver.common.hrm.dao.HrmCommonEmployeeDao; import com.weaver.common.hrm.manage.HrmComInfoCacheHandler; +import com.weaver.eb.common.util.TimeUtils; import com.weaver.seconddev.portal.entity.component.Option; import com.weaver.seconddev.portal.entity.param.BasicPersonnelParam; import com.weaver.seconddev.portal.entity.po.*; @@ -91,8 +92,47 @@ public class ManagerPortalServiceImpl implements ManagerPortalService { @Override public WeaResult> getTodayOverview(Map params) { + HashMap resultMap = new HashMap<>(); - return null; + Date todayDate = TimeUtils.getString2Date(TimeUtils.getCurrentDateString(), "yyyy-MM-dd"); + if (params.get("date") != null) { + String date = params.get("date"); + todayDate = TimeUtils.getString2Date(date, "yyyy-MM-dd"); + } + + User currentUser = UserContext.getCurrentUser(); + BasicPersonnelParam basicPersonnelParam = new BasicPersonnelParam(); + basicPersonnelParam.setTenantKey(currentUser.getTenantKey()); + List portalUrlDetails = portalMapper.getPortalUrlDetail(currentUser.getTenantKey(), PORTAL_KEY, "getTodayOverview"); + Map urlMap = portalUrlDetails.stream().collect(Collectors.toMap(PortalUrlDetail::getDetailKey, PortalUrlDetail::getUrlAddress)); + + //应出勤人数 + Integer totalRequire = managerPortalMapper.getKqRequire(basicPersonnelParam, String.valueOf(currentUser.getEmployeeId())); + resultMap.put("totalRequire", totalRequire); + resultMap.put("totalRequireUrl", urlMap.get("totalRequire")); + + //今日实际打卡人数 + Integer todayAllSign = managerPortalMapper.getTodayAllSign(basicPersonnelParam, String.valueOf(currentUser.getEmployeeId())); + resultMap.put("totalSign", todayAllSign); + resultMap.put("totalSignUrl", urlMap.get("totalSign")); + + //今日未打卡人数 + Integer todayNoSign = managerPortalMapper.getTodayNoSign(basicPersonnelParam, String.valueOf(currentUser.getEmployeeId())); + resultMap.put("totalNoSign", todayNoSign); + resultMap.put("totalNoSignUrl", urlMap.get("totalNoSign")); + + //今日迟到人数 + basicPersonnelParam.setParamDate(todayDate); + Integer totalLate = managerPortalMapper.getTotalLate(basicPersonnelParam, String.valueOf(currentUser.getEmployeeId())); + resultMap.put("totalLate", totalLate); + resultMap.put("totalLateUrl", urlMap.get("totalLate")); + + //今日休假人数 + int totalVacation = managerPortalMapper.getTotalVacation(basicPersonnelParam, String.valueOf(currentUser.getEmployeeId())); + resultMap.put("totalVacation", totalVacation); + resultMap.put("totalVacationUrl", urlMap.get("totalVacation")); + + return WeaResult.success(resultMap); } @Override @@ -230,6 +270,7 @@ public class ManagerPortalServiceImpl implements ManagerPortalService { // 设置部门范围ID集合 basicPersonnelParam.setDepartmentIdList(allDepartmentIdList); + log.error("getTeamMemorialDay:{}", JSON.toJSONString(allDepartmentIdList)); int birthdayNum = managerPortalMapper.getBirthdayNum(basicPersonnelParam); int regularEmployeeNum = managerPortalMapper.getRegularEmployeeNum(basicPersonnelParam); @@ -392,7 +433,7 @@ public class ManagerPortalServiceImpl implements ManagerPortalService { map3.put("url", urlMap.get("leaveType")); return WeaResult.success(map3); default: - return WeaResult.fail("不支持的统计类型",true); + return WeaResult.fail("不支持的统计类型", true); } } @@ -637,7 +678,6 @@ public class ManagerPortalServiceImpl implements ManagerPortalService { } - /** * 获取用户当前所负责的所有的部门以及下级部门 * @@ -645,7 +685,7 @@ public class ManagerPortalServiceImpl implements ManagerPortalService { */ private Set getAllDepartmentIdList(BasicPersonnelParam basicPersonnelParam, Long employeeId) { // 查询所负责的部门 - List manageDeptIds = managerPortalMapper.getManageDeptIds(basicPersonnelParam, employeeId); + List manageDeptIds = managerPortalMapper.getManageDeptIds(basicPersonnelParam, String.valueOf(employeeId)); // 查询所有的部门、子部门信息 Set allDepartmentList = new HashSet<>(); for (Long manageDeptId : manageDeptIds) { @@ -655,6 +695,11 @@ public class ManagerPortalServiceImpl implements ManagerPortalService { allDepartmentList.addAll(beLongDeps); } // TODO 判断集合如果为空,不展示数据 + if(CollectionUtils.isEmpty(allDepartmentList)){ + Set set = new HashSet<>(); + set.add(-1L); + return set; + } return allDepartmentList.stream().map(WeaDepartMent::getDepartMentId).collect(Collectors.toSet()); } } diff --git a/src/main/java/com/weaver/seconddev/portal/util/DateUtil.java b/src/main/java/com/weaver/seconddev/portal/util/DateUtil.java index 9e55a62..748d512 100644 --- a/src/main/java/com/weaver/seconddev/portal/util/DateUtil.java +++ b/src/main/java/com/weaver/seconddev/portal/util/DateUtil.java @@ -217,7 +217,7 @@ public class DateUtil { if (date == null) { return null; } - return date.toInstant().atZone(java.time.ZoneId.systemDefault()).toLocalDate(); + return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); } public static LocalDateTime toLocalDateTime(Date date) { diff --git a/src/main/resources/mapper/portal/HrbpPortalMapper.xml b/src/main/resources/mapper/portal/HrbpPortalMapper.xml index 4616d6b..be5ccf6 100644 --- a/src/main/resources/mapper/portal/HrbpPortalMapper.xml +++ b/src/main/resources/mapper/portal/HrbpPortalMapper.xml @@ -176,20 +176,94 @@ + + + + + + + diff --git a/src/main/resources/mapper/portal/ManagerPortalMapper.xml b/src/main/resources/mapper/portal/ManagerPortalMapper.xml index 2db5219..898f0b8 100644 --- a/src/main/resources/mapper/portal/ManagerPortalMapper.xml +++ b/src/main/resources/mapper/portal/ManagerPortalMapper.xml @@ -86,14 +86,14 @@ + + + + + + + +