From cadf2c881c0da1063765012a492293ef1906d30e Mon Sep 17 00:00:00 2001 From: liuhanqing Date: Wed, 23 Jul 2025 15:09:22 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=98=E7=82=B9=E5=AE=A1=E6=A0=B8=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CheckDifferenceRecordController.java | 69 ++++++++++++------- .../service/impl/MydoJobServiceImpl.java | 5 -- .../ruoyi/pda/domain/TrayCodeMakeSure.java | 1 + .../com/ruoyi/pda/service/PdaServiceImp.java | 2 +- .../resources/mapper/job/MydoJobMapper.xml | 2 +- 5 files changed, 47 insertions(+), 32 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/check/difference/controller/CheckDifferenceRecordController.java b/ruoyi-admin/src/main/java/com/ruoyi/check/difference/controller/CheckDifferenceRecordController.java index ae85387..375f0bf 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/check/difference/controller/CheckDifferenceRecordController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/check/difference/controller/CheckDifferenceRecordController.java @@ -5,7 +5,10 @@ import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletResponse; +import cn.hutool.core.util.StrUtil; import com.ruoyi.bas.basJobId.service.IBasJobIdService; +import com.ruoyi.bas.warehouse.domain.BasWarehouse; +import com.ruoyi.bas.warehouse.service.IBasWarehouseService; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.BeanUtils; @@ -42,6 +45,8 @@ import com.ruoyi.common.core.page.TableDataInfo; public class CheckDifferenceRecordController extends BaseController { @Autowired private ICheckDifferenceRecordService checkDifferenceRecordService; + @Autowired + private IBasWarehouseService basWarehouseService; /** * 查询盘点差异列表 @@ -111,14 +116,14 @@ public class CheckDifferenceRecordController extends BaseController { private ICheckDifferenceRecordFinishService checkDifferenceRecordFinishService; @Autowired private IBasJobIdService basJobIdService; + /** * 审核盘点差异 */ @PreAuthorize("@ss.hasPermi('check:difference:audit')") @Log(title = "盘点差异", businessType = BusinessType.UPDATE) @PutMapping("/audit") - public AjaxResult audit(@RequestBody String[] checkGuids) - { + public AjaxResult audit(@RequestBody String[] checkGuids) { List records = new ArrayList<>(); for (String checkGuid : checkGuids) { CheckDifferenceRecord record = checkDifferenceRecordService.selectCheckDifferenceRecordByCheckGuid(checkGuid); @@ -126,39 +131,40 @@ public class CheckDifferenceRecordController extends BaseController { records.add(record); } } - + for (CheckDifferenceRecord record : records) { String recordType = String.valueOf(record.getRecordType()); - + if ("1".equals(recordType)) { // 更新数据 // 根据stockId、trayCode、oldQuantity查找库存记录 + if (StrUtil.isEmpty(record.getStockId())) { + return AjaxResult.error("没有找到该库存ID:" + record.getStockId()); + } + if (StrUtil.isEmpty(record.getTrayCode())) { + return AjaxResult.error("没有找到该托盘号:" + record.getTrayCode()); + } + BasStock queryStock = new BasStock(); queryStock.setStockId(record.getStockId()); queryStock.setTrayCode(record.getTrayCode()); queryStock.setQuantity(record.getOldQuantity()); List stocks = basStockService.selectBasStockList(queryStock); - + if (stocks.isEmpty()) { return AjaxResult.error("没有在库存中找到该条记录:库存ID=" + record.getStockId() + ", 托盘号=" + record.getTrayCode()); } - + // 更新库存数量和状态 BasStock stock = stocks.get(0); stock.setQuantity(record.getNewQuantity()); stock.setProductStatus("1"); basStockService.updateBasStock(stock); - } - else if ("2".equals(recordType)) { // 新增数据 + } else if ("2".equals(recordType)) { // 新增数据 // 检查物料ID是否存在 if (record.getProductId() == null || record.getProductId().trim().isEmpty()) { return AjaxResult.error("物料ID不能为空"); } - - // 检查库存是否已存在 - BasStock queryStock = new BasStock(); - queryStock.setStockId(record.getStockId()); - queryStock.setTrayCode(record.getTrayCode()); - List stocks = basStockService.selectBasStockList(queryStock); + // 创建新的库存记录 BasStock newStock = new BasStock(); // 先设置必要字段 @@ -175,40 +181,53 @@ public class CheckDifferenceRecordController extends BaseController { extraField.setProductId(record.getProductId()); // 物料名称和其他信息会通过关联查询自动填充 newStock.setExtraField(extraField); - + // 最后设置库存ID newStock.setStockId(basJobIdService.getJobId("KC")); basStockService.insertBasStock(newStock); - } - else if ("3".equals(recordType)) { // 删除数据 + } else if ("3".equals(recordType)) { // 删除数据 // 检查要删除的库存是否存在 BasStock queryStock = new BasStock(); queryStock.setStockId(record.getStockId()); queryStock.setTrayCode(record.getTrayCode()); List stocks = basStockService.selectBasStockList(queryStock); - + if (stocks.isEmpty()) { return AjaxResult.error("没有在库存中找到该条记录:库存ID=" + record.getStockId() + ", 托盘号=" + record.getTrayCode()); } - + + basStockService.deleteBasStockByStockId(record.getStockId()); + + //查询该料箱是否存在库存 如果不存在 则创建空料箱库存 + BasStock queryStock2 = new BasStock(); + queryStock2.setTrayCode(record.getTrayCode()); + List stocks2 = basStockService.selectBasStockList(queryStock2); + BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(record.getWarehouseId()); + if (stocks2.isEmpty() && ("1".equals(basWarehouse.getWarehouseType()) || "2".equals(basWarehouse.getWarehouseType()))) { + BasStock basStock = stocks.get(0); + basStock.setProductId("KTP000001"); + basStock.setProductGuid("KTP000001"); + basStock.setQuantity("1"); + basStock.setStockStatus("1"); + basStockService.insertBasStock(basStock); + } } - + // 设置审核状态为已审核 record.setStatus("1"); - - // 创建历史记录前先检查是否已存在 - CheckDifferenceRecordFinish queryFinish = checkDifferenceRecordFinishService.selectCheckDifferenceRecordFinishByCheckGuid(record.getCheckGuid()); // 创建历史记录 CheckDifferenceRecordFinish finishRecord = new CheckDifferenceRecordFinish(); BeanUtils.copyProperties(record, finishRecord); checkDifferenceRecordFinishService.insertCheckDifferenceRecordFinish(finishRecord); - + // 删除原记录 checkDifferenceRecordService.deleteCheckDifferenceRecordByCheckGuid(record.getCheckGuid()); + + } - + return AjaxResult.success(); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/impl/MydoJobServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/impl/MydoJobServiceImpl.java index c96a793..7a47b6f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/impl/MydoJobServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/impl/MydoJobServiceImpl.java @@ -334,11 +334,6 @@ public class MydoJobServiceImpl implements IMydoJobService { checkDifferenceRecordParam.setWarehouseId(job.getWarehouseId()); List checkDifferenceRecords = checkDifferenceRecordService.selectCheckDifferenceRecordList(checkDifferenceRecordParam); for (MydoJobDetail mydoJobDetail : mydoJobDetails) { - //修改单据实际数量 - String inOrOutDId = mydoJobDetail.getInOrOutDId(); - InStockinDetail inStockinDetail = inStockinDetailService.selectInStockinDetailByStockinDetailId(inOrOutDId); - inStockinDetail.setAssignNum(Convert.toStr(Convert.toBigDecimal(inStockinDetail.getAssignNum()).add(Convert.toBigDecimal(mydoJobDetail.getInQuantity())))); - inStockinDetailService.updateInStockinDetail(inStockinDetail); //如果存在盘点异常信息 根据托盘条码和物料id 筛选异常信息 Optional first = checkDifferenceRecords.stream().filter(x -> x.getTrayCode().equals(job.getTrayCode()) && x.getProductId().equals(mydoJobDetail.getProductId())).findFirst(); if (first.isPresent()) { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/pda/domain/TrayCodeMakeSure.java b/ruoyi-admin/src/main/java/com/ruoyi/pda/domain/TrayCodeMakeSure.java index a2e8e0c..9d4fce8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/pda/domain/TrayCodeMakeSure.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/pda/domain/TrayCodeMakeSure.java @@ -23,4 +23,5 @@ public class TrayCodeMakeSure { private String exitId; //拣选列表 private List mydoJobDetailList; + private List materials; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaServiceImp.java b/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaServiceImp.java index c67504e..9242daf 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaServiceImp.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaServiceImp.java @@ -401,7 +401,7 @@ public class PdaServiceImp implements PdaService { return AjaxResult.warn("任务不存在"); } BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(mydoJob.getWarehouseId()); - List mydoJobDetailList = trayCodeMakeSure.getMydoJobDetailList(); + List mydoJobDetailList = trayCodeMakeSure.getMaterials(); if (CollUtil.isNotEmpty(mydoJobDetailList)) { boolean flag = mydoJobDetailList.stream().anyMatch(x -> StrUtil.isEmpty(x.getStockId()) && "0".equals(x.getInQuantity())); if (flag) { diff --git a/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml b/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml index 14cbef4..95d5057 100644 --- a/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml @@ -227,6 +227,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"