| ¶Ô±ÈÐÂÎļþ |
| | |
| | | -- ===================================================================== |
| | | -- åè½ï¼èªé
¬æ ¸ç® ââ å
¨å¤å¥æ¯æå·¥èµè¡¨è¡å
è°æ´ |
| | | -- æ¥æï¼2026-09-18 |
| | | -- 忝ï¼dev_天津_ç®èä¹å¨ |
| | | -- |
| | | -- ãéè¦è¯´æã |
| | | -- æ¬åè½ä¸ºçº¯ä»£ç 屿¹å¨ï¼ |
| | | -- å端 formDia.vueï¼å
¨å¤å¥åæ¾å¼ç¼è¾ + 宿¶éç®ï¼ |
| | | -- å端 SchemeApplicableStaffServiceImpl.resolveAttendanceBonusï¼ä¼å
åè¡å
ä¼ å
¥å¼ï¼ |
| | | -- æä¾èµç attendance_bonus åæ®µå¨ä¸¤ä¸ªè¡¨ä¸ãæ¬æ¥å°±å·²åå¨ãï¼ |
| | | -- å æ¤å¨æ åç¯å¢ä¸ãæ éæ§è¡ä»»ä½æ°æ®åºåæ´ãï¼ç´æ¥é¨ç½²åå端代ç å³å¯ã |
| | | -- |
| | | -- æ¬èæ¬ç¨äºï¼ç®æ ç¯å¢ï¼å¦å®¢æ·ç°åºåºãæ§çæ¬åºï¼ç¼ºå°è¯¥å段æ¶å®å
¨è¡¥é½ã |
| | | -- èæ¬å¯é夿§è¡ï¼å·²åå¨åèªå¨è·³è¿ï¼ä¸ä¼æ¥éã |
| | | -- |
| | | -- æ¶åè¡¨ï¼ |
| | | -- staff_on_job.attendance_bonus å工档æ¡å
¨å¤å¥ï¼NOT NULL é»è®¤ 100.00ï¼ |
| | | -- staff_salary_detail.attendance_bonus å·¥èµæç»å
¨å¤å¥ï¼NOT NULL é»è®¤ 100.00ï¼ |
| | | -- ===================================================================== |
| | | |
| | | -- --------------------------------------------------------------------- |
| | | -- 1. æ§è¡åèªæ£ï¼æ¥çä¸¤ä¸ªåæ®µçç°ç¶ |
| | | -- --------------------------------------------------------------------- |
| | | SELECT table_name AS 表å, |
| | | column_name AS åæ®µå, |
| | | column_type AS ç±»å, |
| | | is_nullable AS å¯ç©º, |
| | | column_default AS é»è®¤å¼, |
| | | column_comment AS 注é |
| | | FROM information_schema.columns |
| | | WHERE table_schema = DATABASE() |
| | | AND table_name IN ('staff_on_job', 'staff_salary_detail') |
| | | AND column_name = 'attendance_bonus'; |
| | | |
| | | -- --------------------------------------------------------------------- |
| | | -- 2. å¹çè¡¥é½å段ï¼å段已åå¨åè·³è¿ï¼ |
| | | -- 注æï¼DELIMITER æ¯å®¢æ·ç«¯æä»¤ï¼Navicat / DBeaver / mysql CLI 忝æï¼ |
| | | -- è¥ç¨ä¸æ¯æ DELIMITER çå·¥å
·ï¼è¯·åªæ§è¡å
¶ä¸ç¼ºå¤±ç飿¡ ALTERã |
| | | -- --------------------------------------------------------------------- |
| | | DROP PROCEDURE IF EXISTS sp_add_attendance_bonus; |
| | | |
| | | DELIMITER $$ |
| | | CREATE PROCEDURE sp_add_attendance_bonus() |
| | | BEGIN |
| | | IF NOT EXISTS (SELECT 1 FROM information_schema.columns |
| | | WHERE table_schema = DATABASE() |
| | | AND table_name = 'staff_on_job' |
| | | AND column_name = 'attendance_bonus') THEN |
| | | ALTER TABLE staff_on_job |
| | | ADD COLUMN attendance_bonus DECIMAL(10,2) NOT NULL DEFAULT 100.00 COMMENT 'å
¨å¤å¥é'; |
| | | END IF; |
| | | |
| | | IF NOT EXISTS (SELECT 1 FROM information_schema.columns |
| | | WHERE table_schema = DATABASE() |
| | | AND table_name = 'staff_salary_detail' |
| | | AND column_name = 'attendance_bonus') THEN |
| | | ALTER TABLE staff_salary_detail |
| | | ADD COLUMN attendance_bonus DECIMAL(10,2) NOT NULL DEFAULT 100.00 COMMENT 'å
¨å¤å¥é'; |
| | | END IF; |
| | | END$$ |
| | | DELIMITER ; |
| | | |
| | | CALL sp_add_attendance_bonus(); |
| | | DROP PROCEDURE sp_add_attendance_bonus; |
| | | |
| | | -- --------------------------------------------------------------------- |
| | | -- 3. å岿°æ®å
åºï¼å¯éï¼ |
| | | -- ä»
å½ç®æ ç¯å¢è¯¥å段å
许 NULL ä¸åå¨ NULL 弿¶ï¼æéè¦æ§è¡ä¸é¢ä¸¤æ¡ï¼ |
| | | -- æ åç¯å¢ä¸å段为 NOT NULL é»è®¤ 100ï¼æ éæ§è¡ã |
| | | -- --------------------------------------------------------------------- |
| | | -- UPDATE staff_on_job SET attendance_bonus = 100.00 WHERE attendance_bonus IS NULL; |
| | | -- UPDATE staff_salary_detail SET attendance_bonus = 100.00 WHERE attendance_bonus IS NULL; |
| | | |
| | | -- --------------------------------------------------------------------- |
| | | -- 4. æ§è¡åéªè¯ï¼åºè½çå°ä¸¤è¡è®°å½ï¼ç±»å decimal(10,2)ãé»è®¤å¼ 100.00 |
| | | -- --------------------------------------------------------------------- |
| | | SELECT table_name AS 表å, |
| | | column_name AS åæ®µå, |
| | | column_type AS ç±»å, |
| | | is_nullable AS å¯ç©º, |
| | | column_default AS é»è®¤å¼, |
| | | column_comment AS 注é |
| | | FROM information_schema.columns |
| | | WHERE table_schema = DATABASE() |
| | | AND table_name IN ('staff_on_job', 'staff_salary_detail') |
| | | AND column_name = 'attendance_bonus'; |
| | | |
| | | -- ===================================================================== |
| | | -- éï¼æ¬æ¬¡åè½çè¡ä¸ºè¯´æï¼æ éæ§è¡ SQLï¼ä»
夿¥ï¼ |
| | | -- åºåå计 = å
¨å¤å¥ + åºæ¬å·¥èµ à æç(æååæ°) + 津贴 + å
¶ä»æ¶å
¥ |
| | | -- å
¨å¤å¥åå¼ä¼å
级ï¼å·¥èµè¡¨è¡å
ä¼ å
¥å¼ï¼æ¯æ 0ï¼ > åå·¥æ¡£æ¡ staff_on_job.attendance_bonus |
| | | -- ===================================================================== |