| | |
| | | |
| | | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; |
| | | import cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeeContractImportExcelVO; |
| | | import cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeeContractImportReqVO; |
| | | import cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeeContractImportRespVO; |
| | | import cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeeContractPageReqVO; |
| | | import cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeeContractRespVO; |
| | | import cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeeContractSaveReqVO; |
| | |
| | | import io.swagger.v3.oas.annotations.Parameter; |
| | | import io.swagger.v3.oas.annotations.tags.Tag; |
| | | import jakarta.annotation.Resource; |
| | | import jakarta.servlet.http.HttpServletResponse; |
| | | import jakarta.validation.Valid; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.io.IOException; |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDate; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | |
| | | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| | | |
| | |
| | | return success(contractService.getExpiringCount()); |
| | | } |
| | | |
| | | @GetMapping("/import-template") |
| | | @Operation(summary = "下载员工合同导入模板") |
| | | @PreAuthorize("@ss.hasPermission('hrm:employee-contract:import')") |
| | | public void importTemplate(HttpServletResponse response) throws IOException { |
| | | // 输出示例数据,方便使用者参考。合同类型/期限类型按字典中文填写 |
| | | List<HrmEmployeeContractImportExcelVO> list = Arrays.asList( |
| | | HrmEmployeeContractImportExcelVO.builder().name("张三").contractType(1).contractTermType(1) |
| | | .signCompany("南通XX科技有限公司").signDate(LocalDate.of(2026, 1, 1)) |
| | | .startDate(LocalDate.of(2026, 1, 1)).endDate(LocalDate.of(2028, 12, 31)) |
| | | .probationStartDate(LocalDate.of(2026, 1, 1)).probationEndDate(LocalDate.of(2026, 6, 30)) |
| | | .probationSalary(new BigDecimal("8000.00")).regularSalary(new BigDecimal("10000.00")) |
| | | .remark("示例:请按实际修改后导入").build() |
| | | ); |
| | | ExcelUtils.write(response, "员工合同导入模板.xls", "员工合同", HrmEmployeeContractImportExcelVO.class, list); |
| | | } |
| | | |
| | | @PostMapping("/import") |
| | | @Operation(summary = "导入员工合同", description = "按员工姓名 + 合同类型 + 合同开始日期判定;已存在且开启“已存在时更新”则覆盖更新该行") |
| | | @PreAuthorize("@ss.hasPermission('hrm:employee-contract:import')") |
| | | public CommonResult<HrmEmployeeContractImportRespVO> importExcel(@Valid HrmEmployeeContractImportReqVO importReqVO) |
| | | throws Exception { |
| | | List<HrmEmployeeContractImportExcelVO> list = ExcelUtils.read(importReqVO.getFile(), |
| | | HrmEmployeeContractImportExcelVO.class); |
| | | return success(contractService.importContractList(list, importReqVO)); |
| | | } |
| | | |
| | | } |