From 6eebfe82f41d7b0a526f1af1f9be030c20b03463 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=BE=E5=AF=8C=E6=96=8C?= Date: Wed, 20 Aug 2025 17:37:27 +0800 Subject: [PATCH] =?UTF-8?q?feat=20(farm):=20=E4=B8=9A=E5=8A=A1=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 灾害库,气象灾害库 --- .../disasterdata/DisasterDataController.java | 110 ++++++------ .../vo/DisasterDataPageReqVO.java | 39 ++--- .../disasterdata/vo/DisasterDataRespVO.java | 31 +--- .../disasterdata/DisasterDataDO.java | 30 +--- .../disasterdata/DisasterDataMapper.java | 19 ++- .../disasterdata/DisasterDataServiceImpl.java | 36 ++-- .../service/sysDict/SysDictServiceImpl.java | 4 +- .../disasterdata/DisasterDataMapper.xml | 161 +++++++++++++++--- 8 files changed, 245 insertions(+), 185 deletions(-) diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/DisasterDataController.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/DisasterDataController.java index 7c54ff34..5d99e0b6 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/DisasterDataController.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/DisasterDataController.java @@ -42,60 +42,60 @@ public class DisasterDataController { @Resource private DisasterDataService disasterDataService; - @PostMapping("/create") - @Operation(summary = "创建灾害数据") - public CommonResult createDisasterData(@Valid @RequestBody DisasterDataSaveReqVO createReqVO) { - return success(disasterDataService.createDisasterData(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "更新灾害数据") - public CommonResult updateDisasterData(@Valid @RequestBody DisasterDataSaveReqVO updateReqVO) { - disasterDataService.updateDisasterData(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除灾害数据") - @Parameter(name = "id", description = "编号", required = true) - public CommonResult deleteDisasterData(@RequestParam("id") String id) { - disasterDataService.deleteDisasterData(id); - return success(true); - } - - @DeleteMapping("/delete-list") - @Parameter(name = "ids", description = "编号", required = true) - @Operation(summary = "批量删除灾害数据") - public CommonResult deleteDisasterDataList(@RequestParam("ids") List ids) { - disasterDataService.deleteDisasterDataListByIds(ids); - return success(true); - } - - @GetMapping("/get") - @Operation(summary = "获得灾害数据") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - public CommonResult getDisasterData(@RequestParam("id") String id) { - DisasterDataDO disasterData = disasterDataService.getDisasterData(id); - return success(BeanUtils.toBean(disasterData, DisasterDataRespVO.class)); - } - - @GetMapping("/page") - @Operation(summary = "获得灾害数据分页") - public CommonResult> getDisasterDataPage(@Valid DisasterDataPageReqVO pageReqVO) { - PageResult pageResult = disasterDataService.getDisasterDataPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, DisasterDataRespVO.class)); - } - - @GetMapping("/export-excel") - @Operation(summary = "导出灾害数据 Excel") - @ApiAccessLog(operateType = EXPORT) - public void exportDisasterDataExcel(@Valid DisasterDataPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { - pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = disasterDataService.getDisasterDataPage(pageReqVO).getList(); - // 导出 Excel - ExcelUtils.write(response, "灾害数据.xls", "数据", DisasterDataRespVO.class, - BeanUtils.toBean(list, DisasterDataRespVO.class)); - } +// @PostMapping("/create") +// @Operation(summary = "创建灾害数据") +// public CommonResult createDisasterData(@Valid @RequestBody DisasterDataSaveReqVO createReqVO) { +// return success(disasterDataService.createDisasterData(createReqVO)); +// } +// +// @PutMapping("/update") +// @Operation(summary = "更新灾害数据") +// public CommonResult updateDisasterData(@Valid @RequestBody DisasterDataSaveReqVO updateReqVO) { +// disasterDataService.updateDisasterData(updateReqVO); +// return success(true); +// } +// +// @DeleteMapping("/delete") +// @Operation(summary = "删除灾害数据") +// @Parameter(name = "id", description = "编号", required = true) +// public CommonResult deleteDisasterData(@RequestParam("id") String id) { +// disasterDataService.deleteDisasterData(id); +// return success(true); +// } +// +// @DeleteMapping("/delete-list") +// @Parameter(name = "ids", description = "编号", required = true) +// @Operation(summary = "批量删除灾害数据") +// public CommonResult deleteDisasterDataList(@RequestParam("ids") List ids) { +// disasterDataService.deleteDisasterDataListByIds(ids); +// return success(true); +// } +// +// @GetMapping("/get") +// @Operation(summary = "获得灾害数据") +// @Parameter(name = "id", description = "编号", required = true, example = "1024") +// public CommonResult getDisasterData(@RequestParam("id") String id) { +// DisasterDataDO disasterData = disasterDataService.getDisasterData(id); +// return success(BeanUtils.toBean(disasterData, DisasterDataRespVO.class)); +// } +// +// @GetMapping("/page") +// @Operation(summary = "获得灾害数据分页") +// public CommonResult> getDisasterDataPage(@Valid DisasterDataPageReqVO pageReqVO) { +// PageResult pageResult = disasterDataService.getDisasterDataPage(pageReqVO); +// return success(BeanUtils.toBean(pageResult, DisasterDataRespVO.class)); +// } +// +// @GetMapping("/export-excel") +// @Operation(summary = "导出灾害数据 Excel") +// @ApiAccessLog(operateType = EXPORT) +// public void exportDisasterDataExcel(@Valid DisasterDataPageReqVO pageReqVO, +// HttpServletResponse response) throws IOException { +// pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); +// List list = disasterDataService.getDisasterDataPage(pageReqVO).getList(); +// // 导出 Excel +// ExcelUtils.write(response, "灾害数据.xls", "数据", DisasterDataRespVO.class, +// BeanUtils.toBean(list, DisasterDataRespVO.class)); +// } } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataPageReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataPageReqVO.java index f5648477..fe3e2aa4 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataPageReqVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataPageReqVO.java @@ -11,44 +11,25 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @Schema(description = "管理后台 - 灾害数据分页 Request VO") @Data -public class DisasterDataPageReqVO extends PageParam { +public class DisasterDataPageReqVO { + + private Integer pageNo; + private Integer pageSize; + private Integer offset; @Schema(description = "灾害名称", example = "赵六") private String name; - @Schema(description = "灾害类型1=环境,2=病害,3=虫害,4=草害") + @Schema(description = "灾害类型2=病害,1=虫害,3=草害") private Integer category; @Schema(description = "灾害类型 1:普通; 2:气象灾害") private Integer type; - @Schema(description = "发生月份") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private String[] disasterTime; + @Schema(description = "使用状态 (1:启用;0:停用)") + private Integer useStatus; - @Schema(description = "发生次数", example = "17530") - private Integer disasterCount; - - @Schema(description = "创建时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] createTime; - - @Schema(description = "基础id", example = "3322") - private String foundationId; - - @Schema(description = "基地id", example = "21300") - private String baseId; - - @Schema(description = "基地名称", example = "芋艿") - private String baseName; - - @Schema(description = "地块ID", example = "21827") - private String plotId; - - @Schema(description = "地块", example = "王五") - private String plotName; - - @Schema(description = "租户id", example = "20422") - private String tenantId; + @Schema(description = "删除状态 (1:已删除;0:未删除)") + private Integer deleted; } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataRespVO.java index fa96265b..cb44554b 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataRespVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataRespVO.java @@ -26,10 +26,13 @@ public class DisasterDataRespVO { @Schema(description = "灾害类型 1:普通; 2:气象灾害") private Integer type; + @Schema(description = "灾害描述") private String disasterDescription; + @Schema(description = "防治建议") private String treatmentSuggestion; + @Schema(description = "图片地址") private String imgUrl; @@ -57,30 +60,10 @@ public class DisasterDataRespVO { @ExcelProperty("更新时间") private LocalDateTime updateTime; + @Schema(description = "删除状态 (1:已删除;2:未删除)") + private Integer deleted; - - @Schema(description = "基础id", example = "3322") - @ExcelProperty("基础id") - private String foundationId; - - @Schema(description = "基地id", example = "21300") - @ExcelProperty("基地id") - private String baseId; - - @Schema(description = "基地名称", example = "芋艿") - @ExcelProperty("基地名称") - private String baseName; - - @Schema(description = "地块ID", example = "21827") - @ExcelProperty("地块ID") - private String plotId; - - @Schema(description = "地块", example = "王五") - @ExcelProperty("地块") - private String plotName; - - @Schema(description = "租户id", example = "20422") - @ExcelProperty("租户id") - private String tenantId; + @Schema(description = "使用状态 (1 启用;2:停用)") + private Integer useStatus; } diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/disasterdata/DisasterDataDO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/disasterdata/DisasterDataDO.java index 661c37f9..96eab3f5 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/disasterdata/DisasterDataDO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/disasterdata/DisasterDataDO.java @@ -14,8 +14,6 @@ import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; * * @author 芋道源码 */ -@TableName("farm_disaster_data") -@KeySequence("farm_disaster_data_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) @@ -59,36 +57,12 @@ public class DisasterDataDO extends BaseDO { */ private Integer disasterCount; /** - * 发生月份 */ private String disasterTime; - private String creator; - - private LocalDateTime createTime; - - - /** - * 基础id + * 删除状态 (1:已删除;2:未删除) */ - private String foundationId; - /** - * 基地id - */ - private String baseId; - /** - * 基地名称 - */ - private String baseName; - /** - * 地块ID - */ - private String plotId; - /** - * 地块 - */ - private String plotName; + private Integer useStatus; - private String tenantId; } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/disasterdata/DisasterDataMapper.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/disasterdata/DisasterDataMapper.java index 4bb83241..1d5675a6 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/disasterdata/DisasterDataMapper.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/disasterdata/DisasterDataMapper.java @@ -16,19 +16,20 @@ import java.util.List; * @author 芋道源码 */ @Mapper -public interface DisasterDataMapper extends BaseMapperX { - - default PageResult selectPage(DisasterDataPageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() - .likeIfPresent(DisasterDataDO::getName, reqVO.getName()) - .eqIfPresent(DisasterDataDO::getCategory, reqVO.getCategory()) - .eqIfPresent(DisasterDataDO::getType, reqVO.getType()) - ); - } +public interface DisasterDataMapper { List selectDisasterDataPage(@Param("req") DisasterDataPageReqVO reqVO); long selectDisasterDataCount(@Param("req") DisasterDataPageReqVO reqVO); + DisasterDataDO selectById(String id); + + void deleteByIds(List ids); + + void deleteById(String id); + + void updateById(DisasterDataDO updateObj); + + void insert(DisasterDataDO disasterData); } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/disasterdata/DisasterDataServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/disasterdata/DisasterDataServiceImpl.java index fee8cda7..028f172f 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/disasterdata/DisasterDataServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/disasterdata/DisasterDataServiceImpl.java @@ -1,17 +1,14 @@ package cn.iocoder.yudao.module.farm.service.disasterdata; -import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; import cn.iocoder.yudao.module.farm.controller.admin.disasterdata.vo.DisasterDataPageReqVO; import cn.iocoder.yudao.module.farm.controller.admin.disasterdata.vo.DisasterDataSaveReqVO; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; -import org.springframework.transaction.annotation.Transactional; import cn.iocoder.yudao.module.farm.dal.dataobject.disasterdata.DisasterDataDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.security.core.LoginUser; @@ -20,8 +17,6 @@ import cn.iocoder.yudao.module.farm.dal.mysql.disasterdata.DisasterDataMapper; import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.diffList; import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser; import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.DISASTER_DATA_NOT_EXISTS; @@ -43,7 +38,6 @@ public class DisasterDataServiceImpl implements DisasterDataService { // 插入 DisasterDataDO disasterData = BeanUtils.toBean(createReqVO, DisasterDataDO.class); disasterData.setId(IdUtil.fastUUID()); - disasterData.setTenantId(String.valueOf(user.getTenantId())); disasterDataMapper.insert(disasterData); // 返回 @@ -64,16 +58,19 @@ public class DisasterDataServiceImpl implements DisasterDataService { // 校验存在 validateDisasterDataExists(id); // 删除 - disasterDataMapper.deleteById(id); + DisasterDataDO aDo = new DisasterDataDO(); + aDo.setId(id); + aDo.setDeleted(true); + disasterDataMapper.updateById(aDo); } @Override - public void deleteDisasterDataListByIds(List ids) { + public void deleteDisasterDataListByIds(List ids) { // 删除 disasterDataMapper.deleteByIds(ids); - } + } -private void validateDisasterDataExists(String id) { + private void validateDisasterDataExists(String id) { if (disasterDataMapper.selectById(id) == null) { throw exception(DISASTER_DATA_NOT_EXISTS); } @@ -85,15 +82,20 @@ private void validateDisasterDataExists(String id) { } @Override - public PageResult getDisasterDataPage(DisasterDataPageReqVO pageReqVO) { + public PageResult getDisasterDataPage(DisasterDataPageReqVO reqVO) { - List list = disasterDataMapper.selectDisasterDataPage(pageReqVO); - long count = disasterDataMapper.selectDisasterDataCount(pageReqVO); - PageResult res = new PageResult<>(); - res.setList(list); - res.setTotal(count); + Integer pageNo = reqVO.getPageNo(); + Integer pageSize = reqVO.getPageSize(); - return res; + // 计算偏移量 + int offset = (pageNo - 1) * pageSize; + reqVO.setOffset(offset); + List list = disasterDataMapper.selectDisasterDataPage(reqVO); + + long total = disasterDataMapper.selectDisasterDataCount(reqVO); +// long totalPages = (long) Math.ceil((double) total / pageSize); + + return new PageResult<>(list,total); } } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/sysDict/SysDictServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/sysDict/SysDictServiceImpl.java index 24396de6..225fc8d7 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/sysDict/SysDictServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/sysDict/SysDictServiceImpl.java @@ -64,9 +64,9 @@ public class SysDictServiceImpl implements SysDictService{ List list = sysDictMapper.selectDictByPage(reqVO); Long total = sysDictMapper.countDictByCondition(reqVO); - long totalPages = (long) Math.ceil((double) total / pageSize); +// long totalPages = (long) Math.ceil((double) total / pageSize); - return new PageResult<>(list,totalPages); + return new PageResult<>(list,total); } private void validateExists(String id) { diff --git a/yudao-module-farm/src/main/resources/mapper/disasterdata/DisasterDataMapper.xml b/yudao-module-farm/src/main/resources/mapper/disasterdata/DisasterDataMapper.xml index aa3b3754..bb726831 100644 --- a/yudao-module-farm/src/main/resources/mapper/disasterdata/DisasterDataMapper.xml +++ b/yudao-module-farm/src/main/resources/mapper/disasterdata/DisasterDataMapper.xml @@ -20,40 +20,52 @@ + - - - - - - - - + - + SELECT + FROM farm_disaster_data - WHERE deleted = 0 - - AND name LIKE CONCAT('%', #{req.name}, '%') - - - AND category = #{req.category} - - - AND type = #{req.type} - - LIMIT #{req.pageSize} OFFSET #{req.pageNo} + + LIMIT #{req.offset}, #{req.pageSize} + + + WHERE deleted = 0 AND name LIKE CONCAT('%', #{req.name}, '%') @@ -64,6 +76,113 @@ AND type = #{req.type} + + AND deleted = #{req.deleted} + + + + + + + + + + + + + + + UPDATE farm_disaster_data + + + name = #{name}, + + + category = #{category}, + + + type = #{type}, + + + disaster_description = #{disasterDescription}, + + + treatment_suggestion = #{treatmentSuggestion}, + + + img_url = #{imgUrl}, + + + disaster_count = #{disasterCount}, + + + disaster_time = #{disasterTime}, + + + creator = #{creator}, + + + updater = #{updater}, + + + use_status = #{useStatus}, + + + deleted = #{deleted}, + + update_time = NOW() + + WHERE id = #{id} + AND deleted = 0 + + + + + INSERT INTO farm_disaster_data + + id, + name, + category, + type, + disaster_description, + treatment_suggestion, + img_url, + disaster_count, + disaster_time, + creator, + create_time, + updater, + update_time, + use_status, + deleted + + + #{id}, + #{name}, + #{category}, + #{type}, + #{disasterDescription}, + #{treatmentSuggestion}, + #{imgUrl}, + #{disasterCount}, + #{disasterTime}, + #{creator}, + #{createTime}, + #{updater}, + #{updateTime}, + #{useStatus}, + #{deleted} + + + + \ No newline at end of file