fix (farm): 大屏数据维护
- 品种数据 bug - 灾害数据 bug
This commit is contained in:
@@ -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 设备总览
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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("暂时不做");
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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);
|
||||||
}
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -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);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user