diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml
index 2e4871bc..66dea0ea 100644
--- a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml
+++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml
@@ -5,16 +5,88 @@
-
- and (res.menu_id) in
-
- ( #{item})
-
-
-
-
+
+ and (res.menu_id) in
+
+ ( #{item})
+
+
+ and
+
+ #{item} like concat(res.pid_paths,'%')
+
+
+ and
+
+ find_in_set(#{item},res.tag_ids)
+
+
+
+ and not
+ exists ( select 1 from xm_iteration_menu im where im.menu_id=res.menu_id)
+
+
+ and not
+ exists ( select 1 from xm_task t where t.menu_id=res.menu_id)
+
+ and res.menu_name like #{key}
+ and (res.pmenu_id is null or res.pmenu_id = '')
+
+
+
+
+
+
+
+
+ UPDATE xm_menu t
+ LEFT JOIN ( SELECT count( 1 ) AS children_cnt, tt.pmenu_id AS menu_id FROM xm_menu tt WHERE tt.pmenu_id = #{menuId} ) t2 ON t2.menu_id = t.menu_id
+ SET t.children_cnt = ifnull( t2.children_cnt, 0 )
+ WHERE
+ t.menu_id = #{menuId}
+
+
+
+ UPDATE xm_menu t
+ LEFT JOIN ( SELECT count( 1 ) AS children_cnt, tt.pmenu_id AS menu_id FROM xm_menu tt WHERE
+ (tt.pmenu_id) in
+
+ ( #{item})
+
+ group by tt.pmenu_id ) t2 ON t2.menu_id = t.menu_id
+ SET t.children_cnt = ifnull( t2.children_cnt, 0 )
+ WHERE (t.menu_id) in
+
+ ( #{item})
+
+