Browse Source

getBoundLevel接口完善

review512jwy@163.com 2 days ago
parent
commit
d25b4981ff
  1. 2
      dongjian-dashboard-back-dao/src/main/java/com/dongjian/dashboard/back/dao/ex/LevelRoleMapperExt.java
  2. 123
      dongjian-dashboard-back-dao/src/main/resources/mappers/ex/LevelMapperExt.xml
  3. 42
      dongjian-dashboard-back-dao/src/main/resources/mappers/ex/LevelRoleMapperExt.xml
  4. 2
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/dto/level/DeleteLevelParam.java
  5. 4
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/dto/level/OptLevelParam.java
  6. 5
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/dto/level/PageLevelSearchParam.java
  7. 7
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/level/BuildingPathDTO.java
  8. 2
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/level/LevelPageDTO.java
  9. 50
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/LevelRoleServiceImpl.java
  10. 58
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/LevelServiceImpl.java
  11. 19
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/OverviewServiceImpl.java

2
dongjian-dashboard-back-dao/src/main/java/com/dongjian/dashboard/back/dao/ex/LevelRoleMapperExt.java

@ -40,6 +40,4 @@ public interface LevelRoleMapperExt extends DashboardLevelRoleMapper {
List<UserBindLevelRoleVO> getCanBeBoundUserPage(BaseSearchParams pageSearchParam);
Integer checkLevelManager(Long userId);
List<RefKey> selectAllStoreAreas(Map<String, Object> levelMap);
}

123
dongjian-dashboard-back-dao/src/main/resources/mappers/ex/LevelMapperExt.xml

@ -6,15 +6,17 @@
<sql id="selectTable">
<choose>
<when test="levelType == 1">dashboard_level_branch</when>
<when test="levelType == 2">dashboard_level_store_area_merge</when>
<when test="levelType == 3">dashboard_level_site</when>
<when test="levelType == 2">dashboard_level_store</when>
<when test="levelType == 3">dashboard_level_area</when>
<when test="levelType == 4">dashboard_level_site</when>
</choose>
</sql>
<sql id="selectParentTable">
<choose>
<when test="levelType == 2">dashboard_level_branch</when>
<when test="levelType == 3">dashboard_level_store_area_merge</when>
<when test="levelType == 3">dashboard_level_store</when>
<when test="levelType == 4">dashboard_level_area</when>
</choose>
</sql>
@ -168,8 +170,8 @@
GROUP_CONCAT(pa.`name`) AS parentNames,
<include refid="commonField" />
FROM
dashboard_level_store_area_merge base
LEFT JOIN dashboard_level_relation_branch_store_area rela ON base.`id` = rela.store_area_id
dashboard_level_store base
LEFT JOIN dashboard_level_relation_branch_store rela ON base.`id` = rela.store_id
LEFT JOIN dashboard_level_branch pa ON rela.branch_id = pa.`id`
WHERE
<include refid="commonWhere" />
@ -181,10 +183,24 @@
GROUP_CONCAT(pa.id) AS parentIds,
GROUP_CONCAT(pa.`name`) AS parentNames,
<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
dashboard_level_site base
LEFT JOIN dashboard_level_relation_store_area_site rela ON base.`id` = rela.site_id
LEFT JOIN dashboard_level_store_area_merge pa ON rela.store_area_id = pa.`id`
LEFT JOIN dashboard_level_relation_area_site rela ON base.`id` = rela.site_id
LEFT JOIN dashboard_level_area pa ON rela.area_id = pa.`id`
WHERE
<include refid="commonWhere" />
GROUP BY base.`id`
@ -197,7 +213,7 @@
SELECT DISTINCT building_id
FROM (
-- BUILDING(直接绑定)
-- BUILDING
SELECT b.building_id
FROM dashboard_level_role_user ru
JOIN dashboard_level_role_object ro
@ -226,41 +242,69 @@
UNION ALL
-- STORE_AREA → SITE → BUILDING(核心替代 AREA / STORE)
-- AREA → SITE → BUILDING
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_area_merge sam
ON ro.ref_id = sam.id AND sam.flag = 0
JOIN dashboard_level_relation_store_area_site rsas
ON sam.id = rsas.store_area_id
JOIN dashboard_level_area a
ON ro.ref_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
ON rsas.site_id = s.id AND s.flag = 0
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 = 'STORE_AREA'
AND ro.ref_type = 'AREA'
UNION ALL
-- BRANCH → STORE_AREA → SITE → BUILDING
-- STORE → AREA → SITE → BUILDING
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
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 = 'STORE'
UNION ALL
-- BRANCH → STORE → AREA → SITE → BUILDING
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_branch br
ON ro.ref_id = br.id AND br.flag = 0
JOIN dashboard_level_relation_branch_store_area rbsa
ON br.id = rbsa.branch_id
JOIN dashboard_level_store_area_merge sam
ON rbsa.store_area_id = sam.id AND sam.flag = 0
JOIN dashboard_level_relation_store_area_site rsas
ON sam.id = rsas.store_area_id
JOIN dashboard_level_relation_branch_store rbs
ON br.id = rbs.branch_id
JOIN dashboard_level_store st
ON rbs.store_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
ON rsas.site_id = s.id AND s.flag = 0
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
@ -268,7 +312,7 @@
WHERE ru.user_id = #{userId}
AND ro.ref_type = 'BRANCH'
) t
) t;
</select>
<select id="selectBuildingFullPath" resultType="com.dongjian.dashboard.back.vo.level.BuildingPathDTO">
@ -276,8 +320,11 @@
br.id AS branch_id,
br.name AS branch_name,
sam.id AS store_area_id,
sam.name AS store_area_name,
st.id AS store_id,
st.name AS store_name,
a.id AS area_id,
a.name AS area_name,
s.id AS site_id,
s.name AS site_name,
@ -288,13 +335,17 @@
<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}
LEFT JOIN dashboard_level_relation_branch_store rbs ON rbs.branch_id = br.id AND br.flag = 0 AND br.company_id = #{companyId}
LEFT JOIN dashboard_level_store st ON st.id = rbs.store_id AND st.flag = 0
LEFT JOIN dashboard_level_store_area_merge sam ON sam.id = rbsa.store_area_id AND sam.flag = 0
LEFT JOIN dashboard_level_relation_store_area rsa ON rsa.store_id = st.id
LEFT JOIN dashboard_level_relation_store_area_site rsas ON rsas.store_area_id = sam.id
LEFT JOIN dashboard_level_area a ON a.id = rsa.area_id AND a.flag = 0
LEFT JOIN dashboard_level_site s ON s.id = rsas.site_id AND s.flag = 0
LEFT JOIN dashboard_level_relation_area_site ras ON ras.area_id = a.id
LEFT JOIN dashboard_level_site s ON s.id = ras.site_id AND s.flag = 0
LEFT JOIN dashboard_level_relation_site_building rsb ON rsb.site_id = s.id
@ -307,13 +358,17 @@
JOIN dashboard_level_site s ON rsb.site_id = s.id AND s.flag = 0
JOIN dashboard_level_relation_store_area_site rsas ON s.id = rsas.site_id
JOIN dashboard_level_relation_area_site ras ON s.id = ras.site_id
JOIN dashboard_level_area a ON ras.area_id = a.id AND a.flag = 0
JOIN dashboard_level_relation_store_area rsa ON a.id = rsa.area_id
JOIN dashboard_level_store_area_merge sam ON rsas.store_area_id = sam.id AND sam.flag = 0
JOIN dashboard_level_store st ON rsa.store_id = st.id AND st.flag = 0
JOIN dashboard_level_relation_branch_store_area rbsa ON sam.id = rbsa.store_area_id
JOIN dashboard_level_relation_branch_store rbs ON st.id = rbs.store_id
JOIN dashboard_level_branch br ON rbsa.branch_id = br.id AND br.flag = 0
JOIN dashboard_level_branch br ON rbs.branch_id = br.id AND br.flag = 0
</otherwise>
</choose>
<where>

42
dongjian-dashboard-back-dao/src/main/resources/mappers/ex/LevelRoleMapperExt.xml

@ -97,42 +97,28 @@
WHERE b.flag = 0 and b.company_id = #{companyId}
</select>
<select id="selectAllStoreAreas" resultType="com.dongjian.dashboard.back.vo.levelrole.RefKey">
SELECT s.id,
s.name,
r.branch_id AS parentId,
'STORE_AREA' AS type
FROM dashboard_level_store_area_merge s
LEFT JOIN dashboard_level_relation_branch_store_area r
ON s.id = r.store_area_id
WHERE s.flag = 0 and s.company_id = #{companyId}
</select>
<!-- 查用户绑定节点 -->
<select id="selectUserRefs" resultType="com.dongjian.dashboard.back.vo.levelrole.RefKey">
SELECT
o.ref_type AS type,
SELECT o.ref_type AS type,
o.ref_id AS id
FROM dashboard_level_role_user u
INNER JOIN dashboard_level_role_object o
ON u.level_role_id = o.level_role_id
LEFT JOIN dashboard_level_branch b
ON o.ref_type = 'BRANCH' AND o.ref_id = b.id
LEFT JOIN dashboard_level_store_area_merge sam
ON o.ref_type = 'STORE_AREA' AND o.ref_id = sam.id
LEFT JOIN dashboard_level_store s
ON o.ref_type = 'STORE' AND o.ref_id = s.id
LEFT JOIN dashboard_level_area a
ON o.ref_type = 'AREA' AND o.ref_id = a.id
LEFT JOIN dashboard_level_site si
ON o.ref_type = 'SITE' AND o.ref_id = si.id
LEFT JOIN basic_building bu
ON o.ref_type = 'BUILDING' AND o.ref_id = bu.building_id
WHERE u.user_id = #{userId}
AND CASE o.ref_type
WHEN 'BRANCH' THEN IFNULL(b.flag, 1)
WHEN 'STORE_AREA' THEN IFNULL(sam.flag, 1)
WHEN 'STORE' THEN IFNULL(s.flag, 1)
WHEN 'AREA' THEN IFNULL(a.flag, 1)
WHEN 'SITE' THEN IFNULL(si.flag, 1)
WHEN 'BUILDING' THEN IFNULL(bu.flag, 1)
END = 0
@ -145,24 +131,22 @@
FROM dashboard_level_role_object dlro
INNER JOIN dashboard_level_role dlr
ON dlr.id = dlro.level_role_id
LEFT JOIN dashboard_level_branch b
ON dlro.ref_type = 'BRANCH' AND dlro.ref_id = b.id
LEFT JOIN dashboard_level_store_area_merge sam
ON dlro.ref_type = 'STORE_AREA' AND dlro.ref_id = sam.id
LEFT JOIN dashboard_level_store s
ON dlro.ref_type = 'STORE' AND dlro.ref_id = s.id
LEFT JOIN dashboard_level_area a
ON dlro.ref_type = 'AREA' AND dlro.ref_id = a.id
LEFT JOIN dashboard_level_site si
ON dlro.ref_type = 'SITE' AND dlro.ref_id = si.id
LEFT JOIN basic_building bu
ON dlro.ref_type = 'BUILDING' AND dlro.ref_id = bu.building_id
WHERE dlr.flag != 1
AND dlr.id = #{roleId}
AND CASE dlro.ref_type
WHEN 'BRANCH' THEN IFNULL(b.flag, 1)
WHEN 'STORE_AREA' THEN IFNULL(sam.flag, 1)
WHEN 'STORE' THEN IFNULL(s.flag, 1)
WHEN 'AREA' THEN IFNULL(a.flag, 1)
WHEN 'SITE' THEN IFNULL(si.flag, 1)
WHEN 'BUILDING' THEN IFNULL(bu.flag, 1)
END = 0

2
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/dto/level/DeleteLevelParam.java

@ -21,6 +21,6 @@ public class DeleteLevelParam {
/**
* 物件级别类型 1-支社 2-各支店·area 3-site
*/
@Schema(description = "级别类型:1-支社 2-各支店·area 3-site ",example = "2", required = true)
@Schema(description = "物件级别类型(1-支社、2-各支店、3-area、4-site)",example = "2", required = true)
private Integer levelType;
}

4
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/dto/level/OptLevelParam.java

@ -27,9 +27,9 @@ public class OptLevelParam {
private String levelName;
/**
* 物件级别类型 1-支社 2-各支店·area 3-site
* 物件级别类型1-支社 2-各支店 3-area 4-site
*/
@Schema(description = "级别类型:1-支社 2-各支店·area 3-site ",example = "2", required = true)
@Schema(description = "级别类型:1-支社 2-各支店 3-area 4-site",example = "2", required = true)
private Integer levelType;
/**

5
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/dto/level/PageLevelSearchParam.java

@ -33,10 +33,7 @@ public class PageLevelSearchParam extends BaseSearchParams {
@Schema(description = "编码",example = "2cc")
private String levelCode;
/**
* 物件级别类型 1-支社 2-各支店·area 3-site
*/
@Schema(description = "级别类型:1-支社 2-各支店·area 3-site ",example = "2", required = true)
@Schema(description = "级别类型:1-支社 2-各支店 3-area 4-site",example = "2", required = true)
private Integer levelType;
}

7
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/level/BuildingPathDTO.java

@ -4,14 +4,15 @@ import lombok.Data;
@Data
public class BuildingPathDTO {
private Long branchId;
private Long storeAreaId;
private Long storeId;
private Long areaId;
private Long siteId;
private Long buildingId;
private String branchName;
private String storeAreaName;
private String storeName;
private String areaName;
private String siteName;
private String buildingName;
}

2
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/level/LevelPageDTO.java

@ -35,7 +35,7 @@ public class LevelPageDTO {
/**
* 物件级别类型1-支社 2-各支店 3-area 4-site
*/
@Schema(description = "级别类型:1-支社 2-各支店·area 3-site ",example = "2", required = true)
@Schema(description = "级别类型:1-支社 2-各支店 3-area 4-site",example = "2", required = true)
private Integer levelType;
/**

50
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/LevelRoleServiceImpl.java

@ -332,7 +332,8 @@ public class LevelRoleServiceImpl implements LevelRoleService {
Map<String, Object> levelMap = new HashMap<>();
levelMap.put("companyId", companyId);
List<RefKey> branches = levelRoleMapperExt.selectAllBranches(levelMap);
List<RefKey> storeAreas = levelRoleMapperExt.selectAllStoreAreas(levelMap);
List<RefKey> stores = levelRoleMapperExt.selectAllStores(levelMap);
List<RefKey> areas = levelRoleMapperExt.selectAllAreas(levelMap);
List<RefKey> sites = levelRoleMapperExt.selectAllSites(levelMap);
List<RefKey> buildings = levelRoleMapperExt.selectAllBuildings(levelMap);
@ -340,7 +341,8 @@ public class LevelRoleServiceImpl implements LevelRoleService {
List<RefKey> userRefs = new ArrayList<>();
if (levelRoleMapperExt.checkLevelManager(userId) > 0){
userRefs.addAll(branches);
userRefs.addAll(storeAreas);
userRefs.addAll(stores);
userRefs.addAll(areas);
userRefs.addAll(sites);
userRefs.addAll(buildings);
} else {
@ -348,16 +350,17 @@ public class LevelRoleServiceImpl implements LevelRoleService {
paramMap.put("userId", userId);
userRefs = levelRoleMapperExt.selectUserRefs(paramMap);
// 名称填充
fillNames(userRefs, branches, storeAreas, sites, buildings);
fillNames(userRefs, branches, stores, areas, sites, buildings);
}
// 构建 parentId → List<RefKey> 的多值 Map
Map<Long, List<RefKey>> storeAreaMap = groupByParent(storeAreas);
Map<Long, List<RefKey>> storeMap = groupByParent(stores);
Map<Long, List<RefKey>> areaMap = groupByParent(areas);
Map<Long, List<RefKey>> siteMap = groupByParent(sites);
Map<Long, List<RefKey>> buildingMap = groupByParent(buildings);
// 用于去重,避免重复根节点
Set<String> visitedKeys = new HashSet<>();
// Set<String> visitedKeys = new HashSet<>();
// 组装树结构
List<TreeMenusDTO> result = new ArrayList<>();
@ -367,8 +370,8 @@ public class LevelRoleServiceImpl implements LevelRoleService {
TreeMenusDTO root = new TreeMenusDTO();
String rootKey = ref.getType() + "-" + ref.getId();
if (visitedKeys.contains(rootKey)) continue; // 已存在跳过
visitedKeys.add(rootKey);
// if (visitedKeys.contains(rootKey)) continue; // 已存在跳过
// visitedKeys.add(rootKey);
root.setKey(rootKey);
root.setLabel(ref.getName());
@ -377,7 +380,8 @@ public class LevelRoleServiceImpl implements LevelRoleService {
// 构建该节点下的子树
root.setChildren(buildTree(
ref.getType(), ref.getId(), rootKey,
storeAreaMap, siteMap, buildingMap, visitedKeys
storeMap, areaMap, siteMap, buildingMap
// , visitedKeys
));
result.add(root);
}
@ -395,19 +399,22 @@ public class LevelRoleServiceImpl implements LevelRoleService {
private void fillNames(List<RefKey> userRefs,
List<RefKey> branches,
List<RefKey> storeAreas,
List<RefKey> stores,
List<RefKey> areas,
List<RefKey> sites,
List<RefKey> buildings) {
Map<Long, String> branchName = toNameMap(branches);
Map<Long, String> storeAreaName = toNameMap(storeAreas);
Map<Long, String> storeName = toNameMap(stores);
Map<Long, String> areaName = toNameMap(areas);
Map<Long, String> siteName = toNameMap(sites);
Map<Long, String> buildingName = toNameMap(buildings);
userRefs.removeIf(r -> {
String name = switch (r.getType()) {
case "BRANCH" -> branchName.get(r.getId());
case "STORE_AREA" -> storeAreaName.get(r.getId());
case "STORE" -> storeName.get(r.getId());
case "AREA" -> areaName.get(r.getId());
case "SITE" -> siteName.get(r.getId());
case "BUILDING" -> buildingName.get(r.getId());
default -> null;
@ -437,18 +444,20 @@ public class LevelRoleServiceImpl implements LevelRoleService {
private List<TreeMenusDTO> buildTree(String type,
Long parentId,
String parentKey,
Map<Long, List<RefKey>> storeAreaMap,
Map<Long, List<RefKey>> storeMap,
Map<Long, List<RefKey>> areaMap,
Map<Long, List<RefKey>> siteMap,
Map<Long, List<RefKey>> buildingMap,
Set<String> visitedKeys) {
Map<Long, List<RefKey>> buildingMap
// ,Set<String> visitedKeys
) {
Map<Long, List<RefKey>> childMap = switch (type) {
case "BRANCH" -> storeAreaMap;
case "STORE_AREA" -> siteMap;
case "BRANCH" -> storeMap;
case "STORE" -> areaMap;
case "AREA" -> siteMap;
case "SITE" -> buildingMap;
default -> null;
};
if (childMap == null) return Collections.emptyList();
// 直接取 parentId 的子节点
@ -460,8 +469,8 @@ public class LevelRoleServiceImpl implements LevelRoleService {
for (RefKey c : children) {
String key = c.getType() + "-" + c.getId();
if (visitedKeys.contains(key)) continue; // 已存在跳过
visitedKeys.add(key);
// if (visitedKeys.contains(key)) continue; // 已存在跳过
// visitedKeys.add(key);
TreeMenusDTO node = new TreeMenusDTO();
node.setKey(key);
@ -470,7 +479,8 @@ public class LevelRoleServiceImpl implements LevelRoleService {
node.setChildren(buildTree(
c.getType(), c.getId(), key,
storeAreaMap, siteMap, buildingMap, visitedKeys
storeMap, areaMap, siteMap, buildingMap
// , visitedKeys
));
list.add(node);

58
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/LevelServiceImpl.java

@ -79,7 +79,7 @@ public class LevelServiceImpl implements LevelService {
//插入关联
insertLevelRelation(param, levelEntity, 1);
//单独插入楼宇和site关系
if (3 == param.getLevelType()) {
if (4 == param.getLevelType()) {
insertSiteBuildingRelation(param, levelEntity, 1);
}
}
@ -127,13 +127,18 @@ public class LevelServiceImpl implements LevelService {
switch (param.getLevelType()){
case 2:
levelRelationEntity.setParentField("branch_id");
levelRelationEntity.setChildField("store_area_id");
levelRelationEntity.setTableName("dashboard_level_relation_branch_store_area");
levelRelationEntity.setChildField("store_id");
levelRelationEntity.setTableName("dashboard_level_relation_branch_store");
break;
case 3:
levelRelationEntity.setParentField("store_area_id");
levelRelationEntity.setParentField("store_id");
levelRelationEntity.setChildField("area_id");
levelRelationEntity.setTableName("dashboard_level_relation_store_area");
break;
case 4:
levelRelationEntity.setParentField("area_id");
levelRelationEntity.setChildField("site_id");
levelRelationEntity.setTableName("dashboard_level_relation_store_area_site");
levelRelationEntity.setTableName("dashboard_level_relation_area_site");
break;
}
levelRelationEntity.setParentId(parentId);
@ -163,7 +168,7 @@ public class LevelServiceImpl implements LevelService {
if(StringUtils.isBlank(param.getLevelName()) || param.getLevelName().length() > 255){
return new SimpleDataResponse(ResponseCode.MSG_ERROR, "Parameter [levelName] error");
}
if(null == param.getLevelType() || param.getLevelType() < 1 || param.getLevelType() > 3){
if(null == param.getLevelType() || param.getLevelType() < 1 || param.getLevelType() > 4){
return new SimpleDataResponse(ResponseCode.MSG_ERROR, "Parameter [levelType] error");
}
if(1 != param.getLevelType() && CollectionUtils.isEmpty(param.getParentIdList())){
@ -204,19 +209,23 @@ public class LevelServiceImpl implements LevelService {
deleteLevelRelationEntity.setChildId(param.getId());
switch (param.getLevelType()){
case 2:
deleteLevelRelationEntity.setChildField("store_area_id");
deleteLevelRelationEntity.setTableName("dashboard_level_relation_branch_store_area");
deleteLevelRelationEntity.setChildField("store_id");
deleteLevelRelationEntity.setTableName("dashboard_level_relation_branch_store");
break;
case 3:
deleteLevelRelationEntity.setChildField("area_id");
deleteLevelRelationEntity.setTableName("dashboard_level_relation_store_area");
break;
case 4:
deleteLevelRelationEntity.setChildField("site_id");
deleteLevelRelationEntity.setTableName("dashboard_level_relation_store_area_site");
deleteLevelRelationEntity.setTableName("dashboard_level_relation_area_site");
break;
}
levelMapperExt.deleteLevelRelation(deleteLevelRelationEntity);
//插入关联
insertLevelRelation(param, levelEntity, 2);
//单独插入楼宇和site关系
if (3 == param.getLevelType()) {
if (4 == param.getLevelType()) {
insertSiteBuildingRelation(param, levelEntity, 2);
}
}
@ -240,13 +249,17 @@ public class LevelServiceImpl implements LevelService {
switch (levelType){
case 1:
levelRelationEntity.setParentField("branch_id");
levelRelationEntity.setTableName("dashboard_level_relation_branch_store_area");
levelRelationEntity.setTableName("dashboard_level_relation_branch_store");
break;
case 2:
levelRelationEntity.setParentField("store_area_id");
levelRelationEntity.setTableName("dashboard_level_relation_store_area_site");
levelRelationEntity.setParentField("store_id");
levelRelationEntity.setTableName("dashboard_level_relation_store_area");
break;
case 3:
levelRelationEntity.setParentField("area_id");
levelRelationEntity.setTableName("dashboard_level_relation_area_site");
break;
case 4:
levelRelationEntity.setParentField("site_id");
levelRelationEntity.setTableName("dashboard_level_relation_site_building");
break;
@ -258,8 +271,9 @@ public class LevelServiceImpl implements LevelService {
//基础表删除
String tableName = switch (levelType) {
case 1 -> "dashboard_level_branch";
case 2 -> "dashboard_level_store_area_merge";
case 3 -> "dashboard_level_site";
case 2 -> "dashboard_level_store";
case 3 -> "dashboard_level_area";
case 4 -> "dashboard_level_site";
default -> "";
};
levelMapperExt.deleteLevelByIdList(tableName, idList);
@ -269,15 +283,19 @@ public class LevelServiceImpl implements LevelService {
switch (levelType){
case 1:
deleteEntity.setChildField("branch_id");
deleteEntity.setTableName("dashboard_level_relation_branch_store_area");
deleteEntity.setTableName("dashboard_level_relation_branch_store");
break;
case 2:
deleteEntity.setChildField("store_area_id");
deleteEntity.setTableName("dashboard_level_relation_branch_store_area");
deleteEntity.setChildField("store_id");
deleteEntity.setTableName("dashboard_level_relation_branch_store");
break;
case 3:
deleteEntity.setChildField("area_id");
deleteEntity.setTableName("dashboard_level_relation_store_area");
break;
case 4:
deleteEntity.setChildField("site_id");
deleteEntity.setTableName("dashboard_level_relation_store_area_site");
deleteEntity.setTableName("dashboard_level_relation_area_site");
break;
}
levelMapperExt.deleteLevelRelationByIdList(deleteEntity, idList);
@ -312,7 +330,7 @@ public class LevelServiceImpl implements LevelService {
PageHelper.startPage(pageSearchParam.getPageNum() == null ? 1 : pageSearchParam.getPageNum(), pageSearchParam.getPageSize() == null ? 20 : pageSearchParam.getPageSize());
List<LevelPageDTO> resultList = levelMapperExt.getListPage(pageSearchParam);
if (3 == levelType && CollectionUtils.isNotEmpty(resultList)){
if (4 == levelType && CollectionUtils.isNotEmpty(resultList)){
for (LevelPageDTO levelPageDTO : resultList) {
List<BuildingPageVO> buildingList = basicBuildingMapperExt.getBuildingListBySiteId(levelPageDTO.getId());
if (CollectionUtils.isNotEmpty(buildingList)) {

19
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/OverviewServiceImpl.java

@ -307,19 +307,26 @@ public class OverviewServiceImpl implements OverviewService {
nodeMap.putIfAbsent(branchKey,
createNode(branchKey, "ROOT", row.getBranchName()));
if (row.getStoreAreaId() == null) {
if (row.getStoreId() == null) {
continue;
}
String storeAreaKey = "STORE_AREA-" + row.getStoreAreaId() + "-" + branchKey;
nodeMap.putIfAbsent(storeAreaKey,
createNode(storeAreaKey, branchKey, row.getStoreAreaName()));
String storeKey = "STORE-" + row.getStoreId() + "-" + branchKey;
nodeMap.putIfAbsent(storeKey,
createNode(storeKey, branchKey, row.getStoreName()));
if (row.getAreaId() == null) {
continue;
}
String areaKey = "AREA-" + row.getAreaId() + "-" + storeKey;
nodeMap.putIfAbsent(areaKey,
createNode(areaKey, storeKey, row.getAreaName()));
if (row.getSiteId() == null) {
continue;
}
String siteKey = "SITE-" + row.getSiteId() + "-" + storeAreaKey;
String siteKey = "SITE-" + row.getSiteId() + "-" + areaKey;
nodeMap.putIfAbsent(siteKey,
createNode(siteKey, storeAreaKey, row.getSiteName()));
createNode(siteKey, areaKey, row.getSiteName()));
boolean isAllowedBuilding = !isADSC || bindBuildingIdSet.contains(row.getBuildingId());
if (isAllowedBuilding) {

Loading…
Cancel
Save