diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/OperatorDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/OperatorDao.java
index 27b511f..3563a48 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/OperatorDao.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/OperatorDao.java
@@ -12,5 +12,6 @@
 public interface OperatorDao extends JpaRepository<TOperator, String>, JpaSpecificationExecutor<TOperator> {
   TOperator findByOpercode(String opercode);
 
+  TOperator findByOperid(String operid);
 
 }
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/PermissionDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/PermissionDao.java
index af782a8..1bd85c4 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/PermissionDao.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/PermissionDao.java
@@ -3,9 +3,13 @@
 import com.supwisdom.dlpay.framework.domain.TPermission;
 import org.springframework.data.jpa.repository.JpaRepository;
 
+import java.util.List;
+
 public interface PermissionDao extends JpaRepository<TPermission, String> {
 
     TPermission findByRoleIdAndResid(String roleId, Integer resid);
 
+    List<TPermission> findByRoleId(String roleId);
+
     void deleteByRoleId(String roleId);
 }
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/RoleDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/RoleDao.java
index 9ccc7c9..1e4e925 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/RoleDao.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/RoleDao.java
@@ -11,16 +11,16 @@
 
 @Repository
 public interface RoleDao extends JpaRepository<TRole, String> {
-    @Query("from TRole order by createtime asc ")
-    List<TRole> getAllRoles();
+  @Query("from TRole order by createtime asc ")
+  List<TRole> getAllRoles();
 
-    TRole findByRoleCode(String roleCode);
+  TRole findByRoleCode(String roleCode);
 
-    Page<TRole> findAllByRoleNameContaining(String roleName, Pageable pageable);
+  Page<TRole> findAllByRoleNameContaining(String roleName, Pageable pageable);
 
-    TRole findByRoleNameAndRoleIdNot(String roleName, String roleId);
+  TRole findByRoleNameAndRoleIdNot(String roleName, String roleId);
 
-    TRole findByRoleCodeAndRoleIdNot(String roleCode, String roleId);
+  TRole findByRoleCodeAndRoleIdNot(String roleCode, String roleId);
 
-    TRole findByRoleName(String roleName);
+  TRole findByRoleName(String roleName);
 }
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TApiClient.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TApiClient.java
index 9ffe634..a9c2b05 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TApiClient.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TApiClient.java
@@ -2,29 +2,37 @@
 
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
+import javax.persistence.*;
 import javax.validation.constraints.NotNull;
 
 @Entity
-@Table(name = "TB_APICLIENT")
+@Table(name = "TB_APICLIENT",
+    indexes = {@Index(name = "apiclient_idx", columnList = "appid, tenantid", unique = true)})
 public class TApiClient {
   @Id
-  @Column(name = "appid", nullable = false, length = 20)
+  @SequenceGenerator(name = "apiclient_id", sequenceName = "SEQ_APICLIENT", allocationSize = 1, initialValue = 10)
+  @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "apiclient_id")
+  @Column(name = "id")
+  @NotNull
+  private Integer id;
+
+  @Column(name = "appid", length = 20)
+  @NotNull
   private String appid;
 
-  @Column(name = "secret", nullable = false, length = 64)
+  @Column(name = "secret", length = 64)
+  @NotNull
   private String secret;
 
-  @Column(name = "status", nullable = false, length = 10)
+  @Column(name = "status", length = 10)
+  @NotNull
   private String status;
 
   @Column(name = "roles", length = 300)
   private String roles;
 
-  @Column(name = "BCRYPT_SECRET", nullable = false, length = 64)
+  @Column(name = "BCRYPT_SECRET", length = 64)
+  @NotNull
   private String bcryptSecret;
 
   @Column(name = "THIRDURL", length = 200)
@@ -87,4 +95,12 @@
   public void setTenantId(String tenantId) {
     this.tenantId = tenantId;
   }
+
+  public Integer getId() {
+    return id;
+  }
+
+  public void setId(Integer id) {
+    this.id = id;
+  }
 }
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java
index 17ca2dd..29e2e13 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java
@@ -1,11 +1,13 @@
 package com.supwisdom.dlpay.framework.domain;
 
+import com.supwisdom.dlpay.api.annotation.MobileNumber;
 import com.supwisdom.dlpay.framework.util.TradeDict;
 import org.hibernate.annotations.GenericGenerator;
 import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.userdetails.UserDetails;
 
 import javax.persistence.*;
+import javax.validation.constraints.Email;
 import javax.validation.constraints.NotNull;
 import java.util.Collection;
 
@@ -44,9 +46,11 @@
   private String sex;
 
   @Column(name = "MOBILE", length = 20)
+  @MobileNumber(message = "请输入正确手机号")
   private String mobile;
 
   @Column(name = "EMAIL", length = 60)
+  @Email(message = "请输入正确邮箱")
   private String email;
 
   @Column(name = "OPENDATE", length = 8)
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TPermission.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TPermission.java
index 31f2481..35f0044 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TPermission.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TPermission.java
@@ -7,7 +7,7 @@
 
 @Entity
 @Table(name = "TB_PERMISSION",
-    indexes = {@Index(name = "permission_idx", columnList = "role_func_id, tenantid", unique = true)})
+    indexes = {@Index(name = "permission_idx", columnList = "resid, roleid, tenantid", unique = true)})
 public class TPermission {
   @Id
   @GenericGenerator(name = "idGenerator", strategy = "uuid")
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TRoleFunction.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TRoleFunction.java
index 911ca71..b64e0e9 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TRoleFunction.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TRoleFunction.java
@@ -6,7 +6,8 @@
 import javax.validation.constraints.NotNull;
 
 @Entity
-@Table(name = "TB_ROLE_FUNCTION")
+@Table(name = "TB_ROLE_FUNCTION",
+    indexes = {@Index(name = "role_funcation_idx", columnList = "roleid, functionid, tenantid", unique = true)})
 public class TRoleFunction {
   @Id
   @GenericGenerator(name = "idGenerator", strategy = "uuid")
@@ -22,9 +23,6 @@
   @NotNull
   private Integer functionId;
 
-  @Column(name = "PERMISSIONS", length = 200)
-  private String permissions;
-
   @Column(name = "tenantid", length = 20)
   @NotNull
   private String tenantId;
@@ -53,14 +51,6 @@
     this.functionId = functionId;
   }
 
-  public String getPermissions() {
-    return permissions;
-  }
-
-  public void setPermissions(String permissions) {
-    this.permissions = permissions;
-  }
-
   public String getTenantId() {
     return tenantId;
   }
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSubject.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSubject.java
index 3a16f18..ba54f21 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSubject.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSubject.java
@@ -10,10 +10,11 @@
     indexes = {@Index(name = "subject_idx", columnList = "subjno, tenantid", unique = true)})
 public class TSubject {
   @Id
-  @Column(name = "id", length = 32)
-  @GenericGenerator(name = "idGenerator", strategy = "uuid")
-  @GeneratedValue(generator = "idGenerator")
-  private String id;
+  @Column(name = "subjid")
+  @NotNull
+  @SequenceGenerator(name = "subjectid", sequenceName = "SEQ_SUBJECTID", allocationSize = 1, initialValue = 1000)
+  @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "subjectid")
+  private Integer id;
 
   @Column(name = "SUBJNO", nullable = false, length = 10)
   private String subjno;
@@ -127,11 +128,11 @@
     this.tenantId = tenantId;
   }
 
-  public String getId() {
+  public Integer getId() {
     return id;
   }
 
-  public void setId(String id) {
+  public void setId(Integer id) {
     this.id = id;
   }
 }
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/OperatorServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/OperatorServiceImpl.java
index 8a5a1c1..508361c 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/OperatorServiceImpl.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/OperatorServiceImpl.java
@@ -91,11 +91,10 @@
         operRoleDao.save(operRole);
       }
     } else {
-      Optional<TOperator> temp = operatorDao.findById(operator.getOperid());
-      if (!temp.isPresent()) {
+      TOperator op = operatorDao.findByOperid(operator.getOperid());
+      if (op == null) {
         return false;
       }
-      TOperator op = temp.get();
       op.setSex(operator.getSex());
       op.setEmail(operator.getEmail());
       op.setMobile(operator.getMobile());
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java
index 3d83ae5..ce04c41 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java
@@ -14,6 +14,8 @@
 import com.supwisdom.dlpay.system.bean.FunctionSearchBean;
 import com.supwisdom.dlpay.system.bean.ZTreeNode;
 import com.supwisdom.dlpay.system.service.RoleService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Pageable;
@@ -26,6 +28,8 @@
 
 @Service
 public class RoleServiceImpl implements RoleService {
+  private Logger logger = LoggerFactory.getLogger(RoleServiceImpl.class);
+
   @Autowired
   private RoleDao roleDao;
 
@@ -91,7 +95,6 @@
       temp = opt.get();
       temp.setRoleName(role.getRoleName());
       temp.setRoleDesc(role.getRoleDesc());
-//      temp.setRoleCode(role.getRoleCode());
       temp.setLastsaved(DateUtil.getNow());
       temp.setTenantId(TenantContext.getTenantSchema());
       roleDao.save(temp);
@@ -121,32 +124,63 @@
     return permissionDao.findByRoleIdAndResid(roleFuncId, resid);
   }
 
+  private TPermission findOrNewPermission(List<TPermission> exists, String roleId, Integer resId) {
+    for (TPermission item : exists) {
+      if (resId.equals(item.getResid())) {
+        return item;
+      }
+    }
+
+    TPermission perm = new TPermission();
+    perm.setRoleId(roleId);
+    perm.setResid(resId);
+    perm.setTenantId(TenantContext.getTenantSchema());
+    return perm;
+  }
+
+  private TRoleFunction findOrNewRoleFunction(List<TRoleFunction> exists, String roleId, Integer funcId) {
+    for (TRoleFunction item : exists) {
+      if (funcId.equals(item.getFunctionId())) {
+        return item;
+      }
+    }
+    TRoleFunction func = new TRoleFunction();
+    func.setFunctionId(funcId);
+    func.setRoleId(roleId);
+    func.setTenantId(TenantContext.getTenantSchema());
+    return func;
+  }
+
   @Override
   public JsonResult saveRoleFuncId(String roleId, String funcs) {
     Optional<TRole> ret = roleDao.findById(roleId);
-    if (ret == null || !ret.isPresent()) {
+    if (!ret.isPresent()) {
       return JsonResult.error("角色不存在");
     }
-    roleFunctionDao.deleteByRoleId(roleId);
-    permissionDao.deleteByRoleId(roleId);
+    List<TRoleFunction> functions = roleFunctionDao.findByRoleId(roleId);
+    List<TPermission> permissions = permissionDao.findByRoleId(roleId);
+    ArrayList<TRoleFunction> retainFuncs = new ArrayList<>();
+    ArrayList<TPermission> retainPerms = new ArrayList<>();
     String[] datas = funcs.split(",");
     for (String func : datas) {
       if (func.contains("_res")) {
         String id = func.replace("_res", "");
-        TPermission permission = new TPermission();
-        permission.setResid(Integer.valueOf(id));
-        permission.setRoleId(roleId);
-        permission.setTenantId(TenantContext.getTenantSchema());
-        permissionDao.save(permission);
+        retainPerms.add(findOrNewPermission(permissions, roleId, Integer.parseInt(id)));
       } else {
-        if("-1".equals(func)) continue; //全选排除
-        TRoleFunction roleFunction = new TRoleFunction();
-        roleFunction.setFunctionId(Integer.valueOf(func));
-        roleFunction.setRoleId(roleId);
-        roleFunction.setTenantId(TenantContext.getTenantSchema());
-        roleFunctionDao.save(roleFunction);
+        if ("-1".equals(func)) continue; //全选排除
+        retainFuncs.add(findOrNewRoleFunction(functions, roleId, Integer.parseInt(func)));
       }
     }
+    // funcations
+    functions.removeAll(retainFuncs);
+    if (functions.size() > 0)
+      roleFunctionDao.deleteAll(functions);
+    roleFunctionDao.saveAll(retainFuncs);
+    // permissions
+    permissions.removeAll(retainPerms);
+    if (permissions.size() > 0)
+      permissionDao.deleteAll(permissions);
+    permissionDao.saveAll(retainPerms);
     return JsonResult.ok("成功");
   }
 
@@ -160,9 +194,9 @@
       zTreeNode.setpId(data.getPid());
       zTreeNode.setId(data.getId());
       zTreeNode.setName(data.getName());
-      zTreeNode.setChecked(data.getChecked() == 0 ? false : true);
+      zTreeNode.setChecked(data.getChecked() != 0);
       if (allChecked && !zTreeNode.isChecked()) allChecked = false;
-      zTreeNode.setOpen(data.getOpen() == 0 ? false : true);
+      zTreeNode.setOpen(data.getOpen() != 0);
       ret.add(zTreeNode);
     }
     ZTreeNode root = new ZTreeNode();
@@ -178,7 +212,7 @@
   @Override
   public JsonResult deleteRole(String roleid) {
     Optional<TRole> ret = roleDao.findById(roleid);
-    if (ret == null || !ret.isPresent()) {
+    if (!ret.isPresent()) {
       return JsonResult.error("角色不存在");
     }
     if (ret.get().getEditflag() != 1) {
diff --git a/payapi/src/main/resources/data.sql b/payapi/src/main/resources/data.sql
index b3ea34b..f1caa1f 100644
--- a/payapi/src/main/resources/data.sql
+++ b/payapi/src/main/resources/data.sql
@@ -36,7 +36,7 @@
 INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
 VALUES (17, NULL, 1, NULL, 'layui-icon-util', '/param/apiclientpara', '应用参数配置', 3, 10, '{tenantid}');
 INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
-VALUES (18, NULL, 1, NULL, 'layui-icon-util', '/param/sourceType', '支付能力配置', 4, 10, '{tenantid}');
+VALUES (18, NULL, 1, NULL, 'layui-icon-util', '/param/sourcetype', '支付能力配置', 4, 10, '{tenantid}');
 INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
 VALUES (19, NULL, 0, NULL, 'layui-icon-user', '#', '用户中心', 5, -1, '{tenantid}');
 INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
@@ -183,7 +183,7 @@
 INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
 VALUES (40, '', 17, '新增', '/param/addapiclientpara', '{tenantid}');
 INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
-VALUES (41, '', 18, '查询', '/param/sourceType', '{tenantid}');
+VALUES (41, '', 18, '查询', '/param/sourcetype', '{tenantid}');
 INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
 VALUES (42, '', 21, '查询', '/user/list', '{tenantid}');
 INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid)
@@ -373,87 +373,87 @@
 VALUES ('ff8080816bbb130c016bbb6ea2f600b3', 26, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
 
 
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('1001', 1, 'y', 1, NULL, 20190430, 1, '库存现金', 1, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('1002', 1, 'y', 1, NULL, 20190430, 1, '银行存款', 1, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('1121', 1, 'n', 0, NULL, 20190430, 1, '应收票据', 1, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('112101', 1, 'n', 1, '1121', 20190430, 2, '支票', 1, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('112102', 1, 'n', 1, '1121', 20190430, 2, '经费本', 1, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('1122', 1, 'y', 0, NULL, 20190430, 1, '应收账款', 1, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('112201', 1, 'y', 1, '1122', 20190430, 2, '现金充值款', 1, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('112209', 1, 'y', 1, '1122', 20190617, 2, '其他第三方充值款', 1, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('112210', 1, 'y', 1, '1122', 20190430, 2, '支付宝充值款', 1, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('112211', 1, 'y', 1, '1122', 20190430, 2, '微信充值款', 1, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('112212', 1, 'n', 1, '1122', 20190430, 2, '银联充值款', 1, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('112213', 1, 'y', 1, '1122', 20190430, 2, '一卡通充值款', 1, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('112230', 1, 'y', 1, '1122', 20190430, 2, '支付宝支付款', 1, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('112231', 1, 'y', 1, '1122', 20190430, 2, '微信支付款', 1, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('112232', 1, 'n', 1, '1122', 20190430, 2, '银联支付款', 1, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('112233', 1, 'y', 1, '1122', 20190430, 2, '一卡通支付款', 1, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('112234', 1, 'y', 1, '1122', NULL, 2, '市民卡支付款', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (1, '1001', 1, 'y', 1, NULL, 20190430, 1, '库存现金', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (2, '1002', 1, 'y', 1, NULL, 20190430, 1, '银行存款', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (3, '1121', 1, 'n', 0, NULL, 20190430, 1, '应收票据', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (4, '112101', 1, 'n', 1, '1121', 20190430, 2, '支票', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (5, '112102', 1, 'n', 1, '1121', 20190430, 2, '经费本', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (6, '1122', 1, 'y', 0, NULL, 20190430, 1, '应收账款', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (7, '112201', 1, 'y', 1, '1122', 20190430, 2, '现金充值款', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (8, '112209', 1, 'y', 1, '1122', 20190617, 2, '其他第三方充值款', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (9, '112210', 1, 'y', 1, '1122', 20190430, 2, '支付宝充值款', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (10, '112211', 1, 'y', 1, '1122', 20190430, 2, '微信充值款', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (11, '112212', 1, 'n', 1, '1122', 20190430, 2, '银联充值款', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (12, '112213', 1, 'y', 1, '1122', 20190430, 2, '一卡通充值款', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (13, '112230', 1, 'y', 1, '1122', 20190430, 2, '支付宝支付款', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (14, '112231', 1, 'y', 1, '1122', 20190430, 2, '微信支付款', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (15, '112232', 1, 'n', 1, '1122', 20190430, 2, '银联支付款', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (16, '112233', 1, 'y', 1, '1122', 20190430, 2, '一卡通支付款', 1, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (17, '112234', 1, 'y', 1, '1122', NULL, 2, '市民卡支付款', 1, '{tenantid}');
 --负债
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('2001', 2, 'n', 1, NULL, 20190430, 1, '用户押金', 2, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('2004', 2, 'y', 1, NULL, 20190430, 1, '商户营业款', 2, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('2202', 2, 'y', 0, NULL, 20190430, 1, '应付账款', 2, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('220201', 2, 'y', 1, '2202', 20190430, 2, '个人存款', 2, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('220211', 2, 'n', 1, '2202', 20190430, 2, '销户退款', 2, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (18, '2001', 2, 'n', 1, NULL, 20190430, 1, '用户押金', 2, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (19, '2004', 2, 'y', 1, NULL, 20190430, 1, '商户营业款', 2, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (20, '2202', 2, 'y', 0, NULL, 20190430, 1, '应付账款', 2, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (21, '220201', 2, 'y', 1, '2202', 20190430, 2, '个人存款', 2, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (22, '220211', 2, 'n', 1, '2202', 20190430, 2, '销户退款', 2, '{tenantid}');
 --损益
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('6021', 2, 'y', 0, NULL, 20190430, 1, '手续费收入', 6, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('602101', 2, 'y', 1, '6021', 20190430, 2, '支付宝充值手续费', 6, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('602102', 2, 'y', 1, '6021', 20190430, 2, '微信充值手续费', 6, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('602103', 2, 'n', 1, '6021', 20190430, 2, '银联充值手续费', 6, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('6601', 2, 'y', 0, NULL, 20190430, 1, '销售费用', 6, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('660101', 2, 'y', 1, '6601', 20190430, 2, '折扣优惠款', 6, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('660102', 2, 'y', 1, '6601', 20190430, 2, '积分抵扣款', 6, '{tenantid}');
-INSERT INTO "tb_subject" ("subjid", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
-VALUES ('6602', 2, 'y', 1, NULL, 20190430, 1, '管理费收入', 6, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (23, '6021', 2, 'y', 0, NULL, 20190430, 1, '手续费收入', 6, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (24, '602101', 2, 'y', 1, '6021', 20190430, 2, '支付宝充值手续费', 6, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (25, '602102', 2, 'y', 1, '6021', 20190430, 2, '微信充值手续费', 6, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (26, '602103', 2, 'n', 1, '6021', 20190430, 2, '银联充值手续费', 6, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (27, '6601', 2, 'y', 0, NULL, 20190430, 1, '销售费用', 6, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (28, '660101', 2, 'y', 1, '6601', 20190430, 2, '折扣优惠款', 6, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (29, '660102', 2, 'y', 1, '6601', 20190430, 2, '积分抵扣款', 6, '{tenantid}');
+INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
+VALUES (30, '6602', 2, 'y', 1, NULL, 20190430, 1, '管理费收入', 6, '{tenantid}');
 
 
 
-INSERT INTO "tb_sourcetype" ("sourcetype_id", "sourceType", "checkable", "paydesc", "enable", "charge_enable",
+INSERT INTO "tb_sourcetype" ("sourcetype_id", "sourcetype", "checkable", "paydesc", "enable", "charge_enable",
 "consume_enable", "anonymous_enable", "reversable", "tenantid")
 VALUES ('D3820D49DACA49199E36537F6719665F', 'citizenCard', 't', '大理市民卡', 't', 'f', 't', 'f', 't', '{tenantid}');
-INSERT INTO "tb_sourcetype" ("sourcetype_id", "sourceType", "checkable", "paydesc", "enable", "charge_enable",
+INSERT INTO "tb_sourcetype" ("sourcetype_id", "sourcetype", "checkable", "paydesc", "enable", "charge_enable",
 "consume_enable", "anonymous_enable", "reversable", "tenantid")
 VALUES ('0997477F40904AD1A2E37FD15345CE00', 'balance', 'f', '账户余额', 't', 'f', 't', 'f', 't', '{tenantid}');
-INSERT INTO "tb_sourcetype" ("sourcetype_id", "sourceType", "checkable", "paydesc", "enable", "charge_enable",
+INSERT INTO "tb_sourcetype" ("sourcetype_id", "sourcetype", "checkable", "paydesc", "enable", "charge_enable",
 "consume_enable", "anonymous_enable", "reversable", "tenantid")
 VALUES ('F0CA47ADC0F24DFCA0D95DF4136CC2D0', 'thirdpart', 'f', '其他第三方支付', 't', 't', 'f', 'f', 'f', '{tenantid}');
-INSERT INTO "tb_sourcetype" ("sourcetype_id", "sourceType", "checkable", "paydesc", "enable", "charge_enable",
+INSERT INTO "tb_sourcetype" ("sourcetype_id", "sourcetype", "checkable", "paydesc", "enable", "charge_enable",
 "consume_enable", "anonymous_enable", "reversable", "tenantid")
 VALUES ('F5B344726FA24BD896E70DEE3D3F46CA', 'yktpay', 't', '一卡通支付', 't', 't', 't', 't', 't', '{tenantid}');
-INSERT INTO "tb_sourcetype" ("sourcetype_id", "sourceType", "checkable", "paydesc", "enable", "charge_enable",
+INSERT INTO "tb_sourcetype" ("sourcetype_id", "sourcetype", "checkable", "paydesc", "enable", "charge_enable",
 "consume_enable", "anonymous_enable", "reversable", "tenantid")
 VALUES ('28EE54CD3B044CC197D6C5B0E309F8B8', 'alipay', 't', '支付宝', 't', 't', 't', 't', 'f', '{tenantid}');
-INSERT INTO "tb_sourcetype" ("sourcetype_id", "sourceType", "checkable", "paydesc", "enable", "charge_enable",
+INSERT INTO "tb_sourcetype" ("sourcetype_id", "sourcetype", "checkable", "paydesc", "enable", "charge_enable",
 "consume_enable", "anonymous_enable", "reversable", "tenantid")
 VALUES ('DAEF88B54B684347B2B83940C38C7671', 'wechat', 't', '微信支付', 't', 't', 't', 't', 'f', '{tenantid}');
 
diff --git a/payapi/src/main/resources/templates/system/param/sourcetype.html b/payapi/src/main/resources/templates/system/param/sourcetype.html
index a288eea..32ed15d 100644
--- a/payapi/src/main/resources/templates/system/param/sourcetype.html
+++ b/payapi/src/main/resources/templates/system/param/sourcetype.html
@@ -164,7 +164,7 @@
         form.on('switch(enable-tpl-state)', function (obj) {
             var token = $("meta[name='_csrf_token']").attr("value");
             admin.go('[[@{/param/updatesourcetypestate}]]', {
-                sourceType: obj.elem.value,
+                sourcetype: obj.elem.value,
                 state: obj.elem.checked,
                 _csrf: token
             }, function (data) {
@@ -215,7 +215,7 @@
 
         function updatePaytypeState(obj, optype, token) {
             admin.go('[[@{/param/updatesourcetypestate}]]', {
-                sourceType: obj.elem.value,
+                sourcetype: obj.elem.value,
                 state: obj.elem.checked,
                 optype: optype,
                 _csrf: token
@@ -242,7 +242,7 @@
             var row = obj.data; //得到所在行所有键值
             var newval = obj.value; //得到修改后的值
             admin.go('[[@{/param/updatesourcetypename}]]', {
-                sourceType: row.sourceType,
+               sourcetype: row.sourceType,
                 paydesc: newval,
                 _csrf: $("meta[name='_csrf_token']").attr("value")
             }, function (data) {
@@ -269,7 +269,7 @@
                 if (confirm("确定要删除支付方式[" + data.sourceType + "_" + data.paydesc + "]吗？")) {
                     layer.load(2);
                     admin.go('[[@{/param/deletesourcetype}]]', {
-                        sourceType: data.sourceType,
+                       sourcetype: data.sourceType,
                         _csrf: $("meta[name='_csrf_token']").attr("value")
                     }, function (data) {
                         console.log(data.code);
@@ -294,7 +294,7 @@
             }else if('config' ===obj.event){
                 admin.popupCenter({
                     title: "配置参数【" + data.sourceType + "_" + data.paydesc + "】",
-                    path: '[[@{/param/load4sourcetypeconfig}]]?sourceType='+data.sourceType,
+                    path: '[[@{/param/load4sourcetypeconfig}]]?sourcetype='+data.sourceType,
                     area: '800px',
                     finish: function () {
                         table.reload('sourcetypeTable');
diff --git a/payapi/src/main/resources/templates/system/param/sourcetypeconfig.html b/payapi/src/main/resources/templates/system/param/sourcetypeconfig.html
index 502a3be..5d51626 100644
--- a/payapi/src/main/resources/templates/system/param/sourcetypeconfig.html
+++ b/payapi/src/main/resources/templates/system/param/sourcetypeconfig.html
@@ -1,6 +1,6 @@
 <form id="sourceType-config-form" lay-filter="sourceType-config-form" class="layui-form model-form">
     <div class="layui-form-item" style="display: none;">
-        <input type="hidden" class="layui-input" id="hid_sourcetype" th:value="${sourceType}"/>
+        <input type="hidden" class="layui-input" id="hid_sourcetype" th:value="${sourcetype}"/>
     </div>
 
     <div class="layui-form-item" style="text-align: center;" th:if="${configlist.size()} le 0">
diff --git a/payapi/src/main/resources/templates/system/param/sourcetypeform.html b/payapi/src/main/resources/templates/system/param/sourcetypeform.html
index f3650db..f99ad4c 100644
--- a/payapi/src/main/resources/templates/system/param/sourcetypeform.html
+++ b/payapi/src/main/resources/templates/system/param/sourcetypeform.html
@@ -2,8 +2,8 @@
     <div class="layui-form-item">
         <label class="layui-form-label">支付方式</label>
         <div class="layui-input-block">
-            <input name="sourceType" placeholder="请输入支付方式代码" type="text" class="layui-input" maxlength="20"
-                   lay-verify="required|sourceType" required/>
+            <input name="sourcetype" placeholder="请输入支付方式代码" type="text" class="layui-input" maxlength="20"
+                   lay-verify="required|sourcetype" required/>
         </div>
     </div>
     <div class="layui-form-item">
