package com.artfess.rescue.external.controller;


import com.artfess.base.annotation.ApiGroup;
import com.artfess.base.constants.ApiGroupConsts;
import com.artfess.base.model.CommonResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.artfess.base.controller.BaseController;
import com.artfess.rescue.external.model.BizDataReceive;
import com.artfess.rescue.external.manager.BizDataReceiveManager;

import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 第三方接收数据表 前端控制器
 *
 * @author 系统管理员
 * @company 阿特菲斯信息技术有限公司
 * @since 2025-04-18
 */
@RestController
@RequestMapping("/bizDataReceive/v1/")
@Api(tags = "第三方接收数据表")
@ApiGroup(group = {ApiGroupConsts.GROUP_BIZ_RESCUE})
public class BizDataReceiveController extends BaseController<BizDataReceiveManager, BizDataReceive> {

    @PostMapping("/retry")
    @ApiOperation(value = "按日期重试接收数据", notes = "按日期重试接收数据")
    public CommonResult<String> retryReceive(@RequestParam("date") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate localDate) throws Exception {
        baseService.RetryReceive(localDate);
        return new CommonResult<>(true, "执行成功！");
    }

    @PostMapping("/time/retry")
    @ApiOperation(value = "按日期范围重试接收数据", notes = "按日期范围重试接收数据")
    public CommonResult<String> retryTimeReceive(@RequestParam("startDate") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime startDate,
                                                 @RequestParam("endDate") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime endDate
                                                 ) throws Exception {
        baseService.RetryReceive(startDate,endDate);
        return new CommonResult<>(true, "执行成功！");
    }
}
