package com.sw.mes.mmcs.service;

import java.util.List;

import com.sw.mes.mmcs.dto.ErrorOrderDto;
import com.sw.mes.mmcs.dto.MoWorkReportingDto;
import com.sw.mes.webservice.entity.MaterialNumberOutPut;

public interface MMcsInterfaceService {
	/**
	 * 同步物料信息接口
	 * 
	 * <pre>
	 * 传输内容： 物料信息。
	 * 当MES系统中的新增物料主数据或者物料信息发生变动时调用MMCS系统的同步物料信息接口传输物料信息。MMCS系统接收后更新或新增物料信息。
	 * 物料信息接收不做处理，仅作为物料正确性验证依据。
	 * </pre>
	 */
	public void mcsMaterialToMmcs(List<MaterialNumberOutPut> source);
	
	/**
	 * 下发物料配方接口
	 * <pre>
	 * 当MES系统中的新物料配方启用或者配方信息发生变动时调用MMCS系统的下发物料配方接口传输配方信息。MMCS系统接收后更新或新增配方信息。
一个物料配方每次传输需配方整体信息传输
	 * </pre>
	 */
	public void mcsRecipeToMmcs();

	/**
	 * 传输内容： 重量方案信息。
	 * <pre>
	 * 当MES系统中的新重量方案启用或者重量方案发生变动时调用MMCS系统的下发重量方案接口传输重量方案信息。MMCS系统接收后更新或新增重量方案。
	 * 一个重量方案每次传输需重量方案整体信息传输。
	 * </pre>
	 */
	public void issueWeightSchemeInterface();

	/**
	 * 传输内容： 生产任务信息
	 * <pre>
	 * 当MES系统中的投料生产任务产生或者生产任务发生变动时调用MMCS系统
	 * 的下发生产任务接口传输生产任务信息。MMCS系统接收后更新或新增生产任务。
	 * </pre>
	 */
	public void issueMoInterface(Object obj);

	/**
	 * 取消生产任务下发接口
	 * <pre>
	 * 传输内容： 生产任务信息。
	 * 当MES系统中的投料生产任务取消时调用MMCS系统的取消生产任务接口传
	 * 输任务取消信息，MMCS系统接收取消指令后对生产任务进行取消处理。
	 * 已执行任务无法取消。
	 * </pre>
	 */
	public void cancelMoDistributionInterface(Object obj);

	/**
	 * 异常生产任务上报接口
	 * <pre>
	 * 当MMCS系统中生产任务由于无可用装灌料机组无法投料生产时、任务所需
	 * 物料无法齐套时，由人工触发调用MES系统的异常生产任务上报接口传输任务信
	 * 息，MES系统接收后返回确认消息。
	 * 对于转人工任务是否上报MES，通过MES人工报工处理需要和用户确认，根
	 * 据确认结果再确认系统间集成方式，暂不变动。
	 * </pre>
	 * @param task 
	 */
	public void errorOrder(ErrorOrderDto obj, Object task);

	/**
	 * 生产任务报工接口
	 * <pre>
	 * 传输内容： 生产任务报工信息。
	 * 当MMCS系统中的投料生产任务完成后调用MES系统的生产报工接口传输生
	 * 产任务报工信息。MES系统接收后返回响应信息。
	 * </pre>
	 * @param task 
	 */
	public void moWorkReportingInterface(MoWorkReportingDto obj, Object task);

}
