package org.jeecg.modules.maintenanceWork.controller;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.modules.dynamicStaticAnalysis.dto.AnalysisBatchSaveOrUpdateDTO;
import org.jeecg.modules.maintenanceWork.dto.WorkBatchDTO;
import org.jeecg.modules.maintenanceWork.dto.WorkBatchSaveOrUpdateDTO;
import org.jeecg.modules.maintenanceWork.entity.WorkBatch;
import org.jeecg.modules.maintenanceWork.service.IWorkBatchService;
import org.jeecg.modules.maintenanceWork.vo.WorkBatchVO;
import org.springframework.web.bind.annotation.*;

import org.jeecg.common.system.base.controller.JeecgController;

/**
 * <p>
 * 维修作业管理-作业计划批次管理表 前端控制器
 * </p>
 *
 * @author hkl
 * @since 2023-08-09
 */
@RestController
@RequestMapping("/maintenanceWork/workBatch")
@Api(tags = "维修作业管理-作业计划批次管理")
public class WorkBatchController extends JeecgController<WorkBatch, IWorkBatchService> {

    @AutoLog(value = "维修作业管理-作业计划批次管理-分页列表查询")
    @ApiOperation(value = "维修作业管理-作业计划批次管理-分页列表查询", notes = "维修作业管理-作业计划批次管理-分页列表查询")
    @GetMapping(value = "/listRecord")
    public Result<IPage<WorkBatchVO>> listRecord(@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                                 @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
                                                 WorkBatchDTO dto) {
        Page<WorkBatchVO> pageData = new Page<>(pageNo, pageSize);
        pageData = this.service.listRecord(pageData, dto);
        return Result.OK(pageData);
    }

    @AutoLog(value = "维修作业管理-作业计划批次管理-维修作业管理页面新增")
    @ApiOperation(value = "维修作业管理-作业计划批次管理-维修作业管理页面新增", notes = "维修作业管理-作业计划批次管理-维修作业管理页面新增")
    @PostMapping(value = "/saveRecord")
    public Result<String> saveRecord(@RequestBody WorkBatchSaveOrUpdateDTO dto) {

        this.service.saveRecord(dto);

        return Result.OK("操作成功");
    }


    @AutoLog(value = "维修作业管理-作业计划批次管理-维修作业管理页面更新")
    @ApiOperation(value = "维修作业管理-作业计划批次管理-维修作业管理页面更新", notes = "维修作业管理-作业计划批次管理-维修作业管理页面更新")
    @PostMapping(value = "/updateRecord")
    public Result<String> updateRecord(@RequestBody WorkBatchSaveOrUpdateDTO dto) {

        this.service.updateRecord(dto);

        return Result.OK("操作成功");
    }

    @AutoLog(value = "维修作业管理-作业计划批次管理-通过id删除")
    @ApiOperation(value = "维修作业管理-作业计划批次管理-通过id删除", notes = "维修作业管理-作业计划批次管理-通过id删除")
    @GetMapping(value = "/deleteRecord")
    public Result<String> deleteRecord(@RequestParam(name = "id", required = true) String id) {
        this.service.deleteRecord(id);
        return Result.OK("删除成功!");
    }

}
