From 180d51aa0e488aed98260629d514cceda8cd96b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=BE=E5=AF=8C=E6=96=8C?= Date: Tue, 9 Sep 2025 20:51:50 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix=20(farm):=20=E9=A6=96=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 模型管理周期-名称 --- .../yudao/module/farm/service/home/HomeServiceImpl.java | 2 +- .../service/modelmanagement/ModelManagementService.java | 6 +++--- .../service/modelmanagement/ModelManagementServiceImpl.java | 5 +++-- 3 files changed, 7 insertions(+), 6 deletions(-) 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 7fb2d1ca..7b6d7c1b 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 @@ -198,7 +198,7 @@ public class HomeServiceImpl implements HomeService { List plans = productionPlanService.getProductionPlans(baseId,plotId); for (ProductionPlanDO e : plans) { String beingCropName = productionPlanService.getPlantSpeciesCodeForName(e.getPlantSpeciesCode()); - String cycleName = modelManagementService.getModelCycleName(e.getSpeciesModelId()); // TODO: 2025/9/1 + String cycleName = modelManagementService.getModelCycleName(e.getSpeciesModelId()); String beingPlotArea = productionPlanService.getBeingPlotArea(e.getPlotId(), null); PlanInfo target = new PlanInfo(); diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/modelmanagement/ModelManagementService.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/modelmanagement/ModelManagementService.java index 2b40abb5..b6d09f27 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/modelmanagement/ModelManagementService.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/modelmanagement/ModelManagementService.java @@ -76,11 +76,11 @@ public interface ModelManagementService { Map getCount(); /** - * 生命周期-名称 - * @param planId => task_id + * 模型周期-名称 + * @param modelId => task_id * @return */ - String getModelCycleName(String planId); + String getModelCycleName(String modelId); /** * 获取当前计划下所有农事操作 diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/modelmanagement/ModelManagementServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/modelmanagement/ModelManagementServiceImpl.java index d77ef043..60d46c9b 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/modelmanagement/ModelManagementServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/modelmanagement/ModelManagementServiceImpl.java @@ -451,8 +451,9 @@ public class ModelManagementServiceImpl implements ModelManagementService { } @Override - public String getModelCycleName(String planId) { - return null; + public String getModelCycleName(String modelId) { + ModelCycleDO one = modelCycleMapper.selectOne("model_id", modelId); + return one.getName(); } @Override From 9916cbbdfb9142b98fa43850e678ec1dbedc992f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=BE=E5=AF=8C=E6=96=8C?= Date: Tue, 9 Sep 2025 21:14:03 +0800 Subject: [PATCH 2/4] =?UTF-8?q?fix=20(farm):=20=E9=A6=96=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 模型管理周期-名称 --- .../vo/ModelManagementForPlanRespVO.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/modelmanagement/vo/ModelManagementForPlanRespVO.java diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/modelmanagement/vo/ModelManagementForPlanRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/modelmanagement/vo/ModelManagementForPlanRespVO.java new file mode 100644 index 00000000..611bfd70 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/modelmanagement/vo/ModelManagementForPlanRespVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.farm.controller.admin.modelmanagement.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @description: 物种 - 模型 关联 + * @author: binda + * @date: 2025/9/9 20:37 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ModelManagementForPlanRespVO { + + + private String xx; + +} From f706ec5f9dc2089b487cc4d1ad41dc0f14a20c9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=BE=E5=AF=8C=E6=96=8C?= Date: Tue, 9 Sep 2025 21:20:26 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix=20(farm):=20=E9=A6=96=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 获取基地集合响应结构调整 --- .../controller/admin/home/vo/HomeInfo.java | 6 ++++ .../ModelManagementController.java | 11 +++++++ .../farm/service/home/HomeServiceImpl.java | 31 ++++++++++++------- .../ModelManagementServiceImpl.java | 5 +-- 4 files changed, 39 insertions(+), 14 deletions(-) diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/home/vo/HomeInfo.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/home/vo/HomeInfo.java index 26e118a5..efbd7b79 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/home/vo/HomeInfo.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/home/vo/HomeInfo.java @@ -187,6 +187,10 @@ public class HomeInfo { private String cycleName; @Schema(description = "任务进度") private String progressBar; + @Schema(description = "任务进度-分子") + private Integer progressBarNumerator; + @Schema(description = "任务进度-分母") + private Integer progressBarDenominator; @Schema(description = "种植面积") private Double predictedArea; @Schema(description = "预计产量") @@ -201,5 +205,7 @@ public class HomeInfo { private String planSubStatusName; @Schema(description = "计划模型坐标") private String planModelPoint; + @Schema(description = "计划模型-物种图片") + private List planModelImage; } } diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/modelmanagement/ModelManagementController.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/modelmanagement/ModelManagementController.java index 02f1128b..8766ba13 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/modelmanagement/ModelManagementController.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/modelmanagement/ModelManagementController.java @@ -5,6 +5,7 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.module.farm.controller.admin.modelmanagement.vo.ModelManagementForPlanRespVO; import cn.iocoder.yudao.module.farm.controller.admin.modelmanagement.vo.ModelManagementPageReqVO; import cn.iocoder.yudao.module.farm.controller.admin.modelmanagement.vo.ModelManagementRespVO; import cn.iocoder.yudao.module.farm.controller.admin.modelmanagement.vo.ModelManagementSaveReqVO; @@ -131,6 +132,16 @@ public class ModelManagementController { ExcelUtils.write(response, "模型管理.xls", "数据", ModelManagementRespVO.class, respVOList); } + @GetMapping("/get/species") + @Operation(summary = "获得模型管理") + @Parameter(name = "speciesId", description = "物种编号", required = true, example = "1024") + public CommonResult> getModelManagementForPlan(@RequestParam String speciesId) { + + + + return success(null); + } + /** * 转换分页结果,处理suitablePlantingAreas字段的转换 */ 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 7b6d7c1b..2dff7f1b 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 @@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.farm.controller.admin.home.vo.OutlinedInfoVO; import cn.iocoder.yudao.module.farm.dal.dataobject.baseinfo.BaseInfoDO; import cn.iocoder.yudao.module.farm.dal.dataobject.plotinfo.PlotInfoDO; import cn.iocoder.yudao.module.farm.dal.dataobject.productionplan.ProductionPlanDO; +import cn.iocoder.yudao.module.farm.dal.dataobject.specieslibrary.SpeciesLibraryDO; import cn.iocoder.yudao.module.farm.service.baseinfo.BaseInfoService; import cn.iocoder.yudao.module.farm.service.cropFarmingCenter.CropFarmingCenterService; import cn.iocoder.yudao.module.farm.service.deviceplotrelation.DevicePlotRelationService; @@ -15,6 +16,7 @@ import cn.iocoder.yudao.module.farm.service.modelmanagement.ModelManagementServi import cn.iocoder.yudao.module.farm.service.personnelmanagement.PersonnelManagementService; 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.specieslibrary.SpeciesLibraryService; import cn.iocoder.yudao.module.farm.utils.BigDecimalUtil; import cn.iocoder.yudao.module.farm.utils.LeafletjsUtil; import org.apache.commons.lang3.ObjectUtils; @@ -26,7 +28,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import java.util.stream.Stream; import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser; import static cn.iocoder.yudao.module.farm.enums.CommonConstants.*; @@ -46,8 +47,9 @@ public class HomeServiceImpl implements HomeService { private final CropFarmingCenterService cropFarmingCenterService; private final PersonnelManagementService personnelManagementService; private final ModelManagementService modelManagementService; + private final SpeciesLibraryService speciesLibraryService; - public HomeServiceImpl(BaseInfoService baseInfoService, PlotInfoService plotInfoService, ProductionPlanService productionPlanService, DevicePlotRelationService driverPropertyInfoService, CropFarmingCenterService cropFarmingCenterService, PersonnelManagementService personnelManagementService, ModelManagementService modelManagementService) { + public HomeServiceImpl(BaseInfoService baseInfoService, PlotInfoService plotInfoService, ProductionPlanService productionPlanService, DevicePlotRelationService driverPropertyInfoService, CropFarmingCenterService cropFarmingCenterService, PersonnelManagementService personnelManagementService, ModelManagementService modelManagementService, SpeciesLibraryService speciesLibraryService) { this.baseInfoService = baseInfoService; this.plotInfoService = plotInfoService; this.productionPlanService = productionPlanService; @@ -55,6 +57,7 @@ public class HomeServiceImpl implements HomeService { this.cropFarmingCenterService = cropFarmingCenterService; this.personnelManagementService = personnelManagementService; this.modelManagementService = modelManagementService; + this.speciesLibraryService = speciesLibraryService; } @Override @@ -128,16 +131,14 @@ public class HomeServiceImpl implements HomeService { return res; } - private List getPlotPopupFrame(BaseInfoDO baseObj, Map employeeNameMap) { + private List getPlotPopupFrame(String plotId, Map employeeNameMap) { List targetList = new ArrayList<>(); - List plotList = plotInfoService.getPlotInfos(baseObj.getId()); - for (PlotInfoDO e : plotList) { - String employeeName = personnelManagementService.getEmployeeNameMap(employeeNameMap, e.getEmployeeId()); - String beingPlotArea = productionPlanService.getBeingPlotArea(e.getPlotId(), e.getPlotArea()); - String beingCropName = productionPlanService.getBeingCropName(e.getPlotId()); + 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,beingCropName)); - } + targetList.add(new PlotPopupFrame(beingPlotArea,employeeName,beingCropName)); return targetList; } @@ -149,7 +150,7 @@ public class HomeServiceImpl implements HomeService { // 地块详情 (包含计划信息) PlotOrCropInfo plotOrCropInfo = this.getPlotOrCropInfoList(e,"地块详情",employeeName); // 地块浮框信息 - List plotPopupFrame = this.getPlotPopupFrame(baseObj, employeeNameMap); + List plotPopupFrame = this.getPlotPopupFrame(e.getId(), employeeNameMap); PlotInfo t = new PlotInfo(); t.setBaseId(e.getBaseId()); @@ -200,6 +201,9 @@ public class HomeServiceImpl implements HomeService { String beingCropName = productionPlanService.getPlantSpeciesCodeForName(e.getPlantSpeciesCode()); String cycleName = modelManagementService.getModelCycleName(e.getSpeciesModelId()); String beingPlotArea = productionPlanService.getBeingPlotArea(e.getPlotId(), null); +// SpeciesLibraryDO speciesLibrary = speciesLibraryService.getSpeciesLibrary(e.getPlantSpeciesCode()); +// List planModelImage = speciesLibrary.getImageList(); + List planModelImage = new ArrayList<>(); PlanInfo target = new PlanInfo(); target.setBaseId(e.getBaseId()); @@ -210,7 +214,9 @@ public class HomeServiceImpl implements HomeService { target.setPlantSpeciesName(beingCropName); target.setPlanNumber(e.getPlanNumber()); target.setCycleName(cycleName); - target.setProgressBar("0/10"); // TODO: 2025/9/1 + target.setProgressBar("1/10"); // TODO: 2025/9/1 + target.setProgressBarNumerator(1); // TODO: 2025/9/1 + target.setProgressBarDenominator(10); // TODO: 2025/9/1 target.setPredictedArea(Double.valueOf(beingPlotArea)); target.setPredictedYields(e.getPredictedYields()); target.setPlanStatus(e.getPlanStatus()); @@ -219,6 +225,7 @@ public class HomeServiceImpl implements HomeService { target.setPlanSubStatusName(PLAN_MAP.getOrDefault(e.getPlanSubStatus(), "逾期未开始")); String pointsInPolygon = LeafletjsUtil.generateRandomPointsInPolygon(plotObj.getPoint()); target.setPlanModelPoint(pointsInPolygon); + target.setPlanModelImage(planModelImage); targetList.add(target); } return targetList; diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/modelmanagement/ModelManagementServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/modelmanagement/ModelManagementServiceImpl.java index 60d46c9b..f8517efc 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/modelmanagement/ModelManagementServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/modelmanagement/ModelManagementServiceImpl.java @@ -452,8 +452,9 @@ public class ModelManagementServiceImpl implements ModelManagementService { @Override public String getModelCycleName(String modelId) { - ModelCycleDO one = modelCycleMapper.selectOne("model_id", modelId); - return one.getName(); + // TODO: 2025/9/9 这里处理当前日期是否在 排查开始日期+持续天数的范围内 + List cycleDOS = modelCycleMapper.selectList("model_id", modelId); + return cycleDOS.stream().findFirst().get().getName(); } @Override From 5f5312e25a8ad0bfe02b4564621613c37c01be09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=BE=E5=AF=8C=E6=96=8C?= Date: Tue, 9 Sep 2025 21:36:46 +0800 Subject: [PATCH 4/4] =?UTF-8?q?fix=20(farm):=20=E9=A6=96=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 获取基地集合响应结构调整 --- .../yudao/module/farm/service/home/HomeServiceImpl.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) 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 2dff7f1b..8ea847c8 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 @@ -201,9 +201,10 @@ public class HomeServiceImpl implements HomeService { String beingCropName = productionPlanService.getPlantSpeciesCodeForName(e.getPlantSpeciesCode()); String cycleName = modelManagementService.getModelCycleName(e.getSpeciesModelId()); String beingPlotArea = productionPlanService.getBeingPlotArea(e.getPlotId(), null); -// SpeciesLibraryDO speciesLibrary = speciesLibraryService.getSpeciesLibrary(e.getPlantSpeciesCode()); -// List planModelImage = speciesLibrary.getImageList(); - List planModelImage = new ArrayList<>(); + SpeciesLibraryDO speciesLibrary = speciesLibraryService.getSpeciesLibrary(e.getPlantSpeciesCode()); + if (ObjectUtils.isEmpty(speciesLibrary)) { + continue; + } PlanInfo target = new PlanInfo(); target.setBaseId(e.getBaseId()); @@ -225,7 +226,7 @@ public class HomeServiceImpl implements HomeService { target.setPlanSubStatusName(PLAN_MAP.getOrDefault(e.getPlanSubStatus(), "逾期未开始")); String pointsInPolygon = LeafletjsUtil.generateRandomPointsInPolygon(plotObj.getPoint()); target.setPlanModelPoint(pointsInPolygon); - target.setPlanModelImage(planModelImage); + target.setPlanModelImage(speciesLibrary.getImageList()); targetList.add(target); } return targetList;