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 f119ba3d..505c2859 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 @@ -4,11 +4,15 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.farm.controller.admin.api.vo.*; import cn.iocoder.yudao.module.farm.service.baseinfo.BaseInfoService; +import cn.iocoder.yudao.module.farm.service.deviceinfo.DeviceInfoService; +import cn.iocoder.yudao.module.farm.service.farmingrecord.FarmingRecordService; import cn.iocoder.yudao.module.farm.service.productionplan.ProductionPlanService; +import cn.iocoder.yudao.module.farm.service.screendisasterdata.ScreenDisasterDataService; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.annotation.security.PermitAll; import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -28,12 +32,18 @@ import java.util.List; @Validated public class ApiController { + private final ScreenDisasterDataService screenDisasterDataService; private final ProductionPlanService productionPlanService; + private final FarmingRecordService farmingRecordService; private final BaseInfoService baseInfoService; + private final DeviceInfoService deviceInfoService; - public ApiController(ProductionPlanService productionPlanService, BaseInfoService baseInfoService) { + public ApiController(ScreenDisasterDataService screenDisasterDataService, ProductionPlanService productionPlanService, FarmingRecordService farmingRecordService, BaseInfoService baseInfoService, DeviceInfoService deviceInfoService) { + this.screenDisasterDataService = screenDisasterDataService; this.productionPlanService = productionPlanService; + this.farmingRecordService = farmingRecordService; this.baseInfoService = baseInfoService; + this.deviceInfoService = deviceInfoService; } /** @@ -70,7 +80,6 @@ public class ApiController { return baseInfoService.getBaseOverview(req); } - // TODO: 2025/9/4 地图展示信息 - 设备坐标 @PostMapping("/digital-cockpit/list") @Operation(summary = "数字驾驶舱-基地信息列表") public CommonResult> getBaseInfoList(@Valid @RequestBody FarmBaseInfoReqVO req) { @@ -92,19 +101,19 @@ public class ApiController { @PostMapping("/digital-cockpit/chart/disaster-statistics") @Operation(summary = "数字驾驶舱-灾害统计-灾害分析") public CommonResult> getDisasterStatisticsChart(@Valid @RequestBody DisasterAnalysisReqVO req) { - return productionPlanService.getDisasterStatisticsChart(req); // TODO: 2025/9/4 未实现 + return screenDisasterDataService.getDisasterStatisticsChart(req); // TODO: 2025/9/4 未实现 } @PostMapping("/digital-cockpit/chart/farming-distribution") @Operation(summary = "数字驾驶舱-灾害统计-农事分布") public CommonResult> getFarmingDistributionChart(@Valid @RequestBody FarmingDistributionReqVO req) { - return productionPlanService.getFarmingDistributionChart(req); // TODO: 2025/9/4 未实现 + return farmingRecordService.getFarmingDistributionChart(req); // TODO: 2025/9/4 未实现 } - // todo 设备监控 - - // todo 物候信息 - - // todo 设备总览 + @PostMapping("/digital-cockpit/chart/device-state") + @Operation(summary = "数字驾驶舱-设备总览") + public CommonResult getDeviceStateStatistics(@Valid @RequestBody DeviceStateReqVO req) { + return deviceInfoService.getDeviceStateStatistics(req); + } } diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/api/vo/DeviceStateReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/api/vo/DeviceStateReqVO.java new file mode 100644 index 00000000..e1c08633 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/api/vo/DeviceStateReqVO.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.farm.controller.admin.api.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @description: + * @author: binda + * @date: 2025/9/24 16:22 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class DeviceStateReqVO { + @Schema(description = "基地D") + @NotNull(message = "基地D: 不能为空") + private String baseId; + @Schema(description = "租户ID") + @NotNull(message = "租户ID: 不能为空") + private String tenantId; +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/api/vo/DeviceStateRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/api/vo/DeviceStateRespVO.java new file mode 100644 index 00000000..fa00096b --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/api/vo/DeviceStateRespVO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.farm.controller.admin.api.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @description: 设备状态 + * @author: binda + * @date: 2025/9/24 16:13 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class DeviceStateRespVO { + @Schema(description = "设备总数") + private Integer totalDevices; + @Schema(description = "在线设备总数") + private Integer totalOnlineDevices; + @Schema(description = "离线设备总数") + private Integer totalOfflineDevices; + + @Data + @AllArgsConstructor + @NoArgsConstructor + public static class DeviceType{ + @Schema(description = "设备类型名称") + private String deviceTypeName; + @Schema(description = "设备数量") + private Integer deviceCount; + } +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/api/vo/FarmingDistributionReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/api/vo/FarmingDistributionReqVO.java index 9575e7af..bdc1f7ca 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/api/vo/FarmingDistributionReqVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/api/vo/FarmingDistributionReqVO.java @@ -1,5 +1,7 @@ package cn.iocoder.yudao.module.farm.controller.admin.api.vo; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -13,5 +15,10 @@ import lombok.NoArgsConstructor; @AllArgsConstructor @NoArgsConstructor public class FarmingDistributionReqVO { - private String id; + @Schema(description = "基地D") + @NotNull(message = "基地D: 不能为空") + private String baseId; + @Schema(description = "租户ID") + @NotNull(message = "租户ID: 不能为空") + private String tenantId; } diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/api/vo/FarmingDistributionRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/api/vo/FarmingDistributionRespVO.java index aaed80d3..59aaaa48 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/api/vo/FarmingDistributionRespVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/api/vo/FarmingDistributionRespVO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.farm.controller.admin.api.vo; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -13,5 +14,14 @@ import lombok.NoArgsConstructor; @AllArgsConstructor @NoArgsConstructor public class FarmingDistributionRespVO { - private String id; + @Schema(description = "总数") + private Integer totalCount; + @Schema(description = "已逾期") + private Integer overdueStatusCount; + @Schema(description = "已完成") + private Integer completedStatusCount; + @Schema(description = "未完成") + private Integer pendingStatusCount; + @Schema(description = "执行中") + private Integer executingStatusCount; } diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/DigitalCockpit.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/DigitalCockpit.java index 27b391f8..9f06fb34 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/DigitalCockpit.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/DigitalCockpit.java @@ -2,10 +2,7 @@ package cn.iocoder.yudao.module.farm.controller.admin.digitalcockpit; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import cn.iocoder.yudao.module.farm.controller.admin.digitalcockpit.vo.BaseNameRespVO; -import cn.iocoder.yudao.module.farm.controller.admin.digitalcockpit.vo.BasePointRespVO; -import cn.iocoder.yudao.module.farm.controller.admin.digitalcockpit.vo.BaseStatisticsInfoRespVO; -import cn.iocoder.yudao.module.farm.controller.admin.digitalcockpit.vo.CompanyInfoRespVO; +import cn.iocoder.yudao.module.farm.controller.admin.digitalcockpit.vo.*; import cn.iocoder.yudao.module.farm.dal.dataobject.baseinfo.BaseInfoDO; import cn.iocoder.yudao.module.farm.dal.dataobject.companyinfo.CompanyInfoDO; import cn.iocoder.yudao.module.farm.dal.dataobject.plotinfo.PlotInfoDO; @@ -17,6 +14,7 @@ import cn.iocoder.yudao.module.farm.service.plotinfo.PlotInfoService; import cn.iocoder.yudao.module.farm.service.productionplan.ProductionPlanService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -57,7 +55,7 @@ public class DigitalCockpit { @Operation(summary = "租户信息") public CommonResult getCompanyInfo() { CompanyInfoDO companyInfo = companyInfoService.getCompanyInfo(); - return success(BeanUtils.toBean(companyInfo,CompanyInfoRespVO.class)); + return success(BeanUtils.toBean(companyInfo, CompanyInfoRespVO.class)); } @GetMapping("/base-map") @@ -85,7 +83,11 @@ public class DigitalCockpit { @Operation(summary = "基地统计信息") @Parameter(name = "baseId", description = "基地ID", required = true) public CommonResult getBaseStatisticsInfo(@RequestParam("baseId") String baseId) { - BaseStatisticsInfoRespVO res = baseInfoService.getBaseStatisticsInfo(baseId); + BaseStatisticsInfoRespVO res = new BaseStatisticsInfoRespVO(); + res.setTotalArea(0); + res.setTotalCropSpecies(0); + res.setTotalCropPlot(0); + res.setTotalPlot(0); return success(res); } @@ -96,62 +98,84 @@ public class DigitalCockpit { return success(res); } + @GetMapping("/various indexes") + @Operation(summary = "各项数据统计") + @Parameter(name = "baseId", description = "基地ID", required = true) + public CommonResult getVariousIndexes(@RequestParam("baseId") String baseId) { + // TODO: 2025/9/24 待实现 + int weatherAlertCount = 0; + int pestAlertCount = 0; + int environmentalAlertCount = 0; + int deviceAlertCount = 0; + int farmingReminderCount = 0; + return success(new VariousIndexesRespVO(weatherAlertCount, pestAlertCount, environmentalAlertCount, deviceAlertCount, farmingReminderCount)); + } + @GetMapping("/crop-statistics/type/1") @Operation(summary = "种植统计-种植分布") @Parameter(name = "baseId", description = "基地ID", required = true) @Parameter(name = "year", description = "查询条件: 年份", required = true) - public void getCropStatisticsInfo(@RequestParam("baseId") String baseId, - @RequestParam("year") String year) { - + public CommonResult> getCropStatisticsInfo(@RequestParam("baseId") String baseId, + @RequestParam("year") String year) { + List res = new ArrayList<>(); + return success(res); } @GetMapping("/crop-statistics/type/2") @Operation(summary = "种植统计-产量分布") @Parameter(name = "baseId", description = "基地ID", required = true) @Parameter(name = "year", description = "查询条件: 年份", required = true) - public void getYieldStatisticsInfo(@RequestParam("baseId") String baseId, - @RequestParam("year") String year) { + public CommonResult> getYieldStatisticsInfo(@RequestParam("baseId") String baseId, + @RequestParam("year") String year) { + List res = new ArrayList<>(); + return success(res); } @GetMapping("/crop-statistics/type/3") @Operation(summary = "种植统计-实际/预计产量对比") @Parameter(name = "baseId", description = "基地ID", required = true) @Parameter(name = "year", description = "查询条件: 年份", required = true) - public void getActualYieldStatisticsInfo(@RequestParam("baseId") String baseId, - @RequestParam("year") String year) { - + public CommonResult> getActualYieldStatisticsInfo(@RequestParam("baseId") String baseId, + @RequestParam("year") String year) { + List res = new ArrayList<>(); + return success(res); } @GetMapping("/farm-records/type/1") @Operation(summary = "农事分布") @Parameter(name = "baseId", description = "基地ID", required = true) - public void getFarmRecords(@RequestParam("baseId") String baseId) { - + public CommonResult getFarmRecords(@RequestParam("baseId") String baseId) { + FarmRecordsRespVO res = new FarmRecordsRespVO(); + res.setTotalCount(0); + res.setOverdueStatusCount(0); + res.setCompletedStatusCount(0); + res.setPendingStatusCount(0); + res.setExecutingStatusCount(0); + return success(res); } @GetMapping("/farm-records/type/2") @Operation(summary = "农事活动趋势") @Parameter(name = "baseId", description = "基地ID", required = true) - public void getFarmRecordsDirection(@RequestParam("baseId") String baseId) { - + public CommonResult getFarmRecordsDirection(@RequestParam("baseId") String baseId) { + return success("暂时不做"); } @GetMapping("/device-info/statistics") @Operation(summary = "设备统计") @Parameter(name = "baseId", description = "基地ID", required = true) - public void getDeviceInfo(@RequestParam("baseId") String baseId) { - + public CommonResult getDeviceInfo(@RequestParam("baseId") String baseId) { + DeviceInfoRespVO res = new DeviceInfoRespVO(); + return success(res); } @GetMapping("/device-info/monitor-data") @Operation(summary = "监测数据") @Parameter(name = "baseId", description = "基地ID", required = true) - public void getMonitoringData(@RequestParam("baseId") String baseId) { - - - + public CommonResult getMonitoringData(@RequestParam("baseId") String baseId) { + return success("暂时不做"); } } diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/vo/ActualYieldStatisticsRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/vo/ActualYieldStatisticsRespVO.java new file mode 100644 index 00000000..87b9f08f --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/vo/ActualYieldStatisticsRespVO.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.farm.controller.admin.digitalcockpit.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @description: + * @author: binda + * @date: 2025/9/24 18:47 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ActualYieldStatisticsRespVO { + @Schema(description = "物种名称") + private String speciesName; + @Schema(description = "实际产量") + private Integer practicalYields; + @Schema(description = "预计产量") + private Integer predictedYields; +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/vo/BaseStatisticsInfoRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/vo/BaseStatisticsInfoRespVO.java index 20ebfcba..18a4b1d9 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/vo/BaseStatisticsInfoRespVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/vo/BaseStatisticsInfoRespVO.java @@ -16,8 +16,10 @@ import lombok.NoArgsConstructor; public class BaseStatisticsInfoRespVO { @Schema(description = "总面积") private Integer totalArea; - @Schema(description = "基地数量") - private Integer totalBase; - @Schema(description = "地块数量") + @Schema(description = "在种作物") + private Integer totalCropSpecies; + @Schema(description = "在种地块") + private Integer totalCropPlot; + @Schema(description = "地块总数") private Integer totalPlot; } diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/vo/CropStatisticsRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/vo/CropStatisticsRespVO.java new file mode 100644 index 00000000..845aeac9 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/vo/CropStatisticsRespVO.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.farm.controller.admin.digitalcockpit.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @description: + * @author: binda + * @date: 2025/9/24 18:38 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CropStatisticsRespVO { + @Schema(description = "物种名称") + private String speciesName; + @Schema(description = "在种面积") + private Integer cropArea; + @Schema(description = "总面积") + private Integer totalArea; +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/vo/DeviceInfoRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/vo/DeviceInfoRespVO.java new file mode 100644 index 00000000..931d79cf --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/vo/DeviceInfoRespVO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.farm.controller.admin.digitalcockpit.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @description: + * @author: binda + * @date: 2025/9/24 18:56 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class DeviceInfoRespVO { + @Schema(description = "设备类型名称") + private String deviceTypeName; + @Schema(description = "设备数量") + private String deviceCount; +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/vo/FarmRecordsRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/vo/FarmRecordsRespVO.java new file mode 100644 index 00000000..b57f6fb4 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/vo/FarmRecordsRespVO.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.farm.controller.admin.digitalcockpit.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @description: + * @author: binda + * @date: 2025/9/24 18:51 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class FarmRecordsRespVO { + @Schema(description = "总数") + private Integer totalCount; + @Schema(description = "已逾期") + private Integer overdueStatusCount; + @Schema(description = "已完成") + private Integer completedStatusCount; + @Schema(description = "未完成") + private Integer pendingStatusCount; + @Schema(description = "执行中") + private Integer executingStatusCount; +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/vo/VariousIndexesRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/vo/VariousIndexesRespVO.java new file mode 100644 index 00000000..5e80c431 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/vo/VariousIndexesRespVO.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.farm.controller.admin.digitalcockpit.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @description: 各项指标 + * @author: binda + * @date: 2025/9/24 17:20 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class VariousIndexesRespVO { + @Schema(description = "气象预警数量") + private Integer weatherAlertCount; + @Schema(description = "病虫害告警数量") + private Integer pestAlertCount; + @Schema(description = "环境告警数量") + private Integer environmentalAlertCount; + @Schema(description = "设备告警数量") + private Integer deviceAlertCount; + @Schema(description = "农事提醒刷领") + private Integer farmingReminderCount; +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/vo/YieldStatisticsRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/vo/YieldStatisticsRespVO.java new file mode 100644 index 00000000..841dd99b --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/digitalcockpit/vo/YieldStatisticsRespVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.farm.controller.admin.digitalcockpit.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @description: + * @author: binda + * @date: 2025/9/24 18:43 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class YieldStatisticsRespVO { + @Schema(description = "物种名称") + private String speciesName; + @Schema(description = "实际产量") + private Integer practicalYields; + @Schema(description = "预计产量") + private Integer predictedYields; + @Schema(description = "总产量") + private Integer totalYield; +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/deviceinfo/DeviceInfoService.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/deviceinfo/DeviceInfoService.java index 9f0537f5..07065545 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/deviceinfo/DeviceInfoService.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/deviceinfo/DeviceInfoService.java @@ -1,5 +1,8 @@ package cn.iocoder.yudao.module.farm.service.deviceinfo; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.farm.controller.admin.api.vo.DeviceStateReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.api.vo.DeviceStateRespVO; import cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.DeviceInfoPageReqVO; import cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.DeviceInfoSaveReqVO; import cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.v2.DeviceInfoDetailV2RespVO; @@ -76,4 +79,11 @@ public interface DeviceInfoService { * @return */ DeviceStatisticsRespVO getStatisticsInfo(String baseId); + + /** + * api接口 + * 设备总览 + * @return + */ + CommonResult getDeviceStateStatistics(DeviceStateReqVO req); } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/deviceinfo/DeviceInfoServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/deviceinfo/DeviceInfoServiceImpl.java index 0474b2b5..f2d6ad02 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/deviceinfo/DeviceInfoServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/deviceinfo/DeviceInfoServiceImpl.java @@ -2,6 +2,9 @@ package cn.iocoder.yudao.module.farm.service.deviceinfo; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.farm.controller.admin.api.vo.DeviceStateReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.api.vo.DeviceStateRespVO; import cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.DeviceInfoPageReqVO; import cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.DeviceInfoSaveReqVO; import cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.v2.DeviceInfoDetailV2RespVO; @@ -160,4 +163,10 @@ public class DeviceInfoServiceImpl implements DeviceInfoService { return deviceInfoMapper.getStatisticsInfo(baseId,String.valueOf(getLoginUser().getTenantId())); } + + @Override + public CommonResult getDeviceStateStatistics(DeviceStateReqVO req) { + return null; + } + } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farmingrecord/FarmingRecordService.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farmingrecord/FarmingRecordService.java index 5b44977b..e51ede60 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farmingrecord/FarmingRecordService.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farmingrecord/FarmingRecordService.java @@ -1,5 +1,8 @@ package cn.iocoder.yudao.module.farm.service.farmingrecord; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.farm.controller.admin.api.vo.FarmingDistributionReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.api.vo.FarmingDistributionRespVO; import cn.iocoder.yudao.module.farm.controller.admin.farmingrecord.vo.FarmingRecordPageReqVO; import cn.iocoder.yudao.module.farm.controller.admin.farmingrecord.vo.FarmingRecordSaveReqVO; import cn.iocoder.yudao.module.farm.controller.admin.farmingrecord.vo.FarmingRecordCreateReqVO; @@ -82,4 +85,13 @@ public interface FarmingRecordService { * @return */ int getFarmRecordCount(String planId); + + /** + * api 接口 + * 灾害统计-农事分布 + * @param req + * @return + */ + CommonResult> getFarmingDistributionChart(FarmingDistributionReqVO req); + } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farmingrecord/FarmingRecordServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farmingrecord/FarmingRecordServiceImpl.java index 526d7c0e..deefb73d 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farmingrecord/FarmingRecordServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farmingrecord/FarmingRecordServiceImpl.java @@ -1,9 +1,12 @@ package cn.iocoder.yudao.module.farm.service.farmingrecord; import cn.hutool.core.util.IdUtil; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.security.core.LoginUser; +import cn.iocoder.yudao.module.farm.controller.admin.api.vo.FarmingDistributionReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.api.vo.FarmingDistributionRespVO; import cn.iocoder.yudao.module.farm.controller.admin.farmingrecord.vo.FarmingRecordPageReqVO; import cn.iocoder.yudao.module.farm.controller.admin.farmingrecord.vo.FarmingRecordSaveReqVO; import cn.iocoder.yudao.module.farm.controller.admin.farmingrecord.vo.FarmingRecordCreateReqVO; @@ -263,4 +266,9 @@ public class FarmingRecordServiceImpl implements FarmingRecordService { Long count = farmingRecordMapper.selectCount(x); return count.intValue(); } + + @Override + public CommonResult> getFarmingDistributionChart(FarmingDistributionReqVO req) { + return null; + } } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/productionplan/ProductionPlanService.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/productionplan/ProductionPlanService.java index 334f0de3..bd39b5cd 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/productionplan/ProductionPlanService.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/productionplan/ProductionPlanService.java @@ -195,22 +195,6 @@ public interface ProductionPlanService { */ CommonResult getPlantingPlanCompletionChart(PlantingPlanCompletionReqVO req); - /** - * api 接口 - * 灾害统计-灾害分析 - * @param req - * @return - */ - CommonResult> getDisasterStatisticsChart(DisasterAnalysisReqVO req); - - /** - * api 接口 - * 灾害统计-农事分布 - * @param req - * @return - */ - CommonResult> getFarmingDistributionChart(FarmingDistributionReqVO req); - /** * 使用地块ID 获取该地块的计划数量 * @param plotId diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/productionplan/ProductionPlanServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/productionplan/ProductionPlanServiceImpl.java index 1e4fa3a9..1af1bdcf 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/productionplan/ProductionPlanServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/productionplan/ProductionPlanServiceImpl.java @@ -403,16 +403,6 @@ public class ProductionPlanServiceImpl implements ProductionPlanService { return CommonResult.success(res); } - @Override - public CommonResult> getDisasterStatisticsChart(DisasterAnalysisReqVO req) { - return null; - } - - @Override - public CommonResult> getFarmingDistributionChart(FarmingDistributionReqVO req) { - return null; - } - @Override public int getPlanCount(String plotId) { List planDOList = productionPlanMapper.selectList("plot_id", plotId); diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/screendisasterdata/ScreenDisasterDataService.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/screendisasterdata/ScreenDisasterDataService.java index 30eedf6e..f0749a3d 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/screendisasterdata/ScreenDisasterDataService.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/screendisasterdata/ScreenDisasterDataService.java @@ -2,6 +2,9 @@ package cn.iocoder.yudao.module.farm.service.screendisasterdata; import java.util.*; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.farm.controller.admin.api.vo.DisasterAnalysisReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.api.vo.DisasterAnalysisRespVO; import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.ScreenDisasterDataPageReqVO; import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.ScreenDisasterDataSaveReqVO; import jakarta.validation.*; @@ -60,4 +63,12 @@ public interface ScreenDisasterDataService { */ PageResult getScreenDisasterDataPage(ScreenDisasterDataPageReqVO pageReqVO); + /** + * api 接口 + * 灾害统计-灾害分析 + * @param req + * @return + */ + CommonResult> getDisasterStatisticsChart(DisasterAnalysisReqVO req); + } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/screendisasterdata/ScreenDisasterDataServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/screendisasterdata/ScreenDisasterDataServiceImpl.java index fddb7513..29155fd7 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/screendisasterdata/ScreenDisasterDataServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/screendisasterdata/ScreenDisasterDataServiceImpl.java @@ -1,8 +1,11 @@ package cn.iocoder.yudao.module.farm.service.screendisasterdata; import cn.hutool.core.util.IdUtil; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.farm.controller.admin.api.vo.DisasterAnalysisReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.api.vo.DisasterAnalysisRespVO; import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.ScreenDisasterDataPageReqVO; import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.ScreenDisasterDataSaveReqVO; import cn.iocoder.yudao.module.farm.dal.dataobject.baseinfo.BaseInfoDO; @@ -96,4 +99,9 @@ public class ScreenDisasterDataServiceImpl implements ScreenDisasterDataService return res; } + @Override + public CommonResult> getDisasterStatisticsChart(DisasterAnalysisReqVO req) { + return null; + } + } \ No newline at end of file