| | |
| | | package com.ruoyi.staff.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.common.exception.base.BaseException; |
| | | import com.ruoyi.common.utils.poi.ExcelUtil; |
| | | import com.ruoyi.staff.dto.StaffLeaveDto; |
| | | import com.ruoyi.staff.mapper.StaffLeaveMapper; |
| | | import com.ruoyi.staff.mapper.StaffOnJobMapper; |
| | | import com.ruoyi.staff.pojo.StaffOnJob; |
| | | import com.ruoyi.staff.service.StaffLeaveService; |
| | | import lombok.AllArgsConstructor; |
| | | import org.springframework.stereotype.Service; |
| | | import com.ruoyi.staff.pojo.StaffLeave; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.util.List; |
| | | |
| | | import static com.ruoyi.common.enums.StaffLeaveReason.StaffLeaveReasonOther; |
| | | |
| | | @AllArgsConstructor |
| | | @Service |
| | | public class StaffLeaveServiceImpl extends ServiceImpl<StaffLeaveMapper, StaffLeave> implements StaffLeaveService { |
| | | private StaffLeaveMapper staffLeaveMapper; |
| | | |
| | | private StaffOnJobMapper staffOnJobMapper; |
| | | |
| | | //新增离职列表分页查询 |
| | | @Override |
| | | public IPage<StaffLeaveDto> staffLeaveListPage(Page page, StaffLeaveDto staffLeaveDto) { |
| | | return staffLeaveMapper.staffLeaveListPage(page,staffLeaveDto); |
| | | } |
| | | |
| | | //新增离职 |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public int add(StaffLeaveDto staffLeaveDto) { |
| | | // 校验在职员工是否存在 |
| | | StaffOnJob staffOnJob = staffOnJobMapper.selectById(staffLeaveDto.getStaffOnJobId()); |
| | | if (staffOnJob == null) { |
| | | throw new IllegalArgumentException("员工不存在"); |
| | | } |
| | | |
| | | // 校验员工是否离职 |
| | | if (staffOnJob.getStaffState() == 0) { |
| | | throw new IllegalArgumentException("员工已离职"); |
| | | } |
| | | |
| | | // 新增离职记录 |
| | | StaffLeave staffLeave = new StaffLeave(); |
| | | staffLeave.setStaffOnJobId(staffLeaveDto.getStaffOnJobId()); |
| | | String reason = staffLeaveDto.getReason(); |
| | | if (!StaffLeaveReasonOther.getCode().equals(reason)){ |
| | | staffLeave.setRemark(""); |
| | | } |
| | | staffLeaveMapper.insert(staffLeave); |
| | | |
| | | // 更新离职状态为离职 |
| | | staffOnJob.setStaffState(0); |
| | | return staffOnJobMapper.updateById(staffOnJob); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public int update(Long id, StaffLeaveDto staffLeaveDto) { |
| | | // 判断对象是否存在 |
| | | StaffLeave leave = staffLeaveMapper.selectById(id); |
| | | if (leave == null){ |
| | | throw new BaseException("该离职记录不存在,无法更新!!!"); |
| | | } |
| | | |
| | | String reason = staffLeaveDto.getReason(); |
| | | leave.setReason(reason); |
| | | // 校验离职原因是否为其他,如果是其他,备注赋值 |
| | | if (StaffLeaveReasonOther.getCode().equals(reason)){ |
| | | leave.setRemark(staffLeaveDto.getRemark()); |
| | | } else { |
| | | leave.setRemark(""); |
| | | } |
| | | return staffLeaveMapper.updateById(leave); |
| | | } |
| | | |
| | | //删除离职 |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public int del(List<Integer> ids) { |
| | | // 删除离职数据 |
| | | return staffLeaveMapper.deleteBatchIds(ids); |
| | | } |
| | | |
| | | //导出 |
| | | @Override |
| | | public void export(HttpServletResponse response, StaffLeaveDto staffLeaveDto) { |
| | | List<StaffLeaveDto> staffLeaves =staffLeaveMapper.staffLeaveList(staffLeaveDto); |
| | | ExcelUtil<StaffLeaveDto> util = new ExcelUtil<StaffLeaveDto>(StaffLeaveDto.class); |
| | | util.exportExcel(response, staffLeaves, "员工离职导出"); |
| | | } |
| | | |
| | | } |
| | | |