|
|
|
@ -1805,13 +1805,10 @@ public class HaiAnPdaAutoWarehouseServiceImpl implements HaiAnPdaAutoWarehouseSe |
|
|
|
throw new RuntimeException("组盘业务类型type仅支持1入库组盘、2分拣放回、3分拣出库"); |
|
|
|
} |
|
|
|
|
|
|
|
// 3. 只有通知回库(type=2)必须使用页面选择的高度。组盘入库、分拣出库、结束分拣和直接组盘都传空,不复用托盘旧高度,也不补低于600 - rqrq |
|
|
|
String height = ""; |
|
|
|
if (HaiAnAssembleTypeStaticData.TYPE_SORT_RETURN.equals(assembleType)) { |
|
|
|
if (!HaiAnHeightStaticData.isAllowed(request.getHeight())) { |
|
|
|
throw new RuntimeException("通知回库必须选择托盘高度,仅支持低于600、600-1100、1100-1650"); |
|
|
|
} |
|
|
|
height = request.getHeight().trim().toUpperCase(); |
|
|
|
// 3. 只有通知回库(type=2)校验高度。组盘入库、提交分拣、结束分拣、直接组盘传空串,空值合法 - rqrq |
|
|
|
String height = HaiAnHeightStaticData.resolveAssembleHeight(assembleType, request.getHeight()); |
|
|
|
if (height == null) { |
|
|
|
throw new RuntimeException("通知回库必须选择托盘高度,仅支持低于600、600-1100、1100-1650"); |
|
|
|
} |
|
|
|
|
|
|
|
// 4. 统一解析endFlag:显式值必须是Y/N;未传时按Type推导(1=Y,其它=N) - rqrq |
|
|
|
@ -2188,13 +2185,14 @@ public class HaiAnPdaAutoWarehouseServiceImpl implements HaiAnPdaAutoWarehouseSe |
|
|
|
request.setItemNo(1); |
|
|
|
request.setOriBarcode(oriBarcode); |
|
|
|
if (sortedSourcePallet) { |
|
|
|
// 被分拣放回:type=2,endFlag=Y 告诉立库本包闭环可走 - rqrq |
|
|
|
// 被分拣放回:type=2,endFlag=Y 告诉立库本包闭环可走。这一条才校验高度 - rqrq |
|
|
|
request.setType(HaiAnAssembleTypeStaticData.TYPE_SORT_RETURN); |
|
|
|
request.setEndFlag(HaiAnAssembleTypeStaticData.END_FLAG_YES); |
|
|
|
} else { |
|
|
|
// 人工工作盘提交增量属于分拣出库,显式传type=3;endFlag=N表示本次尚未结束分拣 - rqrq |
|
|
|
// 工作盘提交分拣是 type=3,不选高度。先清掉入参,避免空值被通知回库规则拦住 - rqrq |
|
|
|
request.setType(HaiAnAssembleTypeStaticData.TYPE_SORT_OUTBOUND); |
|
|
|
request.setEndFlag(HaiAnAssembleTypeStaticData.END_FLAG_NO); |
|
|
|
request.setHeight(""); |
|
|
|
} |
|
|
|
HaiAnAssemblePalletRequest assembleRequest = buildAssembleRequest(request, palletInfo, detailRows); |
|
|
|
// 本次有增量才联动申请单立库取出及海安任务状态;与WCS下发处于同一事务,外呼失败回滚标记 - rqrq |
|
|
|
@ -2800,6 +2798,8 @@ public class HaiAnPdaAutoWarehouseServiceImpl implements HaiAnPdaAutoWarehouseSe |
|
|
|
request.setItemNo(1); |
|
|
|
request.setType(HaiAnAssembleTypeStaticData.TYPE_INBOUND); // 入库组盘 - rqrq |
|
|
|
request.setEndFlag(HaiAnAssembleTypeStaticData.END_FLAG_YES); // 运输入库为本次组盘闭环动作 - rqrq |
|
|
|
// 组盘入库不选高度,空串合法,不能沿用托盘上一次通知回库留下的档位 - rqrq |
|
|
|
request.setHeight(""); |
|
|
|
// 报文构建在单一方法完成:必填type校验、endFlag规则和cargoInfos组装统一核对,失败不外呼 - rqrq |
|
|
|
HaiAnAssemblePalletRequest assembleRequest = buildAssembleRequest(request, palletInfo, newDetailRows); |
|
|
|
// 运输入库高度固定空串;A0206空盘传空cargoInfos,其余按位置/层数/条码组装,组包失败不下发WCS - rqrq |
|
|
|
@ -2938,6 +2938,8 @@ public class HaiAnPdaAutoWarehouseServiceImpl implements HaiAnPdaAutoWarehouseSe |
|
|
|
request.setItemNo(1); |
|
|
|
request.setType(HaiAnAssembleTypeStaticData.TYPE_INBOUND); |
|
|
|
request.setEndFlag(HaiAnAssembleTypeStaticData.END_FLAG_YES); |
|
|
|
// 直接组盘不选高度,报文固定空串 - rqrq |
|
|
|
request.setHeight(""); |
|
|
|
HaiAnAssemblePalletRequest assembleRequest = buildAssembleRequest(request, palletInfo, newDetailRows); |
|
|
|
// 直接组盘目标位置固定为入库口,不使用托盘当前location_code - rqrq |
|
|
|
assembleRequest.setAssemblyPosition(assemblyPosition); |
|
|
|
@ -3058,6 +3060,8 @@ public class HaiAnPdaAutoWarehouseServiceImpl implements HaiAnPdaAutoWarehouseSe |
|
|
|
request.setOriBarcode(oriBarcode); |
|
|
|
request.setType(HaiAnAssembleTypeStaticData.TYPE_SORT_OUTBOUND); |
|
|
|
request.setEndFlag(HaiAnAssembleTypeStaticData.END_FLAG_YES); |
|
|
|
// 结束分拣不选高度,空串合法 - rqrq |
|
|
|
request.setHeight(""); |
|
|
|
// 组装报文沿用生成的taskNo、type=3、endFlag=Y及增量或空cargoInfos;组包失败回滚本地状态且不外呼 - rqrq |
|
|
|
HaiAnAssemblePalletRequest assembleRequest = buildAssembleRequest(request, palletInfo, detailRows); |
|
|
|
// 结束分拣本次带增量时同样回写申请单立库取出与海安任务状态;空包不更新,外呼失败回滚 - rqrq |
|
|
|
|