From 62309578d65bbfcd7797dde39ba9e30efe783924 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=BE=E5=AF=8C=E6=96=8C?= Date: Wed, 27 Aug 2025 18:16:33 +0800 Subject: [PATCH] =?UTF-8?q?feat=20(farm):=20=E5=9F=BA=E5=9C=B0=E8=A7=84?= =?UTF-8?q?=E5=88=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 计算地块占比 --- .../admin/baseinfo/vo/BaseInfoRespVO.java | 4 +++- .../service/baseinfo/BaseInfoServiceImpl.java | 17 +++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/baseinfo/vo/BaseInfoRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/baseinfo/vo/BaseInfoRespVO.java index 95b7ef83..0404a93c 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/baseinfo/vo/BaseInfoRespVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/baseinfo/vo/BaseInfoRespVO.java @@ -62,8 +62,10 @@ public class BaseInfoRespVO { private Integer cropCount; @Schema(description = "在种地块数量") private Integer plotCount; + @Schema(description = "地块总数") + private Integer plotTotalCount; @Schema(description = "在种地块占比") - private Integer plotRatio; + private Double plotRatio; } @Data diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/baseinfo/BaseInfoServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/baseinfo/BaseInfoServiceImpl.java index 2735e736..3753e52e 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/baseinfo/BaseInfoServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/baseinfo/BaseInfoServiceImpl.java @@ -181,19 +181,24 @@ public class BaseInfoServiceImpl implements BaseInfoService { String baseId = obj.getId(); String baseName = obj.getName(); BigDecimal baseArea = obj.getArea(); + List plotList = plotInfoMapper.selectList("base_id", baseId); // 在种作物数量 - Integer cropCount = speciesLibraryMapper.getSpeciesCount(tenantId,baseId);; - // 在种地块数量 - Integer plotCount = 0; // todo + Integer cropCount = speciesLibraryMapper.getSpeciesCount(tenantId,baseId); // 在种地块占比 - Integer plotRatio = 0; // todo + double plotRatio = 0.00; + // 在种地块数量 + int plotCount = 1; + // 地块总数 + int plotTotalCount = plotList.size(); + if (plotTotalCount > 0) { + plotRatio = Math.round((plotCount * 10000.0) / plotTotalCount) / 100.0; + } - obj.setBaseOverview(new BaseInfoRespVO.BaseInfo(baseId,baseName,baseArea,cropCount,plotCount,plotRatio)); + obj.setBaseOverview(new BaseInfoRespVO.BaseInfo(baseId,baseName,baseArea,cropCount,plotCount,plotTotalCount,plotRatio)); // 地块集合 List targetList = new ArrayList<>(); - List plotList = plotInfoMapper.selectList("base_id", baseId); for (PlotInfoDO aDo : plotList) { String plotManager = employeeMap.getOrDefault(aDo.getEmployeeId(), "系统"); BaseInfoRespVO.PlotInfo target = new BaseInfoRespVO.PlotInfo(aDo.getPlotId(), aDo.getPlotName(), aDo.getPlotArea(), plotManager);