diff --git a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml index 3b5169fb6..3eb362308 100644 --- a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml @@ -474,12 +474,20 @@ and ( send_site_code in ( - SELECT t1.site_code FROM ( - SELECT * FROM emis_site WHERE parent_site_code IS NOT NULL ) t1,( SELECT @pid := - #{params.privSiteCode} ) pd - WHERE FIND_IN_SET( parent_site_code, @pid ) > 0 AND @pid := concat(@pid,',',site_code) - UNION - SELECT #{params.privSiteCode} FROM dual + SELECT + site_code + FROM ( + SELECT + t1.site_code, + t1.parent_site_code, + IF( FIND_IN_SET( parent_site_code, @pids ) > 0, @pids := concat( @pids, ',', site_code ), 0 ) AS child_path + FROM + ( SELECT site_code, parent_site_code FROM emis_site t WHERE del_flag = '0' ORDER BY site_code, parent_site_code ) t1, + ( SELECT @pids := #{params.privSiteCode} ) t2 + ) t3 + WHERE child_path > 0 + UNION + SELECT #{params.privSiteCode} FROM DUAL ) or salesmen=#{params.privEmpCode}