Browse Source

feat(automatedWarehouse): 添加标签预留解除功能

- 在 NotifyDetailQueryMapper 中新增 getReservedLabelsToRelease 和 releaseHandlingUnitReserve 方法
- 在 NotifyDetailQueryMapper.xml 中新增查询和解除标签预留的 SQL 语句
- 修改 NotifyDetailQueryServiceImpl 的 closeApplicationTask 方法,增加标签预留解除逻辑
- 更新返回消息内容,包含栈板调用状态和标签预留状态的解除信息
- 添加标签预留查询和解除的相关业务处理流程
master
常熟吴彦祖 3 months ago
parent
commit
62f721914c
  1. 17
      src/main/java/com/gaotao/modules/automatedWarehouse/mapper/NotifyDetailQueryMapper.java
  2. 41
      src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/NotifyDetailQueryServiceImpl.java
  3. 21
      src/main/resources/mapper/automatedWarehouse/NotifyDetailQueryMapper.xml

17
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<String> 标签ID列表
* @author rqrq
*/
java.util.List<String> 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);
}

41
src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/NotifyDetailQueryServiceImpl.java

@ -65,7 +65,7 @@ public class NotifyDetailQueryServiceImpl implements NotifyDetailQueryService {
/**
* @Description 关闭申请单任务 - rqrq
* @param data 查询条件包含sitenotifyNoitemNosoorderNo
* @return String 成功消息包含解除的栈板列表
* @return String 成功消息包含解除的栈板列表和标签列表
* @author rqrq
* @date 2026/03/05
*/
@ -124,25 +124,48 @@ public class NotifyDetailQueryServiceImpl implements NotifyDetailQueryService {
List<String> 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<String> 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();
}
}

21
src/main/resources/mapper/automatedWarehouse/NotifyDetailQueryMapper.xml

@ -119,6 +119,27 @@
AND remark LIKE '%' + #{soorderNo} + '%'
</update>
<!-- rqrq - 查询要解除预留的标签列表 -->
<select id="getReservedLabelsToRelease" resultType="String">
SELECT unit_id
FROM handling_unit
WHERE reserve_flag = 'Y'
AND reserve_order_ref1 = #{notifyNo}
AND reserve_order_ref2 = CAST(#{itemNo} AS VARCHAR)
</select>
<!-- rqrq - 解除标签预留状态 -->
<update id="releaseHandlingUnitReserve">
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)
</update>
</mapper>
Loading…
Cancel
Save