From 90eb3ab7e1bf13733456505ce5e3b150729aeea1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=BE=E5=AF=8C=E6=96=8C?= Date: Sun, 9 Nov 2025 21:54:46 +0800 Subject: [PATCH] =?UTF-8?q?fix=20(farm):=20=20=E9=A6=96=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 首页地块加载慢 --- .../vo/FarmingReport1RespVO.java | 1 + .../controller/admin/home/HomeController.java | 7 ++ .../dal/dataobject/plotinfo/PlotInfoDO.java | 2 + .../module/farm/service/home/HomeService.java | 1 + .../farm/service/home/HomeServiceImpl.java | 78 +++++++++++++------ .../service/plotinfo/PlotInfoService.java | 1 + .../service/plotinfo/PlotInfoServiceImpl.java | 21 ++++- .../ProductionPlanServiceImpl.java | 7 +- .../inputlibrary/InputUsageRecordsMapper.xml | 2 + 9 files changed, 95 insertions(+), 25 deletions(-) diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/cropfarmingcenter/vo/FarmingReport1RespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/cropfarmingcenter/vo/FarmingReport1RespVO.java index b25a64b4..4b2a8cd1 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/cropfarmingcenter/vo/FarmingReport1RespVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/cropfarmingcenter/vo/FarmingReport1RespVO.java @@ -23,6 +23,7 @@ public class FarmingReport1RespVO { @Schema(description = "基地名称") private String baseName; + private String plotName; @Schema(description = "计划编号") private String planNumber; diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/home/HomeController.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/home/HomeController.java index 5e9fb2b1..6c51866e 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/home/HomeController.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/home/HomeController.java @@ -38,6 +38,13 @@ public class HomeController { @Operation(summary = "农场首页") @GetMapping("") @Parameter(name = "baseId", description = "基地ID") + public CommonResult getBaseStatisticalInfo(@RequestParam("baseId") String baseId) { + return success(homeService.getHomeInfo(baseId)); + } + + @Operation(summary = "农场首页-基地/地块集合") + @GetMapping("/base/get") + @Parameter(name = "baseId", description = "基地ID") public CommonResult getBaseInfo(@RequestParam("baseId") String baseId) { return success(homeService.getHomeInfo(baseId)); } diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/plotinfo/PlotInfoDO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/plotinfo/PlotInfoDO.java index f6c00c89..714460f4 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/plotinfo/PlotInfoDO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/plotinfo/PlotInfoDO.java @@ -60,6 +60,8 @@ public class PlotInfoDO extends BaseDO { private String employeeId; @TableField(exist = false) private String employeeName; + @TableField(exist = false) + private String manager; private String tenantId; diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/home/HomeService.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/home/HomeService.java index 4a8088e7..c7d9b219 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/home/HomeService.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/home/HomeService.java @@ -21,6 +21,7 @@ public interface HomeService { * @return */ HomeInfo getHomeInfo(String baseId); + HomeInfo getHomeInfoPlus(String baseId); HomeInfo.PlotInfo getPlotInfo(String plotId); diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/home/HomeServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/home/HomeServiceImpl.java index 9cd23fdb..ee9258ef 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/home/HomeServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/home/HomeServiceImpl.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.farm.service.home; +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.cropfarmingcenter.vo.grid.ProductionPlanGridRespVO; import cn.iocoder.yudao.module.farm.controller.admin.digitalcockpit.vo.DeviceMonitorDataRespVO; @@ -97,7 +98,21 @@ public class HomeServiceImpl implements HomeService { return new HomeInfo(baseOverviewInfo, statisticalInfo,baseList); } - private BaseInfo getBaseInfo(BaseInfoDO baseObj,Map employeeNameMap) { + @Override + public HomeInfo getHomeInfoPlus(String baseId) { + // 员工集合 + Map employeeNameMap = personnelManagementService.getEmployeeNameMap(); + + // 基地集合 + List baseList = new ArrayList<>(); + for (BaseInfoDO baseInfoDO : baseInfoService.getBaseInfosById(baseId)) { + baseList.add(this.getBaseInfo(baseInfoDO,employeeNameMap)); + } + + return new HomeInfo(null, null,baseList); + } + + private BaseInfo getBaseInfo(BaseInfoDO baseObj, Map employeeNameMap) { String baseId = baseObj.getId(); String baseName = baseObj.getName(); String point = baseObj.getPoint(); @@ -150,6 +165,17 @@ public class HomeServiceImpl implements HomeService { return targetList; } + private List getPlotPopupFrame(String plotId, String employeeName) { + List targetList = new ArrayList<>(); + PlotInfoDO e = plotInfoService.getPlotInfo(plotId); +// String employeeName = personnelManagementService.getEmployeeNameMap(employeeNameMap, e.getEmployeeId()); + String beingPlotArea = productionPlanService.getBeingPlotArea(e.getPlotId(), e.getPlotArea()); + String beingCropName = productionPlanService.getBeingCropName(e.getPlotId()); + + targetList.add(new PlotPopupFrame(beingPlotArea,employeeName,StringUtils.defaultString(beingCropName,"暂无"))); + return targetList; + } + @Override public PlotInfo getPlotInfo(String plotId) { // 员工集合 @@ -186,31 +212,37 @@ public class HomeServiceImpl implements HomeService { } private List getPlotInfoList(BaseInfoDO baseObj,Map employeeNameMap) { - List targetList = new ArrayList<>(); - List plotList = plotInfoService.getPlotInfos(baseObj.getId()); - for (PlotInfoDO e : plotList) { - String employeeName = personnelManagementService.getEmployeeNameMap(employeeNameMap, e.getEmployeeId()); - // 地块详情 (包含计划信息) - PlotOrCropInfo plotOrCropInfo = this.getPlotOrCropInfoList(e,"地块详情",employeeName); - // 地块浮框信息 - List plotPopupFrame = this.getPlotPopupFrame(e.getId(), employeeNameMap); - // 户主流转信息 - List lesseeList = plotInfoService.getPlotLesseeList(e.getId()); - PlotInfo t = new PlotInfo(); - t.setBaseId(e.getBaseId()); - t.setBaseName(baseObj.getName()); - t.setPlotId(e.getPlotId()); - t.setPlotName(e.getPlotName()); - t.setPlotArea(BigDecimalUtil.roundedViaMath(e.getPlotArea())); - t.setManager(employeeName); - t.setPoint(e.getPoint()); - t.setPlotColor(e.getPlotColor()); + List plotList = plotInfoService.getPlotInfos(baseObj.getId(), baseObj.getName()); + List targetList = BeanUtils.toBean(plotList, PlotInfo.class); + targetList.stream().forEach(e -> { + List plotPopupFrame = this.getPlotPopupFrame(e.getPlotId(), e.getManager()); + e.setPlotPopupFrames(plotPopupFrame.get(0)); + }); + +// for (PlotInfoDO e : plotList) { +// String employeeName = personnelManagementService.getEmployeeNameMap(employeeNameMap, e.getEmployeeId()); + // 地块详情 (包含计划信息) +// PlotOrCropInfo plotOrCropInfo = this.getPlotOrCropInfoList(e,"地块详情",employeeName); + // 地块浮框信息 +// List plotPopupFrame = this.getPlotPopupFrame(e.getId(), employeeNameMap); + // 户主流转信息 +// List lesseeList = plotInfoService.getPlotLesseeList(e.getId()); + +// PlotInfo t = new PlotInfo(); +// t.setBaseId(e.getBaseId()); +// t.setBaseName(baseObj.getName()); +// t.setPlotId(e.getPlotId()); +// t.setPlotName(e.getPlotName()); +// t.setPlotArea(BigDecimalUtil.roundedViaMath(e.getPlotArea())); +// t.setManager(employeeName); +// t.setPoint(e.getPoint()); +// t.setPlotColor(e.getPlotColor()); +// t.setPlotPopupFrames(plotPopupFrame.get(0)); // t.setPlotOrCropInfo(plotOrCropInfo); - t.setPlotPopupFrames(plotPopupFrame.get(0)); // t.setLesseeList(lesseeList); - targetList.add(t); - } +// targetList.add(t); +// } return targetList; } diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/plotinfo/PlotInfoService.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/plotinfo/PlotInfoService.java index fc751403..2ea90db8 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/plotinfo/PlotInfoService.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/plotinfo/PlotInfoService.java @@ -70,6 +70,7 @@ public interface PlotInfoService { * @return */ List getPlotInfos(String baseId); + List getPlotInfos(String baseId,String baseName); /** * 地块集合 * @param baseId diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/plotinfo/PlotInfoServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/plotinfo/PlotInfoServiceImpl.java index 860c854d..6137eabb 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/plotinfo/PlotInfoServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/plotinfo/PlotInfoServiceImpl.java @@ -16,6 +16,7 @@ import cn.iocoder.yudao.module.farm.dal.mysql.plotinfo.PlotLesseeMapper; import cn.iocoder.yudao.module.farm.enums.CommonConstants; import cn.iocoder.yudao.module.farm.service.personnelmanagement.PersonnelManagementService; import cn.iocoder.yudao.module.farm.service.productionplan.ProductionPlanService; +import cn.iocoder.yudao.module.farm.utils.BigDecimalUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; @@ -354,7 +355,25 @@ public class PlotInfoServiceImpl implements PlotInfoService { Map employeeNameMap = personnelManagementService.getEmployeeNameMap(); List list = plotInfoMapper.selectList("base_id", baseId); - list.forEach(e -> e.setEmployeeName(employeeNameMap.get(e.getEmployeeId()))); + list.forEach(e -> { + e.setEmployeeName(employeeNameMap.get(e.getEmployeeId())); + }); + + return list; + } + + @Override + public List getPlotInfos(String baseId, String baseName) { + // 员工集合 + Map employeeNameMap = personnelManagementService.getEmployeeNameMap(); + + List list = plotInfoMapper.selectList("base_id", baseId); + list.forEach(e -> { + e.setEmployeeName(employeeNameMap.get(e.getEmployeeId())); + e.setManager(employeeNameMap.get(e.getEmployeeId())); + e.setBaseName(baseName); + e.setPlotArea(BigDecimalUtil.roundedViaMath(e.getPlotArea())); + }); return list; } 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 cf167216..64e6c3bb 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 @@ -343,7 +343,12 @@ public class ProductionPlanServiceImpl implements ProductionPlanService { if (plotArea == null) { return String.valueOf(totalArea); } - return plotArea.intValue() + "/" +(int) Math.round(totalArea) + "亩"; + if (ObjectUtils.isEmpty(totalArea)) { + return "0 亩"; + } else { + return (int) Math.round(totalArea) + "/" +plotArea.intValue()+ "亩"; + } + } @Override diff --git a/yudao-module-farm/src/main/resources/mapper/inputlibrary/InputUsageRecordsMapper.xml b/yudao-module-farm/src/main/resources/mapper/inputlibrary/InputUsageRecordsMapper.xml index 73c40f17..1ae93192 100644 --- a/yudao-module-farm/src/main/resources/mapper/inputlibrary/InputUsageRecordsMapper.xml +++ b/yudao-module-farm/src/main/resources/mapper/inputlibrary/InputUsageRecordsMapper.xml @@ -54,6 +54,7 @@ SELECT ffr.id AS farmRecordId, ffr.base_name AS baseName, + ffr.plot_name AS plotName, ffr.task_scope AS planNumber, ffr.task_start_date AS taskStartDate, ffr.task_end_date AS taskEndDate, @@ -82,6 +83,7 @@ GROUP BY ffr.id, ffr.base_name, + ffr.plot_name, ffr.task_scope, ffr.task_start_date, ffr.task_end_date