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/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; + +} 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..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 @@ -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()); @@ -198,8 +199,12 @@ 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); + SpeciesLibraryDO speciesLibrary = speciesLibraryService.getSpeciesLibrary(e.getPlantSpeciesCode()); + if (ObjectUtils.isEmpty(speciesLibrary)) { + continue; + } PlanInfo target = new PlanInfo(); target.setBaseId(e.getBaseId()); @@ -210,7 +215,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 +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(speciesLibrary.getImageList()); targetList.add(target); } return targetList; 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..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 @@ -451,8 +451,10 @@ public class ModelManagementServiceImpl implements ModelManagementService { } @Override - public String getModelCycleName(String planId) { - return null; + public String getModelCycleName(String modelId) { + // TODO: 2025/9/9 这里处理当前日期是否在 排查开始日期+持续天数的范围内 + List cycleDOS = modelCycleMapper.selectList("model_id", modelId); + return cycleDOS.stream().findFirst().get().getName(); } @Override