From eb3edfeca8699a7628b670e25e3d22943dca0b9c Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 15 Jul 2025 13:49:38 +0800 Subject: [PATCH] =?UTF-8?q?SSC=E9=97=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SscPortalController.java | 34 ++++++++++ .../portal/entity/param/SscParam.java | 19 ++++++ .../entity/po/ExpirationReminderPo.java | 37 +++++++++++ .../portal/mapper/SscPortalMapper.java | 47 +++++++++++++ .../portal/service/SscPortalService.java | 21 ++++++ .../service/impl/HrbpPortalServiceImpl.java | 5 +- .../impl/ManagerPortalServiceImpl.java | 5 +- .../service/impl/SscPortalServiceImpl.java | 65 ++++++++++++++++++ src/main/resources/mapper/SscPortalMapper.xml | 66 +++++++++++++++++++ 9 files changed, 293 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/weaver/seconddev/portal/controller/SscPortalController.java create mode 100644 src/main/java/com/weaver/seconddev/portal/entity/param/SscParam.java create mode 100644 src/main/java/com/weaver/seconddev/portal/entity/po/ExpirationReminderPo.java create mode 100644 src/main/java/com/weaver/seconddev/portal/mapper/SscPortalMapper.java create mode 100644 src/main/java/com/weaver/seconddev/portal/service/SscPortalService.java create mode 100644 src/main/java/com/weaver/seconddev/portal/service/impl/SscPortalServiceImpl.java create mode 100644 src/main/resources/mapper/SscPortalMapper.xml diff --git a/src/main/java/com/weaver/seconddev/portal/controller/SscPortalController.java b/src/main/java/com/weaver/seconddev/portal/controller/SscPortalController.java new file mode 100644 index 0000000..94d8380 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/portal/controller/SscPortalController.java @@ -0,0 +1,34 @@ +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.ExpirationReminderPo; +import com.weaver.seconddev.portal.service.SscPortalService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2025/07/15 + * @version: 1.0 + */ +@Slf4j +@RestController +@RequestMapping("/api/secondev/portal/ssc") +@WeaPermission(publicPermission = true) +public class SscPortalController { + + @Autowired + SscPortalService sscPortalService; + + @PostMapping("/getExpirationReminder") + private WeaResult getExpirationReminder(@RequestBody Map params) { + return sscPortalService.getExpirationReminder(params); + } +} diff --git a/src/main/java/com/weaver/seconddev/portal/entity/param/SscParam.java b/src/main/java/com/weaver/seconddev/portal/entity/param/SscParam.java new file mode 100644 index 0000000..a8bc55c --- /dev/null +++ b/src/main/java/com/weaver/seconddev/portal/entity/param/SscParam.java @@ -0,0 +1,19 @@ +package com.weaver.seconddev.portal.entity.param; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Set; + +/** + * @author:dxfeng + * @createTime: 2025/07/15 + * @version: 1.0 + */ +@Data +@EqualsAndHashCode(callSuper = false) +public class SscParam extends BaseParam { + private String tenantKey; + private Set departmentIdList; + private String currentDate; +} diff --git a/src/main/java/com/weaver/seconddev/portal/entity/po/ExpirationReminderPo.java b/src/main/java/com/weaver/seconddev/portal/entity/po/ExpirationReminderPo.java new file mode 100644 index 0000000..a4be73e --- /dev/null +++ b/src/main/java/com/weaver/seconddev/portal/entity/po/ExpirationReminderPo.java @@ -0,0 +1,37 @@ +package com.weaver.seconddev.portal.entity.po; + +import lombok.Data; + +/** + * @author:dxfeng + * @createTime: 2025/07/15 + * @version: 1.0 + */ +@Data +public class ExpirationReminderPo { + /** + * 合同到期 + */ + private int contractExpiration; + private String contractExpirationUrl; + /** + * 身份证到期 + */ + private int idCardExpiration; + private String idCardExpirationUrl; + /** + * 健康证到期 + */ + private int healthCertificateExpiration; + private String healthCertificateExpirationUrl; + /** + * 入职周年提醒 + */ + private int employmentAnniversary; + private String employmentAnniversaryUrl; + /** + * 管理层生日提醒 + */ + private int birthdayNum; + private String birthdayNumUrl; +} diff --git a/src/main/java/com/weaver/seconddev/portal/mapper/SscPortalMapper.java b/src/main/java/com/weaver/seconddev/portal/mapper/SscPortalMapper.java new file mode 100644 index 0000000..8fc1a85 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/portal/mapper/SscPortalMapper.java @@ -0,0 +1,47 @@ +package com.weaver.seconddev.portal.mapper; + +import com.weaver.seconddev.portal.entity.param.SscParam; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author:dxfeng + * @createTime: 2025/07/15 + * @version: 1.0 + */ +@Mapper +public interface SscPortalMapper { + + /** + * 合同到期 + * + * @param param + * @return + */ + int getExpirationReminderCount(SscParam param); + + /** + * 身份证到期 + * + * @param param + * @return + */ + int getIdCardExpirationCount(SscParam param); + + /** + * 健康证到期 + * + * @param param + * @return + */ + int getHealthCertificateExpirationCount(SscParam param); + + /** + * 入职周年提醒 + * @param param + * @return + */ + int getEmploymentAnniversaryCount(SscParam param); + + + +} diff --git a/src/main/java/com/weaver/seconddev/portal/service/SscPortalService.java b/src/main/java/com/weaver/seconddev/portal/service/SscPortalService.java new file mode 100644 index 0000000..843db3e --- /dev/null +++ b/src/main/java/com/weaver/seconddev/portal/service/SscPortalService.java @@ -0,0 +1,21 @@ +package com.weaver.seconddev.portal.service; + +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.seconddev.portal.entity.po.ExpirationReminderPo; + +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2025/07/15 + * @version: 1.0 + */ +public interface SscPortalService { + /** + * 到期提醒 + * + * @param params + * @return + */ + WeaResult getExpirationReminder(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 bae9236..8ca0cdf 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 @@ -60,10 +60,10 @@ public class HrbpPortalServiceImpl implements HrbpPortalService { // 待离职 map.put("leave", toLeaveCount); map.put("leaveUrl", urlMap.get("leave")); - // 待签订 + //TODO 待签订 map.put("sign", toSignCount); map.put("signUrl", urlMap.get("sign")); - // 代理期转正 + //TODO 代理期转正 map.put("proxy", toProxyCount); map.put("proxyUrl", urlMap.get("proxy")); return WeaResult.success(map); @@ -114,6 +114,7 @@ public class HrbpPortalServiceImpl implements HrbpPortalService { @Override public WeaResult> getTodayOverview(Map params) { + // TODO return null; } } 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 1d091ce..e6af341 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 @@ -132,8 +132,7 @@ public class ManagerPortalServiceImpl implements ManagerPortalService { // 入职流程中人数 returnMap.put("entryingNumber", entryingNumber); returnMap.put("entryingNumberUrl", urlMap.get("entryingNumber")); - // TODO 测试用 - returnMap.put("basicPersonnelParam", basicPersonnelParam); + return WeaResult.success(returnMap); } @@ -176,8 +175,6 @@ public class ManagerPortalServiceImpl implements ManagerPortalService { returnMap.put("employmentAnniversary", employmentAnniversary); returnMap.put("employmentAnniversaryUrl", urlMap.get("employmentAnniversary")); - // TODO 测试用 - returnMap.put("basicPersonnelParam", basicPersonnelParam); return WeaResult.success(returnMap); } diff --git a/src/main/java/com/weaver/seconddev/portal/service/impl/SscPortalServiceImpl.java b/src/main/java/com/weaver/seconddev/portal/service/impl/SscPortalServiceImpl.java new file mode 100644 index 0000000..4a3d8e5 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/portal/service/impl/SscPortalServiceImpl.java @@ -0,0 +1,65 @@ +package com.weaver.seconddev.portal.service.impl; + +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.seconddev.portal.entity.param.SscParam; +import com.weaver.seconddev.portal.entity.po.ExpirationReminderPo; +import com.weaver.seconddev.portal.entity.po.PortalUrlDetail; +import com.weaver.seconddev.portal.mapper.PortalMapper; +import com.weaver.seconddev.portal.mapper.SscPortalMapper; +import com.weaver.seconddev.portal.service.SscPortalService; +import com.weaver.teams.security.context.UserContext; +import com.weaver.teams.security.user.User; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @author:dxfeng + * @createTime: 2025/07/15 + * @version: 1.0 + */ +@Slf4j +@Service +public class SscPortalServiceImpl implements SscPortalService { + private static final String PORTAL_KEY = "sscPortal"; + + @Autowired + SscPortalMapper sscPortalMapper; + + @Autowired + PortalMapper portalMapper; + + @Override + public WeaResult getExpirationReminder(Map params) { + User currentUser = UserContext.getCurrentUser(); + SscParam sscParam = new SscParam(); + sscParam.setTenantKey(currentUser.getTenantKey()); + + ExpirationReminderPo expirationReminderPo = new ExpirationReminderPo(); + + // 合同到期 + expirationReminderPo.setContractExpiration(sscPortalMapper.getExpirationReminderCount(sscParam)); + expirationReminderPo.setIdCardExpiration(sscPortalMapper.getIdCardExpirationCount(sscParam)); + expirationReminderPo.setHealthCertificateExpiration(sscPortalMapper.getHealthCertificateExpirationCount(sscParam)); + expirationReminderPo.setEmploymentAnniversary(sscPortalMapper.getEmploymentAnniversaryCount(sscParam)); + // TODO + expirationReminderPo.setBirthdayNum(-1); + + + // 设置穿透地址 + List portalUrlDetails = portalMapper.getPortalUrlDetail(sscParam.getTenantKey(), PORTAL_KEY, "getExpirationReminder"); + Map urlMap = portalUrlDetails.stream().collect(Collectors.toMap(PortalUrlDetail::getDetailKey, PortalUrlDetail::getUrlAddress)); + expirationReminderPo.setContractExpirationUrl(urlMap.get("contractExpiration")); + expirationReminderPo.setIdCardExpirationUrl(urlMap.get("idCardExpiration")); + expirationReminderPo.setHealthCertificateExpirationUrl(urlMap.get("healthCertificateExpiration")); + expirationReminderPo.setEmploymentAnniversaryUrl(urlMap.get("employmentAnniversary")); + expirationReminderPo.setBirthdayNumUrl(urlMap.get("birthdayNum")); + + + return WeaResult.success(expirationReminderPo); + } +} diff --git a/src/main/resources/mapper/SscPortalMapper.xml b/src/main/resources/mapper/SscPortalMapper.xml new file mode 100644 index 0000000..0bfa5ff --- /dev/null +++ b/src/main/resources/mapper/SscPortalMapper.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + +