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.
255 lines
8.7 KiB
255 lines
8.7 KiB
package com.gaotao.modules.automatedWarehouse.service;
|
|
|
|
import com.gaotao.modules.automatedWarehouse.entity.*;
|
|
import com.gaotao.modules.base.entity.PalletType;
|
|
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
public interface WcsIntegrationService {
|
|
List<WmsLabelAndPalletData> palletListForPartNo(PartPalletData inData);
|
|
|
|
void callPalletFromWcs(List<WmsLabelAndPalletData> data);
|
|
|
|
/**
|
|
* 【新方法】直接Call栈板(不使用定时任务方式) - rqrq
|
|
* @param data 栈板明细列表
|
|
* @return 包含成功数量和失败栈板列表的Map
|
|
* @author rqrq
|
|
* @date 2025/10/04
|
|
*/
|
|
Map<String, Object> callPalletFromWcsNew(List<WmsLabelAndPalletData> data);
|
|
|
|
// ==================== 打托相关方法 - AI制作 ====================
|
|
|
|
/**
|
|
* 检查栈板是否存在并获取位置信息 - AI制作
|
|
*/
|
|
Map<String, Object> checkPalletExists(Map<String, Object> params) ;
|
|
|
|
/**
|
|
* @Description 简单查询栈板信息(无任何校验)- rqrq
|
|
* @Title getPalletInfoSimple
|
|
* @param params 查询参数(site, palletId)
|
|
* @return 栈板信息(包含positions)
|
|
* @author rqrq
|
|
* @date 2025/10/09
|
|
*/
|
|
Map<String, Object> getPalletInfoSimple(Map<String, Object> params);
|
|
|
|
/**
|
|
* 获取栈板明细 - AI制作
|
|
*/
|
|
List<Map<String, Object>> getPalletDetails(Map<String, Object> params) throws Exception;
|
|
|
|
/**
|
|
* 根据位置获取层数 - AI制作
|
|
*/
|
|
List<Integer> getLayersByPosition(Map<String, Object> params) throws Exception;
|
|
|
|
/**
|
|
* 保存栈板明细(扫进) - AI制作
|
|
*/
|
|
void savePalletDetail(Map<String, Object> params) throws Exception;
|
|
|
|
/**
|
|
* 删除栈板明细(扫出) - AI制作
|
|
*/
|
|
void deletePalletDetail(Map<String, Object> params) throws Exception;
|
|
|
|
/**
|
|
* 获取编辑位置时的层数选项(排除指定标签) - AI制作
|
|
*/
|
|
List<Integer> getLayersForEdit(Map<String, Object> params) throws Exception;
|
|
|
|
/**
|
|
* 更新栈板明细位置 - AI制作
|
|
*/
|
|
void updatePalletDetailPosition(Map<String, Object> params) throws Exception;
|
|
|
|
// ==================== 运输任务相关方法 - AI制作 ====================
|
|
|
|
/**
|
|
* 获取AGV站点列表 - AI制作
|
|
*/
|
|
List<Map<String, Object>> getAgvStations(Map<String, Object> params) throws Exception;
|
|
|
|
/**
|
|
* 获取可用的AGV站点列表(已在后台过滤状态和类型)- AI制作
|
|
* @param params statusDb: 站点状态(0-空闲,1-有货),null则不过滤
|
|
* @return 符合条件的正式站点列表
|
|
*/
|
|
List<AgvStation> getAvailableAgvStations(Map<String, Object> params) throws Exception;
|
|
|
|
/**
|
|
* 根据起点站点获取可达目标站点 - AI制作
|
|
*/
|
|
List<Map<String, Object>> getTargetStations(Map<String, Object> params) throws Exception;
|
|
|
|
/**
|
|
* 创建栈板运输任务 - AI制作
|
|
*/
|
|
void createPalletTransportTask(Map<String, Object> params) throws Exception;
|
|
|
|
/**
|
|
* Call栈板到指定站点 - AI制作
|
|
*/
|
|
void callPalletToStation(CallPalletRequestDto request) ;
|
|
|
|
/**
|
|
* Call栈板到指定站点(包含组盘处理) - AI制作
|
|
*/
|
|
void callPalletToStationWithUpdateZuPan(CallPalletRequestDto request) ;
|
|
|
|
/**
|
|
* 更新栈板明细的wcs_flag为0(已传输给WCS) - AI制作
|
|
*/
|
|
void updatePalletDetailWcsFlag(String site, String palletId) throws Exception;
|
|
|
|
/**
|
|
*
|
|
*/
|
|
void pushPalletDetailNew(String site, String palletId,String taskNo ,Integer itemNo,String endFlag);
|
|
|
|
/**
|
|
* 获取栈板详细信息(包含palletType和autoSort) - AI制作
|
|
*/
|
|
/**
|
|
* 获取栈板详细信息(包含类型关联数据) - AI制作
|
|
* @param params 查询参数(包含site和palletId)
|
|
* @return 栈板详细信息实体类
|
|
*/
|
|
com.gaotao.modules.warehouse.entity.PalletData getPalletInfo(Map<String, Object> params) throws Exception;
|
|
|
|
/**
|
|
* 更新栈板类型和自动分拣标志 - AI制作
|
|
*/
|
|
void updatePalletTypeAndAutoSort(Map<String, Object> params) throws Exception;
|
|
|
|
/**
|
|
* 完成组托(不创建运输任务,只推送组托数据到WCS) - AI制作
|
|
* @param params 包含site和palletId
|
|
*/
|
|
void completePalletAssembly(Map<String, Object> params) throws Exception;
|
|
void completePalletAssemblyForFenJian(Map<String, Object> params) throws Exception;
|
|
/**
|
|
* 获取指定层数下各个位置的可用状态 - rqrq
|
|
* @param params {site, palletId, layer}
|
|
* @return 包含positions(位置列表)、availablePositions(可用位置)、maxLayer(最大层数)、isMixed(是否混装)
|
|
*/
|
|
Map<String, Object> getAvailablePositionsForLayer(Map<String, Object> params) throws Exception;
|
|
|
|
/**
|
|
* @Description 恢复标签到原栈板(分拣撤回,保留所有原始字段包括wcs_flag)- rqrq
|
|
* @Title restorePalletDetail
|
|
* @param data 恢复标签请求参数实体
|
|
* @return void
|
|
* @author rqrq
|
|
* @date 2025/10/09
|
|
*/
|
|
void restorePalletDetail(RestorePalletDetailData data) throws Exception;
|
|
|
|
/**
|
|
* @Description 查询标签当前所在栈板的信息(包括wcs_flag等完整字段)- rqrq
|
|
* @Title getLabelInfo
|
|
* @param data 查询标签信息请求参数实体
|
|
* @return LabelInfoResult 标签信息结果实体
|
|
* @author rqrq
|
|
* @date 2025/10/09
|
|
*/
|
|
LabelInfoResult getLabelInfo(GetLabelInfoData data) throws Exception;
|
|
|
|
// ==================== 栈板换站相关方法 - rqrq ====================
|
|
|
|
/**
|
|
* @Description 检查栈板是否可以换站(判断calling_flag和获取当前站点信息)- rqrq
|
|
* @Title checkPalletForChangeStation
|
|
* @param params {site, palletId}
|
|
* @return 栈板信息(包含callingFlag、currentStationId、currentStationCode)
|
|
* @author rqrq
|
|
* @date 2025/10/16
|
|
*/
|
|
CheckPalletResult checkPalletForChangeStation(Map<String, Object> params);
|
|
|
|
/**
|
|
* @Description 获取可选择的区域列表(choose_able为Y)- rqrq
|
|
* @Title getAreaOptionsForChange
|
|
* @param params 查询参数
|
|
* @return 区域列表
|
|
* @author rqrq
|
|
* @date 2025/10/16
|
|
*/
|
|
List<Area> getAreaOptionsForChange(Map<String, Object> params);
|
|
|
|
/**
|
|
* @Description 根据区域获取可用站点列表 - rqrq
|
|
* @Title getStationsByArea
|
|
* @param params {areaId}
|
|
* @return 站点列表(active=Y, station_type=正式站点, status_db=0)
|
|
* @author rqrq
|
|
* @date 2025/10/16
|
|
*/
|
|
List<AgvStation> getStationsByArea(Map<String, Object> params);
|
|
|
|
// ==================== 手工移动托盘相关方法 - rqrq ====================
|
|
|
|
/**
|
|
* @Description 检查托盘是否可以手工移动 - rqrq
|
|
* @Title checkPalletForManualMove
|
|
* @param params {site, palletId}
|
|
* @return 托盘信息(包含calling_flag、当前站点编码、站点类型、是否可操作)
|
|
* @author rqrq
|
|
* @date 2025/10/16
|
|
*/
|
|
CheckPalletResult checkPalletForManualMove(Map<String, Object> params);
|
|
|
|
/**
|
|
* @Description 移出站点(更新托盘location_code为null,更新站点状态为空闲)- rqrq
|
|
* @Title removeFromStation
|
|
* @param params {site, palletId, stationCode}
|
|
* @author rqrq
|
|
* @date 2025/10/16
|
|
*/
|
|
void removeFromStation(Map<String, Object> params);
|
|
|
|
/**
|
|
* @Description 绑定托盘到站点(更新托盘location_code,更新站点状态为有货)- rqrq
|
|
* @Title bindPalletToStation
|
|
* @param params {site, palletId, stationCode}
|
|
* @author rqrq
|
|
* @date 2025/10/16
|
|
*/
|
|
void bindPalletToStation(Map<String, Object> params);
|
|
|
|
// ==================== 空托盘组盘相关方法 - rqrq ====================
|
|
|
|
/**
|
|
* @Description 检查托盘是否为空托盘 - rqrq
|
|
* @Title checkEmptyPallet
|
|
* @param params {site, palletId}
|
|
* @return 托盘信息(包含当前站点ID、站点编码、托盘类型、是否为空托盘)
|
|
* @author rqrq
|
|
* @date 2025/10/16
|
|
*/
|
|
CheckPalletResult checkEmptyPallet(Map<String, Object> params);
|
|
|
|
/**
|
|
* @Description 获取托盘类型列表(根据pallet_family过滤)- rqrq
|
|
* @Title getPalletTypes
|
|
* @param params {site, palletFamily}
|
|
* @return 托盘类型列表
|
|
* @author rqrq
|
|
* @date 2025/10/16
|
|
*/
|
|
List<PalletType> getPalletTypes(Map<String, Object> params);
|
|
|
|
/**
|
|
* @Description 空托盘通知入库 - rqrq
|
|
* @Title notifyEmptyPalletInbound
|
|
* @param params {site, palletId, transportFlag}
|
|
* @author rqrq
|
|
* @date 2025/10/16
|
|
*/
|
|
void notifyEmptyPalletInbound(Map<String, Object> params);
|
|
|
|
}
|