| | |
| | | su.type, |
| | | COALESCE(su.locked_quantity, 0) as locked_quantity, |
| | | su.product_model_id, |
| | | p.id as product_id, |
| | | su.batch_no, |
| | | su.create_time, |
| | | su.update_time, |
| | | su.version, |
| | |
| | | </if> |
| | | <if test="ew.type != null and ew.type != ''"> |
| | | type = #{ew.type}, |
| | | </if> |
| | | <if test="ew.source != null and ew.source != ''"> |
| | | source = #{ew.source}, |
| | | </if> |
| | | update_time = now() |
| | | </set> |
| | |
| | | <if test="ew.type != null and ew.type != ''"> |
| | | type = #{ew.type}, |
| | | </if> |
| | | <if test="ew.source != null and ew.source != ''"> |
| | | source = #{ew.source}, |
| | | </if> |
| | | update_time = now() |
| | | </set> |
| | | where product_model_id = #{ew.productModelId} |
| | |
| | | (su.qualitity - COALESCE(su.locked_quantity, 0)) as un_locked_quantity, |
| | | pm.model, |
| | | pm.unit, |
| | | p.product_name |
| | | p.product_name, |
| | | su.source |
| | | <include refid="BaseWasteFromClause" /> |
| | | <where> |
| | | <if test="ew.type != null and ew.type != ''"> |
| | |
| | | <select id="pageWasteQuery" resultType="com.ruoyi.stock.dto.StockUninventoryDto"> |
| | | <include refid="WasteQueryRecursiveTree" /> |
| | | select |
| | | <include refid="WastePageColumns" /> |
| | | max(su.id) as id, |
| | | sum(su.qualitity) as qualitity, |
| | | su.type, |
| | | sum(COALESCE(su.locked_quantity, 0)) as locked_quantity, |
| | | su.product_model_id, |
| | | p.id as product_id, |
| | | GROUP_CONCAT(DISTINCT su.batch_no ORDER BY su.batch_no SEPARATOR ',') as batch_no, |
| | | min(su.create_time) as create_time, |
| | | max(su.update_time) as update_time, |
| | | max(su.version) as version, |
| | | (sum(su.qualitity) - sum(COALESCE(su.locked_quantity, 0))) as un_locked_quantity, |
| | | pm.model, |
| | | pm.unit, |
| | | p.product_name, |
| | | m.name as manufacturer_name, |
| | | su.source |
| | | <include refid="BaseWasteFromClause" /> |
| | | <where> |
| | | and su.type = 'waste' |
| | |
| | | and p.id in (select id from product_tree) |
| | | </if> |
| | | </where> |
| | | |
| | | order by su.update_time desc, su.id desc |
| | | group by su.product_model_id |
| | | order by max(su.update_time) desc, su.product_model_id desc |
| | | </select> |
| | | |
| | | <select id="listStockInventoryExportData" resultType="com.ruoyi.stock.execl.StockUnInventoryExportData"> |
| | |
| | | <select id="listWasteQueryExportData" resultType="com.ruoyi.stock.execl.StockUnInventoryExportData"> |
| | | <include refid="WasteQueryRecursiveTree" /> |
| | | select |
| | | su.*, |
| | | pm.model, |
| | | pm.unit, |
| | | p.product_name, |
| | | m.name as manufacturer_name, |
| | | (su.qualitity - COALESCE(su.locked_quantity, 0)) as un_locked_quantity |
| | | su.source, |
| | | su.type, |
| | | GROUP_CONCAT(DISTINCT su.batch_no ORDER BY su.batch_no SEPARATOR ',') as batch_no, |
| | | sum(su.qualitity) as qualitity, |
| | | sum(COALESCE(su.locked_quantity, 0)) as locked_quantity, |
| | | (sum(su.qualitity) - sum(COALESCE(su.locked_quantity, 0))) as un_locked_quantity, |
| | | GROUP_CONCAT(DISTINCT su.remark ORDER BY su.batch_no SEPARATOR ';') as remark, |
| | | max(su.update_time) as update_time |
| | | <include refid="BaseWasteFromClause" /> |
| | | <where> |
| | | and su.type = 'waste' |
| | |
| | | and p.id in (select id from product_tree) |
| | | </if> |
| | | </where> |
| | | order by su.update_time desc, su.id desc |
| | | group by su.product_model_id, su.type, pm.model, pm.unit, p.id, p.product_name, m.name, su.source |
| | | order by max(su.update_time) desc, su.product_model_id desc |
| | | </select> |
| | | |
| | | <select id="getWasteBatchNoQty" resultType="com.ruoyi.stock.dto.StockUninventoryDto"> |
| | |
| | | order by su.batch_no |
| | | </select> |
| | | |
| | | <select id="getWasteByModelId" resultType="com.ruoyi.stock.dto.StockUninventoryDto"> |
| | | select |
| | | su.id, |
| | | su.batch_no, |
| | | COALESCE(su.locked_quantity, 0) as locked_quantity, |
| | | (su.qualitity - IFNULL(sd.qualitity, 0)) as qualitity, |
| | | p.product_name, |
| | | pm.model, |
| | | pm.unit, |
| | | su.product_model_id |
| | | from stock_uninventory su |
| | | left join ( |
| | | select |
| | | sor.product_model_id, |
| | | sor.batch_no, |
| | | sum(spd.quantity) as qualitity |
| | | from shipping_product_detail spd |
| | | inner join stock_out_record sor |
| | | on sor.record_id = spd.shipping_info_id |
| | | and sor.record_type = '13' |
| | | and sor.type = '1' |
| | | and sor.approval_status in (0, 3) |
| | | and sor.product_model_id = spd.product_model_id |
| | | and (sor.batch_no = spd.batch_no or (sor.batch_no is null and spd.batch_no is null)) |
| | | where spd.stock_type = 'waste' |
| | | group by sor.product_model_id, sor.batch_no |
| | | ) sd on sd.product_model_id = su.product_model_id |
| | | and (sd.batch_no = su.batch_no or (sd.batch_no is null and su.batch_no is null)) |
| | | left join product_model pm on su.product_model_id = pm.id |
| | | left join product p on pm.product_id = p.id |
| | | where su.product_model_id = #{productModelId} |
| | | and su.type = 'waste' |
| | | and su.qualitity > IFNULL(sd.qualitity, 0) |
| | | order by su.batch_no |
| | | </select> |
| | | |
| | | <select id="selectPendingOutQuantity" resultType="java.math.BigDecimal"> |
| | | SELECT IFNULL(SUM(sor.stock_out_num), 0) |
| | | FROM stock_out_record sor |