fix (farm): 大屏数据维护

- 品种数据 bug
- 灾害数据 bug
This commit is contained in:
达富斌
2025-09-24 19:14:51 +08:00
parent effd58ae9e
commit 78c3631435
21 changed files with 352 additions and 65 deletions

View File

@@ -4,11 +4,15 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.farm.controller.admin.api.vo.*; 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.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.productionplan.ProductionPlanService;
import cn.iocoder.yudao.module.farm.service.screendisasterdata.ScreenDisasterDataService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.security.PermitAll;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@@ -28,12 +32,18 @@ import java.util.List;
@Validated @Validated
public class ApiController { public class ApiController {
private final ScreenDisasterDataService screenDisasterDataService;
private final ProductionPlanService productionPlanService; private final ProductionPlanService productionPlanService;
private final FarmingRecordService farmingRecordService;
private final BaseInfoService baseInfoService; 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.productionPlanService = productionPlanService;
this.farmingRecordService = farmingRecordService;
this.baseInfoService = baseInfoService; this.baseInfoService = baseInfoService;
this.deviceInfoService = deviceInfoService;
} }
/** /**
@@ -70,7 +80,6 @@ public class ApiController {
return baseInfoService.getBaseOverview(req); return baseInfoService.getBaseOverview(req);
} }
// TODO: 2025/9/4 地图展示信息 - 设备坐标
@PostMapping("/digital-cockpit/list") @PostMapping("/digital-cockpit/list")
@Operation(summary = "数字驾驶舱-基地信息列表") @Operation(summary = "数字驾驶舱-基地信息列表")
public CommonResult<List<FarmBaseInfoRespVO>> getBaseInfoList(@Valid @RequestBody FarmBaseInfoReqVO req) { public CommonResult<List<FarmBaseInfoRespVO>> getBaseInfoList(@Valid @RequestBody FarmBaseInfoReqVO req) {
@@ -92,19 +101,19 @@ public class ApiController {
@PostMapping("/digital-cockpit/chart/disaster-statistics") @PostMapping("/digital-cockpit/chart/disaster-statistics")
@Operation(summary = "数字驾驶舱-灾害统计-灾害分析") @Operation(summary = "数字驾驶舱-灾害统计-灾害分析")
public CommonResult<List<DisasterAnalysisRespVO>> getDisasterStatisticsChart(@Valid @RequestBody DisasterAnalysisReqVO req) { public CommonResult<List<DisasterAnalysisRespVO>> 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") @PostMapping("/digital-cockpit/chart/farming-distribution")
@Operation(summary = "数字驾驶舱-灾害统计-农事分布") @Operation(summary = "数字驾驶舱-灾害统计-农事分布")
public CommonResult<List<FarmingDistributionRespVO>> getFarmingDistributionChart(@Valid @RequestBody FarmingDistributionReqVO req) { public CommonResult<List<FarmingDistributionRespVO>> getFarmingDistributionChart(@Valid @RequestBody FarmingDistributionReqVO req) {
return productionPlanService.getFarmingDistributionChart(req); // TODO: 2025/9/4 未实现 return farmingRecordService.getFarmingDistributionChart(req); // TODO: 2025/9/4 未实现
} }
// todo 设备监控 @PostMapping("/digital-cockpit/chart/device-state")
@Operation(summary = "数字驾驶舱-设备总览")
// todo 物候信息 public CommonResult<DeviceStateRespVO> getDeviceStateStatistics(@Valid @RequestBody DeviceStateReqVO req) {
return deviceInfoService.getDeviceStateStatistics(req);
// todo 设备总览 }
} }

View File

@@ -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;
}

View File

@@ -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;
}
}

View File

@@ -1,5 +1,7 @@
package cn.iocoder.yudao.module.farm.controller.admin.api.vo; 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.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -13,5 +15,10 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
public class FarmingDistributionReqVO { public class FarmingDistributionReqVO {
private String id; @Schema(description = "基地D")
@NotNull(message = "基地D: 不能为空")
private String baseId;
@Schema(description = "租户ID")
@NotNull(message = "租户ID: 不能为空")
private String tenantId;
} }

View File

@@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.farm.controller.admin.api.vo; package cn.iocoder.yudao.module.farm.controller.admin.api.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -13,5 +14,14 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
public class FarmingDistributionRespVO { 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;
} }

View File

@@ -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.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 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.*;
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.dal.dataobject.baseinfo.BaseInfoDO; 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.companyinfo.CompanyInfoDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.plotinfo.PlotInfoDO; 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 cn.iocoder.yudao.module.farm.service.productionplan.ProductionPlanService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@@ -85,7 +83,11 @@ public class DigitalCockpit {
@Operation(summary = "基地统计信息") @Operation(summary = "基地统计信息")
@Parameter(name = "baseId", description = "基地ID", required = true) @Parameter(name = "baseId", description = "基地ID", required = true)
public CommonResult<BaseStatisticsInfoRespVO> getBaseStatisticsInfo(@RequestParam("baseId") String baseId) { public CommonResult<BaseStatisticsInfoRespVO> 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); return success(res);
} }
@@ -96,62 +98,84 @@ public class DigitalCockpit {
return success(res); return success(res);
} }
@GetMapping("/various indexes")
@Operation(summary = "各项数据统计")
@Parameter(name = "baseId", description = "基地ID", required = true)
public CommonResult<VariousIndexesRespVO> 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") @GetMapping("/crop-statistics/type/1")
@Operation(summary = "种植统计-种植分布") @Operation(summary = "种植统计-种植分布")
@Parameter(name = "baseId", description = "基地ID", required = true) @Parameter(name = "baseId", description = "基地ID", required = true)
@Parameter(name = "year", description = "查询条件: 年份", required = true) @Parameter(name = "year", description = "查询条件: 年份", required = true)
public void getCropStatisticsInfo(@RequestParam("baseId") String baseId, public CommonResult<List<CropStatisticsRespVO>> getCropStatisticsInfo(@RequestParam("baseId") String baseId,
@RequestParam("year") String year) { @RequestParam("year") String year) {
List<CropStatisticsRespVO> res = new ArrayList<>();
return success(res);
} }
@GetMapping("/crop-statistics/type/2") @GetMapping("/crop-statistics/type/2")
@Operation(summary = "种植统计-产量分布") @Operation(summary = "种植统计-产量分布")
@Parameter(name = "baseId", description = "基地ID", required = true) @Parameter(name = "baseId", description = "基地ID", required = true)
@Parameter(name = "year", description = "查询条件: 年份", required = true) @Parameter(name = "year", description = "查询条件: 年份", required = true)
public void getYieldStatisticsInfo(@RequestParam("baseId") String baseId, public CommonResult<List<YieldStatisticsRespVO>> getYieldStatisticsInfo(@RequestParam("baseId") String baseId,
@RequestParam("year") String year) { @RequestParam("year") String year) {
List<YieldStatisticsRespVO> res = new ArrayList<>();
return success(res);
} }
@GetMapping("/crop-statistics/type/3") @GetMapping("/crop-statistics/type/3")
@Operation(summary = "种植统计-实际/预计产量对比") @Operation(summary = "种植统计-实际/预计产量对比")
@Parameter(name = "baseId", description = "基地ID", required = true) @Parameter(name = "baseId", description = "基地ID", required = true)
@Parameter(name = "year", description = "查询条件: 年份", required = true) @Parameter(name = "year", description = "查询条件: 年份", required = true)
public void getActualYieldStatisticsInfo(@RequestParam("baseId") String baseId, public CommonResult<List<ActualYieldStatisticsRespVO>> getActualYieldStatisticsInfo(@RequestParam("baseId") String baseId,
@RequestParam("year") String year) { @RequestParam("year") String year) {
List<ActualYieldStatisticsRespVO> res = new ArrayList<>();
return success(res);
} }
@GetMapping("/farm-records/type/1") @GetMapping("/farm-records/type/1")
@Operation(summary = "农事分布") @Operation(summary = "农事分布")
@Parameter(name = "baseId", description = "基地ID", required = true) @Parameter(name = "baseId", description = "基地ID", required = true)
public void getFarmRecords(@RequestParam("baseId") String baseId) { public CommonResult<FarmRecordsRespVO> 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") @GetMapping("/farm-records/type/2")
@Operation(summary = "农事活动趋势") @Operation(summary = "农事活动趋势")
@Parameter(name = "baseId", description = "基地ID", required = true) @Parameter(name = "baseId", description = "基地ID", required = true)
public void getFarmRecordsDirection(@RequestParam("baseId") String baseId) { public CommonResult<String> getFarmRecordsDirection(@RequestParam("baseId") String baseId) {
return success("暂时不做");
} }
@GetMapping("/device-info/statistics") @GetMapping("/device-info/statistics")
@Operation(summary = "设备统计") @Operation(summary = "设备统计")
@Parameter(name = "baseId", description = "基地ID", required = true) @Parameter(name = "baseId", description = "基地ID", required = true)
public void getDeviceInfo(@RequestParam("baseId") String baseId) { public CommonResult<DeviceInfoRespVO> getDeviceInfo(@RequestParam("baseId") String baseId) {
DeviceInfoRespVO res = new DeviceInfoRespVO();
return success(res);
} }
@GetMapping("/device-info/monitor-data") @GetMapping("/device-info/monitor-data")
@Operation(summary = "监测数据") @Operation(summary = "监测数据")
@Parameter(name = "baseId", description = "基地ID", required = true) @Parameter(name = "baseId", description = "基地ID", required = true)
public void getMonitoringData(@RequestParam("baseId") String baseId) { public CommonResult<String> getMonitoringData(@RequestParam("baseId") String baseId) {
return success("暂时不做");
} }
} }

View File

@@ -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;
}

View File

@@ -16,8 +16,10 @@ import lombok.NoArgsConstructor;
public class BaseStatisticsInfoRespVO { public class BaseStatisticsInfoRespVO {
@Schema(description = "总面积") @Schema(description = "总面积")
private Integer totalArea; private Integer totalArea;
@Schema(description = "基地数量") @Schema(description = "在种作物")
private Integer totalBase; private Integer totalCropSpecies;
@Schema(description = "地块数量") @Schema(description = "在种地块")
private Integer totalCropPlot;
@Schema(description = "地块总数")
private Integer totalPlot; private Integer totalPlot;
} }

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -1,5 +1,8 @@
package cn.iocoder.yudao.module.farm.service.deviceinfo; 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.DeviceInfoPageReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.DeviceInfoSaveReqVO; import cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.DeviceInfoSaveReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.v2.DeviceInfoDetailV2RespVO; import cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.v2.DeviceInfoDetailV2RespVO;
@@ -76,4 +79,11 @@ public interface DeviceInfoService {
* @return * @return
*/ */
DeviceStatisticsRespVO getStatisticsInfo(String baseId); DeviceStatisticsRespVO getStatisticsInfo(String baseId);
/**
* api接口
* 设备总览
* @return
*/
CommonResult<DeviceStateRespVO> getDeviceStateStatistics(DeviceStateReqVO req);
} }

View File

@@ -2,6 +2,9 @@ package cn.iocoder.yudao.module.farm.service.deviceinfo;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil; 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.DeviceInfoPageReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.DeviceInfoSaveReqVO; import cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.DeviceInfoSaveReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.v2.DeviceInfoDetailV2RespVO; 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())); return deviceInfoMapper.getStatisticsInfo(baseId,String.valueOf(getLoginUser().getTenantId()));
} }
@Override
public CommonResult<DeviceStateRespVO> getDeviceStateStatistics(DeviceStateReqVO req) {
return null;
}
} }

View File

@@ -1,5 +1,8 @@
package cn.iocoder.yudao.module.farm.service.farmingrecord; 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.FarmingRecordPageReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.farmingrecord.vo.FarmingRecordSaveReqVO; import cn.iocoder.yudao.module.farm.controller.admin.farmingrecord.vo.FarmingRecordSaveReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.farmingrecord.vo.FarmingRecordCreateReqVO; import cn.iocoder.yudao.module.farm.controller.admin.farmingrecord.vo.FarmingRecordCreateReqVO;
@@ -82,4 +85,13 @@ public interface FarmingRecordService {
* @return * @return
*/ */
int getFarmRecordCount(String planId); int getFarmRecordCount(String planId);
/**
* api 接口
* 灾害统计-农事分布
* @param req
* @return
*/
CommonResult<List<FarmingDistributionRespVO>> getFarmingDistributionChart(FarmingDistributionReqVO req);
} }

View File

@@ -1,9 +1,12 @@
package cn.iocoder.yudao.module.farm.service.farmingrecord; package cn.iocoder.yudao.module.farm.service.farmingrecord;
import cn.hutool.core.util.IdUtil; 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.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.security.core.LoginUser; 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.FarmingRecordPageReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.farmingrecord.vo.FarmingRecordSaveReqVO; import cn.iocoder.yudao.module.farm.controller.admin.farmingrecord.vo.FarmingRecordSaveReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.farmingrecord.vo.FarmingRecordCreateReqVO; 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); Long count = farmingRecordMapper.selectCount(x);
return count.intValue(); return count.intValue();
} }
@Override
public CommonResult<List<FarmingDistributionRespVO>> getFarmingDistributionChart(FarmingDistributionReqVO req) {
return null;
}
} }

View File

@@ -195,22 +195,6 @@ public interface ProductionPlanService {
*/ */
CommonResult<PlantingPlanCompletionRespVO> getPlantingPlanCompletionChart(PlantingPlanCompletionReqVO req); CommonResult<PlantingPlanCompletionRespVO> getPlantingPlanCompletionChart(PlantingPlanCompletionReqVO req);
/**
* api 接口
* 灾害统计-灾害分析
* @param req
* @return
*/
CommonResult<List<DisasterAnalysisRespVO>> getDisasterStatisticsChart(DisasterAnalysisReqVO req);
/**
* api 接口
* 灾害统计-农事分布
* @param req
* @return
*/
CommonResult<List<FarmingDistributionRespVO>> getFarmingDistributionChart(FarmingDistributionReqVO req);
/** /**
* 使用地块ID 获取该地块的计划数量 * 使用地块ID 获取该地块的计划数量
* @param plotId * @param plotId

View File

@@ -403,16 +403,6 @@ public class ProductionPlanServiceImpl implements ProductionPlanService {
return CommonResult.success(res); return CommonResult.success(res);
} }
@Override
public CommonResult<List<DisasterAnalysisRespVO>> getDisasterStatisticsChart(DisasterAnalysisReqVO req) {
return null;
}
@Override
public CommonResult<List<FarmingDistributionRespVO>> getFarmingDistributionChart(FarmingDistributionReqVO req) {
return null;
}
@Override @Override
public int getPlanCount(String plotId) { public int getPlanCount(String plotId) {
List<ProductionPlanDO> planDOList = productionPlanMapper.selectList("plot_id", plotId); List<ProductionPlanDO> planDOList = productionPlanMapper.selectList("plot_id", plotId);

View File

@@ -2,6 +2,9 @@ package cn.iocoder.yudao.module.farm.service.screendisasterdata;
import java.util.*; 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.ScreenDisasterDataPageReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.ScreenDisasterDataSaveReqVO; import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.ScreenDisasterDataSaveReqVO;
import jakarta.validation.*; import jakarta.validation.*;
@@ -60,4 +63,12 @@ public interface ScreenDisasterDataService {
*/ */
PageResult<ScreenDisasterDataDO> getScreenDisasterDataPage(ScreenDisasterDataPageReqVO pageReqVO); PageResult<ScreenDisasterDataDO> getScreenDisasterDataPage(ScreenDisasterDataPageReqVO pageReqVO);
/**
* api 接口
* 灾害统计-灾害分析
* @param req
* @return
*/
CommonResult<List<DisasterAnalysisRespVO>> getDisasterStatisticsChart(DisasterAnalysisReqVO req);
} }

View File

@@ -1,8 +1,11 @@
package cn.iocoder.yudao.module.farm.service.screendisasterdata; package cn.iocoder.yudao.module.farm.service.screendisasterdata;
import cn.hutool.core.util.IdUtil; 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.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 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.ScreenDisasterDataPageReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.ScreenDisasterDataSaveReqVO; import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.largescreen.screendisasterdata.vo.ScreenDisasterDataSaveReqVO;
import cn.iocoder.yudao.module.farm.dal.dataobject.baseinfo.BaseInfoDO; import cn.iocoder.yudao.module.farm.dal.dataobject.baseinfo.BaseInfoDO;
@@ -96,4 +99,9 @@ public class ScreenDisasterDataServiceImpl implements ScreenDisasterDataService
return res; return res;
} }
@Override
public CommonResult<List<DisasterAnalysisRespVO>> getDisasterStatisticsChart(DisasterAnalysisReqVO req) {
return null;
}
} }