package com.dsk.web.controller.dsk;


import com.dsk.common.core.domain.R;
import com.dsk.common.core.domain.model.*;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.system.dskService.EnterpriseProjectService;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.Valid;
import java.util.Map;

/**
*@Description: 央企经营管理系统企业项目相关
*@Author: zhangyi
*@date: 2023/5/17 9:03
*/
@Slf4j
@RestController
@RequestMapping(value = "/enterpriseProject")
public class EnterpriseProjectController {
    @Autowired
    EnterpriseProjectService enterpriseProjectService;


    @ApiOperation(value = "土地交易列表（openApi）")
    @RequestMapping(value = "/landTransactionPage", method = RequestMethod.POST)
    public TableDataInfo landTransactionPage(@RequestBody @Valid EnterpriseProjectLandTransactionPageBody body) throws Exception {
        return enterpriseProjectService.landTransactionPage(body);
    }

    @ApiOperation(value = "土地用途列表（openApi）")
    @RequestMapping(value = "/landUse", method = RequestMethod.POST)
    public R landUse(@RequestBody @Valid EnterpriseProjectLandUseBody body) throws Exception {
        return enterpriseProjectService.landUse(body);
    }

    @ApiOperation(value = "土地信息详情（openApi）")
    @RequestMapping(value = "/landDetail",method = RequestMethod.POST)
    public R landDetail(@RequestBody @Valid EnterpriseProjectLandDetailBody body) throws Exception {
        return enterpriseProjectService.landDetail(body);
    }

    @ApiOperation(value = "拟建项目列表（openApi）")
    @RequestMapping(value = "/approvalProjectPage",method = RequestMethod.POST)
    public TableDataInfo approvalProjectPage(@RequestBody @Valid EnterpriseProjectApprovalProjectPageBody body) throws Exception {
        return enterpriseProjectService.approvalProjectPage(body);
    }

    @ApiOperation(value = "拟建项目详情基本信息（openApi）")
    @RequestMapping(value = "/approvalInfoDetail",method = RequestMethod.POST)
    public R approvalInfoDetail(@RequestBody @Valid EnterpriseProjectApprovalInfoDetailBody body) throws Exception {
        return enterpriseProjectService.approvalInfoDetail(body);
    }

    @ApiOperation(value = "拟建项目详情立项审批列表（openApi）")
    @RequestMapping(value = "/approvalExaminePage",method = RequestMethod.POST)
    public TableDataInfo approvalExaminePage(@RequestBody @Valid EnterpriseProjectApprovalExaminePageBody body) throws Exception {
        return enterpriseProjectService.approvalExaminePage(body);
    }

    @ApiOperation(value = "拟建项目详情民间推介列表（openApi）")
    @RequestMapping(value = "/approvalMarketingPage", method = RequestMethod.POST)
    public TableDataInfo approvalMarketingPage(@RequestBody @Valid EnterpriseProjectApprovalMarketingPageBody body) throws Exception {
        return enterpriseProjectService.approvalMarketingPage(body);
    }

    @ApiOperation(value = "专项债项目列表（openApi）")
    @RequestMapping(value = "/specialDebtProjectPage", method = RequestMethod.POST)
    public TableDataInfo specialDebtProjectPage(@RequestBody @Valid EnterpriseProjectSpecialDebtProjectPageBody  body) throws Exception {
        return enterpriseProjectService.specialDebtProjectPage(body);
    }

    @ApiOperation(value = "专项债项目详情（openApi）")
    @RequestMapping(value = "/specialDebtProjectDetail", method = RequestMethod.POST)
    public R specialDebtProjectDetail(@RequestBody @Valid EnterpriseProjectSpecialDebtProjectDetailBody body) throws Exception {
        return enterpriseProjectService.specialDebtProjectDetail(body);
    }

    @ApiOperation(value = "专项债列表（openApi）")
    @RequestMapping(value = "/specialDebtPage", method = RequestMethod.POST)
    public TableDataInfo specialDebtPage(@RequestBody @Valid EnterpriseProjectSpecialDebtPageBody body) throws Exception {
        return enterpriseProjectService.specialDebtPage(body);
    }

    @ApiOperation(value = "招标公告列表（openApi）")
    @RequestMapping(value = "/bidNoticePage",method = RequestMethod.POST)
    public TableDataInfo bidNoticePage(@RequestBody @Valid EnterpriseProjectBidNoticePageBody body) throws Exception {
        return enterpriseProjectService.bidNoticePage(body);
    }

    @ApiOperation(value = "招标公告招标类别（openApi）")
    @RequestMapping(value = "/bidNoticeTenderStage", method = RequestMethod.POST)
    public R bidNoticeTenderStage(@RequestBody @Valid EnterpriseProjectBidNoticeTenderStageBody body) throws Exception {
        return enterpriseProjectService.bidNoticeTenderStage(body);
    }

    @ApiOperation(value = "招标公告招标地区（openApi）")
    @RequestMapping(value = "/bidNoticeArea", method = RequestMethod.POST)
    public R bidNoticeArea(@RequestBody @Valid EnterpriseProjectBidNoticeAreaBody body) throws Exception {
        return enterpriseProjectService.bidNoticeArea(body);
    }

    @ApiOperation(value = "招标公告详情（openApi）")
    @RequestMapping(value = "/bidNoticeDetail", method = RequestMethod.POST)
    public R bidNoticeDetail(@RequestBody @Valid EnterpriseProjectBidNoticeDetailBody body) throws Exception {
        return enterpriseProjectService.bidNoticeDetail(body);
    }

    @ApiOperation(value = "招标计划列表（openApi）")
    @RequestMapping(value = "/bidPlanPage",method = RequestMethod.POST)
    public TableDataInfo bidPlanPage(@RequestBody @Valid EnterpriseProjectBidPlanPageBody body) throws Exception {
        return enterpriseProjectService.bidPlanPage(body);
    }

    @ApiOperation(value = "招标计划项目类型（openApi）")
    @RequestMapping(value = "/bidPlanProjectType",method = RequestMethod.POST)
    public R bidPlanProjectType(@RequestBody @Valid EnterpriseProjectBidPlanProjectTypeBody body) throws Exception {
        return enterpriseProjectService.bidPlanProjectType(body);
    }


    @ApiOperation(value = "招标计划详情（openApi）")
    @RequestMapping(value = "/bidPlanDetail", method = RequestMethod.POST)
    public R bidPlanDetail(@RequestBody @Valid EnterpriseProjectBidPlanDetailBody body) throws Exception {
        return enterpriseProjectService.bidPlanDetail(body);
    }

    @ApiOperation(value = "标讯pro招标公告列表（openApi）")
    @RequestMapping(value = "/bidNoticeProPage", method = RequestMethod.POST)
    public TableDataInfo bidNoticeProPage(@RequestBody @Valid EnterpriseProjectBidNoticeProPageBody body) throws Exception {
        return enterpriseProjectService.bidNoticeProPage(body);
    }

    @ApiOperation(value = "标讯pro招标公告项目类别（openApi）")
    @RequestMapping(value = "/bidNoticeProProjectType", method = RequestMethod.POST)
    public R bidNoticeProProjectType(@RequestBody @Valid EnterpriseProjectBidNoticeProProjectTypeBody body) throws Exception {
        return enterpriseProjectService.bidNoticeProProjectType(body);
    }

    @ApiOperation(value = "标讯pro招标公告工程类别（openApi）")
    @RequestMapping(value = "/bidNoticeProProjectPurposes", method = RequestMethod.POST)
    public R bidNoticeProProjectPurposes(@RequestBody @Valid EnterpriseProjectBidNoticeProProjectPurposesBody body) throws Exception {
        return enterpriseProjectService.bidNoticeProProjectPurposes(body);
    }

    @ApiOperation(value = "标讯pro招标公告评标办法（openApi）")
    @RequestMapping(value = "/bidNoticeProAssessmentWay", method = RequestMethod.POST)
    public R bidNoticeProAssessmentWay(@RequestBody @Valid EnterpriseProjectBidNoticeProAssessmentWayBody body) throws Exception {
        return enterpriseProjectService.bidNoticeProAssessmentWay(body);
    }

    @ApiOperation(value = "标讯pro招标公告详情（openApi）")
    @RequestMapping(value = "/bidNoticeProDetail", method = RequestMethod.POST)
    public R bidNoticeProDetail(@RequestBody @Valid EnterpriseProjectBidNoticeProDetailBody body) throws Exception {
        return enterpriseProjectService.bidNoticeProDetail(body);
    }

    @ApiOperation(value = "行政许可列表（openApi）")
    @RequestMapping(value = "/creditXzxkPage", method = RequestMethod.POST)
    public TableDataInfo creditXzxkPage(@RequestBody @Valid EnterpriseProjectCreditXzxkPageBody body) throws Exception {
        return enterpriseProjectService.creditXzxkPage(body);
    }

}
