Browse Source

支店,区域两个层级合并成一个

jwy
review512jwy@163.com 4 weeks ago
parent
commit
cbfb3d44cb
  1. 150
      data-center-business-controller/src/main/resources/db/migration/V76__level_change.sql
  2. 133
      data-center-business-dao/src/main/resources/mappers/ex/BasicSalesforceMapperExt.xml
  3. 114
      data-center-business-dao/src/main/resources/mappers/ex/LevelMapperExt.xml
  4. 4
      data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/level/DeleteLevelParam.java
  5. 6
      data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/level/LevelEntity.java
  6. 11
      data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/level/OptLevelParam.java
  7. 8
      data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/level/PageLevelSearchParam.java
  8. 8
      data-center-business-model/src/main/java/com/techsor/datacenter/business/vo/level/LevelPageDTO.java
  9. 25
      data-center-business-model/src/main/java/com/techsor/datacenter/business/vo/salesforce/SalesforcePageVO.java
  10. 50
      data-center-business-service/src/main/java/com/techsor/datacenter/business/service/impl/LevelServiceImpl.java

150
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`;

133
data-center-business-dao/src/main/resources/mappers/ex/BasicSalesforceMapperExt.xml

@ -20,36 +20,153 @@
<select id="getListPage" resultType="com.techsor.datacenter.business.vo.salesforce.SalesforcePageVO"> <select id="getListPage" resultType="com.techsor.datacenter.business.vo.salesforce.SalesforcePageVO">
WITH
-- device 先聚合(解决 GROUP BY 问题的关键)
device_agg AS (
SELECT
sdr.salesforce_info_id,
GROUP_CONCAT(DISTINCT di.id) AS deviceInfoIds,
GROUP_CONCAT(DISTINCT di.device_id) AS deviceIds
FROM salesforce_device_relation sdr
LEFT JOIN device_info di
ON di.id = sdr.device_info_id AND di.flag = 0
GROUP BY sdr.salesforce_info_id
),
-- building → 最新 site(唯一)
latest_site AS (
SELECT *
FROM (
SELECT
rsb.building_id,
rsb.site_id,
ROW_NUMBER() OVER (
PARTITION BY rsb.building_id
ORDER BY rsb.created_at DESC, rsb.site_id DESC
) AS rn
FROM dashboard_level_relation_site_building rsb
) t
WHERE t.rn = 1
),
-- 基于 site → 最新 store_area
latest_store_area AS (
SELECT *
FROM (
SELECT
ls.building_id,
rsas.site_id,
rsas.store_area_id,
ROW_NUMBER() OVER (
PARTITION BY ls.building_id
ORDER BY rsas.created_at DESC, rsas.store_area_id DESC
) AS rn
FROM latest_site ls
JOIN dashboard_level_relation_store_area_site rsas
ON ls.site_id = rsas.site_id
) t
WHERE t.rn = 1
),
-- 基于 store_area → 最新 branch
latest_branch AS (
SELECT *
FROM (
SELECT
lsa.building_id,
rbsa.store_area_id,
rbsa.branch_id,
ROW_NUMBER() OVER (
PARTITION BY lsa.building_id
ORDER BY rbsa.created_at DESC, rbsa.branch_id DESC
) AS rn
FROM latest_store_area lsa
JOIN dashboard_level_relation_branch_store_area rbsa
ON lsa.store_area_id = rbsa.store_area_id
) t
WHERE t.rn = 1
)
SELECT SELECT
bsales.id, bsales.id,
bsales.company_id, bsales.company_id,
bsales.building_id, bsales.building_id,
bb.name AS buildingName,
bb.udf_building_id,
bcomp.company_name, bcomp.company_name,
bsales.salesforce_id, bsales.salesforce_id,
bsales.remark, bsales.remark,
GROUP_CONCAT(DISTINCT di.id) AS deviceInfoIds,
GROUP_CONCAT(DISTINCT di.device_id) AS deviceIds da.deviceInfoIds,
FROM basic_salesforce bsales da.deviceIds,
INNER JOIN data_center_aeon_admin.basic_company bcomp ON bcomp.id = bsales.company_id
LEFT JOIN salesforce_device_relation sdr ON sdr.salesforce_info_id = bsales.id s.id AS site_id,
LEFT JOIN device_info di ON di.id = sdr.device_info_id AND di.flag = 0 s.code AS siteCode,
s.name AS siteName,
sam.id AS store_area_id,
sam.code AS storeAreaCode,
sam.name AS storeAreaName,
br.id AS branch_id,
br.code AS branchCode,
br.name AS branchName
FROM
basic_salesforce bsales
LEFT JOIN basic_building bb
ON bb.building_id = bsales.building_id
AND bb.flag = 0
INNER JOIN data_center_aeon_admin.basic_company bcomp
ON bcomp.id = bsales.company_id
LEFT JOIN device_agg da
ON da.salesforce_info_id = bsales.id
-- 严格链路 JOIN
LEFT JOIN latest_site ls
ON ls.building_id = bsales.building_id
LEFT JOIN dashboard_level_site s
ON s.id = ls.site_id AND s.flag = 0
LEFT JOIN latest_store_area lsa
ON lsa.building_id = bsales.building_id
LEFT JOIN dashboard_level_store_area_merge sam
ON sam.id = lsa.store_area_id AND sam.flag = 0
LEFT JOIN latest_branch lb
ON lb.building_id = bsales.building_id
LEFT JOIN dashboard_level_branch br
ON br.id = lb.branch_id AND br.flag = 0
WHERE WHERE
bsales.flag != 1 AND bcomp.flag != 1 bsales.flag != 1
AND bcomp.flag != 1
AND bsales.company_id IN AND bsales.company_id IN
<foreach collection="companyIdList" item="item" open="(" separator="," close=")"> <foreach collection="companyIdList" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
<if test="idList != null"> <if test="idList != null">
AND bsales.id IN AND bsales.id IN
<foreach collection="idList" item="item" open="(" separator="," close=")"> <foreach collection="idList" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="salesforceId != null and salesforceId != '' "> <if test="salesforceId != null and salesforceId != '' ">
AND bsales.salesforce_id LIKE CONCAT('%',#{salesforceId},'%') AND bsales.salesforce_id LIKE CONCAT('%',#{salesforceId},'%')
</if> </if>
GROUP BY bsales.id
ORDER BY bsales.id DESC ORDER BY bsales.id DESC
</select> </select>
<select id="getDevicePageForBinding" resultType="com.techsor.datacenter.business.vo.device.DeviceShortVO"> <select id="getDevicePageForBinding" resultType="com.techsor.datacenter.business.vo.device.DeviceShortVO">

114
data-center-business-dao/src/main/resources/mappers/ex/LevelMapperExt.xml

@ -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`
@ -188,7 +190,7 @@
SELECT DISTINCT building_id SELECT DISTINCT building_id
FROM ( FROM (
-- BUILDING -- 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
@ -217,69 +219,41 @@
UNION ALL UNION ALL
-- AREA → SITE → BUILDING -- STORE_AREA → SITE → BUILDING(核心替代 AREA / STORE)
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_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 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
-- 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_store st JOIN dashboard_level_store_area_merge sam
ON ro.ref_id = st.id AND st.flag = 0 ON ro.ref_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
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 → STOREAREA → SITE → BUILDING -- 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
@ -287,7 +261,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>
</mapper> </mapper>

4
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; private String ids;
/** /**
* 物件级别类型1-支社2-各支店3-area4-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; private Integer levelType;
} }

6
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; package com.techsor.datacenter.business.dto.level;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@ -32,6 +33,11 @@ public class LevelEntity {
*/ */
private String remark; private String remark;
/**
* 编码
*/
private String code;
/** /**
* 创建时间 * 创建时间
*/ */

11
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; 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; private Integer levelType;
/** /**
@ -45,6 +45,13 @@ public class OptLevelParam {
private String remark; private String remark;
/**
* 编码
*/
@Schema(description = "编码",example = "2cc")
private String code;
@Schema(description = "所属企业ID",example = "2", hidden = true) @Schema(description = "所属企业ID",example = "2", hidden = true)
private Long companyId; private Long companyId;
} }

8
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") @Schema(description = "名称",example = "jyk2")
private String levelName; 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; private Integer levelType;
} }

8
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) @Schema(description = "名称)",example = "2", required = true)
private String levelName; private String levelName;
/**
* 物件级别名称
*/
@Schema(description = "编码)",example = "2cc", required = false)
private String levelCode;
/** /**
* 物件级别类型1-支社 2-各支店 3-area 4-site * 物件级别类型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; private Integer levelType;
/** /**

25
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") @Schema(description = "Building ID", example = "25")
private Long buildingId; 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) @Schema(description = "备注", example = "user1", required = true, hidden = true)
private String remark; private String remark;

50
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()){ switch (param.getLevelType()){
case 2: case 2:
levelRelationEntity.setParentField("branch_id"); levelRelationEntity.setParentField("branch_id");
levelRelationEntity.setChildField("store_id"); levelRelationEntity.setChildField("store_area_id");
levelRelationEntity.setTableName("dashboard_level_relation_branch_store"); levelRelationEntity.setTableName("dashboard_level_relation_branch_store_area");
break; break;
case 3: case 3:
levelRelationEntity.setParentField("store_id"); levelRelationEntity.setParentField("store_area_id");
levelRelationEntity.setChildField("area_id");
levelRelationEntity.setTableName("dashboard_level_relation_store_area");
break;
case 4:
levelRelationEntity.setParentField("area_id");
levelRelationEntity.setChildField("site_id"); levelRelationEntity.setChildField("site_id");
levelRelationEntity.setTableName("dashboard_level_relation_area_site"); levelRelationEntity.setTableName("dashboard_level_relation_store_area_site");
break; break;
} }
levelRelationEntity.setParentId(parentId); levelRelationEntity.setParentId(parentId);
@ -174,16 +169,12 @@ public class LevelServiceImpl implements LevelService {
deleteLevelRelationEntity.setChildId(param.getId()); deleteLevelRelationEntity.setChildId(param.getId());
switch (param.getLevelType()){ switch (param.getLevelType()){
case 2: case 2:
deleteLevelRelationEntity.setChildField("store_id"); deleteLevelRelationEntity.setChildField("store_area_id");
deleteLevelRelationEntity.setTableName("dashboard_level_relation_branch_store"); deleteLevelRelationEntity.setTableName("dashboard_level_relation_branch_store_area");
break; break;
case 3: case 3:
deleteLevelRelationEntity.setChildField("area_id");
deleteLevelRelationEntity.setTableName("dashboard_level_relation_store_area");
break;
case 4:
deleteLevelRelationEntity.setChildField("site_id"); deleteLevelRelationEntity.setChildField("site_id");
deleteLevelRelationEntity.setTableName("dashboard_level_relation_area_site"); deleteLevelRelationEntity.setTableName("dashboard_level_relation_store_area_site");
break; break;
} }
levelMapperExt.deleteLevelRelation(deleteLevelRelationEntity); levelMapperExt.deleteLevelRelation(deleteLevelRelationEntity);
@ -210,17 +201,13 @@ public class LevelServiceImpl implements LevelService {
switch (levelType){ switch (levelType){
case 1: case 1:
levelRelationEntity.setParentField("branch_id"); levelRelationEntity.setParentField("branch_id");
levelRelationEntity.setTableName("dashboard_level_relation_branch_store"); levelRelationEntity.setTableName("dashboard_level_relation_branch_store_area");
break; break;
case 2: case 2:
levelRelationEntity.setParentField("store_id"); levelRelationEntity.setParentField("store_area_id");
levelRelationEntity.setTableName("dashboard_level_relation_store_area"); levelRelationEntity.setTableName("dashboard_level_relation_store_area_site");
break; break;
case 3: case 3:
levelRelationEntity.setParentField("area_id");
levelRelationEntity.setTableName("dashboard_level_relation_area_site");
break;
case 4:
levelRelationEntity.setParentField("site_id"); levelRelationEntity.setParentField("site_id");
levelRelationEntity.setTableName("dashboard_level_relation_site_building"); levelRelationEntity.setTableName("dashboard_level_relation_site_building");
break; break;
@ -232,9 +219,8 @@ public class LevelServiceImpl implements LevelService {
//基础表删除 //基础表删除
String tableName = switch (levelType) { String tableName = switch (levelType) {
case 1 -> "dashboard_level_branch"; case 1 -> "dashboard_level_branch";
case 2 -> "dashboard_level_store"; case 2 -> "dashboard_level_store_area_merge";
case 3 -> "dashboard_level_area"; case 3 -> "dashboard_level_site";
case 4 -> "dashboard_level_site";
default -> ""; default -> "";
}; };
levelMapperExt.deleteLevelByIdList(tableName, idList); levelMapperExt.deleteLevelByIdList(tableName, idList);
@ -244,19 +230,15 @@ public class LevelServiceImpl implements LevelService {
switch (levelType){ switch (levelType){
case 1: case 1:
deleteEntity.setChildField("branch_id"); deleteEntity.setChildField("branch_id");
deleteEntity.setTableName("dashboard_level_relation_branch_store"); deleteEntity.setTableName("dashboard_level_relation_branch_store_area");
break; break;
case 2: case 2:
deleteEntity.setChildField("store_id"); deleteEntity.setChildField("store_area_id");
deleteEntity.setTableName("dashboard_level_relation_branch_store"); deleteEntity.setTableName("dashboard_level_relation_branch_store_area");
break; break;
case 3: case 3:
deleteEntity.setChildField("area_id");
deleteEntity.setTableName("dashboard_level_relation_store_area");
break;
case 4:
deleteEntity.setChildField("site_id"); deleteEntity.setChildField("site_id");
deleteEntity.setTableName("dashboard_level_relation_area_site"); deleteEntity.setTableName("dashboard_level_relation_store_area_site");
break; break;
} }
levelMapperExt.deleteLevelRelationByIdList(deleteEntity, idList); levelMapperExt.deleteLevelRelationByIdList(deleteEntity, idList);

Loading…
Cancel
Save