diff --git a/src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/WcsIntegrationServiceImpl.java b/src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/WcsIntegrationServiceImpl.java index 0f93d5e..74a1607 100644 --- a/src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/WcsIntegrationServiceImpl.java +++ b/src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/WcsIntegrationServiceImpl.java @@ -1027,6 +1027,9 @@ public class WcsIntegrationServiceImpl implements WcsIntegrationService { @Override public void completePalletAssembly(Map params) throws Exception { + + SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); + System.out.println("开始完成组托 - AI制作,params=" + params); String site = (String) params.get("site"); @@ -1041,10 +1044,57 @@ public class WcsIntegrationServiceImpl implements WcsIntegrationService { if (palletInfo == null) { throw new Exception("栈板不存在"); } - + // 生成入库任务编号 + TransNoControl transData2 = transNoService.getTransNo(site, "WOT", 10); + Date currentTime = new Date(); + // 创建运输任务记录 + WmsOrderTask orderTask = new WmsOrderTask(); + orderTask.setSite(site); + orderTask.setTaskNo(transData2.getNewTransNo()); + orderTask.setItemNo(1); // 固定为1 + orderTask.setSourceType("组盘入库"); + orderTask.setSourceBillNo(""); + orderTask.setSourceLineId(0L); + orderTask.setPartNo(""); // 栈板运输不需要物料信息 + orderTask.setQty(BigDecimal.ZERO); + orderTask.setBatchNo(""); + orderTask.setSerialNo(""); + orderTask.setFromLocation("无"); + orderTask.setToLocation("无"); + orderTask.setPalletId(palletId); + orderTask.setAgvCode(""); + orderTask.setPriority(1); // 优先级设置为5 + orderTask.setStatus("已创建"); + orderTask.setWmsSendTime(currentTime); + orderTask.setCreatedBy(currentUser.getUsername()); + orderTask.setCreatedTime(currentTime); + orderTask.setUpdatedTime(currentTime); + orderTask.setFinishQty(BigDecimal.ZERO); + + // 保存运输任务到数据库 + wcsIntegrationMapper.insertOrderTask(orderTask); +// 保存运输任务到数据库 + + WmsOrderTaskDetail detail2 = new WmsOrderTaskDetail(); + detail2.setSite(orderTask.getSite()); + detail2.setTaskNo(orderTask.getTaskNo()); + detail2.setItemNo(orderTask.getItemNo()); + detail2.setPalletId(palletId); + detail2.setWmsStatus("未执行"); + detail2.setSeqNo(1); + detail2.setActionType("栈板入库"); + detail2.setStatus("进行中"); + wcsIntegrationMapper.insertWmsOrderTaskDetail(detail2); + // 调用AGV接口创建任务 + // List targets = Arrays.asList(request.getStartStation()); + // agvClientUtil.createTask(task.getTaskNo(), targets, null, task.getPriority()); + + // 更新栈板calling_flag为Y + wcsIntegrationMapper.updatePalletCallingFlag(site, palletId, "Y", currentUser.getUsername()); + // 调用pushPalletDetailNew方法推送组托数据 // taskNo传空字符串,itemNo传0 - pushPalletDetailNew(site, palletId, "", 0); + pushPalletDetailNew(site, palletId, orderTask.getTaskNo(), orderTask.getItemNo()); System.out.println("完成组托完成 - AI制作"); } diff --git a/src/main/java/com/gaotao/modules/other/service/impl/InventoryMoveServiceImpl.java b/src/main/java/com/gaotao/modules/other/service/impl/InventoryMoveServiceImpl.java index c76105b..1d8fb8f 100644 --- a/src/main/java/com/gaotao/modules/other/service/impl/InventoryMoveServiceImpl.java +++ b/src/main/java/com/gaotao/modules/other/service/impl/InventoryMoveServiceImpl.java @@ -2,6 +2,7 @@ package com.gaotao.modules.other.service.impl; import com.gaotao.common.exception.XJException; import com.gaotao.common.utils.HttpUtils; +import com.gaotao.common.utils.IfsErrorMessageUtils; import com.gaotao.modules.api.service.IfsApiIssueAndReturnService; import com.gaotao.modules.handlingunit.entity.HandlingUnit; import com.gaotao.modules.handlingunit.service.HandlingUnitService; @@ -290,12 +291,14 @@ public class InventoryMoveServiceImpl implements InventoryMoveService { log.info("IFS移库同步成功 - 物料: {}, 批次: {}, 数量: {}, 从 {} 到 {}", group.partNo, group.lotBatchNo, group.totalQty, group.sourceLocationNo, group.destLocationNo); } else { + String errorMessage = IfsErrorMessageUtils.extractOracleErrorMessage(ifsResponse); log.warn("IFS移库同步失败 - 物料: {}, 批次: {}, 响应: {}", group.partNo, group.lotBatchNo, ifsResponse); - throw new XJException("IFS移库失败,响应: " + ifsResponse); + throw new XJException("IFS移库失败,响应: " + errorMessage); } } catch (Exception e) { + log.error("IFS移库同步异常 - 物料: {}, 批次: {}", group.partNo, group.lotBatchNo, e); throw new XJException("IFS移库失败,响应: " + e.getMessage()); }