From 73b93434d6d0463802cda136a217ddddd233f721 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=BE=E5=AF=8C=E6=96=8C?= Date: Wed, 22 Oct 2025 18:23:44 +0800 Subject: [PATCH] =?UTF-8?q?feat=20(farm):=20=E5=9C=B0=E5=9D=97=E7=AE=A1?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加地块种植类型 --- .../farm/controller/admin/home/vo/HomeInfo.java | 2 +- .../baseinfo/PlotInfoController.java | 10 +++++++++- .../baseinfo/vo/BaseInfoRespVO.java | 3 +++ .../baseinfo/vo/PlotInfoRespVO.java | 3 ++- .../baseinfo/vo/PlotLesseeDetailsRespVO.java | 14 ++++++++++++++ .../baseinfo/vo/PlotLesseeInfoRespVO.java | 3 ++- .../inputlibrary/InputLibraryController.java | 2 +- .../yudao/module/farm/enums/CommonConstants.java | 4 ++++ .../farm/service/baseinfo/BaseInfoServiceImpl.java | 4 +++- .../module/farm/service/home/HomeServiceImpl.java | 2 +- .../farm/service/plotinfo/PlotInfoServiceImpl.java | 14 +++++++++++--- .../productionplan/ProductionPlanServiceImpl.java | 5 +++++ 12 files changed, 56 insertions(+), 10 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 3b94c423..2d36194c 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 @@ -153,7 +153,7 @@ public class HomeInfo { @Schema(description = "种植状态 (1: 在种; 2: 未种;)") private String growFlag; @Schema(description = "种植面积") // 2025/10/15 种植面积 修改为 地块面积 , 字段名为修改!! 只是修改了取值!!! - private Double growArea; + private Integer growArea; @Schema(description = "在种作物数量") // 2025/10/15 在种作物数量 修改为 物种数量 , 字段名未修改!! 只是修改了取值!!! private Integer beingCrop; @Schema(description = "生产计划任务数量") diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/baseinfo/PlotInfoController.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/baseinfo/PlotInfoController.java index e13cc5bb..b817c64b 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/baseinfo/PlotInfoController.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/baseinfo/PlotInfoController.java @@ -25,6 +25,7 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.module.farm.enums.CommonConstants.PLOT_TYPE_NAME_MAP; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; @@ -83,7 +84,12 @@ public class PlotInfoController { @Operation(summary = "获得地块分页") public CommonResult> getPlotInfoPage(@Valid PlotInfoPageReqVO pageReqVO) { PageResult pageResult = plotInfoService.getPlotInfoPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, PlotInfoRespVO.class)); + PageResult result = BeanUtils.toBean(pageResult, PlotInfoRespVO.class); + for (PlotInfoRespVO p : result.getList()) { + p.setTypeName(PLOT_TYPE_NAME_MAP.get(p.getType())); + } + + return success(result); } @GetMapping("/export-excel") @@ -98,4 +104,6 @@ public class PlotInfoController { BeanUtils.toBean(list, PlotInfoRespVO.class)); } + + } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/baseinfo/vo/BaseInfoRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/baseinfo/vo/BaseInfoRespVO.java index 20a1cd39..315ccbc1 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/baseinfo/vo/BaseInfoRespVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/baseinfo/vo/BaseInfoRespVO.java @@ -72,6 +72,9 @@ public class BaseInfoRespVO { @AllArgsConstructor @NoArgsConstructor public static class PlotInfo{ + @Schema(description = "地块类型") + private Integer type; + private String typeName; @Schema(description = "地块ID") private String plotId; @Schema(description = "地块名称") diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/baseinfo/vo/PlotInfoRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/baseinfo/vo/PlotInfoRespVO.java index caabb200..5434d78f 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/baseinfo/vo/PlotInfoRespVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/baseinfo/vo/PlotInfoRespVO.java @@ -54,7 +54,8 @@ public class PlotInfoRespVO { private String tenantId; @Schema(description = "种植类型") - private String type; + private Integer type; + private String typeName; @Schema(description = " 租赁状态 (1: 已租; 0: 未租;)") private Integer plotLeaseStatus; diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/baseinfo/vo/PlotLesseeDetailsRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/baseinfo/vo/PlotLesseeDetailsRespVO.java index 95085c8f..92d0d34d 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/baseinfo/vo/PlotLesseeDetailsRespVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/baseinfo/vo/PlotLesseeDetailsRespVO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.farm.controller.admin.managementcenter.baseinfo.vo; +import cn.idev.excel.annotation.ExcelProperty; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; @@ -17,18 +18,31 @@ import lombok.NoArgsConstructor; public class PlotLesseeDetailsRespVO { @Schema(description = "ID") private String id; + @Schema(description = "姓名") + @ExcelProperty("姓名") private String leaseName; + @Schema(description = "身份证号码") + @ExcelProperty("身份证号码") private String leaseIdCard; + @Schema(description = "手机号码") + @ExcelProperty("手机号码") private String leasePhone; + @Schema(description = "租赁开始日期") + @ExcelProperty("租赁开始日期") @JsonFormat(pattern = "yyyy-MM-dd") private String leaseStartDate; + @Schema(description = "租赁接口日期") + @ExcelProperty("租赁接口日期") @JsonFormat(pattern = "yyyy-MM-dd") private String leaseEndDate; + @Schema(description = "租赁状态 (1: 当前租赁人; 2: 历史租赁人)") private String leaseStatus; + @ExcelProperty("租赁状态") + private String leaseStatusName; } diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/baseinfo/vo/PlotLesseeInfoRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/baseinfo/vo/PlotLesseeInfoRespVO.java index c08e4ebf..a745e76f 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/baseinfo/vo/PlotLesseeInfoRespVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/baseinfo/vo/PlotLesseeInfoRespVO.java @@ -54,7 +54,8 @@ public class PlotLesseeInfoRespVO { private String tenantId; @Schema(description = "种植类型") - private String type; + private Integer type; + private String typeName; @Schema(description = " 租赁状态 (1: 已租; 0: 未租;)") private Integer plotLeaseStatus; diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/InputLibraryController.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/InputLibraryController.java index 2457d9f0..722acf03 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/InputLibraryController.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/InputLibraryController.java @@ -137,7 +137,7 @@ public class InputLibraryController { return success(pageResult); } - @GetMapping("/usage-records/create") + @PostMapping("/usage-records/create") @Operation(summary = "投入品使用日志-新增)") public CommonResult createInputUsageRecords(InputUsageRecordsSaveReqVO req) { inputsManager.createInputUsageRecords(req); 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 32dbf4d9..57df8990 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 @@ -104,9 +104,13 @@ public class CommonConstants { public static Map USAGE_STATUS_MAP = new HashMap<>(); public static Map INPUT_CATEGORY_MAP = new HashMap<>(); public static Map FARMING_RECORD_TASK_STATUS_MAP = new HashMap<>(); + public static Map PLOT_TYPE_NAME_MAP = new HashMap<>(); static { + PLOT_TYPE_NAME_MAP.put(1, "种植地块"); + PLOT_TYPE_NAME_MAP.put(2, "养殖地块"); + FARMING_RECORD_TASK_STATUS_MAP.put(FARMING_RECORD_STATUS_0, "未开始"); FARMING_RECORD_TASK_STATUS_MAP.put(FARMING_RECORD_STATUS_1, "开始"); FARMING_RECORD_TASK_STATUS_MAP.put(FARMING_RECORD_STATUS_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 76a1428c..2949bc4c 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 @@ -50,6 +50,7 @@ import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser; +import static cn.iocoder.yudao.module.farm.enums.CommonConstants.PLOT_TYPE_NAME_MAP; import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.*; /** @@ -308,7 +309,8 @@ public class BaseInfoServiceImpl implements BaseInfoService { for (PlotInfoDO aDo : plotList) { String plotManager = employeeMap.getOrDefault(aDo.getEmployeeId(), "系统"); List gridInfos = this.packageGridInfo(aDo.getId()); - BaseInfoRespVO.PlotInfo target = new BaseInfoRespVO.PlotInfo(aDo.getId(), aDo.getPlotName(), aDo.getPlotColor(), BigDecimalUtil.roundedViaMath( aDo.getPlotArea()), plotManager, aDo.getPoint(), gridInfos); + String typeName = PLOT_TYPE_NAME_MAP.get(Integer.valueOf(aDo.getType())); + BaseInfoRespVO.PlotInfo target = new BaseInfoRespVO.PlotInfo(Integer.valueOf(aDo.getType()),typeName,aDo.getId(), aDo.getPlotName(), aDo.getPlotColor(), BigDecimalUtil.roundedViaMath( aDo.getPlotArea()), plotManager, aDo.getPoint(), gridInfos); targetList.add(target); } return targetList; 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 53a9b406..edecc275 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,7 +201,7 @@ public class HomeServiceImpl implements HomeService { t.setPlotId(e.getPlotId()); t.setPlotName(e.getPlotName()); t.setGrowFlag(growFlag); - t.setGrowArea(e.getPlotArea().doubleValue()); + t.setGrowArea(e.getPlotArea().intValue()); t.setBeingCrop(growingCropCount); t.setTaskCount(taskCount); t.setLotCount(iotCount); diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/plotinfo/PlotInfoServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/plotinfo/PlotInfoServiceImpl.java index afcdc3f1..4dd4bff9 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/plotinfo/PlotInfoServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/plotinfo/PlotInfoServiceImpl.java @@ -32,6 +32,7 @@ import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser; import static cn.iocoder.yudao.module.farm.enums.CommonConstants.LEASE_STATUS_MAP; +import static cn.iocoder.yudao.module.farm.enums.CommonConstants.PLOT_TYPE_NAME_MAP; import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.*; /** @@ -71,9 +72,11 @@ public class PlotInfoServiceImpl implements PlotInfoService { plotInfo.setTenantId(String.valueOf(user.getTenantId())); plotInfoMapper.insert(plotInfo); - PlotLesseeSaveReqVO plotLesseeSaveReqVO = createReqVO.getPlotLessee(); - PlotLesseeDO plotLesseeDO = BeanUtils.toBean(plotLesseeSaveReqVO, PlotLesseeDO.class); - insertLessee(plotLesseeDO, createReqVO.getBaseId(), plotInfo.getId(), plotInfo.getPlotName()); + if (createReqVO.getPlotLeaseStatus() == 1) { + PlotLesseeSaveReqVO plotLesseeSaveReqVO = createReqVO.getPlotLessee(); + PlotLesseeDO plotLesseeDO = BeanUtils.toBean(plotLesseeSaveReqVO, PlotLesseeDO.class); + insertLessee(plotLesseeDO, createReqVO.getBaseId(), plotInfo.getId(), plotInfo.getPlotName()); + } // 返回 return plotInfo.getId(); @@ -102,6 +105,10 @@ public class PlotInfoServiceImpl implements PlotInfoService { PlotInfoDO plotInfo = BeanUtils.toBean(updateReqVO, PlotInfoDO.class); plotInfoMapper.updateById(plotInfo); + if (updateReqVO.getPlotLeaseStatus() == 0) { + return; + } + // 重置所有租赁状态为: 未租 List doList = plotLesseeMapper.selectList("plot_id", updateReqVO.getId()); doList.forEach(e -> e.setLeaseStatus(CommonConstants.NO_CODE)); @@ -180,6 +187,7 @@ public class PlotInfoServiceImpl implements PlotInfoService { PlotInfoDO plotInfoDO = this.getPlotInfo(id); PlotLesseeInfoRespVO plotLesseeDetailsRespVO = BeanUtils.toBean(plotInfoDO, PlotLesseeInfoRespVO.class); + plotLesseeDetailsRespVO.setTypeName(PLOT_TYPE_NAME_MAP.get(plotLesseeDetailsRespVO.getType())); plotLesseeDetailsRespVO.setPlotLessee(subLesseeInfo); plotLesseeDetailsRespVO.setPlotLeaseStatusName(LEASE_STATUS_MAP.get(plotLesseeDetailsRespVO.getPlotLeaseStatus())); return plotLesseeDetailsRespVO; diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/productionplan/ProductionPlanServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/productionplan/ProductionPlanServiceImpl.java index dfd2adc5..a3672264 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/productionplan/ProductionPlanServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/productionplan/ProductionPlanServiceImpl.java @@ -129,6 +129,11 @@ public class ProductionPlanServiceImpl implements ProductionPlanService { LambdaQueryWrapperX qw = new LambdaQueryWrapperX<>(); qw.eqIfPresent(ProductionPlanDO::getBaseId, baseId); qw.eqIfPresent(ProductionPlanDO::getPlotId, plotId); + // 获取当年的开始和结束日期 + LocalDate now = LocalDate.now(); + LocalDate startOfYear = LocalDate.of(now.getYear(), 1, 1); // 当年1月1日 + LocalDate endOfYear = LocalDate.of(now.getYear(), 12, 31); // 当年12月31日 + qw.between(ProductionPlanDO::getProductionStartDate, startOfYear, endOfYear); return productionPlanMapper.selectList(qw); }