Pārlūkot izejas kodu

feature 票据打印参数配置化

xiahan 4 mēneši atpakaļ
vecāks
revīzija
7b73cf4a27

+ 19 - 0
zhsw-common/src/main/java/com/rongwei/zhsw/system/dao/SwPrintRepairConfigDao.java

@@ -0,0 +1,19 @@
+package com.rongwei.zhsw.system.dao;
+
+import com.rongwe.zhsw.system.domain.SwPrintRepairConfigDo;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author libai
+* @description 针对表【sw_print_repair_config(票据打印配置信息)】的数据库操作Mapper
+* @createDate 2025-03-21 13:18:58
+* @Entity generator.domain.SwPrintRepairConfig
+*/
+public interface SwPrintRepairConfigDao extends BaseMapper<SwPrintRepairConfigDo> {
+
+}
+
+
+
+

+ 125 - 26
zhsw-common/src/main/java/com/rongwei/zhsw/system/service/impl/PrintServiceImpl.java

@@ -1,14 +1,22 @@
 package com.rongwei.zhsw.system.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.google.common.collect.Lists;
 import com.rongwe.zhsw.system.domain.SwBillManagementPaidDo;
 import com.rongwe.zhsw.system.domain.SwBillingRecordDo;
+import com.rongwe.zhsw.system.domain.SwPrintRepairConfigDo;
 import com.rongwe.zhsw.system.domain.SwUserManagementDo;
 import com.rongwe.zhsw.system.vo.PrintReceiptVo;
+import com.rongwei.rwadmincommon.system.dao.SysDictDao;
+import com.rongwei.rwadmincommon.system.domain.SysDictDo;
+import com.rongwei.rwadmincommon.system.vo.SysUserVo;
 import com.rongwei.rwcommon.base.BaseDo;
 import com.rongwei.rwcommon.base.R;
 import com.rongwei.rwcommon.base.exception.CustomException;
+import com.rongwei.zhsw.system.dao.SwPrintRepairConfigDao;
 import com.rongwei.zhsw.system.service.PrintService;
+import com.rongwei.zhsw.system.utils.NumberToChineseUppercaseUtils;
+import com.rongwei.zhsw.system.utils.ZHSWCommonUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -22,6 +30,7 @@ import java.util.stream.Collectors;
 
 import static com.rongwei.zhsw.system.utils.SaveConstans.billReccord.FULLREFUNDSTATUS;
 
+
 /**
  * PrintServiceImpl class
  *
@@ -37,6 +46,11 @@ public class PrintServiceImpl implements PrintService {
     private SwUserManagementServiceImpl swUserManagementService;
     @Autowired
     private SwBillManagementPaidServiceImpl swBillManagementPaidService;
+    @Autowired
+    private SwPrintRepairConfigDao swPrintRepairConfigDao;
+    @Autowired
+    private SysDictDao sysDictDao;
+
 
     @Override
     public R printReceipt(List<String> ids) {
@@ -51,6 +65,8 @@ public class PrintServiceImpl implements PrintService {
         if (b) {
             throw new CustomException("存在全额退款记录,不可打印票据");
         }
+
+
         // 户号
         List<String> accountList = swBillingRecordDos.stream().map(SwBillingRecordDo::getUsernumber).collect(Collectors.toList());
         // 用户信息
@@ -62,21 +78,25 @@ public class PrintServiceImpl implements PrintService {
                 .eq(SwBillManagementPaidDo::getDeleted, "0")
                 .in(SwBillManagementPaidDo::getUsernumber, accountList)
                 .in(SwBillManagementPaidDo::getPaymentrecordid, ids));
-        List<PrintReceiptVo> receiptVoList = new ArrayList<>();
+
         Date date = new Date();
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         String dateStr = sdf.format(date);
         // 生成票据导出所需要的数据
-        PrintReceiptVo printReceiptVo;
         // 用户信息
         SwUserManagementDo swUserManagementDo;
-        // 用水信息
-        PrintReceiptVo.WaterUsageInfo waterUsageInfo;
+
+        SysUserVo currentUser = ZHSWCommonUtils.getCurrentUser();
 
         // 账单信息
         List<SwBillManagementPaidDo> swBillManagementPaidDoList;
+        List<List<Object>> datas = new ArrayList<>();
+        /****************************数据组装开始******************************************/
+        List<SysDictDo> sysDictDoList = sysDictDao.selectList(new LambdaQueryWrapper<SysDictDo>()
+                .eq(BaseDo::getDeleted, "0")
+                .eq(SysDictDo::getDicttype, "water-use-type"));
         for (SwBillingRecordDo swBillingRecordDo : swBillingRecordDos) {
-            printReceiptVo = new PrintReceiptVo();
+            List<Object> listData = new ArrayList<>();
             swUserManagementDo = swUserManagementDos.stream()
                     .filter(data -> data.getUsernumber().equals(swBillingRecordDo.getUsernumber()))
                     .findFirst()
@@ -85,34 +105,113 @@ public class PrintServiceImpl implements PrintService {
                 log.error("户号:{}不存在", swBillingRecordDo.getUsernumber());
                 throw new CustomException("以下户号: " + swBillingRecordDo.getUsernumber() + "不存在");
             }
-            printReceiptVo.setPrintDateStr(dateStr);
-            printReceiptVo.setAccount(swUserManagementDo.getUsernumber());
-            printReceiptVo.setName(swUserManagementDo.getUsername());
-            printReceiptVo.setUserType(swUserManagementDo.getUsertype());
-            printReceiptVo.setAddress(swUserManagementDo.getAddress());
-            printReceiptVo.setBalance(swUserManagementDo.getAccountbalance().stripTrailingZeros());
+            listData.add(dateStr);
+            listData.add(swUserManagementDo.getUsernumber());
+            listData.add(swUserManagementDo.getAccountbalance().stripTrailingZeros());
+            String usertype = swUserManagementDo.getUsertype();
+            SysDictDo sysDictDo = sysDictDoList.stream().filter(dict -> dict.getValue().equals(usertype)).findFirst().orElse(null);
+            listData.add(sysDictDo == null ? "" : sysDictDo.getName());
+            listData.add(swUserManagementDo.getUsername());
+            listData.add(swUserManagementDo.getAddress());
+
+
             swBillManagementPaidDoList = managementPaidDos.stream()
                     .filter(info -> swBillingRecordDo.getId().equals(info.getPaymentrecordid()) &&
-                    swBillingRecordDo.getUsernumber().equals(info.getUsernumber()))
+                            swBillingRecordDo.getUsernumber().equals(info.getUsernumber()))
                     .sorted(Comparator.comparing(SwBillManagementPaidDo::getThismeterreadingdate))
                     .collect(Collectors.toList());
-            List<PrintReceiptVo.WaterUsageInfo> waterUsageInfoList = new ArrayList<>();
             for (SwBillManagementPaidDo swBillManagementPaidDo : swBillManagementPaidDoList) {
                 // 账单对应的用水信息
-                waterUsageInfo = new PrintReceiptVo.WaterUsageInfo();
-                waterUsageInfo.setMeterReadingDate(sdf.format(swBillManagementPaidDo.getThismeterreadingdate()));
-                waterUsageInfo.setPreviousReading(swBillManagementPaidDo.getLastmeterreading().stripTrailingZeros());
-                waterUsageInfo.setCurrentReading(swBillManagementPaidDo.getThismeterreading().stripTrailingZeros());
-                waterUsageInfo.setWaterUsage(swBillManagementPaidDo.getCurrentwateruse().stripTrailingZeros());
-                waterUsageInfo.setUnitPrice(swBillManagementPaidDo.getUnitprice().stripTrailingZeros());
-                waterUsageInfo.setTotalPrice(swBillManagementPaidDo.getOughttohavepaid().stripTrailingZeros());
-                waterUsageInfo.setReliefAmount(swBillManagementPaidDo.getFeewaiver().stripTrailingZeros());
-                waterUsageInfo.setPenalty(swBillManagementPaidDo.getLatefees().stripTrailingZeros());
-                waterUsageInfoList.add(waterUsageInfo);
+                listData.add(sdf.format(swBillManagementPaidDo.getThismeterreadingdate()));
+                listData.add(swBillManagementPaidDo.getLastmeterreading().stripTrailingZeros());
+                listData.add(swBillManagementPaidDo.getThismeterreading().stripTrailingZeros());
+                listData.add(swBillManagementPaidDo.getCurrentwateruse().stripTrailingZeros());
+                listData.add(swBillManagementPaidDo.getUnitprice().stripTrailingZeros());
+                listData.add(swBillManagementPaidDo.getOughttohavepaid().stripTrailingZeros());
+                listData.add(swBillManagementPaidDo.getFeewaiver().stripTrailingZeros());
+                listData.add(swBillManagementPaidDo.getLatefees().stripTrailingZeros());
+            }
+            listData.add(NumberToChineseUppercaseUtils.convert(swBillingRecordDo.getPaidin()));
+            listData.add(swBillingRecordDo.getPaidin());
+            listData.add(currentUser.getCreateusername());
+            datas.add(listData);
+        }
+        /********数据组装结束************/
+        // 打印参数组装
+        String unit = "mm";
+        List<List<PrintReceiptVo>> returnData = new ArrayList<>();
+        PrintReceiptVo printReceiptVo;
+        // 获取配置信息
+        List<SwPrintRepairConfigDo> swPrintRepairConfigDos = swPrintRepairConfigDao.selectList(new LambdaQueryWrapper<SwPrintRepairConfigDo>()
+                .eq(SwPrintRepairConfigDo::getDeleted, "0")
+                .orderByAsc(SwPrintRepairConfigDo::getSerialnum));
+        for (List<Object> data : datas) {
+            List<PrintReceiptVo> receiptVoList= new ArrayList<>();
+            List<Object> basicData = data.subList(0, 7);
+            // 获取中间需要被巡航的数据
+            List<Object> loopData = data.subList(6, data.size() - 3);
+            // 获取最后3条记录
+            List<Object> footData = data.subList(data.size() - 3, data.size());
+            /*********用户基本信息打印参数组装*************/
+            for (int i = 0; i < basicData.size(); i++) {
+                printReceiptVo = new PrintReceiptVo();
+                if (i == 0) {
+                    printReceiptVo.setFp("1");//纵向打印
+                    printReceiptVo.setSp(swPrintRepairConfigDos.get(i).getTopspace().toString());
+                    printReceiptVo.setTp(swPrintRepairConfigDos.get(i).getLeftspace().toString());
+                    printReceiptVo.setFop(swPrintRepairConfigDos.get(i).getContent());
+                } else {
+                    printReceiptVo.setFp(swPrintRepairConfigDos.get(i).getTopspace() + unit);
+                    printReceiptVo.setSp(swPrintRepairConfigDos.get(i).getLeftspace() + unit);
+                    printReceiptVo.setTp(swPrintRepairConfigDos.get(i).getWidthspace() + unit);
+                    printReceiptVo.setFop(swPrintRepairConfigDos.get(i).getHeightspace() + unit);
+                    printReceiptVo.setFip(swPrintRepairConfigDos.get(i).getContent() + basicData.get(i-1));
+                }
+                receiptVoList.add(printReceiptVo);
             }
-            printReceiptVo.setWaterUsageInfos(waterUsageInfoList);
-            receiptVoList.add(printReceiptVo);
+            /*******************循环部分数据组装 ************************/
+            int initialTop = 0;
+            List<SwPrintRepairConfigDo> headConfig = swPrintRepairConfigDos.subList(7, 15);
+            // 表头
+            for (SwPrintRepairConfigDo swPrintRepairConfigDo : headConfig) {
+                printReceiptVo = new PrintReceiptVo();
+                printReceiptVo.setFp(swPrintRepairConfigDo.getTopspace() + unit);
+                printReceiptVo.setSp(swPrintRepairConfigDo.getLeftspace() + unit);
+                printReceiptVo.setTp(swPrintRepairConfigDo.getWidthspace() + unit);
+                printReceiptVo.setFop(swPrintRepairConfigDo.getHeightspace() + unit);
+                printReceiptVo.setFip(swPrintRepairConfigDo.getContent());
+                initialTop = swPrintRepairConfigDo.getTopspace();
+                receiptVoList.add(printReceiptVo);
+            }
+            // 内容
+            List<List<Object>> partition = Lists.partition(loopData, 8);
+            for (int i = 0; i < partition.size(); i++) {
+                initialTop = initialTop + 5*(i+1);
+                List<Object> dataList = partition.get(i);
+                for (int j = 0; j < dataList.size(); j++) {
+                    printReceiptVo = new PrintReceiptVo();
+                    printReceiptVo.setFp(initialTop + unit);
+                    printReceiptVo.setSp(headConfig.get(j).getLeftspace() + unit);
+                    printReceiptVo.setTp(headConfig.get(j).getWidthspace() + unit);
+                    printReceiptVo.setFop(headConfig.get(j).getHeightspace() + unit);
+                    printReceiptVo.setFip(dataList.get(j).toString());
+                    receiptVoList.add(printReceiptVo);
+                }
+            }
+
+            /*****************金额等信息组装********************/
+            for (int i = 0; i < footData.size(); i++) {
+                printReceiptVo = new PrintReceiptVo();
+                printReceiptVo.setFp(swPrintRepairConfigDos.get(15 + i).getTopspace() + unit);
+                printReceiptVo.setSp(swPrintRepairConfigDos.get(15 + i).getLeftspace() + unit);
+                printReceiptVo.setTp(swPrintRepairConfigDos.get(15 + i).getWidthspace() + unit);
+                printReceiptVo.setFop(swPrintRepairConfigDos.get(15 + i).getHeightspace() + unit);
+                printReceiptVo.setFip(swPrintRepairConfigDos.get(15 + i).getContent() + footData.get(i));
+                receiptVoList.add(printReceiptVo);
+            }
+            returnData.add(receiptVoList);
         }
-        return R.ok(receiptVoList);
+        return R.ok(returnData);
     }
+
 }

+ 155 - 0
zhsw-common/src/main/java/com/rongwei/zhsw/system/utils/NumberToChineseUppercaseUtils.java

@@ -0,0 +1,155 @@
+package com.rongwei.zhsw.system.utils;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.math.RoundingMode;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * NumberToChineseUppercaseUtils class
+ *
+ * @author XH
+ * @date 2025/03/20
+ */
+public class NumberToChineseUppercaseUtils {
+    private static final String[] NUMBERS = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
+    private static final String[] BASE_UNITS = {"", "拾", "佰", "仟"};
+    private static final String[] SECTION_UNITS = {"", "万", "亿", "兆"};
+    private static final String[] DECIMAL_UNITS = {"角", "分"};
+    public static String convert(BigDecimal amount) {
+        // 参数校验
+        if (amount == null) {
+            throw new IllegalArgumentException("金额不能为null");
+        }
+        if (amount.compareTo(new BigDecimal("10000000000000000")) >= 0) {
+            throw new IllegalArgumentException("金额超出最大转换范围");
+        }
+        if(amount.compareTo(BigDecimal.ZERO) == 0){
+            return NUMBERS[0];
+        }
+        // 处理负值
+        boolean isNegative = amount.compareTo(BigDecimal.ZERO) < 0;
+        amount = amount.abs();
+
+        // 四舍五入到分位
+        amount = amount.setScale(2, RoundingMode.HALF_UP);
+
+        // 分割整数和小数部分
+        BigInteger integerPart = amount.toBigInteger();
+        int decimalPart = amount.remainder(BigDecimal.ONE)
+                .multiply(new BigDecimal(100))
+                .intValue();
+
+        // 转换各部分
+        String chineseInteger = convertIntegerPart(integerPart);
+        String chineseDecimal = convertDecimalPart(decimalPart);
+
+        // 组合结果
+        StringBuilder result = new StringBuilder();
+        if (isNegative) result.append("负");
+        result.append(chineseInteger);
+
+        if ("元".equals(chineseInteger)) { // 处理纯小数情况
+            result.insert(0, "零");
+        }
+
+        result.append(chineseDecimal);
+
+        // 清理冗余零
+        return optimizeResult(result.toString());
+    }
+
+    private static String convertIntegerPart(BigInteger integerPart) {
+        if (integerPart.equals(BigInteger.ZERO)) {
+            return "";
+        }
+
+        List<Integer> sections = new ArrayList<>();
+        BigInteger temp = integerPart;
+        while (temp.compareTo(BigInteger.ZERO) > 0) {
+            sections.add(temp.mod(BigInteger.valueOf(10000)).intValue());
+            temp = temp.divide(BigInteger.valueOf(10000));
+        }
+
+        StringBuilder sb = new StringBuilder();
+        for (int i = sections.size() - 1; i >= 0; i--) {
+            String sectionStr = convertSection(sections.get(i));
+            if (!sectionStr.isEmpty()) {
+                sb.append(sectionStr).append(SECTION_UNITS[i]);
+            }
+        }
+
+        if (sb.length() == 0) {
+            return "零元";
+        }
+
+        return sb.append("元").toString();
+    }
+
+    private static String convertSection(int section) {
+        if (section == 0) {
+            return "";
+        }
+
+        StringBuilder sb = new StringBuilder();
+        boolean lastIsZero = true; // 标记上一位是否是零
+
+        for (int i = 0; i < 4; i++) {
+            int divisor = (int) Math.pow(10, 3 - i);
+            int digit = section / divisor;
+            section %= divisor;
+
+            if (digit != 0) {
+                if (lastIsZero && sb.length() > 0) {
+                    sb.append(NUMBERS[0]);
+                }
+                sb.append(NUMBERS[digit]);
+                if (i != 3) { // 个位不加单位
+                    sb.append(BASE_UNITS[3 - i]);
+                }
+                lastIsZero = false;
+            } else {
+                lastIsZero = true;
+            }
+        }
+
+        return sb.toString().replaceAll("零+$", "");
+    }
+
+    private static String convertDecimalPart(int decimalPart) {
+        if (decimalPart == 0) {
+            return "整";
+        }
+
+        int jiao = decimalPart / 10;
+        int fen = decimalPart % 10;
+
+        StringBuilder sb = new StringBuilder();
+        if (jiao > 0) {
+            sb.append(NUMBERS[jiao]).append(DECIMAL_UNITS[0]);
+        }
+        if (fen > 0) {
+            sb.append(NUMBERS[fen]).append(DECIMAL_UNITS[1]);
+        }
+
+        return sb.toString();
+    }
+
+    private static String optimizeResult(String result) {
+        String optimized = result
+                .replaceAll("零+", "零")
+                .replaceAll("零([万亿兆])", "$1")
+                .replaceAll("零元", "元")
+                .replaceAll("零角零分$", "整")
+                .replaceAll("元整$", "元整");
+
+        // 处理纯小数情况(如:0.12 → 零元壹角贰分)
+        if (optimized.startsWith("元")) {
+            optimized = "零" + optimized;
+        }
+
+        return optimized;
+    }
+
+}

+ 1 - 1
zhsw-common/src/main/java/com/rongwei/zhsw/system/utils/ZHSWCommonUtils.java

@@ -64,7 +64,7 @@ public class ZHSWCommonUtils {
                 }
             }
         }
-        return currUser;
+        return currUser==null?  new SysUserVo():currUser;
     }
 
     public static <T extends BaseDo> void initModelGeneralParameters(T t, SysUserDo userVo) {

+ 2 - 0
zhsw-entity/src/main/java/com/rongwe/zhsw/system/domain/SwBillManagementPaidDo.java

@@ -184,5 +184,7 @@ public class SwBillManagementPaidDo implements Serializable {
      * 缴费日期
      */
     private Date paymentdate;
+
+
 }
 

+ 46 - 46
zhsw-entity/src/main/java/com/rongwe/zhsw/system/domain/SwBillingRecordDo.java

@@ -22,169 +22,169 @@ import java.util.Date;
 @TableName("sw_billing_record")
 public class SwBillingRecordDo implements Serializable {
     private static final long serialVersionUID = -25780597568495659L;
-/**
+    /**
      * 主键
      */
     private String id;
-/**
+    /**
      * 租户ID
      */
     private String tenantid;
-/**
+    /**
      * 扩展json格式配置
      */
     private String roption;
-/**
+    /**
      * 是否删除Y/N
      */
     private String deleted;
-/**
+    /**
      * 备注
      */
     private String remark;
-/**
+    /**
      * 创建时间
      */
     private Date createdate;
-/**
+    /**
      * 创建用户ID
      */
     private String createuserid;
-/**
+    /**
      * 修改日期
      */
     private Date modifydate;
-/**
+    /**
      * 修改用户ID
      */
     private String modifyuserid;
-/**
+    /**
      * 创建人
      */
     private String createusername;
-/**
+    /**
      * 修改人
      */
     private String modifyusername;
-/**
+    /**
      * 缴费编号
      */
     private String billingnumber;
-/**
+    /**
      * 收费日期
      */
     private Date chargedate;
-/**
+    /**
      * 收费员ID
      */
     private String tollcollectorid;
-/**
+    /**
      * 收费员名称
      */
     private String tollcollectorname;
-/**
+    /**
      * 户号
      */
     private String usernumber;
-/**
+    /**
      * 户名
      */
     private String username;
-/**
+    /**
      * 用水类型
      */
     private String watertype;
-/**
+    /**
      * 用户类别
      */
     private String usertype;
-/**
+    /**
      * 详细地址
      */
     private String address;
-/**
+    /**
      * 缴费状态
      */
     private String payfeesstatus;
-/**
+    /**
      * 原余额(元)
      */
     private BigDecimal originalbalance;
-/**
+    /**
      * 总减免
-(元)
+     * (元)
      */
     private BigDecimal allfeewaiver;
-/**
+    /**
      * 原应缴
-(元)
+     * (元)
      */
     private BigDecimal oughttohavepaid;
-/**
+    /**
      * 实际应缴
-(元)
+     * (元)
      */
     private BigDecimal actualdue;
-/**
+    /**
      * 实缴
-(元)
+     * (元)
      */
     private BigDecimal paidin;
-/**
+    /**
      * 缴费后余额
-(元)
+     * (元)
      */
     private BigDecimal afterpaymentbalance;
-/**
+    /**
      * 数据来源(窗口缴费,微信缴费,自动缴费)
      */
     private String datasource;
-/**
+    /**
      * 商户支付编号
      */
     private String merchantpaymentnumber;
-/**
+    /**
      * 微信支付订单号
      */
     private String wechatpayordernumber;
-/**
+    /**
      * 商品描述
      */
     private String productdescription;
-/**
+    /**
      * 支付金额
-(元)
+     * (元)
      */
     private BigDecimal amountpaid;
-/**
+    /**
      * 支付完成时间
      */
     private Date paymentcompletiontime;
-/**
+    /**
      * 订单创建时间
      */
     private Date ordercreationtime;
-/**
+    /**
      * 支付状态
      */
     private String paymentstatus;
-/**
+    /**
      * 年份(可能跨年 2024,2025)
      */
     private Integer year;
-/**
+    /**
      * 滞纳金
      */
     private BigDecimal latefees;
-/**
+    /**
      * 余额抵扣
      */
     private BigDecimal balancededuction;
-/**
+    /**
      * 总已缴
      */
     private BigDecimal totalpaidin;
-/**
+    /**
      * 充值缴费金额
      */
     private String topuppaymentamount;

+ 77 - 0
zhsw-entity/src/main/java/com/rongwe/zhsw/system/domain/SwPrintRepairConfigDo.java

@@ -0,0 +1,77 @@
+package com.rongwe.zhsw.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.rongwei.rwcommon.base.BaseDo;
+import lombok.Data;
+
+/**
+ * 票据打印配置信息
+ * @TableName sw_print_repair_config
+ */
+@TableName(value ="sw_print_repair_config")
+@Data
+public class SwPrintRepairConfigDo extends BaseDo {
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 租户ID
+     */
+    private String tenantid;
+
+    /**
+     * 扩展json格式配置
+     */
+    private String roption;
+
+    /**
+     * 类型(1.PRINT_PAGESIZE,2.PRINT_TEXT)
+     */
+    private Integer type;
+
+    /**
+     * 所增打印项在纸张内的上边距的(单位mm)
+     */
+    private Integer topspace;
+
+    /**
+     * 所增打印项在纸张内的左边距(单位mm)
+     */
+    private Integer leftspace;
+
+    /**
+     * 打印区域的宽度(单位mm)
+     */
+    private Integer widthspace;
+
+    /**
+     * 打印区域的高度(单位mm)
+     */
+    private Integer heightspace;
+
+    /**
+     * 序号
+     */
+    private Integer serialnum;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    /**
+     * 是否循环打印
+     */
+    private Integer cycleprint;
+
+    /**
+     * 描述用处
+     */
+    private String descstr;
+}

+ 20 - 34
zhsw-entity/src/main/java/com/rongwe/zhsw/system/vo/PrintReceiptVo.java

@@ -13,39 +13,25 @@ import java.util.List;
  */
 @Data
 public class PrintReceiptVo {
-    // 开票日期
-    private String printDateStr;
-    // 户号
-    private String account;
-    // 户名
-    private String name;
-    // 用户类型
-    private String userType;
-    // 地址
-    private String address;
-    // BigDecimal
-    private BigDecimal balance;
-
-    private List<WaterUsageInfo> waterUsageInfos;
-
-    @Data
-    public  static class WaterUsageInfo{
-        // 抄表日期
-        private String meterReadingDate;
-        // 上次读数
-        private BigDecimal previousReading;
-        //本次读数
-        private BigDecimal currentReading;
-        // 用水量
-        private BigDecimal waterUsage;
-        // 单价
-        private BigDecimal unitPrice;
-        // 金额
-        private BigDecimal totalPrice;
-        // 减免金额
-        private BigDecimal reliefAmount;
-        // 违约金
-        private BigDecimal penalty;
-    }
+    /**
+     * 第一个参数
+     */
+    private String fp;
+    /**
+     *  第二个参数
+     */
+    private String sp;
+    /**
+     *  第三个参数
+     */
+    private String tp;
+    /**
+     *  第四个参数
+     */
+    private String fop;
+    /**
+     *  第五个参数
+     */
+    private String fip;
 
 }