From 9e99bbd124089fc265fa748905bc7f05c294f0f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B8=B8=E7=86=9F=E5=90=B4=E5=BD=A6=E7=A5=96?= Date: Wed, 4 Mar 2026 15:45:06 +0800 Subject: [PATCH] =?UTF-8?q?refactor(check):=20=E4=BC=98=E5=8C=96RFID?= =?UTF-8?q?=E7=9B=98=E7=82=B9=E5=A4=B4=E8=A1=A8=E5=A4=84=E7=90=86=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改labelCount字段注释,明确表示该次盘点的标签数量 - 更新isUsed字段含义,从"是否已使用"改为"是否已处理" - 调整定时任务查询条件,移除label_count为null的限制 - 将数据源从mes_unit改为handling_unit查询标签详细信息 - 完善业务逻辑描述,添加处理完成后可生成正式盘点单的说明 - 优化代码实现,每次处理完记录后同时更新labelCount和isUsed字段 - 修复快照表更新逻辑,使用LambdaUpdateWrapper处理联合主键场景 --- .../modules/check/entity/RfidCountHeader.java | 13 ++-- .../check/service/RfidCountHeaderService.java | 7 ++- .../impl/RfidCountHeaderServiceImpl.java | 61 +++++++++++-------- 3 files changed, 47 insertions(+), 34 deletions(-) diff --git a/src/main/java/com/gaotao/modules/check/entity/RfidCountHeader.java b/src/main/java/com/gaotao/modules/check/entity/RfidCountHeader.java index b61204b..7931b76 100644 --- a/src/main/java/com/gaotao/modules/check/entity/RfidCountHeader.java +++ b/src/main/java/com/gaotao/modules/check/entity/RfidCountHeader.java @@ -83,18 +83,23 @@ public class RfidCountHeader { private Date countTime; /** - * 标签数量(定时任务填充后更新) + * 标签数量(定时任务填充后更新,表示该次盘点的标签数量) */ @TableField("label_count") private Integer labelCount; /** - * 是否已使用(是否已生成盘点单) + * 是否已使用(是否已处理) *

枚举值说明:

* + *

⚠️ 重要说明:

+ *
+     * is_used='Y'表示定时任务已处理完成(填充了子表和快照表)
+     * 后续人工可以基于此数据生成正式盘点单(count_result)
+     * 
*/ @TableField("is_used") private String isUsed; diff --git a/src/main/java/com/gaotao/modules/check/service/RfidCountHeaderService.java b/src/main/java/com/gaotao/modules/check/service/RfidCountHeaderService.java index ab8b9f7..4578996 100644 --- a/src/main/java/com/gaotao/modules/check/service/RfidCountHeaderService.java +++ b/src/main/java/com/gaotao/modules/check/service/RfidCountHeaderService.java @@ -25,14 +25,15 @@ public interface RfidCountHeaderService extends IService { * *

业务逻辑:

*
-     * 1. 查询rfid_count_header(is_used='N'且label_count=null的记录)
+     * 1. 查询rfid_count_header(is_used='N'的记录)
      * 2. 遍历每条记录:
      *    - 从pallet_detail查询标签列表(site+pallet_id)
-     *    - 从mes_unit查询标签详细信息
+     *    - 从handling_unit查询标签详细信息
      *    - 批量保存到rfid_count_detail
      *    - 更新或新增到rfid_count_snapshot
-     *    - 更新rfid_count_header的label_count
+     *    - 更新rfid_count_header:label_count=标签数量,is_used='Y'
      * 3. 事务处理:每条主表记录独立事务
+     * 4. label_count仅记录标签数量,is_used='Y'表示已处理
      * 
* * @author rqrq diff --git a/src/main/java/com/gaotao/modules/check/service/impl/RfidCountHeaderServiceImpl.java b/src/main/java/com/gaotao/modules/check/service/impl/RfidCountHeaderServiceImpl.java index 9e4d502..df53358 100644 --- a/src/main/java/com/gaotao/modules/check/service/impl/RfidCountHeaderServiceImpl.java +++ b/src/main/java/com/gaotao/modules/check/service/impl/RfidCountHeaderServiceImpl.java @@ -104,13 +104,13 @@ public class RfidCountHeaderServiceImpl extends ServiceImpl业务逻辑:

*
-     * 1. 查询未填充的主表记录(is_used='N' AND label_count IS NULL)
+     * 1. 查询未处理的主表记录(is_used='N')
      * 2. 遍历每条记录:
      *    - 从pallet_detail查询标签列表
      *    - 从handling_unit查询标签详细信息
      *    - 批量保存到rfid_count_detail
      *    - 更新或新增到rfid_count_snapshot
-     *    - 更新rfid_count_header的label_count
+     *    - 更新rfid_count_header:label_count=标签数量,is_used='Y'
      * 3. 每条主表记录独立事务处理
      * 
* @@ -122,24 +122,23 @@ public class RfidCountHeaderServiceImpl extends ServiceImpl unfilledHeaders = this.lambdaQuery() + // 1. 查询未处理的主表记录(只查is_used='N')- rqrq + List unprocessedHeaders = this.lambdaQuery() .eq(RfidCountHeader::getIsUsed, "N") - .isNull(RfidCountHeader::getLabelCount) .list(); - if (unfilledHeaders.isEmpty()) { - log.info("没有待填充的盘点记录 - rqrq"); + if (unprocessedHeaders.isEmpty()) { + log.info("没有待处理的盘点记录 - rqrq"); return; } - log.info("查询到{}条待填充的盘点记录 - rqrq", unfilledHeaders.size()); + log.info("查询到{}条待处理的盘点记录 - rqrq", unprocessedHeaders.size()); int successCount = 0; int failCount = 0; // 2. 遍历处理每条记录 - rqrq - for (RfidCountHeader header : unfilledHeaders) { + for (RfidCountHeader header : unprocessedHeaders) { try { processOneHeader(header); successCount++; @@ -152,7 +151,7 @@ public class RfidCountHeaderServiceImpl extends ServiceImpl() + .eq(RfidCountSnapshot::getSite, snapshot.getSite()) + .eq(RfidCountSnapshot::getUnitId, snapshot.getUnitId()) + .set(RfidCountSnapshot::getPartNo, snapshot.getPartNo()) + .set(RfidCountSnapshot::getQty, snapshot.getQty()) + .set(RfidCountSnapshot::getBatchNo, snapshot.getBatchNo()) + .set(RfidCountSnapshot::getLocationId, snapshot.getLocationId()) + .set(RfidCountSnapshot::getWarehouseId, snapshot.getWarehouseId()) + .set(RfidCountSnapshot::getWdr, snapshot.getWdr()) + .set(RfidCountSnapshot::getLastCountDate, snapshot.getLastCountDate()) + .set(RfidCountSnapshot::getPalletId, snapshot.getPalletId()) + .set(RfidCountSnapshot::getCountResult, snapshot.getCountResult()) + .set(RfidCountSnapshot::getCountTimes, countTimes) + .set(RfidCountSnapshot::getUpdatedDate, new Date()) + ); } else { // 不存在则新增 - rqrq snapshot.setCountTimes(1); @@ -280,11 +286,12 @@ public class RfidCountHeaderServiceImpl extends ServiceImpl