Browse Source

增加经开区票据查询

wangyangyang 4 years ago
parent
commit
1c5d073f4c

+ 129 - 0
smart-city-platform/src/main/java/com/bz/smart_city/Utils/NumberToCN.java

@@ -0,0 +1,129 @@
+package com.bz.smart_city.Utils;
+
+import java.math.BigDecimal;
+
+/**
+ * 
+ * 
+ * 数字转换为汉语中人民币的大写<br>
+ * 
+ */
+public class NumberToCN {
+    /**
+     * 汉语中数字大写
+     */
+    private static final String[] CN_UPPER_NUMBER = { "零", "壹", "贰", "叁", "肆",
+            "伍", "陆", "柒", "捌", "玖" };
+    /**
+     * 汉语中货币单位大写,这样的设计类似于占位符
+     */
+    private static final String[] CN_UPPER_MONETRAY_UNIT = { "分", "角", "元",
+            "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "兆", "拾",
+            "佰", "仟" };
+    /**
+     * 特殊字符:整
+     */
+    private static final String CN_FULL = "整";
+    /**
+     * 特殊字符:负
+     */
+    private static final String CN_NEGATIVE = "负";
+    /**
+     * 金额的精度,默认值为2
+     */
+    private static final int MONEY_PRECISION = 2;
+    /**
+     * 特殊字符:零元整
+     */
+    private static final String CN_ZEOR_FULL = "零元" + CN_FULL;
+
+    /**
+     * 把输入的金额转换为汉语中人民币的大写
+     * 
+     * @param numberOfMoney
+     *            输入的金额
+     * @return 对应的汉语大写
+     */
+    public static String number2CNMontrayUnit(BigDecimal numberOfMoney) {
+        StringBuffer sb = new StringBuffer();
+        // -1, 0, or 1 as the value of this BigDecimal is negative, zero, or
+        // positive.
+        int signum = numberOfMoney.signum();
+        // 零元整的情况
+        if (signum == 0) {
+            return CN_ZEOR_FULL;
+        }
+        // 这里会进行金额的四舍五入
+        long number = numberOfMoney.movePointRight(MONEY_PRECISION)
+                .setScale(0, 4).abs().longValue();
+        // 得到小数点后两位值
+        long scale = number % 100;
+        int numUnit = 0;
+        int numIndex = 0;
+        boolean getZero = false;
+        // 判断最后两位数,一共有四中情况:00 = 0, 01 = 1, 10, 11
+        if (!(scale > 0)) {
+            numIndex = 2;
+            number = number / 100;
+            getZero = true;
+        }
+        if ((scale > 0) && (!(scale % 10 > 0))) {
+            numIndex = 1;
+            number = number / 10;
+            getZero = true;
+        }
+        int zeroSize = 0;
+        while (true) {
+            if (number <= 0) {
+                break;
+            }
+            // 每次获取到最后一个数
+            numUnit = (int) (number % 10);
+            if (numUnit > 0) {
+                if ((numIndex == 9) && (zeroSize >= 3)) {
+                    sb.insert(0, CN_UPPER_MONETRAY_UNIT[6]);
+                }
+                if ((numIndex == 13) && (zeroSize >= 3)) {
+                    sb.insert(0, CN_UPPER_MONETRAY_UNIT[10]);
+                }
+                sb.insert(0, CN_UPPER_MONETRAY_UNIT[numIndex]);
+                sb.insert(0, CN_UPPER_NUMBER[numUnit]);
+                getZero = false;
+                zeroSize = 0;
+            } else {
+                ++zeroSize;
+                if (!(getZero)) {
+                    sb.insert(0, CN_UPPER_NUMBER[numUnit]);
+                }
+                if (numIndex == 2) {
+                    if (number > 0) {
+                        sb.insert(0, CN_UPPER_MONETRAY_UNIT[numIndex]);
+                    }
+                } else if (((numIndex - 2) % 4 == 0) && (number % 1000 > 0)) {
+                    sb.insert(0, CN_UPPER_MONETRAY_UNIT[numIndex]);
+                }
+                getZero = true;
+            }
+            // 让number每次都去掉最后一个数
+            number = number / 10;
+            ++numIndex;
+        }
+        // 如果signum == -1,则说明输入的数字为负数,就在最前面追加特殊字符:负
+        if (signum == -1) {
+            sb.insert(0, CN_NEGATIVE);
+        }
+        // 输入的数字小数点后两位为"00"的情况,则要在最后追加特殊字符:整
+        if (!(scale > 0)) {
+            sb.append(CN_FULL);
+        }
+        return sb.toString();
+    }
+
+    public static void main(String[] args) {
+        double money = 3000.66;
+        BigDecimal numberOfMoney = new BigDecimal(money);
+        String s = NumberToCN.number2CNMontrayUnit(numberOfMoney);
+        System.out.println("你输入的金额为:【" + money + "】   #--# [" + s.toString()
+                + "]");
+    }
+}

+ 30 - 27
smart-city-platform/src/main/java/com/bz/smart_city/controller/pay/PayInvoiceController.java

@@ -45,8 +45,8 @@ public class PayInvoiceController {
             @ApiParam(value = "页数,非必传,默认第一页", required = false, defaultValue = "1") @RequestParam(required = false, defaultValue = "1") int pageNum,
             @ApiParam(value = "条数,非必传,默认10条", required = false, defaultValue = "10") @RequestParam(required = false, defaultValue = "10") int pageSize
 
-    ){
-        return new AjaxMessage<>(ResultStatus.OK,payinvoiceService.findListPage(condition, state, startTime, endTime,pageNum,pageSize));
+    ) {
+        return new AjaxMessage<>(ResultStatus.OK, payinvoiceService.findListPage(condition, state, startTime, endTime, pageNum, pageSize));
     }
 
 
@@ -55,46 +55,47 @@ public class PayInvoiceController {
     public AjaxMessage<String> savePrintInfo(
             @ApiParam(value = "缴费批次号", required = true) @RequestParam(required = true) String payseriesno,
             @ApiParam(value = "票据号码", required = true) @RequestParam(required = true) String invoiceno
-    ){
-        payinvoiceService.savePrintInfo( payseriesno, invoiceno);
+    ) {
+        payinvoiceService.savePrintInfo(payseriesno, invoiceno);
         return new AjaxMessage<>(ResultStatus.OK);
     }
 
     @GetMapping("/getPrintData")
     @ApiOperation("获取打印数据")
-    public AjaxMessage< PrintInvoiceData> getPrintData(
+    public AjaxMessage<PrintInvoiceData> getPrintData(
             @ApiParam(value = "缴费批次号", required = true) @RequestParam(required = true) String payseriesno) {
 
-        PrintInvoiceData printInvoiceData = null ;
+        PrintInvoiceData printInvoiceData = null;
         PrintInvoiceData type = payinvoiceService.getPayInvoiceType(payseriesno);
-        if(type != null && type.getPayInvoiceType() == 0){  //默认
-            if(type.getPrintType() != null && type.getPrintType() == 1){	//单纯充值
+        if (type != null && type.getPayInvoiceType() == 0) {  //默认
+            if (type.getPrintType() != null && type.getPrintType() == 1) {    //单纯充值
                 printInvoiceData = payinvoiceService.getPrintDataOfTrans(payseriesno);
-
-            }else{	//缴费
+            } else {    //缴费
                 printInvoiceData = payinvoiceService.getPrintDataOfReceived(payseriesno);
             }
-        }else if(type != null && type.getPayInvoiceType() == 1){  //开鲁
+        } else if (type != null && type.getPayInvoiceType() == 1) {  //开鲁
             printInvoiceData = payinvoiceService.getPrintDataOfTransKailu(payseriesno);
-        }else if(type != null && type.getPayInvoiceType() == 2){  //盖州
+        } else if (type != null && type.getPayInvoiceType() == 2) {  //盖州
             printInvoiceData = payinvoiceService.getPrintDataOfTransGaizhou(payseriesno);
-
-        }else if(type != null && type.getPayInvoiceType() == 3){  //突泉县龙泉水司
+        } else if (type != null && type.getPayInvoiceType() == 3) {  //突泉县龙泉水司
             printInvoiceData = payinvoiceService.getPrintDataOfTransLongquan(payseriesno);
+        } else if (type != null && type.getPayInvoiceType() == 4) {  //松原经开水务有限责任公司
+            printInvoiceData = payinvoiceService.getPrintDataOfTransJK(payseriesno);
         }
-        if(printInvoiceData != null){
+
+        if (printInvoiceData != null) {
             printInvoiceData.setPayInvoiceType(type.getPayInvoiceType());
         }
-        return  new AjaxMessage<>(ResultStatus.OK,printInvoiceData);
+        return new AjaxMessage<>(ResultStatus.OK, printInvoiceData);
     }
 
     @GetMapping("/getPrintDataAgain")
     @ApiOperation("补打票据")
     public AjaxMessage<PrintInvoiceData> getPrintDataAgain(
             @ApiParam(value = "票据id", required = true) @RequestParam(required = true) BigInteger id
-    ){
+    ) {
 
-        PrintInvoiceData printInvoiceData = null ;
+        PrintInvoiceData printInvoiceData = null;
         PayInvoiceDto payInvoiceDto = payinvoiceService.get(id);
 
         String payseriesno = payinvoiceService.findPayseriesnoByPrint(id, 1);
@@ -102,35 +103,37 @@ public class PayInvoiceController {
             payseriesno = payinvoiceService.findPayseriesnoByPrint(id, 2);
         }
         PrintInvoiceData type = payinvoiceService.getPayInvoiceType(payseriesno);
-        if(type != null && type.getPayInvoiceType() == 0){  //默认
-            if(type.getPrintType() != null && type.getPrintType() == 1){	//单纯充值
+        if (type != null && type.getPayInvoiceType() == 0) {  //默认
+            if (type.getPrintType() != null && type.getPrintType() == 1) {    //单纯充值
                 printInvoiceData = payinvoiceService.getPrintDataOfTrans(payseriesno);
 
-            }else{	//缴费
+            } else {    //缴费
                 printInvoiceData = payinvoiceService.getPrintDataOfReceived(payseriesno);
             }
-        }else if(type != null && type.getPayInvoiceType() == 1){  //开鲁
+        } else if (type != null && type.getPayInvoiceType() == 1) {  //开鲁
             printInvoiceData = payinvoiceService.getPrintDataOfTransKailu(payseriesno);
-        }else if(type != null && type.getPayInvoiceType() == 2){  //盖州
+        } else if (type != null && type.getPayInvoiceType() == 2) {  //盖州
             printInvoiceData = payinvoiceService.getPrintDataOfTransGaizhou(payseriesno);
 
-        }else if(type != null && type.getPayInvoiceType() == 3){  //突泉县龙泉水司
+        } else if (type != null && type.getPayInvoiceType() == 3) {  //突泉县龙泉水司
             printInvoiceData = payinvoiceService.getPrintDataOfTransLongquan(payseriesno);
 
+        }else if (type != null && type.getPayInvoiceType() == 4) {  //松原经开水务有限责任公司
+            printInvoiceData = payinvoiceService.getPrintDataOfTransJK(payseriesno);
         }
 
-        if(printInvoiceData != null){
+        if (printInvoiceData != null) {
             printInvoiceData.setInvoiceNo(payInvoiceDto.getInvoiceno());
             printInvoiceData.setPayInvoiceType(type.getPayInvoiceType());
         }
-        return  new AjaxMessage<>(ResultStatus.OK,printInvoiceData);
+        return new AjaxMessage<>(ResultStatus.OK, printInvoiceData);
     }
 
     @PostMapping("/cancelPrintinfo")
     @ApiOperation("作废票据")
     public AjaxMessage<String> cancelPrintinfo(
             @ApiParam(value = "票据id", required = true) @RequestParam(required = true) BigInteger id
-    ){
+    ) {
         payinvoiceService.cancelPrintInfo(id);
         return new AjaxMessage<>(ResultStatus.OK);
     }

+ 3 - 0
smart-city-platform/src/main/java/com/bz/smart_city/dao/pay/PayInvoiceMapper.java

@@ -9,6 +9,7 @@ import com.bz.smart_city.entity.pay.PayPayReceived;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.time.LocalDateTime;
 import java.util.List;
@@ -59,4 +60,6 @@ public interface PayInvoiceMapper {
     PrintInvoiceData getPayInvoiceType(@Param("payseriesno")String payseriesno );
 
     PrintInvoiceData getPayInvoiceReceivable(@Param("payseriesno")String payseriesno );
+
+    BigDecimal getYearUsedAmount(@Param("accountId")BigInteger accountId );
 }

+ 4 - 0
smart-city-platform/src/main/java/com/bz/smart_city/dto/pay/payfee/PrintInvoiceData.java

@@ -114,5 +114,9 @@ public class PrintInvoiceData {
     private String receivablefee4;
     @ApiModelProperty("水资源费")
     private String receivablefee3;
+    @ApiModelProperty("年累计用量")
+    private BigDecimal yearUsedAmount;
+    @ApiModelProperty("金额大写")
+    private String amountBigFee;
 
 }

+ 188 - 114
smart-city-platform/src/main/java/com/bz/smart_city/service/impl/pay/PayInvoiceServiceImpl.java

@@ -1,5 +1,6 @@
 package com.bz.smart_city.service.impl.pay;
 
+import com.bz.smart_city.Utils.NumberToCN;
 import com.bz.smart_city.commom.exception.ServiceException;
 import com.bz.smart_city.commom.model.Pagination;
 import com.bz.smart_city.commom.model.ResultStatus;
@@ -17,6 +18,7 @@ import com.bz.smart_city.entity.pay.PayPayReceived;
 import com.bz.smart_city.service.pay.PayinvoiceService;
 import com.github.pagehelper.PageHelper;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -41,20 +43,21 @@ public class PayInvoiceServiceImpl implements PayinvoiceService {
     public void insert(PayInvoice payInvoice) {
         payInvoiceMapper.insert(payInvoice);
     }
+
     public PayInvoiceDto get(BigInteger id) {
         return payInvoiceMapper.get(id);
     }
 
     public List<PayInvoiceDto> findList(String condition, Integer state, String startTime, String endTime) {
-        LoginUser loginUser= UserUtil.getCurrentUser();
-        PayInvoiceDto payInvoiceDto=new PayInvoiceDto();
+        LoginUser loginUser = UserUtil.getCurrentUser();
+        PayInvoiceDto payInvoiceDto = new PayInvoiceDto();
         payInvoiceDto.setCondition(condition);
         payInvoiceDto.setState(state);
         DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
-        if(StringUtils.isNotBlank(startTime)){
-            payInvoiceDto.setStartTime( LocalDateTime.parse(startTime,df));
+        if (StringUtils.isNotBlank(startTime)) {
+            payInvoiceDto.setStartTime(LocalDateTime.parse(startTime, df));
         }
-        if(StringUtils.isNotBlank(endTime)){
+        if (StringUtils.isNotBlank(endTime)) {
             payInvoiceDto.setEndTime(LocalDateTime.parse(endTime, df));
         }
 
@@ -65,23 +68,23 @@ public class PayInvoiceServiceImpl implements PayinvoiceService {
         return payInvoiceMapper.findList(payInvoiceDto);
     }
 
-    public Pagination<PayInvoiceDto> findListPage(String condition,Integer state, String startTime, String endTime, int pageNum, int pageSize) {
+    public Pagination<PayInvoiceDto> findListPage(String condition, Integer state, String startTime, String endTime, int pageNum, int pageSize) {
         LoginUser loginUser = UserUtil.getCurrentUser();
         //分页
-        PageHelper.startPage(pageNum,pageSize);
+        PageHelper.startPage(pageNum, pageSize);
 
-        PayInvoiceDto payInvoiceDto=new PayInvoiceDto();
+        PayInvoiceDto payInvoiceDto = new PayInvoiceDto();
         payInvoiceDto.setCondition(condition);
         payInvoiceDto.setState(state);
         DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
-        if(StringUtils.isNotBlank(startTime)){
-            payInvoiceDto.setStartTime( LocalDateTime.parse(startTime,df));
+        if (StringUtils.isNotBlank(startTime)) {
+            payInvoiceDto.setStartTime(LocalDateTime.parse(startTime, df));
         }
-        if(StringUtils.isNotBlank(endTime)){
+        if (StringUtils.isNotBlank(endTime)) {
             payInvoiceDto.setEndTime(LocalDateTime.parse(endTime, df));
         }
         //站点为空则加入用户站点查询
-        if( loginUser !=null){
+        if (loginUser != null) {
             //站点权限
             payInvoiceDto.setSiteId(loginUser.getSiteId());
             //客户权限
@@ -94,11 +97,11 @@ public class PayInvoiceServiceImpl implements PayinvoiceService {
         return new Pagination<>(list);
     }
 
-    @Transactional(rollbackFor=Exception.class)
-    public void savePrintInfo(String payseriesno,String invoiceno) {
-        LoginUser loginUser=UserUtil.getCurrentUser();
-               BigDecimal countReceivedamount=BigDecimal.ZERO;
-        PayInvoice invoice=new PayInvoice();
+    @Transactional(rollbackFor = Exception.class)
+    public void savePrintInfo(String payseriesno, String invoiceno) {
+        LoginUser loginUser = UserUtil.getCurrentUser();
+        BigDecimal countReceivedamount = BigDecimal.ZERO;
+        PayInvoice invoice = new PayInvoice();
         invoice.setInvoiceno(invoiceno);
 
         invoice.setState(2);
@@ -113,10 +116,10 @@ public class PayInvoiceServiceImpl implements PayinvoiceService {
         invoice.setRemarks("");
 
         //获取同批次号的交易明细
-        List<PayTransactiondetails> payTransactiondetailsList=payInvoiceMapper.findTransByPayseriesno(payseriesno,loginUser.getSiteId(),loginUser.getCustomerId());
+        List<PayTransactiondetails> payTransactiondetailsList = payInvoiceMapper.findTransByPayseriesno(payseriesno, loginUser.getSiteId(), loginUser.getCustomerId());
 
-        for(PayTransactiondetails payTransactiondetails:payTransactiondetailsList){
-            if(payTransactiondetails.getInvoiceId()!=null){
+        for (PayTransactiondetails payTransactiondetails : payTransactiondetailsList) {
+            if (payTransactiondetails.getInvoiceId() != null) {
                 throw new ServiceException(ResultStatus.PAY_INVOICE_EXISTED);
             }
             invoice.setAccountId(payTransactiondetails.getAccountId());
@@ -126,16 +129,16 @@ public class PayInvoiceServiceImpl implements PayinvoiceService {
             invoice.setYear(payTransactiondetails.getYear());
             invoice.setMonth(payTransactiondetails.getMonth());
             //转预存或充值金额
-            if(payTransactiondetails.getPayway()!=5&&(payTransactiondetails.getTranstype()==1||payTransactiondetails.getTranstype()==4)){
-                countReceivedamount = countReceivedamount.add(payTransactiondetails.getTransamount()!=null?payTransactiondetails.getTransamount():BigDecimal.ZERO);
+            if (payTransactiondetails.getPayway() != 5 && (payTransactiondetails.getTranstype() == 1 || payTransactiondetails.getTranstype() == 4)) {
+                countReceivedamount = countReceivedamount.add(payTransactiondetails.getTransamount() != null ? payTransactiondetails.getTransamount() : BigDecimal.ZERO);
 
             }
         }
         //获取同批次号的实收信息
-        List<PayPayReceived> Receiveds=payInvoiceMapper.findReceivedByPayseriesno(payseriesno,loginUser.getSiteId(),loginUser.getCustomerId());
+        List<PayPayReceived> Receiveds = payInvoiceMapper.findReceivedByPayseriesno(payseriesno, loginUser.getSiteId(), loginUser.getCustomerId());
 
-        for(PayPayReceived received:Receiveds){
-            if(received.getInvoiceId()!=null){
+        for (PayPayReceived received : Receiveds) {
+            if (received.getInvoiceId() != null) {
                 throw new ServiceException(ResultStatus.PAY_INVOICE_EXISTED);
             }
             invoice.setAccountId(received.getAccountId());
@@ -145,8 +148,8 @@ public class PayInvoiceServiceImpl implements PayinvoiceService {
             invoice.setYear(received.getYear());
             invoice.setMonth(received.getMonth());
             //非预存划扣(即支付金额抵扣)
-            if(received.getPayway()!=5){
-                countReceivedamount = countReceivedamount.add(received.getReceivedamount()!=null?received.getReceivedamount():BigDecimal.ZERO);
+            if (received.getPayway() != 5) {
+                countReceivedamount = countReceivedamount.add(received.getReceivedamount() != null ? received.getReceivedamount() : BigDecimal.ZERO);
 
             }
 
@@ -154,112 +157,113 @@ public class PayInvoiceServiceImpl implements PayinvoiceService {
         invoice.setInvoiceamount(countReceivedamount);
         //插入成功后返回id
         payInvoiceMapper.insert(invoice);
-        if(payTransactiondetailsList.size()>0){
+        if (payTransactiondetailsList.size() > 0) {
             //修改明细的收据信息
-            payInvoiceMapper.updatePrintInvoiceRecord(1, payseriesno, invoice.getId(),loginUser.getSiteId(),loginUser.getCustomerId());
+            payInvoiceMapper.updatePrintInvoiceRecord(1, payseriesno, invoice.getId(), loginUser.getSiteId(), loginUser.getCustomerId());
         }
-        if(Receiveds.size()>0){
+        if (Receiveds.size() > 0) {
             //修改实收的收据信息
-            payInvoiceMapper.updatePrintInvoiceRecord(2, payseriesno, invoice.getId(),loginUser.getSiteId(),loginUser.getCustomerId());
+            payInvoiceMapper.updatePrintInvoiceRecord(2, payseriesno, invoice.getId(), loginUser.getSiteId(), loginUser.getCustomerId());
         }
     }
 
     /**
      * 打印收据——仅充值
+     *
      * @param payseriesno
      * @return
      */
-    public PrintInvoiceData getPrintDataOfTrans(String payseriesno){
-        LoginUser loginUser=UserUtil.getCurrentUser();
-        PrintInvoiceData printInvoiceData=payInvoiceMapper.getPrintDataOfTran(payseriesno,loginUser.getSiteId(),loginUser.getCustomerId());
-        if(printInvoiceData!=null){
-            PrintInvoiceData  wateruserdData=payInvoiceMapper.getLastWaterUsedRecord(printInvoiceData.getAccountId(), printInvoiceData.getCreateDate(),loginUser.getSiteId(),loginUser.getCustomerId());
-            if(wateruserdData!=null){
+    public PrintInvoiceData getPrintDataOfTrans(String payseriesno) {
+        LoginUser loginUser = UserUtil.getCurrentUser();
+        PrintInvoiceData printInvoiceData = payInvoiceMapper.getPrintDataOfTran(payseriesno, loginUser.getSiteId(), loginUser.getCustomerId());
+        if (printInvoiceData != null) {
+            PrintInvoiceData wateruserdData = payInvoiceMapper.getLastWaterUsedRecord(printInvoiceData.getAccountId(), printInvoiceData.getCreateDate(), loginUser.getSiteId(), loginUser.getCustomerId());
+            if (wateruserdData != null) {
                 printInvoiceData.setReading(wateruserdData.getReading());
                 printInvoiceData.setRecorddate(wateruserdData.getRecorddate());
             }
             DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-            if(printInvoiceData.getCreateDate()!=null){
+            if (printInvoiceData.getCreateDate() != null) {
                 printInvoiceData.setPaydate(df.format(printInvoiceData.getCreateDate()));
-            }else{
+            } else {
                 printInvoiceData.setPaydate(df.format(LocalDateTime.now()));
             }
-        }else{
+        } else {
             throw new ServiceException(ResultStatus.OPERATE_RECORD_NOT_EXIT);
         }
         printInvoiceData.setPrintType(1);
         printInvoiceData.setPayseriesno(payseriesno);
         printInvoiceData.setInvoiceNo(
-                DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS").format(LocalDateTime.now())+""+(int)(Math.random()*1000));
+                DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS").format(LocalDateTime.now()) + "" + (int) (Math.random() * 1000));
         return printInvoiceData;
     }
 
-    public PrintInvoiceData getPrintDataOfTransKailu(String payseriesno){
-        PrintInvoiceData printInvoiceData=payInvoiceMapper.countTransactiondetails(payseriesno);
+    public PrintInvoiceData getPrintDataOfTransKailu(String payseriesno) {
+        PrintInvoiceData printInvoiceData = payInvoiceMapper.countTransactiondetails(payseriesno);
         PrintInvoiceData printDataKailu;
-        if(printInvoiceData!=null){
+        if (printInvoiceData != null) {
             printDataKailu = payInvoiceMapper.getPrintDataKailu(printInvoiceData.getAccountId());
             printDataKailu.setTransamount(printInvoiceData.getTransamount());
             printDataKailu.setCreateBy(printInvoiceData.getCreateBy());
             printDataKailu.setRemaining(printInvoiceData.getRemaining());
             printDataKailu.setLastRemaining(printInvoiceData.getLastRemaining());
             DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-            if(printInvoiceData.getCreateDate()!=null){
+            if (printInvoiceData.getCreateDate() != null) {
                 printDataKailu.setPaydate(df.format(printInvoiceData.getCreateDate()));
-            }else{
+            } else {
                 printDataKailu.setPaydate(df.format(LocalDateTime.now()));
             }
-        }else{
+        } else {
             throw new ServiceException(ResultStatus.OPERATE_RECORD_NOT_EXIT);
         }
         printDataKailu.setPrintType(1);
         printDataKailu.setPayseriesno(payseriesno);
         printDataKailu.setInvoiceNo(
-                DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS").format(LocalDateTime.now())+""+(int)(Math.random()*1000));
+                DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS").format(LocalDateTime.now()) + "" + (int) (Math.random() * 1000));
         return printDataKailu;
     }
 
-    public PrintInvoiceData getPrintDataOfTransGaizhou(String payseriesno){
+    public PrintInvoiceData getPrintDataOfTransGaizhou(String payseriesno) {
 
         //查询交易
-        PrintInvoiceData printInvoiceData=payInvoiceMapper.countTransactiondetails(payseriesno);
-        if(printInvoiceData == null){
+        PrintInvoiceData printInvoiceData = payInvoiceMapper.countTransactiondetails(payseriesno);
+        if (printInvoiceData == null) {
             //没有查询到交易信息
             throw new ServiceException(ResultStatus.OPERATE_RECORD_NOT_EXIT);
         }
-        BigInteger accountId=printInvoiceData.getAccountId();
+        BigInteger accountId = printInvoiceData.getAccountId();
         //查询账期信息
-        PrintInvoiceData printInvoiceDataPeriod=payInvoiceMapper.getAmountPeriod(payseriesno);
+        PrintInvoiceData printInvoiceDataPeriod = payInvoiceMapper.getAmountPeriod(payseriesno);
         Integer maxPeriod;
         Integer minPeriod;
-        if(printInvoiceDataPeriod != null){
-            maxPeriod=printInvoiceDataPeriod.getMaxPeriod();
-            minPeriod=printInvoiceDataPeriod.getMinPeriod();
-        }else{
-            maxPeriod=printInvoiceData.getMinPeriod();
-            minPeriod=printInvoiceData.getMinPeriod();
+        if (printInvoiceDataPeriod != null) {
+            maxPeriod = printInvoiceDataPeriod.getMaxPeriod();
+            minPeriod = printInvoiceDataPeriod.getMinPeriod();
+        } else {
+            maxPeriod = printInvoiceData.getMinPeriod();
+            minPeriod = printInvoiceData.getMinPeriod();
         }
         //查询水量应收信息
-        PrintInvoiceData printInvoiceDataReceivablefee=payInvoiceMapper.getAmountInfoAndReceivablefee(accountId,maxPeriod,minPeriod);
+        PrintInvoiceData printInvoiceDataReceivablefee = payInvoiceMapper.getAmountInfoAndReceivablefee(accountId, maxPeriod, minPeriod);
         //查询客户基础信息
-        PrintInvoiceData printInvoiceDataAccountBaseInfo=payInvoiceMapper.getAccountBaseInfo(accountId);
+        PrintInvoiceData printInvoiceDataAccountBaseInfo = payInvoiceMapper.getAccountBaseInfo(accountId);
 
         //拼装数据
-        if(printInvoiceDataReceivablefee != null){
+        if (printInvoiceDataReceivablefee != null) {
             printInvoiceDataAccountBaseInfo.setReading(printInvoiceDataReceivablefee.getReading());
             printInvoiceDataAccountBaseInfo.setRecorddate(printInvoiceDataReceivablefee.getRecorddate());
             printInvoiceDataAccountBaseInfo.setLastreading(printInvoiceDataReceivablefee.getLastreading());
             printInvoiceDataAccountBaseInfo.setLastrecorddate(printInvoiceDataReceivablefee.getLastrecorddate());
             printInvoiceDataAccountBaseInfo.setPayamount(printInvoiceDataReceivablefee.getPayamount());
             printInvoiceDataAccountBaseInfo.setReceivablefee(printInvoiceDataReceivablefee.getReceivablefee());
-        }else{
+        } else {
             printInvoiceDataAccountBaseInfo.setReading(BigDecimal.ZERO);
             printInvoiceDataAccountBaseInfo.setLastreading(BigDecimal.ZERO);
             printInvoiceDataAccountBaseInfo.setPayamount(BigDecimal.ZERO);
             printInvoiceDataAccountBaseInfo.setReceivablefee(BigDecimal.ZERO);
         }
 
-        if(printInvoiceData.getRemaining().compareTo(BigDecimal.ZERO) == 1 ){
+        if (printInvoiceData.getRemaining().compareTo(BigDecimal.ZERO) == 1) {
             printInvoiceDataAccountBaseInfo.setRemaining(printInvoiceData.getRemaining());
         }
         printInvoiceDataAccountBaseInfo.setCreateBy(printInvoiceData.getCreateBy());
@@ -272,24 +276,91 @@ public class PayInvoiceServiceImpl implements PayinvoiceService {
         printInvoiceDataAccountBaseInfo.setLastRemaining(lastRemaining);
 
         DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-        if(printInvoiceData.getCreateDate()!=null){
+        if (printInvoiceData.getCreateDate() != null) {
             printInvoiceDataAccountBaseInfo.setPaydate(df.format(printInvoiceData.getCreateDate()));
-        }else{
+        } else {
             printInvoiceDataAccountBaseInfo.setPaydate(df.format(LocalDateTime.now()));
         }
 
         printInvoiceDataAccountBaseInfo.setPrintType(1);
         printInvoiceDataAccountBaseInfo.setPayseriesno(payseriesno);
         printInvoiceDataAccountBaseInfo.setInvoiceNo(
-                DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS").format(LocalDateTime.now())+""+(int)(Math.random()*1000));
+                DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS").format(LocalDateTime.now()) + "" + (int) (Math.random() * 1000));
         return printInvoiceDataAccountBaseInfo;
     }
 
-    public PrintInvoiceData getPrintDataOfTransLongquan(String payseriesno){
+    public PrintInvoiceData getPrintDataOfTransJK(String payseriesno) {
+        //查询交易
+        PrintInvoiceData printInvoiceData = payInvoiceMapper.countTransactiondetails(payseriesno);
+        if (printInvoiceData == null) {
+            //没有查询到交易信息
+            throw new ServiceException(ResultStatus.OPERATE_RECORD_NOT_EXIT);
+        }
+        BigInteger accountId = printInvoiceData.getAccountId();
+        //查询账期信息
+        PrintInvoiceData printInvoiceDataPeriod = payInvoiceMapper.getAmountPeriod(payseriesno);
+        Integer maxPeriod;
+        Integer minPeriod;
+        if (printInvoiceDataPeriod != null) {
+            maxPeriod = printInvoiceDataPeriod.getMaxPeriod();
+            minPeriod = printInvoiceDataPeriod.getMinPeriod();
+        } else {
+            maxPeriod = printInvoiceData.getMinPeriod();
+            minPeriod = printInvoiceData.getMinPeriod();
+        }
+        //查询水量应收信息
+        PrintInvoiceData printInvoiceDataReceivablefee = payInvoiceMapper.getAmountInfoAndReceivablefee(accountId, maxPeriod, minPeriod);
+        //查询客户基础信息
+        PrintInvoiceData printInvoiceDataAccountBaseInfo = payInvoiceMapper.getAccountBaseInfo(accountId);
+
+        //拼装数据
+        if (printInvoiceDataReceivablefee != null) {
+            printInvoiceDataAccountBaseInfo.setReading(printInvoiceDataReceivablefee.getReading());
+            printInvoiceDataAccountBaseInfo.setRecorddate(printInvoiceDataReceivablefee.getRecorddate());
+            printInvoiceDataAccountBaseInfo.setLastreading(printInvoiceDataReceivablefee.getLastreading());
+            printInvoiceDataAccountBaseInfo.setLastrecorddate(printInvoiceDataReceivablefee.getLastrecorddate());
+            printInvoiceDataAccountBaseInfo.setPayamount(printInvoiceDataReceivablefee.getPayamount());
+            printInvoiceDataAccountBaseInfo.setReceivablefee(printInvoiceDataReceivablefee.getReceivablefee());
+        } else {
+            printInvoiceDataAccountBaseInfo.setReading(BigDecimal.ZERO);
+            printInvoiceDataAccountBaseInfo.setLastreading(BigDecimal.ZERO);
+            printInvoiceDataAccountBaseInfo.setPayamount(BigDecimal.ZERO);
+            printInvoiceDataAccountBaseInfo.setReceivablefee(BigDecimal.ZERO);
+        }
+
+        if (printInvoiceData.getRemaining().compareTo(BigDecimal.ZERO) == 1) {
+            printInvoiceDataAccountBaseInfo.setRemaining(printInvoiceData.getRemaining());
+        }
+        printInvoiceDataAccountBaseInfo.setCreateBy(printInvoiceData.getCreateBy());
+        printInvoiceDataAccountBaseInfo.setCreateDate(printInvoiceData.getCreateDate());
+        printInvoiceDataAccountBaseInfo.setTransamount(printInvoiceData.getTransamount().setScale(2,BigDecimal.ROUND_HALF_UP));
+
+        BigDecimal lastRemaining = printInvoiceDataAccountBaseInfo.getRemaining()
+                .add(printInvoiceDataAccountBaseInfo.getReceivablefee())
+                .subtract(printInvoiceDataAccountBaseInfo.getTransamount());
+        printInvoiceDataAccountBaseInfo.setLastRemaining(lastRemaining);
+
+        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        if (printInvoiceData.getCreateDate() != null) {
+            printInvoiceDataAccountBaseInfo.setPaydate(df.format(printInvoiceData.getCreateDate()));
+        } else {
+            printInvoiceDataAccountBaseInfo.setPaydate(df.format(LocalDateTime.now()));
+        }
+        //查询年用水量
+        printInvoiceDataAccountBaseInfo.setYearUsedAmount(payInvoiceMapper.getYearUsedAmount(accountId));
+        //金额转换为大写
+        printInvoiceDataAccountBaseInfo.setAmountBigFee(NumberToCN.number2CNMontrayUnit(printInvoiceData.getTransamount()));
+        printInvoiceDataAccountBaseInfo.setPrintType(1);
+        printInvoiceDataAccountBaseInfo.setPayseriesno(payseriesno);
+        printInvoiceDataAccountBaseInfo.setInvoiceNo(
+                DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS").format(LocalDateTime.now()) + "" + (int) (Math.random() * 1000));
+        return printInvoiceDataAccountBaseInfo;
+    }
+    public PrintInvoiceData getPrintDataOfTransLongquan(String payseriesno) {
         //获取缴费信息
-        PrintInvoiceData printInvoiceData=payInvoiceMapper.countTransactiondetails(payseriesno);
+        PrintInvoiceData printInvoiceData = payInvoiceMapper.countTransactiondetails(payseriesno);
         PrintInvoiceData printDataLongquan;
-        if(printInvoiceData != null && printInvoiceData.getAccountId() != null){
+        if (printInvoiceData != null && printInvoiceData.getAccountId() != null) {
             //获取用户信息
             printDataLongquan = payInvoiceMapper.getAccountInfoPrint(printInvoiceData.getAccountId());
 
@@ -297,7 +368,7 @@ public class PayInvoiceServiceImpl implements PayinvoiceService {
             PrintInvoiceData payInvoiceReceivable = payInvoiceMapper.getPayInvoiceReceivable(payseriesno);
             //拼装数据
             DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-            if(payInvoiceReceivable != null){
+            if (payInvoiceReceivable != null) {
                 printDataLongquan.setLastreading(payInvoiceReceivable.getLastreading());
                 printDataLongquan.setReading(payInvoiceReceivable.getReading());
                 printDataLongquan.setPayamount(payInvoiceReceivable.getPayamount());
@@ -308,127 +379,130 @@ public class PayInvoiceServiceImpl implements PayinvoiceService {
                 printDataLongquan.setPrice4(payInvoiceReceivable.getPrice4());
                 printDataLongquan.setReceivablefee4(payInvoiceReceivable.getReceivablefee4());
                 printDataLongquan.setReceivablefee(payInvoiceReceivable.getReceivablefee());
-                if(printInvoiceData.getApprovetime()!=null){
+                if (printInvoiceData.getApprovetime() != null) {
                     printDataLongquan.setApproveDate(df.format(printInvoiceData.getApprovetime()));
-                }else{
+                } else {
                     printDataLongquan.setApproveDate(df.format(LocalDateTime.now()));
                 }
             }
             //没有交易明细记录则取当前余额作为上期余额和本期余额
-            if(printInvoiceData.getTransamount() != null){
+            if (printInvoiceData.getTransamount() != null) {
                 printDataLongquan.setRemaining(printInvoiceData.getRemaining());
             }
-            if(printInvoiceData.getTransamount() != null){
-                printDataLongquan.setLastRemaining(printInvoiceData.getLastRemaining());
-            }else{
-                printDataLongquan.setLastRemaining(printDataLongquan.getRemaining());
+            if (printInvoiceData.getTransamount() != null) {
+                printDataLongquan.setLastRemaining(printInvoiceData.getLastRemaining().setScale(2,BigDecimal.ROUND_HALF_UP));
+            } else {
+                printDataLongquan.setLastRemaining(printDataLongquan.getRemaining().setScale(2,BigDecimal.ROUND_HALF_UP));
             }
-            printDataLongquan.setTransamount(printInvoiceData.getTransamount());
+            printDataLongquan.setTransamount(printInvoiceData.getTransamount().setScale(2,BigDecimal.ROUND_HALF_UP));
             printDataLongquan.setCreateBy(printInvoiceData.getCreateBy());
 
-            if(printInvoiceData.getCreateDate()!=null){
+            if (printInvoiceData.getCreateDate() != null) {
                 printDataLongquan.setCreateDate(printInvoiceData.getCreateDate());
                 printDataLongquan.setPaydate(df.format(printInvoiceData.getCreateDate()));
-            }else{
+            } else {
                 printDataLongquan.setCreateDate(LocalDateTime.now());
                 printDataLongquan.setPaydate(df.format(LocalDateTime.now()));
             }
-            if(payInvoiceReceivable != null && payInvoiceReceivable.getApprovetime() != null){
+            if (payInvoiceReceivable != null && payInvoiceReceivable.getApprovetime() != null) {
                 printDataLongquan.setApprovetime(payInvoiceReceivable.getApprovetime());
                 printDataLongquan.setApproveDate(df.format(payInvoiceReceivable.getApprovetime()));
-            }else{
+            } else {
                 printDataLongquan.setApprovetime(LocalDateTime.now());
                 printDataLongquan.setApproveDate(df.format(LocalDateTime.now()));
             }
-        }else{
+        } else {
             throw new ServiceException(ResultStatus.OPERATE_RECORD_NOT_EXIT);
         }
         printDataLongquan.setPrintType(1);
         printDataLongquan.setPayseriesno(payseriesno);
         printDataLongquan.setInvoiceNo(
-                DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS").format(LocalDateTime.now())+""+(int)(Math.random()*1000));
+                DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS").format(LocalDateTime.now()) + "" + (int) (Math.random() * 1000));
         return printDataLongquan;
     }
+
     /**
      * 打印收据——缴纳欠费(transtype == null || (transtype ==2 ||transtype ==4))
+     *
      * @param payseriesno
      * @return
      */
-    public PrintInvoiceData getPrintDataOfReceived(String payseriesno){
-        LoginUser loginUser=UserUtil.getCurrentUser();
+    public PrintInvoiceData getPrintDataOfReceived(String payseriesno) {
+        LoginUser loginUser = UserUtil.getCurrentUser();
         //收费区间信息和抄表信息
-        PrintInvoiceData printInvoiceData=payInvoiceMapper.getDateRangeInfoPrint(payseriesno);
+        PrintInvoiceData printInvoiceData = payInvoiceMapper.getDateRangeInfoPrint(payseriesno);
         DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-        if(printInvoiceData.getCreateDate()!=null){
+        if (printInvoiceData.getCreateDate() != null) {
             printInvoiceData.setPaydate(df.format(printInvoiceData.getCreateDate()));
-        }else{
+        } else {
             printInvoiceData.setPaydate(df.format(LocalDateTime.now()));
         }
         printInvoiceData.setDateRange(
-            printInvoiceData.getMaxPeriod()/12+""+String.format("%02d",printInvoiceData.getMaxPeriod()%12)+"——"+
-            printInvoiceData.getMinPeriod()/12+""+String.format("%02d",printInvoiceData.getMinPeriod()%12)   );
+                printInvoiceData.getMaxPeriod() / 12 + "" + String.format("%02d", printInvoiceData.getMaxPeriod() % 12) + "——" +
+                        printInvoiceData.getMinPeriod() / 12 + "" + String.format("%02d", printInvoiceData.getMinPeriod() % 12));
 
 
         //缴费用户信息
-        PrintInvoiceData accountInfoPrint =payInvoiceMapper.getAccountInfoPrint(printInvoiceData.getAccountId());
+        PrintInvoiceData accountInfoPrint = payInvoiceMapper.getAccountInfoPrint(printInvoiceData.getAccountId());
         printInvoiceData.setAccountname(accountInfoPrint.getAccountname());
         printInvoiceData.setAccountnumber(accountInfoPrint.getAccountnumber());
         printInvoiceData.setAddress(accountInfoPrint.getAddress());
         printInvoiceData.setRemaining(accountInfoPrint.getRemaining());
 
         //余额信息(/*--交易前后余额(先按批次号查询,没有再查询交易后第一条记录,还有没有就取预存账户余额)*/)
-        PrintInvoiceData payfeeRemainingPrint= payInvoiceMapper.getPayfeeRemainingPrint(printInvoiceData.getAccountId(),null,payseriesno);
-        if(payfeeRemainingPrint !=null && payfeeRemainingPrint.getRemaining() != null){
+        PrintInvoiceData payfeeRemainingPrint = payInvoiceMapper.getPayfeeRemainingPrint(printInvoiceData.getAccountId(), null, payseriesno);
+        if (payfeeRemainingPrint != null && payfeeRemainingPrint.getRemaining() != null) {
             printInvoiceData.setRemaining(payfeeRemainingPrint.getRemaining());
             printInvoiceData.setLastRemaining(payfeeRemainingPrint.getLastRemaining());
-        }else{
-            payfeeRemainingPrint= payInvoiceMapper.getPayfeeRemainingPrint(printInvoiceData.getAccountId(),printInvoiceData.getMaxPeriod(),null);
-            if(payfeeRemainingPrint !=null && payfeeRemainingPrint.getRemaining() != null){
+        } else {
+            payfeeRemainingPrint = payInvoiceMapper.getPayfeeRemainingPrint(printInvoiceData.getAccountId(), printInvoiceData.getMaxPeriod(), null);
+            if (payfeeRemainingPrint != null && payfeeRemainingPrint.getRemaining() != null) {
                 printInvoiceData.setRemaining(payfeeRemainingPrint.getRemaining());
                 printInvoiceData.setLastRemaining(payfeeRemainingPrint.getRemaining());
-            }else{
+            } else {
                 printInvoiceData.setLastRemaining(printInvoiceData.getRemaining());
             }
         }
 
         //收费信息
-        List<PrintReceivedInfo>  payfeeInfoPrint = payInvoiceMapper.getPayfeeInfoPrint(printInvoiceData.getMinPeriod(),printInvoiceData.getMaxPeriod(),printInvoiceData.getAccountId());
+        List<PrintReceivedInfo> payfeeInfoPrint = payInvoiceMapper.getPayfeeInfoPrint(printInvoiceData.getMinPeriod(), printInvoiceData.getMaxPeriod(), printInvoiceData.getAccountId());
 
 
-        BigDecimal receivedFee=BigDecimal.ZERO;
-        BigDecimal debt=BigDecimal.ZERO;//缴纳的欠费
-        BigDecimal autoReceivedamount=BigDecimal.ZERO;//划扣的欠费
+        BigDecimal receivedFee = BigDecimal.ZERO;
+        BigDecimal debt = BigDecimal.ZERO;//缴纳的欠费
+        BigDecimal autoReceivedamount = BigDecimal.ZERO;//划扣的欠费
         //计算出缴纳的欠费金额
-        for(PrintReceivedInfo receivedInfo:payfeeInfoPrint){
-            debt=debt.add(receivedInfo.getReceivedamount());
-            autoReceivedamount=autoReceivedamount.add(receivedInfo.getAutoReceivedamount());
+        for (PrintReceivedInfo receivedInfo : payfeeInfoPrint) {
+            debt = debt.add(receivedInfo.getReceivedamount());
+            autoReceivedamount = autoReceivedamount.add(receivedInfo.getAutoReceivedamount());
         }
         //计算出实收金额
-        receivedFee= debt.add(autoReceivedamount).add(printInvoiceData.getRemaining()).subtract(printInvoiceData.getLastRemaining());
+        receivedFee = debt.add(autoReceivedamount).add(printInvoiceData.getRemaining()).subtract(printInvoiceData.getLastRemaining());
         printInvoiceData.setReceivablefee(debt);
         printInvoiceData.setTransamount(receivedFee);
         printInvoiceData.setPrintReceivedInfo(payfeeInfoPrint);
         printInvoiceData.setInvoiceNo(
-            DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS").format(LocalDateTime.now())+""+(int)(Math.random()*1000));
+                DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS").format(LocalDateTime.now()) + "" + (int) (Math.random() * 1000));
         printInvoiceData.setPrintType(2);
         printInvoiceData.setPayseriesno(payseriesno);
         return printInvoiceData;
     }
 
 
-    public String findPayseriesnoByPrint(BigInteger id,Integer type){
-        return payInvoiceMapper.findPayseriesnoByPrint(id,type);
+    public String findPayseriesnoByPrint(BigInteger id, Integer type) {
+        return payInvoiceMapper.findPayseriesnoByPrint(id, type);
     }
 
-    public void cancelPrintInfo(BigInteger id){
-        LoginUser loginUser=UserUtil.getCurrentUser();
+    public void cancelPrintInfo(BigInteger id) {
+        LoginUser loginUser = UserUtil.getCurrentUser();
         payInvoiceMapper.deleteTransPrint(id);
         payInvoiceMapper.deleteReceivedPrint(id);
-        payInvoiceMapper.cancelPayInvoice(id,LocalDateTime.now(),BigInteger.valueOf(loginUser.getId()));
+        payInvoiceMapper.cancelPayInvoice(id, LocalDateTime.now(), BigInteger.valueOf(loginUser.getId()));
     }
 
-    public PrintInvoiceData getPayInvoiceType(String payseriesno){
+    public PrintInvoiceData getPayInvoiceType(String payseriesno) {
         return payInvoiceMapper.getPayInvoiceType(payseriesno);
     }
 
+
 }

+ 2 - 0
smart-city-platform/src/main/java/com/bz/smart_city/service/pay/PayinvoiceService.java

@@ -90,4 +90,6 @@ public interface PayinvoiceService {
      * @return
      */
     PrintInvoiceData getPayInvoiceType(String payseriesno  );
+
+    PrintInvoiceData getPrintDataOfTransJK(String payseriesno);
 }

+ 6 - 1
smart-city-platform/src/main/resources/mapper/pay/PayInvoiceMapper.xml

@@ -428,6 +428,7 @@
             ,a.name as accountname
             ,a.address as address
             ,p.totalprice_l1 as totalPrice
+            ,p.name as waterPropertyName
             ,d.water_meter_no as eleno
             ,l.`name` as livingareaName
             ,re.remaining
@@ -439,7 +440,11 @@
         left join sc_community l on l.id=d.community_id
         where a.id= #{accountId}
     </select>
-
+    <select id="getYearUsedAmount" resultType="java.math.BigDecimal">
+        select ifnull(MAX(reading)-min(a.lastreading),0) as yearAmount
+        from pay_amount_waterusedamount a
+        where a.`year` = YEAR(NOW()) and a.state=1 and a.id= #{accountId}
+    </select>
 
     <select id="getPayInvoiceType" resultType="com.bz.smart_city.dto.pay.payfee.PrintInvoiceData">
         select