From 00c058968bedaee2c79aa97ea901949692296af5 Mon Sep 17 00:00:00 2001
From: chenhj <1263187585@qq.com>
Date: 星期三, 14 一月 2026 09:34:05 +0800
Subject: [PATCH] 查询库存工具类
---
src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml | 7 +++
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutAdd.java | 2 +
src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordOutMapper.java | 3 +
src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java | 5 +-
src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java | 3 +
src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java | 7 ++-
src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml | 5 ++
src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java | 6 +-
src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java | 5 ++
src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java | 24 ++++++++++++
src/main/java/com/ruoyi/procurementrecord/dto/Details.java | 3 +
11 files changed, 61 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/Details.java b/src/main/java/com/ruoyi/procurementrecord/dto/Details.java
index 2257765..08dd6af 100644
--- a/src/main/java/com/ruoyi/procurementrecord/dto/Details.java
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/Details.java
@@ -10,10 +10,11 @@
*/
@Data
public class Details {
- private Integer id; // 浜у搧id
+ private Integer id; // 鍙拌处浜у搧id
private BigDecimal inboundQuantity; // 鍏ュ簱鏁伴噺
private BigDecimal warnNum; // 棰勮鏁伴噺锛堥噰璐叆搴撴墠鏈夛級
//鍗曚环
private BigDecimal unitPrice;
private BigDecimal totalPrice;
+ private Long productModelId; // 鍩虹浜у搧id
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutAdd.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutAdd.java
index 9124e75..78a2f04 100644
--- a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutAdd.java
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutAdd.java
@@ -24,4 +24,6 @@
*/
private Integer type;
+ private Long productModelId;// 鍩虹浜у搧ID
+
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java
index b4cdbb7..19e76e6 100644
--- a/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java
+++ b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java
@@ -9,6 +9,7 @@
import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage;
import org.apache.ibatis.annotations.Param;
+import java.math.BigDecimal;
import java.util.List;
/**
@@ -41,4 +42,6 @@
IPage<ProcurementPageDtoCopy> listPageCopyByProduction(Page page, @Param("req") ProcurementPageDto procurementDto);
IPage<ProcurementPageDtoCopy> listPagePRS(Page page, @Param("req") ProcurementPageDto procurementDto);
+
+ BigDecimal getSumQuantity(@Param("productModelId") Long productModelId);
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordOutMapper.java b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordOutMapper.java
index 6cd9dab..bb24eb5 100644
--- a/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordOutMapper.java
+++ b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordOutMapper.java
@@ -7,6 +7,7 @@
import com.ruoyi.procurementrecord.pojo.ProcurementRecordOut;
import org.apache.ibatis.annotations.Param;
+import java.math.BigDecimal;
import java.util.List;
/**
@@ -26,4 +27,6 @@
IPage<ProcurementRecordOutPageDto> listPageByProduct(Page page,@Param("req") ProcurementRecordOutPageDto procurementDto);
IPage<ProcurementRecordOutPageDto> listPageByCustom(Page page,@Param("req") ProcurementRecordOutPageDto procurementDto);
+
+ BigDecimal getSumQuantity(@Param("productModelId") Long productModelId);
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java
index 7f1cde6..12dc8e9 100644
--- a/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java
+++ b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java
@@ -1,8 +1,6 @@
package com.ruoyi.procurementrecord.pojo;
import com.baomidou.mybatisplus.annotation.*;
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
@@ -89,4 +87,9 @@
@TableField(fill = FieldFill.INSERT)
private Long tenantId;
+ /**
+ * 浜у搧ID
+ */
+ private Long productModelId;
+
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java
index 5240715..0e18336 100644
--- a/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java
+++ b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java
@@ -95,4 +95,9 @@
*/
@TableField(fill = FieldFill.INSERT)
private Long tenantId;
+
+ /**
+ * 浜у搧ID
+ */
+ private Long productModelId;
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java
index 0735a39..b6e215c 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java
@@ -10,7 +10,6 @@
import com.ruoyi.procurementrecord.dto.ProcurementUpdateDto;
import com.ruoyi.procurementrecord.mapper.ProcurementRecordOutMapper;
import com.ruoyi.procurementrecord.pojo.ProcurementRecordOut;
-import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage;
import com.ruoyi.procurementrecord.service.ProcurementRecordOutService;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysUserMapper;
@@ -22,7 +21,6 @@
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
-import java.text.DateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
@@ -80,7 +78,8 @@
.createUser(Long.valueOf(procurementRecordOutAdd.getUserId()))
.createBy(sysUser.getNickName())
.updateUser(Long.valueOf(procurementRecordOutAdd.getUserId()))
- .updateTime(LocalDateTime.now());
+ .updateTime(LocalDateTime.now())
+ .productModelId(procurementRecordOutAdd.getProductModelId());
this.save(procurementRecordOut.build());
return 0;
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
index 3d24081..d0399a6 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
@@ -14,8 +14,8 @@
import com.ruoyi.procurementrecord.mapper.ProcurementRecordMapper;
import com.ruoyi.procurementrecord.mapper.ProcurementRecordOutMapper;
import com.ruoyi.procurementrecord.pojo.CustomStorage;
-import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage;
import com.ruoyi.procurementrecord.pojo.ProcurementRecordOut;
+import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage;
import com.ruoyi.procurementrecord.service.ProcurementRecordService;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysUserMapper;
@@ -29,7 +29,6 @@
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
-import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
@@ -772,7 +771,8 @@
.createUser(loginUser.getUserId())
.updateTime(LocalDateTime.now())
.updateUser(loginUser.getUserId())
- .createBy(procurementDto.getNickName());
+ .createBy(procurementDto.getNickName())
+ .productModelId(detail.getProductModelId());
this.save(procurementRecordBuilder.build());
// 鍏ュ簱鎴愬姛鍑忔帀閲囪喘鏁伴噺
// LambdaQueryWrapper<SalesLedgerProduct> salesLedgerProductLambdaQueryWrapper = new LambdaQueryWrapper<>();
diff --git a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
new file mode 100644
index 0000000..1588029
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
@@ -0,0 +1,24 @@
+package com.ruoyi.procurementrecord.utils;
+
+import com.ruoyi.procurementrecord.mapper.ProcurementRecordMapper;
+import com.ruoyi.procurementrecord.mapper.ProcurementRecordOutMapper;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Component;
+
+import java.math.BigDecimal;
+
+@Component
+@RequiredArgsConstructor
+public class StockUtils {
+ private final ProcurementRecordOutMapper procurementRecordOutMapper;
+ private final ProcurementRecordMapper procurementRecordMapper;
+
+ // 鑾峰彇鍟嗗搧鍓╀綑搴撳瓨
+ public BigDecimal getStockQuantity(Long productModelId) {
+ // 鍏ュ簱鏁伴噺
+ BigDecimal sumQuantity = procurementRecordMapper.getSumQuantity(productModelId);
+ // 鍑哄簱鏁伴噺
+ BigDecimal outQuantity = procurementRecordOutMapper.getSumQuantity(productModelId);
+ return outQuantity.compareTo(sumQuantity) > 0 ? BigDecimal.ZERO : sumQuantity.subtract(outQuantity);
+ }
+}
diff --git a/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml b/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
index 3642db2..6384411 100644
--- a/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
+++ b/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
@@ -353,4 +353,9 @@
</if>
</where>
</select>
+ <select id="getSumQuantity" resultType="BigDecimal">
+ select COALESCE(sum(inbound_num), 0)
+ from procurement_record_storage
+ where product_model_id = #{productModelId}
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml b/src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml
index b58db32..94fec66 100644
--- a/src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml
+++ b/src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml
@@ -169,4 +169,11 @@
</where>
order by t1.create_time desc
</select>
+
+ <select id="getSumQuantity" resultType="BigDecimal">
+ select sum(inbound_num)
+ from procurement_record_out
+ where type = 1
+ and product_model_id = #{productModelId}
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.3