| | |
| | | <result column="product_id" property="productId" /> |
| | | <result column="model" property="model" /> |
| | | <result column="unit" property="unit" /> |
| | | <result column="speculative_trading_name" property="speculativeTradingName" /> |
| | | <result column="tenant_id" property="tenantId" /> |
| | | <result column="product_name" property="productName" /> |
| | | <result column="product_id" property="productId" /> |
| | |
| | | from product_model pm |
| | | left join product p on pm.product_id = p.id |
| | | <where> |
| | | <if test="c.model != null || c.model != ''"> |
| | | and pm.model = like concat('%',#{c.model},'%') |
| | | <if test="c.model != null and c.model != ''"> |
| | | and pm.model like concat('%',#{c.model},'%') |
| | | </if> |
| | | <if test="c.productName != null || c.productName != ''"> |
| | | and p.product_name = like concat('%',#{c.productName},'%') |
| | | </if> |
| | | <if test="c.speculativeTradingName != null || c.speculativeTradingName != ''"> |
| | | and pm.speculative_trading_name like concat('%',#{c.speculativeTradingName},'%') |
| | | <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> |