From c1de614cb2dfa6f5dc9073dc652577427c0143a9 Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Fri, 6 Feb 2026 15:30:51 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E4=BA=A4=E6=98=93=E7=BC=96=E8=BE=91DTO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.5 --- .../dto/CcdiPurchaseTransactionEditDTO.java | 198 ++++++++++++++++++ 1 file changed, 198 insertions(+) create mode 100644 ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/domain/dto/CcdiPurchaseTransactionEditDTO.java diff --git a/ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/domain/dto/CcdiPurchaseTransactionEditDTO.java b/ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/domain/dto/CcdiPurchaseTransactionEditDTO.java new file mode 100644 index 0000000..b9f8e9b --- /dev/null +++ b/ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/domain/dto/CcdiPurchaseTransactionEditDTO.java @@ -0,0 +1,198 @@ +package com.ruoyi.ccdi.domain.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.DecimalMin; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDate; + +/** + * 采购交易信息编辑DTO + * + * @author ruoyi + * @date 2026-02-06 + */ +@Data +@Schema(description = "采购交易信息编辑") +public class CcdiPurchaseTransactionEditDTO implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** 采购事项ID */ + @NotBlank(message = "采购事项ID不能为空") + @Size(max = 32, message = "采购事项ID长度不能超过32个字符") + @Schema(description = "采购事项ID") + private String purchaseId; + + /** 采购类别 */ + @NotBlank(message = "采购类别不能为空") + @Size(max = 50, message = "采购类别长度不能超过50个字符") + @Schema(description = "采购类别") + private String purchaseCategory; + + /** 项目名称 */ + @Size(max = 200, message = "项目名称长度不能超过200个字符") + @Schema(description = "项目名称") + private String projectName; + + /** 标的物名称 */ + @NotBlank(message = "标的物名称不能为空") + @Size(max = 200, message = "标的物名称长度不能超过200个字符") + @Schema(description = "标的物名称") + private String subjectName; + + /** 标的物描述 */ + @Schema(description = "标的物描述") + private String subjectDesc; + + /** 采购数量 */ + @NotNull(message = "采购数量不能为空") + @DecimalMin(value = "0.0001", message = "采购数量必须大于0") + @Schema(description = "采购数量") + private BigDecimal purchaseQty; + + /** 预算金额 */ + @NotNull(message = "预算金额不能为空") + @DecimalMin(value = "0.01", message = "预算金额必须大于0") + @Schema(description = "预算金额") + private BigDecimal budgetAmount; + + /** 中标金额 */ + @DecimalMin(value = "0.01", message = "中标金额必须大于0") + @Schema(description = "中标金额") + private BigDecimal bidAmount; + + /** 实际采购金额 */ + @DecimalMin(value = "0.01", message = "实际采购金额必须大于0") + @Schema(description = "实际采购金额") + private BigDecimal actualAmount; + + /** 合同金额 */ + @DecimalMin(value = "0.01", message = "合同金额必须大于0") + @Schema(description = "合同金额") + private BigDecimal contractAmount; + + /** 结算金额 */ + @DecimalMin(value = "0.01", message = "结算金额必须大于0") + @Schema(description = "结算金额") + private BigDecimal settlementAmount; + + /** 采购方式 */ + @NotBlank(message = "采购方式不能为空") + @Size(max = 50, message = "采购方式长度不能超过50个字符") + @Schema(description = "采购方式") + private String purchaseMethod; + + /** 中标供应商名称 */ + @Size(max = 200, message = "中标供应商名称长度不能超过200个字符") + @Schema(description = "中标供应商名称") + private String supplierName; + + /** 供应商联系人 */ + @Size(max = 50, message = "供应商联系人长度不能超过50个字符") + @Schema(description = "供应商联系人") + private String contactPerson; + + /** 供应商联系电话 */ + @Pattern(regexp = "^1[3-9]\\d{9}$|^0\\d{2,3}-?\\d{7,8}$", message = "供应商联系电话格式不正确") + @Schema(description = "供应商联系电话") + private String contactPhone; + + /** 供应商统一信用代码 */ + @Pattern(regexp = "^[0-9A-HJ-NPQRTUWXY]{2}\\d{6}[0-9A-HJ-NPQRTUWXY]{10}$", message = "供应商统一信用代码格式不正确") + @Schema(description = "供应商统一信用代码") + private String supplierUscc; + + /** 供应商银行账户 */ + @Size(max = 50, message = "供应商银行账户长度不能超过50个字符") + @Schema(description = "供应商银行账户") + private String supplierBankAccount; + + /** 采购申请日期(或立项日期) */ + @NotNull(message = "采购申请日期不能为空") + @JsonFormat(pattern = "yyyy-MM-dd") + @Schema(description = "采购申请日期") + private LocalDate applyDate; + + /** 采购计划批准日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Schema(description = "采购计划批准日期") + private LocalDate planApproveDate; + + /** 采购公告发布日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Schema(description = "采购公告发布日期") + private LocalDate announceDate; + + /** 开标日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Schema(description = "开标日期") + private LocalDate bidOpenDate; + + /** 合同签订日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Schema(description = "合同签订日期") + private LocalDate contractSignDate; + + /** 预计交货日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Schema(description = "预计交货日期") + private LocalDate expectedDeliveryDate; + + /** 实际交货日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Schema(description = "实际交货日期") + private LocalDate actualDeliveryDate; + + /** 验收日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Schema(description = "验收日期") + private LocalDate acceptanceDate; + + /** 结算日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Schema(description = "结算日期") + private LocalDate settlementDate; + + /** 申请人工号 */ + @NotBlank(message = "申请人工号不能为空") + @Size(max = 7, message = "申请人工号长度不能超过7个字符") + @Schema(description = "申请人工号") + private String applicantId; + + /** 申请人姓名 */ + @NotBlank(message = "申请人姓名不能为空") + @Size(max = 50, message = "申请人姓名长度不能超过50个字符") + @Schema(description = "申请人姓名") + private String applicantName; + + /** 申请部门 */ + @NotBlank(message = "申请部门不能为空") + @Size(max = 100, message = "申请部门长度不能超过100个字符") + @Schema(description = "申请部门") + private String applyDepartment; + + /** 采购负责人工号 */ + @Size(max = 7, message = "采购负责人工号长度不能超过7个字符") + @Schema(description = "采购负责人工号") + private String purchaseLeaderId; + + /** 采购负责人姓名 */ + @Size(max = 50, message = "采购负责人姓名长度不能超过50个字符") + @Schema(description = "采购负责人姓名") + private String purchaseLeaderName; + + /** 采购部门 */ + @Size(max = 100, message = "采购部门长度不能超过100个字符") + @Schema(description = "采购部门") + private String purchaseDepartment; +}