经理门户、HRBP门户 增加穿透地址

This commit is contained in:
dxfeng 2025-07-11 13:28:52 +08:00
parent 985711fb66
commit 3339821988
7 changed files with 118 additions and 24 deletions

View File

@ -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<List<PortalPO>> getEducationInfo(@RequestBody Map<String, String> params) {
private WeaResult<Map<String, Object>> getEducationInfo(@RequestBody Map<String, String> params) {
return managerPortalService.getEducationInfo(params);
}

View File

@ -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;
}

View File

@ -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<PortalUrlDetail> getPortalUrlDetail(@Param("tenantKey") String tenantKey,@Param("portalKey") String portalKey,@Param("componentKey") String componentKey);
}

View File

@ -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<List<PortalPO>> getEducationInfo(Map<String, String> params);
WeaResult<Map<String, Object>> getEducationInfo(Map<String, String> params);
}

View File

@ -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<Map<String, Object>> getToDo(Map<String, String> 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<PortalUrlDetail> portalUrlDetails = portalMapper.getPortalUrlDetail(hrbpParam.getTenantKey(), PORTAL_KEY, "getToDo");
Map<String, String> 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<PortalUrlDetail> portalUrlDetails = portalMapper.getPortalUrlDetail(hrbpParam.getTenantKey(), PORTAL_KEY, "getEmployeeData");
Map<String, String> 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);
}

View File

@ -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<PortalUrlDetail> portalUrlDetails = portalMapper.getPortalUrlDetail(currentUser.getTenantKey(), PORTAL_KEY, "getBasicPersonnel");
Map<String, String> 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<PortalUrlDetail> portalUrlDetails = portalMapper.getPortalUrlDetail(currentUser.getTenantKey(), PORTAL_KEY, "getTeamMemorialDay");
Map<String, String> urlMap = portalUrlDetails.stream().collect(Collectors.toMap(PortalUrlDetail::getDetailKey, PortalUrlDetail::getUrlAddress));
Map<String, Object> 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<List<PortalPO>> getEducationInfo(Map<String, String> params) {
public WeaResult<Map<String, Object>> getEducationInfo(Map<String, String> 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<PortalUrlDetail> portalUrlDetails = portalMapper.getPortalUrlDetail(currentUser.getTenantKey(), PORTAL_KEY, "getEducationInfo");
Map<String, String> urlMap = portalUrlDetails.stream().collect(Collectors.toMap(PortalUrlDetail::getDetailKey, PortalUrlDetail::getUrlAddress));
List<PortalPO> returnList = new ArrayList<>();
Map<String, Object> 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);
}
/**

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.weaver.seconddev.portal.mapper.PortalMapper">
<select id="getPortalUrlDetail" resultType="com.weaver.seconddev.portal.entity.po.PortalUrlDetail">
select t.id as id,t.jkbs as detailKey,t.ctdz as urlAddress,t.zjmc as detailName from e10_common.uf_mhctdz_mxb1 t
inner join e10_common.uf_mhctdz t1
on t.FORM_DATA_ID =t1.FORM_DATA_ID
where t.delete_type = 0 and t.tenant_key = #{tenantKey}
and t1.tenant_key = #{tenantKey} and t1.delete_type = 0
and t1.mhmc = #{portalKey} and t1.zjjk = #{componentKey}
</select>
</mapper>