diff --git a/config/application-devel-pg-local.properties b/config/application-devel-pg-local.properties
index b6561aa..e976303 100644
--- a/config/application-devel-pg-local.properties
+++ b/config/application-devel-pg-local.properties
@@ -20,3 +20,7 @@
 jwt.expiration=3600
 # user password
 auth.password.bcrypt.seed=
+
+##################################################
+## quartz task scheduler
+shopbalance.updater.cron = -
\ No newline at end of file
diff --git a/config/application-devel-pg.properties b/config/application-devel-pg.properties
index 3c76bf5..ada087d 100644
--- a/config/application-devel-pg.properties
+++ b/config/application-devel-pg.properties
@@ -20,4 +20,9 @@
 jwt.expiration=3600
 auth.password.bcrypt.seed=
 spring.jackson.serialization.fail-on-empty-beans=false
-logging.level.org.springframework.web=DEBUG
\ No newline at end of file
+logging.level.org.springframework.web=DEBUG
+
+
+##################################################
+## quartz task scheduler
+shopbalance.updater.cron = -
\ No newline at end of file
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TAccount.java b/src/main/java/com/supwisdom/dlpay/api/domain/TAccount.java
index 2a89feb..3525011 100644
--- a/src/main/java/com/supwisdom/dlpay/api/domain/TAccount.java
+++ b/src/main/java/com/supwisdom/dlpay/api/domain/TAccount.java
@@ -53,7 +53,8 @@
   @Column(name = "MAX_BAL", precision = 15, scale = 2)
   private Double maxbal; // 最大余额限制
 
-  @Column(name = "LAST_TRANSTIME", length = 8)
+  @Version
+  @Column(name = "LAST_TRANSTIME")
   private Timestamp lasttranstime; //最后交易日期
 
   @Column(name = "LASTDAY_TRANSAMT", precision = 9, scale = 2)
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TAccountDayBal.java b/src/main/java/com/supwisdom/dlpay/api/domain/TAccountDayBal.java
index c5bd5f4..63b1281 100644
--- a/src/main/java/com/supwisdom/dlpay/api/domain/TAccountDayBal.java
+++ b/src/main/java/com/supwisdom/dlpay/api/domain/TAccountDayBal.java
@@ -20,7 +20,7 @@
   private Double amount;
 
   @Version
-  @Column(name = "update_time", nullable = false)
+  @Column(name = "update_time")
   private Timestamp updateTime;
 
   @Column(name = "lastRefno", nullable = false, length = 32)
diff --git a/src/main/java/com/supwisdom/dlpay/api/repositories/AccountService.java b/src/main/java/com/supwisdom/dlpay/api/repositories/AccountService.java
index 5e976e8..6f414a5 100644
--- a/src/main/java/com/supwisdom/dlpay/api/repositories/AccountService.java
+++ b/src/main/java/com/supwisdom/dlpay/api/repositories/AccountService.java
@@ -1,11 +1,10 @@
 package com.supwisdom.dlpay.api.repositories;
 
 import com.supwisdom.dlpay.api.domain.TPersondtl;
-import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Transactional;
 
 public interface AccountService {
 
-  @Transactional(isolation = Isolation.SERIALIZABLE)
+  @Transactional
   void recalcAccountBalance(TPersondtl dtl, Double amount, boolean overdraft);
 }
diff --git a/src/main/java/com/supwisdom/dlpay/framework/data/SystemDateTime.java b/src/main/java/com/supwisdom/dlpay/framework/data/SystemDateTime.java
index 0ba8274..b876d9d 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/data/SystemDateTime.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/data/SystemDateTime.java
@@ -1,7 +1,6 @@
 package com.supwisdom.dlpay.framework.data;
 
 import java.sql.Timestamp;
-import java.util.Date;
 
 public interface SystemDateTime {
   String getHostdate();
@@ -10,7 +9,6 @@
 
   String getHostdatetime();
 
-  Date getSysdate();
+  Timestamp getSysdate();
 
-  Timestamp getCurrentTimestamp();
 }
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/SystemUtilService.java b/src/main/java/com/supwisdom/dlpay/framework/service/SystemUtilService.java
index af90257..e575265 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/service/SystemUtilService.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/service/SystemUtilService.java
@@ -11,29 +11,30 @@
 
   /**
    * 取数据库日期
-   * */
+   */
+  @Transactional
   SystemDateTime getSysdatetime();
 
   /**
    * 更新任务表
-   * */
+   */
   @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
   TTaskLock updateTaskLock(TTaskLock lock);
 
   /**
    * 取任务表
-   * */
+   */
   @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
   TTaskLock doLockTask(String taskcode, Integer minRecover, String remark);
 
   /**
    * 获取记账日期
-   * */
+   */
   String getAccdate();
 
   /**
    * 获取流水号
-   * */
+   */
   String getRefno();
 
   /**
@@ -73,6 +74,7 @@
 
   @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
   TBusinesspara getBusinessValueForUpdateNowait(String parakey);
+
   /********************** 获取【系统参数】【业务参数】通用方法 **********************/
 
 
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java b/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java
index ff86a29..3ca5ef6 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java
@@ -35,40 +35,6 @@
 
   private static final Logger logger = LoggerFactory.getLogger(SystemUtilServiceImpl.class);
 
-  public static class SystemDateTimeImpl implements SystemDateTime {
-    private Date now;
-    private static final SimpleDateFormat sdft = new SimpleDateFormat("yyyyMMddHHmmss");
-
-    public SystemDateTimeImpl(Date now) {
-      this.now = now;
-    }
-
-    @Override
-    public String getHostdate() {
-      return sdft.format(this.now).substring(0, 8);
-    }
-
-    @Override
-    public String getHosttime() {
-      return sdft.format(this.now).substring(8, 14);
-    }
-
-    @Override
-    public String getHostdatetime() {
-      return sdft.format(this.now);
-    }
-
-    @Override
-    public Date getSysdate() {
-      return this.now;
-    }
-
-    @Override
-    public Timestamp getCurrentTimestamp() {
-      return new Timestamp(this.now.getTime());
-    }
-  }
-
   /**
    * 获取oracle数据库时间
    */
diff --git a/src/main/kotlin/com/supwisdom/dlpay/account_process_async.kt b/src/main/kotlin/com/supwisdom/dlpay/api/account_process_async.kt
similarity index 98%
rename from src/main/kotlin/com/supwisdom/dlpay/account_process_async.kt
rename to src/main/kotlin/com/supwisdom/dlpay/api/account_process_async.kt
index 51be41f..83bfde8 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/account_process_async.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/account_process_async.kt
@@ -1,4 +1,4 @@
-package com.supwisdom.dlpay
+package com.supwisdom.dlpay.api
 
 import com.supwisdom.dlpay.api.repositories.ShopaccService
 import mu.KotlinLogging
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/controller/charge_api_controller.kt b/src/main/kotlin/com/supwisdom/dlpay/api/controller/charge_api_controller.kt
index 6dcc9ee..c52dce2 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/controller/charge_api_controller.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/controller/charge_api_controller.kt
@@ -73,16 +73,19 @@
                 setAmount(param.amount / 100.0, TradeDict.TRADE_FLAG_IN)
                 this.opposite = AccountProxy(rechargeDrsubjno)
             }.and().addDebitCreditRecord(AccountProxy(rechargeDrsubjno), AccountProxy(account),
-                            param.amount / 100.0, "账户充值")
+                    param.amount / 100.0, "账户充值")
                     .also { builder ->
                         param.feelist?.forEach {
                             val feeamt = it.amount / 100.0
                             when (it.feetype) {
                                 TradeDict.PAYTYPE_RECHARGE_COUPON -> {
                                     //优惠折扣  优惠科目 -> 个人账户
-                                    val feetypeConfig = accountUtilServcie.readFeetype(TradeDict.PAYTYPE_RECHARGE_COUPON, param.sourcetype)
-                                    val subject = accountUtilServcie.readSubject(feetypeConfig.drsubjno) //不同在借方折扣科目
-                                    builder.addDebitCreditRecord(AccountProxy(subject), AccountProxy(account), feeamt, feetypeConfig.summary)
+                                    val feetypeConfig = accountUtilServcie
+                                            .readFeetype(TradeDict.PAYTYPE_RECHARGE_COUPON, param.sourcetype)
+                                    val subject = accountUtilServcie
+                                            .readSubject(feetypeConfig.drsubjno) //不同在借方折扣科目
+                                    builder.addDebitCreditRecord(AccountProxy(subject),
+                                            AccountProxy(account), feeamt, feetypeConfig.summary)
                                 }
                                 //fixme: 服务费暂缺
 //                                TradeDict.PAYTYPE_RECHARGE_SERVICEFEE -> {
@@ -92,7 +95,8 @@
 //                                    builder.addDebitCreditRecord(AccountProxy(rechargeDrsubjno), AccountProxy(subject), feeamt, feetypeConfig.summary)
 //
 //                                }
-                                else -> throw TransactionCheckException(TradeErrorCode.INPUT_DATA_ERROR, "充值费用清单不支持feetype<${it.feetype}>")
+                                else -> throw TransactionCheckException(TradeErrorCode.INPUT_DATA_ERROR,
+                                        "充值费用清单不支持feetype<${it.feetype}>")
                             }
                         }
                     }.init(transactionService)
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/scheduler_task.kt b/src/main/kotlin/com/supwisdom/dlpay/api/scheduler_task.kt
index a5846bb..2dec950 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/scheduler_task.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/scheduler_task.kt
@@ -15,7 +15,7 @@
         shopaccService.recalcShopBalance(dtl.refno, true)
     }
 
-    @Scheduled(fixedRate = 5000)
+    @Scheduled(cron = "\${jobs.cronSchedule:-}")
     fun dealShopUnupdatedDtl() {
         shopaccService.findUnupdatedShopDtl(100).forEach {
             doShopBlanceUpdate(it)
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/account_service_impl.kt b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/account_service_impl.kt
index fb88e55..42e5974 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/account_service_impl.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/account_service_impl.kt
@@ -7,31 +7,35 @@
 import com.supwisdom.dlpay.framework.domain.TShopacc
 import com.supwisdom.dlpay.framework.service.SystemUtilService
 import com.supwisdom.dlpay.framework.util.DateUtil
-import com.supwisdom.dlpay.framework.util.TradeDict
-import com.supwisdom.dlpay.framework.util.TradeDict.*
+import com.supwisdom.dlpay.framework.util.TradeDict.DTL_STATUS_SUCCESS
+import com.supwisdom.dlpay.framework.util.TradeDict.TRADE_FLAG_OUT
 import com.supwisdom.dlpay.framework.util.TradeErrorCode
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.stereotype.Repository
+import org.springframework.stereotype.Service
 import java.sql.Timestamp
 import javax.persistence.EntityManager
 import javax.persistence.LockModeType
 import javax.persistence.OptimisticLockException
 import javax.persistence.PersistenceContext
 
-@Repository
+@Service
 class AccountServiceImpl : AccountService {
 
     @PersistenceContext
     private lateinit var entityManager: EntityManager
 
     @Autowired
-    lateinit var systemUtilServcie: SystemUtilService
+    private lateinit var systemUtilServcie: SystemUtilService
 
-    private fun newAccounDayBal(dtl: TPersondtl, account: TAccount) = TAccountDayBal().apply {
-        accno = account.accno
-        accdate = dtl.accdate
-        amount = 0.0
-        checked = false
+    private fun newAccounDayBal(dtl: TPersondtl, account: TAccount): TAccountDayBal {
+        return TAccountDayBal().apply {
+            accno = account.accno
+            accdate = dtl.accdate
+            amount = 0.0
+            updateTime = systemUtilServcie.sysdatetime.sysdate
+            checked = false
+        }
     }
 
     private fun doRecalcAccountBalance(dtl: TPersondtl, amount: Double, account: TAccount): TAccountDayBal {
@@ -63,7 +67,7 @@
                     account.balance += dtl.amount
 
                     val sameDay = DateUtil.sameDay(account.lasttranstime,
-                            systemUtilServcie.sysdatetime.currentTimestamp) ?: false
+                            systemUtilServcie.sysdatetime.sysdate) ?: false
 
                     if (!sameDay) {
                         account.lastdayTransamt = 0.0
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt
index 608f899..d81db90 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt
@@ -1,12 +1,10 @@
 package com.supwisdom.dlpay.api.service.impl
 
-import com.supwisdom.dlpay.ShopAccBalanceAsyncTask
 import com.supwisdom.dlpay.api.TransactionBuilder
 import com.supwisdom.dlpay.api.dao.PersondtlDao
 import com.supwisdom.dlpay.api.dao.TransactionMainDao
 import com.supwisdom.dlpay.api.domain.*
 import com.supwisdom.dlpay.api.repositories.AccountService
-import com.supwisdom.dlpay.api.repositories.ShopaccService
 import com.supwisdom.dlpay.api.service.SourceTypeService
 import com.supwisdom.dlpay.api.service.TransactionService
 import com.supwisdom.dlpay.exception.TransactionCheckException
@@ -17,8 +15,6 @@
 import com.supwisdom.dlpay.framework.util.TradeErrorCode
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.stereotype.Service
-import org.springframework.transaction.annotation.Propagation
-import org.springframework.transaction.annotation.Transactional
 import java.sql.SQLException
 import java.sql.Timestamp
 import kotlin.math.absoluteValue
@@ -36,9 +32,6 @@
     private lateinit var transactionMainDao: TransactionMainDao
 
     @Autowired
-    private lateinit var persondtlDao: PersondtlDao
-
-    @Autowired
     private lateinit var accountService: AccountService
 
     @Autowired
@@ -64,7 +57,7 @@
                 accdate = systemUtilService.accdate
                 outTradeNo = builder.outtradeno
                 outId = builder.outId
-                createTime = Timestamp(systemUtilService.sysdatetime.sysdate.time)
+                createTime = systemUtilService.sysdatetime.sysdate
                 operid = builder.operId
                 opertype = builder.operType
                 reverseFlag = builder.tradeType
@@ -310,7 +303,7 @@
         if (transaction.shop) {
             transaction.shopDtl.remark = remark
         }
-        transaction.endTime = systemUtilService.sysdatetime.currentTimestamp
+        transaction.endTime = systemUtilService.sysdatetime.sysdate
         transactionMainDao.save(transaction)
         return transaction
     }
@@ -327,7 +320,7 @@
         transaction.accdate = systemUtilService.accdate
         transactionOnSuccess(transaction, remark, false)
 
-        transaction.endTime = systemUtilService.sysdatetime.currentTimestamp
+        transaction.endTime = systemUtilService.sysdatetime.sysdate
         transactionMainDao.save(transaction)
         return transaction
     }
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
index 1049c26..7c5f900 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
@@ -69,7 +69,7 @@
                 lowfreeLimit = lowfreeLimit
                 daylimit = daylimit
                 maxbal = systemUtilService.getSysparaValueAsDouble(SysparaUtil.SYSPARAID_NO1, SysparaUtil.SYSPARA_NO1_DEFAULT)
-                lasttranstime = systemdatetime.currentTimestamp
+                lasttranstime = systemdatetime.sysdate
                 lastdayTransamt = 0.0
                 lastdayDpsamt = 0.0
                 opendate = systemdatetime.hostdate
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/transaction_service.kt b/src/main/kotlin/com/supwisdom/dlpay/api/service/transaction_service.kt
index 223a12b..48e9e29 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/service/transaction_service.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/service/transaction_service.kt
@@ -1,68 +1,71 @@
 package com.supwisdom.dlpay.api.service
 
-import com.supwisdom.dlpay.ShopAccBalanceAsyncTask
+import com.supwisdom.dlpay.api.ShopAccBalanceAsyncTask
 import com.supwisdom.dlpay.api.TransactionBuilder
 import com.supwisdom.dlpay.api.domain.TTransactionMain
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.stereotype.Component
+import org.springframework.stereotype.Service
 import org.springframework.transaction.annotation.Propagation
 import org.springframework.transaction.annotation.Transactional
 
 interface TransactionService {
-    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = [Exception::class])
+    @Transactional
     fun init(builder: TransactionBuilder): TTransactionMain
 
-    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = [Exception::class])
+    @Transactional
     fun wip(refno: String): TTransactionMain
 
-    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = [Exception::class])
+    @Transactional
     fun wip(builder: TransactionBuilder): TTransactionMain
 
-    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = [Exception::class])
+    @Transactional
     fun fail(refno: String): TTransactionMain
 
-    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = [Exception::class])
+    @Transactional
     fun fail(refno: String, remark: String): TTransactionMain
 
-    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = [Exception::class])
+    @Transactional
     fun success(refno: String, remark: String): TTransactionMain
 
-    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = [Exception::class])
+    @Transactional
     fun success(refno: String): TTransactionMain
 
     // 撤销接口冲正类接口
-    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = [Exception::class])
+    @Transactional
     fun reverse(originRefno: String): TTransactionMain
 
-    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = [Exception::class])
+    @Transactional
     fun reverseInit(originRefno: String): TTransactionMain
 
-    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = [Exception::class])
+    @Transactional
     fun reverseConfirm(refno: String): TTransactionMain
 
+    @Transactional
     fun reverseFail(refno: String): TTransactionMain
 
     // 冲正类接口
     /**
      * 冲正业务
      */
-    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = [Exception::class])
+    @Transactional
     fun cancel(originRefno: String): TTransactionMain
 
-    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = [Exception::class])
+    @Transactional
     fun cancelInit(originRefno: String): TTransactionMain
 
-    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = [Exception::class])
+    @Transactional
     fun cancelConfirm(refno: String): TTransactionMain
 
+    @Transactional
     fun cancelFail(refno: String): TTransactionMain
 
     // 补帐接口
-    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = [Exception::class])
+    @Transactional
     fun repair(refno: String, remark: String): TTransactionMain
 }
 
-@Component
+@Service
 class TransactionServiceProxy {
     @Autowired
     private lateinit var transactionService: TransactionService
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 4c33b78..a4d11c5 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -23,6 +23,9 @@
 spring.thymeleaf.cache=false
 spring.thymeleaf.enabled=true
 
+##################################################
+## quartz task scheduler
+shopbalance.updater.cron = 10/* * * * *
 ################################################
 # user password
 auth.password.bcrypt.length=10
