package com.shlanbao.tzsc.pms.sch.workorder.service;
import java.util.List;
import java.util.Map;
import com.shlanbao.tzsc.base.mapping.ChangeShiftDatas;
import com.shlanbao.tzsc.base.mapping.MdMat;
import com.shlanbao.tzsc.base.mapping.MdMatType;
import com.shlanbao.tzsc.base.mapping.QualityCheckInfo;
import com.shlanbao.tzsc.base.mapping.QualityCheckInfoParams;
import com.shlanbao.tzsc.base.mapping.SchCalendar;
import com.shlanbao.tzsc.base.mapping.SchWorkorder;
import com.shlanbao.tzsc.base.mapping.SchWorkorderBom;
import com.shlanbao.tzsc.base.mapping.SysMessageQueue;
import com.shlanbao.tzsc.base.model.*;
import com.shlanbao.tzsc.pms.sch.workorder.beans.TransmitterOutput;
import com.shlanbao.tzsc.pms.sch.workorder.beans.TransmitterWorkOrderBean;
import com.shlanbao.tzsc.pms.sch.workorder.beans.WorkOrderBean;
/**
* 工单业务接口
* @author Leejean
* @create 2014年11月18日下午3:53:04
*/
public interface WorkOrderServiceI {
/**
* 根据设备CODE 获取正在运行的工单 并填充辅料
* @throws Exception
*/
SchWorkorder getWork(String eqp) throws Exception;
/**
* 查询所有工单
* @author Leejean
* @create 2014年11月18日下午3:55:00
* @param workOrderBean 查询条件
* @param pageParams 分页参数
* @return
*/
DataGrid getAllWorkOrders(WorkOrderBean workOrderBean,PageParams pageParams) throws Exception;
/**
* 审核工单 单个
* @author Leejean
* @create 2014年11月25日下午1:09:15
* @param id 工单id号
* @throws Exception
*/
String checkWorkOrder(String id) throws Exception;
/**
* 审核工单 批量
* @author Leejean
* @create 2014年11月25日下午1:09:15
* @param ids
* @throws Exception
*/
String checkWorkOrders(String ids) throws Exception;
/**
* 修改工单状态
* @author Leejean
* @create 2014年11月25日下午1:12:11
* @param id
* 1,下发
* 2,运行 -->运行时在生产实绩中保存val=0的数据,即采集程序只做update操作
* 3,暂停 -->MES取消撤销工单时
* 4,完成 -->工单完成,更新工单结束时间
* 5,终止 -->错误的工单运行时,执行本操作删除生产实绩相关数据
* 6,结束 -->工单已经反馈
* 7,锁定 -->MES发起撤销时
* 8,撤销 -->MES确定撤销时
* @throws Exception
*/
void editWorkOrderStatus(String id,Long sts) throws Exception;
/**
* 根据id获取工单
* @author Leejean
* @create 2014年12月4日上午10:59:07
* @param id
* @return
* @throws Exception
*/
WorkOrderBean getWorkOrderById(String id) throws Exception;
SchWorkorder getSchWorkorderById(String id);
/**
* 新增工单
* @author Leejean
* @create 2014年12月24日下午1:22:48
* @param workOrderBean
* @return
*/
void addOrder(WorkOrderBean workOrderBean) throws Exception;
/**
* 初始化所有运行的工单辅料计数参数
* @author Leejean
* @create 2015年1月20日下午3:25:36
*/
void initAllRunnedWorkOrderCalcValues() throws Exception;
/**
* 运行的工单
* @param code
* @return
*/
SchWorkorder getRunSchWorkorder(String code)throws Exception;
/**
* 根据设备CODE 获取正在运行的工单 并填充辅料
* @throws Exception
*/
void queryRunWorkFl(SchWorkorder workorder) throws Exception;
/**
* 新增排班
* @param workOrderBean
* @return
*/
boolean addPbWork(WorkOrderBean workOrderBean) throws Exception;
/**
* 批量新增指定机台数据
* @author luther.zhang
* @create 2015-04-29
*/
boolean saveBatckWork(WorkOrderBean workBean) throws Exception;
//END================================================================
/**
* 查询上一班次采集数据详细
* @createTime 2015年10月26日08:35:09
* @author wanchanghuang
* */
Map> getMapChangeShiftDates(ChangeShiftDatas csd);
/**
* 删除工单
* @param ids
* shisihai
*/
void deleteWorkOrders(String ids,String eqpName,String team,String date,String mat,SessionInfo info);
/**
* 批量删除工单
* @param ids
* shisihai
*/
void deleteBeatchWorkOrders(String ids, String eqpName, String team, String date, String mat,
SessionInfo info);
/**
* 【功能说明】:MES工单撤销
* @author wanchanghuang
* @createTime 2015年12月29日13:35:28
* */
boolean updateTntryCancel(SchWorkorder pxd);
/**
* 【功能说明】:工单信号
* @author wch
* @return
* @createTime 2015年12月18日09:07:30
*
* */
boolean deleteAndCancelWS(ParsingXmlDataBean pxd);
/**
* [功能说明]:质量接口-基础表QUALITY_INSPECTION
* @author wanchanghuang
* @crateTime 2016年1月12日16:40:37
*
* */
QualityCheckInfo saveQualityInfo(QualityCheckInfo qci);
/**
* [功能说明]:质量接口-基础详细QUALITY_INSPECTION_PARAM
* @author wanchanghuang
* @crateTime 2016年1月12日16:40:37
*
* */
void saveQualityParamInfo(QualityCheckInfoParams qcip);
/**
* [功能描述]:接口解析完成,调用日志
* @author wanchanghuang
* @createTime 2016年1月12日17:36:35
* */
void saveAndReturn(SysMessageQueue log);
/**
* [功能描述]:接口解析,保存工厂日历
* @author wanchanghuang
* @createTime 2016年1月13日09:37:12
* */
void saveSchCalendar(SchCalendar scr1);
/**
* [功能描述]:接口解析,批量保存工厂日历
* @author shisihia
* @createTime 2016年1月13日09:37:12
* */
boolean batchInsertAndReturn(List schCalendars);
/**
* [功能描述]:接口解析,删除日历,防止重复
* @author shisihia
* @createTime 2016年1月13日09:37:12
* */
void deleteCalendar(SchCalendar sCalendars,SchCalendar eCalendars);
/**
* [功能描述]:接口解析,工单下发,保存工单主数据
* @author wanchanghuang
* @createTime 2016年1月13日09:37:12
* */
SchWorkorder addSchWorkOrder(SchWorkorder swd);
/**
* [功能描述]:接口解析,工单下发,保存工单对应的辅料主数据
* @author wanchanghuang
* @createTime 2016年1月13日09:37:12
* */
void saveSchWorkOrderBom(SchWorkorderBom swb);
/**
* [功能描述]:物料主数据
* @return
*
* */
String queryRetByCode(MdMatType mmt);
/**
* [功能描述]:插入md_mat表数据
*
* */
void saveMdMatByCode(MdMat mm);
/**
* 判断该工单是否处于非运行和非完成状态
* @param workCode
* @return
* @throws Exception
*/
/**
*
* @param workCode
* @param CancelRequest true 请求撤销 false MES返回的工单撤销确认信息
* @return
* @throws Exception
*/
String CancelRequestWorkOrderByCode(String workCode,boolean CancelRequest) throws Exception;
/**
* 反馈MES请求工单撤销处理结果
* @throws Exception
*/
void MESRequestCancelWorkOrder(String workOrderId,Long sts) throws Exception;
/**
* 改变已反馈的工单的反馈状态
* @param ids
* @return
* @throws Exception
*/
void updateOrder(String ids)throws Exception;
/**
* 接口批量插入工单
* @param mats
* @throws Exception
*/
void batchAddSchWorkOrder(List orders) throws Exception;
/**
* 改变已反馈的发射工单的反馈状态
* @param ids
* @return
* @throws Exception
*/
void updateFSJOrder(String ids)throws Exception;
/**
* 接口批量插入工单bom
* @param mats
* @throws Exception
*/
void batchAddSchWorkOrderBom(List ordersBoms) throws Exception;
/**
* 查询工单是否已经存在
* @param orderCode
* @return
* @throws Exception
*/
boolean isExistByWorkOrderCode(String orderCode) throws Exception;
/**
* 接口删除处于撤销状态的工单
*/
void deleteOrderByCode(String orderId) throws Exception;
/**
* 运行时间修改
*/
String editRuntime(String stim,String etim,String ids);
/**
* 运行时间查询
*/
WorkOrderBean getRuntime(String ids);
//-------------------------发射机工单------------------------
/**通过工单code,查询数据库 */
boolean isExistByWorkOrderCodeFSJ(String workOrderCode);
/**保存发射机工单*/
void saveTransmitterWorkOrder(TransmitterWorkOrderBean tbean);
/**
* 根据设备CODE 获取正在运行的工单 并填充辅料
* @throws Exception
*/
TransmitterWorkOrderBean getRunOrders(String eqp) throws Exception;
/**
* 查询所有工单
* @author Leejean
* @create 2014年11月18日下午3:55:00
* @param workOrderBean 查询条件
* @param pageParams 分页参数
* @return
*/
DataGrid getAllFSJOrders(TransmitterWorkOrderBean workOrderBean,PageParams pageParams) throws Exception;
/**
* 审核工单 单个
* @author Leejean
* @create 2014年11月25日下午1:09:15
* @param id 工单id号
* @throws Exception
*/
void checkFSJOrder(String id) throws Exception;
/**
* 审核工单 批量
* @author Leejean
* @create 2014年11月25日下午1:09:15
* @param ids
* @throws Exception
*/
void checkFSJOrders(String ids) throws Exception;
/**
* @title editFSJOrderStatus
* @description 修改发射机工单状态
* @author bsw
* @params [id, sts]
* @updateTime 11:02 2019/8/5 0005
* @return void
**/
void editFSJOrderStatus(String id,Long sts) throws Exception;
/**
* 根据id获取工单
* @author Leejean
* @create 2014年12月4日上午10:59:07
* @param id
* @return
* @throws Exception
*/
TransmitterWorkOrderBean getFSJOrderById(String id) throws Exception;
/**
* 新增工单
* @author Leejean
* @create 2014年12月24日下午1:22:48
* @param workOrderBean
* @return
*/
void addFSJOrder(TransmitterWorkOrderBean workOrderBean) throws Exception;
/**
* 删除工单
* @param ids
* shisihai
*/
void deleteFSJOrders(String ids,String eqpName,String team,String date,String mat,SessionInfo info);
/**
* 批量删除工单
* @param ids
* shisihai
*/
void deleteBeatchFSJOrders(String ids, String eqpName, String team, String date, String mat,
SessionInfo info);
String editFSJRuntime(String stim, String etim, String ids);
TransmitterWorkOrderBean getFSJRuntime(String ids);
DataGrid getAllFSJOrderDetails(TransmitterWorkOrderBean workOrderBean, PageParams pageParams);
TransmitterOutput querytransmitterOutPut(String id);
void saveFSJDatas(TransmitterOutput tobean);
/**
* [说明]: 查询
* @author wanchanghuang
* @date 2019年5月8日09:42:23
*/
long querySchWorkOrderByCode(SchWorkorder schWk);
/**
* [说明]:添加
* @author wanchanghuang
* @date 2019年5月8日09:42:29
*/
void addSchWorkOrderObj(SchWorkorder schWk);
/**
* [说明]:工单撤销-查询
* @author wanchanghuang
* @date 2019年5月8日09:42:29
*/
long querySchworkOrderByCodes(SchWorkorder wkorder);
/**
* [说明]:工单撤销-修改工单状态
* @author wanchanghuang
* @date 2019年5月8日09:42:29
*/
void updateSchWorkOrderStatus(SchWorkorder wkorder);
List queryBomVersionByProd(String matid);
List getParamVersionByProd(String matid);
DataGrid getBomDetail(String bomVersion);
boolean saveBatckWorkFSJ(TransmitterWorkOrderBean bean, String date1, String date2) throws Exception;
long queryTransmitterOrderByCode(String workOrderCode);
SchWorkorder findWorkOrderByDateShiftEqp(String date,String shift,String eqp);
String sendOrderChange(String ids);
SchCalendar queryTeamByDateShift(String actualDate, String shift);
}