From 8e07ecc69b36b8653bc5f2b35eb39c5058f0c2cd Mon Sep 17 00:00:00 2001 From: zt Date: Mon, 25 Aug 2025 18:32:19 +0800 Subject: [PATCH] =?UTF-8?q?bug=E3=80=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/domain/DesCollectCatalogue.java | 10 + .../domain/bo/DesCollectCatalogueBo.java | 10 + .../domain/vo/DesCollectCatalogueVo.java | 10 + .../controller/BusEnterRoadController.java | 58 ++++ .../controller/BusLandBlockController.java | 66 ++++- .../listener/GenericExcelListener.java | 266 ++++++++++++++++++ .../land/domain/bo/BusEnterRoadImportBo.java | 60 ++++ .../land/domain/bo/BusLandBlockImportBo.java | 52 ++++ .../land/service/IBusEnterRoadService.java | 4 +- .../service/impl/BusEnterRoadServiceImpl.java | 7 +- .../service/impl/BusLandBlockServiceImpl.java | 6 - .../impl/MatMaterialReceiveServiceImpl.java | 6 +- 12 files changed, 533 insertions(+), 22 deletions(-) create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/controller/listener/GenericExcelListener.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/domain/bo/BusEnterRoadImportBo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/domain/bo/BusLandBlockImportBo.java diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/DesCollectCatalogue.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/DesCollectCatalogue.java index a9f05bdf..b89e7a5b 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/DesCollectCatalogue.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/DesCollectCatalogue.java @@ -47,6 +47,16 @@ public class DesCollectCatalogue extends BaseEntity { */ private String catalogueName; + /** + * 用户id + */ + private Long userId; + + /** + * 用户名 + */ + private String userName; + /** * 备注 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/bo/DesCollectCatalogueBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/bo/DesCollectCatalogueBo.java index b26cbacd..abe55d95 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/bo/DesCollectCatalogueBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/bo/DesCollectCatalogueBo.java @@ -49,6 +49,16 @@ public class DesCollectCatalogueBo extends BaseEntity { @NotBlank(message = "目录名不能为空", groups = { AddGroup.class, EditGroup.class }) private String catalogueName; + /** + * 用户id + */ + private Long userId; + + /** + * 用户名 + */ + private String userName; + /** * 备注 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/vo/DesCollectCatalogueVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/vo/DesCollectCatalogueVo.java index b49eb3b6..ac091693 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/vo/DesCollectCatalogueVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/vo/DesCollectCatalogueVo.java @@ -58,6 +58,16 @@ public class DesCollectCatalogueVo implements Serializable { @ExcelProperty(value = "目录名") private String catalogueName; + /** + * 用户id + */ + private Long userId; + + /** + * 用户名 + */ + private String userName; + /** * 备注 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/controller/BusEnterRoadController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/controller/BusEnterRoadController.java index 074f131d..df269292 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/controller/BusEnterRoadController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/controller/BusEnterRoadController.java @@ -1,11 +1,15 @@ package org.dromara.land.controller; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.bean.BeanUtil; +import com.alibaba.excel.EasyExcel; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.domain.R; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; import org.dromara.common.excel.utils.ExcelUtil; @@ -15,7 +19,12 @@ import org.dromara.common.log.enums.BusinessType; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.web.core.BaseController; +import org.dromara.land.controller.listener.GenericExcelListener; +import org.dromara.land.domain.BusEnterRoad; +import org.dromara.land.domain.BusLandBlock; import org.dromara.land.domain.bo.BusEnterRoadBo; +import org.dromara.land.domain.bo.BusEnterRoadImportBo; +import org.dromara.land.domain.bo.BusLandBlockImportBo; import org.dromara.land.domain.vo.BusEnterRoadVo; import org.dromara.land.service.IBusEnterRoadService; import org.springframework.validation.annotation.Validated; @@ -27,8 +36,13 @@ import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; +import java.util.UUID; +import java.util.concurrent.ThreadLocalRandom; +import java.util.stream.Collectors; /** * 进场道路信息 @@ -37,6 +51,7 @@ import java.util.List; * @date 2025-07-25 */ @Validated +@Slf4j @RequiredArgsConstructor @RestController @RequestMapping("/land/enterRoad") @@ -85,6 +100,7 @@ public class BusEnterRoadController extends BaseController { @RepeatSubmit() @PostMapping() public R add(@Validated(AddGroup.class) @RequestBody BusEnterRoadBo bo) { + bo.setRoadCode(getRoadCode()); return toAjax(busEnterRoadService.insertByBo(bo)); } @@ -111,4 +127,46 @@ public class BusEnterRoadController extends BaseController { @PathVariable Long[] ids) { return toAjax(busEnterRoadService.deleteWithValidByIds(List.of(ids), true)); } + + + @PostMapping("upload/{projectId}") + public R upload(MultipartFile file, @NotNull(message = "所属项目不明确") + @PathVariable Long projectId) { + try { + GenericExcelListener listener = new GenericExcelListener<>( + (productList, supId) -> { + List busEnterRoads = productList.stream() + .map(product -> { + BusEnterRoad busEnterRoad = BeanUtil.copyProperties(product, BusEnterRoad.class); + busEnterRoad.setRoadCode(getRoadCode()); + busEnterRoad.setProjectId(projectId); + return busEnterRoad; + }) + .collect(Collectors.toList()); + busEnterRoadService.saveBatch(busEnterRoads); + }, + projectId, + 500 // 自定义批量大小 + ); + + EasyExcel.read(file.getInputStream(), BusEnterRoadImportBo.class, listener) + .sheet("Sheet1") + .doRead(); + // 检查是否有错误发生 + if (listener.hasError()) { + throw new ServiceException("Excel导入失败"); + } + + log.info("道路数据导入完成,成功: {},失败: {}", + listener.getSuccessCount(), listener.getFailCount()); + } catch (IOException e) { + log.error("读取文件失败: {}", e.getMessage()); + return R.fail("导入失败"); + } + return R.ok(); + } + public String getRoadCode() { + return "TD-DL-" + UUID.randomUUID().toString().replace("-", "").substring(0, 12).toUpperCase(); + //return "TD-DL-"+ System.currentTimeMillis() + ThreadLocalRandom.current().nextInt(1000, 9999); + } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/controller/BusLandBlockController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/controller/BusLandBlockController.java index 3c6905ad..c6ffe773 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/controller/BusLandBlockController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/controller/BusLandBlockController.java @@ -1,11 +1,15 @@ package org.dromara.land.controller; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.bean.BeanUtil; +import com.alibaba.excel.EasyExcel; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.domain.R; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; import org.dromara.common.excel.utils.ExcelUtil; @@ -15,20 +19,21 @@ import org.dromara.common.log.enums.BusinessType; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.web.core.BaseController; +import org.dromara.land.controller.listener.GenericExcelListener; +import org.dromara.land.domain.BusLandBlock; import org.dromara.land.domain.bo.BusLandBlockBo; +import org.dromara.land.domain.bo.BusLandBlockImportBo; import org.dromara.land.domain.vo.BusLandBlockVo; import org.dromara.land.service.IBusLandBlockService; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; +import java.util.UUID; +import java.util.concurrent.ThreadLocalRandom; +import java.util.stream.Collectors; /** * 地块信息 @@ -37,6 +42,7 @@ import java.util.List; * @date 2025-07-25 */ @Validated +@Slf4j @RequiredArgsConstructor @RestController @RequestMapping("/land/landBlock") @@ -84,6 +90,7 @@ public class BusLandBlockController extends BaseController { @RepeatSubmit() @PostMapping() public R add(@Validated(AddGroup.class) @RequestBody BusLandBlockBo bo) { + bo.setLandCode(getLandCode()); return toAjax(busLandBlockService.insertByBo(bo)); } @@ -110,4 +117,47 @@ public class BusLandBlockController extends BaseController { @PathVariable Long[] ids) { return toAjax(busLandBlockService.deleteWithValidByIds(List.of(ids), true)); } + + @PostMapping("upload/{projectId}") + public R upload(MultipartFile file,@NotNull(message = "所属项目不明确") + @PathVariable Long projectId) { + try { + GenericExcelListener listener = new GenericExcelListener<>( + (productList, supId) -> { + List busLandBlocks = productList.stream() + .map(product -> { + BusLandBlock busLandBlock = BeanUtil.copyProperties(product, BusLandBlock.class); + busLandBlock.setLandCode(getLandCode()); + busLandBlock.setProjectId(projectId); + return busLandBlock; + }) + .collect(Collectors.toList()); + busLandBlockService.saveBatch(busLandBlocks); + }, + projectId, + 500 // 自定义批量大小 + ); + + EasyExcel.read(file.getInputStream(), BusLandBlockImportBo.class, listener) + .sheet("Sheet1") + .doRead(); + // 检查是否有错误发生 + if (listener.hasError()) { + throw new ServiceException("Excel导入失败"); + } + + log.info("地块数据导入完成,成功: {},失败: {}", + listener.getSuccessCount(), listener.getFailCount()); + } catch (IOException e) { + log.error("读取文件失败: {}", e.getMessage()); + return R.fail("导入失败"); + } + return R.ok(); + } + public String getLandCode() { + return "TD-DL-" + UUID.randomUUID().toString().replace("-", "").substring(0, 12).toUpperCase(); + //return "TD-DK-"+ System.currentTimeMillis() + ThreadLocalRandom.current().nextInt(1000, 9999); + } } + + diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/controller/listener/GenericExcelListener.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/controller/listener/GenericExcelListener.java new file mode 100644 index 00000000..c774f9ef --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/controller/listener/GenericExcelListener.java @@ -0,0 +1,266 @@ +package org.dromara.land.controller.listener; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import com.alibaba.excel.exception.ExcelDataConvertException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.function.BiConsumer; + +/** + * 通用Excel导入监听器(支持事务性导入) + * @param 数据类型 + * @param

额外参数类型 + */ +public class GenericExcelListener extends AnalysisEventListener { + private static final Logger logger = LoggerFactory.getLogger(GenericExcelListener.class); + + /** + * 默认批量处理大小 + */ + private static final int DEFAULT_BATCH_SIZE = 1000; + + /** + * 批量处理大小 + */ + private final int batchSize; + + /** + * 临时存储数据列表 + */ + private List dataList; + + /** + * 数据处理器(接收额外参数) + */ + private final BiConsumer, P> dataConsumer; + + /** + * 额外参数 + */ + private final P extraParam; + + /** + * 成功计数 + */ + private int successCount = 0; + + /** + * 失败计数 + */ + private int failCount = 0; + + /** + * 表头信息 + */ + private List headerList; + + /** + * 当前工作表名称 + */ + private String sheetName; + + /** + * 是否发生异常 + */ + private boolean hasError = false; + + /** + * 异常信息 + */ + private Exception exception; + + /** + * 使用默认批量大小的构造函数 + * @param dataConsumer 数据处理函数(接收额外参数) + * @param extraParam 额外参数 + */ + public GenericExcelListener(BiConsumer, P> dataConsumer, P extraParam) { + this(dataConsumer, extraParam, DEFAULT_BATCH_SIZE); + } + + /** + * 自定义批量大小的构造函数 + * @param dataConsumer 数据处理函数(接收额外参数) + * @param extraParam 额外参数 + * @param batchSize 批量大小 + */ + public GenericExcelListener(BiConsumer, P> dataConsumer, P extraParam, int batchSize) { + this.dataConsumer = dataConsumer; + this.extraParam = extraParam; + this.batchSize = batchSize; + this.dataList = new ArrayList<>(batchSize); + } + + /** + * 每一条数据解析都会来调用 + * @param data 一行数据 + * @param context 分析上下文 + */ + @Override + public void invoke(T data, AnalysisContext context) { + // 如果已经发生错误,停止处理后续数据 + if (hasError) { + return; + } + + dataList.add(data); + // 达到batchSize了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM + if (dataList.size() >= batchSize) { + saveData(); + // 存储完成清理list + dataList.clear(); + } + } + + /** + * 所有数据解析完成后调用 + * @param context 分析上下文 + */ + @Override + public void doAfterAllAnalysed(AnalysisContext context) { + // 如果已经发生错误,不再处理剩余数据 + if (hasError) { + return; + } + + // 确保所有数据都能持久化 + if (!dataList.isEmpty()) { + saveData(); + dataList.clear(); + } + + if (hasError) { + logger.error("Excel导入失败,共处理: {} 条数据,成功: {} 条,失败: {} 条", + successCount + failCount, successCount, failCount); + throw new RuntimeException("Excel导入失败: " + exception.getMessage(), exception); + } else { + logger.info("Excel导入成功,共处理: {} 条数据", successCount); + } + } + + /** + * 在读取表头时调用 + * @param headMap 表头映射 + * @param context 分析上下文 + */ + @Override + public void invokeHeadMap(Map headMap, AnalysisContext context) { + this.headerList = new ArrayList<>(headMap.values()); + this.sheetName = context.readSheetHolder().getSheetName(); + logger.info("开始解析工作表: {}", sheetName); + logger.info("表头信息: {}", String.join(",", headerList)); + } + + /** + * 在异常处理时调用 + * @param exception 异常信息 + * @param context 分析上下文 + */ + @Override + public void onException(Exception exception, AnalysisContext context) { + logger.error("解析失败: {}", exception.getMessage()); + + if (exception instanceof ExcelDataConvertException) { + ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException) exception; + logger.error("第{}行,第{}列解析异常,数据为: {}", + excelDataConvertException.getRowIndex(), + excelDataConvertException.getColumnIndex(), + excelDataConvertException.getCellData()); + } + + // 标记错误状态 + this.hasError = true; + this.exception = exception; + // 手动回滚事务 + try { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } catch (Exception e) { + logger.warn("无法设置事务回滚,可能不在事务上下文中: {}", e.getMessage()); + } + } + + /** + * 保存数据 + * 移除了@Transactional注解,改为在外部方法上控制事务 + */ + private void saveData() { + if (dataList.isEmpty() || hasError) { + return; + } + + try { + logger.info("正在批量处理 {} 条数据", dataList.size()); + dataConsumer.accept(dataList, extraParam); + successCount += dataList.size(); + logger.info("成功处理 {} 条数据", dataList.size()); + } catch (Exception e) { + logger.error("数据处理失败: {}", e.getMessage()); + // 标记错误状态 + this.hasError = true; + this.exception = e; + // 手动回滚事务 + try { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } catch (Exception ex) { + logger.warn("无法设置事务回滚,可能不在事务上下文中: {}", ex.getMessage()); + } + // 抛出异常,确保事务回滚 + throw new RuntimeException("数据处理失败", e); + } + } + + /** + * 获取成功计数 + * @return 成功处理的数据条数 + */ + public int getSuccessCount() { + return successCount; + } + + /** + * 获取失败计数 + * @return 处理失败的数据条数 + */ + public int getFailCount() { + return failCount; + } + + /** + * 获取表头信息 + * @return 表头列表 + */ + public List getHeaderList() { + return headerList; + } + + /** + * 获取工作表名称 + * @return 工作表名称 + */ + public String getSheetName() { + return sheetName; + } + + /** + * 检查是否有错误发生 + * @return 是否有错误 + */ + public boolean hasError() { + return hasError; + } + + /** + * 获取异常信息 + * @return 异常信息 + */ + public Exception getException() { + return exception; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/domain/bo/BusEnterRoadImportBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/domain/bo/BusEnterRoadImportBo.java new file mode 100644 index 00000000..f7201bcd --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/domain/bo/BusEnterRoadImportBo.java @@ -0,0 +1,60 @@ +package org.dromara.land.domain.bo; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.land.domain.BusEnterRoad; + +/** + * 进场道路信息业务对象 bus_enter_road + * + * @author Lion Li + * @date 2025-07-25 + */ + +@Getter +@Setter +@EqualsAndHashCode +public class BusEnterRoadImportBo extends BaseEntity { + + + /** + * 道路名称 + */ + @ExcelProperty("道路名称") + private String roadName; + + /** + * 设计新建道路长度(米) + */ + @ExcelProperty("设计新建道路长度") + private String designCreateLength; + + /** + * 设计改扩建长度(米) + */ + @ExcelProperty("设计改扩建长度") + private String designUpdateLength; + + /** + * 需流转总长度(米) + */ + @ExcelProperty("需流转总长度") + private String changeLength; + + /** + * 需要流转总面积 + */ + @ExcelProperty("需要流转总面积") + private String changeArea; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/domain/bo/BusLandBlockImportBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/domain/bo/BusLandBlockImportBo.java new file mode 100644 index 00000000..3175fb19 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/domain/bo/BusLandBlockImportBo.java @@ -0,0 +1,52 @@ +package org.dromara.land.domain.bo; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; + + +@Getter +@Setter +@EqualsAndHashCode +public class BusLandBlockImportBo { + + + /** + * 地块名称 + */ + @ExcelProperty("地块名称") + private String landName; + + /** + * 所属村委会 + */ + @ExcelProperty("所属村委会") + private String villageCommittee; + + /** + * 设计面积(亩) + */ + @ExcelProperty("设计面积(亩)") + private String designArea; + + /** + * 地块数 + */ + @ExcelProperty("地块数") + private Long blockCount; + + /** + * 农户数 + */ + @ExcelProperty("农户数") + private Long farmerCount; + + /** + * 备注 + */ + @ExcelProperty("备注") + private String remark; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/service/IBusEnterRoadService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/service/IBusEnterRoadService.java index 3f7fc9c2..1f109e30 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/service/IBusEnterRoadService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/service/IBusEnterRoadService.java @@ -1,5 +1,7 @@ package org.dromara.land.service; +import com.baomidou.mybatisplus.extension.service.IService; +import org.dromara.land.domain.BusEnterRoad; import org.dromara.land.domain.vo.BusEnterRoadVo; import org.dromara.land.domain.bo.BusEnterRoadBo; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -14,7 +16,7 @@ import java.util.List; * @author Lion Li * @date 2025-07-25 */ -public interface IBusEnterRoadService { +public interface IBusEnterRoadService extends IService { /** * 查询进场道路信息 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/service/impl/BusEnterRoadServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/service/impl/BusEnterRoadServiceImpl.java index 54a01879..f483f919 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/service/impl/BusEnterRoadServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/service/impl/BusEnterRoadServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; @@ -31,9 +32,7 @@ import java.util.Map; */ @RequiredArgsConstructor @Service -public class BusEnterRoadServiceImpl implements IBusEnterRoadService { - - public static final String ENTER_ROAD_PREFIX = "TD-DL-"; +public class BusEnterRoadServiceImpl extends ServiceImpl implements IBusEnterRoadService { private final BusEnterRoadMapper baseMapper; @@ -123,8 +122,6 @@ public class BusEnterRoadServiceImpl implements IBusEnterRoadService { if (flag) { bo.setId(add.getId()); } - add.setRoadCode(ENTER_ROAD_PREFIX+add.getId()); - baseMapper.updateById(add); return flag; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/service/impl/BusLandBlockServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/service/impl/BusLandBlockServiceImpl.java index ea50bb43..66e84b24 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/service/impl/BusLandBlockServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/land/service/impl/BusLandBlockServiceImpl.java @@ -37,9 +37,6 @@ import java.util.stream.Collectors; @Service public class BusLandBlockServiceImpl extends ServiceImpl implements IBusLandBlockService { - - public static final String LAND_PREFIX = "TD-DK-"; - private final BusLandBlockMapper baseMapper; private final IBusLandBlockUnitProjectService iBusLandBlockUnitProjectService; @@ -120,9 +117,6 @@ public class BusLandBlockServiceImpl extends ServiceImpl