package com.ruoyi.web.controller.oa;
import java.util.List;
import java.util.Arrays;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.common.enums.EquipmentLog;
import com.ruoyi.common.enums.LogType;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.validate.QueryGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.oa.domain.vo.DevBatchVo;
import com.ruoyi.oa.domain.bo.DevBatchBo;
import com.ruoyi.oa.service.IDevBatchService;
import com.ruoyi.common.core.page.TableDataInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiOperation;
/**
* 生产批次Controller
*
* @author ruoyi
* @date 2021-12-05
*/
@Validated
@Api(value = "生产批次控制器", tags = {"生产批次管ç†"})
@RequiredArgsConstructor(onConstructor_ = @Autowired)
@RestController
@RequestMapping("/oa/batch")
public class DevBatchController extends BaseController {
private final IDevBatchService iDevBatchService;
/**
* 查询生产批次列表
*/
@ApiOperation("查询生产批次列表")
@PreAuthorize("@ss.hasPermi('oa:batch:list')")
@GetMapping("/list")
public TableDataInfo<DevBatchVo> list(@Validated(QueryGroup.class) DevBatchBo bo) {
return iDevBatchService.queryPageList(bo);
}
/**
* 生产批次下拉列表
*/
@ApiOperation("生产批次下拉列表")
@GetMapping("/select")
public AjaxResult selectList() {
return AjaxResult.success(iDevBatchService.list(new QueryWrapper<>()));
}
/**
* 导出生产批次列表
*/
@ApiOperation("导出生产批次列表")
@PreAuthorize("@ss.hasPermi('oa:batch:export')")
@Log(title = "生产批次", businessType = BusinessType.EXPORT)
@GetMapping("/export")
public void export(@Validated DevBatchBo bo, HttpServletResponse response) {
List<DevBatchVo> list = iDevBatchService.queryList(bo);
ExcelUtil.exportExcel(list, "生产批次", DevBatchVo.class, response);
}
/**
* 获å–生产批次详细信æ¯
*/
@ApiOperation("获å–生产批次详细信æ¯")
@PreAuthorize("@ss.hasPermi('oa:batch:query')")
@GetMapping("/{id}")
public AjaxResult<DevBatchVo> getInfo(@ApiParam("主键")
@NotNull(message = "主键ä¸èƒ½ä¸ºç©º")
@PathVariable("id") Long id) {
return AjaxResult.success(iDevBatchService.queryById(id));
}
/**
* 新增生产批次
*/
@ApiOperation("新增生产批次")
@PreAuthorize("@ss.hasPermi('oa:batch:add')")
@Log(title = "生产批次", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody DevBatchBo bo) {
return toAjax(iDevBatchService.insertByBo(bo) ? 1 : 0);
}
/**
* 修改生产批次
*/
@ApiOperation("修改生产批次")
@PreAuthorize("@ss.hasPermi('oa:batch:edit')")
@Log(title = "生产批次", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody DevBatchBo bo) {
return toAjax(iDevBatchService.updateByBo(bo) ? 1 : 0);
}
/**
* åˆ é™¤ç”Ÿäº§æ‰¹æ¬¡
*/
@ApiOperation("åˆ é™¤ç”Ÿäº§æ‰¹æ¬¡")
@PreAuthorize("@ss.hasPermi('oa:batch:remove')")
@Log(title = "生产批次" , businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult<Void> remove(@ApiParam("主键串")
@NotEmpty(message = "主键ä¸èƒ½ä¸ºç©º")
@PathVariable Long[] ids) {
return toAjax(iDevBatchService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
}
}