package com.jisco.dynamicweight.dynamicworkupdata.service;

import com.jisco.dynamicweight.dynamicworkupdata.dto.CalNewCokeDto;
import com.jisco.dynamicweight.dynamicworkupdata.dto.CokeComputeDto;
import com.jisco.dynamicweight.dynamicworkupdata.dto.InbatchDto;
import com.jisco.dynamicweight.dynamicworkupdata.dto.ReturnedDustDto;
import com.jisco.dynamicweight.dynamicworkupdata.model.DynamicWorkUpdata;
import com.jisco.dynamicweight.dynamicworkupdata.vo.AuditDataVO;
import com.jisco.dynamicweight.dynamicworkupdata.vo.DailyReportVO;
import com.steerinfo.framework.service.IBaseService;
import org.springframework.web.bind.annotation.RequestBody;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * DynamicWorkUpdata服务接口：
 *
 * @author generator
 * @version 1.0-SNAPSHORT 2022-01-18 10:14
 * 类描述
 * 修订历史：
 * 日期：2022-01-18
 * 作者：generator
 * 参考：
 * 描述：DynamicWorkUpdata服务接口
 * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
 * @see null
 */
public interface IDynamicWorkUpdataService extends IBaseService<DynamicWorkUpdata, String> {

    /**
     * 重新获取动态秤称重数据
     */
    void recalc();

    /**
     * 数据分批总重量
     *
     * @param startTime
     * @param endTime
     * @return
     */
    BigDecimal inbatchsTotalWeight(String updataNo, Date startTime, Date endTime);

    /**
     * 返粉总重量
     *
     * @param updataNo
     * @param startTime
     * @param endTime
     * @return
     */
    BigDecimal returnedDustWeight(String updataNo, Date startTime, Date endTime);

    /**
     * 返粉
     *
     * @param updataNo
     * @param startTime
     * @param endTime
     * @param list
     */
    void returnedDust(String updataNo, Date startTime, Date endTime, List<ReturnedDustDto> list);

    /**
     * 数据分批
     *
     * @param updataNo
     * @param startTime
     * @param endTime
     * @param list
     */
    void inbatchs(String updataNo, Date startTime, Date endTime, List<InbatchDto> list);

    /**
     * 重新计算焦炭量
     */
    void recalcCoke(@RequestBody CokeComputeDto model);

    /**
     * 日报表
     *
     * @param date
     * @return
     */
    List<DailyReportVO> dailyReport(String date);

    /**
     * 查询待审核数据
     *
     * @param date
     * @return
     */
    List<AuditDataVO> getAuditData(String date);

    /**
     * 启用
     *
     * @param id
     * @return
     */
    boolean disable(String id);


    /**
     * 禁用
     *
     * @param id
     * @return
     */
    boolean enable(String id);

    /**
     * 重新生成数据,删除上传数据表中的数据，并修改采集数据表中的过期标识expire_flag为0，重新生成上传数据表的数据
     *
     * @param id
     * @return
     */
    void reGenerate(String id);

    /**
     * 重新采集数据,删除上传数据表中的数据和采集数据表中的数据，重新采集数据
     *
     * @param id
     * @return
     */
    void reCollect(String id);

    /**
     * 新焦炭计算
     * @param calNewCokeDto
     */
    void calNewCoke(CalNewCokeDto calNewCokeDto);
}