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 113a9e1..b606ad0 100644 --- a/src/main/java/com/weaver/seconddev/portal/controller/ManagerPortalController.java +++ b/src/main/java/com/weaver/seconddev/portal/controller/ManagerPortalController.java @@ -2,7 +2,6 @@ package com.weaver.seconddev.portal.controller; import com.weaver.common.authority.annotation.WeaPermission; import com.weaver.common.base.entity.result.WeaResult; -import com.weaver.seconddev.portal.entity.po.PortalPO; import com.weaver.seconddev.portal.service.ManagerPortalService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -11,7 +10,6 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.List; import java.util.Map; /** @@ -49,7 +47,7 @@ public class ManagerPortalController { } @PostMapping("/getEducationInfo") - private WeaResult> getEducationInfo(@RequestBody Map params) { + private WeaResult> getEducationInfo(@RequestBody Map params) { return managerPortalService.getEducationInfo(params); } diff --git a/src/main/java/com/weaver/seconddev/portal/entity/po/PortalUrlDetail.java b/src/main/java/com/weaver/seconddev/portal/entity/po/PortalUrlDetail.java new file mode 100644 index 0000000..d816b32 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/portal/entity/po/PortalUrlDetail.java @@ -0,0 +1,16 @@ +package com.weaver.seconddev.portal.entity.po; + +import lombok.Data; + +/** + * @author:dxfeng + * @createTime: 2025/07/11 + * @version: 1.0 + */ +@Data +public class PortalUrlDetail { + private String id; + private String detailKey; + private String urlAddress; + private String detailName; +} diff --git a/src/main/java/com/weaver/seconddev/portal/mapper/PortalMapper.java b/src/main/java/com/weaver/seconddev/portal/mapper/PortalMapper.java new file mode 100644 index 0000000..c6d380e --- /dev/null +++ b/src/main/java/com/weaver/seconddev/portal/mapper/PortalMapper.java @@ -0,0 +1,17 @@ +package com.weaver.seconddev.portal.mapper; + +import com.weaver.seconddev.portal.entity.po.PortalUrlDetail; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author:dxfeng + * @createTime: 2025/07/11 + * @version: 1.0 + */ +@Mapper +public interface PortalMapper { + List getPortalUrlDetail(@Param("tenantKey") String tenantKey,@Param("portalKey") String portalKey,@Param("componentKey") String componentKey); +} 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 45a3ebc..e082141 100644 --- a/src/main/java/com/weaver/seconddev/portal/service/ManagerPortalService.java +++ b/src/main/java/com/weaver/seconddev/portal/service/ManagerPortalService.java @@ -1,9 +1,7 @@ package com.weaver.seconddev.portal.service; import com.weaver.common.base.entity.result.WeaResult; -import com.weaver.seconddev.portal.entity.po.PortalPO; -import java.util.List; import java.util.Map; /** @@ -55,7 +53,7 @@ public interface ManagerPortalService { * @param params * @return */ - WeaResult> getEducationInfo(Map params); + WeaResult> getEducationInfo(Map params); } 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 50ab477..bae9236 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 @@ -2,7 +2,9 @@ package com.weaver.seconddev.portal.service.impl; import com.weaver.common.base.entity.result.WeaResult; import com.weaver.seconddev.portal.entity.param.HrbpParam; +import com.weaver.seconddev.portal.entity.po.PortalUrlDetail; import com.weaver.seconddev.portal.mapper.HrbpPortalMapper; +import com.weaver.seconddev.portal.mapper.PortalMapper; import com.weaver.seconddev.portal.service.HrbpPortalService; import com.weaver.teams.security.context.UserContext; import lombok.extern.slf4j.Slf4j; @@ -10,7 +12,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.HashMap; +import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * @author:dxfeng @@ -21,9 +25,14 @@ import java.util.Map; @Service public class HrbpPortalServiceImpl implements HrbpPortalService { + private static final String PORTAL_KEY = "hrbpPortal"; + @Autowired HrbpPortalMapper hrbpPortalMapper; + @Autowired + PortalMapper portalMapper; + @Override public WeaResult> getToDo(Map params) { @@ -38,21 +47,25 @@ public class HrbpPortalServiceImpl implements HrbpPortalService { int toLeaveCount = hrbpPortalMapper.getToLeaveCount(hrbpParam); int toSignCount = hrbpPortalMapper.getToSignCount(hrbpParam); int toProxyCount = hrbpPortalMapper.getToProxyCount(hrbpParam); + + List portalUrlDetails = portalMapper.getPortalUrlDetail(hrbpParam.getTenantKey(), PORTAL_KEY, "getToDo"); + Map urlMap = portalUrlDetails.stream().collect(Collectors.toMap(PortalUrlDetail::getDetailKey, PortalUrlDetail::getUrlAddress)); + // 待入职 map.put("entry", toEntryCount); - map.put("entryUrl", ""); + map.put("entryUrl", urlMap.get("entry")); // 待转正 map.put("regular", toRegularCount); - map.put("regularUrl", ""); + map.put("regularUrl", urlMap.get("regular")); // 待离职 map.put("leave", toLeaveCount); - map.put("leaveUrl", ""); + map.put("leaveUrl", urlMap.get("leave")); // 待签订 map.put("sign", toSignCount); - map.put("signUrl", ""); + map.put("signUrl", urlMap.get("sign")); // 代理期转正 map.put("proxy", toProxyCount); - map.put("proxyUrl", ""); + map.put("proxyUrl", urlMap.get("proxy")); return WeaResult.success(map); } @@ -63,35 +76,39 @@ public class HrbpPortalServiceImpl implements HrbpPortalService { HrbpParam hrbpParam = new HrbpParam(); hrbpParam.setTenantKey(UserContext.getCurrentUser().getTenantKey()); + List portalUrlDetails = portalMapper.getPortalUrlDetail(hrbpParam.getTenantKey(), PORTAL_KEY, "getEmployeeData"); + Map urlMap = portalUrlDetails.stream().collect(Collectors.toMap(PortalUrlDetail::getDetailKey, PortalUrlDetail::getUrlAddress)); + + // 员工人数 int allEmployeeCount = hrbpPortalMapper.getAllEmployeeCount(hrbpParam); map.put("allEmployee", allEmployeeCount); - map.put("allEmployeeUrl", ""); + map.put("allEmployeeUrl", urlMap.get("allEmployee")); // 正式员工 int formalEmployeeCount = hrbpPortalMapper.getFormalEmployeeCount(hrbpParam); map.put("formalEmployee", formalEmployeeCount); - map.put("formalEmployeeUrl", ""); + map.put("formalEmployeeUrl", urlMap.get("formalEmployee")); // 实习生 map.put("internEmployee", hrbpPortalMapper.getInternEmployeeCount(hrbpParam)); - map.put("internEmployeeUrl", ""); + map.put("internEmployeeUrl", urlMap.get("internEmployee")); // 外包 map.put("outsourcing", hrbpPortalMapper.getOutsourcingCount(hrbpParam)); - map.put("outsourcingUrl", ""); + map.put("outsourcingUrl", urlMap.get("outsourcing")); // 劳务 map.put("labor", hrbpPortalMapper.getLaborCount(hrbpParam)); - map.put("laborUrl", ""); + map.put("laborUrl", urlMap.get("labor")); // 试用 map.put("probation", hrbpPortalMapper.getProbationCount(hrbpParam)); - map.put("probationUrl", ""); + map.put("probationUrl", urlMap.get("probation")); // 正式 map.put("formal", hrbpPortalMapper.getFormalCount(hrbpParam)); - map.put("formalUrl", ""); + map.put("formalUrl", urlMap.get("formal")); // 实习 map.put("intern", hrbpPortalMapper.getInternCount(hrbpParam)); - map.put("internUrl", ""); + map.put("internUrl", urlMap.get("intern")); // 离职 map.put("leave", hrbpPortalMapper.getLeaveCount(hrbpParam)); - map.put("leaveUrl", ""); + map.put("leaveUrl", urlMap.get("leave")); return WeaResult.success(map); } 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 c0badd5..b9441b2 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 @@ -8,7 +8,10 @@ import com.weaver.common.hrm.manage.HrmComInfoCacheHandler; import com.weaver.seconddev.portal.entity.param.BasicPersonnelParam; import com.weaver.seconddev.portal.entity.po.PieChartConfig; import com.weaver.seconddev.portal.entity.po.PortalPO; +import com.weaver.seconddev.portal.entity.po.PortalUrlDetail; +import com.weaver.seconddev.portal.mapper.LeaderCockpitMapper; import com.weaver.seconddev.portal.mapper.ManagerPortalMapper; +import com.weaver.seconddev.portal.mapper.PortalMapper; import com.weaver.seconddev.portal.service.ManagerPortalService; import com.weaver.seconddev.portal.util.DateUtil; import com.weaver.teams.security.context.UserContext; @@ -33,7 +36,13 @@ import java.util.stream.Collectors; @Slf4j @Service public class ManagerPortalServiceImpl implements ManagerPortalService { - private static final String URL_UID = ""; + private static final String PORTAL_KEY = "managerPortal"; + + @Autowired + LeaderCockpitMapper leaderCockpitMapper; + + @Autowired + PortalMapper portalMapper; @Autowired ManagerPortalMapper managerPortalMapper; @@ -100,16 +109,26 @@ public class ManagerPortalServiceImpl implements ManagerPortalService { int entryNumber = managerPortalMapper.getEntryNumber(basicPersonnelParam); int entryingNumber = managerPortalMapper.getEntryingNumber(basicPersonnelParam); + // 获取穿透地址 + List portalUrlDetails = portalMapper.getPortalUrlDetail(currentUser.getTenantKey(), PORTAL_KEY, "getBasicPersonnel"); + Map urlMap = portalUrlDetails.stream().collect(Collectors.toMap(PortalUrlDetail::getDetailKey, PortalUrlDetail::getUrlAddress)); + // 在职人数 returnMap.put("onJobNumber", onJobNum); + returnMap.put("onJobNumberUrl", urlMap.get("onJobNumber")); // 年度离职人数 returnMap.put("resignNumber", resignNumber); + returnMap.put("resignNumberUrl", urlMap.get("resignNumber")); + // 年度入职人数 returnMap.put("entryNumber", entryNumber); + returnMap.put("entryNumberUrl", urlMap.get("entryNumber")); // 离职流程中人数 returnMap.put("resigningNumber", resigningNumber); + returnMap.put("resigningNumberUrl", urlMap.get("resigningNumber")); // 入职流程中人数 returnMap.put("entryingNumber", entryingNumber); + returnMap.put("entryingNumberUrl", urlMap.get("entryingNumber")); // TODO 测试用 returnMap.put("basicPersonnelParam", basicPersonnelParam); @@ -138,13 +157,20 @@ public class ManagerPortalServiceImpl implements ManagerPortalService { int employmentAnniversary = managerPortalMapper.getEmploymentAnniversary(basicPersonnelParam); + // 获取穿透地址 + List portalUrlDetails = portalMapper.getPortalUrlDetail(currentUser.getTenantKey(), PORTAL_KEY, "getTeamMemorialDay"); + Map urlMap = portalUrlDetails.stream().collect(Collectors.toMap(PortalUrlDetail::getDetailKey, PortalUrlDetail::getUrlAddress)); + Map returnMap = new HashMap<>(); // 生日提醒 returnMap.put("birthdayNum", birthdayNum); + returnMap.put("birthdayNumUrl", urlMap.get("birthdayNum")); // 转正日期 returnMap.put("regularEmployeeNum", regularEmployeeNum); + returnMap.put("regularEmployeeNumUrl", urlMap.get("regularEmployeeNum")); // 入职周年提醒 returnMap.put("employmentAnniversary", employmentAnniversary); + returnMap.put("employmentAnniversaryUrl", urlMap.get("employmentAnniversary")); // TODO 测试用 returnMap.put("basicPersonnelParam", basicPersonnelParam); @@ -152,7 +178,7 @@ public class ManagerPortalServiceImpl implements ManagerPortalService { } @Override - public WeaResult> getEducationInfo(Map params) { + public WeaResult> getEducationInfo(Map params) { String type = params.get("type"); if (StringUtils.isBlank(type)) { @@ -166,31 +192,40 @@ public class ManagerPortalServiceImpl implements ManagerPortalService { // 设置部门范围ID集合 basicPersonnelParam.setDepartmentIdList(allDepartmentIdList); basicPersonnelParam.setPieType(type); + List portalUrlDetails = portalMapper.getPortalUrlDetail(currentUser.getTenantKey(), PORTAL_KEY, "getEducationInfo"); + Map urlMap = portalUrlDetails.stream().collect(Collectors.toMap(PortalUrlDetail::getDetailKey, PortalUrlDetail::getUrlAddress)); List returnList = new ArrayList<>(); + Map returnMap = new HashMap<>(); switch (type) { case "education": // 学历 dealEducationInfo(basicPersonnelParam, returnList); + returnMap.put("url", urlMap.get("education")); + break; case "age": // 年龄 dealAgeInfo(basicPersonnelParam, returnList); + returnMap.put("url", urlMap.get("age")); break; case "grade": // 职级 + returnMap.put("url", urlMap.get("grade")); break; case "company": // 司龄 dealCompanyInfo(basicPersonnelParam, returnList); + returnMap.put("url", urlMap.get("company")); break; case "performance": // 绩效 + returnMap.put("url", urlMap.get("performance")); break; default: break; } - - return WeaResult.success(returnList); + returnMap.put("list", returnList); + return WeaResult.success(returnMap); } /** diff --git a/src/main/resources/mapper/PortalMapper.xml b/src/main/resources/mapper/PortalMapper.xml new file mode 100644 index 0000000..8cdab40 --- /dev/null +++ b/src/main/resources/mapper/PortalMapper.xml @@ -0,0 +1,13 @@ + + + + + +