yuan
3 天以前 7fb7b39bedae57a957be706bc9b866d89f7316f2
src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
@@ -127,15 +127,25 @@
            throw new BaseException("编号为"+staffOnJobParams.getStaffNo()+"的员工不存在,无法更新!!!");
        }
        String[] ignoreProperties = {"id"};//排除更新属性
        // 获取最新合同数据,并且更新
        StaffContract contract = staffContractMapper.selectOne(Wrappers.<StaffContract>lambdaQuery()
                .eq(StaffContract::getStaffOnJobId, id)
                .last("limit 1")
                .orderByDesc(StaffContract::getId));
        if (contract != null){
            BeanUtils.copyProperties(staffOnJobParams,contract,ignoreProperties);
        boolean hasContractData = staffOnJobParams.getContractTerm() != null
                || staffOnJobParams.getContractStartTime() != null
                || staffOnJobParams.getContractEndTime() != null;
        if (contract == null && hasContractData) {
            contract = new StaffContract();
            contract.setStaffOnJobId(id);
            contract.setContractTerm(staffOnJobParams.getContractTerm());
            contract.setContractStartTime(staffOnJobParams.getContractStartTime());
            contract.setContractEndTime(staffOnJobParams.getContractEndTime());
            staffContractMapper.insert(contract);
        } else if (contract != null) {
            contract.setContractTerm(staffOnJobParams.getContractTerm());
            contract.setContractStartTime(staffOnJobParams.getContractStartTime());
            contract.setContractEndTime(staffOnJobParams.getContractEndTime());
            staffContractMapper.updateById(contract);
        }
@@ -145,6 +155,7 @@
        bingingStaffOnJobExtra(id,staffOnJobParams);
        // 更新员工数据
        syncStudyInfoFromEducation(staffOnJobParams);
        staffOnJobParams.setId(id);
        staffOnJobParams.setContractExpireTime(staffOnJobParams.getContractEndTime());
        return staffOnJobMapper.updateById(staffOnJobParams);
    }
@@ -333,8 +344,16 @@
            // 获取所有角色数据
            List<SysRole> sysRoles = sysRoleMapper.selectRoleAll();
            staffOnJobs.forEach(staffOnJob -> {
                if (staffOnJob.getStaffNo() == null || staffOnJob.getStaffNo().trim().isEmpty()) {
                    throw new BaseException("员工编号不能为空,员工姓名:" + staffOnJob.getStaffName());
                }
                StaffOnJobDto staffOnJobDto = new StaffOnJobDto();
                BeanUtils.copyProperties(staffOnJob, staffOnJobDto);
                staffOnJobDto.setContractStartTime(staffOnJob.getContractStartTime());
                staffOnJobDto.setContractEndTime(staffOnJob.getContractEndTime());
                staffOnJobDto.setContractTerm(staffOnJob.getContractTerm());
                staffOnJobDto.setStaffNo(staffOnJob.getStaffNo());
                staffOnJobDto.setStaffName(staffOnJob.getStaffName());
                // 通过名称获取部门id
                staffOnJobDto.setSysDeptId(// ... existing code ...
                        sysDepts.stream()