diff --git a/src/main/java/com/gaotao/modules/automatedWarehouse/mapper/NotifyDetailQueryMapper.java b/src/main/java/com/gaotao/modules/automatedWarehouse/mapper/NotifyDetailQueryMapper.java index 8b21a32..d9b0e59 100644 --- a/src/main/java/com/gaotao/modules/automatedWarehouse/mapper/NotifyDetailQueryMapper.java +++ b/src/main/java/com/gaotao/modules/automatedWarehouse/mapper/NotifyDetailQueryMapper.java @@ -71,5 +71,22 @@ public interface NotifyDetailQueryMapper { * @author rqrq */ void releasePalletCallingFlag(@Param("site") String site, @Param("notifyNo") String notifyNo, @Param("soorderNo") String soorderNo); + + /** + * @Description 查询要解除预留的标签列表 - rqrq + * @param notifyNo 领料单号 + * @param itemNo 行号 + * @return List 标签ID列表 + * @author rqrq + */ + java.util.List getReservedLabelsToRelease(@Param("notifyNo") String notifyNo, @Param("itemNo") String itemNo); + + /** + * @Description 解除标签预留状态(根据notifyNo和itemNo)- rqrq + * @param notifyNo 领料单号 + * @param itemNo 行号(转成varchar) + * @author rqrq + */ + void releaseHandlingUnitReserve(@Param("notifyNo") String notifyNo, @Param("itemNo") String itemNo); } diff --git a/src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/NotifyDetailQueryServiceImpl.java b/src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/NotifyDetailQueryServiceImpl.java index e32bbc1..3c0e9de 100644 --- a/src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/NotifyDetailQueryServiceImpl.java +++ b/src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/NotifyDetailQueryServiceImpl.java @@ -65,7 +65,7 @@ public class NotifyDetailQueryServiceImpl implements NotifyDetailQueryService { /** * @Description 关闭申请单任务 - rqrq * @param data 查询条件(包含site、notifyNo、itemNo、soorderNo) - * @return String 成功消息(包含解除的栈板列表) + * @return String 成功消息(包含解除的栈板列表和标签列表) * @author rqrq * @date 2026/03/05 */ @@ -124,25 +124,48 @@ public class NotifyDetailQueryServiceImpl implements NotifyDetailQueryService { List palletIds = notifyDetailQueryMapper.getPalletsToRelease(data.getSite(), data.getNotifyNo(), data.getSoorderNo()); System.out.println("查询到" + (palletIds != null ? palletIds.size() : 0) + "个栈板需要解除调用 - rqrq"); - // 4. 更新SOIssueNotifyOrderList的transport_flag为'Y'(用主键site+notify_no+item_no)- rqrq + // 4. 查询要解除预留的标签列表 - rqrq + String itemNoStr = String.valueOf(data.getItemNo()); + List labelIds = notifyDetailQueryMapper.getReservedLabelsToRelease(data.getNotifyNo(), itemNoStr); + System.out.println("查询到" + (labelIds != null ? labelIds.size() : 0) + "个标签需要解除预留 - rqrq"); + + // 5. 更新SOIssueNotifyOrderList的transport_flag为'Y'(用主键site+notify_no+item_no)- rqrq notifyDetailQueryMapper.updateTransportFlag(data.getSite(), data.getNotifyNo(), data.getItemNo()); System.out.println("已更新transport_flag为Y - rqrq"); - // 5. 解除相关栈板调用状态(用soorder_no匹配remark)- rqrq - String resultMessage; + // 6. 解除相关栈板调用状态(用soorder_no匹配remark)- rqrq if (palletIds != null && !palletIds.isEmpty()) { notifyDetailQueryMapper.releasePalletCallingFlag(data.getSite(), data.getNotifyNo(), data.getSoorderNo()); System.out.println("已解除栈板调用状态,栈板列表:" + String.join(", ", palletIds) + " - rqrq"); - - // 返回成功信息,包含解除的栈板列表 - rqrq - resultMessage = "强制完成成功!已解除以下栈板的调用状态:" + String.join("、", palletIds); } else { System.out.println("未找到需要解除调用的栈板 - rqrq"); - resultMessage = "强制完成成功!未找到需要解除调用的栈板"; } + // 7. 解除标签预留状态 - rqrq + if (labelIds != null && !labelIds.isEmpty()) { + notifyDetailQueryMapper.releaseHandlingUnitReserve(data.getNotifyNo(), itemNoStr); + System.out.println("已解除标签预留状态,标签列表:" + String.join(", ", labelIds) + " - rqrq"); + } else { + System.out.println("未找到需要解除预留的标签 - rqrq"); + } + + // 8. 构建返回消息 - rqrq + StringBuilder resultMessage = new StringBuilder("强制完成成功!"); + + if (palletIds != null && !palletIds.isEmpty()) { + resultMessage.append("已解除以下栈板的调用状态:").append(String.join("、", palletIds)).append(";"); + } else { + resultMessage.append("未找到需要解除调用的栈板;"); + } + + // if (labelIds != null && !labelIds.isEmpty()) { + // resultMessage.append("已解除以下标签的预留状态:").append(String.join("、", labelIds)); + // } else { + // resultMessage.append("未找到需要解除预留的标签"); + // } + System.out.println("关闭申请单任务完成 - rqrq"); - return resultMessage; + return resultMessage.toString(); } } diff --git a/src/main/resources/mapper/automatedWarehouse/NotifyDetailQueryMapper.xml b/src/main/resources/mapper/automatedWarehouse/NotifyDetailQueryMapper.xml index b6c6a0a..51bb387 100644 --- a/src/main/resources/mapper/automatedWarehouse/NotifyDetailQueryMapper.xml +++ b/src/main/resources/mapper/automatedWarehouse/NotifyDetailQueryMapper.xml @@ -119,6 +119,27 @@ AND remark LIKE '%' + #{soorderNo} + '%' + + + + + + + UPDATE handling_unit + SET reserve_flag = 'N', + reserve_order_ref1 = NULL, + reserve_order_ref2 = NULL, + reserve_order_ref3 = NULL + WHERE reserve_flag = 'Y' + AND reserve_order_ref1 = #{notifyNo} + AND reserve_order_ref2 = CAST(#{itemNo} AS VARCHAR) +