package cn.iocoder.yudao.module.hrm.controller.admin.salary; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.hrm.controller.admin.salary.vo.HrmSalaryStructureRespVO; import cn.iocoder.yudao.module.hrm.controller.admin.salary.vo.HrmSalaryStructureSaveReqVO; import cn.iocoder.yudao.module.hrm.dal.dataobject.salary.HrmSalaryStructureDO; import cn.iocoder.yudao.module.hrm.service.salary.HrmSalaryStructureService; 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.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.List; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - HRM 薪酬结构") @RestController @RequestMapping("/hrm/salary/structure") @Validated public class HrmSalaryStructureController { @Resource private HrmSalaryStructureService salaryStructureService; @PostMapping("/create") @Operation(summary = "创建薪酬结构") @PreAuthorize("@ss.hasPermission('hrm:salary-structure:create')") public CommonResult createSalaryStructure(@Valid @RequestBody HrmSalaryStructureSaveReqVO reqVO) { return success(salaryStructureService.createSalaryStructure( BeanUtils.toBean(reqVO, HrmSalaryStructureDO.class))); } @PutMapping("/update") @Operation(summary = "更新薪酬结构") @PreAuthorize("@ss.hasPermission('hrm:salary-structure:update')") public CommonResult updateSalaryStructure(@Valid @RequestBody HrmSalaryStructureSaveReqVO reqVO) { salaryStructureService.updateSalaryStructure(BeanUtils.toBean(reqVO, HrmSalaryStructureDO.class)); return success(true); } @DeleteMapping("/delete") @Operation(summary = "删除薪酬结构") @Parameter(name = "id", description = "结构编号", required = true) @PreAuthorize("@ss.hasPermission('hrm:salary-structure:delete')") public CommonResult deleteSalaryStructure(@RequestParam("id") Long id) { salaryStructureService.deleteSalaryStructure(id); return success(true); } @GetMapping("/get") @Operation(summary = "获得薪酬结构") @PreAuthorize("@ss.hasPermission('hrm:salary-structure:query')") public CommonResult getSalaryStructure(@RequestParam("id") Long id) { return success(BeanUtils.toBean(salaryStructureService.getSalaryStructure(id), HrmSalaryStructureRespVO.class)); } @GetMapping("/list") @Operation(summary = "获得薪酬结构列表") @PreAuthorize("@ss.hasPermission('hrm:salary-structure:query')") public CommonResult> getSalaryStructureList( @RequestParam(value = "name", required = false) String name, @RequestParam(value = "status", required = false) Integer status) { return success(BeanUtils.toBean(salaryStructureService.getSalaryStructureList(name, status), HrmSalaryStructureRespVO.class)); } }