diff --git a/data-center-business-controller/src/main/resources/db/migration/V76__level_change.sql b/data-center-business-controller/src/main/resources/db/migration/V76__level_change.sql new file mode 100644 index 0000000..dd39c91 --- /dev/null +++ b/data-center-business-controller/src/main/resources/db/migration/V76__level_change.sql @@ -0,0 +1,150 @@ + +# 创建新表(合并层) +CREATE TABLE dashboard_level_store_area_merge ( + id BIGINT NOT NULL AUTO_INCREMENT, + company_id BIGINT, + store_id BIGINT, + area_id BIGINT, + name VARCHAR(255), + code VARCHAR(255), + remark VARCHAR(255), + flag INT DEFAULT 0, + created_by BIGINT, + created_at BIGINT, + updated_at BIGINT, + updated_by BIGINT, + PRIMARY KEY (id) +); + +# 初始化数据 +INSERT INTO dashboard_level_store_area_merge ( + company_id, + store_id, + area_id, + name, + created_by, + created_at +) +SELECT + st.company_id, + r.store_id, + r.area_id, + CONCAT(st.name, ' ', ar.name), + r.created_by, + r.created_at +FROM dashboard_level_relation_store_area r + JOIN dashboard_level_store st ON st.id = r.store_id + JOIN dashboard_level_area ar ON ar.id = r.area_id +WHERE st.flag = 0 AND ar.flag = 0; + +# 重建 Branch 新层关系 +CREATE TABLE dashboard_level_relation_branch_store_area ( + branch_id BIGINT NOT NULL, + store_area_id BIGINT NOT NULL, + created_by BIGINT, + created_at BIGINT, + KEY idx_branch (branch_id), + KEY idx_store_area (store_area_id) +); + +# 数据迁移 +INSERT INTO dashboard_level_relation_branch_store_area ( + branch_id, + store_area_id, + created_by, + created_at +) +SELECT + bs.branch_id, + sam.id, + bs.created_by, + bs.created_at +FROM dashboard_level_relation_branch_store bs + JOIN dashboard_level_store_area_merge sam + ON bs.store_id = sam.store_id; + +# 重建 StoreArea-Site +CREATE TABLE dashboard_level_relation_store_area_site ( + store_area_id BIGINT NOT NULL, + site_id BIGINT NOT NULL, + created_by BIGINT, + created_at BIGINT, + KEY idx_sa (store_area_id), + KEY idx_site (site_id) +); + +# 数据迁移 +INSERT INTO dashboard_level_relation_store_area_site ( + store_area_id, + site_id, + created_by, + created_at +) +SELECT + sam.id, + ras.site_id, + ras.created_by, + ras.created_at +FROM dashboard_level_relation_area_site ras + JOIN dashboard_level_store_area_merge sam + ON ras.area_id = sam.area_id; + +# 迁移权限 +# 先改ENUM +ALTER TABLE dashboard_level_role_object MODIFY ref_type ENUM('BRANCH','STORE','AREA','SITE','BUILDING','STORE_AREA') NOT NULL; +# 迁移 AREA 权限 +INSERT IGNORE INTO dashboard_level_role_object ( + level_role_id, + ref_type, + ref_id, + created_by, + created_at, + updated_at, + updated_by +) +SELECT + ro.level_role_id, + 'STORE_AREA', + sam.id, + ro.created_by, + ro.created_at, + ro.updated_at, + ro.updated_by +FROM dashboard_level_role_object ro + JOIN dashboard_level_store_area_merge sam + ON ro.ref_type = 'AREA' + AND ro.ref_id = sam.area_id; + +# 迁移 STORE 权限 +INSERT IGNORE INTO dashboard_level_role_object ( + level_role_id, + ref_type, + ref_id, + created_by, + created_at, + updated_at, + updated_by +) +SELECT + ro.level_role_id, + 'STORE_AREA', + sam.id, + ro.created_by, + ro.created_at, + ro.updated_at, + ro.updated_by +FROM dashboard_level_role_object ro + JOIN dashboard_level_store_area_merge sam + ON ro.ref_type = 'STORE' + AND ro.ref_id = sam.store_id; + +# 删除旧权限 +DELETE FROM dashboard_level_role_object WHERE ref_type IN ('AREA','STORE'); + +# 最后改ENUM +ALTER TABLE dashboard_level_role_object MODIFY ref_type ENUM('BRANCH','STORE_AREA','SITE','BUILDING') NOT NULL; + + +# 添加编码 +ALTER TABLE dashboard_level_branch ADD code VARCHAR(255) AFTER `name`; +ALTER TABLE dashboard_level_site ADD code VARCHAR(255) AFTER `name`; \ No newline at end of file diff --git a/data-center-business-dao/src/main/resources/mappers/ex/BasicSalesforceMapperExt.xml b/data-center-business-dao/src/main/resources/mappers/ex/BasicSalesforceMapperExt.xml index 64d796b..e9ec9c3 100644 --- a/data-center-business-dao/src/main/resources/mappers/ex/BasicSalesforceMapperExt.xml +++ b/data-center-business-dao/src/main/resources/mappers/ex/BasicSalesforceMapperExt.xml @@ -20,36 +20,153 @@ \ No newline at end of file diff --git a/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/level/DeleteLevelParam.java b/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/level/DeleteLevelParam.java index 1e06078..0ec4e56 100644 --- a/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/level/DeleteLevelParam.java +++ b/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/level/DeleteLevelParam.java @@ -19,8 +19,8 @@ public class DeleteLevelParam { private String ids; /** - * 物件级别类型(1-支社、2-各支店、3-area、4-site) + * 物件级别类型 (1-支社 2-各支店·area 3-site) */ - @Schema(description = "物件级别类型(1-支社、2-各支店、3-area、4-site)",example = "2", required = true) + @Schema(description = "级别类型:1-支社 2-各支店·area 3-site ",example = "2", required = true) private Integer levelType; } \ No newline at end of file diff --git a/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/level/LevelEntity.java b/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/level/LevelEntity.java index 76924a1..5809929 100644 --- a/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/level/LevelEntity.java +++ b/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/level/LevelEntity.java @@ -1,5 +1,6 @@ package com.techsor.datacenter.business.dto.level; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.Setter; @@ -32,6 +33,11 @@ public class LevelEntity { */ private String remark; + /** + * 编码 + */ + private String code; + /** * 创建时间 */ diff --git a/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/level/OptLevelParam.java b/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/level/OptLevelParam.java index ceb2a90..8b3219e 100644 --- a/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/level/OptLevelParam.java +++ b/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/level/OptLevelParam.java @@ -27,9 +27,9 @@ public class OptLevelParam { private String levelName; /** - * 物件级别类型:1-支社 2-各支店 3-area 4-site + * 物件级别类型 (1-支社 2-各支店·area 3-site) */ - @Schema(description = "级别类型:1-支社 2-各支店 3-area 4-site",example = "2", required = true) + @Schema(description = "级别类型:1-支社 2-各支店·area 3-site ",example = "2", required = true) private Integer levelType; /** @@ -45,6 +45,13 @@ public class OptLevelParam { private String remark; + /** + * 编码 + */ + @Schema(description = "编码",example = "2cc") + private String code; + + @Schema(description = "所属企业ID",example = "2", hidden = true) private Long companyId; } \ No newline at end of file diff --git a/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/level/PageLevelSearchParam.java b/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/level/PageLevelSearchParam.java index e8cdda2..47813e9 100644 --- a/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/level/PageLevelSearchParam.java +++ b/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/level/PageLevelSearchParam.java @@ -30,7 +30,13 @@ public class PageLevelSearchParam extends BaseSearchParams { @Schema(description = "名称",example = "jyk2") private String levelName; - @Schema(description = "级别类型:1-支社 2-各支店 3-area 4-site",example = "2", required = true) + @Schema(description = "编码",example = "2cc") + private String levelCode; + + /** + * 物件级别类型 (1-支社 2-各支店·area 3-site) + */ + @Schema(description = "级别类型:1-支社 2-各支店·area 3-site ",example = "2", required = true) private Integer levelType; } \ No newline at end of file diff --git a/data-center-business-model/src/main/java/com/techsor/datacenter/business/vo/level/LevelPageDTO.java b/data-center-business-model/src/main/java/com/techsor/datacenter/business/vo/level/LevelPageDTO.java index 24b89b4..9fd6e98 100644 --- a/data-center-business-model/src/main/java/com/techsor/datacenter/business/vo/level/LevelPageDTO.java +++ b/data-center-business-model/src/main/java/com/techsor/datacenter/business/vo/level/LevelPageDTO.java @@ -24,10 +24,16 @@ public class LevelPageDTO { @Schema(description = "名称)",example = "2", required = true) private String levelName; + /** + * 物件级别名称 + */ + @Schema(description = "编码)",example = "2cc", required = false) + private String levelCode; + /** * 物件级别类型:1-支社 2-各支店 3-area 4-site */ - @Schema(description = "级别类型:1-支社 2-各支店 3-area 4-site",example = "2", required = true) + @Schema(description = "级别类型:1-支社 2-各支店·area 3-site ",example = "2", required = true) private Integer levelType; /** diff --git a/data-center-business-model/src/main/java/com/techsor/datacenter/business/vo/salesforce/SalesforcePageVO.java b/data-center-business-model/src/main/java/com/techsor/datacenter/business/vo/salesforce/SalesforcePageVO.java index ba7fff0..961e354 100644 --- a/data-center-business-model/src/main/java/com/techsor/datacenter/business/vo/salesforce/SalesforcePageVO.java +++ b/data-center-business-model/src/main/java/com/techsor/datacenter/business/vo/salesforce/SalesforcePageVO.java @@ -22,6 +22,31 @@ public class SalesforcePageVO { @Schema(description = "Building ID", example = "25") private Long buildingId; + @Schema(description = "楼宇名", example = "user1", required = true) + private String buildingName; + + @Schema(description = "楼宇自定义ID", example = "123AAA6", required = true) + private String udfBuildingId; + + @Schema(description = "支社名称", example = "user1", required = false) + private String branchName; + + @Schema(description = "支社编码", example = "user1", required = false) + private String branchCode; + + @Schema(description = "支店区域名称", example = "user1", required = false) + private String storeAreaName; + + @Schema(description = "支店区域编码", example = "user1", required = false) + private String storeAreaCode; + + @Schema(description = "site名称", example = "user1", required = false) + private String siteName; + + @Schema(description = "site编码", example = "user1", required = false) + private String siteCode; + + @Schema(description = "备注", example = "user1", required = true, hidden = true) private String remark; diff --git a/data-center-business-service/src/main/java/com/techsor/datacenter/business/service/impl/LevelServiceImpl.java b/data-center-business-service/src/main/java/com/techsor/datacenter/business/service/impl/LevelServiceImpl.java index c12acee..17179cc 100644 --- a/data-center-business-service/src/main/java/com/techsor/datacenter/business/service/impl/LevelServiceImpl.java +++ b/data-center-business-service/src/main/java/com/techsor/datacenter/business/service/impl/LevelServiceImpl.java @@ -92,18 +92,13 @@ public class LevelServiceImpl implements LevelService { switch (param.getLevelType()){ case 2: levelRelationEntity.setParentField("branch_id"); - levelRelationEntity.setChildField("store_id"); - levelRelationEntity.setTableName("dashboard_level_relation_branch_store"); + levelRelationEntity.setChildField("store_area_id"); + levelRelationEntity.setTableName("dashboard_level_relation_branch_store_area"); break; case 3: - levelRelationEntity.setParentField("store_id"); - levelRelationEntity.setChildField("area_id"); - levelRelationEntity.setTableName("dashboard_level_relation_store_area"); - break; - case 4: - levelRelationEntity.setParentField("area_id"); + levelRelationEntity.setParentField("store_area_id"); levelRelationEntity.setChildField("site_id"); - levelRelationEntity.setTableName("dashboard_level_relation_area_site"); + levelRelationEntity.setTableName("dashboard_level_relation_store_area_site"); break; } levelRelationEntity.setParentId(parentId); @@ -174,16 +169,12 @@ public class LevelServiceImpl implements LevelService { deleteLevelRelationEntity.setChildId(param.getId()); switch (param.getLevelType()){ case 2: - deleteLevelRelationEntity.setChildField("store_id"); - deleteLevelRelationEntity.setTableName("dashboard_level_relation_branch_store"); + deleteLevelRelationEntity.setChildField("store_area_id"); + deleteLevelRelationEntity.setTableName("dashboard_level_relation_branch_store_area"); 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_area_site"); + deleteLevelRelationEntity.setTableName("dashboard_level_relation_store_area_site"); break; } levelMapperExt.deleteLevelRelation(deleteLevelRelationEntity); @@ -210,17 +201,13 @@ public class LevelServiceImpl implements LevelService { switch (levelType){ case 1: levelRelationEntity.setParentField("branch_id"); - levelRelationEntity.setTableName("dashboard_level_relation_branch_store"); + levelRelationEntity.setTableName("dashboard_level_relation_branch_store_area"); break; case 2: - levelRelationEntity.setParentField("store_id"); - levelRelationEntity.setTableName("dashboard_level_relation_store_area"); + levelRelationEntity.setParentField("store_area_id"); + levelRelationEntity.setTableName("dashboard_level_relation_store_area_site"); 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; @@ -232,9 +219,8 @@ public class LevelServiceImpl implements LevelService { //基础表删除 String tableName = switch (levelType) { case 1 -> "dashboard_level_branch"; - case 2 -> "dashboard_level_store"; - case 3 -> "dashboard_level_area"; - case 4 -> "dashboard_level_site"; + case 2 -> "dashboard_level_store_area_merge"; + case 3 -> "dashboard_level_site"; default -> ""; }; levelMapperExt.deleteLevelByIdList(tableName, idList); @@ -244,19 +230,15 @@ public class LevelServiceImpl implements LevelService { switch (levelType){ case 1: deleteEntity.setChildField("branch_id"); - deleteEntity.setTableName("dashboard_level_relation_branch_store"); + deleteEntity.setTableName("dashboard_level_relation_branch_store_area"); break; case 2: - deleteEntity.setChildField("store_id"); - deleteEntity.setTableName("dashboard_level_relation_branch_store"); + deleteEntity.setChildField("store_area_id"); + deleteEntity.setTableName("dashboard_level_relation_branch_store_area"); 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_area_site"); + deleteEntity.setTableName("dashboard_level_relation_store_area_site"); break; } levelMapperExt.deleteLevelRelationByIdList(deleteEntity, idList);