package cn.iocoder.yudao.module.mes.service.changerecord;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.mes.controller.admin.changerecord.vo.ProduceReportChangeRecordPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.changerecord.vo.ProduceReportChangeRecordSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.changerecord.ProduceReportChangeRecordDO;

import javax.validation.Valid;

/**
 * 报工变更记录 Service 接口
 *
 * @author 内蒙必硕
 */
public interface ProduceReportChangeRecordService {

    /**
     * 创建报工变更记录
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createProduceReportChangeRecord(@Valid ProduceReportChangeRecordSaveReqVO createReqVO);

    /**
     * 更新报工变更记录
     *
     * @param updateReqVO 更新信息
     */
    void updateProduceReportChangeRecord(@Valid ProduceReportChangeRecordSaveReqVO updateReqVO);

    /**
     * 删除报工变更记录
     *
     * @param id 编号
     */
    void deleteProduceReportChangeRecord(Long id);

    /**
     * 获得报工变更记录
     *
     * @param id 编号
     * @return 报工变更记录
     */
    ProduceReportChangeRecordDO getProduceReportChangeRecord(Long id);

    /**
     * 获得报工变更记录分页
     *
     * @param pageReqVO 分页查询
     * @return 报工变更记录分页
     */
    PageResult<ProduceReportChangeRecordDO> getProduceReportChangeRecordPage(ProduceReportChangeRecordPageReqVO pageReqVO);
    int saveChange(Long reportId,String beforeString, String afterString, String changeType);
}