| | |
| | | spd.totalQuantity, |
| | | sor.outboundBatches, |
| | | 'shipping' as source, |
| | | NULL as stockOutRecordId, |
| | | NULL as outCategory, |
| | | NULL as tankNo, |
| | | NULL as oilProduct, |
| | | NULL as oilDepotName, |
| | | NULL as driverName, |
| | | NULL as contactPerson, |
| | | NULL as contactPhone, |
| | | NULL as outBatchNo |
| | | oor.id as stockOutRecordId, |
| | | oor.out_category as outCategory, |
| | | oor.tank_no as tankNo, |
| | | oor.oil_product as oilProduct, |
| | | oor.oil_depot_name as oilDepotName, |
| | | oor.driver_name as driverName, |
| | | oor.contact_person as contactPerson, |
| | | oor.contact_phone as contactPhone, |
| | | oor.batch_no as outBatchNo |
| | | FROM shipping_info s |
| | | LEFT JOIN (select shipping_info_id,sum(quantity) totalQuantity from shipping_product_detail GROUP BY shipping_info_id) spd ON spd.shipping_info_id = s.id |
| | | LEFT JOIN sales_ledger sl ON s.sales_ledger_id = sl.id |
| | |
| | | from stock_out_record |
| | | where record_type='13'and approval_status=1 |
| | | group by record_id)sor on sor.record_id= s.id |
| | | <!-- 由油品出库审批通过时生成的发货单:一条出库对应一条自己的 shipping_info, |
| | | 故至多命中一行,不会放大行数。手建的发货单没有配对油品出库,这些列为空 --> |
| | | left join stock_out_record oor |
| | | on oor.record_id = s.id |
| | | and TRIM(IFNULL(oor.record_type,'')) = '13' |
| | | and (oor.type IS NULL or oor.type = '') |
| | | WHERE 1=1 |
| | | <if test="req.salesContractNo != null and req.salesContractNo != ''"> |
| | | AND sl.sales_contract_no LIKE CONCAT('%',#{req.salesContractNo},'%') |
| | |
| | | o.create_user, |
| | | o.update_user, |
| | | NULL as tenant_id, |
| | | sl2.sales_contract_no, |
| | | <!-- 油品出库可绑多个销售台账(多客户),o.sales_ledger_id 只存首项,故从绑定表汇总全部合同号 --> |
| | | IFNULL( |
| | | (select group_concat(distinct slb.sales_contract_no separator ',') |
| | | from stock_out_record_sales_ledger b |
| | | join sales_ledger slb on slb.id = b.sales_ledger_id |
| | | where b.stock_out_record_id = o.id), |
| | | sl2.sales_contract_no) as sales_contract_no, |
| | | pm2.model as specification_model, |
| | | pm2.unit, |
| | | p2.product_name, |
| | |
| | | left join product p2 on p2.id = pm2.product_id |
| | | <!-- 绑定了销售台账的油品出库带出合同号;没绑的行该列仍为空 --> |
| | | left join sales_ledger sl2 on sl2.id = o.sales_ledger_id |
| | | WHERE o.out_category = '销售' AND o.approval_status = 1 |
| | | <!-- 只取油品出库(type 为空,全部出库类别);type=0/1 的合格、不合格出库不进发货台账 --> |
| | | WHERE (o.type IS NULL OR o.type = '') AND o.approval_status = 1 |
| | | <!-- 已改造成「销售-发货出库」的油品行由分支 A 的 shipping_info 展示,此处排除避免同一批货两行。 |
| | | IFNULL 必须加:record_type 为 NULL 时三值逻辑会把整行滤掉 --> |
| | | AND NOT (TRIM(IFNULL(o.record_type,'')) = '13' AND IFNULL(o.record_id,0) > 0) |
| | | <if test="req.salesContractNo != null and req.salesContractNo != ''"> |
| | | AND sl2.sales_contract_no LIKE CONCAT('%',#{req.salesContractNo},'%') |
| | | <!-- 多台账出库要按「任一绑定台账的合同号」都能筛到,不能只看首项 --> |
| | | AND (sl2.sales_contract_no LIKE CONCAT('%',#{req.salesContractNo},'%') |
| | | OR EXISTS (select 1 |
| | | from stock_out_record_sales_ledger b |
| | | join sales_ledger slb on slb.id = b.sales_ledger_id |
| | | where b.stock_out_record_id = o.id |
| | | and slb.sales_contract_no LIKE CONCAT('%',#{req.salesContractNo},'%'))) |
| | | </if> |
| | | <!-- 油品出库没有快递单,按快递单号筛选时不应返回任何油品行 --> |
| | | <if test="req.expressNumber != null and req.expressNumber != ''"> |