package com.ruoyi.inspect.controller; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.Result; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.inspect.pojo.StaffCompetencyInspectItemConfig; import com.ruoyi.inspect.service.StaffCompetencyInspectItemConfigService; import io.swagger.annotations.Api; import org.apache.commons.lang3.ArrayUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 人员能力-检验项配置 */ @Api("人员能力-检验项配置") @RestController @RequestMapping("/staffCompetencyInspectItemConfig") public class StaffCompetencyInspectItemConfigController { @Autowired private StaffCompetencyInspectItemConfigService configService; /** * 获取检验项点列表 */ @GetMapping("/list") public Result list(StaffCompetencyInspectItemConfig config) { List configs = configService.selectConfigList(config); return Result.success(configs); } /** * 查询检验项点列表(排除节点) */ @GetMapping("/list/exclude/{configId}") public Result excludeChild(@PathVariable(value = "configId", required = false) Long configId) { StaffCompetencyInspectItemConfig itemConfig = new StaffCompetencyInspectItemConfig(); itemConfig.setIsEnable(Boolean.TRUE); List configs = configService.selectConfigList(itemConfig); configs.removeIf(c -> c.getParentId().intValue() == configId || ArrayUtils.contains(StringUtils.split(c.getAncestors(), ","), configId + "")); return Result.success(configs); } /** * 根据检验项点编号获取详细信息 */ @GetMapping(value = "/{configId}") public Result getInfo(@PathVariable Long configId) { return Result.success(configService.selectConfigById(configId)); } /** * 新增检验项点 */ @Log(title = "人员能力-检验项配置", businessType = BusinessType.INSERT) @PostMapping public Result add(@Validated @RequestBody StaffCompetencyInspectItemConfig config) { if (!configService.checkItemNameUnique(config)) { return Result.fail("新增检验项点'" + config.getItemName() + "'失败,项点名称已存在"); } return Result.success(configService.insertConfig(config)); } /** * 修改检验项点 */ @Log(title = "人员能力-检验项配置", businessType = BusinessType.UPDATE) @PutMapping public Result edit(@Validated @RequestBody StaffCompetencyInspectItemConfig config) { Long configId = config.getId(); if (!configService.checkItemNameUnique(config)) { return Result.fail("修改检验项点'" + config.getItemName() + "'失败,项点名称已存在"); } else if (config.getParentId().equals(configId)) { return Result.fail("修改检验项点'" + config.getItemName() + "'失败,上级项点不能是自己"); } else if (!config.getIsEnable() && configService.selectNormalChildrenConfigById(configId) > 0) { return Result.fail("该检验项点包含未停用的子项点!"); } return Result.success(configService.updateConfig(config)); } /** * 删除部门 */ @Log(title = "人员能力-检验项配置", businessType = BusinessType.DELETE) @DeleteMapping("/{configId}") public Result remove(@PathVariable Long configId) { if (configService.hasChildByConfigId(configId)) { return Result.fail("存在下级检验项点,不允许删除"); } return Result.success(configService.deleteConfigById(configId)); } }