diff --git a/.gitignore b/.gitignore
index 470effd..ce32388 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,6 +31,8 @@
 /nbdist/
 /.nb-gradle/
 
+log
+
 ### VS Code ###
 .vscode/
 ### Gradle template
diff --git a/build.gradle b/build.gradle
index f950a09..c8474f6 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,13 +1,20 @@
+import java.text.SimpleDateFormat
+
 plugins {
     id 'java'
-    id 'org.springframework.boot' version '2.1.6.RELEASE' apply false
+    id 'org.springframework.boot' version '2.2.2.RELEASE'
+    id 'io.spring.dependency-management' version '1.0.8.RELEASE'
     id 'org.jetbrains.kotlin.jvm' version '1.3.31'
-    id 'org.jetbrains.kotlin.plugin.spring' version '1.3.31'
+    id 'org.jetbrains.kotlin.plugin.spring' version '1.3.31' apply false
     id 'org.jetbrains.kotlin.plugin.jpa' version '1.3.31' apply false
+    id 'com.gradle.build-scan' version '2.0.2'
     id "com.palantir.git-version" version "0.12.0-rc2"
     id 'com.palantir.docker' version '0.22.1' apply false
 }
 
+bootJar {
+    enabled = false
+}
 
 allprojects {
     repositories {
@@ -18,6 +25,8 @@
         set('junit_jupiter_version', "5.5.2")
         set("junit_platform_version", "1.5.2")
         set("mockitoVersion", "3.1.0")
+        set("dockerRegistry", "harbor.supwisdom.com/dali")
+        set("buildTime", new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(new Date()))
     }
 
     apply plugin: 'java'
@@ -42,6 +51,10 @@
         }
     }
 
+    sourceSets {
+        main.java.srcDirs += "src/main/java"
+    }
+
     version = '1'
     ext {
         details = versionDetails()
@@ -92,6 +105,7 @@
         implementation "org.jetbrains.kotlin:kotlin-reflect"
         implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
 
+        implementation "org.springframework.boot:spring-boot-starter"
         implementation "org.springframework.boot:spring-boot-starter-data-jpa"
         implementation "org.springframework.boot:spring-boot-starter-data-redis"
         implementation "org.springframework.boot:spring-boot-starter-validation"
diff --git a/oauth/build.gradle b/oauth/build.gradle
index 2ae2546..1d9dd6c 100644
--- a/oauth/build.gradle
+++ b/oauth/build.gradle
@@ -4,22 +4,20 @@
     id 'org.jetbrains.kotlin.jvm'
     id 'org.jetbrains.kotlin.plugin.jpa'
     id 'org.jetbrains.kotlin.plugin.spring'
-    id "com.palantir.git-version"
 }
 
 apply plugin: 'java'
 apply plugin: 'io.spring.dependency-management'
 
-sourceCompatibility = jdkVersion
 def startClass = 'com.supwisdom.oauth.OAuthApplication'
 
-println("Build version: $gitVersion")
+println("Build version: $buildVersion")
 
 bootJar {
     enabled = true
     mainClassName = startClass
     manifest {
-        attributes('oauth-Version': gitVersion)
+        attributes('oauth-Version': buildVersion)
     }
 }
 
diff --git a/payapi-common/build.gradle b/payapi-common/build.gradle
index 28dc87a..ee97798 100644
--- a/payapi-common/build.gradle
+++ b/payapi-common/build.gradle
@@ -15,7 +15,6 @@
 println("Build Version: $buildVersion")
 bootJar {
     enabled = false
-
 }
 
 apply from: rootProject.file('gradle/swnx-publish.gradle')
diff --git a/payapi/build.gradle b/payapi/build.gradle
index 60c843d..2f1eed1 100644
--- a/payapi/build.gradle
+++ b/payapi/build.gradle
@@ -1,5 +1,3 @@
-import java.text.SimpleDateFormat
-
 plugins {
     id "java"
     id "org.springframework.boot"
@@ -9,16 +7,19 @@
     id "com.palantir.docker"
 }
 
+apply plugin: 'io.spring.dependency-management'
+apply plugin: 'kotlin'
 
 def payapiStartClass = "com.supwisdom.dlpay.PayApiApplicationKt"
 
 println("Build version: $buildVersion")
 
 bootJar {
+    enabled = true
     mainClassName = payapiStartClass
     manifest {
         attributes("Payapi-Version": buildVersion,
-                "Payapi-Buildtime": new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(new Date()))
+                "Payapi-Buildtime": buildTime)
     }
 }
 
@@ -43,10 +44,10 @@
     } else {
         imageVersion = details.lastTag
     }
-    println("Docker image tag : " + imageVersion)
-    name "harbor.supwisdom.com/dali/payapi:" + imageVersion
-    println(jar.archiveFile.get().toString())
-    files jar.archiveFile
+    println("Docker image tag : ${imageVersion}")
+    name "${dockerRegistry}/payapi:${imageVersion}"
+    println(jar.archiveFile.get())
+    files jar.archiveFile.get()
 }
 
 docker.dependsOn(jar)
@@ -65,9 +66,9 @@
     implementation "org.springframework.boot:spring-boot-starter-thymeleaf"
     implementation "org.springframework.session:spring-session-data-redis"
     implementation "org.springframework.boot:spring-boot-starter-cache"
-    implementation "org.springframework.kafka:spring-kafka"
     implementation "org.springframework.social:spring-social-web:${springSocialVersion}"
-    implementation "org.springframework.kafka:spring-kafka:${springKafkaVersion}"
+    implementation "org.apache.kafka:kafka-streams"
+    implementation "org.springframework.kafka:spring-kafka"
 
     implementation "org.springframework.cloud:spring-cloud-starter"
     implementation "org.springframework.cloud:spring-cloud-starter-consul-discovery"
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TDepositCapitalType.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TDepositCapitalType.java
index 90a3334..2bab4ef 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TDepositCapitalType.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TDepositCapitalType.java
@@ -10,6 +10,7 @@
 @SequenceGenerator(name = "deposit_capital_type_seq", initialValue = 50)
 public class TDepositCapitalType {
 
+  @Id
   @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "deposit_capital_type_seq")
   private Integer id;
 
@@ -27,8 +28,8 @@
 
   @OneToOne(targetEntity = TSourceType.class, fetch = LAZY, cascade = CascadeType.ALL)
   @JoinColumns({
-      @JoinColumn(name = "sourcetypecode", referencedColumnName = "SOURCETYPE"),
-      @JoinColumn(name = "tenantid", referencedColumnName = "tenantid")
+      @JoinColumn(name = "sourcetypecode", referencedColumnName = "SOURCETYPE", insertable = false, updatable = false),
+      @JoinColumn(name = "tenantid", referencedColumnName = "tenantid", insertable = false, updatable = false)
   })
   private TSourceType sourceType;
 
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShopacc.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShopacc.java
index 820ba54..1593a8b 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShopacc.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShopacc.java
@@ -2,8 +2,6 @@
 
 import com.supwisdom.dlpay.framework.util.MoneyUtil;
 import com.supwisdom.dlpay.framework.util.Signature;
-import org.hibernate.annotations.LazyToOne;
-import org.hibernate.annotations.LazyToOneOption;
 
 import javax.persistence.*;
 import javax.validation.constraints.NotNull;
@@ -53,8 +51,7 @@
   private String tenantId;
 
   @OneToOne(targetEntity = TShop.class, fetch = FetchType.LAZY, cascade = CascadeType.REFRESH)
-  @JoinColumn(name = "shopid", referencedColumnName = "shopid")
-  @LazyToOne(value = LazyToOneOption.NO_PROXY)
+  @JoinColumn(name = "shopid", referencedColumnName = "shopid", insertable = false, updatable = false)
   private TShop shop;
 
   public String getShopaccno() {
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/PayApiApplication.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/PayApiApplication.kt
index d993aea..f16956f 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/PayApiApplication.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/PayApiApplication.kt
@@ -44,7 +44,7 @@
     private lateinit var redis: RedisProperties
 
     @Bean
-    fun redisConnectionFactory(): RedisConnectionFactory {
+    fun redisConnectionFactory(): LettuceConnectionFactory {
         val clientConfig = LettuceClientConfiguration.builder()
                 .readFrom(ReadFrom.SLAVE_PREFERRED)
                 .build()
diff --git a/settings.gradle b/settings.gradle
index 35b2274..c670d5a 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,3 +1,7 @@
-rootProject.name = 'payapi'
-include 'payapi', 'payapi-sdk', 'payapi-common', 'ynrcc-agent','oauth'
+rootProject.name = 'payapi-root'
+include 'payapi'
+include 'payapi-sdk'
+include 'payapi-common'
+include 'ynrcc-agent'
+include 'oauth'
 
diff --git a/ynrcc-agent/build.gradle b/ynrcc-agent/build.gradle
index 54fab87..01a06b5 100644
--- a/ynrcc-agent/build.gradle
+++ b/ynrcc-agent/build.gradle
@@ -1,30 +1,37 @@
 plugins {
-    id 'java'
+    id "java"
     id 'org.springframework.boot'
-    id "com.palantir.git-version"
+    id "org.jetbrains.kotlin.jvm"
+    id "org.jetbrains.kotlin.plugin.spring"
     id 'com.palantir.docker'
 }
 
-apply plugin: 'java'
 apply plugin: 'io.spring.dependency-management'
+apply plugin: 'kotlin'
 
-def ynrccVersion = buildVersion
-def details = versionDetails()
+def ynrccStartClass = "com.supwisdom.agent.YnrccAgentApplication"
 
-sourceCompatibility = jdkVersion
-def ynrccStartClass = 'com.supwisdom.agent.YnrccAgentApplication'
-
-println("Build version: $ynrccVersion")
+println("Build version: $buildVersion")
 
 bootJar {
     mainClassName = ynrccStartClass
     manifest {
-        attributes('YnrccAgent-Version': ynrccVersion)
+        attributes('YnrccAgent-Version': buildVersion)
     }
 }
 
-jar {
-    baseName = 'ynrcc-agent'
+compileKotlin {
+    kotlinOptions {
+        freeCompilerArgs = ["-Xjsr305=strict"]
+        jvmTarget = jdkVersion
+    }
+}
+
+compileTestKotlin {
+    kotlinOptions {
+        freeCompilerArgs = ["-Xjsr305=strict"]
+        jvmTarget = jdkVersion
+    }
 }
 
 docker {
@@ -34,10 +41,10 @@
     } else {
         imageVersion = details.lastTag
     }
-    println("Docker image tag : " + imageVersion)
-    name 'harbor.supwisdom.com/dali/ynrcc:' + imageVersion
-    println(jar.archivePath)
-    files jar.archivePath
+    println("Docker image tag : ${imageVersion}")
+    name "${dockerRegistry}/ynrcc:${imageVersion}"
+    println(jar.archiveFile.get())
+    files jar.archiveFile.get()
 }
 
 docker.dependsOn(jar)
@@ -54,5 +61,6 @@
     implementation "commons-beanutils:commons-beanutils:${beanutilsVersion}"
     implementation "commons-net:commons-net:${commonNetVersion}"
 
+    runtime("org.springframework.boot:spring-boot-devtools")
 }
 
diff --git a/ynrcc-agent/src/main/java/com/supwisdom/agent/YnrccAgentApplication.java b/ynrcc-agent/src/main/java/com/supwisdom/agent/YnrccAgentApplication.java
deleted file mode 100644
index 8e1bb6e..0000000
--- a/ynrcc-agent/src/main/java/com/supwisdom/agent/YnrccAgentApplication.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.supwisdom.agent;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-@SpringBootApplication
-public class YnrccAgentApplication {
-  public static void main(String[] args) {
-    SpringApplication.run(YnrccAgentApplication.class, args);
-  }
-}
diff --git a/ynrcc-agent/src/main/kotlin/com.supwisdom.agent/application.kt b/ynrcc-agent/src/main/kotlin/com.supwisdom.agent/application.kt
new file mode 100644
index 0000000..e9a9f9c
--- /dev/null
+++ b/ynrcc-agent/src/main/kotlin/com.supwisdom.agent/application.kt
@@ -0,0 +1,15 @@
+package com.supwisdom.agent
+
+import org.springframework.boot.SpringApplication
+import org.springframework.boot.autoconfigure.SpringBootApplication
+import org.springframework.boot.web.servlet.ServletComponentScan
+
+@SpringBootApplication
+@ServletComponentScan
+open class YnrccAgentApplication {
+}
+
+
+fun main(args: Array<String>) {
+    SpringApplication.run(YnrccAgentApplication::class.java, *args)
+}
\ No newline at end of file
