From fa4a310bb94f41bdc7af068bd380fdfeafb881c7 Mon Sep 17 00:00:00 2001
From: tuqin <tuqin@tuqin.cn>
Date: 星期一, 26 十月 2026 14:14:20 +0800
Subject: [PATCH] feat(hrm): 薪酬核算新增「岗位工资」「工龄工资」

---
 yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/salary/HrmSalaryCalculationServiceImpl.java |   15 ++++++++++++---
 1 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/salary/HrmSalaryCalculationServiceImpl.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/salary/HrmSalaryCalculationServiceImpl.java
index a8822da..ed13d18 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/salary/HrmSalaryCalculationServiceImpl.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/salary/HrmSalaryCalculationServiceImpl.java
@@ -235,8 +235,13 @@
                                                           HrmSocialSecuritySchemeDO scheme,
                                                           LocalDate effectiveDate) {
         // 璁$畻搴斿彂钖祫
-        BigDecimal baseSalary = employeeSalary.getBaseSalary() != null ? employeeSalary.getBaseSalary() : BigDecimal.ZERO;
+        // 鍩烘湰宸ヨ祫缁熶竴鍙栥�屽憳宸ヤ俊鎭�嶄腑缁存姢鐨勫熀鏈柂璧勶紙钖叕妗f閲岀殑 baseSalary 涓嶅啀浣滀负鏍哥畻鏉ユ簮锛�
+        // 閬垮厤鍛樺伐淇℃伅涓庤柂閰。妗堜笉涓�鑷存椂锛屾牳绠楃粨鏋滀笌鍛樺伐妗f瀵逛笉涓婏級
+        BigDecimal baseSalary = employee.getBaseSalary() != null ? employee.getBaseSalary() : BigDecimal.ZERO;
         BigDecimal performanceSalary = employeeSalary.getPerformanceSalary() != null ? employeeSalary.getPerformanceSalary() : BigDecimal.ZERO;
+        // 宀椾綅宸ヨ祫 / 宸ラ緞宸ヨ祫锛氫笌鍩烘湰宸ヨ祫鍚屾簮锛屽彇鍛樺伐淇℃伅涓淮鎶ょ殑閲戦
+        BigDecimal postSalary = employee.getPostSalary() != null ? employee.getPostSalary() : BigDecimal.ZERO;
+        BigDecimal senioritySalary = employee.getSenioritySalary() != null ? employee.getSenioritySalary() : BigDecimal.ZERO;
         BigDecimal mealAllowance = employeeSalary.getMealAllowance() != null ? employeeSalary.getMealAllowance() : BigDecimal.ZERO;
         BigDecimal transportAllowance = employeeSalary.getTransportAllowance() != null ? employeeSalary.getTransportAllowance() : BigDecimal.ZERO;
         BigDecimal otherAllowance = employeeSalary.getOtherAllowance() != null ? employeeSalary.getOtherAllowance() : BigDecimal.ZERO;
@@ -249,8 +254,8 @@
         BigDecimal totalWorkHours = scheduleStat.totalWorkHours();
 
         // 搴斿彂宸ヨ祫鎬婚
-        BigDecimal totalIncome = baseSalary.add(performanceSalary).add(mealAllowance)
-                .add(transportAllowance).add(otherAllowance).add(overtimePay);
+        BigDecimal totalIncome = baseSalary.add(performanceSalary).add(postSalary).add(senioritySalary)
+                .add(mealAllowance).add(transportAllowance).add(otherAllowance).add(overtimePay);
 
         // 鑾峰彇绀句繚鍩烘暟锛氬憳宸ョぞ淇濇。妗� > 鍛樺伐鍩烘湰宸ヨ祫
         BigDecimal socialSecurityBase = (socialSecurity != null && socialSecurity.getSocialSecurityBase() != null)
@@ -308,6 +313,8 @@
                 .deptId(employee.getDeptId())
                 .baseSalary(baseSalary)
                 .performanceSalary(performanceSalary)
+                .postSalary(postSalary)
+                .senioritySalary(senioritySalary)
                 .overtimePay(overtimePay)
                 .mealAllowance(mealAllowance)
                 .transportAllowance(transportAllowance)
@@ -687,6 +694,8 @@
         // 鍚﹀垯浼氬嚭鐜般�屽疄鍙戝伐璧勬寜 0 璁$畻銆佷絾鏄庣粏浠嶄繚鐣欐棫鍊笺�嶇殑涓嶄竴鑷�
         calculation.setBaseSalary(nvl(calculation.getBaseSalary()));
         calculation.setPerformanceSalary(nvl(calculation.getPerformanceSalary()));
+        calculation.setPostSalary(nvl(calculation.getPostSalary()));
+        calculation.setSenioritySalary(nvl(calculation.getSenioritySalary()));
         calculation.setOvertimePay(nvl(calculation.getOvertimePay()));
         calculation.setMealAllowance(nvl(calculation.getMealAllowance()));
         calculation.setTransportAllowance(nvl(calculation.getTransportAllowance()));

--
Gitblit v1.9.3