package com.wms_main.controller.wms;

import com.wms_main.model.dto.query.OutsQuery;
import com.wms_main.model.dto.query.PickTaskQuery;
import com.wms_main.model.dto.query.WmsTaskQuery;
import com.wms_main.model.dto.response.wms.WmsApiResponse;
import com.wms_main.model.vo.wms.*;
import com.wms_main.service.controller.ITaskQueryControllerService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

/**
 * 任务记录控制类
 * 包括拣选任务
 */
@RestController
@ResponseBody
@CrossOrigin
@RequiredArgsConstructor
@RequestMapping("/wms/taskQuery")
public class TaskQueryController {
    private final ITaskQueryControllerService taskQueryControllerService;// 任务查询控制类 服务

    /**
     * Wms任务分页查询
     * @param wmsTaskQuery 查询参数
     * @return 查询结果
     */
    @PostMapping("/queryTasksByPage")
    public WmsApiResponse<PageVo<TaskVo>> queryTasksByPage(@RequestBody WmsTaskQuery wmsTaskQuery)
    {
        return taskQueryControllerService.queryTasksByPage(wmsTaskQuery);
    }

    /**
     * Wms入库记录查询
     * @param wmsTaskQuery 查询参数
     * @return 查询结果
     */
    @PostMapping("/queryInTaskRecordByPage")
    public WmsApiResponse<PageVo<TaskRecordVo>> queryInTaskRecordByPage(@RequestBody WmsTaskQuery wmsTaskQuery)
    {
        return taskQueryControllerService.queryInTaskRecordByPage(wmsTaskQuery);
    }

    /**
     * Wms出库记录查询
     * @param wmsTaskQuery 查询参数
     * @return 查询结果
     */
    @PostMapping("/queryOutTaskRecordByPage")
    public WmsApiResponse<PageVo<TaskRecordVo>> queryOutTaskRecordByPage(@RequestBody WmsTaskQuery wmsTaskQuery)
    {
        return taskQueryControllerService.queryOutTaskRecordByPage(wmsTaskQuery);
    }

    /**
     * Wms拣选任务分页查询
     * @param pickTaskQuery 查询参数
     * @return 查询结果
     */
    @PostMapping("/queryPickTasksByPage")
    public WmsApiResponse<PageVo<PickTaskVo>> queryPickTasksByPage(@RequestBody PickTaskQuery pickTaskQuery)
    {
        return taskQueryControllerService.queryPickTasksByPage(pickTaskQuery);
    }

    /**
     * 出库单分页查询
     * @param outsQuery 查询参数
     * @return 查询结果
     */
    @PostMapping("/queryOutsByPage")
    public WmsApiResponse<PageVo<OutsVo>> queryOutsByPage(@RequestBody OutsQuery outsQuery)
    {
        return taskQueryControllerService.queryOutsByPage(outsQuery);
    }
}
