Merge remote-tracking branch 'origin/main'

This commit is contained in:
顾君禹
2025-09-10 18:04:49 +08:00
6 changed files with 65 additions and 18 deletions

View File

@@ -187,6 +187,10 @@ public class HomeInfo {
private String cycleName; private String cycleName;
@Schema(description = "任务进度") @Schema(description = "任务进度")
private String progressBar; private String progressBar;
@Schema(description = "任务进度-分子")
private Integer progressBarNumerator;
@Schema(description = "任务进度-分母")
private Integer progressBarDenominator;
@Schema(description = "种植面积") @Schema(description = "种植面积")
private Double predictedArea; private Double predictedArea;
@Schema(description = "预计产量") @Schema(description = "预计产量")
@@ -201,5 +205,7 @@ public class HomeInfo {
private String planSubStatusName; private String planSubStatusName;
@Schema(description = "计划模型坐标") @Schema(description = "计划模型坐标")
private String planModelPoint; private String planModelPoint;
@Schema(description = "计划模型-物种图片")
private List<String> planModelImage;
} }
} }

View File

@@ -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.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; 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.ModelManagementPageReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.modelmanagement.vo.ModelManagementRespVO; import cn.iocoder.yudao.module.farm.controller.admin.modelmanagement.vo.ModelManagementRespVO;
import cn.iocoder.yudao.module.farm.controller.admin.modelmanagement.vo.ModelManagementSaveReqVO; 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); ExcelUtils.write(response, "模型管理.xls", "数据", ModelManagementRespVO.class, respVOList);
} }
@GetMapping("/get/species")
@Operation(summary = "获得模型管理")
@Parameter(name = "speciesId", description = "物种编号", required = true, example = "1024")
public CommonResult<List<ModelManagementForPlanRespVO>> getModelManagementForPlan(@RequestParam String speciesId) {
return success(null);
}
/** /**
* 转换分页结果,处理suitablePlantingAreas字段的转换 * 转换分页结果,处理suitablePlantingAreas字段的转换
*/ */

View File

@@ -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;
}

View File

@@ -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.baseinfo.BaseInfoDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.plotinfo.PlotInfoDO; 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.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.baseinfo.BaseInfoService;
import cn.iocoder.yudao.module.farm.service.cropFarmingCenter.CropFarmingCenterService; import cn.iocoder.yudao.module.farm.service.cropFarmingCenter.CropFarmingCenterService;
import cn.iocoder.yudao.module.farm.service.deviceplotrelation.DevicePlotRelationService; 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.personnelmanagement.PersonnelManagementService;
import cn.iocoder.yudao.module.farm.service.plotinfo.PlotInfoService; 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.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.BigDecimalUtil;
import cn.iocoder.yudao.module.farm.utils.LeafletjsUtil; import cn.iocoder.yudao.module.farm.utils.LeafletjsUtil;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
@@ -26,7 +28,6 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; 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.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
import static cn.iocoder.yudao.module.farm.enums.CommonConstants.*; import static cn.iocoder.yudao.module.farm.enums.CommonConstants.*;
@@ -46,8 +47,9 @@ public class HomeServiceImpl implements HomeService {
private final CropFarmingCenterService cropFarmingCenterService; private final CropFarmingCenterService cropFarmingCenterService;
private final PersonnelManagementService personnelManagementService; private final PersonnelManagementService personnelManagementService;
private final ModelManagementService modelManagementService; 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.baseInfoService = baseInfoService;
this.plotInfoService = plotInfoService; this.plotInfoService = plotInfoService;
this.productionPlanService = productionPlanService; this.productionPlanService = productionPlanService;
@@ -55,6 +57,7 @@ public class HomeServiceImpl implements HomeService {
this.cropFarmingCenterService = cropFarmingCenterService; this.cropFarmingCenterService = cropFarmingCenterService;
this.personnelManagementService = personnelManagementService; this.personnelManagementService = personnelManagementService;
this.modelManagementService = modelManagementService; this.modelManagementService = modelManagementService;
this.speciesLibraryService = speciesLibraryService;
} }
@Override @Override
@@ -128,16 +131,14 @@ public class HomeServiceImpl implements HomeService {
return res; return res;
} }
private List<PlotPopupFrame> getPlotPopupFrame(BaseInfoDO baseObj, Map<String, String> employeeNameMap) { private List<PlotPopupFrame> getPlotPopupFrame(String plotId, Map<String, String> employeeNameMap) {
List<PlotPopupFrame> targetList = new ArrayList<>(); List<PlotPopupFrame> targetList = new ArrayList<>();
List<PlotInfoDO> plotList = plotInfoService.getPlotInfos(baseObj.getId()); PlotInfoDO e = plotInfoService.getPlotInfo(plotId);
for (PlotInfoDO e : plotList) {
String employeeName = personnelManagementService.getEmployeeNameMap(employeeNameMap, e.getEmployeeId()); String employeeName = personnelManagementService.getEmployeeNameMap(employeeNameMap, e.getEmployeeId());
String beingPlotArea = productionPlanService.getBeingPlotArea(e.getPlotId(), e.getPlotArea()); String beingPlotArea = productionPlanService.getBeingPlotArea(e.getPlotId(), e.getPlotArea());
String beingCropName = productionPlanService.getBeingCropName(e.getPlotId()); String beingCropName = productionPlanService.getBeingCropName(e.getPlotId());
targetList.add(new PlotPopupFrame(beingPlotArea,employeeName,beingCropName)); targetList.add(new PlotPopupFrame(beingPlotArea,employeeName,beingCropName));
}
return targetList; return targetList;
} }
@@ -149,7 +150,7 @@ public class HomeServiceImpl implements HomeService {
// 地块详情 (包含计划信息) // 地块详情 (包含计划信息)
PlotOrCropInfo plotOrCropInfo = this.getPlotOrCropInfoList(e,"地块详情",employeeName); PlotOrCropInfo plotOrCropInfo = this.getPlotOrCropInfoList(e,"地块详情",employeeName);
// 地块浮框信息 // 地块浮框信息
List<PlotPopupFrame> plotPopupFrame = this.getPlotPopupFrame(baseObj, employeeNameMap); List<PlotPopupFrame> plotPopupFrame = this.getPlotPopupFrame(e.getId(), employeeNameMap);
PlotInfo t = new PlotInfo(); PlotInfo t = new PlotInfo();
t.setBaseId(e.getBaseId()); t.setBaseId(e.getBaseId());
@@ -198,8 +199,12 @@ public class HomeServiceImpl implements HomeService {
List<ProductionPlanDO> plans = productionPlanService.getProductionPlans(baseId,plotId); List<ProductionPlanDO> plans = productionPlanService.getProductionPlans(baseId,plotId);
for (ProductionPlanDO e : plans) { for (ProductionPlanDO e : plans) {
String beingCropName = productionPlanService.getPlantSpeciesCodeForName(e.getPlantSpeciesCode()); 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); String beingPlotArea = productionPlanService.getBeingPlotArea(e.getPlotId(), null);
SpeciesLibraryDO speciesLibrary = speciesLibraryService.getSpeciesLibrary(e.getPlantSpeciesCode());
if (ObjectUtils.isEmpty(speciesLibrary)) {
continue;
}
PlanInfo target = new PlanInfo(); PlanInfo target = new PlanInfo();
target.setBaseId(e.getBaseId()); target.setBaseId(e.getBaseId());
@@ -210,7 +215,9 @@ public class HomeServiceImpl implements HomeService {
target.setPlantSpeciesName(beingCropName); target.setPlantSpeciesName(beingCropName);
target.setPlanNumber(e.getPlanNumber()); target.setPlanNumber(e.getPlanNumber());
target.setCycleName(cycleName); 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.setPredictedArea(Double.valueOf(beingPlotArea));
target.setPredictedYields(e.getPredictedYields()); target.setPredictedYields(e.getPredictedYields());
target.setPlanStatus(e.getPlanStatus()); target.setPlanStatus(e.getPlanStatus());
@@ -219,6 +226,7 @@ public class HomeServiceImpl implements HomeService {
target.setPlanSubStatusName(PLAN_MAP.getOrDefault(e.getPlanSubStatus(), "逾期未开始")); target.setPlanSubStatusName(PLAN_MAP.getOrDefault(e.getPlanSubStatus(), "逾期未开始"));
String pointsInPolygon = LeafletjsUtil.generateRandomPointsInPolygon(plotObj.getPoint()); String pointsInPolygon = LeafletjsUtil.generateRandomPointsInPolygon(plotObj.getPoint());
target.setPlanModelPoint(pointsInPolygon); target.setPlanModelPoint(pointsInPolygon);
target.setPlanModelImage(speciesLibrary.getImageList());
targetList.add(target); targetList.add(target);
} }
return targetList; return targetList;

View File

@@ -76,11 +76,11 @@ public interface ModelManagementService {
Map<String, String> getCount(); Map<String, String> getCount();
/** /**
* 生命周期-名称 * 模型周期-名称
* @param planId => task_id * @param modelId => task_id
* @return * @return
*/ */
String getModelCycleName(String planId); String getModelCycleName(String modelId);
/** /**
* 获取当前计划下所有农事操作 * 获取当前计划下所有农事操作

View File

@@ -451,8 +451,10 @@ public class ModelManagementServiceImpl implements ModelManagementService {
} }
@Override @Override
public String getModelCycleName(String planId) { public String getModelCycleName(String modelId) {
return null; // TODO: 2025/9/9 这里处理当前日期是否在 排查开始日期+持续天数的范围内
List<ModelCycleDO> cycleDOS = modelCycleMapper.selectList("model_id", modelId);
return cycleDOS.stream().findFirst().get().getName();
} }
@Override @Override