增加了paydtl 处理逻辑
diff --git a/src/main/java/com/supwisdom/dlpay/consume/PayDtlBuilder.java b/src/main/java/com/supwisdom/dlpay/consume/PayDtlBuilder.java
new file mode 100644
index 0000000..8c0498a
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/consume/PayDtlBuilder.java
@@ -0,0 +1,86 @@
+package com.supwisdom.dlpay.consume;
+
+import com.supwisdom.dlpay.consume.domain.TAccount;
+import com.supwisdom.dlpay.consume.domain.TPerson;
+import com.supwisdom.dlpay.framework.service.PersonPayService;
+import com.supwisdom.dlpay.framework.util.TradeDict;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class PayDtlBuilder {
+  public static class PayDetail {
+    private String accNo;
+    private String accName;
+    private Double amount;
+    private String direction;
+    private String summary;
+  }
+
+  private TPerson person;
+  private TAccount account;
+  private String direction;
+
+  private Double payAmount;
+
+  private String summary;
+
+  private List<PayDetail> detail;
+
+  public static PayDtlBuilder newBuilder() {
+    return new PayDtlBuilder();
+  }
+
+  private PayDtlBuilder() {
+    this.detail = new ArrayList<>();
+  }
+
+  public PayDtlBuilder person(TPerson per, TAccount acc, String direction) {
+    this.person = per;
+    this.account = acc;
+    this.direction = direction;
+    return this;
+  }
+
+  public PayDtlBuilder setSummary(String s) {
+    this.summary = s;
+    return this;
+  }
+
+  public PayDtlBuilder setTransDatetime(String transDate ,String transTime) {
+
+    return this;
+  }
+
+  public Boolean done(PersonPayService service) {
+    if (this.detail.size() == 0) {
+      return false;
+    }
+    this.payAmount = 0.0;
+
+    for (PayDetail d : detail) {
+      this.payAmount += d.amount;
+    }
+    if (this.payAmount > this.account.getBalance()) {
+      return false;
+    }
+    service.process(this);
+    return true;
+  }
+
+
+  public PayDtlBuilder addSubDtl(String accNo, Double amount, String summary) {
+    PayDetail dtl = new PayDetail();
+    dtl.accNo = accNo;
+    dtl.accName = "";
+    dtl.amount = amount;
+    if (this.direction.equals(TradeDict.TRANS_DIRECTION_CREDIT)) {
+      dtl.direction = TradeDict.TRANS_DIRECTION_DEBIT;
+    } else {
+      dtl.direction = TradeDict.TRANS_DIRECTION_CREDIT;
+    }
+    dtl.summary = summary;
+    this.detail.add(dtl);
+    return this;
+  }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/consume/domain/TPayCreditDtl.java b/src/main/java/com/supwisdom/dlpay/consume/domain/TPayCreditDtl.java
new file mode 100644
index 0000000..9a2e3fa
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/consume/domain/TPayCreditDtl.java
@@ -0,0 +1,33 @@
+package com.supwisdom.dlpay.consume.domain;
+
+import javax.persistence.Entity;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "t_paycreditdtl")
+public class TPayCreditDtl {
+  private String refno;
+  private Integer rowno;
+  /**
+   * 贷方账号
+   */
+  private String accNo;
+  private String accSubjNo;
+
+  private String otherAccNo;
+
+  /**
+   * 发生金额
+   */
+  private Double amount;
+
+  /**
+   * 交易方向 credit, debit
+   */
+  private String direction;
+
+  /**
+   * 交易摘要
+   */
+  private String summary;
+}
diff --git a/src/main/java/com/supwisdom/dlpay/consume/domain/TPaydtl.java b/src/main/java/com/supwisdom/dlpay/consume/domain/TPaydtl.java
new file mode 100644
index 0000000..e2e79e7
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/consume/domain/TPaydtl.java
@@ -0,0 +1,83 @@
+package com.supwisdom.dlpay.consume.domain;
+
+import javax.persistence.Entity;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "t_paydtl")
+public class TPaydtl {
+  private String refno;
+  /**
+   * 交易关联个人信息
+   */
+  private String userid;
+  private String name;
+  /**
+   * 记账日期
+   */
+  private String accDate;
+  /**
+   * 交易发生日期
+   */
+  private String transDate;
+  private String transTime;
+
+  /**
+   * 交易代码
+   */
+  private Integer transCode;
+  private String transName;
+  /**
+   * 可选值 init, wip, success, failed
+   */
+  private String status;
+  /**
+   * 交易总金额
+   */
+  private Double amount;
+  /**
+   * 交易前个人账户余额
+   */
+  private Double befBalance;
+  /**
+   * 借方账号
+   */
+  private String accNo;
+  private String accName;
+  /**
+   * 借方科目号
+   */
+  private String accSubjNo;
+
+  /**
+   * 交易方向 credit, debit
+   */
+  private String direction;
+  /**
+   * 结算标志 none, ok
+   */
+  private String settleStatus;
+  /**
+   * 结算日期
+   */
+  private String settleDate;
+  /**
+   * 可选值 none, cancel, reversed
+   */
+  private String reverseFlag;
+  /**
+   * 当有撤销交易时,撤销金额填写
+   */
+  private Double reverseAmount;
+
+  /**
+   * 交易说明
+   */
+  private String describe;
+
+  /**
+   * 交易字表
+   */
+  private String detailType;
+
+}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/PersonPayService.java b/src/main/java/com/supwisdom/dlpay/framework/service/PersonPayService.java
new file mode 100644
index 0000000..5e7ace6
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/framework/service/PersonPayService.java
@@ -0,0 +1,10 @@
+package com.supwisdom.dlpay.framework.service;
+
+import com.supwisdom.dlpay.consume.PayDtlBuilder;
+import com.supwisdom.dlpay.consume.domain.TPaydtl;
+import org.springframework.stereotype.Service;
+
+@Service
+public interface PersonPayService {
+  TPaydtl process(PayDtlBuilder builder);
+}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/TradeDict.java b/src/main/java/com/supwisdom/dlpay/framework/util/TradeDict.java
index 685ad9f..b570823 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/util/TradeDict.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/util/TradeDict.java
@@ -26,6 +26,12 @@
   public static final String DTL_STATUS_CANCEL = "cancel";
 
   /**
+   * 交易借方
+   */
+  public static final String TRANS_DIRECTION_CREDIT = "credit";
+  public static final String TRANS_DIRECTION_DEBIT = "debit";
+
+  /**
    * 科目定义 subjno
    * 2004 - 商户科目
    * 220201 - 个人存款