package com.kym.admin.controller;

import com.kym.common.R;
import com.kym.entity.admin.queryParams.StatementsQueryParam;
import com.kym.service.admin.StatementsService;
import org.springframework.web.bind.annotation.*;

/**
 * <p>
 * 客户对账单 前端控制器
 * </p>
 *
 * @author skyline
 * @since 2023-12-27
 */
@RestController
@RequestMapping("/statements")
public class StatementsController {

    private final StatementsService statementsService;

    public StatementsController(StatementsService statementsService) {
        this.statementsService = statementsService;
    }

    /**
     * 生成对账单（创建前先录入抄表电量和电费金额）
     * 一次性生成对应站点投资者和物业的对账单
     *
     * @param statMonthId 月统计记录id
     * @return
     */
    @GetMapping("/create/{statMonthId}")
    R<?> create(@PathVariable("statMonthId") String statMonthId) {
        statementsService.createStatements(statMonthId);
        return R.success();
    }

    /**
     * 预览
     *
     * @param statId
     * @return
     */
    @GetMapping("/preview/{statId}")
    R<?> preview(@PathVariable("statId") String statId) {
        return R.success(statementsService.preview(statId));
    }

    /**
     * 对账单列表
     *
     * @param params
     * @return
     */
    @GetMapping("/listStatements")
    R<?> list(@ModelAttribute StatementsQueryParam params) {
        return R.success(statementsService.listStatements(params));
    }

}
