From 5727371fd6363bda38548b2b29f2663b8e6cae0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=BE=E5=AF=8C=E6=96=8C?= Date: Fri, 17 Oct 2025 14:26:47 +0800 Subject: [PATCH] =?UTF-8?q?refactor=20(farm):=20=E6=8A=95=E5=85=A5?= =?UTF-8?q?=E5=93=81=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 涉及到的模块: - 基础数据管理 - 投入品 (模版类型) - 模型管理 - 农事记录 - 投入品(引用类型) - 生产中心 - 农事记录 - 投入品使用记录 --- .../vo/inputs/InputsPageReqVO.java | 57 +++++++++++++ .../inputlibrary/vo/inputs/InputsRespVO.java | 69 +++++++++++++++ .../vo/inputs/InputsSaveReqVO.java | 45 ++++++++++ .../InputUsageRecordsPageReqVO.java | 45 ++++++++++ .../usagerecords/InputUsageRecordsRespVO.java | 53 ++++++++++++ .../InputUsageRecordsSaveReqVO.java | 38 +++++++++ .../inputlibrary/InputLibraryDO.java | 1 + .../inputlibrary/InputUsageRecordsDO.java | 57 +++++++++++++ .../dal/dataobject/inputlibrary/InputsDO.java | 76 +++++++++++++++++ .../inputlibrary/InputLibraryMapper.java | 1 + .../inputlibrary/InputUsageRecordsMapper.java | 31 +++++++ .../dal/mysql/inputlibrary/InputsMapper.java | 34 ++++++++ .../module/farm/enums/ErrorCodeConstants.java | 6 ++ .../InputUsageRecordsService.java | 65 ++++++++++++++ .../InputUsageRecordsServiceImpl.java | 78 +++++++++++++++++ .../service/inputlibrary/InputsService.java | 65 ++++++++++++++ .../inputlibrary/InputsServiceImpl.java | 84 +++++++++++++++++++ .../inputlibrary/InputUsageRecordsMapper.xml | 12 +++ .../mapper/inputlibrary/InputsMapper.xml | 12 +++ 19 files changed, 829 insertions(+) create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/vo/inputs/InputsPageReqVO.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/vo/inputs/InputsRespVO.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/vo/inputs/InputsSaveReqVO.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/vo/usagerecords/InputUsageRecordsPageReqVO.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/vo/usagerecords/InputUsageRecordsRespVO.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/vo/usagerecords/InputUsageRecordsSaveReqVO.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/inputlibrary/InputUsageRecordsDO.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/inputlibrary/InputsDO.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/inputlibrary/InputUsageRecordsMapper.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/inputlibrary/InputsMapper.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputUsageRecordsService.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputUsageRecordsServiceImpl.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputsService.java create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputsServiceImpl.java create mode 100644 yudao-module-farm/src/main/resources/mapper/inputlibrary/InputUsageRecordsMapper.xml create mode 100644 yudao-module-farm/src/main/resources/mapper/inputlibrary/InputsMapper.xml diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/vo/inputs/InputsPageReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/vo/inputs/InputsPageReqVO.java new file mode 100644 index 00000000..9df20f2f --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/vo/inputs/InputsPageReqVO.java @@ -0,0 +1,57 @@ +package cn.iocoder.yudao.module.farm.controller.admin.managementcenter.basicdatamanagement.inputlibrary.vo.inputs; + + +import lombok.*; + +import java.util.*; + +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +import java.math.BigDecimal; + +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 InputsPageReqVO extends PageParam { + + @Schema(description = "投入品分类 (1: 模版分类; 2: 引用分类)") + private Integer inputCategory; + + @Schema(description = "投入品类型", example = "2") + private String inputType; + + @Schema(description = "投入品名称", example = "芋艿") + private String inputName; + + @Schema(description = "投入品单价", example = "11570") + private BigDecimal inputPrice; + + @Schema(description = "投入品单位") + private String inputUnit; + + @Schema(description = "投入品规格") + private String inputSpec; + + @Schema(description = "投入品规格单位") + private String specUnit; + + @Schema(description = "投入品用量") + private BigDecimal inputUsage; + + @Schema(description = "投入品使用状态 (1:启用; 0:停用;)", example = "1") + private Integer usageStatus; + + @Schema(description = "投入品备注", example = "你说的对") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/vo/inputs/InputsRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/vo/inputs/InputsRespVO.java new file mode 100644 index 00000000..b492bde2 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/vo/inputs/InputsRespVO.java @@ -0,0 +1,69 @@ +package cn.iocoder.yudao.module.farm.controller.admin.managementcenter.basicdatamanagement.inputlibrary.vo.inputs; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.util.*; +import java.math.BigDecimal; + +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import cn.idev.excel.annotation.*; + +@Schema(description = "管理后台 - 投入品 Response VO") +@Data +@ExcelIgnoreUnannotated +public class InputsRespVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4097") + @ExcelProperty("ID") + private String id; + + @Schema(description = "投入品分类 (1: 模版分类; 2: 引用分类)") + @ExcelProperty("投入品分类 (1: 模版分类; 2: 引用分类)") + private Integer inputCategory; + + @Schema(description = "投入品类型", example = "2") + @ExcelProperty("投入品类型") + private String inputType; + + @Schema(description = "投入品名称", example = "芋艿") + @ExcelProperty("投入品名称") + private String inputName; + + @Schema(description = "投入品单价", example = "11570") + @ExcelProperty("投入品单价") + private BigDecimal inputPrice; + + @Schema(description = "投入品单位") + @ExcelProperty("投入品单位") + private String inputUnit; + + @Schema(description = "投入品规格") + @ExcelProperty("投入品规格") + private String inputSpec; + + @Schema(description = "投入品规格单位") + @ExcelProperty("投入品规格单位") + private String specUnit; + + @Schema(description = "投入品用量") + @ExcelProperty("投入品用量") + private BigDecimal inputUsage; + + @Schema(description = "投入品使用状态 (1:启用; 0:停用;)", example = "1") + @ExcelProperty("投入品使用状态 (1:启用; 0:停用;)") + private Integer usageStatus; + + @Schema(description = "投入品备注", example = "你说的对") + @ExcelProperty("投入品备注") + private String remark; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/vo/inputs/InputsSaveReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/vo/inputs/InputsSaveReqVO.java new file mode 100644 index 00000000..d2c2b477 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/vo/inputs/InputsSaveReqVO.java @@ -0,0 +1,45 @@ +package cn.iocoder.yudao.module.farm.controller.admin.managementcenter.basicdatamanagement.inputlibrary.vo.inputs; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.math.BigDecimal; + +@Schema(description = "管理后台 - 投入品新增/修改 Request VO") +@Data +public class InputsSaveReqVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4097") + private String id; + + @Schema(description = "投入品分类 (1: 模版分类; 2: 引用分类)") + private Integer inputCategory; + + @Schema(description = "投入品类型", example = "2") + private String inputType; + + @Schema(description = "投入品名称", example = "芋艿") + private String inputName; + + @Schema(description = "投入品单价", example = "11570") + private BigDecimal inputPrice; + + @Schema(description = "投入品单位") + private String inputUnit; + + @Schema(description = "投入品规格") + private String inputSpec; + + @Schema(description = "投入品规格单位") + private String specUnit; + + @Schema(description = "投入品用量") + private BigDecimal inputUsage; + + @Schema(description = "投入品使用状态 (1:启用; 0:停用;)", example = "1") + private Integer usageStatus; + + @Schema(description = "投入品备注", example = "你说的对") + private String remark; + +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/vo/usagerecords/InputUsageRecordsPageReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/vo/usagerecords/InputUsageRecordsPageReqVO.java new file mode 100644 index 00000000..eeb3e4eb --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/vo/usagerecords/InputUsageRecordsPageReqVO.java @@ -0,0 +1,45 @@ +package cn.iocoder.yudao.module.farm.controller.admin.managementcenter.basicdatamanagement.inputlibrary.vo.usagerecords; + + +import lombok.*; + +import java.util.*; + +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +import java.math.BigDecimal; + +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 InputUsageRecordsPageReqVO extends PageParam { + + @Schema(description = "投入品ID", example = "30559") + private String inputId; + + @Schema(description = "农事记录ID", example = "26500") + private String farmRecordId; + + @Schema(description = "用量") + private BigDecimal usageAmount; + + @Schema(description = "单价", example = "280") + private BigDecimal unitPrice; + + @Schema(description = "总价", example = "29353") + private BigDecimal totalPrice; + + @Schema(description = "备注", example = "随便") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/vo/usagerecords/InputUsageRecordsRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/vo/usagerecords/InputUsageRecordsRespVO.java new file mode 100644 index 00000000..ed9e8e05 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/vo/usagerecords/InputUsageRecordsRespVO.java @@ -0,0 +1,53 @@ +package cn.iocoder.yudao.module.farm.controller.admin.managementcenter.basicdatamanagement.inputlibrary.vo.usagerecords; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.util.*; +import java.math.BigDecimal; + +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import cn.idev.excel.annotation.*; + +@Schema(description = "管理后台 - 投入品使用记录 Response VO") +@Data +@ExcelIgnoreUnannotated +public class InputUsageRecordsRespVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14729") + @ExcelProperty("ID") + private String id; + + @Schema(description = "投入品ID", example = "30559") + @ExcelProperty("投入品ID") + private String inputId; + + @Schema(description = "农事记录ID", example = "26500") + @ExcelProperty("农事记录ID") + private String farmRecordId; + + @Schema(description = "用量") + @ExcelProperty("用量") + private BigDecimal usageAmount; + + @Schema(description = "单价", example = "280") + @ExcelProperty("单价") + private BigDecimal unitPrice; + + @Schema(description = "总价", example = "29353") + @ExcelProperty("总价") + private BigDecimal totalPrice; + + @Schema(description = "备注", example = "随便") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/vo/usagerecords/InputUsageRecordsSaveReqVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/vo/usagerecords/InputUsageRecordsSaveReqVO.java new file mode 100644 index 00000000..cdb2bafc --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/basicdatamanagement/inputlibrary/vo/usagerecords/InputUsageRecordsSaveReqVO.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.farm.controller.admin.managementcenter.basicdatamanagement.inputlibrary.vo.usagerecords; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.util.*; + +import jakarta.validation.constraints.*; + +import java.math.BigDecimal; + +@Schema(description = "管理后台 - 投入品使用记录新增/修改 Request VO") +@Data +public class InputUsageRecordsSaveReqVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14729") + private String id; + + @Schema(description = "投入品ID", example = "30559") + private String inputId; + + @Schema(description = "农事记录ID", example = "26500") + private String farmRecordId; + + @Schema(description = "用量") + private BigDecimal usageAmount; + + @Schema(description = "单价", example = "280") + private BigDecimal unitPrice; + + @Schema(description = "总价", example = "29353") + private BigDecimal totalPrice; + + @Schema(description = "备注", example = "随便") + private String remark; + +} \ No newline at end of file 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 49582071..5ce449df 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 @@ -21,6 +21,7 @@ import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; @Builder @NoArgsConstructor @AllArgsConstructor +@Deprecated public class InputLibraryDO extends BaseDO { /** diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/inputlibrary/InputUsageRecordsDO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/inputlibrary/InputUsageRecordsDO.java new file mode 100644 index 00000000..6086a1bd --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/inputlibrary/InputUsageRecordsDO.java @@ -0,0 +1,57 @@ +package cn.iocoder.yudao.module.farm.dal.dataobject.inputlibrary; + + +import lombok.*; + +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 投入品使用记录 DO + * + * @author 超级管理 + */ +@TableName("farm_input_usage_records") +@KeySequence("farm_input_usage_records_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class InputUsageRecordsDO extends BaseDO { + + /** + * ID + */ + @TableId(type = IdType.INPUT) + private String id; + /** + * 投入品ID + */ + private String inputId; + /** + * 农事记录ID + */ + private String farmRecordId; + /** + * 用量 + */ + private BigDecimal usageAmount; + /** + * 单价 + */ + private BigDecimal unitPrice; + /** + * 总价 + */ + private BigDecimal totalPrice; + /** + * 备注 + */ + private String remark; + + +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/inputlibrary/InputsDO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/inputlibrary/InputsDO.java new file mode 100644 index 00000000..6ff9fe3e --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/inputlibrary/InputsDO.java @@ -0,0 +1,76 @@ +package cn.iocoder.yudao.module.farm.dal.dataobject.inputlibrary; + + +import lombok.*; + +import java.util.*; +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; + +/** + * 投入品 DO + * + * @author 超级管理 + */ +@TableName("farm_inputs") +@KeySequence("farm_inputs_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class InputsDO extends BaseDO { + + /** + * ID + */ + @TableId(type = IdType.INPUT) + private String id; + /** + * 投入品分类 (1: 模版分类; 2: 引用分类) + */ + private Integer inputCategory; + /** + * 投入品类型 + */ + private String inputType; + /** + * 投入品名称 + */ + private String inputName; + /** + * 投入品单价 + */ + private BigDecimal inputPrice; + /** + * 投入品单位 + */ + private String inputUnit; + /** + * 投入品规格 + */ + private String inputSpec; + /** + * 投入品规格单位 + */ + private String specUnit; + /** + * 投入品用量 + */ + private BigDecimal inputUsage; + /** + * 投入品使用状态 (1:启用; 0:停用;) + */ + private Integer usageStatus; + /** + * 投入品备注 + */ + private String remark; + +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/inputlibrary/InputLibraryMapper.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/inputlibrary/InputLibraryMapper.java index acc2602c..afd4cb89 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/inputlibrary/InputLibraryMapper.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/inputlibrary/InputLibraryMapper.java @@ -13,6 +13,7 @@ import org.apache.ibatis.annotations.Mapper; * @author 芋道源码 */ @Mapper +@Deprecated public interface InputLibraryMapper extends BaseMapperX { default PageResult selectPage(InputLibraryPageReqVO reqVO) { diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/inputlibrary/InputUsageRecordsMapper.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/inputlibrary/InputUsageRecordsMapper.java new file mode 100644 index 00000000..f32f60e1 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/inputlibrary/InputUsageRecordsMapper.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.farm.dal.mysql.inputlibrary; + + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.basicdatamanagement.inputlibrary.vo.usagerecords.InputUsageRecordsPageReqVO; +import cn.iocoder.yudao.module.farm.dal.dataobject.inputlibrary.InputUsageRecordsDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 投入品使用记录 Mapper + * + * @author 超级管理 + */ +@Mapper +public interface InputUsageRecordsMapper extends BaseMapperX { + + default PageResult selectPage(InputUsageRecordsPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(InputUsageRecordsDO::getInputId, reqVO.getInputId()) + .eqIfPresent(InputUsageRecordsDO::getFarmRecordId, reqVO.getFarmRecordId()) + .eqIfPresent(InputUsageRecordsDO::getUsageAmount, reqVO.getUsageAmount()) + .eqIfPresent(InputUsageRecordsDO::getUnitPrice, reqVO.getUnitPrice()) + .eqIfPresent(InputUsageRecordsDO::getTotalPrice, reqVO.getTotalPrice()) + .eqIfPresent(InputUsageRecordsDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(InputUsageRecordsDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(InputUsageRecordsDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/inputlibrary/InputsMapper.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/inputlibrary/InputsMapper.java new file mode 100644 index 00000000..d1bd1018 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/inputlibrary/InputsMapper.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.farm.dal.mysql.inputlibrary; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.basicdatamanagement.inputlibrary.vo.inputs.InputsPageReqVO; +import cn.iocoder.yudao.module.farm.dal.dataobject.inputlibrary.InputsDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 投入品 Mapper + * + * @author 超级管理 + */ +@Mapper +public interface InputsMapper extends BaseMapperX { + + default PageResult selectPage(InputsPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(InputsDO::getInputCategory, reqVO.getInputCategory()) + .eqIfPresent(InputsDO::getInputType, reqVO.getInputType()) + .likeIfPresent(InputsDO::getInputName, reqVO.getInputName()) + .eqIfPresent(InputsDO::getInputPrice, reqVO.getInputPrice()) + .eqIfPresent(InputsDO::getInputUnit, reqVO.getInputUnit()) + .eqIfPresent(InputsDO::getInputSpec, reqVO.getInputSpec()) + .eqIfPresent(InputsDO::getSpecUnit, reqVO.getSpecUnit()) + .eqIfPresent(InputsDO::getInputUsage, reqVO.getInputUsage()) + .eqIfPresent(InputsDO::getUsageStatus, reqVO.getUsageStatus()) + .eqIfPresent(InputsDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(InputsDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(InputsDO::getId)); + } + +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/enums/ErrorCodeConstants.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/enums/ErrorCodeConstants.java index d691964f..98f3cccd 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/enums/ErrorCodeConstants.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/enums/ErrorCodeConstants.java @@ -155,4 +155,10 @@ public interface ErrorCodeConstants { ErrorCode ENVIRONMENT_INDICATORS_NOT_EXISTS = new ErrorCode(1_050_048_000, "环境指标不存在"); ErrorCode FARM_INFORMATION_NOT_EXISTS = new ErrorCode(1_050_049_000, "农业资讯不存在"); + + // ========== 投入品 ========== + ErrorCode INPUTS_NOT_EXISTS = new ErrorCode(1_050_050_000, "投入品不存在"); + + // ========== 使用记录 ========== + ErrorCode INPUT_USAGE_RECORDS_NOT_EXISTS = new ErrorCode(1_050_051_000, "投入品使用记录不存在"); } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputUsageRecordsService.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputUsageRecordsService.java new file mode 100644 index 00000000..15ce8948 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputUsageRecordsService.java @@ -0,0 +1,65 @@ +package cn.iocoder.yudao.module.farm.service.inputlibrary; + + +import java.util.*; + +import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.basicdatamanagement.inputlibrary.vo.usagerecords.InputUsageRecordsPageReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.basicdatamanagement.inputlibrary.vo.usagerecords.InputUsageRecordsSaveReqVO; +import cn.iocoder.yudao.module.farm.dal.dataobject.inputlibrary.InputUsageRecordsDO; +import jakarta.validation.*; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 投入品使用记录 Service 接口 + * + * @author 超级管理 + */ +public interface InputUsageRecordsService { + + /** + * 创建投入品使用记录 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + String createInputUsageRecords(@Valid InputUsageRecordsSaveReqVO createReqVO); + + /** + * 更新投入品使用记录 + * + * @param updateReqVO 更新信息 + */ + void updateInputUsageRecords(@Valid InputUsageRecordsSaveReqVO updateReqVO); + + /** + * 删除投入品使用记录 + * + * @param id 编号 + */ + void deleteInputUsageRecords(String id); + + /** + * 批量删除投入品使用记录 + * + * @param ids 编号 + */ + void deleteInputUsageRecordsListByIds(List ids); + + /** + * 获得投入品使用记录 + * + * @param id 编号 + * @return 投入品使用记录 + */ + InputUsageRecordsDO getInputUsageRecords(String id); + + /** + * 获得投入品使用记录分页 + * + * @param pageReqVO 分页查询 + * @return 投入品使用记录分页 + */ + PageResult getInputUsageRecordsPage(InputUsageRecordsPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputUsageRecordsServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputUsageRecordsServiceImpl.java new file mode 100644 index 00000000..be5da75b --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputUsageRecordsServiceImpl.java @@ -0,0 +1,78 @@ +package cn.iocoder.yudao.module.farm.service.inputlibrary; + +import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.basicdatamanagement.inputlibrary.vo.usagerecords.InputUsageRecordsPageReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.basicdatamanagement.inputlibrary.vo.usagerecords.InputUsageRecordsSaveReqVO; +import cn.iocoder.yudao.module.farm.dal.dataobject.inputlibrary.InputUsageRecordsDO; +import cn.iocoder.yudao.module.farm.dal.mysql.inputlibrary.InputUsageRecordsMapper; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import java.util.*; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.*; + +/** + * 投入品使用记录 Service 实现类 + * + * @author 超级管理 + */ +@Service +@Validated +public class InputUsageRecordsServiceImpl implements InputUsageRecordsService { + + @Resource + private InputUsageRecordsMapper inputUsageRecordsMapper; + + @Override + public String createInputUsageRecords(InputUsageRecordsSaveReqVO createReqVO) { + // 插入 + InputUsageRecordsDO inputUsageRecords = BeanUtils.toBean(createReqVO, InputUsageRecordsDO.class); + inputUsageRecordsMapper.insert(inputUsageRecords); + + // 返回 + return inputUsageRecords.getId(); + } + + @Override + public void updateInputUsageRecords(InputUsageRecordsSaveReqVO updateReqVO) { + // 校验存在 + validateInputUsageRecordsExists(updateReqVO.getId()); + // 更新 + InputUsageRecordsDO updateObj = BeanUtils.toBean(updateReqVO, InputUsageRecordsDO.class); + inputUsageRecordsMapper.updateById(updateObj); + } + + @Override + public void deleteInputUsageRecords(String id) { + // 校验存在 + validateInputUsageRecordsExists(id); + // 删除 + inputUsageRecordsMapper.deleteById(id); + } + + @Override + public void deleteInputUsageRecordsListByIds(List ids) { + // 删除 + inputUsageRecordsMapper.deleteByIds(ids); + } + + + private void validateInputUsageRecordsExists(String id) { + if (inputUsageRecordsMapper.selectById(id) == null) { + throw exception(INPUT_USAGE_RECORDS_NOT_EXISTS); + } + } + + @Override + public InputUsageRecordsDO getInputUsageRecords(String id) { + return inputUsageRecordsMapper.selectById(id); + } + + @Override + public PageResult getInputUsageRecordsPage(InputUsageRecordsPageReqVO pageReqVO) { + return inputUsageRecordsMapper.selectPage(pageReqVO); + } + +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputsService.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputsService.java new file mode 100644 index 00000000..5bf06389 --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputsService.java @@ -0,0 +1,65 @@ +package cn.iocoder.yudao.module.farm.service.inputlibrary; + + +import java.util.*; + +import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.basicdatamanagement.inputlibrary.vo.inputs.InputsPageReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.basicdatamanagement.inputlibrary.vo.inputs.InputsSaveReqVO; +import cn.iocoder.yudao.module.farm.dal.dataobject.inputlibrary.InputsDO; +import jakarta.validation.*; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 投入品 Service 接口 + * + * @author 超级管理 + */ +public interface InputsService { + + /** + * 创建投入品 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + String createInputs(@Valid InputsSaveReqVO createReqVO); + + /** + * 更新投入品 + * + * @param updateReqVO 更新信息 + */ + void updateInputs(@Valid InputsSaveReqVO updateReqVO); + + /** + * 删除投入品 + * + * @param id 编号 + */ + void deleteInputs(String id); + + /** + * 批量删除投入品 + * + * @param ids 编号 + */ + void deleteInputsListByIds(List ids); + + /** + * 获得投入品 + * + * @param id 编号 + * @return 投入品 + */ + InputsDO getInputs(String id); + + /** + * 获得投入品分页 + * + * @param pageReqVO 分页查询 + * @return 投入品分页 + */ + PageResult getInputsPage(InputsPageReqVO pageReqVO); + +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputsServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputsServiceImpl.java new file mode 100644 index 00000000..87a7cabc --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputsServiceImpl.java @@ -0,0 +1,84 @@ +package cn.iocoder.yudao.module.farm.service.inputlibrary; + + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.basicdatamanagement.inputlibrary.vo.inputs.InputsPageReqVO; +import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.basicdatamanagement.inputlibrary.vo.inputs.InputsSaveReqVO; +import cn.iocoder.yudao.module.farm.dal.dataobject.inputlibrary.InputsDO; +import cn.iocoder.yudao.module.farm.dal.mysql.inputlibrary.InputsMapper; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.*; + +/** + * 投入品 Service 实现类 + * + * @author 超级管理 + */ +@Service +@Validated +public class InputsServiceImpl implements InputsService { + + @Resource + private InputsMapper inputsMapper; + + @Override + public String createInputs(InputsSaveReqVO createReqVO) { + // 插入 + InputsDO inputs = BeanUtils.toBean(createReqVO, InputsDO.class); + inputsMapper.insert(inputs); + + // 返回 + return inputs.getId(); + } + + @Override + public void updateInputs(InputsSaveReqVO updateReqVO) { + // 校验存在 + validateInputsExists(updateReqVO.getId()); + // 更新 + InputsDO updateObj = BeanUtils.toBean(updateReqVO, InputsDO.class); + inputsMapper.updateById(updateObj); + } + + @Override + public void deleteInputs(String id) { + // 校验存在 + validateInputsExists(id); + // 删除 + inputsMapper.deleteById(id); + } + + @Override + public void deleteInputsListByIds(List ids) { + // 删除 + inputsMapper.deleteByIds(ids); + } + + + private void validateInputsExists(String id) { + if (inputsMapper.selectById(id) == null) { + throw exception(INPUTS_NOT_EXISTS); + } + } + + @Override + public InputsDO getInputs(String id) { + return inputsMapper.selectById(id); + } + + @Override + public PageResult getInputsPage(InputsPageReqVO pageReqVO) { + return inputsMapper.selectPage(pageReqVO); + } + +} diff --git a/yudao-module-farm/src/main/resources/mapper/inputlibrary/InputUsageRecordsMapper.xml b/yudao-module-farm/src/main/resources/mapper/inputlibrary/InputUsageRecordsMapper.xml new file mode 100644 index 00000000..d42589f3 --- /dev/null +++ b/yudao-module-farm/src/main/resources/mapper/inputlibrary/InputUsageRecordsMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/yudao-module-farm/src/main/resources/mapper/inputlibrary/InputsMapper.xml b/yudao-module-farm/src/main/resources/mapper/inputlibrary/InputsMapper.xml new file mode 100644 index 00000000..0806c17d --- /dev/null +++ b/yudao-module-farm/src/main/resources/mapper/inputlibrary/InputsMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file