diff --git a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/bean/CheckFileHeader.java b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/bean/CheckFileHeader.java
index d29bc09..b25ebd4 100644
--- a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/bean/CheckFileHeader.java
+++ b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/bean/CheckFileHeader.java
@@ -8,15 +8,11 @@
       "payAmount", "refundCount", "refundAmount"};
 
   private int totalCount;
-  private int totalAmount;
+  private long totalAmount;
   private int payCount;
-  private int payAmount;
+  private long payAmount;
   private int refundCount;
-  private int refundAmount;
-
-  public static String[] getChkFileHeaderColumnList() {
-    return chkFileHeaderColumnList;
-  }
+  private long refundAmount;
 
   public int getTotalCount() {
     return totalCount;
@@ -26,11 +22,11 @@
     this.totalCount = totalCount;
   }
 
-  public int getTotalAmount() {
+  public long getTotalAmount() {
     return totalAmount;
   }
 
-  public void setTotalAmount(int totalAmount) {
+  public void setTotalAmount(long totalAmount) {
     this.totalAmount = totalAmount;
   }
 
@@ -42,11 +38,11 @@
     this.payCount = payCount;
   }
 
-  public int getPayAmount() {
+  public long getPayAmount() {
     return payAmount;
   }
 
-  public void setPayAmount(int payAmount) {
+  public void setPayAmount(long payAmount) {
     this.payAmount = payAmount;
   }
 
@@ -58,11 +54,11 @@
     this.refundCount = refundCount;
   }
 
-  public int getRefundAmount() {
+  public long getRefundAmount() {
     return refundAmount;
   }
 
-  public void setRefundAmount(int refundAmount) {
+  public void setRefundAmount(long refundAmount) {
     this.refundAmount = refundAmount;
   }
 
diff --git a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/controller/YnrccApiController.java b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/controller/YnrccApiController.java
index b0a6e76..2c4ca84 100644
--- a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/controller/YnrccApiController.java
+++ b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/controller/YnrccApiController.java
@@ -402,7 +402,7 @@
     try {
       Map<String, String> data = new HashMap<>();
       for (int col = 0; col < column.length; ++col) {
-        data.put(column[col], fields[col]);
+        data.put(fields[col], column[col]);
       }
       BeanUtils.populate(bean, data);
       return;
@@ -469,7 +469,7 @@
           fileHeader.setPayCount(fileHeader.getPayCount() - 1);
           fileHeader.setPayAmount(fileHeader.getPayAmount() - record.getAmount());
         } else if (FLAG_REFUND.equals(record.getFlag())) {
-          amount = -record.getAmount();
+          amount = record.getAmount();
           flag = Constant.FLAG_REFUND;
           fileHeader.setRefundCount(fileHeader.getRefundCount() - 1);
           fileHeader.setRefundAmount(fileHeader.getRefundAmount() - record.getAmount());
