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);