package com.ruoyi.web.controller.system; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.domain.SysOperateType; import com.ruoyi.system.domain.req.OperateTypeEditReqDTO; import com.ruoyi.system.domain.req.OperateTypeListReqDTO; import com.ruoyi.system.domain.req.OperateTypeAddReqDTO; import com.ruoyi.system.service.SysOperateTypeService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; import static com.ruoyi.common.core.domain.AjaxResult.error; import static com.ruoyi.common.core.domain.AjaxResult.success; /** * @author hz * @since 2023-09-07 17:10:06 */ @Api(tags = "获取作业类型与操作管理接口") @RestController @RequestMapping("/system/operateType") public class SysOperateTypeController extends BaseController { /** * 服务对象 */ @Resource private SysOperateTypeService sysOperateTypeService; /** * 获取作业类型列表 */ @ApiOperation(value = "获取作业类型列表",httpMethod = "POST") @ApiImplicitParams({ @ApiImplicitParam(name = "name", dataTypeClass = String.class,value = "作业类型名称"), }) @PostMapping("/list") public AjaxResult list(@RequestBody OperateTypeListReqDTO reqDTO) { List operateTypes = sysOperateTypeService.selectOperateTypeList(reqDTO); return success(operateTypes); } /** * 根据作业类型编号获取详细信息 */ @ApiOperation(value = "获取操作类型信息",httpMethod = "GET") @ApiImplicitParam(name = "operateTypeId",dataTypeClass = Long.class,value = "操作类型id",required = true) @GetMapping(value = "/getInfoById/{id}") public AjaxResult getInfo(@PathVariable Long id) { return success(sysOperateTypeService.selectOperateTypeById(id)); } /** * 新增作业类型 */ @PostMapping("/add") @Log(title = "作业类型管理", businessType = BusinessType.INSERT) @ApiOperation(value = "新增作业类型",httpMethod = "POST") @ApiImplicitParams({ @ApiImplicitParam(name = "parentId",dataTypeClass = Long.class, value = "父作业类型id",required = true), @ApiImplicitParam(name = "code", dataTypeClass = String.class,value = "作业类型代码",required = true), @ApiImplicitParam(name = "name", dataTypeClass = String.class,value = "作业类型名称",required = true), }) public AjaxResult add(@Validated @RequestBody OperateTypeAddReqDTO type) { if (!sysOperateTypeService.checkOperateTypeNameUnique(type.getName(),type.getParentId())) { return error("新增作业类型'" + type.getName() + "'失败,作业类型名称已存在"); } return toAjax(sysOperateTypeService.insertOperateType(type)); } /** * 修改作业类型 */ @Log(title = "作业类型管理", businessType = BusinessType.UPDATE) @PostMapping("/edit") @ApiOperation(value = "修改作业类型",httpMethod = "POST") @ApiImplicitParams({ @ApiImplicitParam(name = "id", dataTypeClass = Long.class,value = "作业类型id",required = true), @ApiImplicitParam(name = "parentId", dataTypeClass = Long.class,value = "父作业类型id",required = true), @ApiImplicitParam(name = "code", dataTypeClass = String.class,value = "作业类型代码",required = true), @ApiImplicitParam(name = "name", dataTypeClass = String.class,value = "作业类型名称",required = true), }) public AjaxResult edit(@Validated @RequestBody OperateTypeEditReqDTO reqDTO) { Long id = reqDTO.getId(); if (!sysOperateTypeService.checkOperateTypeNameUnique(reqDTO.getName(),reqDTO.getParentId())) { return error("修改作业类型'" + reqDTO.getName() + "'失败,作业类型名称已存在"); } else if (reqDTO.getParentId().equals(id)) { return error("修改作业类型'" + reqDTO.getName() + "'失败,上级作业类型不能是自己"); } return toAjax(sysOperateTypeService.updateOperateType(reqDTO)); } /** * 删除作业类型 */ @Log(title = "作业类型管理", businessType = BusinessType.DELETE) @GetMapping("/removeById/{id}") @ApiOperation(value = "删除操作类型信息",httpMethod = "GET") @ApiImplicitParam(name = "id",dataTypeClass = Long.class,value = "操作类型id",required = true) public AjaxResult remove(@PathVariable Long id) { if (sysOperateTypeService.hasChildByOperateTypeId(id)) { return warn("存在下级作业类型,不允许删除"); } // TODO (HZ,2023/9/11 9:31,后面完善 由于不知道和哪些表关联) //if (sysOperateTypeService.checkDeptExistUser(deptId)) //{ // return warn("作业类型存在用户,不允许删除"); //} return toAjax(sysOperateTypeService.deleteOperateTypeById(id)); } }