package com.elephant.framework.galaxy.aroad.module.zhjc.controller;

import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.elephant.framework.galaxy.aroad.module.common.annotation.SysLog;
import com.elephant.framework.galaxy.aroad.module.common.controller.BaseController;
import com.elephant.framework.galaxy.aroad.module.zhjc.entity.ZhjcGhjh;
import com.elephant.framework.galaxy.aroad.module.zhjc.service.ZhjcGhjhService;
import com.elephant.framework.galaxy.aroad.response.R;
import org.springframework.web.bind.annotation.*;

import java.util.List;


/**
 * 智慧决策_规划计划
 *
 * @author wangjian
 * @date 2019-05-29 10:45:50
 */
@RestController
@RequestMapping("/zhjc/ghjh")
public class ZhjcGhjhController extends BaseController {

    private final ZhjcGhjhService zhjcGhjhService;

    public ZhjcGhjhController(ZhjcGhjhService zhjcGhjhService) {
        this.zhjcGhjhService = zhjcGhjhService;
    }

    /**
     * 分页查询
     *
     * @param page     分页对象
     * @param zhjcGhjh 智慧决策_规划计划
     * @return
     */
    @GetMapping("/page")
    public R getZhjcGhjhPage(Page page, ZhjcGhjh zhjcGhjh) {
        return new R<>(zhjcGhjhService.page(page, Wrappers.query(zhjcGhjh)));
    }

    /**
     * 根据项目编码查询项目数据
     */
    @GetMapping("/getDataByXmbm")
    public R getZhjcGhjhByXmbm(String xmbm) {
        return new R<>(zhjcGhjhService.getZhjcGhjhByXmbm(xmbm));
    }

    /**
     * 获取项目跟踪列表数据
     */
    @GetMapping("/getXmgzTableData")
    public R getGhjhXmgz(Page page, String tbdwdm, String xmlxdm, String jsxzdm, String xmjd) {
        return new R<>(zhjcGhjhService.getGhjhXmgz(page, tbdwdm, xmlxdm, jsxzdm, xmjd));
    }

    /**
     * 获取项目跟踪坐标数据
     *
     * @return
     */
    @GetMapping("/getXmgzShapeData")
    public R getGhjhXmgzShape(String tbdwdm, String xmlxdm, String jsxzdm, String xmjd) {
        return new R<>(zhjcGhjhService.getGhjhXmgzShape(tbdwdm, xmlxdm, jsxzdm, xmjd));
    }

    /**
     * 获取数据分析页面数据
     */
    @GetMapping("/getTjfxData")
    public R getZhjcGhjhTjfxDataByYear(String year) {
        return new R<>(zhjcGhjhService.getZhjcGhjhTjfxDataByYear(year));
    }


    /**
     * 新增智慧决策_规划计划
     *
     * @param zhjcGhjhs 智慧决策_规划计划
     * @return R
     */
    @SysLog("批量新增智慧决策_规划计划")
    @PostMapping("/add")
    public R save(@RequestBody List<ZhjcGhjh> zhjcGhjhs) {
        boolean fp = true;
        for (ZhjcGhjh new_gh : zhjcGhjhs) {
            fp = zhjcGhjhService.addZhjcGhjh(new_gh);
            if (!fp) {
                break;
            }
        }

        return new R<>(fp);
    }


    /**
     * 修改智慧决策_规划计划
     *
     * @param zhjcGhjh 智慧决策_规划计划
     * @return R
     */
    @SysLog("修改智慧决策_规划计划")
    @PostMapping("/update")
    public R updateById(@RequestBody ZhjcGhjh zhjcGhjh) {
        return new R<>(zhjcGhjhService.updateZhjcGhjh(zhjcGhjh));
    }

    /**
     * 通过id删除智慧决策_规划计划
     *
     * @return R
     */
    @SysLog("删除智慧决策_规划计划")
    @PostMapping("/delete")
    public R removeById(@RequestBody List<ZhjcGhjh> zhjcGhjhs) {

        boolean fp = true;
        for (ZhjcGhjh del_gh : zhjcGhjhs) {
            fp = zhjcGhjhService.deleteZhjcGhjh(del_gh);
            if (!fp) {
                break;
            }
        }

        return new R<>(fp);
    }

    /**
     *
     */
    @GetMapping("/lxghjh")
    public R getLxGhjh(@RequestParam("gcxmId") String gcxmId) {
        return new R<>(zhjcGhjhService.queryLxGhjh(gcxmId));
    }
}
