package com.ruoyi.sales.vo; import com.ruoyi.basic.pojo.Customer; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; import java.math.BigDecimal; import java.util.List; import java.util.Optional; import static com.ruoyi.common.utils.StringUtils.padRight; /** * @author buhuazhen * @date 2026/3/18 * @email 3038525872@qq.com */ @Data @AllArgsConstructor @NoArgsConstructor public class ExportProcessContractVo implements Serializable { private Long id; // yyyy年MM月dd日 private String createTime; // 总金额(大写汉字) private String totalAmountZh; // 甲方 private Customer partyA; // 乙方 private Customer partyB; // 甲方公司名称 private String partyAClientName; // 乙方公司名称 private String partyBClientName; // 备注 private String remark; private List saleProducts; // 签订地点 private String placeOfSinging; private String taxRate; // 公式信息 @Data @AllArgsConstructor @NoArgsConstructor public static class Customer implements Serializable { // 法人 private String corporation = ""; // 开户行 private String bankName = ""; //代理人 private String agent = ""; // 地址 private String address = ""; //传真 private String fax = ""; private String taxpayerIdentificationNumber = ""; // 开户行号 private String bankCode = ""; // 邮编 private String postCode = ""; public static ExportProcessContractVo.Customer getCustomer(com.ruoyi.basic.pojo.Customer customer) { ExportProcessContractVo.Customer partyA = new ExportProcessContractVo.Customer(); partyA.setFax(Optional.ofNullable(customer.getFax()).orElse("")); partyA.setAddress(padRight(customer.getCompanyAddress(), 15)); partyA.setCorporation(Optional.ofNullable(customer.getCorporation()).orElse("")); partyA.setBankName(padRight(customer.getBankName(), 13)); partyA.setAgent(Optional.ofNullable(customer.getAgent()).orElse("")); partyA.setTaxpayerIdentificationNumber(padRight(customer.getTaxpayerIdentificationNumber(), 15)); partyA.setBankCode(padRight(customer.getBankCode(), 12)); return partyA; } } @Data @AllArgsConstructor @NoArgsConstructor public static class SaleProduct implements Serializable { // 合同编号 private String salesContractNo = ""; private String productCategory = ""; private String specificationModel = ""; private BigDecimal quantity; // 税率 private BigDecimal taxRate; // 含税单价 private BigDecimal taxInclusiveUnitPrice; // 含税总价 private BigDecimal taxInclusiveTotalPrice; } }