sql/mysql/hrm_salary_add_post_seniority.sql
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,68 @@ -- ============================================= -- èªé ¬æ ¸ç®ï¼æ°å¢ãå²ä½å·¥èµããå·¥é¾å·¥èµã -- -- ä¸å¡è¯´æï¼ -- 1) å²ä½å·¥èµãå·¥é¾å·¥èµä¸ãåºæ¬å·¥èµãåæºï¼å¨ãå工管çãçå工信æ¯ä¸ç»´æ¤ -- 2) æ§è¡èªé ¬æ ¸ç®æ¶å¸¦å ¥æ ¸ç®åï¼å¹¶è®¡å ¥åºåå·¥èµä¸å®åå·¥èµ -- 3) èªé ¬æ¡£æ¡(hrm_employee_salary)忥å åï¼ä¾¿äºåç»æ©å±ï¼å½åæ ¸ç®ä»¥å工信æ¯ä¸ºå -- -- èæ¬å¯é夿§è¡ï¼å¹çï¼ -- ============================================= SET NAMES utf8mb4; SET @sch := DATABASE(); -- ---------- 1. å工信æ¯ï¼å²ä½å·¥èµ / å·¥é¾å·¥èµ ---------- SET @exists := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @sch AND TABLE_NAME = 'hrm_employee' AND COLUMN_NAME = 'post_salary'); SET @sql := IF(@exists = 0, 'ALTER TABLE `hrm_employee` ADD COLUMN `post_salary` decimal(10,2) DEFAULT ''0.00'' COMMENT ''å²ä½å·¥èµ'' AFTER `base_salary`', 'SELECT ''hrm_employee.post_salary å·²åå¨'' AS msg'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET @exists := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @sch AND TABLE_NAME = 'hrm_employee' AND COLUMN_NAME = 'seniority_salary'); SET @sql := IF(@exists = 0, 'ALTER TABLE `hrm_employee` ADD COLUMN `seniority_salary` decimal(10,2) DEFAULT ''0.00'' COMMENT ''å·¥é¾å·¥èµ'' AFTER `post_salary`', 'SELECT ''hrm_employee.seniority_salary å·²åå¨'' AS msg'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- ---------- 2. èªé ¬æ ¸ç®åï¼å²ä½å·¥èµ / å·¥é¾å·¥èµ ---------- SET @exists := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @sch AND TABLE_NAME = 'hrm_salary_calculation' AND COLUMN_NAME = 'post_salary'); SET @sql := IF(@exists = 0, 'ALTER TABLE `hrm_salary_calculation` ADD COLUMN `post_salary` decimal(10,2) DEFAULT ''0.00'' COMMENT ''å²ä½å·¥èµ'' AFTER `performance_salary`', 'SELECT ''hrm_salary_calculation.post_salary å·²åå¨'' AS msg'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET @exists := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @sch AND TABLE_NAME = 'hrm_salary_calculation' AND COLUMN_NAME = 'seniority_salary'); SET @sql := IF(@exists = 0, 'ALTER TABLE `hrm_salary_calculation` ADD COLUMN `seniority_salary` decimal(10,2) DEFAULT ''0.00'' COMMENT ''å·¥é¾å·¥èµ'' AFTER `post_salary`', 'SELECT ''hrm_salary_calculation.seniority_salary å·²åå¨'' AS msg'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- ---------- 3. èªé ¬æ¡£æ¡ï¼å¯éï¼å½åæ ¸ç®ä¸åæ¤è¡¨çåºæ¬/å²ä½/å·¥é¾å·¥èµï¼ ---------- SET @exists := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @sch AND TABLE_NAME = 'hrm_employee_salary' AND COLUMN_NAME = 'post_salary'); SET @sql := IF(@exists = 0, 'ALTER TABLE `hrm_employee_salary` ADD COLUMN `post_salary` decimal(10,2) DEFAULT ''0.00'' COMMENT ''å²ä½å·¥èµ'' AFTER `base_salary`', 'SELECT ''hrm_employee_salary.post_salary å·²åå¨'' AS msg'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET @exists := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @sch AND TABLE_NAME = 'hrm_employee_salary' AND COLUMN_NAME = 'seniority_salary'); SET @sql := IF(@exists = 0, 'ALTER TABLE `hrm_employee_salary` ADD COLUMN `seniority_salary` decimal(10,2) DEFAULT ''0.00'' COMMENT ''å·¥é¾å·¥èµ'' AFTER `post_salary`', 'SELECT ''hrm_employee_salary.seniority_salary å·²åå¨'' AS msg'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- ---------- 4. æ ¸å¯¹ ---------- SELECT TABLE_NAME, COLUMN_NAME, COLUMN_TYPE, COLUMN_DEFAULT, COLUMN_COMMENT FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @sch AND TABLE_NAME IN ('hrm_employee', 'hrm_salary_calculation', 'hrm_employee_salary') AND COLUMN_NAME IN ('post_salary', 'seniority_salary') ORDER BY TABLE_NAME, COLUMN_NAME; SELECT 'å²ä½å·¥èµ / å·¥é¾å·¥èµå段åå§å宿' AS result; yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/employee/vo/HrmEmployeeRespVO.java
@@ -122,6 +122,16 @@ @ExcelProperty("åºæ¬å·¥èµ") private BigDecimal baseSalary; /** * å²ä½å·¥èµ */ private BigDecimal postSalary; /** * å·¥é¾å·¥èµ */ private BigDecimal senioritySalary; @Schema(description = "è§è²IDå表") private List<Long> roleIds; yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/employee/vo/HrmEmployeeSaveReqVO.java
@@ -93,6 +93,16 @@ @Schema(description = "åºæ¬å·¥èµ", example = "10000.00") private BigDecimal baseSalary; /** * å²ä½å·¥èµ */ private BigDecimal postSalary; /** * å·¥é¾å·¥èµ */ private BigDecimal senioritySalary; @Schema(description = "è§è²IDå表", example = "[1, 2]") private List<Long> roleIds; yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/vo/HrmSalaryCalculationRespVO.java
@@ -45,6 +45,14 @@ @ExcelProperty("åºæ¬å·¥èµ") private BigDecimal baseSalary; @Schema(description = "å²ä½å·¥èµ") @ExcelProperty("å²ä½å·¥èµ") private BigDecimal postSalary; @Schema(description = "å·¥é¾å·¥èµ") @ExcelProperty("å·¥é¾å·¥èµ") private BigDecimal senioritySalary; @Schema(description = "绩æå·¥èµ") @ExcelProperty("绩æå·¥èµ") private BigDecimal performanceSalary; yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/dal/dataobject/employee/HrmEmployeeDO.java
@@ -167,6 +167,16 @@ private BigDecimal baseSalary; /** * å²ä½å·¥èµ */ private BigDecimal postSalary; /** * å·¥é¾å·¥èµ */ private BigDecimal senioritySalary; /** * è§è²IDå表 * * ç¨äºåé ç³»ç»ç¨æ·è§è²ï¼JSON æ ¼å¼åå¨ yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/dal/dataobject/salary/HrmEmployeeSalaryDO.java
@@ -48,6 +48,16 @@ private BigDecimal baseSalary; /** * å²ä½å·¥èµ */ private BigDecimal postSalary; /** * å·¥é¾å·¥èµ */ private BigDecimal senioritySalary; /** * 绩æå·¥èµ */ private BigDecimal performanceSalary; yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/dal/dataobject/salary/HrmSalaryCalculationDO.java
@@ -58,6 +58,16 @@ private BigDecimal baseSalary; /** * å²ä½å·¥èµ */ private BigDecimal postSalary; /** * å·¥é¾å·¥èµ */ private BigDecimal senioritySalary; /** * 绩æå·¥èµ */ private BigDecimal performanceSalary; yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/salary/HrmSalaryCalculationServiceImpl.java
@@ -239,6 +239,9 @@ // é¿å å工信æ¯ä¸èªé ¬æ¡£æ¡ä¸ä¸è´æ¶ï¼æ ¸ç®ç»æä¸å工档æ¡å¯¹ä¸ä¸ï¼ 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; @@ -251,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) @@ -310,6 +313,8 @@ .deptId(employee.getDeptId()) .baseSalary(baseSalary) .performanceSalary(performanceSalary) .postSalary(postSalary) .senioritySalary(senioritySalary) .overtimePay(overtimePay) .mealAllowance(mealAllowance) .transportAllowance(transportAllowance) @@ -689,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()));