package com.ld.igds.order; import com.ld.igds.io.request.BaseRequest; import com.ld.igds.order.data.ExeRequest; import com.ld.igds.order.data.ExeResponse; import java.util.List; /** * 命令执行校验等信息接口 * * @author jiazx */ public interface ExeOrderService { ExeResponse checkExecute(ExeRequest request); void addThCache(ExeRequest request); /** * 新增执行缓存记录,默认命令存放8个小时。 * * @param request */ void addCache(ExeRequest request); /** * 设备操作执行记录,默认存8个小时 * * @param exeRequest */ void addControlCacheAndLog(ExeRequest exeRequest); /** * 按照分机添加操作缓存 -- 主要用于设备操作情景,缓存时间5分钟 * * @param request */ void addControlCache(ExeRequest request); /** * 获取设备操作缓存记录 * * @param companyId * @param serId * @return */ ExeRequest getControlCache(String companyId, String serId); /** * 添加执行错误日志信息,系统自动更新执行进度,有执行进度跟踪的模块需要 * * @param companyId 组织编码 * @param bizType 业务类型 * @param deptId 库区编码 * @param depotId 仓库编码 * @param msg 错误信息 */ void addErrorCache(String companyId, String bizType, String deptId, String depotId, String msg); void addErrorCache(BaseRequest request, String msg); void addLogAndCache(ExeRequest exeRequest); /** * 根据参数获取执行中的命令信息, * * @param bizType 业务类型,不可为空 * @param orderId 命令ID,不可为空 * @return 缓存中的命令信息 */ ExeRequest getOrderById(String bizType, String orderId); /** * 根据分机获取正在执行的命令信息 * * @param bizType 业务类型,不可为空 * @param serId 分机编码,不可以空 * @return 执行中的命令信息 */ List getInProgressOrderBySerId(String bizType, String serId); /** * 根据业务类型和所属分库,获取缓存中所有当前分库的命令记录 * * @param bizType 不可为空 * @param deptId 所属分库,不可为空 * @param timout 超时时间单位S,超过这个时间默认标记为超时状态,0表示不处理 * @return 缓存中的命令记录 */ List getAllOrderByDeptId(String bizType, String deptId, int timout); /** * 标记为命令完成,系统自动删除 * * @param exeRequest */ void completeCache(ExeRequest exeRequest, boolean isError); /** * 执行失败进度调整 */ void progressError(String companyId, String bizType, String deptId, String msg); /** * 清除日志 * * @param companyId * @param code * @param deptId */ void clean(String companyId, String code, String deptId); }