From d8c86797adaef6c416efae16586f350ae77bde4b Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期六, 12 九月 2026 12:43:08 +0800
Subject: [PATCH] feat: 库存入库/出库字段全链路、采购台账申请提交时间、储罐租客信息、油库储罐模块
---
src/main/resources/mapper/stock/StockInventoryMapper.xml | 466 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 462 insertions(+), 4 deletions(-)
diff --git a/src/main/resources/mapper/stock/StockInventoryMapper.xml b/src/main/resources/mapper/stock/StockInventoryMapper.xml
index 15d08b3..fac5842 100644
--- a/src/main/resources/mapper/stock/StockInventoryMapper.xml
+++ b/src/main/resources/mapper/stock/StockInventoryMapper.xml
@@ -120,7 +120,84 @@
unit,
product_name,
product_id,
- 'combined' as stockType
+ 'combined' as stockType,
+ (
+ select sir.oil_product
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ order by sir.id desc
+ limit 1
+ ) as oil_product,
+ (
+ select sir.tank_inspection_status
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ order by sir.id desc
+ limit 1
+ ) as tank_inspection_status,
+ (
+ select sir.unloading_crane_position
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ order by sir.id desc
+ limit 1
+ ) as unloading_crane_position,
+ (
+ select sir.density
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ order by sir.id desc
+ limit 1
+ ) as density,
+ (
+ select sir.unload_photos
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ order by sir.id desc
+ limit 1
+ ) as unload_photos,
+ (
+ select sir.gross_weight
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ order by sir.id desc
+ limit 1
+ ) as gross_weight,
+ (
+ select sir.tare_weight
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ order by sir.id desc
+ limit 1
+ ) as tare_weight,
+ (
+ select sir.net_weight
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ order by sir.id desc
+ limit 1
+ ) as net_weight,
+ (
+ select sir.loss_quantity
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ order by sir.id desc
+ limit 1
+ ) as loss_quantity,
+ (
+ select sir.actual_volume
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ order by sir.id desc
+ limit 1
+ ) as actual_volume,
+ (
+ select sir.pound_photos
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ order by sir.id desc
+ limit 1
+ ) as pound_photos
from (
select
si.batch_no,
@@ -222,6 +299,7 @@
unit,
product_name,
product_id
+ order by create_time desc
</select>
<select id="listStockInventoryExportData" resultType="com.ruoyi.stock.execl.StockInventoryExportData">
@@ -351,7 +429,11 @@
su.nick_name as create_by
from
stock_in_record sir
- left join stock_inventory si on sir.product_model_id = si.product_model_id
+ left join (
+ select product_model_id, sum(qualitity) as qualitity
+ from stock_inventory
+ group by product_model_id
+ ) si on sir.product_model_id = si.product_model_id
left join product_model pm on sir.product_model_id = pm.id
left join product p on pm.product_id = p.id
left join sys_user su on sir.create_user = su.user_id
@@ -367,6 +449,7 @@
and sir.create_time <= #{ew.endMonth}
</if>
</where>
+ order by sir.id desc
</select>
<select id="stockInAndOutRecord" resultType="com.ruoyi.stock.dto.StockInventoryDto">
@@ -506,7 +589,7 @@
where si.product_model_id in
<foreach collection="productModelIds" item="productModelId" open="(" separator="," close=")">
#{productModelId}
- </foreach>c
+ </foreach>
and si.batch_no is not null
and si.batch_no != ''
and (si.qualitity - ifnull(si.locked_quantity, 0)) > 0
@@ -567,7 +650,382 @@
MAX(version) as version,
MAX(remark) as remark,
- 'combined' as stockType
+ 'combined' as stockType,
+ (
+ select sir.oil_product
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+ order by sir.id desc
+ limit 1
+ ) as oil_product,
+ (
+ select sir.tank_inspection_status
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+ order by sir.id desc
+ limit 1
+ ) as tank_inspection_status,
+ (
+ select sir.unloading_crane_position
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+ order by sir.id desc
+ limit 1
+ ) as unloading_crane_position,
+ (
+ select sir.density
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+ order by sir.id desc
+ limit 1
+ ) as density,
+ (
+ select sir.unload_photos
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+ order by sir.id desc
+ limit 1
+ ) as unload_photos,
+ (
+ select sir.gross_weight
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+ order by sir.id desc
+ limit 1
+ ) as gross_weight,
+ (
+ select sir.tare_weight
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+ order by sir.id desc
+ limit 1
+ ) as tare_weight,
+ (
+ select sir.net_weight
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+ order by sir.id desc
+ limit 1
+ ) as net_weight,
+ (
+ select sir.loss_quantity
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+ order by sir.id desc
+ limit 1
+ ) as loss_quantity,
+ (
+ select sir.actual_volume
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+ order by sir.id desc
+ limit 1
+ ) as actual_volume,
+ (
+ select sir.pound_photos
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+ order by sir.id desc
+ limit 1
+ ) as pound_photos,
+ (
+ select sor.out_category
+ from stock_out_record sor
+ where sor.product_model_id = combined.product_model_id
+ order by sor.id desc
+ limit 1
+ ) as out_category,
+ (
+ select sor.out_date
+ from stock_out_record sor
+ where sor.product_model_id = combined.product_model_id
+ order by sor.id desc
+ limit 1
+ ) as out_date,
+ (
+ select sor.out_tonnage
+ from stock_out_record sor
+ where sor.product_model_id = combined.product_model_id
+ order by sor.id desc
+ limit 1
+ ) as out_tonnage,
+ (
+ select sor.customer_name
+ from stock_out_record sor
+ where sor.product_model_id = combined.product_model_id
+ order by sor.id desc
+ limit 1
+ ) as out_customer_name,
+ (
+ select sor.loading_inspection_status
+ from stock_out_record sor
+ where sor.product_model_id = combined.product_model_id
+ order by sor.id desc
+ limit 1
+ ) as loading_inspection_status,
+ (
+ select sor.loading_crane_position
+ from stock_out_record sor
+ where sor.product_model_id = combined.product_model_id
+ order by sor.id desc
+ limit 1
+ ) as loading_crane_position,
+ (
+ select sor.density
+ from stock_out_record sor
+ where sor.product_model_id = combined.product_model_id
+ order by sor.id desc
+ limit 1
+ ) as out_density,
+ (
+ select sor.driver_name
+ from stock_out_record sor
+ where sor.product_model_id = combined.product_model_id
+ order by sor.id desc
+ limit 1
+ ) as out_driver_name,
+ (
+ select sor.truck_plate_no
+ from stock_out_record sor
+ where sor.product_model_id = combined.product_model_id
+ order by sor.id desc
+ limit 1
+ ) as out_truck_plate_no,
+ (
+ select sor.loading_photos
+ from stock_out_record sor
+ where sor.product_model_id = combined.product_model_id
+ order by sor.id desc
+ limit 1
+ ) as loading_photos,
+ (
+ select sor.pound_photos
+ from stock_out_record sor
+ where sor.product_model_id = combined.product_model_id
+ order by sor.id desc
+ limit 1
+ ) as out_pound_photos,
+ (
+ select sor.oil_depot_name
+ from stock_out_record sor
+ where sor.product_model_id = combined.product_model_id
+ order by sor.id desc
+ limit 1
+ ) as out_oil_depot_name,
+ (
+ select sor.tank_no
+ from stock_out_record sor
+ where sor.product_model_id = combined.product_model_id
+ order by sor.id desc
+ limit 1
+ ) as out_tank_no,
+ (
+ select sor.oil_product
+ from stock_out_record sor
+ where sor.product_model_id = combined.product_model_id
+ order by sor.id desc
+ limit 1
+ ) as out_oil_product,
+ (
+ select sor.contact_person
+ from stock_out_record sor
+ where sor.product_model_id = combined.product_model_id
+ order by sor.id desc
+ limit 1
+ ) as out_contact_person,
+ (
+ select sor.contact_phone
+ from stock_out_record sor
+ where sor.product_model_id = combined.product_model_id
+ order by sor.id desc
+ limit 1
+ ) as out_contact_phone,
+ (
+ select sor.gross_weight
+ from stock_out_record sor
+ where sor.product_model_id = combined.product_model_id
+ order by sor.id desc
+ limit 1
+ ) as out_gross_weight,
+ (
+ select sor.tare_weight
+ from stock_out_record sor
+ where sor.product_model_id = combined.product_model_id
+ order by sor.id desc
+ limit 1
+ ) as out_tare_weight,
+ (
+ select sor.net_weight
+ from stock_out_record sor
+ where sor.product_model_id = combined.product_model_id
+ order by sor.id desc
+ limit 1
+ ) as out_net_weight,
+ (
+ select sor.loss_quantity
+ from stock_out_record sor
+ where sor.product_model_id = combined.product_model_id
+ order by sor.id desc
+ limit 1
+ ) as out_loss_quantity,
+ (
+ select sor.actual_volume
+ from stock_out_record sor
+ where sor.product_model_id = combined.product_model_id
+ order by sor.id desc
+ limit 1
+ ) as out_actual_volume,
+ (
+ select sor.driver_phone
+ from stock_out_record sor
+ where sor.product_model_id = combined.product_model_id
+ order by sor.id desc
+ limit 1
+ ) as out_driver_phone,
+ (
+ select sor.escort_name
+ from stock_out_record sor
+ where sor.product_model_id = combined.product_model_id
+ order by sor.id desc
+ limit 1
+ ) as out_escort_name,
+ (
+ select sor.escort_phone
+ from stock_out_record sor
+ where sor.product_model_id = combined.product_model_id
+ order by sor.id desc
+ limit 1
+ ) as out_escort_phone,
+ (
+ select sor.trailer_plate_no
+ from stock_out_record sor
+ where sor.product_model_id = combined.product_model_id
+ order by sor.id desc
+ limit 1
+ ) as out_trailer_plate_no,
+ (
+ select sir.oil_depot_name
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+ order by sir.id desc
+ limit 1
+ ) as oil_depot_name,
+ (
+ select sir.inbound_category
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+ order by sir.id desc
+ limit 1
+ ) as inbound_category,
+ (
+ select sir.tank_no
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+ order by sir.id desc
+ limit 1
+ ) as tank_no,
+ (
+ select sir.inbound_time
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+ order by sir.id desc
+ limit 1
+ ) as inbound_time,
+ (
+ select sir.original_quantity
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+ order by sir.id desc
+ limit 1
+ ) as original_quantity,
+ (
+ select sir.customer_name
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+ order by sir.id desc
+ limit 1
+ ) as customer_name,
+ (
+ select sir.contact_person
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+ order by sir.id desc
+ limit 1
+ ) as contact_person,
+ (
+ select sir.contact_phone
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+ order by sir.id desc
+ limit 1
+ ) as contact_phone,
+ (
+ select sir.driver_name
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+ order by sir.id desc
+ limit 1
+ ) as driver_name,
+ (
+ select sir.driver_phone
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+ order by sir.id desc
+ limit 1
+ ) as driver_phone,
+ (
+ select sir.escort_name
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+ order by sir.id desc
+ limit 1
+ ) as escort_name,
+ (
+ select sir.escort_phone
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+ order by sir.id desc
+ limit 1
+ ) as escort_phone,
+ (
+ select sir.truck_plate_no
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+ order by sir.id desc
+ limit 1
+ ) as truck_plate_no,
+ (
+ select sir.trailer_plate_no
+ from stock_in_record sir
+ where sir.product_model_id = combined.product_model_id
+ and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+ order by sir.id desc
+ limit 1
+ ) as trailer_plate_no
from (
select
si.batch_no,
--
Gitblit v1.9.3