From 2652673d45d9f142baed0d92f1deab38276dbd90 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期二, 03 三月 2026 10:07:15 +0800
Subject: [PATCH] 库存区分原材料和成品和半成品
---
src/main/java/com/ruoyi/stock/pojo/StockInventory.java | 3 +
doc/2026-03-02-stock_inventory-add.sql | 11 +++++
src/main/resources/mapper/basic/ProductModelMapper.xml | 16 ++++++--
src/main/java/com/ruoyi/stock/dto/StockInventoryDto.java | 11 +++++
src/main/java/com/ruoyi/stock/pojo/StockInRecord.java | 5 ++
src/main/resources/mapper/stock/StockInventoryMapper.xml | 26 ++++++++++--
src/main/java/com/ruoyi/stock/pojo/StockOutRecord.java | 5 ++
src/main/java/com/ruoyi/basic/pojo/ProductModel.java | 8 ++++
src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java | 3 +
9 files changed, 79 insertions(+), 9 deletions(-)
diff --git a/doc/2026-03-02-stock_inventory-add.sql b/doc/2026-03-02-stock_inventory-add.sql
new file mode 100644
index 0000000..12cb633
--- /dev/null
+++ b/doc/2026-03-02-stock_inventory-add.sql
@@ -0,0 +1,11 @@
+-- 娣诲姞杩囩鏃ユ湡瀛楁
+ALTER TABLE stock_in_record
+ ADD COLUMN weighing_date timestamp COMMENT '杩囩鏃ユ湡';
+
+-- 娣诲姞杩囩鏃ユ湡瀛楁
+ALTER TABLE stock_out_record
+ ADD COLUMN weighing_date timestamp COMMENT '杩囩鏃ユ湡';
+
+-- 娣诲姞鍑�閲嶅瓧娈�
+ALTER TABLE stock_inventory
+ ADD COLUMN net_weight DECIMAL(16,3) COMMENT '鍑�閲�';
diff --git a/src/main/java/com/ruoyi/basic/pojo/ProductModel.java b/src/main/java/com/ruoyi/basic/pojo/ProductModel.java
index 069b665..5afbaef 100644
--- a/src/main/java/com/ruoyi/basic/pojo/ProductModel.java
+++ b/src/main/java/com/ruoyi/basic/pojo/ProductModel.java
@@ -63,4 +63,12 @@
@TableField(exist = false)
private LocalDateTime createTime;
+
+ @TableField(exist = false)
+ private Long parentId;
+
+ @TableField(exist = false)
+ private String parentName;
+
+ private Long productType;
}
diff --git a/src/main/java/com/ruoyi/stock/dto/StockInventoryDto.java b/src/main/java/com/ruoyi/stock/dto/StockInventoryDto.java
index 125b52b..55742b0 100644
--- a/src/main/java/com/ruoyi/stock/dto/StockInventoryDto.java
+++ b/src/main/java/com/ruoyi/stock/dto/StockInventoryDto.java
@@ -2,11 +2,13 @@
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.stock.pojo.StockInventory;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDate;
+import java.time.LocalDateTime;
@Data
public class StockInventoryDto extends StockInventory {
@@ -39,4 +41,13 @@
private BigDecimal currentStock;
private BigDecimal unLockedQuantity;
+
+ private Long parentId;
+
+ @ApiModelProperty("杩囩鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime weighingDate;
+
+ private String parentName;
}
diff --git a/src/main/java/com/ruoyi/stock/pojo/StockInRecord.java b/src/main/java/com/ruoyi/stock/pojo/StockInRecord.java
index 395d18f..f5e6256 100644
--- a/src/main/java/com/ruoyi/stock/pojo/StockInRecord.java
+++ b/src/main/java/com/ruoyi/stock/pojo/StockInRecord.java
@@ -62,4 +62,9 @@
@ApiModelProperty(value = "淇敼鐢ㄦ埛")
@TableField(fill = FieldFill.INSERT_UPDATE)
private Integer updateUser;
+
+ @ApiModelProperty("杩囩鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime weighingDate;
}
diff --git a/src/main/java/com/ruoyi/stock/pojo/StockInventory.java b/src/main/java/com/ruoyi/stock/pojo/StockInventory.java
index 36e7cf0..4dc3924 100644
--- a/src/main/java/com/ruoyi/stock/pojo/StockInventory.java
+++ b/src/main/java/com/ruoyi/stock/pojo/StockInventory.java
@@ -63,4 +63,7 @@
@ApiModelProperty("澶囨敞")
private String remark;
+
+ @ApiModelProperty("鍑�閲�")
+ private BigDecimal netWeight;
}
diff --git a/src/main/java/com/ruoyi/stock/pojo/StockOutRecord.java b/src/main/java/com/ruoyi/stock/pojo/StockOutRecord.java
index e4e3b82..35abb44 100644
--- a/src/main/java/com/ruoyi/stock/pojo/StockOutRecord.java
+++ b/src/main/java/com/ruoyi/stock/pojo/StockOutRecord.java
@@ -71,4 +71,9 @@
@ApiModelProperty(value = "绫诲瀷 0鍚堟牸鍏ュ簱 1涓嶅悎鏍煎叆搴�")
private String type;
+
+ @ApiModelProperty("杩囩鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime weighingDate;
}
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
index 5cb6dda..856e882 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
@@ -60,6 +60,7 @@
stockInRecordDto.setRecordId(stockInventoryDto.getRecordId());
stockInRecordDto.setRecordType(stockInventoryDto.getRecordType());
stockInRecordDto.setStockInNum(stockInventoryDto.getQualitity());
+ stockInRecordDto.setWeighingDate(stockInventoryDto.getWeighingDate());
stockInRecordDto.setProductModelId(stockInventoryDto.getProductModelId());
stockInRecordDto.setType("0");
stockInRecordService.add(stockInRecordDto);
@@ -70,6 +71,7 @@
StockInventory newStockInventory = new StockInventory();
newStockInventory.setProductModelId(stockInventoryDto.getProductModelId());
newStockInventory.setQualitity(stockInventoryDto.getQualitity());
+ newStockInventory.setNetWeight(stockInventoryDto.getNetWeight());
newStockInventory.setVersion(1);
newStockInventory.setRemark(stockInventoryDto.getRemark());
newStockInventory.setLockedQuantity(stockInventoryDto.getLockedQuantity());
@@ -89,6 +91,7 @@
StockOutRecordDto stockOutRecordDto = new StockOutRecordDto();
stockOutRecordDto.setRecordId(stockInventoryDto.getRecordId());
stockOutRecordDto.setRecordType(stockInventoryDto.getRecordType());
+ stockInventoryDto.setWeighingDate(stockInventoryDto.getWeighingDate());
stockOutRecordDto.setStockOutNum(stockInventoryDto.getQualitity());
stockOutRecordDto.setProductModelId(stockInventoryDto.getProductModelId());
stockOutRecordDto.setType("0");
diff --git a/src/main/resources/mapper/basic/ProductModelMapper.xml b/src/main/resources/mapper/basic/ProductModelMapper.xml
index 317f5d9..9b1ade3 100644
--- a/src/main/resources/mapper/basic/ProductModelMapper.xml
+++ b/src/main/resources/mapper/basic/ProductModelMapper.xml
@@ -15,18 +15,26 @@
<result column="product_id" property="productId" />
</resultMap>
<select id="listPageProductModel" resultType="com.ruoyi.basic.pojo.ProductModel">
- select pm.*,p.product_name
+ select pm.*,p.product_name,p.parent_id,p1.product_name as parent_name,
+ case
+ when p1.product_name is null then 0 -- 鍘熸潗鏂�
+ when p1.product_name is not null and p1.product_name like '%鍗婃垚鍝�%' then 1 -- 鍗婃垚鍝�
+ when p1.product_name is not null and p1.product_name like '%鎴愬搧%' then 2 -- 鎴愬搧
+ else 0 -- 榛樿涓哄師鏉愭枡
+ end as product_type
from product_model pm
left join product p on pm.product_id = p.id
+ left join product p1 on p1.id = p.parent_id
<where>
<if test="c.model != null and c.model != ''">
- and pm.model like concat('%',#{c.model},'%')
+ and pm.model like concat('%',#{c.model},'%')
</if>
<if test="c.productName != null and c.productName != ''">
- and p.product_name like concat('%',#{c.productName},'%')
+ and p.product_name like concat('%',#{c.productName},'%')
</if>
</where>
- order by pm.id
+ order by pm.id
+
</select>
<select id="selectLatestRecord" resultType="com.ruoyi.basic.pojo.ProductModel">
SELECT * FROM product_model
diff --git a/src/main/resources/mapper/stock/StockInventoryMapper.xml b/src/main/resources/mapper/stock/StockInventoryMapper.xml
index 9db56f9..6727a36 100644
--- a/src/main/resources/mapper/stock/StockInventoryMapper.xml
+++ b/src/main/resources/mapper/stock/StockInventoryMapper.xml
@@ -19,9 +19,13 @@
<if test="ew.qualitity != null">
qualitity = qualitity + #{ew.qualitity},
</if>
+ <if test="ew.netWeight != null">
+ net_weight = net_weight + #{ew.netWeight},
+ </if>
<if test="ew.version != null">
version = version + 1,
</if>
+
<if test="ew.remark != null and ew.remark !=''">
remark = #{ew.remark},
</if>
@@ -41,6 +45,9 @@
<if test="ew.qualitity != null">
qualitity = qualitity - #{ew.qualitity},
</if>
+ <if test="ew.netWeight != null">
+ net_weight = net_weight - #{ew.netWeight},
+ </if>
<if test="ew.version != null">
version = version + 1,
</if>
@@ -53,6 +60,7 @@
</update>
<select id="pagestockInventory" resultType="com.ruoyi.stock.dto.StockInventoryDto">
select si.id,
+ si.net_weight,
si.qualitity,
COALESCE(si.locked_quantity, 0) as locked_quantity,
si.product_model_id,
@@ -64,14 +72,22 @@
pm.model,
si.remark,
pm.unit,
- p.product_name
+ p.product_name,
+ p1.product_name as parent_name,
+ p1.id as parent_id
from stock_inventory si
left join product_model pm on si.product_model_id = pm.id
left join product p on pm.product_id = p.id
- where 1 = 1
- <if test="ew.productName != null and ew.productName !=''">
- and p.product_name like concat('%',#{ew.productName},'%')
- </if>
+ left join product p1 on p.parent_id = p1.id
+ <where>
+ 1=1
+ <if test="ew.parentId != null and ew.parentId !=''">
+ and p.parent_id = #{ew.parentId}
+ </if>
+ <if test="ew.productName != null and ew.productName !=''">
+ and p.product_name like concat('%',#{ew.productName},'%')
+ </if>
+ </where>
</select>
<select id="listStockInventoryExportData" resultType="com.ruoyi.stock.execl.StockInventoryExportData">
select si.qualitity,
--
Gitblit v1.9.3