fix(人力): 在职员工台账默认不再按合同到期日过滤(可显示全部在职员工);入职同步写入入职日期;修复离职状态过滤失效
已添加1个文件
已修改2个文件
31 ■■■■■ 文件已修改
doc/sql/rlzyxt_staff_ddl.sql 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/staff/StaffOnJobMapper.xml 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
doc/sql/rlzyxt_staff_ddl.sql
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
-- ============================================================
-- ç é¼Ž-人力资源系统(10.136.62.70 / mis-ruoyi)补列脚本
-- å¯¹åº”实体已声明但库中缺失的字段(芯导 72 æ›¾æ‰§è¡Œè¿‡ï¼Œç é¼Žåº“未执行)
-- æ‰§è¡Œï¼šmysql -uroot -p'***' mis-ruoyi < rlzyxt_staff_ddl.sql
-- ============================================================
-- 1. åœ¨èŒå‘˜å·¥å°è´¦ï¼šå…¥èŒæ—¶é—´ã€è–ªèµ„
ALTER TABLE `staff_on_job`
  ADD COLUMN `entry_date` date DEFAULT NULL COMMENT '入职时间' AFTER `contract_expire_time`,
  ADD COLUMN `salary` decimal(10,2) DEFAULT NULL COMMENT '薪资' AFTER `entry_date`;
-- 2. æ–°å¢žå…¥èŒ/离职:离职日期、离职原因、交接情况
ALTER TABLE `staff_join_leave_record`
  ADD COLUMN `leave_date` date DEFAULT NULL COMMENT '离职日期' AFTER `contract_end_time`,
  ADD COLUMN `leave_reason` varchar(255) DEFAULT NULL COMMENT '离职原因' AFTER `leave_date`,
  ADD COLUMN `handover_info` varchar(500) DEFAULT NULL COMMENT '交接情况' AFTER `leave_reason`;
src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java
@@ -58,14 +58,23 @@
            if (staffOnJobs.size()>0){
                StaffOnJob staffOnJob = staffOnJobs.get(0);
                //先比较到期日期,这里选用到期日期最久的
                if (staffJoinLeaveRecord.getContractEndTime().compareTo(staffOnJob.getContractExpireTime())>0) {
                if (staffJoinLeaveRecord.getContractEndTime() != null
                        && (staffOnJob.getContractExpireTime() == null
                        || staffJoinLeaveRecord.getContractEndTime().compareTo(staffOnJob.getContractExpireTime())>0)) {
                    BeanUtils.copyProperties(staffJoinLeaveRecord,staffOnJob,ignoreProperties);
                    staffOnJob.setContractExpireTime(staffJoinLeaveRecord.getContractEndTime());
                    //入职日期字段名不同(contractStartTime -> entryDate),BeanUtils æ‹·ä¸è¿‡æ¥ï¼Œéœ€æ‰‹åŠ¨èµ‹å€¼
                    if (staffJoinLeaveRecord.getContractStartTime() != null) {
                        staffOnJob.setEntryDate(staffJoinLeaveRecord.getContractStartTime());
                    }
                    staffOnJobMapper.updateById(staffOnJob);
                }
            }else {
                StaffOnJob staffOnJob = new StaffOnJob();
                BeanUtils.copyProperties(staffJoinLeaveRecord,staffOnJob,ignoreProperties);
                staffOnJob.setContractExpireTime(staffJoinLeaveRecord.getContractEndTime());
                //入职日期同步到台账,保证台账“入职时间”列有值
                staffOnJob.setEntryDate(staffJoinLeaveRecord.getContractStartTime());
                staffOnJobMapper.insert(staffOnJob);
            }
        }else {
src/main/resources/mapper/staff/StaffOnJobMapper.xml
@@ -6,7 +6,7 @@
        *
        FROM staff_on_job
        where 1=1
        <if test="staffOnJob.staffState != null and staffOnJob.staffState != '' ">
        <if test="staffOnJob.staffState != null">
        AND staff_state = #{staffOnJob.staffState}
        </if>
        <if test="staffOnJob.staffName != null and staffOnJob.staffName != '' ">
@@ -24,7 +24,7 @@
        *
        FROM staff_on_job
        where 1=1
        <if test="staffOnJob.staffState != null and staffOnJob.staffState != '' ">
        <if test="staffOnJob.staffState != null">
            AND staff_state = #{staffOnJob.staffState}
        </if>
        <if test="staffOnJob.staffName != null and staffOnJob.staffName != '' ">