diff --git a/src/main/java/com/supwisdom/dlpay/consume/dao/AccountDao.java b/src/main/java/com/supwisdom/dlpay/consume/dao/AccountDao.java
index 948b525..e82cb11 100644
--- a/src/main/java/com/supwisdom/dlpay/consume/dao/AccountDao.java
+++ b/src/main/java/com/supwisdom/dlpay/consume/dao/AccountDao.java
@@ -11,8 +11,8 @@
 public interface AccountDao extends JpaRepository<TAccount, String> {
 
   @Lock(LockModeType.PESSIMISTIC_WRITE)
-  @Query("select a from taccount a where a.accno = ?1")
-  TAccount getByAccnoForUpdate(String accno);
+  //@Query("select a from taccount a where a.accno = ?1")
+  TAccount getByAccno(String accno);
 
   TAccount findByUserid(String userid);
 }
diff --git a/src/main/kotlin/com/supwisdom/dlpay/consume/ThirdPayCall.kt b/src/main/kotlin/com/supwisdom/dlpay/consume/ThirdPayCall.kt
index d003d71..8419452 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/consume/ThirdPayCall.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/consume/ThirdPayCall.kt
@@ -16,7 +16,7 @@
 class CallService {
 
     companion object {
-        fun callYktPay(config: Map<String, String>, paydtl: TUserdtl, time: String): BaseResp {
+        fun callYktPay(config: Map<String, String>, paydtl: TUserdtl, time: String,stuempno: String, yktshopid: String, devphyid: String?): BaseResp {
             val code = BaseResp()
 
             val appid = config["appid"]
@@ -25,12 +25,12 @@
 
             val params = hashMapOf<String, String?>()
             params.put("partner_id", appid)
-            params.put("stuempno", "")
+            params.put("stuempno", stuempno)
             params.put("tradeno", paydtl.refno)
             params.put("tradename", paydtl.payinfo)
             params.put("amount", MoneyUtil.YuanToFen(paydtl.amount).toString())
-            params.put("shopid", "")
-            params.put("devphyid", "")
+            params.put("shopid", yktshopid)
+            params.put("devphyid", devphyid)
             params.put("calcmanagefee", "T") //是否计算费率
             params.put("timestamp", time)
             params.put("sign_method", "HMAC");
diff --git a/src/main/kotlin/com/supwisdom/dlpay/consume/comsume_builder.kt b/src/main/kotlin/com/supwisdom/dlpay/consume/comsume_builder.kt
index 75b8e1b..8243a78 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/consume/comsume_builder.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/consume/comsume_builder.kt
@@ -12,6 +12,7 @@
 import com.supwisdom.dlpay.framework.util.TradeDict
 import com.supwisdom.dlpay.framework.util.TradeErrorCode
 import com.supwisdom.dlpay.framework.util.Tradetype
+import org.springframework.beans.factory.annotation.Autowired
 
 class AccountHolder<T> private constructor(val accountId: String, val idType: Int) {
     companion object {
@@ -81,7 +82,7 @@
     // 内部参数，不需要调用者处理
     val details = mutableListOf<TransDetail>()
     var amount: Double = 0.0
-    lateinit var accountUtil: AccountUtilServcie
+    var accountUtil = accUitl
 
     /**
      * 支付方式
@@ -89,8 +90,14 @@
     var paytype = ""
     var payinfo = ""
 
-    fun setOwner(per: TPerson) {
+    /**
+     * 外部流水号
+     * */
+    var outtradeno = ""
+
+    fun setOwner(per: TPerson): PersonTransBuilder {
         this.person = per
+        return this
     }
 
     fun enableOverdraft(b: Boolean = false): PersonTransBuilder {
@@ -110,6 +117,11 @@
         return this
     }
 
+    fun setOuttradeno(outtradeno: String): PersonTransBuilder {
+        this.outtradeno = outtradeno
+        return this
+    }
+
     fun chooseTradetype(tradetype: Tradetype) {
         this.tradetype = tradetype
     }
diff --git a/src/main/kotlin/com/supwisdom/dlpay/consume/controller/consume_service.kt b/src/main/kotlin/com/supwisdom/dlpay/consume/controller/consume_service.kt
index 6ca2d5e..61784ec 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/consume/controller/consume_service.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/consume/controller/consume_service.kt
@@ -68,30 +68,30 @@
 
     @PostMapping("/ykt/payinit")
     fun yktPayInit(userid: String, amount: Int, manageFee: Int,
-                   stuempno: String,shopid:String, transdate: String, transtime: String,
+                   stuempno: String, shopid: String, transdate: String, transtime: String,
                    outtradeno: String, payinfo: String): ResponseEntity<Any> {
         //一卡通支付款 112240
         var person = personService.getPersonByThirdUniqueIdenty(stuempno)
         val dtl = PersonTransBuilder.newBuilder(accountUtilServcie)
                 .setTransDatetime(transdate, transtime)
+                .selectPaytype(PaytypeUtil.YKTPAY, payinfo)
+                .setOuttradeno(outtradeno)
+                .setOwner(person)
                 .addDetail(AccountHolder.subject("112240"),
-                        AccountHolder.shop("12323"),
+                        AccountHolder.shop(shopid),
                         amount / 100.0, "")
-                .addDetail(AccountHolder.subject("112240"), AccountHolder.transType(301),
-                        manageFee / 100.0, "")
-                .done(personBalancePayService,false)
+                .done(personBalancePayService, false)
         return ResponseEntity.ok(dtl)
     }
 
     @PostMapping("/ykt/payfinish")
-    fun yktPayFinish(refno: String,yktshopid: String): ResponseEntity<Any> {
-        //一卡通支付款 112240
+    fun yktPayFinish(refno: String, yktshopid: String, devphyid: String?): ResponseEntity<Any> {
         val dtl = PersonTransBuilder.newBuilder(accountUtilServcie)
                 .done(refno, TradeDict.DTL_STATUS_WIP, personBalancePayService)
+        var person = personService.getPersonByUserid(dtl.userid)
         val code = CallService.callYktPay(paytypeService.getPaytypeConfigByPaytype(PaytypeUtil.YKTPAY),
-                dtl, DateUtil.getNow())
+                dtl, DateUtil.getNow(),person?.thirdUniqueIdenty,yktshopid,devphyid)
         return if (code.retcode == "0") {
-            //TODO update dtl
             val suc = PersonTransBuilder.newBuilder(accountUtilServcie)
                     .done(dtl.refno, TradeDict.DTL_STATUS_SUCCESS, personBalancePayService)
             ResponseEntity.ok(suc)
diff --git a/src/main/kotlin/com/supwisdom/dlpay/consume/service/impl/pay_service_impl.kt b/src/main/kotlin/com/supwisdom/dlpay/consume/service/impl/pay_service_impl.kt
index a556058..8ce1108 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/consume/service/impl/pay_service_impl.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/consume/service/impl/pay_service_impl.kt
@@ -16,6 +16,7 @@
 import com.supwisdom.dlpay.framework.service.SystemUtilService
 import com.supwisdom.dlpay.framework.util.TradeDict
 import com.supwisdom.dlpay.framework.util.TradeErrorCode
+import com.supwisdom.dlpay.framework.util.Tradetype
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.stereotype.Service
 import javax.persistence.EntityManager
@@ -117,6 +118,10 @@
         userdtl.transdate = builder.transDate
         userdtl.transtime = builder.transTime
         userdtl.userid = builder.person?.userid
+        userdtl.outtradeno = builder.outtradeno
+        userdtl.payinfo = builder.payinfo
+        userdtl.paytype = builder.paytype
+        userdtl.tradeflag = 2
         userdtlDao.save(userdtl)
         return userdtl
     }
@@ -130,7 +135,17 @@
     }
 
     override fun finish(paydtl: TUserdtl, status: String, builder: PersonTransBuilder): TUserdtl {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+        if(paydtl.status==TradeDict.DTL_STATUS_SUCCESS){
+            return paydtl
+        }
+        paydtl.status = status
+        if(status==TradeDict.DTL_STATUS_SUCCESS){
+            //TODO 更新商户余额，科目余额，账户支付的需要更新余额
+        }
+        val systemtime = systemUtilService.sysdatetime
+        paydtl.endtime = systemtime.hostdatetime
+        userdtlDao.save(paydtl)
+        return paydtl
     }
 
     override fun finish(refno: String, status: String, builder: PersonTransBuilder): TUserdtl {
diff --git a/src/main/kotlin/com/supwisdom/dlpay/consume/service/impl/person_service_impl.kt b/src/main/kotlin/com/supwisdom/dlpay/consume/service/impl/person_service_impl.kt
index e582c50..d6e0cf5 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/consume/service/impl/person_service_impl.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/consume/service/impl/person_service_impl.kt
@@ -14,7 +14,11 @@
     @Autowired
     lateinit var personDao: PersonDao
 
-    override fun getPersonByThirdUniqueIdenty(thirdUniqueIdenty: String?): TPerson {
+    override fun getPersonByThirdUniqueIdenty(thirdUniqueIdenty: String): TPerson {
         return personDao.findByThirdUniqueIdenty(thirdUniqueIdenty)
     }
+
+    override fun getPersonByUserid(userid: String): TPerson {
+        return personDao.getOne(userid)
+    }
 }
\ No newline at end of file
diff --git a/src/main/kotlin/com/supwisdom/dlpay/consume/service/person_service.kt b/src/main/kotlin/com/supwisdom/dlpay/consume/service/person_service.kt
index ce35e2c..1efe1a8 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/consume/service/person_service.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/consume/service/person_service.kt
@@ -9,6 +9,9 @@
  */
 interface PersonService {
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class), readOnly = true)
-    fun getPersonByThirdUniqueIdenty(thirdUniqueIdenty: String?): TPerson
+    fun getPersonByThirdUniqueIdenty(thirdUniqueIdenty: String): TPerson
+
+    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class), readOnly = true)
+    fun getPersonByUserid(userid: String): TPerson
 
 }
\ No newline at end of file
