package com.ruoyi.process.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.inspect.dto.InsPlaceOrderDto;
import com.ruoyi.process.dto.InspectionOrderDto;
import com.ruoyi.process.pojo.InspectionOrder;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
/**
*
* 检验委托单 服务类
*
*
* @author 江苏鵷雏网络科技有限公司
* @since 2024-12-09
*/
public interface InspectionOrderService extends IService {
/**
* 检验委托单分页查询
* @param page
* @param inspectionOrder
* @return
*/
IPage pageInspectionOrder(Page page, InspectionOrder inspectionOrder);
/**
* 检验委托单新增
* @param InspectionOrder
* @return
*/
InspectionOrderDto addInspectionOrder(InspectionOrderDto inspectionOrder);
/**
* 检验委托单修改
* @param InspectionOrder
* @return
*/
boolean updateInspectionOrder(InspectionOrderDto InspectionOrder);
/**
* 检验委托单删除
* @param inspectionOrderId
* @return
*/
boolean delInspectionOrder(Integer inspectionOrderId);
/**
* 检验委托单查看详情
* @param inspectionOrderId
* @return
*/
InspectionOrderDto getInspectionOrderOne(Integer inspectionOrderId);
/**
* 查询未绑定的检验委托单,供成品下单选择。
*/
IPage pageUnboundInspectionOrder(Page page, InspectionOrder inspectionOrder);
/**
* 获取成品下单初始化所需的委托单信息。
*/
InspectionOrderDto getInspectionOrderForPlaceOrder(Integer inspectionOrderId);
/**
* 新增成品下单并与委托单绑定。
*/
Integer addInsOrderWithInspectionOrder(InsPlaceOrderDto insPlaceOrderDto);
/**
* 下单生成委托编号后回写检验委托单。
*/
void syncEntrustCode(Integer insOrderId);
/**
* 正式报告批准后复制报告并回写委托单文件地址。
*/
void syncReportFile(Integer insReportId);
/**
* 更正下单与委托单的绑定关系。
*/
boolean changeBinding(Integer insOrderId, Integer inspectionOrderId, String reason);
/**
* 委托单成品报告上传
* @param file
* @param inspectionOrderId
* @return
*/
boolean uploadInspectionOrderFile(MultipartFile file, Integer inspectionOrderId);
/**
* 导出检验委托单
* @param inspectionOrderId
* @param response
*/
void exportInspectionOrder(Integer inspectionOrderId, HttpServletResponse response);
}