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

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);
}