From aed3d074f45112665c19c0be500928c4354b400f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=BE=E5=AF=8C=E6=96=8C?= Date: Mon, 15 Sep 2025 14:55:33 +0800 Subject: [PATCH] =?UTF-8?q?fix=20(farm):=20=E5=BE=AE=E6=9C=8D=E5=8A=A1API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 数字驾驶舱-统计图-种植计划完成情况 --- .../farm/controller/admin/api/ApiController.java | 8 -------- .../admin/api/vo/YieldComparisonChartReqVO.java | 4 ++++ .../mapper/productionplan/ProductionPlanMapper.xml | 14 +++++++++----- yudao-server/src/main/resources/application.yaml | 3 ++- 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/api/ApiController.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/api/ApiController.java index 0224de63..f119ba3d 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 @@ -44,7 +44,6 @@ public class ApiController { * @param req 根据租户id、开始时间、结束时间 ,已完成状态 * @return 种植计划id、种植计划名称 */ - @PermitAll @PostMapping("/production-plan/page") @Operation(summary = "生产计划-分页") public CommonResult> getPageForFarmProductionPlan(@Valid @RequestBody FarmProductionPlanReqVO req) { @@ -59,14 +58,12 @@ public class ApiController { * @param req 根据租户id、种植计划id * @return 种植计划id、种植计划名称、种植开始时间、种植结束时间、计划所属的基地图片、基地简介、基地中心坐标点 */ - @PermitAll @PostMapping("/production-plan/get") @Operation(summary = "生产计划-详情") public CommonResult getDetailForFarmProductionPlan(@Valid @RequestBody FarmProductionPlanDetailReqVO req) { return productionPlanService.getDetailForFarmProductionPlan(req); } - @PermitAll @PostMapping("/digital-cockpit/get") @Operation(summary = "数字驾驶舱-基地概要信息") public CommonResult getBaseOverview(@Valid @RequestBody FarmBaseOverviewReqVO req) { @@ -74,35 +71,30 @@ public class ApiController { } // TODO: 2025/9/4 地图展示信息 - 设备坐标 - @PermitAll @PostMapping("/digital-cockpit/list") @Operation(summary = "数字驾驶舱-基地信息列表") public CommonResult> getBaseInfoList(@Valid @RequestBody FarmBaseInfoReqVO req) { return baseInfoService.getBaseInfoList(req); } - @PermitAll @PostMapping("/digital-cockpit/chart/yield-comparison") @Operation(summary = "数字驾驶舱-生产数据-产量对比") public CommonResult> getYieldComparisonChart(@Valid @RequestBody YieldComparisonChartReqVO req) { return productionPlanService.getYieldComparisonChart(req); } - @PermitAll @PostMapping("/digital-cockpit/chart/planting-plan-completion") @Operation(summary = "数字驾驶舱-生产数据-种植计划完成情况") public CommonResult getPlantingPlanCompletionChart(@Valid @RequestBody PlantingPlanCompletionReqVO req) { return productionPlanService.getPlantingPlanCompletionChart(req); } - @PermitAll @PostMapping("/digital-cockpit/chart/disaster-statistics") @Operation(summary = "数字驾驶舱-灾害统计-灾害分析") public CommonResult> getDisasterStatisticsChart(@Valid @RequestBody DisasterAnalysisReqVO req) { return productionPlanService.getDisasterStatisticsChart(req); // TODO: 2025/9/4 未实现 } - @PermitAll @PostMapping("/digital-cockpit/chart/farming-distribution") @Operation(summary = "数字驾驶舱-灾害统计-农事分布") public CommonResult> getFarmingDistributionChart(@Valid @RequestBody FarmingDistributionReqVO req) { diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/api/vo/YieldComparisonChartReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/api/vo/YieldComparisonChartReqVO.java index e4128958..85396471 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/api/vo/YieldComparisonChartReqVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/api/vo/YieldComparisonChartReqVO.java @@ -6,6 +6,8 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.List; + /** * @description: 数字驾驶舱-统计图-对比产量 请求实体 * @author: binda @@ -22,5 +24,7 @@ public class YieldComparisonChartReqVO { @Schema(description = "租户ID") @NotNull(message = "租户ID: 不能为空") private String tenantId; + @Schema(description = "日期 (yyyy)") + private List yieldDate; } diff --git a/yudao-module-farm/src/main/resources/mapper/productionplan/ProductionPlanMapper.xml b/yudao-module-farm/src/main/resources/mapper/productionplan/ProductionPlanMapper.xml index 1fa10cc5..a1e1afac 100644 --- a/yudao-module-farm/src/main/resources/mapper/productionplan/ProductionPlanMapper.xml +++ b/yudao-module-farm/src/main/resources/mapper/productionplan/ProductionPlanMapper.xml @@ -46,18 +46,22 @@ resultType="cn.iocoder.yudao.module.farm.controller.admin.api.vo.YieldComparisonChartRespVO"> SELECT - YEAR(production_end_date) AS date, - SUM(predicted_yields) AS predictedYields, - SUM(practical_yields) AS practicalYields + YEAR(production_start_date) AS date, + COALESCE(SUM(predicted_yields), 0) AS predictedYields, + COALESCE(SUM(practical_yields), 0) AS practicalYields FROM farm_production_plan plan_status = 3 AND deleted = 0 - AND production_end_date IS NOT NULL + AND production_start_date IS NOT NULL AND tenant_id = #{tenantId} AND base_id = #{baseId} + + + AND YEAR(production_start_date) BETWEEN #{yieldDate[0]} AND #{yieldDate[1]} + - GROUP BY YEAR(production_end_date) + GROUP BY YEAR(production_start_date) ORDER BY date diff --git a/yudao-server/src/main/resources/application.yaml b/yudao-server/src/main/resources/application.yaml index 17133f8f..a476add9 100644 --- a/yudao-server/src/main/resources/application.yaml +++ b/yudao-server/src/main/resources/application.yaml @@ -246,6 +246,7 @@ yudao: security: permit-all_urls: - /admin-api/mp/open/** # 微信公众号开放平台,微信回调接口,不需要登录 + - /admin-api/farm/remote/** # 提供给客户的API接口 websocket: enable: true # websocket的开关 path: /infra/ws # 路径 @@ -288,7 +289,7 @@ yudao: - /admin-api/system/user/profile/** - /admin-api/system/auth/** - /admin-api/app/traceability-code/scan - - /admin-api/farm/remote/** +# - /admin-api/farm/remote/** ignore-tables: - region - farm_mqtt_connection