From 12f0da8ce8b88b6e5821430dcefb009f5ecb0a5b 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 22:36: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-=E7=BD=91=E6=A0=BC=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加字段 网格信息 --- .../admin/baseinfo/vo/BaseInfoRespVO.java | 20 ++++ .../admin/baseinfo/vo/BaseNameRespVO.java | 3 + .../vo/ProductionPlanRespVO.java | 4 +- .../admin/gridinfo/vo/GridInfoPageReqVO.java | 6 +- .../admin/gridinfo/vo/GridInfoRespVO.java | 104 +++++++++--------- .../admin/gridinfo/vo/GridInfoSaveReqVO.java | 6 +- .../dal/dataobject/gridinfo/GridInfoDO.java | 16 +-- .../dal/mysql/gridinfo/GridInfoMapper.java | 6 +- .../module/farm/enums/CommonConstants.java | 4 + .../service/baseinfo/BaseInfoServiceImpl.java | 20 +++- 10 files changed, 116 insertions(+), 73 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 4c4500ff..a8d83cd5 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 @@ -84,6 +84,26 @@ public class BaseInfoRespVO { private String plotManager; @Schema(description = "地块坐标") private String plotPoint; + @Schema(description = "网格信息") + private List gridOverviewList; + } + + @Data + @AllArgsConstructor + @NoArgsConstructor + public static class GridInfo{ + @Schema(description = "网格ID") + private String id; + @Schema(description = "网格类型") + private String type; + @Schema(description = "网格类型-名称") + private String typeName; + @Schema(description = "网格-行") + private Integer row; + @Schema(description = "网格-列") + private Integer column; + @Schema(description = "网格-颜色") + private String color; } } diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/baseinfo/vo/BaseNameRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/baseinfo/vo/BaseNameRespVO.java index ff92c1ea..7d7cc02b 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/baseinfo/vo/BaseNameRespVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/baseinfo/vo/BaseNameRespVO.java @@ -38,6 +38,9 @@ public class BaseNameRespVO { @Schema(description = "地块总面积") private BigDecimal plotArea; + + @Schema(description = "剩余面积") + private BigDecimal remainingArea; } public BaseNameRespVO(String id, String name) { diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/cropFarmingCenter/vo/ProductionPlanRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/cropFarmingCenter/vo/ProductionPlanRespVO.java index 88f290b6..15f00e6a 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/cropFarmingCenter/vo/ProductionPlanRespVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/cropFarmingCenter/vo/ProductionPlanRespVO.java @@ -85,7 +85,9 @@ public class ProductionPlanRespVO { private Double predictedArea; @Schema(description = "剩余面积") private Double remainingArea; - @Schema(description = "占地面积") +// @Schema(description = "可用面积") +// private Double usableArea; + @Schema(description = "占地面积(百分比)") private Integer usagePercentage; @Schema(description = "备注") private String remark; diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/gridinfo/vo/GridInfoPageReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/gridinfo/vo/GridInfoPageReqVO.java index dd499fc1..2ae632a7 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/gridinfo/vo/GridInfoPageReqVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/gridinfo/vo/GridInfoPageReqVO.java @@ -15,13 +15,13 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ public class GridInfoPageReqVO extends PageParam { @Schema(description = "类型", example = "2") - private byte[] type; + private String type; @Schema(description = "行") - private String manager; + private String gridRow; @Schema(description = "列") - private BigDecimal area; + private String gridColumn; @Schema(description = "颜色") private String color; diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/gridinfo/vo/GridInfoRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/gridinfo/vo/GridInfoRespVO.java index 91d5f1d0..a704b2f6 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/gridinfo/vo/GridInfoRespVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/gridinfo/vo/GridInfoRespVO.java @@ -1,52 +1,52 @@ -package cn.iocoder.yudao.module.farm.controller.admin.gridinfo.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import java.math.BigDecimal; -import org.springframework.format.annotation.DateTimeFormat; -import java.time.LocalDateTime; -import cn.idev.excel.annotation.*; - -@Schema(description = "管理后台 - 网格 Response VO") -@Data -@ExcelIgnoreUnannotated -public class GridInfoRespVO { - - @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "12052") - @ExcelProperty("id") - private String id; - - @Schema(description = "类型", example = "2") - @ExcelProperty("类型") - private byte[] type; - - @Schema(description = "行") - @ExcelProperty("行") - private String manager; - - @Schema(description = "列") - @ExcelProperty("列") - private BigDecimal area; - - @Schema(description = "颜色") - @ExcelProperty("颜色") - private String color; - - @Schema(description = "创建时间") - @ExcelProperty("创建时间") - private LocalDateTime createTime; - - @Schema(description = "租户编号") - @ExcelProperty("租户编号") - private String tenantId; - - @Schema(description = "地块id") - @ExcelProperty("地块id") - private String plotId; - - @Schema(description = "描述") - @ExcelProperty("描述") - private String describe; - -} \ No newline at end of file +package cn.iocoder.yudao.module.farm.controller.admin.gridinfo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import cn.idev.excel.annotation.*; + +@Schema(description = "管理后台 - 网格 Response VO") +@Data +@ExcelIgnoreUnannotated +public class GridInfoRespVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "12052") + @ExcelProperty("id") + private String id; + + @Schema(description = "类型", example = "2") + @ExcelProperty("类型") + private String type; + + @Schema(description = "行") + @ExcelProperty("行") + private String gridRow; + + @Schema(description = "列") + @ExcelProperty("列") + private String gridColumn; + + @Schema(description = "颜色") + @ExcelProperty("颜色") + private String color; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "租户编号") + @ExcelProperty("租户编号") + private String tenantId; + + @Schema(description = "地块id") + @ExcelProperty("地块id") + private String plotId; + + @Schema(description = "描述") + @ExcelProperty("描述") + private String describe; + +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/gridinfo/vo/GridInfoSaveReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/gridinfo/vo/GridInfoSaveReqVO.java index 331951b5..154c322c 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/gridinfo/vo/GridInfoSaveReqVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/gridinfo/vo/GridInfoSaveReqVO.java @@ -14,13 +14,13 @@ public class GridInfoSaveReqVO { private String id; @Schema(description = "类型", example = "2") - private byte[] type; + private String type; @Schema(description = "行") - private String manager; + private String gridRow; @Schema(description = "列") - private BigDecimal area; + private String gridColumn; @Schema(description = "颜色") private String color; diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/gridinfo/GridInfoDO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/gridinfo/GridInfoDO.java index ef7fbdf5..52aa1cab 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/gridinfo/GridInfoDO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/gridinfo/GridInfoDO.java @@ -24,7 +24,6 @@ import java.math.BigDecimal; @NoArgsConstructor @AllArgsConstructor public class GridInfoDO extends BaseDO { - /** * id */ @@ -33,28 +32,29 @@ public class GridInfoDO extends BaseDO { /** * 类型 */ - private byte[] type; + private String type; /** * 行 */ - private String manager; + private String gridRow; /** * 列 */ - private BigDecimal area; + private String gridColumn; /** * 颜色 */ private String color; + /** + * 描述 + */ + private String describe; /** * 地块id */ private String plotId; /** - * 描述 + * 租户编号 */ - private String describe; - - @Schema(description = "租户编号") private String tenantId; } diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/gridinfo/GridInfoMapper.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/gridinfo/GridInfoMapper.java index 4c513675..fbf70024 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/gridinfo/GridInfoMapper.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/gridinfo/GridInfoMapper.java @@ -1,7 +1,5 @@ package cn.iocoder.yudao.module.farm.dal.mysql.gridinfo; -import java.util.*; - import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; @@ -20,8 +18,8 @@ public interface GridInfoMapper extends BaseMapperX { default PageResult selectPage(GridInfoPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .eqIfPresent(GridInfoDO::getType, reqVO.getType()) - .eqIfPresent(GridInfoDO::getManager, reqVO.getManager()) - .eqIfPresent(GridInfoDO::getArea, reqVO.getArea()) + .eqIfPresent(GridInfoDO::getGridRow, reqVO.getGridRow()) + .eqIfPresent(GridInfoDO::getGridColumn, reqVO.getGridColumn()) .eqIfPresent(GridInfoDO::getColor, reqVO.getColor()) .betweenIfPresent(GridInfoDO::getCreateTime, reqVO.getCreateTime()) .eqIfPresent(GridInfoDO::getTenantId, reqVO.getTenantId()) diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/enums/CommonConstants.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/enums/CommonConstants.java index 33b19b3f..30939102 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/enums/CommonConstants.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/enums/CommonConstants.java @@ -31,6 +31,7 @@ public class CommonConstants { public static Map PLAN_MAP = new HashMap<>(); public static Map LIFE_CYCLE_MAP = new HashMap<>(); + public static Map GRID_TYPE = new HashMap<>(); static { PLAN_MAP.put(PLAN_STATUS_1, "未开始"); @@ -43,6 +44,9 @@ public class CommonConstants { LIFE_CYCLE_MAP.put("1", "一年生"); LIFE_CYCLE_MAP.put("10", "多年生"); + + GRID_TYPE.put("1", "养殖类型"); + GRID_TYPE.put("2", "水产类型"); } // 模型类型 (1:模型模板; 2:引用案例) 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 0ea3ad76..d84d06e5 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 @@ -6,9 +6,11 @@ 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.baseinfo.vo.*; import cn.iocoder.yudao.module.farm.dal.dataobject.baseinfo.BaseInfoDO; +import cn.iocoder.yudao.module.farm.dal.dataobject.gridinfo.GridInfoDO; import cn.iocoder.yudao.module.farm.dal.dataobject.personnelmanagement.PersonnelManagementDO; import cn.iocoder.yudao.module.farm.dal.dataobject.plotinfo.PlotInfoDO; import cn.iocoder.yudao.module.farm.dal.mysql.baseinfo.BaseInfoMapper; +import cn.iocoder.yudao.module.farm.dal.mysql.gridinfo.GridInfoMapper; import cn.iocoder.yudao.module.farm.dal.mysql.personnelmanagement.PersonnelManagementMapper; import cn.iocoder.yudao.module.farm.dal.mysql.plotinfo.PlotInfoMapper; import cn.iocoder.yudao.module.farm.dal.mysql.productionplan.ProductionPlanMapper; @@ -16,11 +18,13 @@ import cn.iocoder.yudao.module.farm.dal.mysql.specieslibrary.SpeciesLibraryMappe import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import jakarta.annotation.Resource; +import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -48,6 +52,8 @@ public class BaseInfoServiceImpl implements BaseInfoService { private SpeciesLibraryMapper speciesLibraryMapper; @Resource private PersonnelManagementMapper personnelManagementMapper; + @Resource + private GridInfoMapper gridInfoMapper; @Override @@ -125,7 +131,8 @@ public class BaseInfoServiceImpl implements BaseInfoService { List childList = new ArrayList<>(); for (PlotInfoDO aDo : plotInfoDOS) { if (aDo.getBaseId().equals(key)) { - childList.add(new BaseNameRespVO.PlotInfoVO(aDo.getPlotId(), aDo.getPlotName(), aDo.getPlotArea())); + BigDecimal remainingArea = BigDecimal.valueOf(2.00); // todo + childList.add(new BaseNameRespVO.PlotInfoVO(aDo.getPlotId(), aDo.getPlotName(), aDo.getPlotArea(),remainingArea)); } } obj.setChildren(childList); @@ -201,10 +208,19 @@ public class BaseInfoServiceImpl implements BaseInfoService { List targetList = new ArrayList<>(); for (PlotInfoDO aDo : plotList) { String plotManager = employeeMap.getOrDefault(aDo.getEmployeeId(), "系统"); - BaseInfoRespVO.PlotInfo target = new BaseInfoRespVO.PlotInfo(aDo.getId(), aDo.getPlotName(), aDo.getPlotColor(), aDo.getPlotArea(), plotManager,aDo.getPoint()); + List gridInfos = this.packageGridInfo(aDo.getId()); + BaseInfoRespVO.PlotInfo target = new BaseInfoRespVO.PlotInfo(aDo.getId(), aDo.getPlotName(), aDo.getPlotColor(), aDo.getPlotArea(), plotManager,aDo.getPoint(),gridInfos); targetList.add(target); } obj.setPlotOverviewList(targetList); } } + + private List packageGridInfo(String plotId) { + List gridList = gridInfoMapper.selectList("plot_id", plotId); + if (ObjectUtils.isEmpty(gridList)) { + return Collections.EMPTY_LIST; + } + return BeanUtils.toBean(gridList, BaseInfoRespVO.GridInfo.class); + } } \ No newline at end of file