From c5f7b157db3ea552e32aa3169cfa3e30f40d8734 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 06 八月 2026 16:48:37 +0800
Subject: [PATCH] feat(bi): 新增仓库坐标配置功能并优化地图可视化效果
---
yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/service/config/BiWarehouseCoordinateService.java | 20 ++++++
yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/enums/ErrorCodeConstants.java | 3 +
yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/dal/mysql/BiWarehouseCoordinateMapper.java | 15 +++++
yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/service/config/BiWarehouseCoordinateServiceImpl.java | 38 ++++++++++++
yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/dal/dataobject/BiWarehouseCoordinateDO.java | 37 ++++++++++++
yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/controller/admin/config/BiWarehouseCoordinateController.java | 40 +++++++++++++
6 files changed, 153 insertions(+), 0 deletions(-)
diff --git a/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/controller/admin/config/BiWarehouseCoordinateController.java b/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/controller/admin/config/BiWarehouseCoordinateController.java
new file mode 100644
index 0000000..fc68a81
--- /dev/null
+++ b/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/controller/admin/config/BiWarehouseCoordinateController.java
@@ -0,0 +1,40 @@
+package cn.iocoder.yudao.module.bi.controller.admin.config;
+
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.module.bi.dal.dataobject.BiWarehouseCoordinateDO;
+import cn.iocoder.yudao.module.bi.service.config.BiWarehouseCoordinateService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "绠$悊鍚庡彴 - BI 浠撳簱鍧愭爣閰嶇疆")
+@RestController
+@RequestMapping("/bi/warehouse-coordinate")
+@Validated
+public class BiWarehouseCoordinateController {
+
+ @Resource
+ private BiWarehouseCoordinateService service;
+
+ @GetMapping("/list")
+ @Operation(summary = "鑾峰彇鍏ㄩ儴浠撳簱鍧愭爣")
+ public CommonResult<List<BiWarehouseCoordinateDO>> list() {
+ return success(service.listAll());
+ }
+
+ @PostMapping("/batch-save")
+ @Operation(summary = "鎵归噺淇濆瓨浠撳簱鍧愭爣")
+ @PreAuthorize("@ss.hasPermission('bi:warehouse-coordinate:update')")
+ public CommonResult<Boolean> batchSave(@RequestBody List<BiWarehouseCoordinateDO> list) {
+ service.batchSave(list);
+ return success(true);
+ }
+
+}
diff --git a/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/dal/dataobject/BiWarehouseCoordinateDO.java b/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/dal/dataobject/BiWarehouseCoordinateDO.java
new file mode 100644
index 0000000..6c0052e
--- /dev/null
+++ b/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/dal/dataobject/BiWarehouseCoordinateDO.java
@@ -0,0 +1,37 @@
+package cn.iocoder.yudao.module.bi.dal.dataobject;
+
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+
+/**
+ * 浠撳簱鍧愭爣閰嶇疆 DO
+ *
+ * @author 浜�
+ */
+@TableName("bi_warehouse_coordinate")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class BiWarehouseCoordinateDO extends BaseDO {
+
+ @TableId
+ private Long id;
+
+ /** 浠撳簱鍚嶇О */
+ private String name;
+
+ /** 缁忓害 */
+ private Double longitude;
+
+ /** 绾害 */
+ private Double latitude;
+
+ /** 鎺掑簭 */
+ private Integer sort;
+
+}
diff --git a/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/dal/mysql/BiWarehouseCoordinateMapper.java b/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/dal/mysql/BiWarehouseCoordinateMapper.java
new file mode 100644
index 0000000..7bb9b23
--- /dev/null
+++ b/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/dal/mysql/BiWarehouseCoordinateMapper.java
@@ -0,0 +1,15 @@
+package cn.iocoder.yudao.module.bi.dal.mysql;
+
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.module.bi.dal.dataobject.BiWarehouseCoordinateDO;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface BiWarehouseCoordinateMapper extends BaseMapperX<BiWarehouseCoordinateDO> {
+
+ default BiWarehouseCoordinateDO selectByName(String name) {
+ return selectOne(new LambdaQueryWrapperX<BiWarehouseCoordinateDO>()
+ .eq(BiWarehouseCoordinateDO::getName, name));
+ }
+}
diff --git a/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/enums/ErrorCodeConstants.java b/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/enums/ErrorCodeConstants.java
index aad0b0c..17cdf98 100644
--- a/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/enums/ErrorCodeConstants.java
+++ b/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/enums/ErrorCodeConstants.java
@@ -22,4 +22,7 @@
ErrorCode BI_DATA_SOURCE_CONFIG_NOT_EXISTS = new ErrorCode(1_080_101, "鏁版嵁婧愰厤缃笉瀛樺湪");
ErrorCode BI_DATA_SOURCE_CONFIG_IS_DISABLE = new ErrorCode(1_080_102, "鏁版嵁婧愰厤缃凡绂佺敤");
+ // ========== 浠撳簱鍧愭爣閰嶇疆鐩稿叧 1-080-151 ~ 1-080-170 ==========
+ ErrorCode BI_WAREHOUSE_COORDINATE_NOT_EXISTS = new ErrorCode(1_080_151, "浠撳簱鍧愭爣閰嶇疆涓嶅瓨鍦�");
+
}
diff --git a/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/service/config/BiWarehouseCoordinateService.java b/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/service/config/BiWarehouseCoordinateService.java
new file mode 100644
index 0000000..1addc8d
--- /dev/null
+++ b/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/service/config/BiWarehouseCoordinateService.java
@@ -0,0 +1,20 @@
+package cn.iocoder.yudao.module.bi.service.config;
+
+import cn.iocoder.yudao.module.bi.dal.dataobject.BiWarehouseCoordinateDO;
+
+import java.util.List;
+
+/**
+ * 浠撳簱鍧愭爣閰嶇疆 Service
+ *
+ * @author 浜�
+ */
+public interface BiWarehouseCoordinateService {
+
+ /** 鏌ヨ鍏ㄩ儴鍧愭爣 */
+ List<BiWarehouseCoordinateDO> listAll();
+
+ /** 鎵归噺淇濆瓨鍧愭爣 */
+ void batchSave(List<BiWarehouseCoordinateDO> list);
+
+}
diff --git a/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/service/config/BiWarehouseCoordinateServiceImpl.java b/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/service/config/BiWarehouseCoordinateServiceImpl.java
new file mode 100644
index 0000000..929e88d
--- /dev/null
+++ b/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/service/config/BiWarehouseCoordinateServiceImpl.java
@@ -0,0 +1,38 @@
+package cn.iocoder.yudao.module.bi.service.config;
+
+import cn.iocoder.yudao.module.bi.dal.dataobject.BiWarehouseCoordinateDO;
+import cn.iocoder.yudao.module.bi.dal.mysql.BiWarehouseCoordinateMapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 浠撳簱鍧愭爣閰嶇疆 Service 瀹炵幇
+ *
+ * @author 浜�
+ */
+@Service
+public class BiWarehouseCoordinateServiceImpl implements BiWarehouseCoordinateService {
+
+ @Resource
+ private BiWarehouseCoordinateMapper mapper;
+
+ @Override
+ public List<BiWarehouseCoordinateDO> listAll() {
+ return mapper.selectList(Wrappers.emptyWrapper());
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void batchSave(List<BiWarehouseCoordinateDO> list) {
+ mapper.delete(Wrappers.emptyWrapper());
+ for (BiWarehouseCoordinateDO item : list) {
+ item.setId(null);
+ mapper.insert(item);
+ }
+ }
+
+}
--
Gitblit v1.9.3