feat (farm): 基地规划-网格信息

- 添加字段 网格信息
This commit is contained in:
达富斌
2025-08-27 22:36:33 +08:00
parent 0187a210b7
commit 12f0da8ce8
10 changed files with 116 additions and 73 deletions

View File

@@ -84,6 +84,26 @@ public class BaseInfoRespVO {
private String plotManager;
@Schema(description = "地块坐标")
private String plotPoint;
@Schema(description = "网格信息")
private List<GridInfo> 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;
}
}

View File

@@ -38,6 +38,9 @@ public class BaseNameRespVO {
@Schema(description = "地块总面积")
private BigDecimal plotArea;
@Schema(description = "剩余面积")
private BigDecimal remainingArea;
}
public BaseNameRespVO(String id, String name) {

View File

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

View File

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

View File

@@ -19,15 +19,15 @@ public class GridInfoRespVO {
@Schema(description = "类型", example = "2")
@ExcelProperty("类型")
private byte[] type;
private String type;
@Schema(description = "行")
@ExcelProperty("行")
private String manager;
private String gridRow;
@Schema(description = "列")
@ExcelProperty("列")
private BigDecimal area;
private String gridColumn;
@Schema(description = "颜色")
@ExcelProperty("颜色")

View File

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

View File

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

View File

@@ -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<GridInfoDO> {
default PageResult<GridInfoDO> selectPage(GridInfoPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<GridInfoDO>()
.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())

View File

@@ -31,6 +31,7 @@ public class CommonConstants {
public static Map<Integer, String> PLAN_MAP = new HashMap<>();
public static Map<String, String> LIFE_CYCLE_MAP = new HashMap<>();
public static Map<String, String> 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:引用案例)

View File

@@ -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<BaseNameRespVO.PlotInfoVO> 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<BaseInfoRespVO.PlotInfo> 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<BaseInfoRespVO.GridInfo> 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<BaseInfoRespVO.GridInfo> packageGridInfo(String plotId) {
List<GridInfoDO> gridList = gridInfoMapper.selectList("plot_id", plotId);
if (ObjectUtils.isEmpty(gridList)) {
return Collections.EMPTY_LIST;
}
return BeanUtils.toBean(gridList, BaseInfoRespVO.GridInfo.class);
}
}