From 0bfadba3c4ec978544bfee2dbb09418f2436c28f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=BE=E5=AF=8C=E6=96=8C?= Date: Fri, 5 Sep 2025 21:05:47 +0800 Subject: [PATCH] =?UTF-8?q?fix=20(farm):=20API=E6=8E=A5=E5=8F=A3,=E5=86=9C?= =?UTF-8?q?=E4=BA=8B=E5=90=8D=E7=A7=B0,=E5=86=9C=E4=BA=8B=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 接口方法改为POST - 农事类型,名称 查重 --- .../controller/admin/api/ApiController.java | 18 +++++++++--------- .../module/farm/enums/ErrorCodeConstants.java | 6 ++++++ .../disasterdata/DisasterDataServiceImpl.java | 3 ++- .../inputlibrary/InputLibraryServiceImpl.java | 2 +- .../SpeciesLibraryServiceImpl.java | 14 +++++++++++++- .../WeatherDisasterLibraryServiceImpl.java | 8 +++++++- 6 files changed, 38 insertions(+), 13 deletions(-) diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/api/ApiController.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/api/ApiController.java index eac98790..5cb21a06 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/api/ApiController.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/api/ApiController.java @@ -9,7 +9,7 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -43,7 +43,7 @@ public class ApiController { * @param req 根据租户id、开始时间、结束时间 ,已完成状态 * @return 种植计划id、种植计划名称 */ - @GetMapping("/production-plan/page") + @PostMapping("/production-plan/page") @Operation(summary = "生产计划-分页") public CommonResult> getPageForFarmProductionPlan(@Valid @RequestBody FarmProductionPlanReqVO req) { return productionPlanService.getPageForFarmProductionPlan(req); @@ -57,13 +57,13 @@ public class ApiController { * @param req 根据租户id、种植计划id * @return 种植计划id、种植计划名称、种植开始时间、种植结束时间、计划所属的基地图片、基地简介、基地中心坐标点 */ - @GetMapping("/production-plan/get") + @PostMapping("/production-plan/get") @Operation(summary = "生产计划-详情") public CommonResult getDetailForFarmProductionPlan(@Valid @RequestBody FarmProductionPlanDetailReqVO req) { return productionPlanService.getDetailForFarmProductionPlan(req); } - @GetMapping("/digital-cockpit/get") + @PostMapping("/digital-cockpit/get") @Operation(summary = "数字驾驶舱-基地概要信息") public CommonResult getBaseOverview(@Valid @RequestBody FarmBaseOverviewReqVO req) { return baseInfoService.getBaseOverview(req); @@ -71,31 +71,31 @@ public class ApiController { // TODO: 2025/9/4 地图展示信息 - 设备坐标 - @GetMapping("/digital-cockpit/list") + @PostMapping("/digital-cockpit/list") @Operation(summary = "数字驾驶舱-基地信息列表") public CommonResult> getBaseInfoList(@Valid @RequestBody FarmBaseInfoReqVO req) { return baseInfoService.getBaseInfoList(req); } - @GetMapping("/digital-cockpit/chart/yield-comparison") + @PostMapping("/digital-cockpit/chart/yield-comparison") @Operation(summary = "数字驾驶舱-生产数据-产量对比") public CommonResult> getYieldComparisonChart(@Valid @RequestBody YieldComparisonChartReqVO req) { return productionPlanService.getYieldComparisonChart(req); } - @GetMapping("/digital-cockpit/chart/planting-plan-completion") + @PostMapping("/digital-cockpit/chart/planting-plan-completion") @Operation(summary = "数字驾驶舱-生产数据-种植计划完成情况") public CommonResult> getPlantingPlanCompletionChart(@Valid @RequestBody PlantingPlanCompletionReqVO req) { return productionPlanService.getPlantingPlanCompletionChart(req); } - @GetMapping("/digital-cockpit/chart/disaster-statistics") + @PostMapping("/digital-cockpit/chart/disaster-statistics") @Operation(summary = "数字驾驶舱-灾害统计-灾害分析") public CommonResult> getDisasterStatisticsChart(@Valid @RequestBody DisasterAnalysisReqVO req) { return productionPlanService.getDisasterStatisticsChart(req); // TODO: 2025/9/4 未实现 } - @GetMapping("/digital-cockpit/chart/farming-distribution") + @PostMapping("/digital-cockpit/chart/farming-distribution") @Operation(summary = "数字驾驶舱-灾害统计-农事分布") public CommonResult> getFarmingDistributionChart(@Valid @RequestBody FarmingDistributionReqVO req) { return productionPlanService.getFarmingDistributionChart(req); // TODO: 2025/9/4 未实现 diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/enums/ErrorCodeConstants.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/enums/ErrorCodeConstants.java index 06d654bc..e58f82e6 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/enums/ErrorCodeConstants.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/enums/ErrorCodeConstants.java @@ -123,4 +123,10 @@ public interface ErrorCodeConstants { // ========== MQTT连接配置 1_050_038_000 ========== ErrorCode MQTT_CONNECTION_NOT_EXISTS = new ErrorCode(1_050_038_000, "MQTT连接配置不存在"); + + // ========== 一般灾害名称重复 1_050_039_000 ========== + ErrorCode GENERAL_DISASTER_NAME_NON_UNIQUE_ERROR = new ErrorCode(1_050_039_000, "一般灾害名称重复"); + ErrorCode WEATHER_DISASTER_NAME_NON_UNIQUE_ERROR = new ErrorCode(1_050_040_000, "气象灾害名称重复"); + + } \ 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 dbb11049..ce9e0e53 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 @@ -29,6 +29,7 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti import static cn.iocoder.yudao.module.farm.enums.CommonConstants.DICT_TYPE_CODE_1; import static cn.iocoder.yudao.module.farm.enums.CommonConstants.DICT_TYPE_CODE_2; import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.DISASTER_DATA_NOT_EXISTS; +import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.GENERAL_DISASTER_NAME_NON_UNIQUE_ERROR; /** * 灾害数据 Service 实现类 @@ -52,7 +53,7 @@ public class DisasterDataServiceImpl implements DisasterDataService { reqVO.setName(createReqVO.getName()); DisasterDataDO obj = disasterDataMapper.selectOne(reqVO); if (ObjectUtils.isNotEmpty(obj)) { - return "灾害名称重复"; + throw exception(GENERAL_DISASTER_NAME_NON_UNIQUE_ERROR); } // 插入 DisasterDataDO disasterData = BeanUtils.toBean(createReqVO, DisasterDataDO.class); diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputLibraryServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputLibraryServiceImpl.java index f5b6c65c..28957821 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputLibraryServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputLibraryServiceImpl.java @@ -97,7 +97,7 @@ public class InputLibraryServiceImpl implements InputLibraryService { InputLibraryDO updateObj = BeanUtils.toBean(updateReqVO, InputLibraryDO.class); inputLibraryMapper.updateById(updateObj); // 同步 - this.syncUpdateDict(updateObj.getId()); +// this.syncUpdateDict(updateObj.getId()); } private void syncUpdateDict(String id) { diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/specieslibrary/SpeciesLibraryServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/specieslibrary/SpeciesLibraryServiceImpl.java index 44580c50..ff16769d 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/specieslibrary/SpeciesLibraryServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/specieslibrary/SpeciesLibraryServiceImpl.java @@ -107,7 +107,19 @@ public class SpeciesLibraryServiceImpl implements SpeciesLibraryService { @Override public void updateSpeciesLibrary(SpeciesLibrarySaveReqVO updateReqVO) { // 校验存在 - validateSpeciesLibraryExists(updateReqVO.getId()); + SpeciesLibraryDO obj = speciesLibraryMapper.selectById(updateReqVO.getId()); + if (obj == null) { + throw exception(SPECIES_LIBRARY_NOT_EXISTS); + } + + // tips: 仅修改使用状态时 + if (obj.getUseStatus() != updateReqVO.getUseStatus()) { + SpeciesLibraryDO updateObj = new SpeciesLibraryDO(); + updateObj.setId(updateReqVO.getId()); + updateObj.setUseStatus(updateReqVO.getUseStatus()); + speciesLibraryMapper.updateById(updateObj); + return; + } // 更新 SpeciesLibraryDO updateObj = BeanUtils.toBean(updateReqVO, SpeciesLibraryDO.class); diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/weatherdisasterlibrary/WeatherDisasterLibraryServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/weatherdisasterlibrary/WeatherDisasterLibraryServiceImpl.java index bb0448b4..cb500bcb 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/weatherdisasterlibrary/WeatherDisasterLibraryServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/weatherdisasterlibrary/WeatherDisasterLibraryServiceImpl.java @@ -9,6 +9,7 @@ import cn.iocoder.yudao.module.farm.controller.admin.weatherdisasterlibrary.vo.W import cn.iocoder.yudao.module.farm.dal.dataobject.weatherdisasterlibrary.WeatherDisasterLibraryDO; import cn.iocoder.yudao.module.farm.dal.mysql.weatherdisasterlibrary.WeatherDisasterLibraryMapper; import jakarta.annotation.Resource; +import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -16,7 +17,7 @@ import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser; -import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.WEATHER_DISASTER_LIBRARY_NOT_EXISTS; +import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.*; /** * 气象灾害库维护 Service 实现类 @@ -33,6 +34,11 @@ public class WeatherDisasterLibraryServiceImpl implements WeatherDisasterLibrary @Override public String createWeatherDisasterLibrary(WeatherDisasterLibrarySaveReqVO createReqVO) { LoginUser user = getLoginUser(); + // 名称查重 + WeatherDisasterLibraryDO obj = weatherDisasterLibraryMapper.selectOne(WeatherDisasterLibraryDO::getName,createReqVO.getName()); + if (ObjectUtils.isNotEmpty(obj)) { + throw exception(WEATHER_DISASTER_NAME_NON_UNIQUE_ERROR); + } // 插入 WeatherDisasterLibraryDO weatherDisasterLibrary = BeanUtils.toBean(createReqVO, WeatherDisasterLibraryDO.class); weatherDisasterLibrary.setId(IdUtil.fastUUID());