package com.zhyc.module.dairyProducts.controller;

import com.zhyc.common.annotation.Log;
import com.zhyc.common.core.controller.BaseController;
import com.zhyc.common.core.domain.AjaxResult;
import com.zhyc.common.core.page.TableDataInfo;
import com.zhyc.common.enums.BusinessType;
import com.zhyc.common.utils.poi.ExcelUtil;
import com.zhyc.module.dairyProducts.domain.NpSheepMilkAnalysis;
import com.zhyc.module.dairyProducts.service.INpSheepMilkAnalysisService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 奶产量分析控制器
 * 只保留：分页列表（只读） + 单条查询 + 导出
 */
@RestController
@RequestMapping("/dairyProducts/sheepMilkAnalysis")
public class NpSheepMilkAnalysisController extends BaseController {

    @Autowired
    private INpSheepMilkAnalysisService npSheepMilkAnalysisService;

    /**
     * 查询奶产量分析列表（只读，分页）
     * 支持参数 manageEarTag（耳号模糊） 和 screenDays（筛选天数）
     */
    @GetMapping("/list")
    public TableDataInfo list(NpSheepMilkAnalysis analysis) {
        startPage(); // 使用PageHelper分页（注意service中第一个DB调用是distinct sheep id）
        List<NpSheepMilkAnalysis> list = npSheepMilkAnalysisService.selectNpSheepMilkAnalysisList(analysis);
        return getDataTable(list);
    }

    /**
     * 获取单个分析记录详细信息（按sheepId）
     */
    @GetMapping(value = "/{sheepId}")
    public AjaxResult getInfo(@PathVariable("sheepId") String sheepId) {
        return AjaxResult.success(npSheepMilkAnalysisService.selectNpSheepMilkAnalysisBySheepId(sheepId));
    }

    /**
     * 导出奶产量分析记录（Excel）
     * 支持manageEarTag与screenDays两个查询条件
     */
    @Log(title = "奶产量分析 导出", businessType = BusinessType.EXPORT)
    @GetMapping("/export")
    public AjaxResult export(NpSheepMilkAnalysis analysis) {
        List<NpSheepMilkAnalysis> list = npSheepMilkAnalysisService.selectNpSheepMilkAnalysisForExport(analysis);
        ExcelUtil<NpSheepMilkAnalysis> util = new ExcelUtil<>(NpSheepMilkAnalysis.class);
        return util.exportExcel(list, "羊奶产量分析数据");
    }
}