常熟吴彦祖 4 months ago
parent
commit
4f0cc8193f
  1. 2
      src/main/java/com/gaotao/modules/automatedWarehouse/mapper/WcsCallbackPalletScanMapper.java
  2. 94
      src/main/java/com/gaotao/modules/automatedWarehouse/task/WcsTaskScheduler.java
  3. 24
      src/main/resources/mapper/automatedWarehouse/WcsCallbackPalletScanMapper.xml

2
src/main/java/com/gaotao/modules/automatedWarehouse/mapper/WcsCallbackPalletScanMapper.java

@ -23,7 +23,7 @@ public interface WcsCallbackPalletScanMapper extends BaseMapper<WcsCallbackPalle
* @date 2025/10/07
*/
List<WcsCallbackPalletScan> getPendingCallbacks(@Param("site") String site, @Param("maxRetryCount") int maxRetryCount);
List<WcsCallbackPalletScan> getPendingCallbacksForAutoSort(@Param("site") String site, @Param("maxRetryCount") int maxRetryCount);
// List<WcsCallbackPalletScan> getPendingCallbacksForAutoSort(@Param("site") String site, @Param("maxRetryCount") int maxRetryCount);
/**
* @Description 更新处理状态 - rqrq

94
src/main/java/com/gaotao/modules/automatedWarehouse/task/WcsTaskScheduler.java

@ -162,8 +162,12 @@ public class WcsTaskScheduler {
for (WcsCallbackPalletScan callback : list) {
try {
// 委托给业务服务处理 - rqrq
inventoryDiscrepancyService.processCallbackScan(callback);
if("被分拣回传".equals(callback.getActionType())){
inventoryDiscrepancyService.processCallbackScan(callback);
}
if("自动分拣".equals(callback.getActionType())){
autoSortService.processAutoSortCallback(callback);
}
successCount++;
} catch (Exception e) {
log.error("处理WCS栈板RFID扫描对账失败 - rqrq:palletId={}, error={}",
@ -190,49 +194,49 @@ public class WcsTaskScheduler {
* cron表达式0 * * * * ? 表示每分钟的第0秒执行
* 配置说明通过 scheduler.wcs.enabled 控制是否启用
*/
@Scheduled(cron = "7/10 * * * * ?")
public void scheduleAutoSortProcessing() {
// 检查定时任务开关 - rqrq
if (!enabled) {
return;
}
log.info("=== 开始处理WCS自动拣选回调数据 - rqrq ===");
try {
// 获取待处理的自动拣选回调记录只查询拣选站点J1-J4重试次数<3- rqrq
List<WcsCallbackPalletScan> list = wcsCallbackPalletScanMapper.getPendingCallbacksForAutoSort("55", 3);
if (list.isEmpty()) {
log.info("无待处理的WCS自动拣选回调数据 - rqrq");
return;
}
log.info("获取到 {} 个待处理的自动拣选任务 - rqrq", list.size());
int successCount = 0;
int failCount = 0;
for (WcsCallbackPalletScan callback : list) {
try {
// 委托给业务服务处理 - rqrq
autoSortService.processAutoSortCallback(callback);
successCount++;
} catch (Exception e) {
log.error("处理WCS自动拣选回调失败 - rqrq:palletId={}, error={}",
callback.getPalletId(), e.getMessage());
failCount++;
// 继续处理下一个数据 - rqrq
}
}
log.info("=== WCS自动拣选回调处理完成 - rqrq:总数={}, 成功={}, 失败={} ===",
list.size(), successCount, failCount);
} catch (Exception e) {
log.error("=== WCS自动拣选回调定时任务执行失败 - rqrq ===", e);
}
}
// @Scheduled(cron = "7/10 * * * * ?")
// public void scheduleAutoSortProcessing() {
// // 检查定时任务开关 - rqrq
// if (!enabled) {
// return;
// }
//
// log.info("=== 开始处理WCS自动拣选回调数据 - rqrq ===");
//
// try {
// // 获取待处理的自动拣选回调记录只查询拣选站点J1-J4重试次数<3- rqrq
// List<WcsCallbackPalletScan> list = wcsCallbackPalletScanMapper.getPendingCallbacksForAutoSort("55", 3);
//
// if (list.isEmpty()) {
// log.info("无待处理的WCS自动拣选回调数据 - rqrq");
// return;
// }
//
// log.info("获取到 {} 个待处理的自动拣选任务 - rqrq", list.size());
//
// int successCount = 0;
// int failCount = 0;
//
// for (WcsCallbackPalletScan callback : list) {
// try {
// // 委托给业务服务处理 - rqrq
// autoSortService.processAutoSortCallback(callback);
// successCount++;
// } catch (Exception e) {
// log.error("处理WCS自动拣选回调失败 - rqrq:palletId={}, error={}",
// callback.getPalletId(), e.getMessage());
// failCount++;
// // 继续处理下一个数据 - rqrq
// }
// }
//
// log.info("=== WCS自动拣选回调处理完成 - rqrq:总数={}, 成功={}, 失败={} ===",
// list.size(), successCount, failCount);
//
// } catch (Exception e) {
// log.error("=== WCS自动拣选回调定时任务执行失败 - rqrq ===", e);
// }
// }
/**
* @Description 定时任务每10秒执行一次齐套运输检查 - rqrq

24
src/main/resources/mapper/automatedWarehouse/WcsCallbackPalletScanMapper.xml

@ -13,22 +13,22 @@
WHERE a.site = #{site}
AND process_status IN ('PENDING', 'FAILED')
AND #{maxRetryCount} >retry_count
AND a.action_type=N'被分拣回传'
<!-- AND a.action_type=N'被分拣回传'-->
ORDER BY created_at
</select>
<select id="getPendingCallbacksForAutoSort" resultType="WcsCallbackPalletScanData">
SELECT
a.id,a.site,a.pallet_id,a.task_no,a.item_no,a.wcs_scan_time,a.wcs_barcode_list,a.wcs_total_quantity,a.sore_type,
a.process_status,a.process_time,a.error_msg,a.retry_count,a.created_at,a.updated_at,a.json_str,a.action_type
<!-- <select id="getPendingCallbacksForAutoSort" resultType="WcsCallbackPalletScanData">-->
<!-- SELECT-->
<!-- a.id,a.site,a.pallet_id,a.task_no,a.item_no,a.wcs_scan_time,a.wcs_barcode_list,a.wcs_total_quantity,a.sore_type,-->
<!-- a.process_status,a.process_time,a.error_msg,a.retry_count,a.created_at,a.updated_at,a.json_str,a.action_type-->
FROM wcs_callback_pallet_scan a
<!-- FROM wcs_callback_pallet_scan a-->
WHERE a.site = #{site}
AND process_status IN ('PENDING', 'FAILED')
AND #{maxRetryCount} >retry_count
AND a.action_type=N'自动分拣'
ORDER BY created_at
</select>
<!-- WHERE a.site = #{site}-->
<!-- AND process_status IN ('PENDING', 'FAILED')-->
<!-- AND #{maxRetryCount} >retry_count-->
<!-- AND a.action_type=N'自动分拣'-->
<!-- ORDER BY created_at-->
<!-- </select>-->
<!-- rqrq - 更新处理状态 -->
<update id="updateProcessStatus">

Loading…
Cancel
Save