You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

356 lines
14 KiB

package com.gaotao.modules.autoWareHourceHaian.service;
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnAreaOption;
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnAvailablePositionsResult;
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnCallPalletResult;
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnCancelReserveLabelResult;
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnCheckPalletResult;
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnPalletDetailRow;
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnPalletInfoResult;
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnPalletListRow;
import com.gaotao.modules.autoWareHourceHaian.entity.HaiAnPalletTransferEnqueueResult;
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnPalletMergeResult;
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnPalletRelocateScanResult;
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnForceRemovePalletResult;
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnPalletSpecialEditResult;
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnPalletReservedResult;
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnPalletScanResult;
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnPalletTypeAreaOption;
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnPalletTypeOption;
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnPdaRequest;
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnSortingListResult;
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnStationRow;
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnStationsByAreaResult;
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnWcsActionResult;
import java.util.List;
/**
* @author rqrq
* @Description 海安PDA立库服务接口,所有入参/回参强制实体化,禁止Map参数协议 - rqrq
*/
public interface HaiAnPdaAutoWarehouseService {
/**
* @author rqrq
* @Description 校验海安栈板存在性并返回位置基础数据;组盘入库/手工组盘拦截分拣与被分拣盘;人工分拣页才带出 sortedSourceFlag - rqrq
*/
HaiAnPalletScanResult checkPalletExists(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 简单查询栈板信息,不做额外业务拦截用于查看页扫描入口 - rqrq
*/
HaiAnPalletScanResult getPalletInfoSimple(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 查询海安栈板明细,支持位置/层级过滤 - rqrq
*/
List<HaiAnPalletDetailRow> getPalletDetails(HaiAnPdaRequest request) throws Exception;
/**
* @author rqrq
* @Description 查询某位置已有层级并回传前端可选层清单 - rqrq
*/
List<Integer> getLayersByPosition(HaiAnPdaRequest request) throws Exception;
/**
* @author rqrq
* @Description 查询栈板预定清单,供PDA查看托盘页面展示 - rqrq
*/
HaiAnPalletReservedResult getPalletReservedLabels(HaiAnPdaRequest request) throws Exception;
/**
* @author rqrq
* @Description 批量取消栈板标签预定,复用handling_unit预定字段机制 - rqrq
*/
void batchCancelReserve(HaiAnPdaRequest request) throws Exception;
/**
* @author rqrq
* @Description 保存扫入标签;组盘入库/手工组盘禁止A0206主动扫入且拦截分拣盘;人工分拣/被分拣扫入不拦A0206 - rqrq
*/
void savePalletDetail(HaiAnPdaRequest request) throws Exception;
/**
* @author rqrq
* @Description 扫出标签:组盘入库/手工组盘拦截分拣盘并校验 pack_able;仅人工分拣页被分拣源盘按解绑处理 - rqrq
*/
void deletePalletDetail(HaiAnPdaRequest request) throws Exception;
/**
* @author rqrq
* @Description 分拣扫回恢复标签到原位置,保留原始轨迹字段 - rqrq
*/
void restorePalletDetail(HaiAnPdaRequest request) throws Exception;
/**
* @author rqrq
* @Description 查询标签当前所在海安栈板信息,用于分拣撤回缓存 - rqrq
*/
HaiAnPalletDetailRow getLabelInfo(HaiAnPdaRequest request) throws Exception;
/**
* @author rqrq
* @Description 编辑位置时查询可用层级,避免同位置层级冲突 - rqrq
*/
List<Integer> getLayersForEdit(HaiAnPdaRequest request) throws Exception;
/**
* @author rqrq
* @Description 更新标签位置层级并重置待提交标记 - rqrq
*/
void updatePalletDetailPosition(HaiAnPdaRequest request) throws Exception;
/**
* @author rqrq
* @Description 查询指定层位置可用状态,驱动前端九宫格交互 - rqrq
*/
HaiAnAvailablePositionsResult getAvailablePositionsForLayer(HaiAnPdaRequest request) throws Exception;
/**
* @author rqrq
* @Description 查询海安栈板+托盘类型联合信息,供页面回显与规则判断 - rqrq
*/
HaiAnPalletInfoResult getPalletInfo(HaiAnPdaRequest request) throws Exception;
/**
* @author rqrq
* @Description 更新栈板托盘类型与自动分拣配置,支持强制整托出库映射 - rqrq
*/
void updatePalletTypeAndAutoSort(HaiAnPdaRequest request) throws Exception;
/**
* @author rqrq
* @Description 保存 A0206 手工备注到 haian_pallet.manual_remark。只改这一列,不改占用备注。类型不是 A0206 时拒绝。 - rqrq
*/
void updatePalletManualRemark(HaiAnPdaRequest request) throws Exception;
/**
* @author rqrq
* @Description 手工分拣提交:工作盘只推增量;被分拣源盘按放回语义 Type=2+endFlag=Y,无增量也发空报文通知回库 - rqrq
*/
HaiAnWcsActionResult completePalletAssemblyForFenJian(HaiAnPdaRequest request) throws Exception;
/**
* @author rqrq
* @Description 查询海安区域列表(choose_able=Y),按site隔离 - rqrq
*/
List<HaiAnAreaOption> getAreaOptionsForChange(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 栈板换站扫描校验,返回calling_flag与当前站点信息 - rqrq
*/
HaiAnCheckPalletResult checkPalletForChangeStation(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 提交海安托盘换站任务:写haian_wms_order_task并下达库外搬运接口 - rqrq
*/
void submitChangeStationTask(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 查询可用站点清单(兼容旧前端结构,海安侧返回静态或占位)- rqrq
*/
List<HaiAnStationRow> getAvailableAgvStations(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 通过haian_area.wcs_area_code调用getGroundLocationList(status=IDLE)获取空闲站点清单并解析locationCode/status - rqrq
*/
HaiAnStationsByAreaResult getStationsByArea(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 调用空托盘动作,按开关执行真实调用或短路通过 - rqrq
*/
HaiAnWcsActionResult callEmptyPalletToStation(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 组盘运输入库动作,按开关执行真实调用或短路通过 - rqrq
*/
HaiAnWcsActionResult callPalletToStationWithUpdateZuPan(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 结束分拣:有无增量均下发结束报文,仅人工分拣位当前盘置calling_flag=Y、remark=手工分拣结束分拣;WCS成功后该盘普通明细置1供下次回库全量下发,负数业务状态保留;其他位置仍只清已提交增量,失败回滚本地状态,不写WOT/WTT - rqrq
*/
HaiAnWcsActionResult finishSorting(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description Call料到指定位置动作,按开关执行真实调用或短路通过 - rqrq
*/
HaiAnWcsActionResult callOutToStation(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 立库特殊操作-Call料:目标固定整托出库口,其余逻辑沿用海安Call料链路 - rqrq
*/
HaiAnWcsActionResult callOutToOutboundPort(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 空托盘组盘入口:校验托盘是否为空并返回站点/类型信息 - rqrq
*/
HaiAnCheckPalletResult checkEmptyPallet(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 立库特殊操作-直接组盘:仅允许area/location为空的托盘推送到固定入库口 - rqrq
*/
HaiAnWcsActionResult pushPalletAssemblyToInboundPort(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 空托盘通知入库:写海安任务并按开关调用/短路立库接口 - rqrq
*/
void notifyEmptyPalletInbound(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 检查取消组盘页面状态:返回调用标记、是否已推送、是否有明细 - rqrq
*/
HaiAnCheckPalletResult checkPalletWcsStatus(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 取消组盘:回滚明细wcs_flag并恢复托盘calling_flag - rqrq
*/
void cancelWcsPallet(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 一键移出全部物料:删除haian_pallet_detail并刷新empty_flag - rqrq
*/
void removeAllPalletDetails(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 立库特殊操作-栈板人工移动扫描校验,返回当前站点与calling状态 - rqrq
*/
HaiAnCheckPalletResult checkPalletForManualMove(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 立库特殊操作-栈板人工移动(移出站点):清空托盘绑定并同步地面点位状态 - rqrq
*/
void removeFromStation(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 立库特殊操作-栈板人工移动(绑定站点):写入区域站点后触发海安独立移库入队,并同步地面点位状态 - rqrq
*/
void bindPalletToStation(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 合托来源托盘校验:检查存在性、调用状态、A0206,并且必须已有明细 - rqrq
*/
HaiAnPalletMergeResult checkPalletForMerge(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 合托目标托盘校验:检查存在性、调用状态、A0206;允许没有明细,空托可作为接收方 - rqrq
*/
HaiAnPalletMergeResult checkTargetPalletForMerge(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 合托目标托盘类型校验:禁止A0206,仅允许混装托盘(wcsAutoSort=N) - rqrq
*/
HaiAnPalletMergeResult checkTargetPalletType(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 合托明细查看:按site+palletId返回托盘明细列表 - rqrq
*/
List<HaiAnPalletDetailRow> getPalletDetailForMerge(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 执行合托:将来源托盘明细转移到目标托盘;A0206来源或目标都拒绝 - rqrq
*/
void executePalletMerge(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 查询可Call料海安栈板清单,列表字段优先来自haian_pallet_detail - rqrq
*/
List<HaiAnPalletListRow> palletListForPartNo(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 立库特殊操作-合托Call板:扫描单托下达到整托出库口(与 Call料同一出口),返回成功失败统计 - rqrq
*/
HaiAnCallPalletResult scanAndCallPalletForHetuo(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 立库特殊操作-取消预定查询:按标签返回库存与预定信息 - rqrq
*/
HaiAnCancelReserveLabelResult queryLabelInfo(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 立库特殊操作-取消预定提交:按标签释放reserve_flag及引用单据字段 - rqrq
*/
void cancelReserve(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 查询分拣清单,按开关走静态返回或真实立库调用 - rqrq
*/
HaiAnSortingListResult getSortingList(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 查询海安托盘类型列表,供PDA下拉选择 - rqrq
*/
List<HaiAnPalletTypeOption> getPalletTypeList(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 查询海安托盘类型点位配置,驱动扫入位置可选项 - rqrq
*/
List<HaiAnPalletTypeAreaOption> getPalletTypeAreas(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 栈板重移库扫描:无区域拒绝;有区域则返回区域描述、仓库库位,以及库位不一致的标签 - rqrq
*/
HaiAnPalletRelocateScanResult scanPalletForRelocate(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 栈板重移库提交:按托盘当前区域再次调用自动移库,只搬仓库或库位不一致的在库标签 - rqrq
*/
HaiAnPalletTransferEnqueueResult retryPalletRelocate(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 栈板特殊修改扫描:回显calling_flag、区域、位置,以及wcs_location是否为空 - rqrq
*/
HaiAnPalletSpecialEditResult scanPalletForSpecialEdit(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 栈板特殊修改保存:位置为空时区域、位置及货架点位置NULL;其它字段按有效输入保存,失败回滚 - rqrq
*/
void savePalletSpecialEdit(HaiAnPdaRequest request);
/**
* 强制置空非立库托盘的区域、位置及货架点位,调用标记置N并清空备注;完成后先把明细wcs_flag 0改1,再调用立库errorPalletRefresh,同步失败不回滚本地置空 - rqrq
*/
HaiAnForceRemovePalletResult forceRemovePalletSpecialEdit(HaiAnPdaRequest request);
/**
* @author rqrq
* @Description 栈板特殊修改按区域查全部地面站点。立库区域拒绝,其它区域合并空闲、已装载、运输中、空载,供所在位置下拉 - rqrq
*/
List<HaiAnStationRow> listStationsForSpecialEdit(HaiAnPdaRequest request);
}