From cd85333343fb990dfe8eaed977b32d4c874beedb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E4=B8=87=E9=87=8C?= <1726150332@qq.com> Date: Tue, 28 Apr 2026 14:16:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tyre/BaseInventoryController.java | 33 +++++++++++++++++-- .../ruoyi/system/domain/BaseInventory.java | 12 +++++-- .../system/service/IBaseInventoryService.java | 1 + .../impl/BaseInventoryServiceImpl.java | 31 +++++++++++++++++ .../resources/mapper/tyre/BaseTyreMapper.xml | 2 +- 5 files changed, 73 insertions(+), 6 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tyre/BaseInventoryController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tyre/BaseInventoryController.java index 4e74141a..8966910a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tyre/BaseInventoryController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tyre/BaseInventoryController.java @@ -20,6 +20,8 @@ import org.springframework.web.bind.annotation.*; import java.util.List; +import static com.ruoyi.common.config.datasource.DynamicDataSourceContextHolder.log; + /** * 库存Controller * @@ -135,9 +137,34 @@ public class BaseInventoryController extends BaseController //出库 @PostMapping("/pdaOutInventory") @ResponseBody - public AjaxResult pdaOutInventory(BaseInventory baseInventory, BaseTyre baseTyre) - { - return baseInventoryService.OutInventoryByPda(baseInventory,baseTyre); + public AjaxResult pdaOutInventory(BaseInventory baseInventory, BaseTyre baseTyre) { + // 1. 前置校验 + if (baseInventory == null) { + return error("库存对象不能为空"); + } + if (baseInventory.getType() == null) { + return error("出库类型不能为空"); + } + + // 2. 业务分发 + try { + switch (baseInventory.getType()) { + case "0": + // 执行正常出库逻辑 + return baseInventoryService.OutInventoryByPda(baseInventory, baseTyre); + + case "1": + // 执行调拨出库逻辑 (在baseTyre实体中传递场站ID【部门ID】,) + return baseInventoryService.transferOutInventoryByPda(baseInventory, baseTyre); + default: + // 如果出库类型不匹配,明确报错。 + return error("不支持的出库类型: " + baseInventory.getType()); + } + } catch (Exception e) { + // 3. 异常捕获:防止后台报错导致前台卡死 + log.error("PDA出库异常", e); // 记录日志 + return error("出库失败:" + e.getMessage()); + } } /** diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/BaseInventory.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/BaseInventory.java index 5a616d21..e07535a8 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/BaseInventory.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/BaseInventory.java @@ -41,10 +41,18 @@ public class BaseInventory extends BaseEntity private String team; private String status; - - private Long deptId; + //出库类型 0正常出库 1调拨出库 + private String type; + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } public String getTeam() { return team; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/IBaseInventoryService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/IBaseInventoryService.java index a1796326..e84252de 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/IBaseInventoryService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/IBaseInventoryService.java @@ -102,4 +102,5 @@ public interface IBaseInventoryService */ int rollbackBatchInboundByCode(String inboundCode, String operName); + AjaxResult transferOutInventoryByPda(BaseInventory baseInventory, BaseTyre baseTyre); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/BaseInventoryServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/BaseInventoryServiceImpl.java index 7d14ba79..b6b4b51e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/BaseInventoryServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/BaseInventoryServiceImpl.java @@ -348,6 +348,7 @@ public class BaseInventoryServiceImpl implements IBaseInventoryService return success; // 返回实际成功撤回条数 } + /** * 标准化入库编码,去除前后空白 * @@ -397,4 +398,34 @@ public class BaseInventoryServiceImpl implements IBaseInventoryService return data; // 返回预览结果 } + @Override + public AjaxResult transferOutInventoryByPda(BaseInventory baseInventory, BaseTyre baseTyre) { + try { + //查询库存状态 + BaseInventory baseInventoryStatus= baseInventoryMapper.selectBaseInventoryByEpc(baseInventory); + if ("1".equals(baseInventoryStatus.getStatus())){ + return AjaxResult.error("该轮胎已出库"); + } + //更新库存表(在仓-出仓) + baseInventory.setStatus("1"); + baseInventory.setUpdateTime(DateUtils.getNowDate()); + baseInventory.setUpdateBy(baseInventory.getCreateBy()); + int n = baseInventoryMapper.updateBaseInventoryByEpc(baseInventory); + //增加出库记录表 + RecordWarehousing recordWarehousing = new RecordWarehousing(); + recordWarehousing.setTyreRfid(baseInventory.getTyreRfid()); + recordWarehousing.setType("2"); + recordWarehousing.setCreateTime(DateUtils.getNowDate()); + recordWarehousing.setCreateBy(baseInventory.getCreateBy()); + int m = recordWarehousingMapper.insertRecordWarehousing(recordWarehousing); + //调拨出库要修改轮胎的所属部门 + int w = baseTyreMapper.updateBaseTyre(baseTyre); + if (n>0&&m>0){ + return AjaxResult.success("出库成功!"); + } + }catch (Exception e){ + return AjaxResult.error(e.getMessage()); + } + return AjaxResult.error("出库失败!"); + } } diff --git a/ruoyi-system/src/main/resources/mapper/tyre/BaseTyreMapper.xml b/ruoyi-system/src/main/resources/mapper/tyre/BaseTyreMapper.xml index fbb6dead..4c74e0b9 100644 --- a/ruoyi-system/src/main/resources/mapper/tyre/BaseTyreMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/tyre/BaseTyreMapper.xml @@ -89,7 +89,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and tyre_pattern = #{tyrePattern} and tyre_type = #{tyreType} and d.team like concat('%', #{team}, '%') - and car_no = #{carNo} + and d.car_no = #{carNo} AND date_format(d.create_time,'%Y%m%d') >= date_format(#{params.beginTime},'%Y%m%d')