From 0f48b1133053cd2731e171a6f2add83c41044977 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=BE=E5=AF=8C=E6=96=8C?= Date: Wed, 20 Aug 2025 15:32:00 +0800 Subject: [PATCH] =?UTF-8?q?feat=20(farm):=20=E4=B8=9A=E5=8A=A1=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 字典表,收纳所有的字典内容 - 管理中心 (农事类型,农事名称)维护到字典表中 - 种植中心 (生产计划,农事记录)业务逻辑接口实现 --- .../CropFarmingCenterController.java | 120 ++++++++ .../vo/ProductionPlanSaveReqVO.java | 80 +++++ .../controller/admin/dict/DictController.java | 193 ++++++++++-- .../admin/dict/vo/FarmingTypeRespVO.java | 3 + .../admin/dict/vo/sys/SysDictPageReqVO.java | 45 +++ .../admin/dict/vo/sys/SysDictReqVO.java | 36 +++ .../admin/dict/vo/sys/SysDictRespVO.java | 48 +++ .../admin/dict/vo/sys/SysDictSaveVO.java | 44 +++ .../dict/vo/sys/SysDictTypeCodeRespVO.java | 18 ++ .../vo/DisasterDataPageReqVO.java | 37 +-- .../disasterdata/vo/DisasterDataRespVO.java | 149 ++++++---- .../vo/DisasterDataSaveReqVO.java | 30 +- .../vo/FarmingNameMaintenancePageReqVO.java | 30 +- .../vo/FarmingNameMaintenanceRespVO.java | 102 +++---- .../vo/FarmingNameMaintenanceSaveReqVO.java | 28 +- .../FarmingRecordController.java | 2 +- .../vo/FarmingTypeMaintenancePageReqVO.java | 29 +- .../vo/FarmingTypeMaintenanceRespVO.java | 102 +++---- .../vo/FarmingTypeMaintenanceSaveReqVO.java | 33 +-- .../inputlibrary/vo/InputLibraryRespVO.java | 204 ++++++------- .../vo/SpeciesLibraryRespVO.java | 4 + .../disasterdata/DisasterDataDO.java | 58 +++- .../FarmingNameMaintenanceDO.java | 20 +- .../FarmingTypeMaintenanceDO.java | 8 +- .../inputlibrary/InputLibraryDO.java | 3 - .../specieslibrary/SpeciesLibraryDO.java | 6 +- .../disasterdata/DisasterDataMapper.java | 22 +- .../FarmingNameMaintenanceMapper.java | 8 +- .../FarmingTypeMaintenanceMapper.java | 13 +- .../farm/dal/mysql/sysDict/SysDictDO.java | 33 +++ .../farm/dal/mysql/sysDict/SysDictMapper.java | 33 +++ .../CropFarmingCenterService.java | 18 ++ .../CropFarmingCenterServiceImpl.java | 40 +++ .../disasterdata/DisasterDataServiceImpl.java | 9 +- .../FarmingNameMaintenanceServiceImpl.java | 2 + .../FarmingTypeMaintenanceService.java | 2 + .../FarmingTypeMaintenanceServiceImpl.java | 9 +- .../SpeciesClassifyLibraryServiceImpl.java | 1 - .../farm/service/sysDict/SysDictService.java | 57 ++++ .../service/sysDict/SysDictServiceImpl.java | 276 ++++++++++++++++++ .../module/farm/utils/StrHelperUtil.java | 35 +++ .../main/resources/mapper/SysDictMapper.xml | 204 +++++++++++++ .../disasterdata/DisasterDataMapper.xml | 57 ++++ .../FarmingTypeMaintenanceMapper.xml | 23 ++ .../SpeciesClassifyLibraryMapper.xml | 47 +-- 45 files changed, 1841 insertions(+), 480 deletions(-) create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/cropFarmingCenter/CropFarmingCenterController.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/cropFarmingCenter/vo/ProductionPlanSaveReqVO.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/vo/sys/SysDictPageReqVO.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/vo/sys/SysDictReqVO.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/vo/sys/SysDictRespVO.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/vo/sys/SysDictSaveVO.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/vo/sys/SysDictTypeCodeRespVO.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/sysDict/SysDictDO.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/sysDict/SysDictMapper.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/cropFarmingCenter/CropFarmingCenterService.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/cropFarmingCenter/CropFarmingCenterServiceImpl.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/sysDict/SysDictService.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/sysDict/SysDictServiceImpl.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/utils/StrHelperUtil.java create mode 100644 yudao-module-farm/src/main/resources/mapper/SysDictMapper.xml diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/cropFarmingCenter/CropFarmingCenterController.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/cropFarmingCenter/CropFarmingCenterController.java new file mode 100644 index 00000000..a3a8da1a --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/cropFarmingCenter/CropFarmingCenterController.java @@ -0,0 +1,120 @@ +package cn.iocoder.yudao.module.farm.controller.admin.cropFarmingCenter; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.farm.controller.admin.farmingrecord.vo.FarmingRecordPageReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.farmingrecord.vo.FarmingRecordRespVO; +import cn.iocoder.yudao.module.farm.controller.admin.farmingrecord.vo.FarmingRecordSaveReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.productionplan.vo.ProductionPlanPageReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.productionplan.vo.ProductionPlanRespVO; +import cn.iocoder.yudao.module.farm.controller.admin.productionplan.vo.ProductionPlanSaveReqVO; +import cn.iocoder.yudao.module.farm.dal.dataobject.farmingrecord.FarmingRecordDO; +import cn.iocoder.yudao.module.farm.dal.dataobject.productionplan.ProductionPlanDO; +import cn.iocoder.yudao.module.farm.service.cropFarmingCenter.CropFarmingCenterService; +import cn.iocoder.yudao.module.farm.service.farmingrecord.FarmingRecordService; +import cn.iocoder.yudao.module.farm.service.productionplan.ProductionPlanService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +/** + * @description: 种植中心 + * 种植区域: farm_cultivation_area + * 模型: farm_model_management + * 生产计划: farm_production_plan + * 农事记录: farm_farming_record + * @author: binda + * @date: 2025/8/19 10:39 + */ +@Tag(name = "种植中心") +@RestController +@RequestMapping("/farm/farming-center") +@Validated +@Slf4j +public class CropFarmingCenterController { + + private final CropFarmingCenterService cropFarmingCenterService; + private final ProductionPlanService productionPlanService; + private final FarmingRecordService farmingRecordService; + + public CropFarmingCenterController(CropFarmingCenterService cropFarmingCenterService, + ProductionPlanService productionPlanService, + FarmingRecordService farmingRecordService) { + this.cropFarmingCenterService = cropFarmingCenterService; + this.productionPlanService = productionPlanService; + this.farmingRecordService = farmingRecordService; + } + + + + // 生产计划 + @GetMapping("/production-plan/page") + @Operation(summary = "生产计划-分页") + public CommonResult> getProductionPlanPage(@Valid ProductionPlanPageReqVO pageReqVO) { + PageResult pageResult = productionPlanService.getProductionPlanPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, ProductionPlanRespVO.class)); + } + + @GetMapping("/production-plan/get/{id}") + @Operation(summary = "生产计划-查看") + public CommonResult getProductionPlan(@PathVariable("id") String id) { + ProductionPlanDO productionPlan = productionPlanService.getProductionPlan(id); + return success(BeanUtils.toBean(productionPlan, ProductionPlanRespVO.class)); + } + + @PostMapping("/production-plan/create") + @Operation(summary = "生产计划-创建") + public CommonResult createProductionPlan(@Valid @RequestBody cn.iocoder.yudao.module.farm.controller.admin.cropFarmingCenter.vo.ProductionPlanSaveReqVO createReqVO) { + String res = cropFarmingCenterService.createProductionPlan(createReqVO); + return success(res); + } + + @PutMapping("/production-plan/update") + @Operation(summary = "生产计划-编辑") + public CommonResult updateProductionPlan(@Valid @RequestBody ProductionPlanSaveReqVO updateReqVO) { + productionPlanService.updateProductionPlan(updateReqVO); + return success(true); + } + + // 农事记录 + @GetMapping("/farming-record/page") + @Operation(summary = "农事记录-分页") + public CommonResult> getFarmingRecordPage(@Valid FarmingRecordPageReqVO pageReqVO) { + PageResult pageResult = farmingRecordService.getFarmingRecordPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, FarmingRecordRespVO.class)); + } + + @GetMapping("/farming-record/get/{id}") + @Operation(summary = "农事记录-查看") + public CommonResult getFarmingRecord(@PathVariable("id") String id) { + FarmingRecordDO farmingRecord = farmingRecordService.getFarmingRecord(id); + return success(BeanUtils.toBean(farmingRecord, FarmingRecordRespVO.class)); + } + + @PostMapping("/farming-record/create") + @Operation(summary = "农事记录-新增") + public CommonResult createFarmingRecord(@Valid @RequestBody FarmingRecordSaveReqVO createReqVO) { + return success(farmingRecordService.createFarmingRecord(createReqVO)); + } + + @PutMapping("/farming-record/update") + @Operation(summary = "农事记录-编辑") + public CommonResult updateFarmingRecord(@Valid @RequestBody FarmingRecordSaveReqVO updateReqVO) { + farmingRecordService.updateFarmingRecord(updateReqVO); + return success(true); + } + + @DeleteMapping("/farming-record/delete/{id}") + @Operation(summary = "农事记录-删除") + public CommonResult deleteFarmingRecord(@PathVariable("id") String id) { + farmingRecordService.deleteFarmingRecord(id); + return success(true); + } + +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/cropFarmingCenter/vo/ProductionPlanSaveReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/cropFarmingCenter/vo/ProductionPlanSaveReqVO.java new file mode 100644 index 00000000..b791a4e0 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/cropFarmingCenter/vo/ProductionPlanSaveReqVO.java @@ -0,0 +1,80 @@ +package cn.iocoder.yudao.module.farm.controller.admin.cropFarmingCenter.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDate; +import java.util.List; + +/** + * @description: 生产计划 - 保存请求实体类 + * @author: binda + * @date: 2025/8/19 11:29 + */ +@Data +public class ProductionPlanSaveReqVO { + + @Schema(description = "UUID") + private String id; + + @Schema(description = "计划编号") + private String planNumber; + + @Schema(description = "种植物种-编码") + private String plantSpeciesCode; + + @Schema(description = "物种模型-ID") + private String speciesModelId; + + @Schema(description = "排产开始日期") + private LocalDate productionStartDate; + + @Schema(description = "排产结束日期") + private LocalDate productionEndDate; + + @Schema(description = "采收开始日期") + private LocalDate harvestStartDate; + + @Schema(description = "计划执行状态") + private Integer planStatus; + + @Schema(description = "种植区域集合") + private List cultivationAreaList; + + /** + * 种植区域 + */ + @Data + public static class CultivationArea { + + @Schema(description = "租户ID") + private String tenantId; + @Schema(description = "基地ID") + private String baseId; + @Schema(description = "基地名称") + private String baseName; + @Schema(description = "地块ID") + private String plotId; + @Schema(description = "地块名称") + private String plotName; + + /** + * 种植区域信息 + */ + @Schema(description = "种植日期") + private LocalDate plantingDate; + @Schema(description = "种植株数") + private LocalDate plantingQuantity; + @Schema(description = "预计产量") + private Long predictedYields; + @Schema(description = "计划面积") + private Long predictedArea; + @Schema(description = "剩余面积") + private Long remainingArea; + @Schema(description = "占地面积") + private Integer usagePercentage; + + } + + +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/DictController.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/DictController.java index d65c243b..6918045e 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/DictController.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/DictController.java @@ -3,9 +3,12 @@ package cn.iocoder.yudao.module.farm.controller.admin.dict; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.CommonDictRespVO; -import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.FarmingTypeRespVO; -import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.SpeciesClassifyLibraryRespVO; +import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.*; +import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.sys.SysDictRespVO; +import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.sys.SysDictTypeCodeRespVO; +import cn.iocoder.yudao.module.farm.controller.admin.disasterdata.vo.DisasterDataPageReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.disasterdata.vo.DisasterDataRespVO; +import cn.iocoder.yudao.module.farm.controller.admin.disasterdata.vo.DisasterDataSaveReqVO; import cn.iocoder.yudao.module.farm.controller.admin.farmingnamemaintenance.vo.FarmingNameMaintenancePageReqVO; import cn.iocoder.yudao.module.farm.controller.admin.farmingnamemaintenance.vo.FarmingNameMaintenanceRespVO; import cn.iocoder.yudao.module.farm.controller.admin.farmingnamemaintenance.vo.FarmingNameMaintenanceSaveReqVO; @@ -18,16 +21,20 @@ import cn.iocoder.yudao.module.farm.controller.admin.inputlibrary.vo.InputLibrar import cn.iocoder.yudao.module.farm.controller.admin.specieslibrary.vo.SpeciesLibraryPageReqVO; import cn.iocoder.yudao.module.farm.controller.admin.specieslibrary.vo.SpeciesLibraryRespVO; import cn.iocoder.yudao.module.farm.controller.admin.specieslibrary.vo.SpeciesLibrarySaveReqVO; +import cn.iocoder.yudao.module.farm.dal.dataobject.disasterdata.DisasterDataDO; import cn.iocoder.yudao.module.farm.dal.dataobject.farmingnamemaintenance.FarmingNameMaintenanceDO; import cn.iocoder.yudao.module.farm.dal.dataobject.farmingtypemaintenance.FarmingTypeMaintenanceDO; import cn.iocoder.yudao.module.farm.dal.dataobject.inputlibrary.InputLibraryDO; import cn.iocoder.yudao.module.farm.dal.dataobject.speciesclassifylibrary.SpeciesClassifyLibraryDO; import cn.iocoder.yudao.module.farm.dal.dataobject.specieslibrary.SpeciesLibraryDO; +import cn.iocoder.yudao.module.farm.dal.mysql.sysDict.SysDictDO; +import cn.iocoder.yudao.module.farm.service.disasterdata.DisasterDataService; import cn.iocoder.yudao.module.farm.service.farmingnamemaintenance.FarmingNameMaintenanceService; import cn.iocoder.yudao.module.farm.service.farmingtypemaintenance.FarmingTypeMaintenanceService; import cn.iocoder.yudao.module.farm.service.inputlibrary.InputLibraryService; import cn.iocoder.yudao.module.farm.service.speciesclassifylibrary.SpeciesClassifyLibraryService; import cn.iocoder.yudao.module.farm.service.specieslibrary.SpeciesLibraryService; +import cn.iocoder.yudao.module.farm.service.sysDict.SysDictService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; @@ -46,8 +53,7 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; * 物种库维护: farm_species_library * 物种分类库维护 farm_species_classify_library * 投入品库维护: farm_input_library - * 灾害库维护: farm_disaster_data - * 气象灾害库维护 : farm_weather_disaster_library + * 灾害/气象灾害库维护: farm_disaster_data * @author: binda * @date: 2025/8/16 16:07 */ @@ -62,41 +68,52 @@ public class DictController { private final SpeciesLibraryService speciesLibraryService; private final SpeciesClassifyLibraryService speciesClassifyLibraryService; private final InputLibraryService inputLibraryService; + private final DisasterDataService disasterDataService; + private final SysDictService sysDictService; - public DictController(FarmingTypeMaintenanceService farmingTypeMaintenanceService, FarmingNameMaintenanceService farmingNameMaintenanceService, SpeciesLibraryService speciesLibraryService, SpeciesClassifyLibraryService speciesClassifyLibraryService, InputLibraryService inputLibraryService) { + public DictController(FarmingTypeMaintenanceService farmingTypeMaintenanceService, FarmingNameMaintenanceService farmingNameMaintenanceService, SpeciesLibraryService speciesLibraryService, SpeciesClassifyLibraryService speciesClassifyLibraryService, InputLibraryService inputLibraryService, DisasterDataService disasterDataService, SysDictService sysDictService) { this.farmingTypeMaintenanceService = farmingTypeMaintenanceService; this.farmingNameMaintenanceService = farmingNameMaintenanceService; this.speciesLibraryService = speciesLibraryService; this.speciesClassifyLibraryService = speciesClassifyLibraryService; this.inputLibraryService = inputLibraryService; + this.disasterDataService = disasterDataService; + this.sysDictService = sysDictService; } // 农事类型 @Operation(summary = "字典数据维护-农事类型-分页") @GetMapping("/farming-type/page") public CommonResult> getFarmingTypePage(FarmingTypeMaintenancePageReqVO reqVO) { - PageResult pageResult = farmingTypeMaintenanceService.getFarmingTypeMaintenancePage(reqVO); - return success(BeanUtils.toBean(pageResult, FarmingTypeMaintenanceRespVO.class)); + PageResult result = sysDictService.getFarmingTypeMaintenancePage(reqVO); + return success(BeanUtils.toBean(result, FarmingTypeMaintenanceRespVO.class)); + } + + @Operation(summary = "字典数据维护-农事类型-查看") + @GetMapping("/farming-type/get/{id}") + public CommonResult getFarmingTypeMaintenance(@PathVariable("id") String id) { + FarmingTypeMaintenanceDO aDo = sysDictService.getFarmingTypeMaintenance(id); + return success(BeanUtils.toBean(aDo, FarmingTypeMaintenanceRespVO.class)); } @Operation(summary = "字典数据维护-农事类型-新增") @PostMapping("/farming-type/create") - public CommonResult createFarmingType(@RequestBody FarmingTypeMaintenanceSaveReqVO saveVO) { - String res = farmingTypeMaintenanceService.createFarmingTypeMaintenance(saveVO); - return success(res); + public CommonResult createFarmingType(@RequestBody FarmingTypeMaintenanceSaveReqVO saveVO) { + sysDictService.createFarmingTypeMaintenance(saveVO); + return success(true); } @Operation(summary = "字典数据维护-农事类型-编辑") @PutMapping("/farming-type/update") public CommonResult updateFarmingType(@RequestBody FarmingTypeMaintenanceSaveReqVO updateVO) { - farmingTypeMaintenanceService.updateFarmingTypeMaintenance(updateVO); + sysDictService.updateFarmingTypeMaintenance(updateVO); return success(true); } @Operation(summary = "字典数据维护-农事类型-删除") @DeleteMapping("/farming-type/delete/{id}") public CommonResult delFarmingType(@PathVariable("id") String id) { - farmingTypeMaintenanceService.deleteFarmingTypeMaintenance(id); + sysDictService.deleteFarmingTypeMaintenance(id); return success(true); } @@ -104,21 +121,29 @@ public class DictController { @Operation(summary = "字典数据维护-农事名称-分页") @GetMapping("/farming-name/page") public CommonResult> getFarmingNameMaintenancePage(@Valid FarmingNameMaintenancePageReqVO pageReqVO) { - PageResult pageResult = farmingNameMaintenanceService.getFarmingNameMaintenancePage(pageReqVO); + PageResult pageResult = sysDictService.getFarmingNameMaintenancePage(pageReqVO); return success(BeanUtils.toBean(pageResult, FarmingNameMaintenanceRespVO.class)); } + @Operation(summary = "字典数据维护-农事名称-查看") + @GetMapping("/farming-name/get/{id}") + public CommonResult getFarmingNameMaintenance(@PathVariable("id") String id) { + FarmingNameMaintenanceDO farmingNameMaintenance = sysDictService.getFarmingNameMaintenance(id); + return success(BeanUtils.toBean(farmingNameMaintenance, FarmingNameMaintenanceRespVO.class)); + } + @Operation(summary = "字典数据维护-农事名称-新增") @PostMapping("/farming-name/create") - public CommonResult createFarmingNameMaintenance(@Valid @RequestBody FarmingNameMaintenanceSaveReqVO createReqVO) { - return success(farmingNameMaintenanceService.createFarmingNameMaintenance(createReqVO)); + public CommonResult createFarmingNameMaintenance(@Valid @RequestBody FarmingNameMaintenanceSaveReqVO createReqVO) { + sysDictService.createFarmingNameMaintenance(createReqVO); + return success(true); } @Operation(summary = "字典数据维护-农事名称-编辑") @PutMapping("/farming-name/update") public CommonResult updateFarmingNameMaintenance(@Valid @RequestBody FarmingNameMaintenanceSaveReqVO updateReqVO) { - farmingNameMaintenanceService.updateFarmingNameMaintenance(updateReqVO); + sysDictService.updateFarmingNameMaintenance(updateReqVO); return success(true); } @@ -126,7 +151,7 @@ public class DictController { @Operation(summary = "字典数据维护-农事名称-删除") @DeleteMapping("/farming-name/delete/{id}") public CommonResult deleteFarmingNameMaintenance(@PathVariable("id") String id) { - farmingNameMaintenanceService.deleteFarmingNameMaintenance(id); + sysDictService.deleteFarmingNameMaintenance(id); return success(true); } @@ -138,6 +163,13 @@ public class DictController { return success(BeanUtils.toBean(pageResult, SpeciesLibraryRespVO.class)); } + @Operation(summary = "字典数据维护-物种库-查看") + @GetMapping("/species/get/{id}") + public CommonResult getSpeciesLibrary(@PathVariable("id") String id) { + SpeciesLibraryDO speciesLibrary = speciesLibraryService.getSpeciesLibrary(id); + return success(BeanUtils.toBean(speciesLibrary, SpeciesLibraryRespVO.class)); + } + @Operation(summary = "字典数据维护-物种库-新增") @PostMapping("/species/create") public CommonResult createSpeciesLibrary(@Valid @RequestBody SpeciesLibrarySaveReqVO createReqVO) { @@ -169,6 +201,13 @@ public class DictController { return success(BeanUtils.toBean(pageResult, InputLibraryRespVO.class)); } + @Operation(summary = "字典数据维护-投入品-查看") + @GetMapping("/invest-goods/get/{id}") + public CommonResult getInputLibrary(@PathVariable("id") String id) { + InputLibraryDO inputLibrary = inputLibraryService.getInputLibrary(id); + return success(BeanUtils.toBean(inputLibrary, InputLibraryRespVO.class)); + } + @Operation(summary = "字典数据维护-投入品-新增") @PostMapping("/invest-goods/create") public CommonResult createInputLibrary(@Valid @RequestBody InputLibrarySaveReqVO createReqVO) { @@ -190,11 +229,40 @@ public class DictController { return success(true); } - // 灾害库维护 + // 灾害/气象灾害库维护 + @Operation(summary = "字典数据维护-灾害库-分页") + @GetMapping("/disaster/page") + public CommonResult> getDisasterDataPage(@Valid DisasterDataPageReqVO pageReqVO) { + PageResult pageResult = disasterDataService.getDisasterDataPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, DisasterDataRespVO.class)); + } + @Operation(summary = "字典数据维护-灾害库-查看") + @GetMapping("/disaster/get/{id}") + public CommonResult getDisasterData(@PathVariable("id") String id) { + DisasterDataDO disasterData = disasterDataService.getDisasterData(id); + return success(BeanUtils.toBean(disasterData, DisasterDataRespVO.class)); + } - // 气象灾害库维护 + @Operation(summary = "字典数据维护-灾害库-新增") + @PostMapping("/disaster/create") + public CommonResult createDisasterData(@Valid @RequestBody DisasterDataSaveReqVO createReqVO) { + return success(disasterDataService.createDisasterData(createReqVO)); + } + @Operation(summary = "字典数据维护-灾害库-编辑") + @PutMapping("/disaster/update") + public CommonResult updateDisasterData(@Valid @RequestBody DisasterDataSaveReqVO updateReqVO) { + disasterDataService.updateDisasterData(updateReqVO); + return success(true); + } + + @Operation(summary = "字典数据维护-灾害库-删除") + @DeleteMapping("/disaster/delete/{id}") + public CommonResult deleteDisasterData(@PathVariable("id") String id) { + disasterDataService.deleteDisasterData(id); + return success(true); + } // 下拉框列表 @Operation(summary = "字典数据维护-下拉框列表-农事类型") @@ -211,6 +279,30 @@ public class DictController { return success(BeanUtils.toBean(res, SpeciesClassifyLibraryRespVO.class)); } + @Operation(summary = "字典数据维护-下拉框列表-通用字典分类查询") + @GetMapping("/list/{dictTypeCode}") + public CommonResult> getSysDictList(@PathVariable("dictTypeCode") String dictTypeCode) { + List res = sysDictService.getByTypeCode(dictTypeCode); + return success(BeanUtils.toBean(res, SysDictRespVO.class)); + } + + @Operation(summary = "字典数据维护-下拉框列表-字典分类名称") + @GetMapping("/list") + public CommonResult> getSysDictList() { + List res = sysDictService.groupByTypeCode(); + return success(BeanUtils.toBean(res, SysDictTypeCodeRespVO.class)); + } + + + + + + + + + + + @Operation(summary = "字典数据维护-下拉框列表-投入品类型") @GetMapping("/list/invest-goods") public CommonResult> getInvestGoodsList() { @@ -259,9 +351,70 @@ public class DictController { return success(list); } + @Operation(summary = "字典数据维护-下拉框列表-灾害类型") + @GetMapping("/list/disaster") + public CommonResult> getDisasterDataList() { + // todo 后续维护到字典表 + List list = Arrays.asList( + new CommonDictRespVO("1", "虫害", 1), + new CommonDictRespVO("2", "病害", 1), + new CommonDictRespVO("3", "草害", 1) + ); + return success(list); + } + @Operation(summary = "字典数据维护-下拉框列表-气象灾害名称") + @GetMapping("/list/weather/disaster") + public CommonResult> getWeatherDisasterDataList() { + // todo 后续维护到字典表 + List list = Arrays.asList( + new CommonDictRespVO("1","洪水",1), + new CommonDictRespVO("2","内涝",1), + new CommonDictRespVO("3","渍涝",1), + new CommonDictRespVO("4","洪涝",1), + new CommonDictRespVO("5","农业干旱",1), + new CommonDictRespVO("6","台风",1), + new CommonDictRespVO("7","暴雨",1), + new CommonDictRespVO("8","暴雪",1), + new CommonDictRespVO("9","寒潮",1), + new CommonDictRespVO("10","大风",1), + new CommonDictRespVO("11","沙尘暴",1), + new CommonDictRespVO("12","高温",1), + new CommonDictRespVO("13","干热风",1), + new CommonDictRespVO("14","下击暴流",1), + new CommonDictRespVO("15","冰雹",1), + new CommonDictRespVO("16","霜冻",1), + new CommonDictRespVO("17","貍",1), + new CommonDictRespVO("18","雷雨大风",1), + new CommonDictRespVO("19","道路结冰",1), + new CommonDictRespVO("20","干旱",1), + new CommonDictRespVO("21","高温中暑",1), + new CommonDictRespVO("22","森林火险",1), + new CommonDictRespVO("23","草原火险",1), + new CommonDictRespVO("24","冰冻",1), + new CommonDictRespVO("25","低温雨雪冰冻",1), + new CommonDictRespVO("26","大雪",1), + new CommonDictRespVO("27","寒冷",1), + new CommonDictRespVO("28","连阴雨",1), + new CommonDictRespVO("29","渍涝风险",1), + new CommonDictRespVO("30","强降雨",1), + new CommonDictRespVO("31","强降温",1), + new CommonDictRespVO("32","雪灾",1), + new CommonDictRespVO("33","雷暴",1), + new CommonDictRespVO("34","降温",1), + new CommonDictRespVO("35","台风暴雨",1), + new CommonDictRespVO("36","严寒",1), + new CommonDictRespVO("37","沙尘",1), + new CommonDictRespVO("38","低温",1), + new CommonDictRespVO("39","雷暴大风",1), + new CommonDictRespVO("40","持续低温",1), + new CommonDictRespVO("41","台风海浪",1), + new CommonDictRespVO("42","森林(草原)火险",1) + ); + return success(list); + } diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/vo/FarmingTypeRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/vo/FarmingTypeRespVO.java index 03d13f48..bb31bcab 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/vo/FarmingTypeRespVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/vo/FarmingTypeRespVO.java @@ -21,4 +21,7 @@ public class FarmingTypeRespVO { @Schema(description = "农事类型-名称") private String farmingName; + @Schema(description = "使用状态(0=停用,1=启用)") + private Integer useStatus; + } diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/vo/sys/SysDictPageReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/vo/sys/SysDictPageReqVO.java new file mode 100644 index 00000000..f6dc1d4e --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/vo/sys/SysDictPageReqVO.java @@ -0,0 +1,45 @@ +package cn.iocoder.yudao.module.farm.controller.admin.dict.vo.sys; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @description: + * @author: binda + * @date: 2025/8/19 20:14 + */ +@Data +public class SysDictPageReqVO { + + private Integer pageNo; + private Integer pageSize; + private Integer offset; + + @Schema(description = "ID") + private String id; + @Schema(description = "字典分类编码") + private String dictTypeCode; + @Schema(description = "字典分类名称") + private String dictTypeName; + + @Schema(description = "字段1编码") + private String field1Code; + @Schema(description = "字段1名称") + private String field1Name; + + @Schema(description = "字段2编码") + private String field2Code; + @Schema(description = "字段2名称") + private String field2Name; + + @Schema(description = "字段3编码") + private String field3Code; + @Schema(description = "字段3名称") + private String field3Name; + + @Schema(description = "使用状态 (1:启用;0:停用)") + private Integer status; + @Schema(description = "删除状态 (1:已删除;0:未删除)") + private Integer deleted; + +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/vo/sys/SysDictReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/vo/sys/SysDictReqVO.java new file mode 100644 index 00000000..9fc4c62f --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/vo/sys/SysDictReqVO.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.farm.controller.admin.dict.vo.sys; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @description: 制定请求实体 + * @author: binda + * @date: 2025/8/19 16:55 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class SysDictReqVO { + + private Integer id; + private String dictTypeCode; + private String field1Code; + private Integer deleted; + + public SysDictReqVO(String dictTypeCode, String field1Code,Integer deleted) { + this.dictTypeCode = dictTypeCode; + this.field1Code = field1Code; + this.deleted = deleted; + + } + + public SysDictReqVO(Integer id, String dictTypeCode, Integer deleted) { + this.id = id; + this.dictTypeCode = dictTypeCode; + this.deleted = deleted; + } + + +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/vo/sys/SysDictRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/vo/sys/SysDictRespVO.java new file mode 100644 index 00000000..1ddfb818 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/vo/sys/SysDictRespVO.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.module.farm.controller.admin.dict.vo.sys; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @description: 字典响应实体 + * @author: binda + * @date: 2025/8/19 16:54 + */ +@Data +public class SysDictRespVO { + + + @Schema(description = "ID") + private Integer id; + + @Schema(description = "字典分类编码") + private String dictTypeCode; + + @Schema(description = "字典分类名称") + private String dictTypeName; + + @Schema(description = "字段1编码") + private String field1Code; + + @Schema(description = "字段1名称") + private String field1Name; + + @Schema(description = "字段2编码") + private String field2Code; + + @Schema(description = "字段2名称") + private String field2Name; + + @Schema(description = "字段3编码") + private String field3Code; + + @Schema(description = "字段3名称") + private String field3Name; + + @Schema(description = "启用状态(1:启用;0:停用)") + private Integer status; + + @Schema(description = "删除状态(1:已删除;0:未删除)") + private Integer deleted; + +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/vo/sys/SysDictSaveVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/vo/sys/SysDictSaveVO.java new file mode 100644 index 00000000..b13fa0b7 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/vo/sys/SysDictSaveVO.java @@ -0,0 +1,44 @@ +package cn.iocoder.yudao.module.farm.controller.admin.dict.vo.sys; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @description: + * @author: binda + * @date: 2025/8/19 22:42 + */ +@Data +public class SysDictSaveVO { + + @Schema(description = "字典分类编码") + private String dictTypeCode; + + @Schema(description = "字典分类名称") + private String dictTypeName; + + @Schema(description = "字段1编码") + private String field1Code; + + @Schema(description = "字段1名称") + private String field1Name; + + @Schema(description = "字段2编码") + private String field2Code; + + @Schema(description = "字段2名称") + private String field2Name; + + @Schema(description = "字段3编码") + private String field3Code; + + @Schema(description = "字段3名称") + private String field3Name; + + @Schema(description = "启用状态(1:启用;0:停用)") + private Integer status; + + @Schema(description = "删除状态(1:已删除;0:未删除)") + private Integer deleted; + +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/vo/sys/SysDictTypeCodeRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/vo/sys/SysDictTypeCodeRespVO.java new file mode 100644 index 00000000..37abf7e0 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/dict/vo/sys/SysDictTypeCodeRespVO.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.module.farm.controller.admin.dict.vo.sys; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @description: + * @author: binda + * @date: 2025/8/19 18:37 + */ +@Data +public class SysDictTypeCodeRespVO { + @Schema(description = "字典分类编码") + private String dictTypeCode; + + @Schema(description = "字典分类名称") + private String dictTypeName; +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataPageReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataPageReqVO.java index 405d5951..f5648477 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataPageReqVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataPageReqVO.java @@ -13,6 +13,26 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @Data public class DisasterDataPageReqVO extends PageParam { + @Schema(description = "灾害名称", example = "赵六") + private String name; + + @Schema(description = "灾害类型1=环境,2=病害,3=虫害,4=草害") + private Integer category; + + @Schema(description = "灾害类型 1:普通; 2:气象灾害") + private Integer type; + + @Schema(description = "发生月份") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private String[] disasterTime; + + @Schema(description = "发生次数", example = "17530") + private Integer disasterCount; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + @Schema(description = "基础id", example = "3322") private String foundationId; @@ -22,23 +42,6 @@ public class DisasterDataPageReqVO extends PageParam { @Schema(description = "基地名称", example = "芋艿") private String baseName; - @Schema(description = "发生月份") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private String[] disasterTime; - - @Schema(description = "灾害类型1=环境,2=病害,3=虫害,4=草害") - private Integer category; - - @Schema(description = "灾害名称", example = "赵六") - private String name; - - @Schema(description = "发生次数", example = "17530") - private Integer disasterCount; - - @Schema(description = "创建时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] createTime; - @Schema(description = "地块ID", example = "21827") private String plotId; diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataRespVO.java index d51cae1d..fa96265b 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataRespVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataRespVO.java @@ -1,63 +1,86 @@ -package cn.iocoder.yudao.module.farm.controller.admin.disasterdata.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; - -import org.springframework.format.annotation.DateTimeFormat; -import java.time.LocalDateTime; -import cn.idev.excel.annotation.*; - -@Schema(description = "管理后台 - 灾害数据 Response VO") -@Data -@ExcelIgnoreUnannotated -public class DisasterDataRespVO { - - @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "26665") - @ExcelProperty("id") - private String id; - - @Schema(description = "基础id", example = "3322") - @ExcelProperty("基础id") - private String foundationId; - - @Schema(description = "基地id", example = "21300") - @ExcelProperty("基地id") - private String baseId; - - @Schema(description = "基地名称", example = "芋艿") - @ExcelProperty("基地名称") - private String baseName; - - @Schema(description = "发生月份") - @ExcelProperty("发生月份") - private String disasterTime; - - @Schema(description = "灾害类型1=环境,2=病害,3=虫害,4=草害") - @ExcelProperty("灾害类型1=环境,2=病害,3=虫害,4=草害") - private Integer category; - - @Schema(description = "灾害名称", example = "赵六") - @ExcelProperty("灾害名称") - private String name; - - @Schema(description = "发生次数", example = "17530") - @ExcelProperty("发生次数") - private Integer disasterCount; - - @Schema(description = "创建时间") - @ExcelProperty("创建时间") - private LocalDateTime createTime; - - @Schema(description = "地块ID", example = "21827") - @ExcelProperty("地块ID") - private String plotId; - - @Schema(description = "地块", example = "王五") - @ExcelProperty("地块") - private String plotName; - - @Schema(description = "租户id", example = "20422") - @ExcelProperty("租户id") - private String tenantId; - -} \ No newline at end of file +package cn.iocoder.yudao.module.farm.controller.admin.disasterdata.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import cn.idev.excel.annotation.*; + +@Schema(description = "管理后台 - 灾害数据 Response VO") +@Data +@ExcelIgnoreUnannotated +public class DisasterDataRespVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "26665") + @ExcelProperty("id") + private String id; + + @Schema(description = "灾害名称", example = "赵六") + @ExcelProperty("灾害名称") + private String name; + + @Schema(description = "灾害类型2=病害,1=虫害,3=草害") + @ExcelProperty("灾害类型2=病害,1=虫害,3=草害") + private Integer category; + + @Schema(description = "灾害类型 1:普通; 2:气象灾害") + private Integer type; + @Schema(description = "灾害描述") + private String disasterDescription; + @Schema(description = "防治建议") + private String treatmentSuggestion; + @Schema(description = "图片地址") + private String imgUrl; + + @Schema(description = "发生次数", example = "17530") + @ExcelProperty("发生次数") + private Integer disasterCount; + + @Schema(description = "发生月份") + @ExcelProperty("发生月份") + private String disasterTime; + + @Schema(description = "创建人") + @ExcelProperty("创建人") + private String creator; + + @Schema(description = "更新人") + @ExcelProperty("更新人") + private String updater; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "更新时间") + @ExcelProperty("更新时间") + private LocalDateTime updateTime; + + + + @Schema(description = "基础id", example = "3322") + @ExcelProperty("基础id") + private String foundationId; + + @Schema(description = "基地id", example = "21300") + @ExcelProperty("基地id") + private String baseId; + + @Schema(description = "基地名称", example = "芋艿") + @ExcelProperty("基地名称") + private String baseName; + + @Schema(description = "地块ID", example = "21827") + @ExcelProperty("地块ID") + private String plotId; + + @Schema(description = "地块", example = "王五") + @ExcelProperty("地块") + private String plotName; + + @Schema(description = "租户id", example = "20422") + @ExcelProperty("租户id") + private String tenantId; + +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataSaveReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataSaveReqVO.java index 25acfab8..c89be16c 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataSaveReqVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/disasterdata/vo/DisasterDataSaveReqVO.java @@ -9,6 +9,24 @@ public class DisasterDataSaveReqVO { @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "26665") private String id; + @Schema(description = "灾害名称", example = "赵六") + private String name; + @Schema(description = "灾害类型1=环境,2=病害,3=虫害,4=草害") + private Integer category; + @Schema(description = "灾害类型 1:普通; 2:气象灾害") + private Integer type; + @Schema(description = "灾害描述") + private String disasterDescription; + @Schema(description = "防治建议") + private String treatmentSuggestion; + @Schema(description = "图片地址") + private String imgUrl; + + @Schema(description = "发生次数", example = "17530") + private Integer disasterCount; + + @Schema(description = "发生月份") + private String disasterTime; @Schema(description = "基础id", example = "3322") private String foundationId; @@ -19,18 +37,6 @@ public class DisasterDataSaveReqVO { @Schema(description = "基地名称", example = "芋艿") private String baseName; - @Schema(description = "发生月份") - private String disasterTime; - - @Schema(description = "灾害类型1=环境,2=病害,3=虫害,4=草害") - private Integer category; - - @Schema(description = "灾害名称", example = "赵六") - private String name; - - @Schema(description = "发生次数", example = "17530") - private Integer disasterCount; - @Schema(description = "地块ID", example = "21827") private String plotId; diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingnamemaintenance/vo/FarmingNameMaintenancePageReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingnamemaintenance/vo/FarmingNameMaintenancePageReqVO.java index 59a3c945..de33a7d3 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingnamemaintenance/vo/FarmingNameMaintenancePageReqVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingnamemaintenance/vo/FarmingNameMaintenancePageReqVO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.farm.controller.admin.farmingnamemaintenance.vo; +import cn.idev.excel.annotation.ExcelProperty; import lombok.*; import io.swagger.v3.oas.annotations.media.Schema; @@ -13,32 +14,23 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @Data public class FarmingNameMaintenancePageReqVO extends PageParam { - @Schema(description = "农事名称", example = "李四") + @Schema(description = "农事名称-编码", example = "李四") + @ExcelProperty("农事名称-编码") + private String farmingCode; + + @Schema(description = "农事名称-中午名", example = "李四") + @ExcelProperty("农事名称-中文名") private String farmingName; - @Schema(description = "农事类型", example = "1") - private String farmingType; + @Schema(description = "农事类型-编码 (父级)", example = "1") + @ExcelProperty("农事类型-编码(父级)") + private String farmingTypeCode; - @Schema(description = "0=启用,1=停用", example = "2") + @Schema(description = "0=停用,1=启用", example = "1") private Integer useStatus; @Schema(description = "创建时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; - @Schema(description = "基地id", example = "23381") - private String baseId; - - @Schema(description = "基地", example = "赵六") - private String baseName; - - @Schema(description = "地块ID", example = "20315") - private String plotId; - - @Schema(description = "地块", example = "张三") - private String plotName; - - @Schema(description = "租户id", example = "15178") - private String tenantId; - } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingnamemaintenance/vo/FarmingNameMaintenanceRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingnamemaintenance/vo/FarmingNameMaintenanceRespVO.java index 0a594c26..61b4b898 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingnamemaintenance/vo/FarmingNameMaintenanceRespVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingnamemaintenance/vo/FarmingNameMaintenanceRespVO.java @@ -1,55 +1,47 @@ -package cn.iocoder.yudao.module.farm.controller.admin.farmingnamemaintenance.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; - -import org.springframework.format.annotation.DateTimeFormat; -import java.time.LocalDateTime; -import cn.idev.excel.annotation.*; - -@Schema(description = "管理后台 - 农事名称维护 Response VO") -@Data -@ExcelIgnoreUnannotated -public class FarmingNameMaintenanceRespVO { - - @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "31981") - @ExcelProperty("id") - private String id; - - @Schema(description = "农事名称", example = "李四") - @ExcelProperty("农事名称") - private String farmingName; - - @Schema(description = "农事类型", example = "1") - @ExcelProperty("农事类型") - private String farmingType; - - @Schema(description = "0=启用,1=停用", example = "2") - @ExcelProperty("0=启用,1=停用") - private Integer useStatus; - - @Schema(description = "创建时间") - @ExcelProperty("创建时间") - private LocalDateTime createTime; - - @Schema(description = "基地id", example = "23381") - @ExcelProperty("基地id") - private String baseId; - - @Schema(description = "基地", example = "赵六") - @ExcelProperty("基地") - private String baseName; - - @Schema(description = "地块ID", example = "20315") - @ExcelProperty("地块ID") - private String plotId; - - @Schema(description = "地块", example = "张三") - @ExcelProperty("地块") - private String plotName; - - @Schema(description = "租户id", example = "15178") - @ExcelProperty("租户id") - private String tenantId; - -} \ No newline at end of file +package cn.iocoder.yudao.module.farm.controller.admin.farmingnamemaintenance.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import cn.idev.excel.annotation.*; + +@Schema(description = "管理后台 - 农事名称维护") +@Data +@ExcelIgnoreUnannotated +public class FarmingNameMaintenanceRespVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "31981") + @ExcelProperty("id") + private String id; + + @Schema(description = "农事名称-编码", example = "李四") + @ExcelProperty("农事名称-编码") + private String farmingCode; + + @Schema(description = "农事名称-中文名", example = "李四") + @ExcelProperty("农事名称-中文名") + private String farmingName; + + @Schema(description = "农事类型-编码 (父级)", example = "1") + @ExcelProperty("农事类型-编码(父级)") + private String farmingTypeCode; + + @Schema(description = "农事类型-名称 (父级)", example = "1") + @ExcelProperty("农事类型-名称(父级)") + private String farmingTypeName; + + @Schema(description = "0=启用,1=停用", example = "2") + @ExcelProperty("0=启用,1=停用") + private Integer useStatus; + + @Schema(description = "创建人") + @ExcelProperty("创建人") + private String creator; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingnamemaintenance/vo/FarmingNameMaintenanceSaveReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingnamemaintenance/vo/FarmingNameMaintenanceSaveReqVO.java index d34335cf..11209c24 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingnamemaintenance/vo/FarmingNameMaintenanceSaveReqVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingnamemaintenance/vo/FarmingNameMaintenanceSaveReqVO.java @@ -19,19 +19,19 @@ public class FarmingNameMaintenanceSaveReqVO { @Schema(description = "0=启用,1=停用", example = "2") private Integer useStatus; - @Schema(description = "基地id", example = "23381") - private String baseId; - - @Schema(description = "基地", example = "赵六") - private String baseName; - - @Schema(description = "地块ID", example = "20315") - private String plotId; - - @Schema(description = "地块", example = "张三") - private String plotName; - - @Schema(description = "租户id", example = "15178") - private String tenantId; +// @Schema(description = "基地id", example = "23381") +// private String baseId; +// +// @Schema(description = "基地", example = "赵六") +// private String baseName; +// +// @Schema(description = "地块ID", example = "20315") +// private String plotId; +// +// @Schema(description = "地块", example = "张三") +// private String plotName; +// +// @Schema(description = "租户id", example = "15178") +// private String tenantId; } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingrecord/FarmingRecordController.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingrecord/FarmingRecordController.java index aa74f1e9..c027ff8f 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingrecord/FarmingRecordController.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingrecord/FarmingRecordController.java @@ -32,7 +32,7 @@ import cn.iocoder.yudao.module.farm.service.farmingrecord.FarmingRecordService; @Tag(name = "管理后台 - 种植中心-农事基地-农事记录") @RestController -@RequestMapping("/farm/ing-record") +@RequestMapping("/farm/farming-record") @Validated public class FarmingRecordController { diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingtypemaintenance/vo/FarmingTypeMaintenancePageReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingtypemaintenance/vo/FarmingTypeMaintenancePageReqVO.java index af9d6c27..ca026afd 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingtypemaintenance/vo/FarmingTypeMaintenancePageReqVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingtypemaintenance/vo/FarmingTypeMaintenancePageReqVO.java @@ -4,40 +4,21 @@ import lombok.*; import io.swagger.v3.oas.annotations.media.Schema; import cn.iocoder.yudao.framework.common.pojo.PageParam; -import org.springframework.format.annotation.DateTimeFormat; -import java.time.LocalDateTime; -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @Schema(description = "管理后台 - 农事类型维护分页 Request VO") @Data public class FarmingTypeMaintenancePageReqVO extends PageParam { + @Schema(description = "ID", example = "1") + private String id; @Schema(description = "农事类型-编码", example = "1") private String farmingCode; @Schema(description = "农事类型-名称", example = "采收") private String farmingName; - - @Schema(description = "0=启用,1=停用", example = "0") + @Schema(description = "0=停用,1=启用", example = "0") private Integer useStatus; - - @Schema(description = "创建时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] createTime; - - @Schema(description = "基地id", example = "29265") - private String baseId; - - @Schema(description = "基地", example = "张三") - private String baseName; - - @Schema(description = "地块ID", example = "28838") - private String plotId; - - @Schema(description = "地块", example = "张三") - private String plotName; - - @Schema(description = "租户id", example = "6207") - private String tenantId; + @Schema(description = "0=未删除,1=已删除", example = "0") + private Integer deleted; } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingtypemaintenance/vo/FarmingTypeMaintenanceRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingtypemaintenance/vo/FarmingTypeMaintenanceRespVO.java index e6c53de8..0f0c825e 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingtypemaintenance/vo/FarmingTypeMaintenanceRespVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingtypemaintenance/vo/FarmingTypeMaintenanceRespVO.java @@ -1,51 +1,51 @@ -package cn.iocoder.yudao.module.farm.controller.admin.farmingtypemaintenance.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; - -import org.springframework.format.annotation.DateTimeFormat; -import java.time.LocalDateTime; -import cn.idev.excel.annotation.*; - -@Schema(description = "管理后台 - 农事类型维护 Response VO") -@Data -@ExcelIgnoreUnannotated -public class FarmingTypeMaintenanceRespVO { - - @Schema(description = "基础id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29520") - @ExcelProperty("基础id") - private String id; - - @Schema(description = "农事类型", example = "1") - @ExcelProperty("农事类型") - private String farmingType; - - @Schema(description = "0=启用,1=停用", example = "2") - @ExcelProperty("0=启用,1=停用") - private Integer useStatus; - - @Schema(description = "创建时间") - @ExcelProperty("创建时间") - private LocalDateTime createTime; - - @Schema(description = "基地id", example = "29265") - @ExcelProperty("基地id") - private String baseId; - - @Schema(description = "基地", example = "张三") - @ExcelProperty("基地") - private String baseName; - - @Schema(description = "地块ID", example = "28838") - @ExcelProperty("地块ID") - private String plotId; - - @Schema(description = "地块", example = "张三") - @ExcelProperty("地块") - private String plotName; - - @Schema(description = "租户id", example = "6207") - @ExcelProperty("租户id") - private String tenantId; - -} \ No newline at end of file +package cn.iocoder.yudao.module.farm.controller.admin.farmingtypemaintenance.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import cn.idev.excel.annotation.*; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 农事类型维护") +@Data +@ExcelIgnoreUnannotated +public class FarmingTypeMaintenanceRespVO { + + @Schema(description = "基础id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29520") + @ExcelProperty("基础id") + private String id; + + @Schema(description = "农事类型-编码", example = "1") + @ExcelProperty("农事类型-编码") + private String farmingCode; + + @Schema(description = "农事类型-名称", example = "1") + @ExcelProperty("农事类型-名称") + private String farmingName; + + @Schema(description = "删除状态(1:已删除;2:未删除)", example = "2") + @ExcelProperty("删除状态") + private Integer deleted; + + @Schema(description = "使用状态 (0=停用,1=启用)", example = "2") + @ExcelProperty("使用状态") + private Integer useStatus; + + @Schema(description = "创建人") + @ExcelProperty("创建人") + private String creator; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime createTime; + + @Schema(description = "更新时间") + @ExcelProperty("更新时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime updateTime; + +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingtypemaintenance/vo/FarmingTypeMaintenanceSaveReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingtypemaintenance/vo/FarmingTypeMaintenanceSaveReqVO.java index 46f0439e..ad343c37 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingtypemaintenance/vo/FarmingTypeMaintenanceSaveReqVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/farmingtypemaintenance/vo/FarmingTypeMaintenanceSaveReqVO.java @@ -2,6 +2,11 @@ package cn.iocoder.yudao.module.farm.controller.admin.farmingtypemaintenance.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @Schema(description = "管理后台 - 农事类型维护新增/修改 Request VO") @Data @@ -10,27 +15,21 @@ public class FarmingTypeMaintenanceSaveReqVO { @Schema(description = "基础id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29520") private String id; - @Schema(description = "农事类型", example = "1") - private String farmingType; + @Schema(description = "农事类型-编码", example = "1") + private String farmingCode; + @Schema(description = "农事类型-名称", example = "1") + private String farmingName; - @Schema(description = "0=启用,1=停用", example = "0") + @Schema(description = "0=停用,1=启用", example = "0") private Integer useStatus; @Schema(description = "0=未删除,1=已删除", example = "0") private Integer deleted; - @Schema(description = "基地id", example = "29265") - private String baseId; - - @Schema(description = "基地", example = "张三") - private String baseName; - - @Schema(description = "地块ID", example = "28838") - private String plotId; - - @Schema(description = "地块", example = "张三") - private String plotName; - - @Schema(description = "租户id", example = "6207") - private String tenantId; + private String creator; + private String updater; +// @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) +// private LocalDateTime createTime; +// @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) +// private LocalDateTime update_time; } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/inputlibrary/vo/InputLibraryRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/inputlibrary/vo/InputLibraryRespVO.java index 203803de..2280f7f5 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/inputlibrary/vo/InputLibraryRespVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/inputlibrary/vo/InputLibraryRespVO.java @@ -1,100 +1,104 @@ -package cn.iocoder.yudao.module.farm.controller.admin.inputlibrary.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; - -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 InputLibraryRespVO { - - @Schema(description = "基础id", requiredMode = Schema.RequiredMode.REQUIRED, example = "12085") - @ExcelProperty("基础id") - private String id; - - @Schema(description = "投入品类型", example = "2") - @ExcelProperty("投入品类型") - private String assetType; - - @Schema(description = "投入品名称", example = "王五") - @ExcelProperty("投入品名称") - private String assetName; - - @Schema(description = "用量") - @ExcelProperty("用量") - private BigDecimal dose; - - @Schema(description = "单位") - @ExcelProperty("单位") - private String unit; - - @Schema(description = "单件") - @ExcelProperty("单件") - private String packageUnit; - - @Schema(description = "单价", example = "23806") - @ExcelProperty("单价") - private BigDecimal price; - - @Schema(description = "登记证号") - @ExcelProperty("登记证号") - private String registration; - - @Schema(description = "提供厂商") - @ExcelProperty("提供厂商") - private String manufacturer; - - @Schema(description = "药物类型", example = "2") - @ExcelProperty("药物类型") - private String drugType; - - @Schema(description = "有效成分") - @ExcelProperty("有效成分") - private String activePrinciple; - - @Schema(description = "安全间隔期") - @ExcelProperty("安全间隔期") - private Integer safetyInterval; - - @Schema(description = "稀释倍液") - @ExcelProperty("稀释倍液") - private String diluted; - - @Schema(description = "防治对象及使用方法") - @ExcelProperty("防治对象及使用方法") - private String usage; - - @Schema(description = "0=启用,1=停用", example = "2") - @ExcelProperty("0=启用,1=停用") - private Integer useStatus; - - @Schema(description = "创建时间") - @ExcelProperty("创建时间") - private LocalDateTime createTime; - - @Schema(description = "基地id", example = "21613") - @ExcelProperty("基地id") - private String baseId; - - @Schema(description = "基地", example = "张三") - @ExcelProperty("基地") - private String baseName; - - @Schema(description = "地块ID", example = "14573") - @ExcelProperty("地块ID") - private String plotId; - - @Schema(description = "地块", example = "李四") - @ExcelProperty("地块") - private String plotName; - - @Schema(description = "租户id", example = "6773") - @ExcelProperty("租户id") - private String tenantId; - -} \ No newline at end of file +package cn.iocoder.yudao.module.farm.controller.admin.inputlibrary.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +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 InputLibraryRespVO { + + @Schema(description = "基础id", requiredMode = Schema.RequiredMode.REQUIRED, example = "12085") + @ExcelProperty("基础id") + private String id; + + @Schema(description = "投入品类型", example = "2") + @ExcelProperty("投入品类型") + private String assetType; + + @Schema(description = "投入品名称", example = "王五") + @ExcelProperty("投入品名称") + private String assetName; + + @Schema(description = "用量") + @ExcelProperty("用量") + private BigDecimal dose; + + @Schema(description = "单位") + @ExcelProperty("单位") + private String unit; + + @Schema(description = "单件") + @ExcelProperty("单件") + private String packageUnit; + + @Schema(description = "单价", example = "23806") + @ExcelProperty("单价") + private BigDecimal price; + + @Schema(description = "登记证号") + @ExcelProperty("登记证号") + private String registration; + + @Schema(description = "提供厂商") + @ExcelProperty("提供厂商") + private String manufacturer; + + @Schema(description = "药物类型", example = "2") + @ExcelProperty("药物类型") + private String drugType; + + @Schema(description = "有效成分") + @ExcelProperty("有效成分") + private String activePrinciple; + + @Schema(description = "安全间隔期") + @ExcelProperty("安全间隔期") + private Integer safetyInterval; + + @Schema(description = "稀释倍液") + @ExcelProperty("稀释倍液") + private String diluted; + + @Schema(description = "防治对象及使用方法") + @ExcelProperty("防治对象及使用方法") + private String usage; + + @Schema(description = "0=启用,1=停用", example = "2") + @ExcelProperty("0=启用,1=停用") + private Integer useStatus; + + @Schema(description = "创建人") + @ExcelProperty("创建人") + private String creator; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "基地id", example = "21613") + @ExcelProperty("基地id") + private String baseId; + + @Schema(description = "基地", example = "张三") + @ExcelProperty("基地") + private String baseName; + + @Schema(description = "地块ID", example = "14573") + @ExcelProperty("地块ID") + private String plotId; + + @Schema(description = "地块", example = "李四") + @ExcelProperty("地块") + private String plotName; + + @Schema(description = "租户id", example = "6773") + @ExcelProperty("租户id") + private String tenantId; + +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/specieslibrary/vo/SpeciesLibraryRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/specieslibrary/vo/SpeciesLibraryRespVO.java index 8b1e35c4..dbde9586 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/specieslibrary/vo/SpeciesLibraryRespVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/specieslibrary/vo/SpeciesLibraryRespVO.java @@ -44,6 +44,10 @@ public class SpeciesLibraryRespVO { @ExcelProperty("0=启用,1=停用") private Integer useStatus; + @Schema(description = "创建人") + @ExcelProperty("创建人") + private String creator; + @Schema(description = "创建时间") @ExcelProperty("创建时间") private LocalDateTime createTime; diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/disasterdata/DisasterDataDO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/disasterdata/DisasterDataDO.java index 5f5e1965..661c37f9 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/disasterdata/DisasterDataDO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/disasterdata/DisasterDataDO.java @@ -1,5 +1,7 @@ package cn.iocoder.yudao.module.farm.dal.dataobject.disasterdata; +import cn.idev.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.time.LocalDateTime; @@ -27,6 +29,46 @@ public class DisasterDataDO extends BaseDO { */ @TableId(type = IdType.INPUT) private String id; + + /** + * 灾害名称 + */ + private String name; + /** + * 灾害类型 2=病害,1=虫害,3=草害 + */ + private Integer category; + /** + * 灾害类别 1:普通; 2:气象灾害 + */ + private Integer type; + /** + * 灾害描述 + */ + private String disasterDescription; + /** + * 防治建议 + */ + private String treatmentSuggestion; + /** + * 图片地址 + */ + private String imgUrl; + /** + * 发生次数 + */ + private Integer disasterCount; + /** + * 发生月份 + */ + private String disasterTime; + + private String creator; + + private LocalDateTime createTime; + + + /** * 基础id */ @@ -39,22 +81,6 @@ public class DisasterDataDO extends BaseDO { * 基地名称 */ private String baseName; - /** - * 发生月份 - */ - private String disasterTime; - /** - * 灾害类型1=环境,2=病害,3=虫害,4=草害 - */ - private Integer category; - /** - * 灾害名称 - */ - private String name; - /** - * 发生次数 - */ - private Integer disasterCount; /** * 地块ID */ diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/farmingnamemaintenance/FarmingNameMaintenanceDO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/farmingnamemaintenance/FarmingNameMaintenanceDO.java index 0b97e664..dce1d5a5 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/farmingnamemaintenance/FarmingNameMaintenanceDO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/farmingnamemaintenance/FarmingNameMaintenanceDO.java @@ -1,5 +1,7 @@ package cn.iocoder.yudao.module.farm.dal.dataobject.farmingnamemaintenance; +import cn.idev.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.time.LocalDateTime; @@ -28,18 +30,22 @@ public class FarmingNameMaintenanceDO extends BaseDO { */ @TableId(type = IdType.INPUT) private String id; - /** - * 农事名称 - */ + + private String farmingCode; + private String farmingName; - /** - * 农事类型 - */ - private String farmingType; + + private String farmingTypeCode; + private String farmingTypeName; /** * 0=启用,1=停用 */ private Integer useStatus; + + private String creator; + + private LocalDateTime createTime; + /** * 基地id */ diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/farmingtypemaintenance/FarmingTypeMaintenanceDO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/farmingtypemaintenance/FarmingTypeMaintenanceDO.java index c1b19866..5c5db284 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/farmingtypemaintenance/FarmingTypeMaintenanceDO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/farmingtypemaintenance/FarmingTypeMaintenanceDO.java @@ -28,14 +28,18 @@ public class FarmingTypeMaintenanceDO extends BaseDO { @TableId(type = IdType.INPUT) private String id; /** - * 农事类型 + * 农事类型-编码 */ private String farmingCode; + /** + * 农事类型-名称 + */ private String farmingName; /** - * 0=启用,1=停用 + * 0=停用,1=启用 */ private Integer useStatus; + /** * 基地id */ diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/inputlibrary/InputLibraryDO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/inputlibrary/InputLibraryDO.java index a703b52a..80a0389d 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/inputlibrary/InputLibraryDO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/inputlibrary/InputLibraryDO.java @@ -3,9 +3,6 @@ package cn.iocoder.yudao.module.farm.dal.dataobject.inputlibrary; import lombok.*; import java.math.BigDecimal; -import java.math.BigDecimal; -import java.time.LocalDateTime; -import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.*; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/specieslibrary/SpeciesLibraryDO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/specieslibrary/SpeciesLibraryDO.java index c3bed5e0..3a8c3094 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/specieslibrary/SpeciesLibraryDO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/specieslibrary/SpeciesLibraryDO.java @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.farm.dal.dataobject.specieslibrary; import lombok.*; -import java.time.LocalDateTime; import java.time.LocalDateTime; import java.util.List; import com.baomidou.mybatisplus.annotation.*; @@ -82,6 +81,11 @@ public class SpeciesLibraryDO extends BaseDO { * 0=启用,1=停用 */ private Integer useStatus; + + private String creator; + + private LocalDateTime createTime; + /** * 基地id */ diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/disasterdata/DisasterDataMapper.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/disasterdata/DisasterDataMapper.java index 61c85793..4bb83241 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/disasterdata/DisasterDataMapper.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/disasterdata/DisasterDataMapper.java @@ -6,6 +6,9 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.module.farm.controller.admin.disasterdata.vo.DisasterDataPageReqVO; import cn.iocoder.yudao.module.farm.dal.dataobject.disasterdata.DisasterDataDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 灾害数据 Mapper @@ -17,18 +20,15 @@ public interface DisasterDataMapper extends BaseMapperX { default PageResult selectPage(DisasterDataPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(DisasterDataDO::getFoundationId, reqVO.getFoundationId()) - .eqIfPresent(DisasterDataDO::getBaseId, reqVO.getBaseId()) - .likeIfPresent(DisasterDataDO::getBaseName, reqVO.getBaseName()) - .betweenIfPresent(DisasterDataDO::getDisasterTime, reqVO.getDisasterTime()) - .eqIfPresent(DisasterDataDO::getCategory, reqVO.getCategory()) .likeIfPresent(DisasterDataDO::getName, reqVO.getName()) - .eqIfPresent(DisasterDataDO::getDisasterCount, reqVO.getDisasterCount()) - .betweenIfPresent(DisasterDataDO::getCreateTime, reqVO.getCreateTime()) - .eqIfPresent(DisasterDataDO::getPlotId, reqVO.getPlotId()) - .likeIfPresent(DisasterDataDO::getPlotName, reqVO.getPlotName()) - .eqIfPresent(DisasterDataDO::getTenantId, reqVO.getTenantId()) - .orderByDesc(DisasterDataDO::getCreateTime)); + .eqIfPresent(DisasterDataDO::getCategory, reqVO.getCategory()) + .eqIfPresent(DisasterDataDO::getType, reqVO.getType()) + ); } + List selectDisasterDataPage(@Param("req") DisasterDataPageReqVO reqVO); + + long selectDisasterDataCount(@Param("req") DisasterDataPageReqVO reqVO); + + } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/farmingnamemaintenance/FarmingNameMaintenanceMapper.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/farmingnamemaintenance/FarmingNameMaintenanceMapper.java index 10ed6eef..93ac3d44 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/farmingnamemaintenance/FarmingNameMaintenanceMapper.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/farmingnamemaintenance/FarmingNameMaintenanceMapper.java @@ -17,15 +17,11 @@ public interface FarmingNameMaintenanceMapper extends BaseMapperX selectPage(FarmingNameMaintenancePageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(FarmingNameMaintenanceDO::getFarmingCode, reqVO.getFarmingCode()) .likeIfPresent(FarmingNameMaintenanceDO::getFarmingName, reqVO.getFarmingName()) - .eqIfPresent(FarmingNameMaintenanceDO::getFarmingType, reqVO.getFarmingType()) + .likeIfPresent(FarmingNameMaintenanceDO::getFarmingTypeCode, reqVO.getFarmingTypeCode()) .eqIfPresent(FarmingNameMaintenanceDO::getUseStatus, reqVO.getUseStatus()) .betweenIfPresent(FarmingNameMaintenanceDO::getCreateTime, reqVO.getCreateTime()) - .eqIfPresent(FarmingNameMaintenanceDO::getBaseId, reqVO.getBaseId()) - .likeIfPresent(FarmingNameMaintenanceDO::getBaseName, reqVO.getBaseName()) - .eqIfPresent(FarmingNameMaintenanceDO::getPlotId, reqVO.getPlotId()) - .likeIfPresent(FarmingNameMaintenanceDO::getPlotName, reqVO.getPlotName()) - .eqIfPresent(FarmingNameMaintenanceDO::getTenantId, reqVO.getTenantId()) .orderByDesc(FarmingNameMaintenanceDO::getCreateTime)); } diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/farmingtypemaintenance/FarmingTypeMaintenanceMapper.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/farmingtypemaintenance/FarmingTypeMaintenanceMapper.java index 01afe9d6..ea9b4099 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/farmingtypemaintenance/FarmingTypeMaintenanceMapper.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/farmingtypemaintenance/FarmingTypeMaintenanceMapper.java @@ -20,18 +20,17 @@ import java.util.List; public interface FarmingTypeMaintenanceMapper extends BaseMapperX { default PageResult selectPage(FarmingTypeMaintenancePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() .eqIfPresent(FarmingTypeMaintenanceDO::getFarmingCode, reqVO.getFarmingCode()) .eqIfPresent(FarmingTypeMaintenanceDO::getFarmingName, reqVO.getFarmingName()) .eqIfPresent(FarmingTypeMaintenanceDO::getUseStatus, reqVO.getUseStatus()) - .betweenIfPresent(FarmingTypeMaintenanceDO::getCreateTime, reqVO.getCreateTime()) - .eqIfPresent(FarmingTypeMaintenanceDO::getBaseId, reqVO.getBaseId()) - .likeIfPresent(FarmingTypeMaintenanceDO::getBaseName, reqVO.getBaseName()) - .eqIfPresent(FarmingTypeMaintenanceDO::getPlotId, reqVO.getPlotId()) - .likeIfPresent(FarmingTypeMaintenanceDO::getPlotName, reqVO.getPlotName()) - .eqIfPresent(FarmingTypeMaintenanceDO::getTenantId, reqVO.getTenantId()) - .orderByDesc(FarmingTypeMaintenanceDO::getCreateTime)); + .eqIfPresent(FarmingTypeMaintenanceDO::getDeleted, reqVO.getDeleted()) + .orderByDesc(FarmingTypeMaintenanceDO::getCreateTime) + ); } List listForFarmingType(@Param("req") FarmingTypeMaintenanceSaveReqVO reqVO ); + + Boolean update(@Param("req") FarmingTypeMaintenanceDO reqVO); } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/sysDict/SysDictDO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/sysDict/SysDictDO.java new file mode 100644 index 00000000..5e66c0cb --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/sysDict/SysDictDO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.farm.dal.mysql.sysDict; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.*; + +/** + * @description: 字典 + * @author: binda + * @date: 2025/8/19 17:38 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SysDictDO extends BaseDO { + + @TableId(type = IdType.INPUT) + private Integer id; + private String dictTypeCode; + private String dictTypeName; + private String field1Code; + private String field1Name; + private String field2Code; + private String field2Name; + private String field3Code; + private String field3Name; + private Integer status; + +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/sysDict/SysDictMapper.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/sysDict/SysDictMapper.java new file mode 100644 index 00000000..4db448c6 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/sysDict/SysDictMapper.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.farm.dal.mysql.sysDict; + +import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.sys.SysDictPageReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.sys.SysDictReqVO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @description: 字典DAO + * @author: binda + * @date: 2025/8/19 17:42 + */ +@Mapper +public interface SysDictMapper { + + SysDictDO selectDictByOne(SysDictReqVO reqVO); + + String selectDictByGroup(SysDictReqVO reqVO); + + List selectDictByPage(SysDictPageReqVO reqVO); + + Long countDictByCondition(SysDictPageReqVO reqVO); + + List getByTypeCode(@Param("dictTypeCode") String dictTypeCode); + + List groupByTypeCode(); + + void insertOne(SysDictDO reqVO); + + void updateById(SysDictDO reqVO); +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/cropFarmingCenter/CropFarmingCenterService.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/cropFarmingCenter/CropFarmingCenterService.java new file mode 100644 index 00000000..313d9228 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/cropFarmingCenter/CropFarmingCenterService.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.module.farm.service.cropFarmingCenter; + +import cn.iocoder.yudao.module.farm.controller.admin.cropFarmingCenter.vo.ProductionPlanSaveReqVO; + +/** + * @description: 种植中心 + * @author: binda + * @data: 2025/8/19 11:27 + */ +public interface CropFarmingCenterService { + + /** + * 生产计划-新增 + * @param createReqVO + * @return + */ + String createProductionPlan(ProductionPlanSaveReqVO createReqVO); +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/cropFarmingCenter/CropFarmingCenterServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/cropFarmingCenter/CropFarmingCenterServiceImpl.java new file mode 100644 index 00000000..4a939b53 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/cropFarmingCenter/CropFarmingCenterServiceImpl.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.farm.service.cropFarmingCenter; + +import cn.iocoder.yudao.module.farm.controller.admin.cropFarmingCenter.vo.ProductionPlanSaveReqVO; +import cn.iocoder.yudao.module.farm.service.cultivationarea.CultivationAreaService; +import cn.iocoder.yudao.module.farm.service.productionplan.ProductionPlanService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * @description: + * @author: binda + * @date: 2025/8/19 11:34 + */ +@Service +@Slf4j +public class CropFarmingCenterServiceImpl implements CropFarmingCenterService { + + private final CultivationAreaService cultivationAreaService; + private final ProductionPlanService productionPlanService; + + public CropFarmingCenterServiceImpl(CultivationAreaService cultivationAreaService, ProductionPlanService productionPlanService) { + this.cultivationAreaService = cultivationAreaService; + this.productionPlanService = productionPlanService; + } + + + // 创建 + // 1份生产计划 -> n种植区域; 1个种植区域 -> 1基地的n个地块(种植区域) + + + @Override + public String createProductionPlan(ProductionPlanSaveReqVO createReqVO) { + + + + + + return null; + } +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/disasterdata/DisasterDataServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/disasterdata/DisasterDataServiceImpl.java index a8dbe040..fee8cda7 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/disasterdata/DisasterDataServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/disasterdata/DisasterDataServiceImpl.java @@ -86,7 +86,14 @@ private void validateDisasterDataExists(String id) { @Override public PageResult getDisasterDataPage(DisasterDataPageReqVO pageReqVO) { - return disasterDataMapper.selectPage(pageReqVO); + + List list = disasterDataMapper.selectDisasterDataPage(pageReqVO); + long count = disasterDataMapper.selectDisasterDataCount(pageReqVO); + PageResult res = new PageResult<>(); + res.setList(list); + res.setTotal(count); + + return res; } } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farmingnamemaintenance/FarmingNameMaintenanceServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farmingnamemaintenance/FarmingNameMaintenanceServiceImpl.java index 627b4334..1e2b6f5b 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farmingnamemaintenance/FarmingNameMaintenanceServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farmingnamemaintenance/FarmingNameMaintenanceServiceImpl.java @@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.farm.controller.admin.farmingnamemaintenance.vo.F import cn.iocoder.yudao.module.farm.controller.admin.farmingnamemaintenance.vo.FarmingNameMaintenanceSaveReqVO; import cn.iocoder.yudao.module.farm.dal.dataobject.farmingnamemaintenance.FarmingNameMaintenanceDO; import cn.iocoder.yudao.module.farm.dal.mysql.farmingnamemaintenance.FarmingNameMaintenanceMapper; +import cn.iocoder.yudao.module.farm.utils.StrHelperUtil; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -37,6 +38,7 @@ public class FarmingNameMaintenanceServiceImpl implements FarmingNameMaintenance FarmingNameMaintenanceDO farmingNameMaintenance = BeanUtils.toBean(createReqVO, FarmingNameMaintenanceDO.class); farmingNameMaintenance.setId(IdUtil.fastUUID()); farmingNameMaintenance.setTenantId(String.valueOf(user.getTenantId())); + farmingNameMaintenance.setFarmingCode(StrHelperUtil.generate()); farmingNameMaintenanceMapper.insert(farmingNameMaintenance); // 返回 diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farmingtypemaintenance/FarmingTypeMaintenanceService.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farmingtypemaintenance/FarmingTypeMaintenanceService.java index 98d86776..09cf3f4f 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farmingtypemaintenance/FarmingTypeMaintenanceService.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farmingtypemaintenance/FarmingTypeMaintenanceService.java @@ -65,4 +65,6 @@ public interface FarmingTypeMaintenanceService { * @return */ List getFarmingTypeList(); + + FarmingTypeMaintenanceDO getFarmingName(String farmingTypeCode); } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farmingtypemaintenance/FarmingTypeMaintenanceServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farmingtypemaintenance/FarmingTypeMaintenanceServiceImpl.java index 23bead47..5f865a04 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farmingtypemaintenance/FarmingTypeMaintenanceServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/farmingtypemaintenance/FarmingTypeMaintenanceServiceImpl.java @@ -5,6 +5,7 @@ import cn.iocoder.yudao.framework.security.core.LoginUser; import cn.iocoder.yudao.module.farm.controller.admin.farmingtypemaintenance.vo.FarmingTypeMaintenancePageReqVO; import cn.iocoder.yudao.module.farm.controller.admin.farmingtypemaintenance.vo.FarmingTypeMaintenanceSaveReqVO; import cn.iocoder.yudao.module.farm.enums.CommonConstants; +import cn.iocoder.yudao.module.farm.utils.StrHelperUtil; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -40,6 +41,7 @@ public class FarmingTypeMaintenanceServiceImpl implements FarmingTypeMaintenance FarmingTypeMaintenanceDO farmingTypeMaintenance = BeanUtils.toBean(createReqVO, FarmingTypeMaintenanceDO.class); farmingTypeMaintenance.setId(IdUtil.fastUUID()); farmingTypeMaintenance.setTenantId(String.valueOf(user.getTenantId())); + farmingTypeMaintenance.setFarmingCode(StrHelperUtil.generate()); farmingTypeMaintenanceMapper.insert(farmingTypeMaintenance); // 返回 @@ -52,7 +54,7 @@ public class FarmingTypeMaintenanceServiceImpl implements FarmingTypeMaintenance validateFarmingTypeMaintenanceExists(updateReqVO.getId()); // 更新 FarmingTypeMaintenanceDO updateObj = BeanUtils.toBean(updateReqVO, FarmingTypeMaintenanceDO.class); - farmingTypeMaintenanceMapper.updateById(updateObj); + farmingTypeMaintenanceMapper.update(updateObj); } @Override @@ -92,4 +94,9 @@ public class FarmingTypeMaintenanceServiceImpl implements FarmingTypeMaintenance return farmingTypeMaintenanceMapper.listForFarmingType(reqVO); } + + @Override + public FarmingTypeMaintenanceDO getFarmingName(String farmingTypeCode) { + return farmingTypeMaintenanceMapper.selectOne(FarmingTypeMaintenanceDO::getFarmingCode, farmingTypeCode); + } } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/speciesclassifylibrary/SpeciesClassifyLibraryServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/speciesclassifylibrary/SpeciesClassifyLibraryServiceImpl.java index 055b3694..66dd809b 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/speciesclassifylibrary/SpeciesClassifyLibraryServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/speciesclassifylibrary/SpeciesClassifyLibraryServiceImpl.java @@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.farm.service.speciesclassifylibrary; import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.SpeciesClassifyLibraryReqVO; import cn.iocoder.yudao.module.farm.dal.dataobject.speciesclassifylibrary.SpeciesClassifyLibraryDO; import cn.iocoder.yudao.module.farm.dal.mysql.speciesclassifylibrary.SpeciesClassifyLibraryMapper; -import cn.iocoder.yudao.module.farm.enums.CommonConstants; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/sysDict/SysDictService.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/sysDict/SysDictService.java new file mode 100644 index 00000000..675129bf --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/sysDict/SysDictService.java @@ -0,0 +1,57 @@ +package cn.iocoder.yudao.module.farm.service.sysDict; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.sys.SysDictPageReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.farmingnamemaintenance.vo.FarmingNameMaintenancePageReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.farmingnamemaintenance.vo.FarmingNameMaintenanceSaveReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.farmingtypemaintenance.vo.FarmingTypeMaintenancePageReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.farmingtypemaintenance.vo.FarmingTypeMaintenanceSaveReqVO; +import cn.iocoder.yudao.module.farm.dal.dataobject.farmingnamemaintenance.FarmingNameMaintenanceDO; +import cn.iocoder.yudao.module.farm.dal.dataobject.farmingtypemaintenance.FarmingTypeMaintenanceDO; +import cn.iocoder.yudao.module.farm.dal.mysql.sysDict.SysDictDO; + +import java.util.List; + +/** + * @description: 字典 + * @author: binda + * @data: 2025/8/19 17:35 + */ +public interface SysDictService { + + + List getByTypeCode(String dictTypeCode); + + List groupByTypeCode(); + + PageResult selectDictByPage(SysDictPageReqVO reqVO); + + + /** + * 农事类型 + */ + PageResult getFarmingTypeMaintenancePage(FarmingTypeMaintenancePageReqVO reqVO); + + FarmingTypeMaintenanceDO getFarmingTypeMaintenance(String id); + + void createFarmingTypeMaintenance(FarmingTypeMaintenanceSaveReqVO reqVO); + + void updateFarmingTypeMaintenance(FarmingTypeMaintenanceSaveReqVO reqVO); + + void deleteFarmingTypeMaintenance(String id); + + /** + * 农事名称 + */ + PageResult getFarmingNameMaintenancePage(FarmingNameMaintenancePageReqVO reqVO); + + FarmingNameMaintenanceDO getFarmingNameMaintenance(String id); + + void createFarmingNameMaintenance(FarmingNameMaintenanceSaveReqVO reqVO); + + void updateFarmingNameMaintenance(FarmingNameMaintenanceSaveReqVO reqVO); + + void deleteFarmingNameMaintenance(String id); + + +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/sysDict/SysDictServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/sysDict/SysDictServiceImpl.java new file mode 100644 index 00000000..24396de6 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/sysDict/SysDictServiceImpl.java @@ -0,0 +1,276 @@ +package cn.iocoder.yudao.module.farm.service.sysDict; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.sys.SysDictPageReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.sys.SysDictReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.farmingnamemaintenance.vo.FarmingNameMaintenancePageReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.farmingnamemaintenance.vo.FarmingNameMaintenanceSaveReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.farmingtypemaintenance.vo.FarmingTypeMaintenancePageReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.farmingtypemaintenance.vo.FarmingTypeMaintenanceSaveReqVO; +import cn.iocoder.yudao.module.farm.dal.dataobject.farmingnamemaintenance.FarmingNameMaintenanceDO; +import cn.iocoder.yudao.module.farm.dal.dataobject.farmingtypemaintenance.FarmingTypeMaintenanceDO; +import cn.iocoder.yudao.module.farm.dal.mysql.sysDict.SysDictDO; +import cn.iocoder.yudao.module.farm.dal.mysql.sysDict.SysDictMapper; +import cn.iocoder.yudao.module.farm.utils.StrHelperUtil; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.FARMING_TYPE_MAINTENANCE_NOT_EXISTS; + +/** + * @description: 字典 + * @author: binda + * @date: 2025/8/19 17:35 + */ +@Service +public class SysDictServiceImpl implements SysDictService{ + + private final String FARMING_TYPE = "farming_type"; + private final String FARMING_NAME = "farming_name"; + + + private final SysDictMapper sysDictMapper; + + public SysDictServiceImpl(SysDictMapper sysDictMapper) { + this.sysDictMapper = sysDictMapper; + } + + @Override + public List getByTypeCode(String dictTypeCode) { + + return sysDictMapper.getByTypeCode(dictTypeCode); + + } + + @Override + public List groupByTypeCode() { + + return sysDictMapper.groupByTypeCode(); + + } + + @Override + public PageResult selectDictByPage(SysDictPageReqVO reqVO) { + + Integer pageNo = reqVO.getPageNo(); + Integer pageSize = reqVO.getPageSize(); + + // 计算偏移量 + int offset = (pageNo - 1) * pageSize; + reqVO.setOffset(offset); + List list = sysDictMapper.selectDictByPage(reqVO); + + Long total = sysDictMapper.countDictByCondition(reqVO); + long totalPages = (long) Math.ceil((double) total / pageSize); + + return new PageResult<>(list,totalPages); + } + + private void validateExists(String id) { + if (sysDictMapper.selectDictByOne(new SysDictReqVO(Integer.valueOf(id), "", null)) == null) { + throw exception(FARMING_TYPE_MAINTENANCE_NOT_EXISTS); + } + } + + @Override + public PageResult getFarmingTypeMaintenancePage(FarmingTypeMaintenancePageReqVO reqVO) { + + SysDictPageReqVO source = new SysDictPageReqVO(); + source.setDictTypeCode(FARMING_TYPE); + source.setPageNo(reqVO.getPageNo()); + source.setPageSize(reqVO.getPageSize()); + source.setField1Code(reqVO.getFarmingCode()); + source.setField1Name(reqVO.getFarmingName()); + source.setStatus(reqVO.getUseStatus()); + PageResult result = this.selectDictByPage(source); + + List list = result.getList().stream().map(e -> { + FarmingTypeMaintenanceDO obj = new FarmingTypeMaintenanceDO(); + obj.setId(String.valueOf(e.getId())); + obj.setFarmingCode(e.getField1Code()); + obj.setFarmingName(e.getField1Name()); + obj.setUseStatus(e.getStatus()); + obj.setCreator(e.getCreator()); + obj.setCreateTime(e.getCreateTime()); + obj.setUpdater(e.getUpdater()); + return obj; + }).collect(Collectors.toList()); + + Long total = result.getTotal(); + + return new PageResult<>(list, total); + + } + + @Override + public FarmingTypeMaintenanceDO getFarmingTypeMaintenance(String id) { + + SysDictDO obj = sysDictMapper.selectDictByOne(new SysDictReqVO(Integer.valueOf(id), FARMING_TYPE, 0)); + + FarmingTypeMaintenanceDO res = new FarmingTypeMaintenanceDO(); + res.setId(String.valueOf(obj.getId())); + res.setFarmingCode(obj.getField1Code()); + res.setFarmingName(obj.getField1Name()); + res.setUseStatus(obj.getStatus()); + res.setDeleted(obj.getDeleted()); + res.setCreator(obj.getCreator()); + res.setCreateTime(obj.getCreateTime()); + res.setUpdater(obj.getUpdater()); + res.setUpdateTime(obj.getUpdateTime()); + return res; + + } + + public void createFarmingTypeMaintenance(FarmingTypeMaintenanceSaveReqVO reqVO) { + + SysDictDO obj = new SysDictDO(); + obj.setDictTypeCode(FARMING_TYPE); + obj.setDictTypeName("农事类型"); + obj.setField1Code(StrHelperUtil.generate()); + obj.setField1Name(reqVO.getFarmingName()); + obj.setStatus(reqVO.getUseStatus()); + obj.setDeleted(false); + obj.setCreator(reqVO.getCreator()); + + sysDictMapper.insertOne(obj); + + } + + @Override + public void updateFarmingTypeMaintenance(FarmingTypeMaintenanceSaveReqVO reqVO) { + + this.validateExists(reqVO.getId()); + + SysDictDO obj = new SysDictDO(); + obj.setId(Integer.valueOf(reqVO.getId())); + obj.setField1Name(reqVO.getFarmingName()); + obj.setStatus(reqVO.getUseStatus()); + + sysDictMapper.updateById(obj); + + } + + @Override + public void deleteFarmingTypeMaintenance(String id) { + + this.validateExists(id); + + SysDictDO obj = new SysDictDO(); + obj.setId(Integer.valueOf(id)); + obj.setDeleted(true); + + sysDictMapper.updateById(obj); + + } + + @Override + public PageResult getFarmingNameMaintenancePage(FarmingNameMaintenancePageReqVO reqVO) { + + SysDictPageReqVO source = new SysDictPageReqVO(); + source.setDictTypeCode(FARMING_NAME); + source.setPageNo(reqVO.getPageNo()); + source.setPageSize( reqVO.getPageSize()); + source.setField1Code(reqVO.getFarmingTypeCode()); + source.setField2Name(reqVO.getFarmingName()); + source.setStatus(reqVO.getUseStatus()); + PageResult result = this.selectDictByPage(source); + + Long total = result.getTotal(); + List list = result.getList().stream().map(e -> { + FarmingNameMaintenanceDO obj = new FarmingNameMaintenanceDO(); + obj.setId(String.valueOf(e.getId())); + obj.setFarmingCode(e.getField2Code()); + obj.setFarmingName(e.getField2Name()); + obj.setFarmingTypeCode(e.getField1Code()); + obj.setFarmingTypeName(e.getField1Name()); + obj.setUseStatus(e.getStatus()); + obj.setCreator(e.getCreator()); + obj.setCreateTime(e.getCreateTime()); + obj.setUpdater(e.getUpdater()); + return obj; + }).collect(Collectors.toList()); + + return new PageResult<>(list, total); + + } + + @Override + public FarmingNameMaintenanceDO getFarmingNameMaintenance(String id) { + + SysDictDO obj = sysDictMapper.selectDictByOne(new SysDictReqVO(Integer.valueOf(id), FARMING_NAME, 0)); + + FarmingNameMaintenanceDO res = new FarmingNameMaintenanceDO(); + res.setId(String.valueOf(obj.getId())); + res.setFarmingTypeCode(obj.getField1Code()); + res.setFarmingTypeName(obj.getField1Name()); + res.setFarmingCode(obj.getField2Code()); + res.setFarmingName(obj.getField2Name()); + res.setUseStatus(obj.getStatus()); + res.setDeleted(obj.getDeleted()); + res.setCreator(obj.getCreator()); + res.setCreateTime(obj.getCreateTime()); + res.setUpdater(obj.getUpdater()); + res.setUpdateTime(obj.getUpdateTime()); + return res; + + } + + @Override + public void createFarmingNameMaintenance(FarmingNameMaintenanceSaveReqVO reqVO) { + + String field1Name = sysDictMapper.selectDictByGroup(new SysDictReqVO(FARMING_NAME, reqVO.getFarmingType(), 0)); + + SysDictDO obj = new SysDictDO(); + obj.setDictTypeCode(FARMING_NAME); + obj.setDictTypeName("农事类型"); + obj.setField1Code(reqVO.getFarmingType()); + obj.setField1Name(field1Name); + obj.setField2Code(StrHelperUtil.generate()); + obj.setField2Name(reqVO.getFarmingName()); + obj.setStatus(reqVO.getUseStatus()); + obj.setDeleted(false); + obj.setCreator("系统"); + + sysDictMapper.insertOne(obj); + + } + + @Override + public void updateFarmingNameMaintenance(FarmingNameMaintenanceSaveReqVO reqVO) { + + this.validateExists(reqVO.getId()); + + String field1Name = sysDictMapper.selectDictByGroup(new SysDictReqVO(FARMING_NAME, reqVO.getFarmingType(), 0)); + + SysDictDO obj = new SysDictDO(); + obj.setId(Integer.valueOf(reqVO.getId())); + obj.setStatus(reqVO.getUseStatus()); + obj.setField1Code(reqVO.getFarmingType()); + obj.setField1Name(field1Name); + obj.setField2Name(reqVO.getFarmingName()); + sysDictMapper.updateById(obj); + + } + + @Override + public void deleteFarmingNameMaintenance(String id) { + + this.validateExists(id); + + SysDictDO obj = new SysDictDO(); + obj.setId(Integer.valueOf(id)); + obj.setDeleted(true); + + sysDictMapper.updateById(obj); + + } + + + + + + +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/utils/StrHelperUtil.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/utils/StrHelperUtil.java new file mode 100644 index 00000000..5e016fee --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/utils/StrHelperUtil.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.farm.utils; + +import java.security.SecureRandom; +import java.util.Random; + +/** + * @description: 字符串工具 + * @author: binda + * @date: 2025/8/18 15:48 + */ +public class StrHelperUtil { + // 定义可用字符(大写字母和数字) + private static final String ALLOWED_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; + private static final int STRING_LENGTH = 12; + + // 使用SecureRandom以获得更好的随机性 + private static final Random random = new SecureRandom(); + + /** + * 生成随机字符串(大写字母和数字组成,长度12) + * @return 随机生成的字符串 + */ + public static String generate() { + StringBuilder sb = new StringBuilder(STRING_LENGTH); + + for (int i = 0; i < STRING_LENGTH; i++) { + // 从ALLOWED_CHARACTERS中随机选择一个字符 + int randomIndex = random.nextInt(ALLOWED_CHARACTERS.length()); + char randomChar = ALLOWED_CHARACTERS.charAt(randomIndex); + sb.append(randomChar); + } + + return sb.toString(); + } +} diff --git a/yudao-module-farm/src/main/resources/mapper/SysDictMapper.xml b/yudao-module-farm/src/main/resources/mapper/SysDictMapper.xml new file mode 100644 index 00000000..26eb3794 --- /dev/null +++ b/yudao-module-farm/src/main/resources/mapper/SysDictMapper.xml @@ -0,0 +1,204 @@ + + + + + + + + id, + dict_type_code, + dict_type_name, + field1_code, + field1_name, + field2_code, + field2_name, + field3_code, + field3_name, + status, + deleted, + creator, + create_time, + updater, + update_time + + + + + + + + AND id = #{id} + + + AND dict_type_code = #{dictTypeCode} + + + AND deleted = #{deleted} + + + + + + + + + + + + + + + + AND dict_type_code = #{dictTypeCode} + + + AND field1_code = #{field1Code} + + + AND field1_name LIKE CONCAT('%', #{field1Name}, '%') + + + AND field2_code = #{field2Code} + + + AND field2_name LIKE CONCAT('%', #{field2Name}, '%') + + + AND field3_code = #{field3Code} + + + AND field3_name LIKE CONCAT('%', #{field3Name}, '%') + + + AND status = #{status} + + + AND deleted = #{deleted} + + + + + + + + + + INSERT INTO farm_sys_dict + + dict_type_code, + dict_type_name, + field1_code, + field1_name, + field2_code, + field2_name, + field3_code, + field3_name, + status, + deleted, + creator, + updater, + create_time, + update_time + + + #{dictTypeCode}, + #{dictTypeName}, + #{field1Code}, + #{field1Name}, + #{field2Code}, + #{field2Name}, + #{field3Code}, + #{field3Name}, + #{status}, + #{deleted}, + #{creator}, + #{updater}, + NOW(), + NOW() + + + + + UPDATE farm_sys_dict + + dict_type_code = #{dictTypeCode}, + dict_type_name = #{dictTypeName}, + field1_code = #{field1Code}, + field1_name = #{field1Name}, + field2_code = #{field2Code}, + field2_name = #{field2Name}, + field3_code = #{field3Code}, + field3_name = #{field3Name}, + status = #{status}, + deleted = #{deleted}, + updater = #{updater}, + update_time = NOW() + + WHERE id = #{id} + + + \ No newline at end of file diff --git a/yudao-module-farm/src/main/resources/mapper/disasterdata/DisasterDataMapper.xml b/yudao-module-farm/src/main/resources/mapper/disasterdata/DisasterDataMapper.xml index 6b56a3d3..aa3b3754 100644 --- a/yudao-module-farm/src/main/resources/mapper/disasterdata/DisasterDataMapper.xml +++ b/yudao-module-farm/src/main/resources/mapper/disasterdata/DisasterDataMapper.xml @@ -9,4 +9,61 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/yudao-module-farm/src/main/resources/mapper/farmingtypemaintenance/FarmingTypeMaintenanceMapper.xml b/yudao-module-farm/src/main/resources/mapper/farmingtypemaintenance/FarmingTypeMaintenanceMapper.xml index e9a8099d..7e5e4e1a 100644 --- a/yudao-module-farm/src/main/resources/mapper/farmingtypemaintenance/FarmingTypeMaintenanceMapper.xml +++ b/yudao-module-farm/src/main/resources/mapper/farmingtypemaintenance/FarmingTypeMaintenanceMapper.xml @@ -50,4 +50,27 @@ + + + UPDATE farm_farming_type_maintenance t + + + t.farming_code = #{farmingCode}, + + + t.farming_name = #{farmingName}, + + + t.use_status = #{useStatus}, + + + t.deleted = #{deleted}, + + + t.updater = #{updater}, + + t.update_time = NOW() + + where t.id = #{req.id} + \ No newline at end of file diff --git a/yudao-module-farm/src/main/resources/mapper/speciesclassifylibrary/SpeciesClassifyLibraryMapper.xml b/yudao-module-farm/src/main/resources/mapper/speciesclassifylibrary/SpeciesClassifyLibraryMapper.xml index d19d9202..2437c665 100644 --- a/yudao-module-farm/src/main/resources/mapper/speciesclassifylibrary/SpeciesClassifyLibraryMapper.xml +++ b/yudao-module-farm/src/main/resources/mapper/speciesclassifylibrary/SpeciesClassifyLibraryMapper.xml @@ -10,16 +10,16 @@ --> - id, - primary_class_code, - primary_class_name, - secondary_class_code, - secondary_class_name, - use_status, - creator, - create_time, - updater, - update_time + t.id, + t.primary_class_code, + t.primary_class_name, + t.secondary_class_code, + t.secondary_class_name, + t.use_status, + t.creator, + t.create_time, + t.updater, + t.update_time \ No newline at end of file