当前使用版本(必填,否则不予处理)
3.5.1
该问题是如何引起的?(确定最新版也有问题再提!!!)
使用多租户插件,with语句的结果集也拼接了租户条件
重现步骤(如果有就写完整)
报错信息
Comment From: miemieYaho
?
Comment From: 1198735966
怎么说呢,就是用了多租户之后, 在XML中写 带with语句的SQL, 提示with语句的结果集不带租户字段,就是with语句的结果集也被当成一个表拼接了 租户条件
Comment From: miemieYaho
比如呢?
Comment From: 1198735966
WITH workorderInfo AS ( SELECT A .* FROM md_work_order A WHERE A.is_active = 0 AND A.is_delete = 0 --AND A.code = ? AND A.data_role = 'da75ba0c5b01411bbc28364be06b16f7' ), bomInfo AS ( SELECT b.work_order_code, wi.qty, wi.produ_code, wi.produ_name, b.sitm, mb.NAME, b.qana, wi.qty * b.qana needqty FROM MD_WORK_ORDER_BOM b INNER JOIN workorderInfo wi ON b.work_order_code = wi.code AND b.data_role = 'da75ba0c5b01411bbc28364be06b16f7' AND wi.data_role = 'da75ba0c5b01411bbc28364be06b16f7' INNER JOIN MD_BD_MRL mb ON b.sitm = mb.code AND mb.is_active = 0 AND mb.is_delete = 0 AND mb.data_role = 'da75ba0c5b01411bbc28364be06b16f7' WHERE b.is_active = 0 AND b.is_delete = 0 ), pathModuleInfo AS ( SELECT A .SYSID, A.s_node_code, A.s_node_name, b.mrl_code, b.mrl_name, ROW_NUMBER () OVER ( PARTITION BY b.mrl_code ORDER BY A.s_node_code ) seqno FROM UM_PATH_MOULD A LEFT JOIN UM_PATH_MOULD_OP_MRL b ON A.SYSID = b.umm_path_mould_id AND b.is_active = 0 AND b.is_delete = 0 AND b.data_role = 'da75ba0c5b01411bbc28364be06b16f7' LEFT JOIN md_paraconfig C ON A.e_node_code = C.paracode AND C.is_active = 0 AND C.is_delete = 0 WHERE 1 = 1 AND A.is_active = 0 AND A.is_delete = 0 AND A.e_node_type = '4' AND C.paracls = 'gywl' AND A.data_role = 'da75ba0c5b01411bbc28364be06b16f7' ), packageModuleInfo AS ( SELECT A .package_qty, b.mrl_code, b.umm_path_mould_id FROM UM_PACKAGE_MOULD A INNER JOIN UM_PACKAGE_MOULD_OP_MRL b ON A.SYSID = b.umm_package_mould_id AND b.is_active = 0 AND b.is_delete = 0 AND A.data_role = 'da75ba0c5b01411bbc28364be06b16f7' AND b.data_role = 'da75ba0c5b01411bbc28364be06b16f7' WHERE A.is_active = 0 AND A.is_delete = 0 ), stockInfo AS ( SELECT ws.mrl_code, SUM ( ws.qty - ws.FREEZE_QTY ) stockqty FROM wm_stock ws WHERE ws.is_active = 0 AND ws.is_delete = 0 AND ws.work_center_code IN ( SELECT mp.paracode FROM md_paraconfig mp WHERE mp.is_active = 0 AND mp.is_delete = 0 AND mp.paracls = 'gywl' ) AND ws.data_role = 'da75ba0c5b01411bbc28364be06b16f7' GROUP BY ws.mrl_code ) SELECT COALESCE ( bi.work_order_code, '' ) AS "workOrderCode", COALESCE ( bi.produ_code, '' ) AS "produCode", COALESCE ( bi.produ_name, '' ) AS "produName", COALESCE ( bi.sitm, '' ) AS "sitmCode", COALESCE ( bi.NAME, '' ) AS "sitmName", COALESCE ( bi.needqty, 0 ) AS "needQty", 0 AS "finalQty", COALESCE ( pmi.package_qty, 0 ) AS "packageqty", COALESCE ( pi.s_node_code, '' ) AS "supplierCode", COALESCE ( pi.s_node_name, '' ) AS "supplierName", COALESCE ( sif.stockqty, 0 ) AS "stockQty", COALESCE ( pi.SYSID, '' ) AS "pathMouldGid", 0 AS "substockQty", COALESCE ( bi.qty, 0 ) AS "qty", CASE
WHEN COALESCE ( pi.s_node_code, '' ) = '' THEN
'N' ELSE'Y'
END AS "pathMouldMessage",
ROW_NUMBER () OVER () AS "ID"
FROM bomInfo bi INNER JOIN ss_kanban_mtl sm ON bi.sitm = sm.mrl_code AND sm.is_active = 0 AND sm.is_delete = 0 AND bi.data_role = 'da75ba0c5b01411bbc28364be06b16f7' AND sm.data_role = 'da75ba0c5b01411bbc28364be06b16f7' LEFT JOIN pathModuleInfo pi ON bi.sitm = pi.mrl_code AND pi.seqno = 1 AND pi.data_role = 'da75ba0c5b01411bbc28364be06b16f7' LEFT JOIN packageModuleInfo pmi ON pi.SYSID = pmi.umm_path_mould_id AND pi.mrl_code = pmi.mrl_code AND pmi.data_role = 'da75ba0c5b01411bbc28364be06b16f7' LEFT JOIN stockInfo sif ON bi.sitm = sif.mrl_code AND sif.data_role = 'da75ba0c5b01411bbc28364be06b16f7' ORDER BY bi.work_order_code, pi.s_node_code, bi.sitm
Comment From: qmdx
WITH workorderInfo AS ( SELECT A .* FROM md_work_order A WHERE A.is_active = 0 AND A.is_delete = 0 --AND A.code = ? AND A.data_role = 'da75ba0c5b01411bbc28364be06b16f7' ), bomInfo AS ( SELECT b.work_order_code, wi.qty, wi.produ_code, wi.produ_name, b.sitm, mb.NAME, b.qana, wi.qty * b.qana needqty FROM MD_WORK_ORDER_BOM b INNER JOIN workorderInfo wi ON b.work_order_code = wi.code AND b.data_role = 'da75ba0c5b01411bbc28364be06b16f7' AND wi.data_role = 'da75ba0c5b01411bbc28364be06b16f7' INNER JOIN MD_BD_MRL mb ON b.sitm = mb.code AND mb.is_active = 0 AND mb.is_delete = 0 AND mb.data_role = 'da75ba0c5b01411bbc28364be06b16f7' WHERE b.is_active = 0 AND b.is_delete = 0 ), pathModuleInfo AS ( SELECT A .SYSID, A.s_node_code, A.s_node_name, b.mrl_code, b.mrl_name, ROW_NUMBER () OVER ( PARTITION BY b.mrl_code ORDER BY A.s_node_code ) seqno FROM UM_PATH_MOULD A LEFT JOIN UM_PATH_MOULD_OP_MRL b ON A.SYSID = b.umm_path_mould_id AND b.is_active = 0 AND b.is_delete = 0 AND b.data_role = 'da75ba0c5b01411bbc28364be06b16f7' LEFT JOIN md_paraconfig C ON A.e_node_code = C.paracode AND C.is_active = 0 AND C.is_delete = 0 WHERE 1 = 1 AND A.is_active = 0 AND A.is_delete = 0 AND A.e_node_type = '4' AND C.paracls = 'gywl' AND A.data_role = 'da75ba0c5b01411bbc28364be06b16f7' ), packageModuleInfo AS ( SELECT A .package_qty, b.mrl_code, b.umm_path_mould_id FROM UM_PACKAGE_MOULD A INNER JOIN UM_PACKAGE_MOULD_OP_MRL b ON A.SYSID = b.umm_package_mould_id AND b.is_active = 0 AND b.is_delete = 0 AND A.data_role = 'da75ba0c5b01411bbc28364be06b16f7' AND b.data_role = 'da75ba0c5b01411bbc28364be06b16f7' WHERE A.is_active = 0 AND A.is_delete = 0 ), stockInfo AS ( SELECT ws.mrl_code, SUM ( ws.qty - ws.FREEZE_QTY ) stockqty FROM wm_stock ws WHERE ws.is_active = 0 AND ws.is_delete = 0 AND ws.work_center_code IN ( SELECT mp.paracode FROM md_paraconfig mp WHERE mp.is_active = 0 AND mp.is_delete = 0 AND mp.paracls = 'gywl' ) AND ws.data_role = 'da75ba0c5b01411bbc28364be06b16f7' GROUP BY ws.mrl_code ) SELECT COALESCE ( bi.work_order_code, '' ) AS "workOrderCode", COALESCE ( bi.produ_code, '' ) AS "produCode", COALESCE ( bi.produ_name, '' ) AS "produName", COALESCE ( bi.sitm, '' ) AS "sitmCode", COALESCE ( bi.NAME, '' ) AS "sitmName", COALESCE ( bi.needqty, 0 ) AS "needQty", 0 AS "finalQty", COALESCE ( pmi.package_qty, 0 ) AS "packageqty", COALESCE ( pi.s_node_code, '' ) AS "supplierCode", COALESCE ( pi.s_node_name, '' ) AS "supplierName", COALESCE ( sif.stockqty, 0 ) AS "stockQty", COALESCE ( pi.SYSID, '' ) AS "pathMouldGid", 0 AS "substockQty", COALESCE ( bi.qty, 0 ) AS "qty", CASE
WHEN COALESCE ( pi.s_node_code, '' ) = '' THEN 'N' ELSE'Y' END AS "pathMouldMessage", ROW_NUMBER () OVER () AS "ID"FROM bomInfo bi INNER JOIN ss_kanban_mtl sm ON bi.sitm = sm.mrl_code AND sm.is_active = 0 AND sm.is_delete = 0 AND bi.data_role = 'da75ba0c5b01411bbc28364be06b16f7' AND sm.data_role = 'da75ba0c5b01411bbc28364be06b16f7' LEFT JOIN pathModuleInfo pi ON bi.sitm = pi.mrl_code AND pi.seqno = 1 AND pi.data_role = 'da75ba0c5b01411bbc28364be06b16f7' LEFT JOIN packageModuleInfo pmi ON pi.SYSID = pmi.umm_path_mould_id AND pi.mrl_code = pmi.mrl_code AND pmi.data_role = 'da75ba0c5b01411bbc28364be06b16f7' LEFT JOIN stockInfo sif ON bi.sitm = sif.mrl_code AND sif.data_role = 'da75ba0c5b01411bbc28364be06b16f7' ORDER BY bi.work_order_code, pi.s_node_code, bi.sitm 无法解析SQL 的情况,排查该SQL解析,参考文档 baomidou.com 插件主体部分