From a08dce3de307ce138396db5fe7274ead2ef5c573 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期二, 20 一月 2026 17:12:08 +0800
Subject: [PATCH] Merge branch 'jtwy' of http://114.132.189.42:9002/r/product-inventory-management-after into sqd-hb
---
src/main/resources/mapper/basic/ProductModelMapper.xml | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 100 insertions(+), 0 deletions(-)
diff --git a/src/main/resources/mapper/basic/ProductModelMapper.xml b/src/main/resources/mapper/basic/ProductModelMapper.xml
new file mode 100644
index 0000000..f9f1ff8
--- /dev/null
+++ b/src/main/resources/mapper/basic/ProductModelMapper.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.basic.mapper.ProductModelMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.basic.pojo.ProductModel">
+ <id column="id" property="id" />
+ <result column="product_id" property="productId" />
+ <result column="model" property="model" />
+ <result column="unit" property="unit" />
+ <result column="tenant_id" property="tenantId" />
+ <result column="product_name" property="productName" />
+ <result column="product_id" property="productId" />
+ </resultMap>
+ <select id="listPageProductModel" resultType="com.ruoyi.basic.pojo.ProductModel">
+ select pm.*,p.product_name
+ from product_model pm
+ left join product p on pm.product_id = p.id
+ <where>
+ <if test="c.model != null and 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},'%')
+ </if>
+ </where>
+ order by pm.id
+ </select>
+ <select id="selectLatestRecord" resultType="com.ruoyi.basic.pojo.ProductModel">
+ SELECT * FROM product_model
+ ORDER BY create_time DESC, id DESC
+ LIMIT 1
+ </select>
+
+ <select id="listPageProductionStock" resultType="com.ruoyi.basic.pojo.ProductModel">
+ SELECT
+ pm.id,
+ pm.product_id,
+ pm.model,
+ pm.unit,
+ p.product_name,
+ GREATEST(s.last_in_time, o.last_out_time) AS create_time,
+ COALESCE(s.inboundNum, 0) AS inboundNum,
+ COALESCE(o.outboundNum, 0) AS outboundNum,
+ COALESCE(s.inboundNum, 0) - COALESCE(o.outboundNum, 0) AS stockQuantity
+ FROM product_model pm
+ LEFT JOIN product p ON pm.product_id = p.id
+
+ -- 鍏ュ簱姹囨��
+ LEFT JOIN (
+ SELECT
+ product_model_id,
+ SUM(inbound_num) AS inboundNum,
+ MAX(create_time) AS last_in_time
+ FROM procurement_record_storage
+ <where>
+ <if test="req.timeStr != null and req.timeStr != ''">
+ AND create_time >= #{req.timeStr}
+ AND create_time < DATE_ADD(#{req.timeStr}, INTERVAL 1 DAY)
+ </if>
+ </where>
+ GROUP BY product_model_id
+ ) s ON s.product_model_id = pm.id
+
+ -- 鍑哄簱姹囨��
+ LEFT JOIN (
+ SELECT
+ product_model_id,
+ SUM(inbound_num) AS outboundNum,
+ MAX(create_time) AS last_out_time
+ FROM procurement_record_out
+ <where>
+ <if test="req.timeStr != null and req.timeStr != ''">
+ AND create_time >= #{req.timeStr}
+ AND create_time < DATE_ADD(#{req.timeStr}, INTERVAL 1 DAY)
+ </if>
+ </where>
+ GROUP BY product_model_id
+ ) o ON o.product_model_id = pm.id
+
+ <where>
+ <if test="req.timeStr != null and req.timeStr != ''">
+ AND (s.product_model_id IS NOT NULL OR o.product_model_id IS NOT NULL)
+ </if>
+
+ <if test="req.productCategory != null and req.productCategory != ''">
+ AND EXISTS (
+ SELECT 1
+ FROM sales_ledger_product slp
+ WHERE slp.product_id = p.id
+ AND slp.product_category LIKE CONCAT('%', #{req.productCategory}, '%')
+ )
+ </if>
+ </where>
+
+ ORDER BY pm.id DESC
+ </select>
+
+</mapper>
\ No newline at end of file
--
Gitblit v1.9.3