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')