|
|
@ -6,17 +6,15 @@ |
|
|
<sql id="selectTable"> |
|
|
<sql id="selectTable"> |
|
|
<choose> |
|
|
<choose> |
|
|
<when test="levelType == 1">dashboard_level_branch</when> |
|
|
<when test="levelType == 1">dashboard_level_branch</when> |
|
|
<when test="levelType == 2">dashboard_level_store</when> |
|
|
<when test="levelType == 2">dashboard_level_store_area_merge</when> |
|
|
<when test="levelType == 3">dashboard_level_area</when> |
|
|
<when test="levelType == 3">dashboard_level_site</when> |
|
|
<when test="levelType == 4">dashboard_level_site</when> |
|
|
|
|
|
</choose> |
|
|
</choose> |
|
|
</sql> |
|
|
</sql> |
|
|
|
|
|
|
|
|
<sql id="selectParentTable"> |
|
|
<sql id="selectParentTable"> |
|
|
<choose> |
|
|
<choose> |
|
|
<when test="levelType == 2">dashboard_level_branch</when> |
|
|
<when test="levelType == 2">dashboard_level_branch</when> |
|
|
<when test="levelType == 3">dashboard_level_store</when> |
|
|
<when test="levelType == 3">dashboard_level_store_area_merge</when> |
|
|
<when test="levelType == 4">dashboard_level_area</when> |
|
|
|
|
|
</choose> |
|
|
</choose> |
|
|
</sql> |
|
|
</sql> |
|
|
|
|
|
|
|
|
@ -46,9 +44,22 @@ |
|
|
<insert id="saveLevel" useGeneratedKeys="true" keyProperty="id" keyColumn="id"> |
|
|
<insert id="saveLevel" useGeneratedKeys="true" keyProperty="id" keyColumn="id"> |
|
|
INSERT INTO |
|
|
INSERT INTO |
|
|
<include refid="selectTable" /> |
|
|
<include refid="selectTable" /> |
|
|
(company_id, name, remark, created_by, created_at) |
|
|
(company_id, name, `code`, remark, created_by, created_at) |
|
|
VALUES |
|
|
VALUES |
|
|
(#{companyId}, #{name}, #{remark}, #{createdBy}, #{createdAt}) |
|
|
( |
|
|
|
|
|
#{companyId}, |
|
|
|
|
|
#{name}, |
|
|
|
|
|
<choose> |
|
|
|
|
|
<when test="code != null and code != ''">#{code}</when> |
|
|
|
|
|
<otherwise>NULL</otherwise> |
|
|
|
|
|
</choose>, |
|
|
|
|
|
<choose> |
|
|
|
|
|
<when test="remark != null and remark != ''">#{remark}</when> |
|
|
|
|
|
<otherwise>NULL</otherwise> |
|
|
|
|
|
</choose>, |
|
|
|
|
|
#{createdBy}, |
|
|
|
|
|
#{createdAt} |
|
|
|
|
|
) |
|
|
</insert> |
|
|
</insert> |
|
|
|
|
|
|
|
|
<!-- 保存级别信息到对应表 --> |
|
|
<!-- 保存级别信息到对应表 --> |
|
|
@ -70,6 +81,7 @@ |
|
|
<include refid="selectTable" /> |
|
|
<include refid="selectTable" /> |
|
|
SET |
|
|
SET |
|
|
name = #{name}, |
|
|
name = #{name}, |
|
|
|
|
|
`code` = #{code}, |
|
|
remark = #{remark}, |
|
|
remark = #{remark}, |
|
|
updated_at = #{updatedAt}, |
|
|
updated_at = #{updatedAt}, |
|
|
updated_by = #{updatedBy} |
|
|
updated_by = #{updatedBy} |
|
|
@ -102,6 +114,7 @@ |
|
|
base.`id`, |
|
|
base.`id`, |
|
|
base.company_id, |
|
|
base.company_id, |
|
|
base.`name` AS levelName, |
|
|
base.`name` AS levelName, |
|
|
|
|
|
base.`code` AS levelCode, |
|
|
base.remark, |
|
|
base.remark, |
|
|
base.created_by, |
|
|
base.created_by, |
|
|
base.created_at, |
|
|
base.created_at, |
|
|
@ -117,6 +130,9 @@ |
|
|
<if test="levelName != null and levelName != ''"> |
|
|
<if test="levelName != null and levelName != ''"> |
|
|
AND base.`name` like CONCAT('%',#{levelName},'%') |
|
|
AND base.`name` like CONCAT('%',#{levelName},'%') |
|
|
</if> |
|
|
</if> |
|
|
|
|
|
<if test="levelCode != null and levelCode != ''"> |
|
|
|
|
|
AND base.`code` like CONCAT('%',#{levelCode},'%') |
|
|
|
|
|
</if> |
|
|
<if test="parentIdList != null and parentIdList.size() > 0"> |
|
|
<if test="parentIdList != null and parentIdList.size() > 0"> |
|
|
AND pa.id IN <foreach collection="parentIdList" item="item" open="(" separator="," close=")">#{item}</foreach> |
|
|
AND pa.id IN <foreach collection="parentIdList" item="item" open="(" separator="," close=")">#{item}</foreach> |
|
|
</if> |
|
|
</if> |
|
|
@ -144,8 +160,8 @@ |
|
|
GROUP_CONCAT(pa.`name`) AS parentNames, |
|
|
GROUP_CONCAT(pa.`name`) AS parentNames, |
|
|
<include refid="commonField" /> |
|
|
<include refid="commonField" /> |
|
|
FROM |
|
|
FROM |
|
|
dashboard_level_store base |
|
|
dashboard_level_store_area_merge base |
|
|
LEFT JOIN dashboard_level_relation_branch_store rela ON base.`id` = rela.store_id |
|
|
LEFT JOIN dashboard_level_relation_branch_store_area rela ON base.`id` = rela.store_area_id |
|
|
LEFT JOIN dashboard_level_branch pa ON rela.branch_id = pa.`id` |
|
|
LEFT JOIN dashboard_level_branch pa ON rela.branch_id = pa.`id` |
|
|
WHERE |
|
|
WHERE |
|
|
<include refid="commonWhere" /> |
|
|
<include refid="commonWhere" /> |
|
|
@ -157,24 +173,10 @@ |
|
|
GROUP_CONCAT(pa.id) AS parentIds, |
|
|
GROUP_CONCAT(pa.id) AS parentIds, |
|
|
GROUP_CONCAT(pa.`name`) AS parentNames, |
|
|
GROUP_CONCAT(pa.`name`) AS parentNames, |
|
|
<include refid="commonField" /> |
|
|
<include refid="commonField" /> |
|
|
FROM |
|
|
|
|
|
dashboard_level_area base |
|
|
|
|
|
LEFT JOIN dashboard_level_relation_store_area rela ON base.`id` = rela.area_id |
|
|
|
|
|
LEFT JOIN dashboard_level_store pa ON rela.store_id = pa.`id` |
|
|
|
|
|
WHERE |
|
|
|
|
|
<include refid="commonWhere" /> |
|
|
|
|
|
GROUP BY base.`id` |
|
|
|
|
|
</when> |
|
|
|
|
|
<when test="levelType == 4"> |
|
|
|
|
|
SELECT |
|
|
|
|
|
4 AS levelType, |
|
|
|
|
|
GROUP_CONCAT(pa.id) AS parentIds, |
|
|
|
|
|
GROUP_CONCAT(pa.`name`) AS parentNames, |
|
|
|
|
|
<include refid="commonField" /> |
|
|
|
|
|
FROM |
|
|
FROM |
|
|
dashboard_level_site base |
|
|
dashboard_level_site base |
|
|
LEFT JOIN dashboard_level_relation_area_site rela ON base.`id` = rela.site_id |
|
|
LEFT JOIN dashboard_level_relation_store_area_site rela ON base.`id` = rela.site_id |
|
|
LEFT JOIN dashboard_level_area pa ON rela.area_id = pa.`id` |
|
|
LEFT JOIN dashboard_level_store_area_merge pa ON rela.store_area_id = pa.`id` |
|
|
WHERE |
|
|
WHERE |
|
|
<include refid="commonWhere" /> |
|
|
<include refid="commonWhere" /> |
|
|
GROUP BY base.`id` |
|
|
GROUP BY base.`id` |
|
|
@ -187,6 +189,7 @@ |
|
|
SELECT DISTINCT building_id |
|
|
SELECT DISTINCT building_id |
|
|
FROM ( |
|
|
FROM ( |
|
|
|
|
|
|
|
|
|
|
|
-- BUILDING(直接绑定) |
|
|
SELECT b.building_id |
|
|
SELECT b.building_id |
|
|
FROM dashboard_level_role_user ru |
|
|
FROM dashboard_level_role_user ru |
|
|
JOIN dashboard_level_role_object ro |
|
|
JOIN dashboard_level_role_object ro |
|
|
@ -199,6 +202,7 @@ |
|
|
|
|
|
|
|
|
UNION ALL |
|
|
UNION ALL |
|
|
|
|
|
|
|
|
|
|
|
-- SITE → BUILDING |
|
|
SELECT b.building_id |
|
|
SELECT b.building_id |
|
|
FROM dashboard_level_role_user ru |
|
|
FROM dashboard_level_role_user ru |
|
|
JOIN dashboard_level_role_object ro |
|
|
JOIN dashboard_level_role_object ro |
|
|
@ -214,66 +218,41 @@ |
|
|
|
|
|
|
|
|
UNION ALL |
|
|
UNION ALL |
|
|
|
|
|
|
|
|
|
|
|
-- STORE_AREA → SITE → BUILDING(核心替代 AREA / STORE) |
|
|
SELECT b.building_id |
|
|
SELECT b.building_id |
|
|
FROM dashboard_level_role_user ru |
|
|
FROM dashboard_level_role_user ru |
|
|
JOIN dashboard_level_role_object ro |
|
|
JOIN dashboard_level_role_object ro |
|
|
ON ru.level_role_id = ro.level_role_id |
|
|
ON ru.level_role_id = ro.level_role_id |
|
|
JOIN dashboard_level_area a |
|
|
JOIN dashboard_level_store_area_merge sam |
|
|
ON ro.ref_id = a.id AND a.flag = 0 |
|
|
ON ro.ref_id = sam.id AND sam.flag = 0 |
|
|
JOIN dashboard_level_relation_area_site ras |
|
|
JOIN dashboard_level_relation_store_area_site rsas |
|
|
ON a.id = ras.area_id |
|
|
ON sam.id = rsas.store_area_id |
|
|
JOIN dashboard_level_site s |
|
|
|
|
|
ON ras.site_id = s.id AND s.flag = 0 |
|
|
|
|
|
JOIN dashboard_level_relation_site_building rsb |
|
|
|
|
|
ON s.id = rsb.site_id |
|
|
|
|
|
JOIN basic_building b |
|
|
|
|
|
ON rsb.building_id = b.building_id AND b.flag = 0 |
|
|
|
|
|
WHERE ru.user_id = #{userId} |
|
|
|
|
|
AND ro.ref_type = 'AREA' |
|
|
|
|
|
|
|
|
|
|
|
UNION ALL |
|
|
|
|
|
|
|
|
|
|
|
SELECT b.building_id |
|
|
|
|
|
FROM dashboard_level_role_user ru |
|
|
|
|
|
JOIN dashboard_level_role_object ro |
|
|
|
|
|
ON ru.level_role_id = ro.level_role_id |
|
|
|
|
|
JOIN dashboard_level_store st |
|
|
|
|
|
ON ro.ref_id = st.id AND st.flag = 0 |
|
|
|
|
|
JOIN dashboard_level_relation_store_area rsa |
|
|
|
|
|
ON st.id = rsa.store_id |
|
|
|
|
|
JOIN dashboard_level_area a |
|
|
|
|
|
ON rsa.area_id = a.id AND a.flag = 0 |
|
|
|
|
|
JOIN dashboard_level_relation_area_site ras |
|
|
|
|
|
ON a.id = ras.area_id |
|
|
|
|
|
JOIN dashboard_level_site s |
|
|
JOIN dashboard_level_site s |
|
|
ON ras.site_id = s.id AND s.flag = 0 |
|
|
ON rsas.site_id = s.id AND s.flag = 0 |
|
|
JOIN dashboard_level_relation_site_building rsb |
|
|
JOIN dashboard_level_relation_site_building rsb |
|
|
ON s.id = rsb.site_id |
|
|
ON s.id = rsb.site_id |
|
|
JOIN basic_building b |
|
|
JOIN basic_building b |
|
|
ON rsb.building_id = b.building_id AND b.flag = 0 |
|
|
ON rsb.building_id = b.building_id AND b.flag = 0 |
|
|
WHERE ru.user_id = #{userId} |
|
|
WHERE ru.user_id = #{userId} |
|
|
AND ro.ref_type = 'STORE' |
|
|
AND ro.ref_type = 'STORE_AREA' |
|
|
|
|
|
|
|
|
UNION ALL |
|
|
UNION ALL |
|
|
|
|
|
|
|
|
|
|
|
-- BRANCH → STORE_AREA → SITE → BUILDING |
|
|
SELECT b.building_id |
|
|
SELECT b.building_id |
|
|
FROM dashboard_level_role_user ru |
|
|
FROM dashboard_level_role_user ru |
|
|
JOIN dashboard_level_role_object ro |
|
|
JOIN dashboard_level_role_object ro |
|
|
ON ru.level_role_id = ro.level_role_id |
|
|
ON ru.level_role_id = ro.level_role_id |
|
|
JOIN dashboard_level_branch br |
|
|
JOIN dashboard_level_branch br |
|
|
ON ro.ref_id = br.id AND br.flag = 0 |
|
|
ON ro.ref_id = br.id AND br.flag = 0 |
|
|
JOIN dashboard_level_relation_branch_store rbs |
|
|
JOIN dashboard_level_relation_branch_store_area rbsa |
|
|
ON br.id = rbs.branch_id |
|
|
ON br.id = rbsa.branch_id |
|
|
JOIN dashboard_level_store st |
|
|
JOIN dashboard_level_store_area_merge sam |
|
|
ON rbs.store_id = st.id AND st.flag = 0 |
|
|
ON rbsa.store_area_id = sam.id AND sam.flag = 0 |
|
|
JOIN dashboard_level_relation_store_area rsa |
|
|
JOIN dashboard_level_relation_store_area_site rsas |
|
|
ON st.id = rsa.store_id |
|
|
ON sam.id = rsas.store_area_id |
|
|
JOIN dashboard_level_area a |
|
|
|
|
|
ON rsa.area_id = a.id AND a.flag = 0 |
|
|
|
|
|
JOIN dashboard_level_relation_area_site ras |
|
|
|
|
|
ON a.id = ras.area_id |
|
|
|
|
|
JOIN dashboard_level_site s |
|
|
JOIN dashboard_level_site s |
|
|
ON ras.site_id = s.id AND s.flag = 0 |
|
|
ON rsas.site_id = s.id AND s.flag = 0 |
|
|
JOIN dashboard_level_relation_site_building rsb |
|
|
JOIN dashboard_level_relation_site_building rsb |
|
|
ON s.id = rsb.site_id |
|
|
ON s.id = rsb.site_id |
|
|
JOIN basic_building b |
|
|
JOIN basic_building b |
|
|
@ -281,7 +260,7 @@ |
|
|
WHERE ru.user_id = #{userId} |
|
|
WHERE ru.user_id = #{userId} |
|
|
AND ro.ref_type = 'BRANCH' |
|
|
AND ro.ref_type = 'BRANCH' |
|
|
|
|
|
|
|
|
) t; |
|
|
) t |
|
|
</select> |
|
|
</select> |
|
|
|
|
|
|
|
|
<select id="selectBuildingFullPath" resultType="com.dongjian.dashboard.back.vo.level.BuildingPathDTO"> |
|
|
<select id="selectBuildingFullPath" resultType="com.dongjian.dashboard.back.vo.level.BuildingPathDTO"> |
|
|
@ -289,41 +268,52 @@ |
|
|
br.id AS branch_id, |
|
|
br.id AS branch_id, |
|
|
br.name AS branch_name, |
|
|
br.name AS branch_name, |
|
|
|
|
|
|
|
|
st.id AS store_id, |
|
|
sam.id AS store_area_id, |
|
|
st.name AS store_name, |
|
|
sam.name AS store_area_name, |
|
|
|
|
|
|
|
|
a.id AS area_id, |
|
|
|
|
|
a.name AS area_name, |
|
|
|
|
|
|
|
|
|
|
|
s.id AS site_id, |
|
|
s.id AS site_id, |
|
|
s.name AS site_name, |
|
|
s.name AS site_name, |
|
|
|
|
|
|
|
|
b.building_id, |
|
|
b.building_id, |
|
|
b.name AS building_name |
|
|
b.name AS building_name |
|
|
|
|
|
<choose> |
|
|
|
|
|
<when test="isADSC != null and isADSC"> |
|
|
|
|
|
FROM dashboard_level_branch br |
|
|
|
|
|
|
|
|
|
|
|
LEFT JOIN dashboard_level_relation_branch_store_area rbsa ON rbsa.branch_id = br.id AND br.flag = 0 AND br.company_id = #{companyId} |
|
|
|
|
|
|
|
|
FROM basic_building b |
|
|
LEFT JOIN dashboard_level_store_area_merge sam ON sam.id = rbsa.store_area_id AND sam.flag = 0 |
|
|
|
|
|
|
|
|
JOIN dashboard_level_relation_site_building rsb ON b.building_id = rsb.building_id |
|
|
LEFT JOIN dashboard_level_relation_store_area_site rsas ON rsas.store_area_id = sam.id |
|
|
|
|
|
|
|
|
JOIN dashboard_level_site s ON rsb.site_id = s.id AND s.flag = 0 |
|
|
LEFT JOIN dashboard_level_site s ON s.id = rsas.site_id AND s.flag = 0 |
|
|
|
|
|
|
|
|
JOIN dashboard_level_relation_area_site ras ON s.id = ras.site_id |
|
|
LEFT JOIN dashboard_level_relation_site_building rsb ON rsb.site_id = s.id |
|
|
|
|
|
|
|
|
JOIN dashboard_level_area a ON ras.area_id = a.id AND a.flag = 0 |
|
|
LEFT JOIN basic_building b ON b.building_id = rsb.building_id AND b.flag = 0 |
|
|
|
|
|
</when> |
|
|
|
|
|
<otherwise> |
|
|
|
|
|
FROM basic_building b |
|
|
|
|
|
|
|
|
JOIN dashboard_level_relation_store_area rsa ON a.id = rsa.area_id |
|
|
JOIN dashboard_level_relation_site_building rsb ON b.building_id = rsb.building_id AND b.flag = 0 AND b.company_id = #{companyId} |
|
|
|
|
|
|
|
|
JOIN dashboard_level_store st ON rsa.store_id = st.id AND st.flag = 0 |
|
|
JOIN dashboard_level_site s ON rsb.site_id = s.id AND s.flag = 0 |
|
|
|
|
|
|
|
|
JOIN dashboard_level_relation_branch_store rbs ON st.id = rbs.store_id |
|
|
JOIN dashboard_level_relation_store_area_site rsas ON s.id = rsas.site_id |
|
|
|
|
|
|
|
|
JOIN dashboard_level_branch br ON rbs.branch_id = br.id AND br.flag = 0 |
|
|
JOIN dashboard_level_store_area_merge sam ON rsas.store_area_id = sam.id AND sam.flag = 0 |
|
|
|
|
|
|
|
|
WHERE b.flag = 0 |
|
|
JOIN dashboard_level_relation_branch_store_area rbsa ON sam.id = rbsa.store_area_id |
|
|
AND b.company_id = #{companyId} |
|
|
|
|
|
<if test="bindBuildingIdList != null"> |
|
|
JOIN dashboard_level_branch br ON rbsa.branch_id = br.id AND br.flag = 0 |
|
|
AND b.building_id IN <foreach collection="bindBuildingIdList" item="item" open="(" separator="," close=")">#{item}</foreach> |
|
|
</otherwise> |
|
|
</if> |
|
|
</choose> |
|
|
|
|
|
<where> |
|
|
|
|
|
<if test="bindBuildingIdList != null"> |
|
|
|
|
|
AND b.building_id IN <foreach collection="bindBuildingIdList" item="item" open="(" separator="," close=")">#{item}</foreach> |
|
|
|
|
|
</if> |
|
|
|
|
|
</where> |
|
|
|
|
|
order by br.id |
|
|
</select> |
|
|
</select> |
|
|
|
|
|
|
|
|
<delete id="deleteSiteBuildingRelation"> |
|
|
<delete id="deleteSiteBuildingRelation"> |
|
|
|