package com.zcloud.controller.gatemachine;

import com.zcloud.aspect.DockAnnotation;
import com.zcloud.controller.base.BaseController;
import com.zcloud.entity.Page;
import com.zcloud.entity.PageData;
import com.zcloud.service.gatemachine.GateCarIOService;
import com.zcloud.util.ReturnMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;

/**
 * 闸机车辆管理
 * LLX
 * 2024-01-23
 */
@RestController
@RequestMapping("/gateCar")
public class GateCarIOController extends BaseController {

    @Resource
    private GateCarIOService gateCarIOService;

    /**
     * 出入闸机车辆记录
     * @param page
     * @return 记录
     */
    @RequestMapping(value = "/page")
    public ReturnMap page(Page page) {
        ReturnMap returnMap = new ReturnMap();
        PageData pageData = this.getPageData();
        page.setPd(pageData);
        List<PageData> data = gateCarIOService.getDatalistpage(page);
        returnMap.put("varList", data);
        returnMap.put("page", page);
        return returnMap;
    }

    /**
     * 编辑出入闸机车辆记录
     * @return
     */
    @RequestMapping(value = "/edit")
    @DockAnnotation
    public ReturnMap edit() {
        PageData pd = this.getPageData();
        gateCarIOService.edit(pd);
        return ReturnMap.ok();
    }

    /**
     * 删除出入闸机车辆记录
     * @return
     */
    @RequestMapping(value = "/removeByIds")
    @DockAnnotation
    public ReturnMap removeByIds() {
        PageData pageData = this.getPageData();
        gateCarIOService.removeByIds(pageData);
        return ReturnMap.ok();
    }

    /**
     * 添加出入闸机车辆记录
     * @return
     */
    @RequestMapping(value = "/add")
    @DockAnnotation
    public ReturnMap add() {
        PageData pageData = this.getPageData();
        gateCarIOService.save(pageData);
        return ReturnMap.ok();
    }

    /**
     * 根据条件获取杂货/矿区闸机出入记录
     * @return
     */
    @RequestMapping(value = "/getIORecords")
    public ReturnMap getIORecord() {
        return ReturnMap.ok().put("data", gateCarIOService.getIORecord(this.getPageData()));
    }

    /**
     * 获取在场,离场,总量计数
     * @return
     */
    @RequestMapping(value = "/getEQCount")
    public ReturnMap getTodayEQCount() {
        return ReturnMap.ok().put("data", gateCarIOService.getTodayEQCount(this.getPageData()));
    }

}