package com.ruoyi.staff.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; import com.ruoyi.framework.web.controller.BaseController; import com.ruoyi.framework.web.domain.R; import com.ruoyi.staff.dto.StaffOnJobDto; import com.ruoyi.staff.dto.StaffOnJobExcelDto; import com.ruoyi.staff.pojo.StaffContract; import com.ruoyi.staff.pojo.StaffOnJob; import com.ruoyi.staff.service.IStaffOnJobService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletResponse; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.util.List; /** * 员工台账/合同管理 */ @RestController @RequestMapping("/staff/staffOnJob") @Tag(name = "员工台账") public class StaffOnJobController extends BaseController { @Resource private IStaffOnJobService staffOnJobService; /** * 在职员工台账分页查询 * @param page * @param staffOnJob * @return */ @GetMapping("/listPage") public R staffOnJobListPage(Page page, StaffOnJob staffOnJob) { return R.ok(staffOnJobService.staffOnJobListPage(page, staffOnJob)); } /** * 在职员工下拉(新增离职用) * @return */ @GetMapping("/list") public R staffOnJobList(StaffOnJob staffOnJob) { return R.ok(staffOnJobService.staffOnJobList(staffOnJob)); } /** * 新增入职 * @param staffOnJob * @return */ @PostMapping("") public R add(@RequestBody StaffOnJobDto staffOnJob) { return R.ok(staffOnJobService.add(staffOnJob)); } /** * 更新入职信息 * @param staffOnJobDto * @return */ @PutMapping("/{id}") public R update(@PathVariable("id") Long id, @RequestBody StaffOnJobDto staffOnJobDto) { return R.ok(staffOnJobService.update(id, staffOnJobDto)); } /** * 删除入职 * @param ids * @return */ @DeleteMapping("/del") public R delStaffOnJobs(@RequestBody List ids) { if(CollectionUtils.isEmpty(ids)){ return R.fail("请选择至少一条数据"); } return R.ok(staffOnJobService.delStaffOnJobs(ids)); } /** * 在职员工详情 * @param id * @return */ @GetMapping("/{id}") public R staffOnJobDetail(@PathVariable("id") Long id) { return R.ok(staffOnJobService.staffOnJobDetail(id)); } /** * 续签合同 * @param id * @param staffContract * @return */ @PostMapping("/renewContract/{id}") public R renewContract(@PathVariable Long id, @RequestBody StaffContract staffContract) { return R.ok(staffOnJobService.renewContract(id, staffContract)); } @Operation(summary = "下载模板") @PostMapping("/downloadTemplate") public void downloadTemplate(HttpServletResponse response) { ExcelUtil util = new ExcelUtil<>(StaffOnJobExcelDto.class); util.importTemplateExcel(response, "在职员工模板"); } /** * 在职员工导入 */ @PostMapping("/import") @Log(title = "在职员工导入", businessType = BusinessType.IMPORT) public R importData(@RequestPart("file") MultipartFile file) { Boolean b = staffOnJobService.importData(file); if (b) { return R.ok(null, "导入成功"); } return R.fail("导入失败"); } /** * 在职员工导出 * @param response * @param staffOnJob */ @PostMapping("/export") public void staffOnJobExport(HttpServletResponse response,StaffOnJob staffOnJob) { staffOnJobService.staffOnJobExport(response, staffOnJob); } /** * word模板合同在职员工导出 * @param response * @param staffOnJob */ @PostMapping("/exportCopy") @Operation(summary = "word模板合同在职员工导出") public R exportCopy(HttpServletResponse response,@RequestBody StaffOnJob staffOnJob) throws Exception{ return R.ok(staffOnJobService.exportCopy(response, staffOnJob)); } }