From d37c463e8dcdc72edf992f8c010b5c9037a3dceb Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 14 十月 2026 15:52:50 +0800
Subject: [PATCH] feat(hrm): 社保公积金方案支持按部门绑定,修比例输入精度

---
 yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/salary/HrmSocialSecuritySchemeService.java |   45 ++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 38 insertions(+), 7 deletions(-)

diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/salary/HrmSocialSecuritySchemeService.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/salary/HrmSocialSecuritySchemeService.java
index 51a52e0..859e3b0 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/salary/HrmSocialSecuritySchemeService.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/salary/HrmSocialSecuritySchemeService.java
@@ -1,8 +1,12 @@
 package cn.iocoder.yudao.module.hrm.service.salary;
 
+import cn.iocoder.yudao.module.hrm.controller.admin.salary.vo.HrmSocialSecuritySchemeSaveReqVO;
 import cn.iocoder.yudao.module.hrm.dal.dataobject.salary.HrmSocialSecuritySchemeDO;
 
+import java.time.LocalDate;
+import java.util.Collection;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 绀句繚鍏Н閲戞柟妗� Service 鎺ュ彛
@@ -12,19 +16,19 @@
 public interface HrmSocialSecuritySchemeService {
 
     /**
-     * 鍒涘缓绀句繚鍏Н閲戞柟妗�
+     * 鍒涘缓绀句繚鍏Н閲戞柟妗堬紙鍚�傜敤閮ㄩ棬锛�
      *
-     * @param scheme 鏂规淇℃伅
+     * @param createReqVO 鏂规淇℃伅
      * @return 鏂规ID
      */
-    Long createScheme(HrmSocialSecuritySchemeDO scheme);
+    Long createScheme(HrmSocialSecuritySchemeSaveReqVO createReqVO);
 
     /**
-     * 鏇存柊绀句繚鍏Н閲戞柟妗�
+     * 鏇存柊绀句繚鍏Н閲戞柟妗堬紙鍚�傜敤閮ㄩ棬锛屾暣缁勬浛鎹級
      *
-     * @param scheme 鏂规淇℃伅
+     * @param updateReqVO 鏂规淇℃伅
      */
-    void updateScheme(HrmSocialSecuritySchemeDO scheme);
+    void updateScheme(HrmSocialSecuritySchemeSaveReqVO updateReqVO);
 
     /**
      * 鍒犻櫎绀句繚鍏Н閲戞柟妗�
@@ -49,4 +53,31 @@
      */
     List<HrmSocialSecuritySchemeDO> getSchemeList(Integer status);
 
-}
\ No newline at end of file
+    /**
+     * 鑾峰彇鏂规缁戝畾鐨勯�傜敤閮ㄩ棬ID鍒楄〃
+     *
+     * @param schemeId 鏂规ID
+     * @return 閮ㄩ棬ID鍒楄〃
+     */
+    List<Long> getSchemeDeptIds(Long schemeId);
+
+    /**
+     * 鎵归噺鑾峰彇鏂规缁戝畾鐨勯�傜敤閮ㄩ棬ID锛堟柟妗圛D -> 閮ㄩ棬ID鍒楄〃锛�
+     *
+     * @param schemeIds 鏂规ID闆嗗悎
+     * @return 鏂规ID -> 閮ㄩ棬ID鍒楄〃
+     */
+    Map<Long, List<Long>> getSchemeDeptIdMap(Collection<Long> schemeIds);
+
+    /**
+     * 鎸夐儴闂ㄨВ鏋愭牳绠楃敤鐨勭ぞ淇濆叕绉噾鏂规
+     *
+     * 浼樺厛绾э細璇ラ儴闂ㄧ粦瀹氱殑鏂规锛堢敓鏁堟棩鏈熶笉鏅氫簬鏍哥畻鏈熼棿锛屽彇鏈�鏂帮級> 鍏ㄥ眬榛樿鏂规锛堟湭缁戝畾浠讳綍閮ㄩ棬鐨勬柟妗堜腑鐢熸晥鏃ユ湡鏈�鏂拌�咃級
+     *
+     * @param deptId      鍛樺伐鎵�鍦ㄩ儴闂↖D锛堝彲涓虹┖锛�
+     * @param periodDate  鏍哥畻鏈熼棿鐨勬湀鍒濇棩鏈�
+     * @return 鏂规锛涙煡涓嶅埌杩斿洖 null锛岀敱璋冪敤鏂逛娇鐢ㄩ粯璁ゆ瘮渚嬪父閲�
+     */
+    HrmSocialSecuritySchemeDO resolveSchemeByDeptId(Long deptId, LocalDate periodDate);
+
+}

--
Gitblit v1.9.3