package cn.iocoder.yudao.module.hrm.controller.admin.employee; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; 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 cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeeContractTerminateReqVO; import cn.iocoder.yudao.module.hrm.service.employee.HrmEmployeeContractService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import jakarta.validation.Valid; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - HRM 员工合同") @RestController @RequestMapping("/hrm/employee-contract") @Validated public class HrmEmployeeContractController { @Resource private HrmEmployeeContractService contractService; @PostMapping("/create") @Operation(summary = "创建员工合同") @PreAuthorize("@ss.hasPermission('hrm:employee-contract:create')") public CommonResult createContract(@Valid @RequestBody HrmEmployeeContractSaveReqVO createReqVO) { return success(contractService.createContract(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新员工合同") @PreAuthorize("@ss.hasPermission('hrm:employee-contract:update')") public CommonResult updateContract(@Valid @RequestBody HrmEmployeeContractSaveReqVO updateReqVO) { contractService.updateContract(updateReqVO); return success(true); } @PutMapping("/terminate") @Operation(summary = "解除/终止员工合同") @PreAuthorize("@ss.hasPermission('hrm:employee-contract:update')") public CommonResult terminateContract(@Valid @RequestBody HrmEmployeeContractTerminateReqVO reqVO) { contractService.terminateContract(reqVO); return success(true); } @DeleteMapping("/delete") @Operation(summary = "删除员工合同") @Parameter(name = "id", description = "合同ID", required = true) @PreAuthorize("@ss.hasPermission('hrm:employee-contract:delete')") public CommonResult deleteContract(@RequestParam("id") Long id) { contractService.deleteContract(id); return success(true); } @GetMapping("/get") @Operation(summary = "获得员工合同详情") @Parameter(name = "id", description = "合同ID", required = true) @PreAuthorize("@ss.hasPermission('hrm:employee-contract:query')") public CommonResult getContract(@RequestParam("id") Long id) { return success(contractService.getContract(id)); } @GetMapping("/page") @Operation(summary = "获得员工合同分页") @PreAuthorize("@ss.hasPermission('hrm:employee-contract:query')") public CommonResult> getContractPage(@Valid HrmEmployeeContractPageReqVO pageReqVO) { return success(contractService.getContractPage(pageReqVO)); } @GetMapping("/expiring-count") @Operation(summary = "获得即将到期合同数量", description = "供 HRM 待办/首页提醒使用") @PreAuthorize("@ss.hasPermission('hrm:employee-contract:query')") public CommonResult getExpiringCount() { return success(contractService.getExpiringCount()); } }