|
|
@ -1853,6 +1853,9 @@ public class PhysicalInventoryServiceImpl extends ServiceImpl<PhysicalInventoryM |
|
|
// 6. 处理任务单(与RFID接口一致)- rqrq |
|
|
// 6. 处理任务单(与RFID接口一致)- rqrq |
|
|
handleTaskAfterCount(site, countNo, palletId, username); |
|
|
handleTaskAfterCount(site, countNo, palletId, username); |
|
|
|
|
|
|
|
|
|
|
|
// 7. 推送组盘数据给WCS(告知立库该托盘已盘点)- rqrq |
|
|
|
|
|
pushCountCompletionToWcs(site, countNo, palletId); |
|
|
|
|
|
|
|
|
log.info("pdaQuickSubmitCount 结束,生成盘点结果数: {}", labelList.size()); |
|
|
log.info("pdaQuickSubmitCount 结束,生成盘点结果数: {}", labelList.size()); |
|
|
return labelList.size(); |
|
|
return labelList.size(); |
|
|
} |
|
|
} |
|
|
@ -1978,6 +1981,9 @@ public class PhysicalInventoryServiceImpl extends ServiceImpl<PhysicalInventoryM |
|
|
// 8. 处理任务单(与RFID接口一致)- rqrq |
|
|
// 8. 处理任务单(与RFID接口一致)- rqrq |
|
|
handleTaskAfterCount(site, countNo, palletId, username); |
|
|
handleTaskAfterCount(site, countNo, palletId, username); |
|
|
|
|
|
|
|
|
|
|
|
// 9. 推送组盘数据给WCS(告知立库该托盘已盘点)- rqrq |
|
|
|
|
|
pushCountCompletionToWcs(site, countNo, palletId); |
|
|
|
|
|
|
|
|
log.info("pdaSubmitCount 结束,生成盘点结果数: {}", labelList.size()); |
|
|
log.info("pdaSubmitCount 结束,生成盘点结果数: {}", labelList.size()); |
|
|
return labelList.size(); |
|
|
return labelList.size(); |
|
|
} |
|
|
} |
|
|
@ -2118,6 +2124,77 @@ public class PhysicalInventoryServiceImpl extends ServiceImpl<PhysicalInventoryM |
|
|
* @param username 操作人 |
|
|
* @param username 操作人 |
|
|
* @author rqrq |
|
|
* @author rqrq |
|
|
*/ |
|
|
*/ |
|
|
|
|
|
/** |
|
|
|
|
|
* @Description 推送盘点完成的组盘数据给WCS - rqrq |
|
|
|
|
|
* |
|
|
|
|
|
* <p><b>业务说明:</b></p> |
|
|
|
|
|
* <ul> |
|
|
|
|
|
* <li>盘点完成后调用WCS接口,告知立库该托盘已盘点</li> |
|
|
|
|
|
* <li>使用 PushPalletDetailDto 构建请求数据</li> |
|
|
|
|
|
* <li>isInventoryCompletion=1 表示是盘点确认的组盘</li> |
|
|
|
|
|
* </ul> |
|
|
|
|
|
* |
|
|
|
|
|
* @param site 工厂编码 |
|
|
|
|
|
* @param countNo 盘点单号 |
|
|
|
|
|
* @param palletId 栈板号 |
|
|
|
|
|
* @author rqrq |
|
|
|
|
|
*/ |
|
|
|
|
|
private void pushCountCompletionToWcs(String site, String countNo, String palletId) { |
|
|
|
|
|
log.info("开始推送盘点完成数据给WCS - rqrq,site: {}, countNo: {}, palletId: {}", site, countNo, palletId); |
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
|
// 1. 查询任务单号和行号 - rqrq |
|
|
|
|
|
String taskNo = baseMapper.getTaskNoByPallet(site, countNo, palletId); |
|
|
|
|
|
if (!StringUtils.hasText(taskNo)) { |
|
|
|
|
|
log.info("该栈板没有关联任务号,跳过WCS推送,palletId: {}", palletId); |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Integer itemNo = baseMapper.getItemNoByTaskAndPallet(site, taskNo, palletId); |
|
|
|
|
|
if (itemNo == null) { |
|
|
|
|
|
itemNo = 1; // 默认行号1 |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 2. 查询栈板的pallet_type,获取WCS相关配置 - rqrq |
|
|
|
|
|
com.gaotao.modules.base.entity.PalletType palletTypeInfo = wcsIntegrationMapper.getPalletTypeInfoByPallet(site, palletId); |
|
|
|
|
|
if (palletTypeInfo == null) { |
|
|
|
|
|
log.warn("未查询到栈板类型信息,跳过WCS推送,palletId: {}", palletId); |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 3. 构建 PushPalletDetailDto 对象 - rqrq |
|
|
|
|
|
com.gaotao.modules.api.entity.PushPalletDetailDto dto = new com.gaotao.modules.api.entity.PushPalletDetailDto(); |
|
|
|
|
|
dto.setSite(site); |
|
|
|
|
|
dto.setTaskNo(taskNo); |
|
|
|
|
|
dto.setItemNo(itemNo); |
|
|
|
|
|
dto.setPalletBarcode(palletId); |
|
|
|
|
|
dto.setPalletType(palletTypeInfo.getWcsPalletType()); |
|
|
|
|
|
dto.setBasePalletType(palletTypeInfo.getWcsBasePalletType()); |
|
|
|
|
|
dto.setCommonUsed(false); // isCommonUsed = false |
|
|
|
|
|
// autoSort 根据 wcs_auto_sort 的 Y/N 来填 true/false - rqrq |
|
|
|
|
|
dto.setAutoSort("Y".equals(palletTypeInfo.getWcsAutoSort())); |
|
|
|
|
|
dto.setSoreType(palletTypeInfo.getWcsSoreType()); |
|
|
|
|
|
dto.setAssemblyPosition("R1"); // 固定R1 |
|
|
|
|
|
dto.setEndFlag(true); |
|
|
|
|
|
dto.setCargoInfos(new java.util.ArrayList<>()); // 空集合 |
|
|
|
|
|
dto.setPartType(com.gaotao.modules.api.entity.PartTypeEnum.OTHER); // partType = 3 (OTHER) |
|
|
|
|
|
dto.setCount(1); // 默认1 |
|
|
|
|
|
dto.setIsInventoryCompletion(1); // 盘点确认的组盘 |
|
|
|
|
|
|
|
|
|
|
|
log.info("构建WCS请求数据完成 - rqrq,taskNo: {}, itemNo: {}, palletType: {}, basePalletType: {}", |
|
|
|
|
|
taskNo, itemNo, palletTypeInfo.getWcsPalletType(), palletTypeInfo.getWcsBasePalletType()); |
|
|
|
|
|
|
|
|
|
|
|
// 4. 调用WCS接口 - rqrq |
|
|
|
|
|
wcsApiService.pushZuPanApi(dto); |
|
|
|
|
|
log.info("推送盘点完成数据给WCS成功 - rqrq,palletId: {}", palletId); |
|
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
log.error("推送盘点完成数据给WCS失败 - rqrq,palletId: {}, 错误: {}", palletId, e.getMessage()); |
|
|
|
|
|
// 失败时抛出异常,让事务回滚 - rqrq |
|
|
|
|
|
throw new RuntimeException("推送盘点完成数据给WCS失败: " + e.getMessage()); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
private void handleTaskAfterCount(String site, String countNo, String palletId, String username) { |
|
|
private void handleTaskAfterCount(String site, String countNo, String palletId, String username) { |
|
|
// 1. 查询该栈板关联的任务号 - rqrq |
|
|
// 1. 查询该栈板关联的任务号 - rqrq |
|
|
String taskNo = baseMapper.getTaskNoByPallet(site, countNo, palletId); |
|
|
String taskNo = baseMapper.getTaskNoByPallet(site, countNo, palletId); |
|
|
|