package com.ygtx.gxt.controller;

import com.ygtx.common.annotation.Log;
import com.ygtx.common.core.controller.BaseController;
import com.ygtx.common.core.domain.AjaxResult;
import com.ygtx.common.core.page.TableDataInfo;
import com.ygtx.common.enums.BusinessType;
import com.ygtx.common.utils.poi.ExcelUtil;
import com.ygtx.gxt.domain.*;
import com.ygtx.gxt.service.IGxtMisInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;

/**
 * MIS工单Controller
 *
 * @author ygtx
 * @date 2025-10-25
 */
@RestController
@RequestMapping("/gxt/misInfo")
@Api(tags = "MIS工单管理")
public class GxtMisInfoController extends BaseController
{
    @Autowired
    private IGxtMisInfoService misInfoService;

    /**
     * 查询MIS工单列表
     */
    @ApiOperation("查询MIS工单列表")
    @GetMapping("/list")
    public TableDataInfo list(GxtMisInfo misInfo)
    {
        startPage();
        if(misInfo != null && misInfo.getPcsStationName() != null
                && misInfo.getPcsStationName().contains("三墩风电场")){
            misInfo.setPcsStationName("三墩风电场");
        }
        List<GxtMisInfo> list = misInfoService.selectGxtMisInfoList(misInfo);
        return getDataTable(list);
    }

    /**
     * 查询MIS工单列表
     */
    @ApiOperation("查询MIS工单列表")
    @GetMapping("/autoList")
    public TableDataInfo autoList(GxtMisInfo misInfo)
    {
        startPage();
        if(misInfo != null && misInfo.getPcsStationName() != null
                && misInfo.getPcsStationName().contains("三墩风电场")){
            misInfo.setPcsStationName("三墩风电场");
        }
        List<GxtMisInfo> list = misInfoService.selectAutoGxtMisInfoList(misInfo);
        return getDataTable(list);
    }

    /**
     * 查询MIS工单列表
     */
    @ApiOperation("查询工作组员列表")
    @GetMapping("/listWorkPerson")
    public TableDataInfo listWorkPerson(GxtWorkOrderPerson workOrderPerson)
    {
        startPage();
        List<GxtWorkOrderPerson> list = misInfoService.selectGxtWorkOrderPersonList(workOrderPerson);
        return getDataTable(list);
    }

    /**
     * 测试数据源连接
     */
    @GetMapping("/testConnection")
    public AjaxResult testConnection()
    {
        try {
            List<GxtMisInfo> list = misInfoService.selectGxtMisInfoList(new GxtMisInfo());
            return success("数据源连接正常，查询到 " + list.size() + " 条记录");
        } catch (Exception e) {
            return error("数据源连接异常: " + e.getMessage());
        }
    }
}