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 |  458 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 455 insertions(+), 3 deletions(-)

diff --git a/src/main/resources/mapper/stock/StockInventoryMapper.xml b/src/main/resources/mapper/stock/StockInventoryMapper.xml
index ac9c49b..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,7 +299,7 @@
         unit,
         product_name,
         product_id
-        order by combined.create_time desc
+        order by create_time desc
     </select>
 
     <select id="listStockInventoryExportData" resultType="com.ruoyi.stock.execl.StockInventoryExportData">
@@ -573,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