diff --git a/src/main/java/com/gaotao/modules/warehouse/controller/CountingWIPController.java b/src/main/java/com/gaotao/modules/warehouse/controller/CountingWIPController.java index e63f7b1..15de3d1 100644 --- a/src/main/java/com/gaotao/modules/warehouse/controller/CountingWIPController.java +++ b/src/main/java/com/gaotao/modules/warehouse/controller/CountingWIPController.java @@ -179,5 +179,36 @@ public class CountingWIPController extends AbstractController { return R.error("确认失败: " + e.getMessage()); } } + + /** + * 删除WIP数据 + */ + @PostMapping("delete") + public R delete(@RequestBody Map params) { + try { + String site = (String) params.get("site"); + String reportId = (String) params.get("reportId"); + String rollNo = (String) params.get("rollNo"); + + if (site == null || site.isEmpty()) { + return R.error("站点不能为空"); + } + if (reportId == null || reportId.isEmpty()) { + return R.error("盘点任务单号不能为空"); + } + if (rollNo == null || rollNo.isEmpty()) { + return R.error("标签条码不能为空"); + } + + countingWIPService.deleteByRollNo(site, reportId, rollNo); + + return R.ok() + .put("code", 0) + .put("msg", "删除成功"); + } catch (Exception e) { + logger.error("删除WIP数据失败", e); + return R.error("删除失败: " + e.getMessage()); + } + } } diff --git a/src/main/java/com/gaotao/modules/warehouse/dao/CountingWIPMapper.java b/src/main/java/com/gaotao/modules/warehouse/dao/CountingWIPMapper.java index 7fb7e85..1508ede 100644 --- a/src/main/java/com/gaotao/modules/warehouse/dao/CountingWIPMapper.java +++ b/src/main/java/com/gaotao/modules/warehouse/dao/CountingWIPMapper.java @@ -75,6 +75,18 @@ public interface CountingWIPMapper { int deleteByReportId(@Param("site") String site, @Param("reportId") String reportId); + /** + * 删除单条WIP数据 + * + * @param site 站点 + * @param reportId 盘点任务单号 + * @param rollNo 标签条码 + * @return 影响行数 + */ + int deleteByRollNo(@Param("site") String site, + @Param("reportId") String reportId, + @Param("rollNo") String rollNo); + /** * 检查标签是否存在于WIP中 * diff --git a/src/main/java/com/gaotao/modules/warehouse/service/CountingWIPService.java b/src/main/java/com/gaotao/modules/warehouse/service/CountingWIPService.java index 4c46e85..d4ed47f 100644 --- a/src/main/java/com/gaotao/modules/warehouse/service/CountingWIPService.java +++ b/src/main/java/com/gaotao/modules/warehouse/service/CountingWIPService.java @@ -67,5 +67,14 @@ public interface CountingWIPService { * @return 操作结果 */ Map confirmCounting(String site, String reportId); + + /** + * 删除单条WIP数据 + * + * @param site 站点 + * @param reportId 盘点任务单号 + * @param rollNo 标签条码 + */ + void deleteByRollNo(String site, String reportId, String rollNo); } diff --git a/src/main/java/com/gaotao/modules/warehouse/service/impl/CountingWIPServiceImpl.java b/src/main/java/com/gaotao/modules/warehouse/service/impl/CountingWIPServiceImpl.java index 9fd621e..430c53e 100644 --- a/src/main/java/com/gaotao/modules/warehouse/service/impl/CountingWIPServiceImpl.java +++ b/src/main/java/com/gaotao/modules/warehouse/service/impl/CountingWIPServiceImpl.java @@ -279,5 +279,21 @@ public class CountingWIPServiceImpl implements CountingWIPService { throw new RuntimeException("确认盘点失败: " + e.getMessage(), e); } } + + @Override + public void deleteByRollNo(String site, String reportId, String rollNo) { + logger.info("删除WIP数据,站点: {}, 盘点单号: {}, 标签条码: {}", site, reportId, rollNo); + try { + int count = countingWIPMapper.deleteByRollNo(site, reportId, rollNo); + if (count > 0) { + logger.info("删除WIP数据成功,删除行数: {}", count); + } else { + logger.warn("未找到要删除的WIP数据"); + } + } catch (Exception e) { + logger.error("删除WIP数据失败,错误信息: {}", e.getMessage(), e); + throw new RuntimeException("删除WIP数据失败: " + e.getMessage(), e); + } + } } diff --git a/src/main/resources/mapper/warehouse/CountingWIPMapper.xml b/src/main/resources/mapper/warehouse/CountingWIPMapper.xml index 30dd014..faa5dd8 100644 --- a/src/main/resources/mapper/warehouse/CountingWIPMapper.xml +++ b/src/main/resources/mapper/warehouse/CountingWIPMapper.xml @@ -143,6 +143,14 @@ AND report_id = #{reportId} + + + DELETE FROM CountingWIP + WHERE site = #{site} + AND report_id = #{reportId} + AND roll_no = #{rollNo} + +