From 07af7bd2217050ed0df8a0c154ba1a61692adcb9 Mon Sep 17 00:00:00 2001
From: luqingyang <lqy5492@163.com>
Date: 星期三, 25 十月 2023 16:36:18 +0800
Subject: [PATCH] 物品管理、物品分类、机构、用户、缓存 相关代码

---
 consum-base/src/main/java/com/consum/base/controller/FinSysTenantUserController.java  |  878 ++++++++++
 consum-model-pojo/src/main/java/com/consum/model/po/BaseGoodsTemplate_mapper.java     |   52 
 consum-base/src/main/java/com/consum/base/service/FinSysTenantUserServiceImpl.java    |  386 ++++
 consum-base/src/main/java/com/consum/base/config/RedisFinCacheConfig.java             |   85 
 consum-base/src/main/java/com/consum/base/pojo/FinSysTenantUserUpdParam.java          |   40 
 consum-model-pojo/src/main/java/com/consum/model/po/FinSysTenantRegion_mapper.java    |  731 ++++++++
 consum-base/src/main/java/com/consum/base/util/FinSysTenantUtils.java                 |   60 
 consum-base/src/main/java/com/consum/base/cache/RedisFinSysTenantCache.java           |  100 +
 consum-base/src/main/java/com/consum/base/support/FinSysTenantGeneratorTow.java       |   21 
 consum-base/src/main/java/com/consum/base/cache/LocalFinOrgCache.java                 |   68 
 consum-base/src/main/java/com/consum/base/support/FinSysTenantGenerator.java          |   21 
 consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java |   32 
 consum-base/src/main/java/com/consum/base/controller/BaseCategoryController.java      |    2 
 consum-model-pojo/src/main/java/com/consum/model/po/FinSysTenantRegion.java           |  920 ++++++++++
 consum-base/src/main/java/com/consum/base/service/BaseGoodsModelsServiceImpl.java     |   75 
 consum-base/src/main/java/com/consum/base/controller/BaseGoodsModelsController.java   |  103 +
 consum-base/src/main/java/com/consum/base/service/BaseCategoryServiceImpl.java        |    4 
 consum-base/src/main/java/com/consum/base/cache/RedisFinOrgCache.java                 |   66 
 consum-base/src/main/java/com/consum/base/cache/LocalFinSysTenantCache.java           |   76 
 consum-model-pojo/src/main/java/com/consum/model/po/BaseGoodsTemplate.java            |   68 
 consum-base/src/main/java/com/consum/base/cache/RedisFinSysTenantUserCache.java       |   82 
 consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java      |  536 +++++
 consum-base/src/main/java/com/consum/base/config/LocalFinCacheConfig.java             |   71 
 consum-model-pojo/src/main/java/com/consum/model/vo/FinSysTenantUserResult.java       |   38 
 consum-base/src/main/java/com/consum/base/pojo/FinSysTenantUserSearchParam.java       |  154 +
 consum-base/src/main/java/com/consum/base/cache/LocalFinSysTenantUserCache.java       |   67 
 consum-base/src/main/java/com/consum/base/cache/LocalTokenCache.java                  |   54 
 consum-base/src/main/java/com/consum/base/service/BaseGoodsTemplateServiceImpl.java   |   26 
 consum-base/src/main/java/com/consum/base/service/FinOrgServiceImpl.java              |  103 +
 consum-base/src/main/java/com/consum/base/service/FinSysTenantServiceImpl.java        |  264 ++
 30 files changed, 5,045 insertions(+), 138 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/cache/LocalFinOrgCache.java b/consum-base/src/main/java/com/consum/base/cache/LocalFinOrgCache.java
new file mode 100644
index 0000000..b5ac8a2
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/cache/LocalFinOrgCache.java
@@ -0,0 +1,68 @@
+package com.consum.base.cache;
+
+import com.consum.base.Constants;
+import com.consum.base.FinOrgCacheProvider;
+import com.consum.base.service.FinOrgServiceImpl;
+import com.consum.model.po.FinSysOrg;
+import com.walker.cache.AbstractCacheProvider;
+import com.walker.cache.Cache;
+import com.walker.infrastructure.utils.StringUtils;
+
+import java.util.List;
+
+/**
+ * 鏈湴杩愮淮鏈烘瀯缂撳瓨瀹氫箟銆�
+ * <p>娉ㄦ剰锛氬彧鏈夊湪娴嬭瘯寮�鍙戜腑浣跨敤璇ュ璞★紝鐢熶骇鐜璇烽厤缃负Redis鏂瑰紡銆�</p>
+ * @author 鏃跺厠鑻�
+ * @date 2023-07-05
+ */
+public class LocalFinOrgCache extends AbstractCacheProvider<FinSysOrg> implements FinOrgCacheProvider {
+
+    @Override
+    public FinSysOrg get(String orgCode) {
+        return this.getCacheData(orgCode);
+    }
+
+    @Override
+    public void save(FinSysOrg e) {
+        this.putCacheData(e.getOrgCode(), e);
+    }
+
+    @Override
+    public void update(FinSysOrg e) {
+        this.updateCacheData(e.getOrgCode(), e);
+    }
+
+    @Override
+    public void remove(String orgCode) {
+        this.removeCacheData(orgCode);
+    }
+
+    @Override
+    protected int loadDataToCache(Cache cache) {
+        List<FinSysOrg> hosts = this.finOrgService.selectAll(new FinSysOrg());
+        if(!StringUtils.isEmptyList(hosts)){
+            for(FinSysOrg h : hosts){
+                cache.put(h.getOrgCode(), h);
+            }
+            return hosts.size();
+        }
+        return 0;
+    }
+
+    @Override
+    public String getProviderName() {
+        return Constants.CACHE_NAME_FIN_ORG;
+    }
+
+    @Override
+    public Class<?> getProviderType() {
+        return FinSysOrg.class;
+    }
+
+    public void setFinOrgService(FinOrgServiceImpl finOrgService) {
+        this.finOrgService = finOrgService;
+    }
+
+    private FinOrgServiceImpl finOrgService;
+}
diff --git a/consum-base/src/main/java/com/consum/base/cache/LocalFinSysTenantCache.java b/consum-base/src/main/java/com/consum/base/cache/LocalFinSysTenantCache.java
new file mode 100644
index 0000000..1897ee2
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/cache/LocalFinSysTenantCache.java
@@ -0,0 +1,76 @@
+package com.consum.base.cache;
+
+import com.consum.base.Constants;
+import com.consum.base.FinSysTenantCacheProvider;
+import com.consum.base.service.FinSysTenantServiceImpl;
+import com.consum.model.po.FinSysTenant;
+import com.walker.cache.AbstractCacheProvider;
+import com.walker.cache.Cache;
+import com.walker.infrastructure.utils.StringUtils;
+
+import java.util.List;
+
+/**
+ * 鍖哄垝缂撳瓨
+ * @浣滆�咃細power
+ * @鏃堕棿锛�2023/7/20 20:25
+ */
+public class LocalFinSysTenantCache extends AbstractCacheProvider<FinSysTenant> implements FinSysTenantCacheProvider {
+    @Override
+    public FinSysTenant get(String code) {
+        return this.getCacheData(code);
+    }
+
+    @Override
+    public void save(FinSysTenant e) {
+        this.putCacheData(e.getCode(), e);
+    }
+
+    @Override
+    public void update(FinSysTenant e) {
+        this.updateCacheData(e.getCode(), e);
+    }
+
+    @Override
+    public void remove(String code) {
+        this.removeCacheData(code);
+    }
+
+    @Override
+    public FinSysTenant getById(String id) {
+        throw new UnsupportedOperationException("鏈湴缂撳瓨鏂规硶鏆傛椂鏃犻渶瀹炵幇!");
+    }
+
+    @Override
+    public List<FinSysTenant> selectAll() {
+        return this.finSysTenantService.selectAll(new FinSysTenant());
+    }
+
+    @Override
+    protected int loadDataToCache(Cache cache) {
+        List<FinSysTenant> hosts = this.finSysTenantService.selectAll(new FinSysTenant());
+        if(!StringUtils.isEmptyList(hosts)){
+            for(FinSysTenant h : hosts){
+                cache.put(h.getCode(), h);
+            }
+            return hosts.size();
+        }
+        return 0;
+    }
+
+    @Override
+    public String getProviderName() {
+        return Constants.CACHE_NAME_FIN_TENANT;
+    }
+
+    @Override
+    public Class<?> getProviderType() {
+        return FinSysTenant.class;
+    }
+
+    public void setFinSysTenantService(FinSysTenantServiceImpl finSysTenantService) {
+        this.finSysTenantService = finSysTenantService;
+    }
+
+    private FinSysTenantServiceImpl finSysTenantService;
+}
diff --git a/consum-base/src/main/java/com/consum/base/cache/LocalFinSysTenantUserCache.java b/consum-base/src/main/java/com/consum/base/cache/LocalFinSysTenantUserCache.java
new file mode 100644
index 0000000..f605002
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/cache/LocalFinSysTenantUserCache.java
@@ -0,0 +1,67 @@
+package com.consum.base.cache;
+
+import com.consum.base.Constants;
+import com.consum.base.FinSysTenantUserCacheProvider;
+import com.consum.base.service.FinSysTenantUserServiceImpl;
+import com.consum.model.po.FinSysTenantUser;
+import com.walker.cache.AbstractCacheProvider;
+import com.walker.cache.Cache;
+import com.walker.infrastructure.utils.StringUtils;
+
+import java.util.List;
+
+public class LocalFinSysTenantUserCache extends AbstractCacheProvider<FinSysTenantUser> implements FinSysTenantUserCacheProvider {
+
+    @Override
+    public FinSysTenantUser get(String userId) {
+        return this.getCacheData(userId);
+    }
+
+    @Override
+    public void save(FinSysTenantUser e) {
+        this.putCacheData(String.valueOf(e.getSysUserId()), e);
+    }
+
+    @Override
+    public void update(FinSysTenantUser e) {
+        this.updateCacheData(String.valueOf(e.getSysUserId()), e);
+    }
+
+    @Override
+    public void remove(String userId) {
+        this.removeCacheData(userId);
+    }
+
+    @Override
+    public FinSysTenantUser getByUserId(String userId) {
+        return this.getCacheData(userId);
+    }
+
+    @Override
+    protected int loadDataToCache(Cache cache) {
+        List<FinSysTenantUser> hosts = this.finSysTenantUserService.selectAll(new FinSysTenantUser());
+        if(!StringUtils.isEmptyList(hosts)){
+            for(FinSysTenantUser h : hosts){
+                cache.put(String.valueOf(h.getSysUserId()), h);
+            }
+            return hosts.size();
+        }
+        return 0;
+    }
+
+    @Override
+    public String getProviderName() {
+        return Constants.CACHE_NAME_FIN_TENANT_USER;
+    }
+
+    @Override
+    public Class<?> getProviderType() {
+        return FinSysTenantUser.class;
+    }
+
+    public void setFinSysTenantUserService(FinSysTenantUserServiceImpl finSysTenantUserService) {
+        this.finSysTenantUserService = finSysTenantUserService;
+    }
+
+    private FinSysTenantUserServiceImpl finSysTenantUserService;
+}
diff --git a/consum-base/src/main/java/com/consum/base/cache/LocalTokenCache.java b/consum-base/src/main/java/com/consum/base/cache/LocalTokenCache.java
new file mode 100644
index 0000000..38f18e2
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/cache/LocalTokenCache.java
@@ -0,0 +1,54 @@
+package com.consum.base.cache;
+
+import com.consum.base.Constants;
+import com.consum.base.TokenCacheProvider;
+import com.consum.base.pojo.TokenVo;
+import com.walker.cache.AbstractCacheProvider;
+import com.walker.cache.Cache;
+
+public class LocalTokenCache extends AbstractCacheProvider<TokenVo> implements TokenCacheProvider {
+
+    @Override
+    public TokenVo get(String userCode) {
+        return this.getCacheData(userCode);
+    }
+
+    @Override
+    public void save(TokenVo e) {
+        this.putCacheData(e.getToken(), e);
+    }
+
+    @Override
+    public void update(TokenVo e) {
+        this.updateCacheData(e.getToken().toString(), e);
+    }
+
+    @Override
+    public void remove(String userCode) {
+        this.removeCacheData(userCode);
+    }
+
+
+    @Override
+    protected int loadDataToCache(Cache cache) {
+        //List<FinSysUser> hosts = this.finUserService.selectAll(new FinSysUser());
+        //if(!StringUtils.isEmptyList(hosts)){
+        //    for(FinSysUser h : hosts){
+        //        cache.put(h.getOriginCode(), h);
+        //    }
+        //    return hosts.size();
+        //}
+        return 0;
+    }
+
+    @Override
+    public String getProviderName() {
+        return Constants.CACHE_NAME_FIN_USER;
+    }
+
+    @Override
+    public Class<?> getProviderType() {
+        return TokenVo.class;
+    }
+
+}
diff --git a/consum-base/src/main/java/com/consum/base/cache/RedisFinOrgCache.java b/consum-base/src/main/java/com/consum/base/cache/RedisFinOrgCache.java
new file mode 100644
index 0000000..d194649
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/cache/RedisFinOrgCache.java
@@ -0,0 +1,66 @@
+package com.consum.base.cache;
+
+import com.consum.base.Constants;
+import com.consum.base.FinOrgCacheProvider;
+import com.consum.base.service.FinOrgServiceImpl;
+import com.consum.model.po.FinSysOrg;
+import com.walker.support.redis.cache.RedisCacheProvider;
+
+/**
+ * Redis瀹炵幇鐨勮繍缁寸郴缁熸満鏋勫畾涔夈��
+ * @author 鏃跺厠鑻�
+ * @date 2023-07-05
+ */
+public class RedisFinOrgCache extends RedisCacheProvider<FinSysOrg> implements FinOrgCacheProvider {
+
+    public RedisFinOrgCache(){
+        this.setUseRedis(true);
+        this.setLoadPage(false);
+    }
+
+    @Override
+    public FinSysOrg get(String orgCode) {
+        FinSysOrg finSysOrg = this.getCacheData(orgCode);
+        if(finSysOrg == null){
+            finSysOrg = this.finOrgService.queryOneByCode(orgCode);
+            if(finSysOrg == null){
+                logger.warn("浠庢暟鎹簱鏈煡璇㈠埌鏈烘瀯锛屾棤娉曠紦瀛橈紝orgCode = {}", orgCode);
+                return null;
+            }
+            this.putCacheData(orgCode, finSysOrg);
+        }
+        return finSysOrg;
+    }
+
+    @Override
+    public void save(FinSysOrg e) {
+        this.putCacheData(e.getOrgCode(), e);
+    }
+
+    @Override
+    public void update(FinSysOrg e) {
+        this.updateCacheData(e.getOrgCode(), e);
+    }
+
+    @Override
+    public void remove(String orgCode) {
+        this.removeCacheData(orgCode);
+    }
+
+    @Override
+    public String getProviderName() {
+        return Constants.CACHE_NAME_FIN_ORG;
+    }
+
+    @Override
+    public Class<?> getProviderType() {
+        return FinSysOrg.class;
+    }
+
+    public void setFinOrgService(FinOrgServiceImpl finOrgService) {
+        this.finOrgService = finOrgService;
+    }
+
+    private FinOrgServiceImpl finOrgService;
+
+}
diff --git a/consum-base/src/main/java/com/consum/base/cache/RedisFinSysTenantCache.java b/consum-base/src/main/java/com/consum/base/cache/RedisFinSysTenantCache.java
new file mode 100644
index 0000000..ab9b570
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/cache/RedisFinSysTenantCache.java
@@ -0,0 +1,100 @@
+package com.consum.base.cache;
+
+import com.consum.base.Constants;
+import com.consum.base.FinSysTenantCacheProvider;
+import com.consum.base.service.FinSysTenantServiceImpl;
+import com.consum.model.po.FinSysTenant;
+import com.walker.infrastructure.ApplicationRuntimeException;
+import com.walker.infrastructure.utils.JsonUtils;
+import com.walker.support.redis.cache.RedisCacheProvider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 鍖哄垝缂撳瓨
+ * @浣滆�咃細power
+ * @鏃堕棿锛�2023/7/20 20:35
+ */
+public class RedisFinSysTenantCache extends RedisCacheProvider<FinSysTenant> implements FinSysTenantCacheProvider {
+    public RedisFinSysTenantCache(){
+        this.setUseRedis(true);
+        this.setLoadPage(false);
+    }
+    @Override
+    public FinSysTenant get(String code) {
+        FinSysTenant finSysTenant = this.getCacheData(code);
+        if(finSysTenant == null){
+            finSysTenant = this.finSysTenantService.queryOneByCode(code);
+            if(finSysTenant == null){
+                logger.warn("浠庢暟鎹簱鏈煡璇㈠埌鍖哄垝锛屾棤娉曠紦瀛橈紝code = {}", code);
+                return null;
+            }
+
+            // 2023-07-26锛屾椂鍏嬭嫳锛屽尯鍒掔浉瀵瑰浐瀹氾紝鏃犻渶璁剧疆澶辨晥鏃堕棿锛岃浠栨案杩滃瓨鍌ㄥ惂銆�
+//            this.putCacheData(code, finSysTenant,7200);
+            this.putCacheData(code, finSysTenant);
+        }
+        return finSysTenant;
+    }
+
+    @Override
+    public void save(FinSysTenant e) {
+        this.putCacheData(e.getCode(), e);
+    }
+
+    @Override
+    public void update(FinSysTenant e) {
+        this.updateCacheData(e.getCode(), e);
+    }
+
+    @Override
+    public void remove(String code) {
+        this.removeCacheData(code);
+    }
+
+    @Override
+    public FinSysTenant getById(String id) {
+        FinSysTenant finSysTenant = this.getCacheData(id);
+        if(finSysTenant == null){
+            finSysTenant = this.finSysTenantService.get(new FinSysTenant(Long.parseLong(id)));
+            if(finSysTenant == null){
+                logger.warn("浠庢暟鎹簱鏈煡璇㈠埌鍖哄垝锛屾棤娉曠紦瀛橈紝id = {}", id);
+                return null;
+            }
+            this.putCacheData(finSysTenant.getId().toString(), finSysTenant);
+        }
+        return finSysTenant;
+    }
+
+    @Override
+    public List<FinSysTenant> selectAll() {
+        List<FinSysTenant> allTree = new ArrayList<>();
+        FinSysTenant temp = null;
+        for(String value : this.getCache().getIterator(null)) {
+            try {
+                temp = JsonUtils.jsonStringToObject(value, FinSysTenant.class);
+            } catch (Exception ex) {
+                throw new ApplicationRuntimeException("redis瀛樺偍'EbProductBrand'瑙f瀽閿欏惔:"+ value,ex);
+            }
+            allTree.add(temp);
+        }
+        return allTree;
+    }
+
+    @Override
+    public String getProviderName() {
+        return Constants.CACHE_NAME_FIN_TENANT;
+    }
+
+    @Override
+    public Class<?> getProviderType() {
+        return FinSysTenant.class;
+    }
+
+    public void setFinSysTenantService(FinSysTenantServiceImpl finSysTenantService) {
+        this.finSysTenantService = finSysTenantService;
+    }
+
+    private FinSysTenantServiceImpl finSysTenantService;
+}
diff --git a/consum-base/src/main/java/com/consum/base/cache/RedisFinSysTenantUserCache.java b/consum-base/src/main/java/com/consum/base/cache/RedisFinSysTenantUserCache.java
new file mode 100644
index 0000000..3ad382f
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/cache/RedisFinSysTenantUserCache.java
@@ -0,0 +1,82 @@
+package com.consum.base.cache;
+
+
+import com.consum.base.Constants;
+import com.consum.base.FinSysTenantUserCacheProvider;
+import com.consum.base.service.FinSysTenantUserServiceImpl;
+import com.consum.model.po.FinSysTenantUser;
+import com.walker.support.redis.cache.RedisCacheProvider;
+
+/**
+ * Redis瀹炵幇鐨勫悗鍙扮櫥褰曠敤鎴�
+ * @author 鐜嬫兜
+ * @date 2023-07-18
+ */
+public class RedisFinSysTenantUserCache extends RedisCacheProvider<FinSysTenantUser> implements FinSysTenantUserCacheProvider {
+
+    public RedisFinSysTenantUserCache(){
+        this.setUseRedis(true);
+        this.setLoadPage(false);
+    }
+
+    @Override
+    public FinSysTenantUser get(String userId) {
+        FinSysTenantUser finSysTenantUser = this.getCacheData(userId);
+        if(finSysTenantUser == null){
+            finSysTenantUser = this.finSysTenantUserService.queryOneByUserId(userId);
+            if(finSysTenantUser == null){
+                logger.warn("浠庢暟鎹簱鏈煡璇㈠埌鐢ㄦ埛锛屾棤娉曠紦瀛橈紝userId = {}", userId);
+                return null;
+            }
+            this.putCacheData(userId, finSysTenantUser);
+        }
+        return finSysTenantUser;
+    }
+
+    @Override
+    public void save(FinSysTenantUser e) {
+        this.putCacheData(String.valueOf(e.getSysUserId()), e);
+        this.putCacheData(String.valueOf(e.getId()), e);
+    }
+
+    @Override
+    public void update(FinSysTenantUser e) {
+        this.updateCacheData(String.valueOf(e.getSysUserId()), e);
+        this.updateCacheData(String.valueOf(e.getId()), e);
+    }
+
+    @Override
+    public void remove(String userId) {
+        this.removeCacheData(userId);
+    }
+
+    @Override
+    public FinSysTenantUser getByUserId(String userId) {
+        FinSysTenantUser finSysTenantUser = this.getCacheData(userId);
+        if(finSysTenantUser == null){
+            finSysTenantUser = this.finSysTenantUserService.queryOneById(userId);
+            if(finSysTenantUser == null){
+                logger.warn("浠庢暟鎹簱鏈煡璇㈠埌鐢ㄦ埛锛屾棤娉曠紦瀛橈紝userId = {}", userId);
+                return null;
+            }
+            this.putCacheData(userId, finSysTenantUser);
+        }
+        return finSysTenantUser;
+    }
+
+    @Override
+    public String getProviderName() {
+        return Constants.CACHE_NAME_FIN_TENANT_USER;
+    }
+
+    @Override
+    public Class<?> getProviderType() {
+        return FinSysTenantUser.class;
+    }
+
+    public void setFinSysTenantUserService(FinSysTenantUserServiceImpl finSysTenantUserService) {
+        this.finSysTenantUserService = finSysTenantUserService;
+    }
+
+    private FinSysTenantUserServiceImpl finSysTenantUserService;
+}
diff --git a/consum-base/src/main/java/com/consum/base/config/LocalFinCacheConfig.java b/consum-base/src/main/java/com/consum/base/config/LocalFinCacheConfig.java
new file mode 100644
index 0000000..d152b91
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/config/LocalFinCacheConfig.java
@@ -0,0 +1,71 @@
+package com.consum.base.config;
+
+import com.consum.base.FinOrgCacheProvider;
+import com.consum.base.FinSysTenantCacheProvider;
+import com.consum.base.FinSysTenantUserCacheProvider;
+import com.consum.base.TokenCacheProvider;
+import com.consum.base.cache.LocalFinOrgCache;
+import com.consum.base.cache.LocalFinSysTenantCache;
+import com.consum.base.cache.LocalFinSysTenantUserCache;
+import com.consum.base.cache.LocalTokenCache;
+import com.consum.base.service.FinOrgServiceImpl;
+import com.consum.base.service.FinSysTenantServiceImpl;
+import com.consum.base.service.FinSysTenantUserServiceImpl;
+import com.iplatform.base.config.CacheConfiguration;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@ConditionalOnProperty(prefix = "iplatform.cache", name = "redis-enabled", havingValue = "false", matchIfMissing = true)
+public class LocalFinCacheConfig extends CacheConfiguration {
+
+    /**
+     * 閰嶇疆涓氬姟鏈烘瀯缂撳瓨銆�
+     * @param finOrgService
+     * @return
+     * @date 2023-07-05
+     */
+    @Bean
+    public FinOrgCacheProvider finOrgCacheProvider(FinOrgServiceImpl finOrgService){
+        LocalFinOrgCache cache = new LocalFinOrgCache();
+        cache.setFinOrgService(finOrgService);
+        return cache;
+    }
+
+    /**
+     * @Description 閰嶇疆骞冲彴鐧诲綍鐢ㄦ埛缂撳瓨
+     * @Author wh
+     * @Date 2023/7/18 13:36
+     */
+    @Bean
+    public FinSysTenantUserCacheProvider finSysTenantUserCacheProvider(FinSysTenantUserServiceImpl finSysTenantUserService){
+        LocalFinSysTenantUserCache cache = new LocalFinSysTenantUserCache();
+        cache.setFinSysTenantUserService(finSysTenantUserService);
+        return cache;
+    }
+
+
+    /**
+     *   姹熷崡鐧诲綍鐢ㄦ埛缂撳瓨
+     * @return
+     */
+    @Bean
+    public TokenCacheProvider tokenCacheProvider(){
+        LocalTokenCache cache = new LocalTokenCache();
+        return cache;
+    }
+
+    /**
+     * 閰嶇疆涓氬姟鏈烘瀯缂撳瓨銆�
+     * @param finSysTenantService
+     * @return
+     * @date 2023-07-05
+     */
+    @Bean
+    public FinSysTenantCacheProvider finSysTenantCacheProvider(FinSysTenantServiceImpl finSysTenantService){
+        LocalFinSysTenantCache cache = new LocalFinSysTenantCache();
+        cache.setFinSysTenantService(finSysTenantService);
+        return cache;
+    }
+}
diff --git a/consum-base/src/main/java/com/consum/base/config/RedisFinCacheConfig.java b/consum-base/src/main/java/com/consum/base/config/RedisFinCacheConfig.java
new file mode 100644
index 0000000..7bc787f
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/config/RedisFinCacheConfig.java
@@ -0,0 +1,85 @@
+package com.consum.base.config;
+
+import com.consum.base.FinOrgCacheProvider;
+import com.consum.base.FinSysTenantCacheProvider;
+import com.consum.base.FinSysTenantUserCacheProvider;
+import com.consum.base.TokenCacheProvider;
+import com.consum.base.cache.RedisFinOrgCache;
+import com.consum.base.cache.RedisFinSysTenantCache;
+import com.consum.base.cache.RedisFinSysTenantUserCache;
+import com.consum.base.cache.RedisTokenCache;
+import com.consum.base.service.FinOrgServiceImpl;
+import com.consum.base.service.FinSysTenantServiceImpl;
+import com.consum.base.service.FinSysTenantUserServiceImpl;
+import com.iplatform.base.config.CacheConfiguration;
+import com.walker.support.redis.RedisHelper;
+import com.walker.support.redis.cache.RedisCacheProvider;
+import org.springframework.boot.autoconfigure.AutoConfigureAfter;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@ConditionalOnProperty(prefix = "iplatform.cache", name = "redis-enabled", havingValue = "true", matchIfMissing = false)
+@ConditionalOnClass({RedisCacheProvider.class})
+@AutoConfigureAfter(RedisAutoConfiguration.class)
+public class RedisFinCacheConfig extends CacheConfiguration {
+
+    /**
+     * Redis瀹炵幇鐨勪笟鍔℃満鏋勭紦瀛橀厤缃��
+     * @param redisHelper
+     * @param finOrgService
+     * @return
+     * @date 2023-07-05
+     */
+    @Bean
+    public FinOrgCacheProvider finOrgCacheProvider(RedisHelper redisHelper, FinOrgServiceImpl finOrgService){
+        RedisFinOrgCache cache = new RedisFinOrgCache();
+        cache.setRedisHelper(redisHelper);
+        cache.setFinOrgService(finOrgService);
+        return cache;
+    }
+
+    /**
+     * @Description 閰嶇疆骞冲彴鐧诲綍鐢ㄦ埛缂撳瓨
+     * @Author wh
+     * @Date 2023/7/18 13:38
+     */
+    @Bean
+    public FinSysTenantUserCacheProvider finSysTenantUserCacheProvider(RedisHelper redisHelper, FinSysTenantUserServiceImpl finSysTenantUserService){
+        RedisFinSysTenantUserCache cache = new RedisFinSysTenantUserCache();
+        cache.setRedisHelper(redisHelper);
+        cache.setFinSysTenantUserService(finSysTenantUserService);
+        return cache;
+    }
+
+    /**
+     * @Description 閰嶇疆骞冲彴鐧诲綍鐢ㄦ埛缂撳瓨
+     * @Author wh
+     * @Date 2023/7/18 13:38
+     */
+    @Bean
+    public TokenCacheProvider tokenCacheProvider(RedisHelper redisHelper){
+        RedisTokenCache cache = new RedisTokenCache();
+        cache.setRedisHelper(redisHelper);
+        return cache;
+    }
+
+    /**
+     * Redis瀹炵幇鐨勪笟鍔℃満鏋勭紦瀛橀厤缃��
+     * @param redisHelper
+     * @param finSysTenantService
+     * @return
+     * @date 2023-07-05
+     */
+    @Bean
+    public FinSysTenantCacheProvider finSysTenantCacheProvider(RedisHelper redisHelper, FinSysTenantServiceImpl finSysTenantService){
+        RedisFinSysTenantCache cache = new RedisFinSysTenantCache();
+        cache.setRedisHelper(redisHelper);
+        cache.setFinSysTenantService(finSysTenantService);
+        return cache;
+    }
+
+}
diff --git a/consum-base/src/main/java/com/consum/base/controller/BaseCategoryController.java b/consum-base/src/main/java/com/consum/base/controller/BaseCategoryController.java
index b975c77..a80b792 100644
--- a/consum-base/src/main/java/com/consum/base/controller/BaseCategoryController.java
+++ b/consum-base/src/main/java/com/consum/base/controller/BaseCategoryController.java
@@ -121,7 +121,7 @@
     }
 
     /**
-     * @Description 鏍规嵁鑺傜偣id鍒犻櫎鑺傜偣(閫昏緫鍒犻櫎)
+     * @Description 鏍规嵁id鍒犻櫎鐗╁搧鍒嗙被
      * @Author 鍗㈠簡闃�
      * @Date 2023/10/23
      */
diff --git a/consum-base/src/main/java/com/consum/base/controller/BaseGoodsModelsController.java b/consum-base/src/main/java/com/consum/base/controller/BaseGoodsModelsController.java
new file mode 100644
index 0000000..a1eb96a
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/controller/BaseGoodsModelsController.java
@@ -0,0 +1,103 @@
+package com.consum.base.controller;
+
+import com.consum.base.BaseController;
+import com.consum.base.pojo.BaseCategoryParam;
+import com.consum.base.service.BaseCategoryServiceImpl;
+import com.consum.base.service.BaseGoodsModelsServiceImpl;
+import com.consum.base.service.BaseGoodsTemplateServiceImpl;
+import com.consum.model.po.BaseCategory;
+import com.consum.model.po.BaseGoodsModels;
+import com.iplatform.model.po.S_user_core;
+import com.walker.db.page.GenericPager;
+import com.walker.infrastructure.utils.StringUtils;
+import com.walker.web.ResponseValue;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @Description 瑙勬牸鍨嬪彿
+ * @Author 鍗㈠簡闃�
+ * @Date 2023/10/25
+ */
+@RestController
+@RequestMapping("/pc/base/goods/models")
+public class BaseGoodsModelsController extends BaseController {
+
+    @Autowired
+    private BaseGoodsModelsServiceImpl baseGoodsModelsService;
+
+    /**
+     * @Description 瑙勬牸鍒楄〃鏌ヨ锛堟牴鎹墿鍝乮d鏌ヨ瑙勬牸鍨嬪彿锛�
+     * @Author 鍗㈠簡闃�
+     * @Date 2023/10/25
+     */
+    @GetMapping("/list")
+    public ResponseValue queryList(Long goodsTemplatesId) {
+        S_user_core currentUser = this.getCurrentUser();
+        if (currentUser == null) {
+            return ResponseValue.error("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�");
+        }
+        if (goodsTemplatesId == null) {
+            return ResponseValue.error("鐗╁搧id涓嶅瓨鍦�");
+        }
+        GenericPager<BaseGoodsModels> pager = this.baseGoodsModelsService.queryList(goodsTemplatesId);
+        return ResponseValue.success(pager);
+    }
+
+    /**
+     * @Description 鏂板
+     * @Author 鍗㈠簡闃�
+     * @Date 2023/10/23
+     */
+    @PostMapping("/add")
+    public ResponseValue add(@RequestBody BaseGoodsModels models) {
+        if (models.getGoodsTemplatesId() == null || StringUtils.isEmpty(models.getModelName()) || StringUtils.isEmpty(models.getUnit()) || models.getStates() == null) {
+            return ResponseValue.error("鍙傛暟閿欒");
+        }
+        //鍒ゆ柇鍚屼竴鐗╁搧妯℃澘id涓嬬殑 瑙勬牸鍨嬪彿鍚嶇О鏄惁閲嶅
+        BaseGoodsModels baseGoodsModels = this.baseGoodsModelsService.getByModelNameAndGoodsTemplatesId(models);
+        if (baseGoodsModels != null) {
+            return ResponseValue.error("瑙勬牸鍨嬪彿鍚嶇О宸插瓨鍦�");
+        }
+
+        int result = this.baseGoodsModelsService.add(models);
+        if (result > 0) return ResponseValue.success(1);
+        return ResponseValue.error("鏂板澶辫触锛�");
+    }
+
+    /**
+     * 淇敼鐘舵��
+     * @author 鍗㈠簡闃�
+     * @date 2023/10/25
+     */
+    @PostMapping("/updStatus")
+    public ResponseValue updateStatus(@RequestBody BaseGoodsModels models) {
+        if (models == null || models.getId() == null || models.getStates() == null) {
+            return ResponseValue.error("鍙傛暟閿欒");
+        }
+
+        int num = this.baseGoodsModelsService.updateStatus(models);
+        return num > 0 ? ResponseValue.success(1) : ResponseValue.error("淇敼澶辫触锛�");
+    }
+
+    /**
+     * @Description 鏍规嵁id鍒犻櫎瑙勬牸鍨嬪彿
+     * @Author 鍗㈠簡闃�
+     * @Date 2023/10/25
+     */
+    @DeleteMapping("/del")
+    public ResponseValue updateById(@RequestBody BaseGoodsModels models) {
+        if (models.getId() == null) {
+            return ResponseValue.error("瑙勬牸鍨嬪彿id涓虹┖");
+        }
+        int num = this.baseGoodsModelsService.updateById(models);
+
+        return num > 0 ? ResponseValue.success(1) : ResponseValue.error("鍒犻櫎澶辫触锛�");
+    }
+
+
+}
+
diff --git a/consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java b/consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java
index 94e042f..fb77aa9 100644
--- a/consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java
+++ b/consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java
@@ -99,5 +99,37 @@
         return num > 0 ? ResponseValue.success(1) : ResponseValue.error("缂栬緫澶辫触锛�");
     }
 
+    /**
+     * 淇敼鐘舵��
+     * @author 鍗㈠簡闃�
+     * @date 2023/10/25
+     */
+    //TODO 鐗╁搧鐨勭鐢ㄦ垨鍒犻櫎锛屼笉褰卞搷宸茬粡閲囪喘鍏ヨ繃搴撶殑鐗╁搧淇℃伅銆�
+    @PostMapping("/updStatus")
+    public ResponseValue updateStatus(@RequestBody BaseGoodsTemplate goodsTemplate) {
+        if (goodsTemplate == null || goodsTemplate.getId() == null || goodsTemplate.getStates() == null) {
+            return ResponseValue.error("鍙傛暟閿欒");
+        }
+
+        int num = this.baseGoodsTemplateService.updateStatus(goodsTemplate);
+        return num > 0 ? ResponseValue.success(1) : ResponseValue.error("淇敼澶辫触锛�");
+    }
+
+    /**
+     * @Description 鏍规嵁鐗╁搧id鍒犻櫎鐗╁搧
+     * @Author 鍗㈠簡闃�
+     * @Date 2023/10/25
+     */
+    //TODO 鐗╁搧鐨勭鐢ㄦ垨鍒犻櫎锛屼笉褰卞搷宸茬粡閲囪喘鍏ヨ繃搴撶殑鐗╁搧淇℃伅銆�
+    @DeleteMapping("/del")
+    public ResponseValue updateById(@RequestBody BaseGoodsTemplate goodsTemplate) {
+        if (goodsTemplate.getId() == null) {
+            return ResponseValue.error("鐗╁搧id涓虹┖");
+        }
+        int num = this.baseGoodsTemplateService.updateById(goodsTemplate,this.getCurrentUser());
+
+        return num > 0 ? ResponseValue.success(1) : ResponseValue.error("鍒犻櫎澶辫触锛�");
+    }
+
 }
 
diff --git a/consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java b/consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java
index 0eeb8e6..85fa9bd 100644
--- a/consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java
+++ b/consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java
@@ -1,72 +1,124 @@
 package com.consum.base.controller;
 
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.excel.exception.ExcelDataConvertException;
 import com.consum.base.BaseController;
 import com.consum.base.pojo.FinSysTenantParam;
 import com.consum.base.pojo.FinSysTenantSearchParam;
 import com.consum.base.service.FinSysTenantServiceImpl;
+import com.consum.base.service.FinSysTenantUserServiceImpl;
+import com.consum.base.util.FinSysTenantUtils;
 import com.consum.model.po.FinSysTenant;
 import com.consum.model.po.FinSysTenantUser;
+import com.consum.model.vo.FinSysTenantUserResult;
 import com.walker.db.page.GenericPager;
+import com.walker.infrastructure.tree.TreeNode;
 import com.walker.infrastructure.utils.StringUtils;
 import com.walker.web.ResponseValue;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.InputStreamResource;
+import org.springframework.core.io.Resource;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
-import java.util.HashMap;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URLEncoder;
+import java.util.*;
 
 /**
- * @Description 绯荤粺鏈烘瀯
- * @Author 鍗㈠簡闃�
- * @Date 2023/10/23
+ * @Description 鍖哄垝
+ * @Author wh
+ * @Date 2023/7/13 19:51
  */
 @RestController
 @RequestMapping("/pc/fin/sys/tenant")
 public class FinSysTenantController extends BaseController {
 
-    @Autowired
     private FinSysTenantServiceImpl finSysTenantService;
 
+    @Autowired
+    private FinSysTenantUserServiceImpl finSysTenantUserService;
+
+    @Autowired
+    public FinSysTenantController(FinSysTenantServiceImpl finSysTenantService) {
+        this.finSysTenantService = finSysTenantService;
+    }
+
+    @Value("${iplatform.file.file-root}")
+    private String filePath;
+
+    private boolean multiRoot = true;
+    private TreeNode dummyRoot = null;
+    private Map<Long, TreeNode> rootMap = new TreeMap();
+    private Map<Long, TreeNode> childMap = new TreeMap();
+    private long defaultParentId = 0L;
+
     /**
-     * 娣诲姞鏈烘瀯
-     * @author 鍗㈠簡闃�
-     * @date 2023/10/4
+     * @Description 鑾峰彇鍖哄垝鏍�
+     * @Author wh
+     * @Date 2023/7/11 11:15
      */
-    @PostMapping("/add")
-    public ResponseValue add(@RequestBody FinSysTenantParam param){
-        if (param == null) {
-            return ResponseValue.error("鍙傛暟涓虹┖");
+    @GetMapping("/select/tree_fin_tenant")
+    public ResponseValue listOrgRootTree() {
+        List<FinSysTenant> finSysTenantList = null;
+        FinSysTenantUser finSysTenantUser = new FinSysTenantUser();
+        finSysTenantUser.setSysUserId(this.getCurrentUser().getId());
+        List<FinSysTenantUser> finSysTenantUserList = finSysTenantUserService.select(finSysTenantUser);
+        FinSysTenantUser user = null; // 绯荤粺鐢ㄦ埛
+        FinSysTenant finSysTenant1 = null;
+        List<TreeNode> treeRootList = null; // 鏁板垪琛�
+        FinSysTenant finSysTenant = new FinSysTenant();
+        // 鑾峰彇鍦板尯鐖剁骇
+        finSysTenantList = this.finSysTenantService.queryForTree();
+        // 鏍规嵁鐧婚檰浜篿d鑾峰彇绯荤粺鐢ㄦ埛锛屽鏋滄湁绯荤粺鐢ㄦ埛鏃�
+        if (finSysTenantUserList.size() > 0) {
+            // 鑾峰彇褰撳墠鐢ㄦ埛淇℃伅
+            user = finSysTenantUserList.get(0);
+            String tenantId = user.getTenantId();
+            finSysTenant.setId(new Long(tenantId));
+            // 鏌ヨ鍖哄煙
+            List<FinSysTenant> select = finSysTenantService.select(finSysTenant);
+            if (select.size() > 0) {
+                finSysTenant1 = select.get(0);
+            }
         }
-        if (StringUtils.isEmpty(param.getCode())) {
-            return ResponseValue.error("鏈烘瀯缂栧彿涓虹┖");
-        }
-        if (StringUtils.isEmpty(param.getName())) {
-            return ResponseValue.error("鏈烘瀯鍚嶇О涓虹┖");
-        }
-        if (param.getParentId() == null) {
-            return ResponseValue.error("涓婄骇鏈烘瀯涓嶅瓨鍦�");
-        }
-        //鏍规嵁鏈烘瀯id鏌ヨ鏈烘瀯
-        FinSysTenant sysTenant = this.finSysTenantService.selectByTenantId(param.getCode());
-        if (sysTenant != null) {
-            return ResponseValue.error("鏈烘瀯缂栧彿宸插瓨鍦�");
-        }
-        String parentIdStr = param.getParentId() + "";
-        int lv = parentIdStr.length() / 3 + 1;
-        if (lv > 4) {
-            return ResponseValue.error("涓嶈兘鍒涘缓鏀眬浠ヤ笅鏈烘瀯");
+        if (finSysTenant1 != null) {
+            if (finSysTenant1.getLv() != 1 && finSysTenant1.getParentId() != 0 && user != null) {
+                rootMap.clear();
+                this.childMap.clear();
+                this.defaultParentId = new Long(user.getTenantId());
+                // 鏍规嵁鐖剁骇鑾峰彇瀛愰泦
+                setEntityList(finSysTenantList);
+                treeRootList = getTreeRootList();
+            } else {
+                treeRootList = FinSysTenantUtils.getFinSysTenantTree(finSysTenantList);
+            }
+        } else {
+            treeRootList = FinSysTenantUtils.getFinSysTenantTree(finSysTenantList);
         }
 
-        int num = this.finSysTenantService.addSysTenant(param,this.getCurrentUser(),lv);
-        if(num>0) return ResponseValue.success(1);
-        return ResponseValue.error("鎻掑叆澶辫触锛�");
+        if (StringUtils.isEmptyList(treeRootList)) {
+            logger.error("鏈壘鍒颁换浣曢《绾у尯鍒掓爲鍒楄〃: treeNodeList = null");
+        } else {
+            logger.debug(treeRootList.toString());
+        }
+        return ResponseValue.success(treeRootList);
     }
 
     /**
-     * @Description  鍒嗛〉鍒楄〃鏌ヨ
-     * @Author 鍗㈠簡闃�
-     * @Date 2023/10/24
+     * @Description 鍒嗛〉鍒楄〃鏌ヨ
+     * @Author llb
+     * @Date 2023/7/14 13:59
      */
-//    @RequestMapping("/select/list")
     @RequestMapping("/select/list")
     public ResponseValue allocatedList(FinSysTenantSearchParam param) {
         FinSysTenantUser sysInfo = getSysInfo();
@@ -103,5 +155,413 @@
         return ResponseValue.success(pager);
     }
 
-}
+    /**
+     * @Author 锛歱ower
+     * @Date 锛� 2023/7/20 10:58 鏌ヨ椤圭洰閰嶇疆涓� 鍙備笌鑼冨洿 锛堢渷/鍦板競;鍦板競锛� 璇ユ柟娉曞簲鏄叏灞�鍙
+     */
+    @GetMapping("/project/selectTreeServingByProject")
+    public ResponseValue selectTreeServingByProject() {
+        // 鐪佽繘鍏� 鏌ヨ 鐪佸拰鍦板競 锛涘湴甯傝繘鍏� 鏌ヨ鑷繁鍦板競
+        // TODO Long.valueOf(getSysInfo().getTenantId())
+        FinSysTenant finSysTenant =
+                this.finSysTenantService.get(new FinSysTenant(Long.valueOf(getSysInfo().getTenantId())));
+        if (finSysTenant.getLv() == 3) {
+            return ResponseValue.error("鍘垮尯绾у埆鏃犳硶鏌ョ湅");
+        }
+        List<FinSysTenant> finSysTenantList =
+                this.finSysTenantService.queryTreeById(finSysTenant.getId(), finSysTenant.getLv());
+        List<TreeNode> treeNodeList = new ArrayList<>();
+        // 鐪佹煡鏈韩鍙婁互涓� 甯傛煡鏈骇 鍘挎棤鏉冩煡鐪�
+        if (finSysTenant.getLv() == 1) {
+            treeNodeList = FinSysTenantUtils.getFinSysTenantTree(finSysTenantList);
+            if (StringUtils.isEmptyList(treeNodeList)) {
+                logger.error("鏈壘鍒颁换浣曢《绾у尯鍒掓爲鍒楄〃: treeNodeList = null");
+            } else {
+                logger.debug(treeNodeList.toString());
+            }
+        } else {
+            TreeNode treeNode = new TreeNode(finSysTenantList.get(0).getId(), finSysTenantList.get(0).getName(),
+                    new ArrayList<>(), finSysTenantList.get(0).getParentId(), finSysTenantList.get(0).getCode());
+            treeNodeList.add(treeNode);
+        }
+        return ResponseValue.success(treeNodeList);
+    }
 
+    /**
+     * @Author 锛歱ower
+     * @Date 锛� 2023/7/20 16:33 椤圭洰閰嶇疆 - 鑼冨洿 - 鏌ヨ鍘垮尯 锛堢渷鏌ヨ鎵�鏈� 鍦板競鏌ヨ鑷繁绠¤緰锛�
+     */
+    @GetMapping("/project/selectCounty")
+    public ResponseValue selectCounty() {
+        // 鐪佽繘鍏� 鏌ヨ 鐪佸拰鍦板競 锛涘湴甯傝繘鍏� 鏌ヨ鑷繁鍦板競
+        // TODO Long.valueOf(getSysInfo().getTenantId())
+        FinSysTenant finSysTenant =
+                this.finSysTenantService.get(new FinSysTenant(Long.valueOf(getSysInfo().getTenantId())));
+        if (finSysTenant.getLv() == 3) {
+            return ResponseValue.error("鍘垮尯绾у埆鏃犳硶鏌ョ湅");
+        }
+        Map<Long, List<FinSysTenant>> finSysTenantList =
+                this.finSysTenantService.queryCountyByCityCode(finSysTenant.getId(), finSysTenant.getLv());
+        return ResponseValue.success(finSysTenantList);
+    }
+
+    public void setEntityList(List<FinSysTenant> datas) {
+
+        if (!StringUtils.isEmptyList(datas)) {
+            TreeNode node = null;
+            Iterator var3 = datas.iterator();
+
+            while (var3.hasNext()) {
+                Object obj = var3.next();
+                node = this.toTreeNode((FinSysTenant) obj);
+
+                if (node.getId() == this.defaultParentId) {
+                    this.rootMap.put(node.getId(), node);
+                } else if (node.getParentId() == this.defaultParentId) {
+                    this.childMap.put(node.getId(), node);
+                }
+            }
+
+            if (this.rootMap.size() == 0) {
+                throw new IllegalArgumentException("鏈壘鍒版牴鑺傜偣銆�");
+            } else {
+                if (this.childMap != null && this.childMap.size() > 0) {
+                    this.mountTree(this.childMap);
+                }
+
+                if (this.dummyRoot != null) {
+                    var3 = this.rootMap.values().iterator();
+
+                    while (var3.hasNext()) {
+                        TreeNode n = (TreeNode) var3.next();
+                        n.setParentId(this.defaultParentId);
+                        this.dummyRoot.addChild(n);
+                    }
+                }
+
+            }
+        }
+    }
+
+    private void mountTree(Map<Long, TreeNode> childMap) {
+        TreeNode _node = null;
+        Iterator i = childMap.values().iterator();
+
+        while (i.hasNext()) {
+            _node = (TreeNode) i.next();
+            this.mountMiddleNode(_node, childMap);
+        }
+
+    }
+
+    private void mountMiddleNode(TreeNode currentNode, Map<Long, TreeNode> childMap) {
+        TreeNode _parentNode = (TreeNode) this.rootMap.get(currentNode.getParentId());
+        if (_parentNode == null) {
+            _parentNode = (TreeNode) childMap.get(currentNode.getId());
+            if (_parentNode == null) {
+                throw new NullPointerException("parent node not found, current: " + currentNode);
+            }
+
+            _parentNode.addChild(currentNode);
+            this.mountMiddleNode(_parentNode, childMap);
+        } else if (_parentNode.getId() == this.defaultParentId) {
+            _parentNode.addChild(currentNode);
+        }
+
+    }
+
+    protected TreeNode toTreeNode(FinSysTenant entity) {
+        TreeNode treeNode =
+                new TreeNode(entity.getId(), entity.getName(), (List) null, entity.getParentId(), entity.getCode());
+        return treeNode;
+    }
+
+    public List<TreeNode> getTreeRootList() {
+        if (!this.multiRoot) {
+            throw new IllegalStateException("瀛樺湪澶氫釜鏍硅妭鐐癸紝璇疯皟鐢ㄦ柟娉�:getTreeRoot().");
+        } else {
+            List<TreeNode> list = new ArrayList();
+            Iterator var2 = this.rootMap.values().iterator();
+
+            while (var2.hasNext()) {
+                TreeNode node = (TreeNode) var2.next();
+                list.add(node);
+            }
+            return list;
+        }
+    }
+
+    /**
+     * @Description 涓嶅垎椤垫煡璇�
+     */
+    @RequestMapping("/select/allList")
+    public ResponseValue allList(FinSysTenantSearchParam param) {
+        StringBuilder whStr = new StringBuilder("where 1=1 and status = 1 and is_delete = 0 ");
+        HashMap  parameter = new HashMap<>();
+        if (param.getFirstZmS() != null && !param.getFirstZmS().equals("")) {
+            whStr.append(" and name is not null and(");
+            String upperCase = param.getFirstZmS().toUpperCase();
+            whStr.append("instr(:upperFirstZmS,F_PINYIN( SUBSTR(name, 1, 1)))>0 or instr(:upperFirstZmS2,SUBSTR(name, 1, 1))>0");
+            parameter.put("upperFirstZmS", upperCase);
+            parameter.put("upperFirstZmS2", upperCase);
+            whStr.append(")");
+        }
+        whStr.append(" order by lv asc, F_PINYIN( SUBSTR(name, 1, 1)) ASC ");
+        List<FinSysTenant> select = this.finSysTenantService.select(new FinSysTenant(), whStr.toString(), parameter);
+        return ResponseValue.success(select);
+    }
+
+
+    /**
+     * 鍒犻櫎
+     * @author 鍗㈠簡闃�
+     * @date 2023/10/4
+     */
+    @PostMapping("/del")
+    public ResponseValue del(@RequestBody FinSysTenantParam param) {
+        if (param.getId() == null) {
+            return ResponseValue.error("鏈烘瀯id涓虹┖");
+        }
+        int num =this.finSysTenantService.updateById(param,this.getSysInfo());
+        return num>0 ? ResponseValue.success(1):ResponseValue.error("鍒犻櫎澶辫触锛�");
+    }
+
+    /**
+     * 娣诲姞鏈烘瀯
+     * @author 鍗㈠簡闃�
+     * @date 2023/10/4
+     */
+    @PostMapping("/add")
+    public ResponseValue add(@RequestBody FinSysTenantParam param){
+        if (param == null) {
+            return ResponseValue.error("鍙傛暟涓虹┖");
+        }
+        if (StringUtils.isEmpty(param.getCode())) {
+            return ResponseValue.error("鏈烘瀯缂栧彿涓虹┖");
+        }
+        if (StringUtils.isEmpty(param.getName())) {
+            return ResponseValue.error("鏈烘瀯鍚嶇О涓虹┖");
+        }
+        FinSysTenant finSysTenant = this.finSysTenantService.selectByTenantId(param.getCode());
+        if (finSysTenant != null) {
+            return ResponseValue.error("鏈烘瀯缂栧彿宸插瓨鍦�");
+        }
+        String parentIdStr = param.getParentId() + "";
+        int lv = parentIdStr.length() / 3 + 1;
+        if (lv > 4) {
+            return ResponseValue.error("涓嶈兘鍒涘缓鏀眬浠ヤ笅鏈烘瀯");
+        }
+        int num = this.finSysTenantService.addFinSysTenant(param,this.getSysInfo(),lv);
+        if(num>0) return ResponseValue.success(1);
+        return ResponseValue.error("鎻掑叆澶辫触锛�");
+    }
+
+    @GetMapping("getImportTemplate")
+    public ResponseEntity<InputStreamResource> getImportTemplate() throws IOException {
+        // 浠庡綋鍓嶉」鐩祫婧愮洰褰曡幏鍙栨枃浠�
+        Resource resource = new ClassPathResource("import/鏈烘瀯瀵煎叆妯℃澘.xls");
+        // 鑾峰彇鏂囦欢杈撳叆娴�
+        InputStream inputStream = resource.getInputStream();
+        // 璁剧疆HTTP鍝嶅簲澶�
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
+        String encodedFilename = URLEncoder.encode("鏈烘瀯瀵煎叆妯℃澘.xls", "UTF-8");
+        headers.setContentDispositionFormData("attachment", encodedFilename);
+        // 鍒涘缓InputStreamResource瀵硅薄锛屽皢鏂囦欢杈撳叆娴佸寘瑁呰捣鏉�
+        InputStreamResource resourceToDownload = new InputStreamResource(inputStream);
+        // 杩斿洖甯︽湁鏂囦欢杈撳叆娴佺殑ResponseEntity瀵硅薄
+        return ResponseEntity
+                .status(HttpStatus.OK)
+                .headers(headers)
+                .body(resourceToDownload);
+    }
+
+
+    /**
+     * @return 鑾峰彇椤圭洰瀵煎叆鐨勬ā鏉�
+     * @throws IOException
+     */
+    @GetMapping("getProjectImportTemplate")
+    public ResponseEntity<InputStreamResource> getProjectImportTemplate() throws IOException {
+        // 浠庡綋鍓嶉」鐩祫婧愮洰褰曡幏鍙栨枃浠�
+        Resource resource = new ClassPathResource("import/椤圭洰瀵煎叆妯℃澘.xls");
+        // 鑾峰彇鏂囦欢杈撳叆娴�
+        InputStream inputStream = resource.getInputStream();
+        // 璁剧疆HTTP鍝嶅簲澶�
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
+        String encodedFilename = URLEncoder.encode("椤圭洰瀵煎叆妯℃澘.xls", "UTF-8");
+        headers.setContentDispositionFormData("attachment", encodedFilename);
+        // 鍒涘缓InputStreamResource瀵硅薄锛屽皢鏂囦欢杈撳叆娴佸寘瑁呰捣鏉�
+        InputStreamResource resourceToDownload = new InputStreamResource(inputStream);
+        // 杩斿洖甯︽湁鏂囦欢杈撳叆娴佺殑ResponseEntity瀵硅薄
+        return ResponseEntity
+                .status(HttpStatus.OK)
+                .headers(headers)
+                .body(resourceToDownload);
+    }
+
+
+    @PostMapping("import")
+    public ResponseValue upload(@RequestParam Long pid, MultipartFile file) throws IOException {
+        String originalFilename = file.getOriginalFilename();
+        if (!"xls".equals(originalFilename.substring(originalFilename.lastIndexOf(".") + 1))){
+            return ResponseValue.error("鏂囦欢鏍煎紡鏈夎!");
+        }
+        FinSysTenantUser sysInfo = this.getSysInfo();
+        if (sysInfo==null){
+            return ResponseValue.error("褰撳墠鐧诲綍鐢ㄦ埛涓虹┖");
+        }
+        String parentIdStr = pid + "";
+        int lv = parentIdStr.length() / 3 + 1;
+        if (lv > 3) {
+            return ResponseValue.error("涓嶈兘鍒涘缓鍘匡紙鍖猴級绾т互涓嬫満鏋�");
+        }
+
+        EasyExcel.read(file.getInputStream(), FinSysTenantParam.class, new AnalysisEventListener<FinSysTenantParam>() {
+            LinkedList<FinSysTenantParam> finSysTenantParams = new LinkedList<>();
+            @Override
+            public void invoke(FinSysTenantParam finSysTenantParam, AnalysisContext analysisContext) {
+                if (StringUtils.isEmpty(finSysTenantParam.getCode())||finSysTenantParam.getCode().length()>20){
+                    IllegalStateException exception = new IllegalStateException("绗�" + analysisContext.readSheetHolder().getRowIndex() + "琛�,鏈烘瀯缂栧彿涓嶈兘涓虹┖鎴栭暱搴﹀ぇ浜�20");
+                    throw exception;
+                }
+                if (null!=finSysTenantService.selectByTenantId(finSysTenantParam.getCode())){
+                    throw new IllegalStateException("绗�" + analysisContext.readSheetHolder().getRowIndex() + "琛�,鏈烘瀯缂栧彿宸插瓨鍦�");
+                }
+                if (StringUtils.isEmpty(finSysTenantParam.getName())||finSysTenantParam.getName().length()>100){
+                    IllegalStateException exception = new IllegalStateException("绗�" + analysisContext.readSheetHolder().getRowIndex() + "琛�,鏈烘瀯鍚嶇О涓嶈兘涓虹┖鎴栭暱搴﹀ぇ浜�100");
+                    throw exception;
+                }
+                finSysTenantParam.setParentId(pid);
+                finSysTenantParam.setStatus(1);
+                finSysTenantParam.setSummary("绯荤粺瀵煎叆");
+                finSysTenantParams.add(finSysTenantParam);
+            }
+            @Override
+            public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+                finSysTenantService.insertFinSysTenantBatch(finSysTenantParams,sysInfo,lv);
+            }
+
+            @Override
+            public void onException(Exception exception, AnalysisContext context) {
+                // 濡傛灉鏄煇涓�涓崟鍏冩牸鐨勮浆鎹㈠紓甯� 鑳借幏鍙栧埌鍏蜂綋琛屽彿
+                if (exception instanceof ExcelDataConvertException) {
+                    ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException)exception;
+                    logger.error("绗瑊}琛岋紝绗瑊}鍒楄В鏋愬紓甯革紝鏁版嵁涓�:{}",excelDataConvertException.getRowIndex(),
+                            excelDataConvertException.getColumnIndex()+1, excelDataConvertException.getCellData().getStringValue());
+                    throw new IllegalStateException("绗�"+(excelDataConvertException.getRowIndex()+1)+"琛岋紝绗�"+(excelDataConvertException.getColumnIndex()+1)+"鍒楄В鏋愬紓甯�,寮傚父鏁版嵁涓�:[ "+excelDataConvertException.getCellData().getStringValue()+" ]");
+                }
+                if (exception instanceof IllegalStateException){
+                    throw (IllegalStateException)exception;
+                }
+
+            }
+
+        }).doReadAll();
+
+        return ResponseValue.success("瀵煎叆鎴愬姛!",1);
+    }
+
+    /**
+     * 缂栬緫
+     * @author 鍗㈠簡闃�
+     * @date 2023/10/6
+     */
+    @PostMapping("/edit")
+    public ResponseValue edit(@RequestBody FinSysTenant finSysTenant) {
+        Long id = finSysTenant.getId();
+        if (id == null || id.longValue() <= 0) {
+            return ResponseValue.error("缂栬緫鐨勬満鏋勪笉瀛樺湪");
+        }
+        FinSysTenantUser sysInfo = getSysInfo();
+        if (sysInfo == null) {
+            return ResponseValue.error("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�");
+        }
+        //        FinSysTenant finSysTenant1 = this.finSysTenantService.selectByTenantId(sysInfo.getTenantCode());
+//        if (finSysTenant1.getLv() != 1) {
+//            return ResponseValue.error("鏆傛棤淇敼鏉冮檺");
+//        }
+        int num = this.finSysTenantService.updateFinSysTenant(finSysTenant,this.getSysInfo());
+        return num>0 ? ResponseValue.success(1):ResponseValue.error("缂栬緫澶辫触锛�");
+    }
+
+    /**
+     * @Description 鏍规嵁OrgCode鑾峰彇涓婄骇鍙婃湰绾т汉鍛業D銆傚彲鑳芥槸鐪佸競鍘�
+     * @Author wh
+     * @Date 2023/10/4 15:37
+     */
+    @GetMapping("getUserByOrgId")
+    public ResponseValue getUserByOrgCode(Long orgId) {
+        if (orgId == null) {
+            return ResponseValue.error("鏈烘瀯涓嶈兘涓虹┖");
+        }
+        ArrayList<FinSysTenantUserResult> finSysTenantUserResults = new ArrayList<>();
+        // 鏈骇
+        FinSysTenant finSysTenant = this.finSysTenantService.get(new FinSysTenant(orgId));
+        if (finSysTenant.getLv() == 1) {
+            // 鐪�
+            List<FinSysTenantUser> finSysTenantUserList = this.finSysTenantUserService.getByOrgId(orgId);
+            if (!StringUtils.isEmptyList(finSysTenantUserList)) {
+                FinSysTenantUserResult finSysTenantUserResult = new FinSysTenantUserResult();
+                finSysTenantUserResult.setOrgId(finSysTenant.getId());
+                finSysTenantUserResult.setOrgName(finSysTenant.getName());
+                finSysTenantUserResult.setUserList(finSysTenantUserList);
+                finSysTenantUserResults.add(finSysTenantUserResult);
+            }
+        }
+        if (finSysTenant.getLv() == 2) {
+            // 甯�
+            List<FinSysTenantUser> finSysTenantUserList2 = this.finSysTenantUserService.getByOrgId(orgId);
+            if (!StringUtils.isEmptyList(finSysTenantUserList2)) {
+                FinSysTenantUserResult finSysTenantUserResult = new FinSysTenantUserResult();
+                finSysTenantUserResult.setOrgId(finSysTenant.getId());
+                finSysTenantUserResult.setOrgName(finSysTenant.getName());
+                finSysTenantUserResult.setUserList(finSysTenantUserList2);
+                finSysTenantUserResults.add(finSysTenantUserResult);
+            }
+            // 鐪�
+            FinSysTenant finSysTenant1 = this.finSysTenantService.get(new FinSysTenant(finSysTenant.getParentId()));
+            List<FinSysTenantUser> finSysTenantUserList = this.finSysTenantUserService.getByOrgId(finSysTenant1.getId());
+            if (!StringUtils.isEmptyList(finSysTenantUserList)) {
+                FinSysTenantUserResult finSysTenantUserResult = new FinSysTenantUserResult();
+                finSysTenantUserResult.setOrgId(finSysTenant1.getId());
+                finSysTenantUserResult.setOrgName(finSysTenant1.getName());
+                finSysTenantUserResult.setUserList(finSysTenantUserList);
+                finSysTenantUserResults.add(finSysTenantUserResult);
+            }
+        }
+        if (finSysTenant.getLv() == 3) {
+            // 鍘�
+            List<FinSysTenantUser> finSysTenantUserList3 = this.finSysTenantUserService.getByOrgId(orgId);
+            if (!StringUtils.isEmptyList(finSysTenantUserList3)) {
+                FinSysTenantUserResult finSysTenantUserResult = new FinSysTenantUserResult();
+                finSysTenantUserResult.setOrgId(finSysTenant.getId());
+                finSysTenantUserResult.setOrgName(finSysTenant.getName());
+                finSysTenantUserResult.setUserList(finSysTenantUserList3);
+                finSysTenantUserResults.add(finSysTenantUserResult);
+            }
+            // 甯�
+            FinSysTenant finSysTenant2 = this.finSysTenantService.get(new FinSysTenant(finSysTenant.getParentId()));
+            List<FinSysTenantUser> finSysTenantUserList2 = this.finSysTenantUserService.getByOrgId(finSysTenant2.getId());
+            if (!StringUtils.isEmptyList(finSysTenantUserList2)) {
+                FinSysTenantUserResult finSysTenantUserResult = new FinSysTenantUserResult();
+                finSysTenantUserResult.setOrgId(finSysTenant2.getId());
+                finSysTenantUserResult.setOrgName(finSysTenant2.getName());
+                finSysTenantUserResult.setUserList(finSysTenantUserList2);
+                finSysTenantUserResults.add(finSysTenantUserResult);
+            }
+            // 鐪�
+            FinSysTenant finSysTenant1 = this.finSysTenantService.get(new FinSysTenant(finSysTenant2.getParentId()));
+            List<FinSysTenantUser> finSysTenantUserList = this.finSysTenantUserService.getByOrgId(finSysTenant1.getId());
+            if (!StringUtils.isEmptyList(finSysTenantUserList)) {
+                FinSysTenantUserResult finSysTenantUserResult = new FinSysTenantUserResult();
+                finSysTenantUserResult.setOrgId(finSysTenant1.getId());
+                finSysTenantUserResult.setOrgName(finSysTenant1.getName());
+                finSysTenantUserResult.setUserList(finSysTenantUserList);
+                finSysTenantUserResults.add(finSysTenantUserResult);
+            }
+        }
+        return ResponseValue.success(finSysTenantUserResults);
+    }
+}
diff --git a/consum-base/src/main/java/com/consum/base/controller/FinSysTenantUserController.java b/consum-base/src/main/java/com/consum/base/controller/FinSysTenantUserController.java
new file mode 100644
index 0000000..a3f305f
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/controller/FinSysTenantUserController.java
@@ -0,0 +1,878 @@
+package com.consum.base.controller;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.excel.exception.ExcelDataConvertException;
+import com.consum.base.BaseController;
+import com.consum.base.pojo.FinSysTenantUserSearchParam;
+import com.consum.base.pojo.FinSysTenantUserUpdParam;
+import com.consum.base.service.FinSysTenantServiceImpl;
+import com.consum.base.service.FinSysTenantUserServiceImpl;
+import com.consum.model.po.FinSysTenant;
+import com.consum.model.po.FinSysTenantUser;
+import com.iplatform.base.ArgumentsConstants;
+import com.iplatform.base.service.DeptServiceImpl;
+import com.iplatform.base.service.RoleServiceImpl;
+import com.iplatform.base.service.UserServiceImpl;
+import com.iplatform.base.util.PlatformRSAUtils;
+import com.iplatform.core.util.AESUtils;
+import com.iplatform.model.po.S_config;
+import com.iplatform.model.po.S_dept;
+import com.iplatform.model.po.S_role;
+import com.iplatform.model.po.S_user_core;
+import com.walker.db.page.GenericPager;
+import com.walker.infrastructure.utils.*;
+import com.walker.web.ResponseValue;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.util.*;
+
+/**
+ * @Description 绯荤粺鐢ㄦ埛
+ * @Author wh
+ * @Date 2023/7/17 14:16
+ */
+@RestController
+@RequestMapping("/pc/fin/sys/tenant/user")
+public class FinSysTenantUserController extends BaseController {
+
+    private String roleName;
+
+    private FinSysTenantUserServiceImpl finSysTenantUserService;
+
+    private UserServiceImpl userService;
+
+    private DeptServiceImpl deptService;
+
+    private FinSysTenantServiceImpl finSysTenantService;
+
+    private RoleServiceImpl roleService;
+
+
+    @Autowired
+    public void setUserService(UserServiceImpl userService) {
+        this.userService = userService;
+    }
+
+    private S_config sConfig;
+
+    @Autowired
+    public FinSysTenantUserController(FinSysTenantServiceImpl finSysTenantService, FinSysTenantUserServiceImpl finSysTenantUserService, RoleServiceImpl roleService) {
+        this.finSysTenantUserService = finSysTenantUserService;
+        this.finSysTenantService = finSysTenantService;
+        this.roleService = roleService;
+    }
+
+    /**
+     * @Description 鍒嗛〉鍒楄〃鏌ヨ
+     * @Author wh
+     * @Date 2023/7/11 13:59
+     */
+    @RequestMapping("/select/list")
+    public ResponseValue allocatedList(FinSysTenantUserSearchParam param) {
+        if (param.getTenantCode() == 0) {
+            FinSysTenantUser user = new FinSysTenantUser();
+            Long id = this.getCurrentUser().getId();
+            user.setSysUserId(id);
+            List<FinSysTenantUser> select = finSysTenantUserService.select(user);
+            if (select.size() > 0) {
+                param.setTenantCode(new Long(select.get(0).getTenantCode()));
+            }
+        }
+        GenericPager<FinSysTenantUser> pager = this.finSysTenantUserService.queryAllPageUser(param);
+
+        List<FinSysTenantUser> datas = pager.getDatas();
+        if (datas.size() > 0) {
+            for (FinSysTenantUser finSysTenantUser : datas) {
+                if (finSysTenantUser.getUserPhone() != null) {
+                    // 瑙e瘑骞惰劚鏁�
+                    String tel = null;
+                    try {
+                        tel = AESUtils.decryptStrAES(finSysTenantUser.getUserPhone(), PlatformRSAUtils.AES_KEY);
+                    } catch (Exception e) {
+                        logger.error("瑙e瘑鎵嬫満鍙峰け璐ワ紝鍘熷洜锛�" + e);
+                        tel = null;
+                    }
+                    if (StringUtils.isNotEmpty(tel)) {
+                        finSysTenantUser.setUserPhone(PhoneNumberUtils.maskMobile(tel));
+                    } else {
+                        finSysTenantUser.setUserPhone("");
+                    }
+                } else {
+                    finSysTenantUser.setUserPhone("");
+                }
+
+                // 寰幆鍘绘煡瑙掕壊
+                Long sysUserId = finSysTenantUser.getSysUserId();
+                if (sysUserId != null) {
+                    List<S_role> list = finSysTenantUserService.getByUserId(sysUserId);
+                    String roleStr = "";
+                    for (S_role s_role : list) {
+                        roleStr = roleStr + s_role.getRole_name() + "  ";
+                    }
+                    finSysTenantUser.setRoleStr(roleStr);
+                }
+
+                //寰幆鏌ヨ杩愮淮鍟唅d
+                if (finSysTenantUser.getSupplierId() != null) {
+                    finSysTenantUser.setIsSupplier("鏄�");
+                } else {
+                    finSysTenantUser.setIsSupplier("鍚�");
+                }
+            }
+        }
+        return ResponseValue.success(pager);
+    }
+
+
+    /**
+     * @Description 鏂板
+     * @Author wh
+     * @Date 2023/7/17 15:56
+     */
+    @PostMapping("/add")
+    @Transactional(rollbackFor = Exception.class)
+    public ResponseValue add(@RequestBody FinSysTenantUser user) {
+        if (user == null) {
+            return ResponseValue.error("鍙傛暟涓虹┖");
+        }
+        //鏍规嵁鍛樺伐缂栧彿鏌ヨ锛屽鏋滃瓨鍦ㄥ垯鎻愮ず
+        if (finSysTenantUserService.getByUserCode(user.getUserCode()) != null && finSysTenantUserService.getByUserCode(user.getUserCode()) > 0) {
+            return ResponseValue.error("鍛樺伐缂栧彿閲嶅");
+        }
+        if (user.getTenantId() == null || "".equals(user.getTenantId()) || new Integer(user.getTenantId()) == 0) {
+            return ResponseValue.error("娣诲姞鏃惰閫夋嫨鍖哄幙");
+        }
+        if (user.getTenantCode() == null || "".equals(user.getTenantCode()) || new Integer(user.getTenantCode()) == 0) {
+            return ResponseValue.error("娣诲姞鏃惰閫夋嫨鍖哄幙");
+        }
+        //鎻掑叆绯荤粺鐢ㄦ埛
+        user.setId(NumberGenerator.getLongSequenceNumber());
+        user.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+        user.setCreateBy(this.getCurrentUser().getUser_name());
+        user.setUpdateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+        user.setUpdateBy(this.getCurrentUser().getUser_name());
+        //user.setStatus(1);// 0绂佺敤 1鍚敤
+        user.setIsDelete(0);// 鏄惁鍒犻櫎 0鏄� 1鍚�
+        user.setSysUserId(NumberGenerator.getLongSequenceNumber());
+        // 鍔犲瘑鎵嬫満鍙�
+        String key = PlatformRSAUtils.AES_KEY;
+        String pwdPhone = "";
+        if (user.getUserPhone() != null) {
+            pwdPhone = AESUtils.encryptStrAES(user.getUserPhone(), key);
+        }
+        user.setUserPhone(pwdPhone);
+        user.setIsDelete(1);
+        //鎬庝箞鑾峰彇宸︿晶鏈烘瀯鏍戞暟鎹�
+        user.setSysDeptId(3L); //瀵瑰簲骞冲彴鏈烘瀯id  榛樿涓哄钩鍙扮鐞�
+        this.finSysTenantUserService.insert(user);
+        // 鎻掑叆骞冲彴鐢ㄦ埛
+        S_user_core userCore = new S_user_core();
+        userCore.setId(user.getSysUserId());
+        userCore.setDept_id(3L); //閮ㄩ棬id锛岀洰鍓嶅啓姝�
+        userCore.setOrg_id(user.getSysDeptId()); //鏈烘瀯id
+        userCore.setOrg_id(1L);
+        userCore.setUser_name(user.getUserCode());  //鐢ㄦ埛璐﹀彿
+        userCore.setNick_name(user.getUserName());
+        //鐢ㄦ埛绫诲瀷 鍏堥粯璁よ缃负2
+        userCore.setUser_type(2);
+        userCore.setPhonenumber(pwdPhone);
+        userCore.setSex(user.getSex().toString());
+        //鍒濆鍖栧瘑鐮� 123456
+        String pws = this.getArgumentVariable(ArgumentsConstants.KEY_SECURITY_PASSWORD_INIT).getStringValue();
+        userCore.setPassword(pws);
+        // 骞冲彴鐢ㄦ埛琛ㄥ拰绯荤粺鐢ㄦ埛 琛ㄧ姸鎬佺浉鍙�
+        if (user.getStatus() == 0) {
+            user.setStatus(1);
+        } else {
+            user.setStatus(0);
+        }
+        userCore.setStatus(user.getStatus());
+        userCore.setDel_flag(0);
+        userCore.setCreate_by(this.getCurrentUser().getUser_name());
+        userCore.setCreate_time(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+        userCore.setRemark(user.getRemark());
+        userCore.setType(1);
+        userCore.setBind_client_id("0");
+        userCore.setBind_wechat(0);
+        userCore.setModify_pwd(0);
+        userCore.setBind_mobile(0);
+        userCore.setBind_mail(0);
+        userCore.setProfile_id(0L);
+        userCore.setIs_wechat_public(0);
+        userCore.setIs_wechat_routine(0);
+        userCore.setIs_wechat_ios(0);
+        userCore.setIs_wechat_android(0);
+        userCore.setIs_logoff(0);
+        userCore.setLogoff_time(0L);
+        userCore.setIs_sms(0);
+        //绠$悊鍛樼被鍨嬶細1= 骞冲彴瓒呯, 2=鍟嗘埛瓒呯, 3=绯荤粺绠$悊鍛橈紝4=鍟嗘埛绠$悊鍛�
+        userCore.setType(1);
+        //鍟嗘埛id锛�0-骞冲彴
+        userCore.setMer_id(0L);
+        this.userService.insert(userCore);
+        // 鎻掑叆骞冲彴鏈烘瀯
+        //灏戣鑹瞚d
+        List<Long> roleList = user.getRoleList(); //鏈烘瀯id  澶氫釜
+        if (!CollectionUtils.isEmpty(roleList)) {
+            Long sysUserId = user.getSysUserId();    //鐢ㄦ埛id
+            this.finSysTenantUserService.execInsertRoleUserList(roleList, sysUserId);
+        }
+//        this.getFinCustomerCache().remove();
+        return ResponseValue.success(1);
+    }
+
+
+
+    public static class ImportUserParam{
+        @ExcelProperty("鐢ㄦ埛濮撳悕")
+        private String userName;
+        @ExcelProperty("鐢ㄦ埛缂栧彿")
+        private String userCode;
+        @ExcelProperty("鎵嬫満鍙�")
+        private String userPhone;
+        @ExcelProperty("鎬у埆(1鐢凤紝2濂�)")
+        private Integer sex;
+        @ExcelProperty("鐢靛瓙閭")
+        private String email;
+        @ExcelProperty("椤哄簭鍙�")
+        private Long seq;
+        @ExcelProperty("瑙掕壊鍚嶇О")
+        private String roleName;
+
+        public String getUserName() {
+            return userName;
+        }
+        public void setUserName(String userName) {
+            this.userName = userName;
+        }
+        public String getUserCode() {
+            return userCode;
+        }
+        public void setUserCode(String userCode) {
+            this.userCode = userCode;
+        }
+        public String getUserPhone() {
+            return userPhone;
+        }
+        public void setUserPhone(String userPhone) {
+            this.userPhone = userPhone;
+        }
+        public Integer getSex() {
+            return sex;
+        }
+        public void setSex(Integer sex) {
+            this.sex = sex;
+        }
+        public String getEmail() {
+            return email;
+        }
+        public void setEmail(String email) {
+            this.email = email;
+        }
+        public Long getSeq() {
+            return seq;
+        }
+        public void setSeq(Long seq) {
+            this.seq = seq;
+        }
+        public String getRoleName() {
+            return roleName;
+        }
+        public void setRoleName(String roleName) {
+            this.roleName = roleName;
+        }
+    }
+
+    /**
+     * @Description 鎵归噺瀵煎叆鐢ㄦ埛
+     * @Author jlq
+     * @Date 2023/10/12 15:56
+     */
+    @PostMapping("/import")
+    public ResponseValue importUser(@RequestParam String tenantId,@RequestParam String tenantCode,MultipartFile file) throws IOException {
+        String originalFilename = file.getOriginalFilename();
+        if (!"xls".equals(originalFilename.substring(originalFilename.lastIndexOf(".") + 1))){
+            return ResponseValue.error("鏂囦欢鏍煎紡鏈夎!");
+        }
+        S_user_core currentUser = this.getCurrentUser();
+        if (currentUser==null){
+            return ResponseValue.error("褰撳墠鐧诲綍鐢ㄦ埛涓虹┖");
+        }
+
+        if (StringUtils.isEmpty(tenantId)||StringUtils.isEmpty(tenantCode)){
+            return ResponseValue.error("娣诲姞鏃惰閫夋嫨鍖哄幙");
+        }
+
+        List<S_role> roles = this.roleService.select(new S_role());
+        ArrayList<FinSysTenantUser> finSysTenantUsers = new ArrayList<>();
+
+        EasyExcel.read(file.getInputStream(), ImportUserParam.class, new AnalysisEventListener<ImportUserParam>(){
+            @Override
+            public void invoke(ImportUserParam data, AnalysisContext context) {
+                if (StringUtils.isEmpty(data.getUserName()) || StringUtils.isEmpty(data.getUserCode())  || StringUtils.isEmpty(data.getUserPhone()) || null==data.getSex()
+                    || StringUtils.isEmpty(data.getEmail()) || null==data.getSeq() || StringUtils.isEmpty(data.getRoleName())){
+                    throw new ImportUserParamVerifyException("鍗曞厓鏍间笉鑳戒负绌�!");
+                }
+                //鏍规嵁鍛樺伐缂栧彿鏌ヨ锛屽鏋滃瓨鍦ㄥ垯鎻愮ず
+                if ( finSysTenantUserService.getByUserCode(data.getUserCode()) > 0) {
+                    throw new ImportUserParamVerifyException("鍛樺伐缂栧彿涓虹┖鎴栧凡瀛樺湪!");
+                }
+                if (data.getSex()<1&&data.getSex()>0){
+                    throw new ImportUserParamVerifyException("鎬у埆鐮佸彧鑳戒负 0 鎴� 1");
+                }
+                FinSysTenantUser user = new FinSysTenantUser();
+                user.setUserName(data.getUserName());
+                user.setUserCode(data.getUserCode());
+                user.setUserPhone(data.getUserPhone());
+                user.setSex(data.getSex());
+                user.setEmail(data.getEmail());
+                user.setSeq(data.getSeq());
+                user.setTenantId(tenantId);
+                user.setTenantCode(tenantCode);
+                //璁剧疆瑙掕壊
+                Optional<S_role> sRole = roles.stream().filter(role -> role.getRole_name().equals(data.getRoleName())).findFirst();
+                user.setRoleList(Arrays.asList(sRole.orElse(new S_role()).getRole_id()));
+
+                user.setId(NumberGenerator.getLongSequenceNumber());
+                user.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+                user.setCreateBy(currentUser.getUser_name());
+                user.setUpdateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+                user.setUpdateBy(currentUser.getUser_name());
+                user.setStatus(1);// 0绂佺敤 1鍚敤
+                user.setIsDelete(0);// 鏄惁鍒犻櫎 0鏄� 1鍚�
+                user.setSysUserId(NumberGenerator.getLongSequenceNumber());
+                user.setRemark("鎵归噺瀵煎叆");
+                // 鍔犲瘑鎵嬫満鍙�
+                String key = PlatformRSAUtils.AES_KEY;
+                String pwdPhone = AESUtils.encryptStrAES(data.getUserPhone(), key);
+                user.setUserPhone(pwdPhone);
+
+                user.setIsDelete(1);
+                //鎬庝箞鑾峰彇宸︿晶鏈烘瀯鏍戞暟鎹�
+                user.setSysDeptId(3L); //瀵瑰簲骞冲彴鏈烘瀯id  榛樿涓哄钩鍙扮鐞�
+                finSysTenantUsers.add(user);
+            }
+            @Override
+            public void doAfterAllAnalysed(AnalysisContext context) {
+
+            }
+            @Override
+            public void onException(Exception exception, AnalysisContext context) throws Exception {
+                if (exception!=null){
+                    // 濡傛灉鏄煇涓�涓崟鍏冩牸鐨勮浆鎹㈠紓甯� 鑳借幏鍙栧埌鍏蜂綋琛屽彿 灏佽鏃跺紓甯�
+                    if (exception instanceof ExcelDataConvertException) {
+                        ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException)exception;
+                        logger.error("绗瑊}琛岋紝绗瑊}鍒楄В鏋愬紓甯革紝鏁版嵁涓�:{}",excelDataConvertException.getRowIndex(),
+                                excelDataConvertException.getColumnIndex()+1, excelDataConvertException.getCellData().getStringValue());
+                        throw new IllegalStateException("绗�"+(excelDataConvertException.getRowIndex()+1)+"琛岋紝绗�"+(excelDataConvertException.getColumnIndex()+1)+"鍒楄В鏋愬紓甯革紝寮傚父鏁版嵁涓�:[ "+excelDataConvertException.getCellData().getStringValue()+" ]");
+                    }
+                    if (exception instanceof ImportUserParamVerifyException){
+                        throw new IllegalStateException("绗�"+context.readSheetHolder().getRowIndex()+"琛�, 瑙f瀽閿欒:[ "+ exception.getMessage()+" ]");
+                    }
+                    throw exception;
+                }
+            }
+        }).sheet().doRead();
+
+        insertUserAndUserCoreBatch(finSysTenantUsers);
+
+        return ResponseValue.success();
+    }
+
+    /**
+     * 鎵归噺鎻掑叆鐢ㄦ埛琛ㄥ拰骞冲彴鐢ㄦ埛琛�
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void insertUserAndUserCoreBatch(List<FinSysTenantUser> finSysTenantUsers){
+        ArrayList<S_user_core> sUserCores = new ArrayList<>();
+        for (FinSysTenantUser user : finSysTenantUsers) {
+            // 鎻掑叆骞冲彴鐢ㄦ埛
+            S_user_core userCore = new S_user_core();
+            userCore.setId(user.getSysUserId());
+            userCore.setDept_id(3L); //閮ㄩ棬id锛岀洰鍓嶅啓姝�
+            userCore.setOrg_id(user.getSysDeptId()); //鏈烘瀯id
+            userCore.setOrg_id(1L);
+            userCore.setUser_name(user.getUserCode());  //鐢ㄦ埛璐﹀彿
+            userCore.setNick_name(user.getUserName());
+            //鐢ㄦ埛绫诲瀷 鍏堥粯璁よ缃负2
+            userCore.setUser_type(2);
+            userCore.setPhonenumber(user.getUserPhone());
+            userCore.setSex(user.getSex().toString());
+            //鍒濆鍖栧瘑鐮� 123456
+            String pws = this.getArgumentVariable(ArgumentsConstants.KEY_SECURITY_PASSWORD_INIT).getStringValue();
+            userCore.setPassword(pws);
+            // 骞冲彴鐢ㄦ埛琛ㄥ拰绯荤粺鐢ㄦ埛 琛ㄧ姸鎬佺浉鍙�
+            if (user.getStatus() == 0) {
+                user.setStatus(1);
+            } else {
+                user.setStatus(0);
+            }
+            userCore.setStatus(user.getStatus());
+            userCore.setDel_flag(0);
+            userCore.setCreate_by(this.getCurrentUser().getUser_name());
+            userCore.setCreate_time(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+            userCore.setRemark(user.getRemark());
+            userCore.setType(1);
+            userCore.setBind_client_id("0");
+            userCore.setBind_wechat(0);
+            userCore.setModify_pwd(0);
+            userCore.setBind_mobile(0);
+            userCore.setBind_mail(0);
+            userCore.setProfile_id(0L);
+            userCore.setIs_wechat_public(0);
+            userCore.setIs_wechat_routine(0);
+            userCore.setIs_wechat_ios(0);
+            userCore.setIs_wechat_android(0);
+            userCore.setIs_logoff(0);
+            userCore.setLogoff_time(0L);
+            userCore.setIs_sms(0);
+            //绠$悊鍛樼被鍨嬶細1= 骞冲彴瓒呯, 2=鍟嗘埛瓒呯, 3=绯荤粺绠$悊鍛橈紝4=鍟嗘埛绠$悊鍛�
+            userCore.setType(1);
+            //鍟嗘埛id锛�0-骞冲彴
+            userCore.setMer_id(0L);
+            sUserCores.add(userCore);
+        }
+        //淇濆瓨鐢ㄦ埛淇℃伅
+        this.finSysTenantUserService.insertBatch(finSysTenantUsers);
+        //淇濆瓨骞冲彴鐢ㄦ埛淇℃伅
+        this.userService.insertBatch(sUserCores);
+        //淇濆瓨瑙掕壊鏉冮檺淇℃伅
+        this.finSysTenantUserService.execInsertRoleUserList(finSysTenantUsers);
+    }
+
+    public static class ImportUserParamVerifyException extends RuntimeException{
+        public ImportUserParamVerifyException(){super();}
+        public ImportUserParamVerifyException(String message){super(message);}
+    }
+
+
+    /**
+     * @Description 缂栬緫
+     * @Author wh
+     * @Date 2023/7/17 14:33
+     */
+    @PostMapping("/update")
+    @Transactional(rollbackFor = Exception.class)
+    public ResponseValue update(@RequestBody FinSysTenantUser user) {
+        if (user == null) {
+            return ResponseValue.error("鍙傛暟涓虹┖");
+        }
+        String key = PlatformRSAUtils.AES_KEY;
+        String pwdPhone = "";
+        if (user.getUserPhone() != null) {
+            pwdPhone = AESUtils.encryptStrAES(user.getUserPhone(), key);
+        }
+        user.setUserPhone(pwdPhone);
+        // 1.鏇存柊绯荤粺鐢ㄦ埛   FIN_SYS_TENANT_USER
+        finSysTenantUserService.update(user);
+        // 2.鏇存柊骞冲彴鐢ㄦ埛  S_USER_CORE
+        S_user_core userCore = new S_user_core();
+        userCore.setId(user.getSysUserId());
+        userCore.setUpdate_by(this.getCurrentUser().getUser_name());
+        userCore.setUpdate_time(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+        // 骞冲彴鐢ㄦ埛琛ㄥ拰绯荤粺鐢ㄦ埛 琛ㄧ姸鎬佺浉鍙�
+        if (user.getStatus() == 0) {
+            user.setStatus(1);
+        } else {
+            user.setStatus(0);
+        }
+        userCore.setStatus(user.getStatus());
+        if (user.getSex() != null) {
+            userCore.setSex(user.getSex().toString());
+        }
+        userCore.setRemark(user.getRemark());
+        userCore.setNick_name(user.getUserName());
+        // 鍔犲瘑鎵嬫満鍙�
+        userCore.setPhonenumber(user.getUserPhone());
+        this.userService.update(userCore);
+        // 3. 鏇存柊瑙掕壊閰嶇疆  S_ROLE_USER
+        // 1. 鏍规嵁  user.getSysUserId() 鏌ヨ
+        List<S_role> list = finSysTenantUserService.getByUserId(user.getSysUserId());  //宸叉湁鐨勬潈闄�
+        List<Long> roleList = user.getRoleList(); //閫夋嫨鐨勬潈闄�
+        //鍏堝垹闄ゅ啀娣诲姞
+        if (list != null && list.size() > 0) {
+            finSysTenantUserService.execDelRoleUserList(user.getSysUserId());
+        }
+        if (roleList != null && roleList.size() > 0) {
+            finSysTenantUserService.execInsertRoleUserList(roleList, user.getSysUserId());
+        }
+        this.getFinSysTenantUserCache().remove(user.getSysUserId() + "");
+        return ResponseValue.success(1);
+    }
+
+    /**
+     * @Description 鐘舵�佷慨鏀�/閫昏緫鍒犻櫎
+     * @Author wh
+     * @Date 2023/7/17 14:35
+     */
+    @PostMapping("/updateStatus")
+    @Transactional(rollbackFor = Exception.class)
+    public ResponseValue updateStatus(@RequestBody FinSysTenantUser user) {
+        if (user == null) {
+            return ResponseValue.error("鍙傛暟涓虹┖");
+        }
+        // 1.鏇存柊绯荤粺鐢ㄦ埛   FIN_SYS_TENANT_USER   搴旇鏄煡璇�  鐒跺悗鍙敼鐘舵��
+        List<FinSysTenantUser> select = finSysTenantUserService.select(new FinSysTenantUser(user.getId()));
+        if (select == null || select.size() == 0) {
+            return ResponseValue.error("鐢ㄦ埛涓嶅瓨鍦�");
+        }
+        FinSysTenantUser finSysTenantUser = select.get(0);
+        finSysTenantUser.setStatus(user.getStatus());
+        finSysTenantUserService.update(finSysTenantUser);
+        // 2.鏇存柊骞冲彴鐢ㄦ埛  S_USER_CORE
+        S_user_core userCore = new S_user_core();
+        userCore.setId(user.getSysUserId());
+        userCore.setUpdate_by(this.getCurrentUser().getUser_name());
+        userCore.setUpdate_time(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+        // 骞冲彴鐢ㄦ埛琛ㄥ拰绯荤粺鐢ㄦ埛 琛ㄧ姸鎬佺浉鍙�
+        if (user.getStatus() == 0) {
+            user.setStatus(1);
+        } else {
+            user.setStatus(0);
+        }
+        userCore.setStatus(user.getStatus());
+        this.userService.update(userCore);
+        return ResponseValue.success(1);
+    }
+
+    /**
+     * @Description 瀵嗙爜鍒濆鍖�
+     * @Author wh
+     * @Date 2023/7/17 14:36
+     */
+    @PostMapping("/defaultPassword")
+    public ResponseValue defaultPassword(@RequestBody FinSysTenantUser finSysTenantUser) {
+        if (finSysTenantUser == null) {
+            return ResponseValue.error("鐢ㄦ埛淇℃伅涓嶅瓨鍦�");
+        }
+        //鍒濆鍖栧瘑鐮� 123456
+        String stringValue = this.getArgumentVariable(ArgumentsConstants.KEY_SECURITY_PASSWORD_INIT).getStringValue();// 瀵嗘枃
+        // 1. 淇敼鐢ㄦ埛琛�
+        //鐢ㄦ埛琛╥d
+        Long sysUserId = finSysTenantUser.getSysUserId();
+        S_user_core userCore = new S_user_core();
+        userCore.setId(sysUserId);
+        userCore.setPassword(stringValue);
+        userCore.setModify_pwd(0);
+        userService.update(userCore);
+        // 2. 淇敼骞冲彴鐢ㄦ埛锛堜笉鐢ㄤ慨鏀癸級
+        return ResponseValue.success(1);
+    }
+
+    /**
+     * @Description 鏍规嵁id鑾峰彇鐢ㄦ埛淇℃伅
+     * @Author wh
+     * @Date 2023/7/17 14:38
+     */
+    @GetMapping("/detail")
+    public ResponseValue detail(Long id) {
+        if (id == null || id.longValue() <= 0) {
+            return ResponseValue.error("鐢ㄦ埛淇℃伅涓嶅瓨鍦�");
+        }
+
+        FinSysTenantUser finSysTenantUser = this.finSysTenantUserService.get(new FinSysTenantUser(id));
+        if (finSysTenantUser == null) {
+            return ResponseValue.error("鐢ㄦ埛淇℃伅涓嶅瓨鍦�");
+        }
+        String s = AESUtils.decryptStrAES(finSysTenantUser.getUserPhone(), PlatformRSAUtils.AES_KEY);
+
+        finSysTenantUser.setUserPhone(s);
+        Long sysUserId = finSysTenantUser.getSysUserId();
+        List<S_role> list = finSysTenantUserService.getByUserId(sysUserId);
+        HashMap<String, Object> map = new HashMap<>();
+        map.put("list", list);
+        map.put("data", finSysTenantUser);
+        return ResponseValue.success(map);
+    }
+
+    /**
+     * 寰楀埌 褰撳墠鐧诲綍鐢ㄦ埛鐨勪俊鎭�
+     * 澧炲姞 鐖剁被鏈烘瀯鐨刢ode
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/getCurInfo")
+    public ResponseValue getCurInfo() {
+
+        FinSysTenantUser sysInfo = getSysInfo();
+        if (sysInfo != null || sysInfo.getLv() > 0) {
+            // 瑙e瘑鎵嬫満鍙�
+            String key = PlatformRSAUtils.AES_KEY;
+            String userPhone = sysInfo.getUserPhone();
+            if (userPhone != null) {
+                sysInfo.setUserPhone(AESUtils.decryptStrAES(userPhone, key));
+            }
+
+            // 鏌ヨ 鐢ㄦ埛瑙掕壊 TODO 涓存椂瑙e喅 灏嗘潵鏀鹃厤缃枃浠朵腑
+            List<S_role> list = finSysTenantUserService.getByUserId(sysInfo.getSysUserId());  //宸叉湁鐨勬潈闄�
+            for (S_role s_role : list) {
+                if (s_role.getRole_id() != null && s_role.getRole_id().equals(1690961420053L)) {
+                    sysInfo.setKfStatus(1);
+                }
+            }
+
+            // 鏌ヨ鐖剁被鐨刼rgcode  闇�瑕佸皢鑷繁鐨刼rg鍏堟煡鍑烘潵  鍐嶆牴鎹畃arentid 鏌ョ埗绫�
+            String tenantId = sysInfo.getTenantId();
+            if (tenantId != null && !tenantId.equals("")) {
+                List<FinSysTenant> select = finSysTenantService.select(new FinSysTenant(Long.valueOf(tenantId)));
+                if (select != null && select.size() > 0) {
+                    FinSysTenant finSysTenant = select.get(0);
+                    if (finSysTenant != null && finSysTenant.getParentId() != null) {
+                        List<FinSysTenant> parents = finSysTenantService.select(new FinSysTenant(finSysTenant.getParentId()));
+                        if (parents != null && parents.size() > 0) {
+                            sysInfo.setParentCode(parents.get(0).getCode());
+                        }
+                    }
+
+                }
+            }
+        }
+        return ResponseValue.success(sysInfo);
+    }
+
+
+    /**
+     * 鏇存柊瑙掕壊鏉冮檺
+     *
+     * @param user
+     * @return
+     */
+    @PostMapping("/updRole")
+    public ResponseValue updRole(@RequestBody FinSysTenantUser user) {
+        if (user == null) {
+            return ResponseValue.error("鍙傛暟涓虹┖");
+        }
+        // 1. 鏍规嵁  user.getSysUserId() 鏌ヨ
+        List<S_role> list = finSysTenantUserService.getByUserId(user.getSysUserId());  //宸叉湁鐨勬潈闄�
+        List<Long> roleList = user.getRoleList(); //閫夋嫨鐨勬潈闄�
+        //鍏堝垹闄ゅ啀娣诲姞
+        if (list != null && list.size() > 0) {
+            finSysTenantUserService.execDelRoleUserList(user.getSysUserId());
+        }
+        if (roleList != null && roleList.size() > 0) {
+            finSysTenantUserService.execInsertRoleUserList(roleList, user.getSysUserId());
+        }
+        return ResponseValue.success(1);
+    }
+
+
+    /**
+     * @Description 鏂板
+     * @Author llb
+     * @Date 2023/7/17 15:56
+     */
+    @PostMapping("/addSupplier")
+    @Transactional(rollbackFor = Exception.class)
+    public ResponseValue addSupplier(@RequestBody FinSysTenantUser user) {
+        if (user == null) {
+            return ResponseValue.error("鍙傛暟涓虹┖");
+        }
+        // 鑾峰彇杩愮淮绠$悊
+        List<S_dept> depts = this.finSysTenantUserService.selectDept(roleName);
+        if (depts == null || depts.size() == 0) {
+            return ResponseValue.error(roleName + "鐨勮鑹蹭笉瀛樺湪");
+        }
+        //鏍规嵁鍛樺伐缂栧彿鏌ヨ锛屽鏋滃瓨鍦ㄥ垯鎻愮ず
+        if (finSysTenantUserService.getByUserCode(user.getUserCode()) != null && finSysTenantUserService.getByUserCode(user.getUserCode()) > 0) {
+            return ResponseValue.error("鍛樺伐缂栧彿閲嶅");
+        }
+        FinSysTenantUser sysInfo = this.getSysInfo();
+        //鎻掑叆绯荤粺鐢ㄦ埛
+        user.setId(NumberGenerator.getLongSequenceNumber());
+        user.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+        user.setCreateBy(this.getCurrentUser().getUser_name());
+        user.setUpdateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+        user.setUpdateBy(this.getCurrentUser().getUser_name());
+        user.setIsDelete(0);// 鏄惁鍒犻櫎 0鏄� 1鍚�
+        user.setSysUserId(NumberGenerator.getLongSequenceNumber());
+        user.setIsDelete(1);
+        user.setLv(sysInfo.getLv());
+        user.setTenantCode(sysInfo.getTenantCode());
+        user.setTenantId(sysInfo.getTenantId());
+        user.setSysDeptId(2l); //杩愮淮绠$悊
+        // 鍔犲瘑鎵嬫満鍙�
+        String key = PlatformRSAUtils.AES_KEY;
+        String userPhone = user.getUserPhone();
+        String pwdPhone = "";
+        if (userPhone != null) {
+            pwdPhone = AESUtils.encryptStrAES(userPhone, key);
+            user.setUserPhone(pwdPhone);
+        }
+
+        this.finSysTenantUserService.insert(user);
+        // 鎻掑叆骞冲彴鐢ㄦ埛
+        S_user_core userCore = new S_user_core();
+        userCore.setId(user.getSysUserId());
+        userCore.setDept_id(depts.get(0).getId()); //閮ㄩ棬
+        userCore.setOrg_id(1L);
+        //userCore.setUser_name();  //鐢ㄦ埛璐﹀彿
+        userCore.setUser_name(user.getUserCode());  //鐢ㄦ埛璐﹀彿
+        userCore.setNick_name(user.getUserName());
+        //鐢ㄦ埛绫诲瀷 鍏堥粯璁よ缃负2
+        userCore.setUser_type(2);
+
+        userCore.setPhonenumber(userPhone);
+        //鍒濆鍖栧瘑鐮� 123456
+        String pws = this.getArgumentVariable(ArgumentsConstants.KEY_SECURITY_PASSWORD_INIT).getStringValue();
+        userCore.setPassword(pws);
+        if (user.getStatus() == 0) {
+            userCore.setStatus(1);
+        } else {
+            userCore.setStatus(0);
+        }
+        userCore.setDel_flag(0);
+        userCore.setCreate_by(this.getCurrentUser().getCreate_by());
+        userCore.setCreate_time(DateUtils.getDateTimeNumber());
+        userCore.setRemark(user.getRemark());
+        userCore.setType(1);
+        userCore.setBind_client_id("0");
+        userCore.setBind_wechat(0);
+        userCore.setModify_pwd(0);
+        userCore.setBind_mobile(0);
+        userCore.setBind_mail(0);
+        userCore.setProfile_id(0L);
+        userCore.setIs_wechat_public(0);
+        userCore.setIs_wechat_routine(0);
+        userCore.setIs_wechat_ios(0);
+        userCore.setIs_wechat_android(0);
+        userCore.setIs_logoff(0);
+        userCore.setLogoff_time(0L);
+        userCore.setIs_sms(0);
+        //绠$悊鍛樼被鍨嬶細1= 骞冲彴瓒呯, 2=鍟嗘埛瓒呯, 3=绯荤粺绠$悊鍛橈紝4=鍟嗘埛绠$悊鍛�
+        userCore.setType(2);
+        //鍟嗘埛id锛�0-骞冲彴
+        userCore.setMer_id(0L);
+        this.userService.insert(userCore);
+        // 鎻掑叆骞冲彴鏈烘瀯
+        //灏戣鑹瞚d
+        List<Long> roleList = user.getRoleList(); //鏈烘瀯id  澶氫釜
+        Long sysUserId = user.getSysUserId();    //鐢ㄦ埛id
+        this.finSysTenantUserService.execInsertRoleUserList(roleList, sysUserId);
+        return ResponseValue.success(1);
+    }
+
+    private Set<String> picFormatArr = new HashSet<String>() {{
+        add(".pjp");
+        add(".svgz");
+        add(".jxl");
+        add(".jpeg");
+        add(".ico");
+        add(".avif");
+        add(".tif");
+        add(".gif");
+        add(".jfif");
+        add(".jpg");
+        add(".svg");
+        add(".png");
+        add(".xbm");
+        add(".pjpeg");
+        add(".bmp");
+        add(".webp");
+    }};
+
+    @PostMapping("/updatePerson")
+    @Transactional(rollbackFor = Exception.class)
+    public ResponseValue updatePerson(@RequestBody FinSysTenantUser user) {
+        if (user == null) {
+            return ResponseValue.error("鍙傛暟涓虹┖");
+        }
+        FinSysTenantUser sysInfo = getSysInfo();
+        if (sysInfo == null) {
+            return ResponseValue.error("鐢ㄦ埛淇℃伅涓嶅瓨鍦�");
+        }
+        String avatar = user.getAvatar();
+        if (!picFormatArr.contains(avatar.substring(avatar.lastIndexOf(".")))) {
+            return ResponseValue.error("澶村儚鏍煎紡涓嶅厑璁�");
+        }
+        FinSysTenantUser updUser = new FinSysTenantUser();
+        updUser.setId(sysInfo.getId());
+        updUser.setAvatar(user.getAvatar());
+        updUser.setEmail(user.getEmail());
+        updUser.setUserName(user.getUserName());
+        updUser.setSex(user.getSex());
+        String pwdPhone = "";
+        if (user.getUserPhone() != null) {
+            String key = PlatformRSAUtils.AES_KEY;
+            pwdPhone = AESUtils.encryptStrAES(user.getUserPhone(), key);
+        }
+        updUser.setUserPhone(pwdPhone);
+        // 1.鏇存柊绯荤粺鐢ㄦ埛   FIN_SYS_TENANT_USER
+        finSysTenantUserService.update(updUser);
+        // 2.鏇存柊骞冲彴鐢ㄦ埛  S_USER_CORE
+        S_user_core userCore = new S_user_core();
+        userCore.setId(sysInfo.getSysUserId());
+        userCore.setUpdate_by(this.getCurrentUser().getUser_name());
+        userCore.setUpdate_time(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+        userCore.setNick_name(updUser.getUserName());
+        userCore.setEmail(updUser.getEmail());
+        // 鍔犲瘑鎵嬫満鍙�
+        userCore.setPhonenumber(updUser.getUserPhone());
+        this.userService.update(userCore);
+        this.getFinSysTenantUserCache().remove(String.valueOf(sysInfo.getSysUserId()));
+        this.getUserCacheProvider().removeUser(sysInfo.getSysUserId());
+        return ResponseValue.success(1);
+    }
+
+    /**
+     * @Description 淇敼瀵嗙爜
+     */
+    @PostMapping("/updatePassword")
+    public ResponseValue updatePassword(@RequestBody FinSysTenantUserUpdParam param) {
+        String oldMixPd = param.getOldMixPd();
+        String newMixPd = param.getNewMixPd();
+        String btnMixPd = param.getBtnMixPd();
+        //鏍¢獙鍙傛暟
+        if (StringUtils.isEmpty(oldMixPd) || StringUtils.isEmpty(newMixPd) || StringUtils.isEmpty(btnMixPd)) {
+            return ResponseValue.error("淇℃伅涓嶈兘涓虹┖锛�");
+        }
+        FinSysTenantUser sysInfo = getSysInfo();
+        if (sysInfo == null) {
+            return ResponseValue.error("鐢ㄦ埛淇℃伅涓嶅瓨鍦�");
+        }
+        //鏍¢獙淇╂杈撳叆鐨勫瘑鐮�
+        btnMixPd = PlatformRSAUtils.getRsaDecryptValue(btnMixPd, PlatformRSAUtils.PRIK);
+        newMixPd = PlatformRSAUtils.getRsaDecryptValue(newMixPd, PlatformRSAUtils.PRIK);
+        if (!newMixPd.equals(btnMixPd)) {
+            return ResponseValue.error("鏂板瘑鐮佷笌纭瀵嗙爜涓嶄竴鑷达紒");
+        }
+        // 鏁板瓧+瀛楁瘝+鐗规畩绗﹀悎锛屾渶灏�8浣�
+        if (StringUtils.isEmpty(btnMixPd) || btnMixPd.length() < 8 || btnMixPd.length() > 12) {
+            return ResponseValue.error("瀵嗙爜绾у埆杩囦綆锛岃杈撳叆锛�8-12涓瓧绗�");
+        }
+        String validatePasswordRule = this.validatePasswordRule(btnMixPd);
+        if (validatePasswordRule != null) {
+            return ResponseValue.error(validatePasswordRule);
+        }
+        //鐢ㄦ埛琛╥d
+        Long sysUserId = sysInfo.getSysUserId();
+        S_user_core queryU = new S_user_core();
+        queryU.setId(sysUserId);
+        S_user_core queryUserInfo = userService.get(queryU);
+        if (queryUserInfo == null) {
+            return ResponseValue.error("鐢ㄦ埛淇℃伅涓嶅瓨鍦�");
+        }
+        oldMixPd = PlatformRSAUtils.getRsaDecryptValue(oldMixPd, PlatformRSAUtils.PRIK);
+        //鏍¢獙鑰佸瘑鐮�
+        if (!this.matchesPassword(oldMixPd, queryUserInfo.getPassword())) {
+            return ResponseValue.error("鏃у瘑鐮佽緭鍏ユ湁璇紒");
+        }
+        if (oldMixPd.equalsIgnoreCase(btnMixPd)) {
+            return ResponseValue.error("鏂板瘑鐮佷笉鑳戒笌鏃у瘑鐮佺浉鍚岋紒");
+        }
+        //鏇存柊鏁版嵁搴�
+        // 1. 淇敼鐢ㄦ埛琛�
+        queryU.setPassword(this.encryptPassword(btnMixPd));
+        queryU.setModify_pwd(1);
+        userService.update(queryU);
+        // 2. 淇敼骞冲彴鐢ㄦ埛锛堜笉鐢ㄤ慨鏀癸級
+        return ResponseValue.success(1);
+    }
+}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/FinSysTenantUserSearchParam.java b/consum-base/src/main/java/com/consum/base/pojo/FinSysTenantUserSearchParam.java
new file mode 100644
index 0000000..00c218f
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/pojo/FinSysTenantUserSearchParam.java
@@ -0,0 +1,154 @@
+package com.consum.base.pojo;
+
+import com.walker.web.param.ParamRequest;
+
+public class FinSysTenantUserSearchParam extends ParamRequest {
+
+    // 鐢ㄦ埛濮撳悕
+    private String userName;
+
+    private String userCode;
+
+    // 渚涘簲鍟唅d
+    private Long supplierId;
+
+    private Integer status;
+
+    private Long projectId;
+
+
+   private String roleId;
+
+    // 鐢ㄦ埛鎵嬫満鍙�
+    private String userPhone;
+
+    // 鍖哄煙鍙�
+    private long tenantCode;
+
+    // 1 鏄储鏀跨敤鎴� 2 鏄鏈�
+    private Integer type;
+
+    // 缁戝畾CTI瀹㈡湇
+    private Integer ctiStatus;
+
+    private Long startTime;
+
+    private Long endTime;
+
+    private Long userId;
+
+    private Long sysUserId;
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public Long getSysUserId() {
+        return sysUserId;
+    }
+
+    public void setSysUserId(Long sysUserId) {
+        this.sysUserId = sysUserId;
+    }
+
+    public Long getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Long startTime) {
+        this.startTime = startTime;
+    }
+
+    public Long getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Long endTime) {
+        this.endTime = endTime;
+    }
+
+    public Integer getCtiStatus() {
+        return ctiStatus;
+    }
+
+    public void setCtiStatus(Integer ctiStatus) {
+        this.ctiStatus = ctiStatus;
+    }
+
+    public Long getProjectId() {
+        return projectId;
+    }
+
+    public void setProjectId(Long projectId) {
+        this.projectId = projectId;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public String getRoleId() {
+        return roleId;
+    }
+
+    public void setRoleId(String roleId) {
+        this.roleId = roleId;
+    }
+
+    public String getUserCode() {
+        return userCode;
+    }
+
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+    public void setUserCode(String userCode) {
+        this.userCode = userCode;
+    }
+
+    public long getTenantCode() {
+        return tenantCode;
+    }
+
+    public void setTenantCode(long tenantCode) {
+        this.tenantCode = tenantCode;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getUserPhone() {
+        return userPhone;
+    }
+
+    public void setUserPhone(String userPhone) {
+        this.userPhone = userPhone;
+    }
+
+
+    public Long getSupplierId() {
+        return supplierId;
+    }
+
+    public void setSupplierId(Long supplierId) {
+        this.supplierId = supplierId;
+    }
+}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/FinSysTenantUserUpdParam.java b/consum-base/src/main/java/com/consum/base/pojo/FinSysTenantUserUpdParam.java
new file mode 100644
index 0000000..312f8fc
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/pojo/FinSysTenantUserUpdParam.java
@@ -0,0 +1,40 @@
+package com.consum.base.pojo;
+
+import com.walker.web.param.ParamRequest;
+
+/**
+ * @ClassName FinSysTenantUserUpdParam
+ * @Author cy
+ * @Date 2023/9/6
+ * @Description
+ * @Version 1.0
+ **/
+public class FinSysTenantUserUpdParam extends ParamRequest {
+    private String oldMixPd;
+    private String newMixPd;
+    private String btnMixPd;
+
+    public String getOldMixPd() {
+        return oldMixPd;
+    }
+
+    public void setOldMixPd(String oldMixPd) {
+        this.oldMixPd = oldMixPd;
+    }
+
+    public String getNewMixPd() {
+        return newMixPd;
+    }
+
+    public void setNewMixPd(String newMixPd) {
+        this.newMixPd = newMixPd;
+    }
+
+    public String getBtnMixPd() {
+        return btnMixPd;
+    }
+
+    public void setBtnMixPd(String btnMixPd) {
+        this.btnMixPd = btnMixPd;
+    }
+}
diff --git a/consum-base/src/main/java/com/consum/base/service/BaseCategoryServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/BaseCategoryServiceImpl.java
index f45ac8b..f58c6a8 100644
--- a/consum-base/src/main/java/com/consum/base/service/BaseCategoryServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/service/BaseCategoryServiceImpl.java
@@ -96,6 +96,8 @@
         if (param.getStates() != null) {
             sql.append(" and status =:status ");
             paramts.put("status", param.getStates());
+        } else {
+            sql.append(" and states !=3 ");
         }
         sql.append(" ORDER BY ORDER_NUMBER,CREATE_TIME DESC ");
         return selectSplit(sql.toString(), paramts, new BaseCategory());
@@ -120,7 +122,7 @@
     }
 
     /**
-     * @Description 鏍规嵁鑺傜偣id鍒犻櫎鑺傜偣(閫昏緫鍒犻櫎)
+     * @Description 鏍规嵁id鍒犻櫎鐗╁搧鍒嗙被
      * @Author 鍗㈠簡闃�
      * @Date 2023/10/23
      */
diff --git a/consum-base/src/main/java/com/consum/base/service/BaseGoodsModelsServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/BaseGoodsModelsServiceImpl.java
index 4212f0d..d0513ee 100644
--- a/consum-base/src/main/java/com/consum/base/service/BaseGoodsModelsServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/service/BaseGoodsModelsServiceImpl.java
@@ -1,7 +1,17 @@
 package com.consum.base.service;
 
+import com.consum.base.Constants;
+import com.consum.base.util.IdUtil;
+import com.consum.model.po.BaseCategory;
+import com.consum.model.po.BaseGoodsModels;
+import com.consum.model.po.BaseGoodsTemplate;
+import com.walker.db.page.GenericPager;
+import com.walker.infrastructure.utils.DateUtils;
+import com.walker.infrastructure.utils.StringUtils;
 import com.walker.jdbc.service.BaseServiceImpl;
 import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
 
 /**
  * @Description 鐗╁搧妯℃澘
@@ -11,4 +21,69 @@
 @Service
 public class BaseGoodsModelsServiceImpl extends BaseServiceImpl {
 
+    /**
+     * @Description 瑙勬牸鍒楄〃鏌ヨ锛堟牴鎹墿鍝乮d鏌ヨ瑙勬牸鍨嬪彿锛�
+     * @Author 鍗㈠簡闃�
+     * @Date 2023/10/25
+     */
+    public GenericPager<BaseGoodsModels> queryList(Long goodsTemplatesId) {
+        StringBuilder sql = new StringBuilder("SELECT * FROM base_goods_models WHERE 1 = 1 ");
+        HashMap<String, Object> paramts = new HashMap<>();
+
+        //鐗╁搧妯℃澘id
+        sql.append(" and goods_templates_id =:goods_templates_id ");
+        paramts.put("goods_templates_id", goodsTemplatesId);
+
+        sql.append(" and states !=3 ORDER BY CREATE_TIME DESC ");
+        return selectSplit(sql.toString(), paramts, new BaseGoodsModels());
+    }
+
+    /**
+     * @Description  鏍规嵁 鍨嬪彿鍚嶇О鍜岀墿鍝佹ā鏉縤d 鏌ヨ瑙勬牸鍨嬪彿
+     * @Author 鍗㈠簡闃�
+     * @Date 2023/10/25
+     */
+    public BaseGoodsModels getByModelNameAndGoodsTemplatesId(BaseGoodsModels models) {
+        StringBuilder sql = new StringBuilder("SELECT * FROM base_goods_models WHERE 1 = 1 ");
+        HashMap<String, Object> paramts = new HashMap<>();
+
+        //瑙勬牸鍨嬪彿鍚嶇О
+        sql.append(" and MODEL_NAME =:MODEL_NAME ");
+        paramts.put("MODEL_NAME", models.getModelName());
+        //鐗╁搧妯℃澘id
+        sql.append(" and GOODS_TEMPLATES_ID =:GOODS_TEMPLATES_ID ");
+        paramts.put("GOODS_TEMPLATES_ID", models.getGoodsTemplatesId());
+
+        return this.get(sql.toString(), paramts, new BaseGoodsModels());
+    }
+
+    /**
+     * @Description 鏂板
+     * @Author 鍗㈠簡闃�
+     * @Date 2023/10/23
+     */
+    public int add(BaseGoodsModels models) {
+        models.setId(IdUtil.generateId());
+        models.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+        return this.insert(models);
+    }
+
+    /**
+     * 淇敼鐘舵��
+     * @author 鍗㈠簡闃�
+     * @date 2023/10/25
+     */
+    public int updateStatus(BaseGoodsModels models) {
+        return this.update(models);
+    }
+
+    /**
+     * @Description 鏍规嵁id鍒犻櫎瑙勬牸鍨嬪彿
+     * @Author 鍗㈠簡闃�
+     * @Date 2023/10/25
+     */
+    public int updateById(BaseGoodsModels models) {
+        models.setStates(Constants.STATES_DELETED);
+        return this.update(models);
+    }
 }
diff --git a/consum-base/src/main/java/com/consum/base/service/BaseGoodsTemplateServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/BaseGoodsTemplateServiceImpl.java
index c5b0200..e1e7a75 100644
--- a/consum-base/src/main/java/com/consum/base/service/BaseGoodsTemplateServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/service/BaseGoodsTemplateServiceImpl.java
@@ -146,6 +146,8 @@
         if (param.getStates() != null) {
             sql.append(" and states =:states ");
             paramts.put("states", param.getStates());
+        } else {
+            sql.append(" and states !=3 ");
         }
         sql.append(" ORDER BY CREATE_DATE DESC ");
 
@@ -218,4 +220,28 @@
 
         return this.get(sql.toString(), paramts, new BaseGoodsTemplate());
     }
+
+    /**
+     * 淇敼鐘舵��
+     * @author 鍗㈠簡闃�
+     * @date 2023/10/25
+     */
+    public int updateStatus(BaseGoodsTemplate goodsTemplate) {
+        return this.update(goodsTemplate);
+    }
+
+    /**
+     * @Description 鏍规嵁鐗╁搧id鍒犻櫎鐗╁搧
+     * @Author 鍗㈠簡闃�
+     * @Date 2023/10/25
+     */
+    public int updateById(BaseGoodsTemplate goodsTemplate, S_user_core currentUser) {
+        goodsTemplate.setStates(Constants.STATES_DELETED);
+        //鍒犻櫎鏃堕棿
+        goodsTemplate.setDTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+        //鍒犻櫎浜篿d鍜屽垹闄や汉濮撳悕
+        goodsTemplate.setDUserId(currentUser.getId());
+        goodsTemplate.setDUserName(currentUser.getUser_name());
+        return this.update(goodsTemplate);
+    }
 }
diff --git a/consum-base/src/main/java/com/consum/base/service/FinOrgServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/FinOrgServiceImpl.java
new file mode 100644
index 0000000..c68b75f
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/service/FinOrgServiceImpl.java
@@ -0,0 +1,103 @@
+package com.consum.base.service;
+
+import com.consum.model.po.FinSysOrg;
+import com.iplatform.model.po.S_dept;
+import com.walker.infrastructure.utils.StringUtils;
+import com.walker.jdbc.service.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+public class FinOrgServiceImpl extends BaseServiceImpl {
+
+    private static final String QUERY_SYS_ORG_BY_TENANT_ID = "select * from FIN_SYS_ORG where TENANT_ID = ?";
+    private static final String QUERY_TREE_ALL = "select * from FIN_SYS_ORG where org_type = ? order by parent_id, LV ASC";
+    private static final String QUERY_TREE_ONE = "select * from FIN_SYS_ORG where org_type = ? and parent_id = ? order by parent_id, LV ASC";
+    private static final String QUERY_SYS_ORG_BY_ORGID = "SELECT * FROM FIN_SYS_ORG WHERE PARENT_ID IN (\n" +
+            "SELECT PARENT_ID FROM FIN_SYS_ORG where ID = ? AND ORG_TYPE = ?) ORDER BY ORG_CODE ASC";
+
+    /**
+     * 鏍规嵁鏈烘瀯浠g爜锛屾煡璇㈠敮涓�鏈烘瀯瀵硅薄銆�
+     * @param orgCode
+     * @return
+     * @date 2023-07-05
+     */
+    public FinSysOrg queryOneByCode(String orgCode){
+        FinSysOrg org = new FinSysOrg();
+        org.setOrgCode(orgCode);
+        List<FinSysOrg> orgList = this.select(org);
+        if(!StringUtils.isEmptyList(orgList)){
+            return orgList.get(0);
+        }
+        return null;
+    }
+
+    /**
+     * 鎵归噺鍐欏叆鏂扮殑鏈烘瀯闆嗗悎銆�
+     * @param finSysOrgList
+     * @date 2023-07-05
+     */
+    public List<S_dept> execBatchInsertOrgList(List<FinSysOrg> finSysOrgList){
+        if(StringUtils.isEmptyList(finSysOrgList)){
+            return null;
+        }
+        List<S_dept> deptList = new ArrayList<>(finSysOrgList.size());
+        for(FinSysOrg e : finSysOrgList){
+            deptList.add(this.acquirePlatformDept(e));
+        }
+        this.insertBatch(deptList);
+        this.insertBatch(finSysOrgList);
+        return deptList;
+    }
+
+    private S_dept acquirePlatformDept(FinSysOrg finSysOrg){
+        S_dept dept = new S_dept();
+        dept.setId(Long.valueOf(finSysOrg.getId()));  // FinSysOrg 鐨刬d 鍜宲artentId 杩欓噷鏀规垚String绫诲瀷浜�
+        dept.setDept_name(finSysOrg.getName());
+        dept.setOrder_num(finSysOrg.getOrderNum());
+        dept.setOrg_type(finSysOrg.getOrgType());
+        dept.setCreate_time(finSysOrg.getCreateTime());
+
+        if(finSysOrg.getParentId() != null){
+            //if(finSysOrg.getParentId().longValue() == 0){
+            if(finSysOrg.getParentId() == null){
+                // 鐖惰妭鐐逛笉瀛樺湪锛�
+                dept.setAncestors("0");
+            } else {
+                dept.setAncestors(String.valueOf(finSysOrg.getParentId()));
+            }
+            dept.setOrg_id(Long.valueOf(finSysOrg.getParentId()));
+            dept.setParent_id(Long.valueOf(finSysOrg.getParentId()));
+        } else {
+            dept.setAncestors("0");
+            dept.setOrg_id(dept.getId());
+            dept.setParent_id(0L);
+        }
+        return dept;
+    }
+
+    /**
+     * @Description 鏌ヨ鏈烘瀯鏍�
+     * @Author wh
+     * @Date 2023/7/11 11:32
+     */
+    public List<FinSysOrg> queryOrgListForTree(int orgType, Long parentId) {
+        if (parentId <= 0) {
+            // 灞曠ず鍏ㄩ儴鑺傜偣
+            return this.select(QUERY_TREE_ALL, new Object[]{orgType}, new FinSysOrg());
+        } else {
+            // 鏄剧ず鎸囧畾涓嬬骇
+            return this.select(QUERY_TREE_ONE, new Object[]{orgType, parentId}, new FinSysOrg());
+        }
+    }
+
+    public List<FinSysOrg> getAllSysOrgByPhone(String orgId, Integer orgType) {
+        return this.select(QUERY_SYS_ORG_BY_ORGID, new Object[]{orgId, orgType}, new FinSysOrg());
+    }
+
+    public List<FinSysOrg> getByTenantId(String tenantId) {
+        return this.select(QUERY_SYS_ORG_BY_TENANT_ID, new Object[]{tenantId}, new FinSysOrg());
+    }
+}
diff --git a/consum-base/src/main/java/com/consum/base/service/FinSysTenantServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/FinSysTenantServiceImpl.java
index d916f93..686bd31 100644
--- a/consum-base/src/main/java/com/consum/base/service/FinSysTenantServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/service/FinSysTenantServiceImpl.java
@@ -2,34 +2,130 @@
 
 import com.consum.base.pojo.FinSysTenantParam;
 import com.consum.model.po.FinSysTenant;
-import com.iplatform.model.po.S_user_core;
+import com.consum.model.po.FinSysTenantUser;
 import com.walker.infrastructure.utils.CollectionUtils;
 import com.walker.infrastructure.utils.DateUtils;
 import com.walker.infrastructure.utils.StringUtils;
 import com.walker.jdbc.service.BaseServiceImpl;
 import org.springframework.stereotype.Service;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
 
-/**
- * @Description 绯荤粺鏈烘瀯
- * @Author 鍗㈠簡闃�
- * @Date 2023/10/23
- */
 @Service
 public class FinSysTenantServiceImpl extends BaseServiceImpl {
 
-    private static final String QUERY_BY_PARENT_CODE = "SELECT * FROM fin_sys_tenant WHERE CODE = ?";
+    private static final String QUERY_TREE_ALL = "select * from FIN_SYS_TENANT where is_delete = 0 and status = 1  order by parent_id, LV ASC";
+    private static final String QUERY_TREE_BY_CODE = "SELECT * FROM FIN_SYS_TENANT  ";
+    private static final String QUERY_BY_PARENT_ID = "SELECT * FROM FIN_SYS_TENANT WHERE parent_id = ?";
+    private static final String QUERY_BY_PARENT_CODE = "SELECT * FROM FIN_SYS_TENANT WHERE CODE = ?";
+    private static final String QUERY_LIST_BY_CITY_CODE = "SELECT ID, NAME, CODE, CASE WHEN LV = 2 THEN ID ELSE PARENT_ID END AS PARENT_ID, LV, TENANT_TYPE, BELONG_PROVINCE FROM FIN_SYS_TENANT  ";
+    private static final String QUERY_LIST_BY_PARENT_ID = "SELECT * FROM FIN_SYS_TENANT WHERE PARENT_ID = ? ORDER BY LV ASC";
 
     /**
-     * @Description 鏍规嵁鏈烘瀯id鏌ヨ鏈烘瀯
-     * @Author 鍗㈠簡闃�
-     * @Date 2023/10/23
+     * @Author 锛歱ower
+     * @Date 锛� 2023/7/20 20:41
+     * 鑾峰彇鍖哄垝淇℃伅 涓昏鐢ㄤ簬缂撳瓨
      */
-    public FinSysTenant selectByTenantId(String code) {
-        List<FinSysTenant> select = this.select(QUERY_BY_PARENT_CODE, new Object[]{code}, new FinSysTenant());
+    public FinSysTenant queryOneByCode(String code) {
+        FinSysTenant tenant = new FinSysTenant();
+        tenant.setCode(code);
+        List<FinSysTenant> tenantList = this.select(tenant);
+        if (!StringUtils.isEmptyList(tenantList)) {
+            return tenantList.get(0);
+        }
+        return null;
+    }
+
+
+    private static final String QUERY_LV2_ALL = "SELECT * FROM FIN_SYS_TENANT WHERE LV < 3 ORDER BY CODE ASC";
+
+    public List<FinSysTenant> queryForTree() {
+        // 灞曠ず鍏ㄩ儴鑺傜偣
+        return this.select(QUERY_TREE_ALL, new Object[]{}, new FinSysTenant());
+    }
+
+    /**
+     * @Author 锛歱ower
+     * @Date 锛� 2023/7/20 16:34
+     * 鏍规嵁id 鏌ヨ涓嬬骇鎵�鏈夎妭鐐� 鍦板競鏌ヨ鑷繁 鐪佹煡璇㈡墍鏈夊湴甯�
+     */
+    public List<FinSysTenant> queryTreeById(Long id, Integer lv) {
+        if (lv == 3) {
+            return new ArrayList<>();
+        }
+        Map<String, Object> parameter = new HashMap<>(5);
+        StringBuilder sql = new StringBuilder(QUERY_TREE_BY_CODE);
+        if (id != null && lv == 1) {
+            sql.append(" WHERE PARENT_ID = :orgId OR ID = :orgId");
+            parameter.put("orgId", id);
+        }
+        if (id != null && lv == 2) {
+            sql.append(" WHERE ID = :orgId");
+            parameter.put("orgId", id);
+        }
+        return this.select(sql.toString(), parameter, new FinSysTenant());
+    }
+
+    /**
+     * @Author 锛歱ower
+     * @Date 锛� 2023/7/21 14:46
+     * 鐗规畩鏁版嵁 绂佹鍏朵粬鎺ュ彛浣跨敤
+     */
+    public Map<Long, List<FinSysTenant>> queryCountyByCityCode(Long id, Integer lv) {
+        Map<String, Object> parameter = new HashMap<>(5);
+        StringBuilder sql = new StringBuilder(QUERY_LIST_BY_CITY_CODE);
+        if (id != null && (lv == 2 || lv == 3)) {
+            sql.append(" WHERE LV >= 2  ");
+            sql.append(" AND (PARENT_ID = :orgId OR ID = :orgId ) ");
+            parameter.put("orgId", id);
+        } else {
+            sql.append(" WHERE LV > 1  ");
+            sql.append(" AND PARENT_ID IS NOT NULL ");
+        }
+        sql.append(" ORDER BY PARENT_ID ,ID ");
+        List<FinSysTenant> list = this.select(sql.toString(), parameter, new FinSysTenant());
+        // return list.stream().filter(tenant -> Objects.nonNull(tenant.getParentId())).collect(Collectors.groupingBy(FinSysTenant::getParentId));
+        return list.stream().collect(Collectors.groupingBy(FinSysTenant::getParentId));
+    }
+
+
+    /**
+     * @Description 鏌ヨ鎵�鏈夌殑甯傜骇甯︽渤鍗楃渷鐨勫尯鍒�
+     * @Author wh
+     * @Date 2023/7/20 15:29
+     */
+    public List<FinSysTenant> selectByLV2() {
+        return this.select(QUERY_LV2_ALL, new Object[]{}, new FinSysTenant());
+    }
+
+    /**
+     * @Description 鏍规嵁鐖剁骇id鑾峰彇涓嬬骇鍒楄〃
+     * @Author wh
+     * @Date 2023/7/25 13:53
+     */
+    public List<FinSysTenant> getByParentId(Long parentId) {
+        return this.select(QUERY_LIST_BY_PARENT_ID, new Object[]{parentId}, new FinSysTenant());
+    }
+
+    /**
+     * @Description 鏍规嵁鍖哄垝CODE鏌ヨ鍖哄垝淇℃伅
+     * @Author wh
+     * @Date 2023/9/11 19:16
+     */
+    public FinSysTenant selectByParentId(String parentId) {
+        List<FinSysTenant> select = this.select(QUERY_BY_PARENT_ID, new Object[]{parentId}, new FinSysTenant());
+        if (StringUtils.isEmptyList(select)) {
+            return null;
+        } else {
+            return select.get(0);
+        }
+    }
+
+    public FinSysTenant selectByTenantId(String tenantCode) {
+        List<FinSysTenant> select = this.select(QUERY_BY_PARENT_CODE, new Object[]{tenantCode}, new FinSysTenant());
         if (StringUtils.isEmptyList(select)) {
             return null;
         } else {
@@ -38,12 +134,30 @@
     }
 
     /**
+     * 鍒犻櫎
+     * @author 鍗㈠簡闃�
+     * @date 2023/10/4
+     */
+    public int updateById(FinSysTenantParam param, FinSysTenantUser sysInfo) {
+        FinSysTenant finSysTenant = new FinSysTenant();
+        finSysTenant.setTempId(param.getId());
+        finSysTenant.setStatus(0);
+        finSysTenant.setIsDelete(1);
+        finSysTenant.setModified(getCurrentDate());
+        finSysTenant.setUpdateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+        finSysTenant.setUpdateBy(sysInfo.getUserName());
+        return this.update(finSysTenant);
+    }
+
+
+
+    /**
      * 娣诲姞鏈烘瀯
      * @author 鍗㈠簡闃�
      * @date 2023/10/4
      */
-    public int addSysTenant(FinSysTenantParam param, S_user_core currentUser, int lv) {
-        FinSysTenant sysTenant = new FinSysTenant();
+    public int addFinSysTenant(FinSysTenantParam param, FinSysTenantUser sysInfo, int lv) {
+        FinSysTenant finSysTenant = new FinSysTenant();
 
         //id鍜宼empId
         StringBuilder sql = new StringBuilder("SELECT max(id) FROM fin_sys_tenant WHERE 1=1");
@@ -59,21 +173,23 @@
         } else {
             id = param.getParentId() * 1000 + 1;
         }
-        sysTenant.setTempId(id);
-        sysTenant.setId(id);
-        sysTenant.setStatus(param.getStatus());
+        finSysTenant.setTempId(id);
+        finSysTenant.setId(id);
+        finSysTenant.setStatus(param.getStatus());
 
-        sysTenant.setParentId(param.getParentId());
-        sysTenant.setCode(param.getCode());
-        sysTenant.setName(param.getName());
-        sysTenant.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
-        sysTenant.setSummary(param.getSummary());
-        sysTenant.setCreateBy(currentUser.getUser_name());
+        finSysTenant.setParentId(param.getParentId());
+        finSysTenant.setCode(param.getCode());
+        //璁剧疆璇︾粏鍦板潃鍙婄粡绾害
+        finSysTenant.setName(param.getName());
+        finSysTenant.setCreateTime3(getCurrentDate());
+        finSysTenant.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+        finSysTenant.setSummary(param.getSummary());
+        finSysTenant.setCreateBy(sysInfo.getUserName());
         //璁剧疆鍚勫眰绾d鍙婂悕绉�
-        sysTenant.setLv(lv);
-        setLvIdAndName(param, sysTenant, id, lv);
+        finSysTenant.setLv(lv);
+        setLvIdAndName(param, finSysTenant, id, lv);
 
-        return this.insert(sysTenant);
+        return this.insert(finSysTenant);
     }
 
     /**
@@ -82,15 +198,15 @@
      * @author 鍗㈠簡闃�
      * @date 2023/10/4
      */
-    private void setLvIdAndName(FinSysTenantParam param, FinSysTenant sysTenant, long id, int lv) {
+    private void setLvIdAndName(FinSysTenantParam param, FinSysTenant finSysTenant, long id, int lv) {
         if (lv == 2) {    //鏂板甯傜骇鏈烘瀯
             //鏌ヨ涓婁竴绾� - 鐪佺骇
             FinSysTenant finSysTenant1 = this.get(new FinSysTenant(param.getParentId()));
             if (finSysTenant1 != null) {
-                sysTenant.setLv1Id(finSysTenant1.getId());
-                sysTenant.setLv1Name(finSysTenant1.getName());
-                sysTenant.setLv2Id(id);
-                sysTenant.setLv2Name(param.getName());
+                finSysTenant.setLv1Id(finSysTenant1.getId());
+                finSysTenant.setLv1Name(finSysTenant1.getName());
+                finSysTenant.setLv2Id(id);
+                finSysTenant.setLv2Name(param.getName());
             }
         } else if (lv == 3) {     //鏂板鍘跨骇鏈烘瀯
             //鏌ヨ涓婁竴绾� - 甯傜骇
@@ -99,12 +215,12 @@
                 //鏌ヨ涓婁竴绾� - 鐪佺骇
                 FinSysTenant finSysTenant1 = this.get(new FinSysTenant(finSysTenant2.getParentId()));
 
-                sysTenant.setLv1Id(finSysTenant1.getId());
-                sysTenant.setLv1Name(finSysTenant1.getName());
-                sysTenant.setLv2Id(finSysTenant2.getId());
-                sysTenant.setLv2Name(finSysTenant2.getName());
-                sysTenant.setLv3Id(id);
-                sysTenant.setLv3Name(param.getName());
+                finSysTenant.setLv1Id(finSysTenant1.getId());
+                finSysTenant.setLv1Name(finSysTenant1.getName());
+                finSysTenant.setLv2Id(finSysTenant2.getId());
+                finSysTenant.setLv2Name(finSysTenant2.getName());
+                finSysTenant.setLv3Id(id);
+                finSysTenant.setLv3Name(param.getName());
             }
         } else if (lv == 4) {      //鏂板鏀眬鏈烘瀯
             //鏌ヨ涓婁竴绾� - 鍘跨骇
@@ -116,17 +232,69 @@
                     //鏌ヨ涓婁竴绾� - 鐪佺骇
                     FinSysTenant sysTenant1 = this.get(new FinSysTenant(finSysTenant2.getParentId()));
                     if (sysTenant1 != null) {
-                        sysTenant.setLv1Id(sysTenant1.getId());
-                        sysTenant.setLv1Name(sysTenant1.getName());
-                        sysTenant.setLv2Id(finSysTenant2.getId());
-                        sysTenant.setLv2Name(finSysTenant2.getName());
-                        sysTenant.setLv3Id(finSysTenant3.getId());
-                        sysTenant.setLv3Name(finSysTenant3.getName());
-                        sysTenant.setLv4Id(id);
-                        sysTenant.setLv4Name(param.getName());
+                        finSysTenant.setLv1Id(sysTenant1.getId());
+                        finSysTenant.setLv1Name(sysTenant1.getName());
+                        finSysTenant.setLv2Id(finSysTenant2.getId());
+                        finSysTenant.setLv2Name(finSysTenant2.getName());
+                        finSysTenant.setLv3Id(finSysTenant3.getId());
+                        finSysTenant.setLv3Name(finSysTenant3.getName());
+                        finSysTenant.setLv4Id(id);
+                        finSysTenant.setLv4Name(param.getName());
                     }
                 }
             }
         }
     }
+
+
+    /**
+     * 鎵归噺娣诲姞鏈烘瀯
+     * @author jlq
+     * @date 2023/10/9
+     */
+    public void insertFinSysTenantBatch(List<FinSysTenantParam> params, FinSysTenantUser sysInfo, int lv){
+        for (FinSysTenantParam param : params) {
+            addFinSysTenant(param,sysInfo,lv);
+        }
+    }
+
+
+
+    /**
+     * 鑾峰彇褰撳墠鏃ユ湡
+     *
+     * @author 鍗㈠簡闃�
+     * @date 2023/10/4
+     */
+    private Date getCurrentDate() {
+        Date currentDate = new Date();
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String formattedDate = dateFormat.format(currentDate);
+        try {
+            Date convertedDate = dateFormat.parse(formattedDate);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return currentDate;
+    }
+
+    /**
+     * 缂栬緫
+     * @author 鍗㈠簡闃�
+     * @date 2023/10/6
+     */
+    public int updateFinSysTenant(FinSysTenant finSysTenant, FinSysTenantUser sysInfo) {
+        Integer lv = finSysTenant.getLv();
+        if (lv == 1) {
+            finSysTenant.setLv1Name(finSysTenant.getName());
+        } else if (lv == 2) {
+            finSysTenant.setLv2Name(finSysTenant.getName());
+        } else {
+            finSysTenant.setLv3Name(finSysTenant.getName());
+        }
+        finSysTenant.setModified(getCurrentDate());
+        finSysTenant.setUpdateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+        finSysTenant.setUpdateBy(sysInfo.getUserName());
+        return this.update(finSysTenant);
+    }
 }
diff --git a/consum-base/src/main/java/com/consum/base/service/FinSysTenantUserServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/FinSysTenantUserServiceImpl.java
new file mode 100644
index 0000000..037b2f0
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/service/FinSysTenantUserServiceImpl.java
@@ -0,0 +1,386 @@
+package com.consum.base.service;
+
+import com.consum.base.pojo.FinSysTenantUserSearchParam;
+import com.consum.model.po.FinSysOrg;
+import com.consum.model.po.FinSysTenantUser;
+import com.iplatform.base.util.PlatformRSAUtils;
+import com.iplatform.core.util.AESUtils;
+import com.iplatform.model.po.S_dept;
+import com.iplatform.model.po.S_role;
+import com.walker.db.page.GenericPager;
+import com.walker.infrastructure.utils.StringUtils;
+import com.walker.jdbc.service.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class FinSysTenantUserServiceImpl extends BaseServiceImpl {
+
+    private static final String SQL_GET_USER = "SELECT * FROM fin_sys_tenant_user WHERE IS_DELETE = 1 AND `STATUS` = 1 AND TENANT_ID = ?";
+    private static final String SQL_QH_PAGE_USER_PREFIX = "select fstu.* from FIN_SYS_TENANT_USER fstu where fstu.IS_DELETE = 1 ";
+    private static final String SQL_QH_PAGE_USER_PREFIX_NEW = "select fstu.* from FIN_SYS_TENANT_USER fstu where IS_DELETE = 1 and status=1  ";
+    private static final String SQL_TENANT_USER = "select fstu.*, fst.TENANT_NAME, fst.LV from FIN_SYS_TENANT_USER fstu\n" +
+            "left join (SELECT CODE, NAME AS TENANT_NAME, LV FROM FIN_SYS_TENANT) fst ON fstu.TENANT_CODE = fst.CODE\n" +
+            "where fstu.SYS_USER_ID = ?";
+    private static final String SQL_TENANT_USER_BY_USER_ID = "select * from FIN_SYS_TENANT_USER where SYS_USER_ID = ? AND STATUS = 1";
+    private static final String SQL_INSERT_ROLE_USER="insert into s_role_user(user_id, role_id, org_id) values(?,?,0)";
+
+    private static final String SQL_DELETE_ROLE_USER="DELETE FROM S_ROLE_USER WHERE USER_ID =?";
+
+    private static final String SQL_SELECT_USER_CODE="SELECT * FROM FIN_SYS_TENANT_USER  where  1 = 1 ";
+
+    private static final String SQL_SELECT_USER_ID="SELECT * FROM S_ROLE where 1=1 ";
+    private static final String SQL_DEPT_ROLES = "select * from s_dept where  status=0 and del_flag=0";
+
+    private static final String SQL_FIN_SYS_ORG = "SELECT * from FIN_SYS_ORG where ID=?";
+
+
+    private static final String SQL_TENANT_KF_USER = "select fstu.*, sru.USER_ID from FIN_SYS_TENANT_USER fstu\n" +
+            "left join (select USER_ID FROM S_ROLE_USER WHERE ROLE_ID = '1690961420053') sru ON fstu.SYS_USER_ID = sru.USER_ID\n" +
+            "WHERE IS_DELETE = 1 AND STATUS = 1 AND sru.USER_ID is NOT NULL AND TENANT_CODE = ?";
+
+    private static final String SQL_TEAM_KF_USER = "select fstu.*, sru.USER_ID,FST2.CODE as PARENT_Code from FIN_SYS_TENANT_USER fstu\n" +
+            " left join (select USER_ID FROM S_ROLE_USER WHERE ROLE_ID = 2) sru ON fstu.SYS_USER_ID = sru.USER_ID\n" +
+            " LEFT JOIN FIN_SYS_TENANT FST ON FST.CODE = fstu.TENANT_CODE \n" +
+            " LEFT JOIN FIN_SYS_TENANT FST2 ON FST2.ID = FST.PARENT_ID \n" +
+            "            WHERE IS_DELETE = 1 AND STATUS = 1 AND sru.USER_ID is NOT NULL AND fstu.ID != ?";
+
+    /**
+     * @Description 鍒嗛〉鏌ヨ绯荤粺鐢ㄦ埛
+     * @Author wh
+     * @Date 2023/7/17 14:26
+     */
+    public GenericPager<FinSysTenantUser> queryAllPageUser(FinSysTenantUserSearchParam param) {
+        Map<String, Object> parameter = new HashMap<>(5);
+        StringBuilder sql = new StringBuilder(SQL_QH_PAGE_USER_PREFIX);
+        if(param.getTenantCode() > 0){
+            sql.append(" and fstu.TENANT_CODE =:tenantCode");
+            parameter.put("tenantCode", param.getTenantCode());
+        }
+        if(param.getSupplierId() !=null  ){
+            sql.append(" and fstu.supplier_Id =:supplier_Id");
+            parameter.put("supplier_Id", param.getSupplierId());
+        }
+        if(StringUtils.isNotEmpty(param.getUserName())){
+            sql.append(" and USER_NAME like :userName");
+            parameter.put("userName", StringUtils.CHAR_PERCENT + param.getUserName() + StringUtils.CHAR_PERCENT);
+        }
+        if(StringUtils.isNotEmpty(param.getUserCode())){
+            sql.append(" and USER_CODE like :USER_CODE");
+            parameter.put("USER_CODE", StringUtils.CHAR_PERCENT + param.getUserCode() + StringUtils.CHAR_PERCENT);
+        }
+//        if(StringUtils.isNotEmpty(param.getUserCode())){
+//            sql.append(" and user_code like :user_code");
+//            parameter.put("user_code", StringUtils.CHAR_PERCENT + param.getUserCode() + StringUtils.CHAR_PERCENT);
+//        }
+        if(param.getStatus()!=null){
+            sql.append(" and status =:status");
+            parameter.put("status", param.getStatus());
+        }
+
+//        if(param.getRoleId()!=null &&!param.getRoleId().equals("")){
+//            sql.append(" and fstu.SYS_USER_ID  in  (select  user_id    from s_role_user where role_id = :role_id)");
+//            parameter.put("role_id", param.getRoleId());
+//        }
+
+
+        if(StringUtils.isNotEmpty(param.getUserPhone())){
+            sql.append(" and USER_PHONE =:userPhone");
+            try {
+                // 鍔犲瘑鎵嬫満鍙�
+                String key = PlatformRSAUtils.AES_KEY;
+                parameter.put("userPhone", AESUtils.encryptStrAES(param.getUserPhone(), key));
+            } catch (Exception e) {
+                log.error("鎵嬫満鍙峰姞瀵嗗け璐ワ紝 鍘熷洜鏄細" + e.getMessage());
+                parameter.put("userPhone", "");
+            }
+        }
+
+        // 杩欓噷鏄�夋嫨浜哄憳鍔犵殑
+        if(param.getType()!=null){
+                // 1 鏄储鏀跨敤鎴�  2 渚涘簲鍟�  浠栦咯鐨勫尯鍒氨鏄� 渚涘簲鍟唅d鏄惁涓虹┖
+               if(param.getType()==1){
+                   sql.append(" and  fstu.supplier_Id is  null  ");
+               }
+
+               if(param.getType()==2){
+                      //杩欓噷鏄� 鏌ョ殑渚涘簲鍟�   渚涘簲鍟唅d 宸茬粡鍦ㄤ笂闈㈠姞杩囦簡
+               }
+        }
+        // 缁戝畾CTI瀹㈡湇
+        if (param.getCtiStatus() != null) {
+            if (param.getCtiStatus() == 1) {
+                sql.append(" and fstu.AGENT_JID is not null ");
+            } else {
+                sql.append(" and fstu.AGENT_JID is null ");
+            }
+        }
+        sql.append(" ORDER BY SEQ asc ,CREATE_TIME desc");
+        return this.selectSplit(sql.toString(), parameter, new FinSysTenantUser());
+    }
+
+
+
+    /**
+     * @Description 鍒嗛〉鏌ヨ绯荤粺鐢ㄦ埛
+     * @Author wh
+     * @Date 2023/7/17 14:26
+     */
+    public GenericPager<FinSysTenantUser> queryAllPageUserNew(FinSysTenantUserSearchParam param) {
+        Map<String, Object> parameter = new HashMap<>(5);
+        StringBuilder sql = new StringBuilder(SQL_QH_PAGE_USER_PREFIX_NEW);
+        if(param.getTenantCode() > 0){
+            sql.append(" and fstu.TENANT_CODE =:tenantCode");
+            parameter.put("tenantCode", param.getTenantCode());
+        }
+        if(param.getSupplierId() !=null  ){
+            sql.append(" and fstu.supplier_Id =:supplier_Id");
+            parameter.put("supplier_Id", param.getSupplierId());
+        }
+        if(StringUtils.isNotEmpty(param.getUserName())){
+            sql.append(" and USER_NAME like :userName");
+            parameter.put("userName", StringUtils.CHAR_PERCENT + param.getUserName() + StringUtils.CHAR_PERCENT);
+        }
+        if(StringUtils.isNotEmpty(param.getUserCode())){
+            sql.append(" and user_code like :user_code");
+            parameter.put("user_code", StringUtils.CHAR_PERCENT + param.getUserCode() + StringUtils.CHAR_PERCENT);
+        }
+        if(param.getStatus()!=null){
+            sql.append(" and status like :status");
+            parameter.put("status", param.getStatus());
+        }
+
+        if(param.getRoleId()!=null &&!param.getRoleId().equals("")){
+            sql.append(" and fstu.SYS_USER_ID  in  (select  user_id    from s_role_user where role_id = :role_id)");
+            parameter.put("role_id", param.getRoleId());
+        }
+
+
+        if(StringUtils.isNotEmpty(param.getUserPhone())){
+            sql.append(" and USER_PHONE =:userPhone");
+            try {
+                // 鍔犲瘑鎵嬫満鍙�
+                String key = PlatformRSAUtils.AES_KEY;
+                parameter.put("userPhone", AESUtils.encryptStrAES(param.getUserPhone(), key));
+            } catch (Exception e) {
+                log.error("鎵嬫満鍙峰姞瀵嗗け璐ワ紝 鍘熷洜鏄細" + e.getMessage());
+                parameter.put("userPhone", "");
+            }
+        }
+
+        // 杩欓噷鏄�夋嫨浜哄憳鍔犵殑
+        if(param.getType()!=null){
+            // 1 鏄储鏀跨敤鎴�  2 渚涘簲鍟�  浠栦咯鐨勫尯鍒氨鏄� 渚涘簲鍟唅d鏄惁涓虹┖
+            if(param.getType()==1){
+                sql.append(" and  fstu.supplier_Id is  null  ");
+            }
+
+            if(param.getType()==2){
+                //杩欓噷鏄� 鏌ョ殑渚涘簲鍟�   渚涘簲鍟唅d 宸茬粡鍦ㄤ笂闈㈠姞杩囦簡
+            }
+        }
+        sql.append(" ORDER BY SEQ asc ,CREATE_TIME desc");
+        return this.selectSplit(sql.toString(), parameter, new FinSysTenantUser());
+    }
+
+    public FinSysTenantUser queryOneById(String id) {
+        FinSysTenantUser finSysTenantUser = new FinSysTenantUser();
+        finSysTenantUser.setId(Long.valueOf(id));
+        List<FinSysTenantUser> finSysTenantUserList = this.select(finSysTenantUser);
+        if(!StringUtils.isEmptyList(finSysTenantUserList)){
+            return finSysTenantUserList.get(0);
+        }
+        return null;
+    }
+
+    public FinSysTenantUser queryOneByUserId(String userId) {
+        List<FinSysTenantUser> finSysTenantUserList = this.select(SQL_TENANT_USER, new Object[]{userId}, new FinSysTenantUser());
+        if (finSysTenantUserList.size() > 0) {
+            return finSysTenantUserList.get(0);
+        } else {
+            return null;
+        }
+    }
+
+    /**
+     * 鎵归噺娣诲姞瑙掕壊瀵瑰簲鐨勭敤鎴枫��
+     * @param roleIdList
+     * @param userId
+     */
+    public void execInsertRoleUserList(List<Long> roleIdList, Long userId){
+        List<Object[]> parameters = new ArrayList<>();
+        Object[] one = null;
+        for(long roleId : roleIdList){
+            one = new Object[2];
+            one[0] = userId;
+            one[1] = roleId;
+            parameters.add(one);
+        }
+        this.execBatchUpdate(SQL_INSERT_ROLE_USER, parameters);
+    }
+
+    /**
+     * 鎵归噺娣诲姞瑙掕壊瀵瑰簲鐨勭敤鎴枫�傛敮鎸佸悓鏃跺涓敤鎴�
+     */
+    public void execInsertRoleUserList(List<FinSysTenantUser> finSysTenantUsers){
+        List<Object[]> parameters = new ArrayList<>();
+        for (FinSysTenantUser finSysTenantUser : finSysTenantUsers) {
+            Object[] one = null;
+            for(long roleId : finSysTenantUser.getRoleList()){
+                one = new Object[2];
+                one[0] = finSysTenantUser.getSysUserId();
+                one[1] = roleId;
+                parameters.add(one);
+            }
+        }
+
+        this.execBatchUpdate(SQL_INSERT_ROLE_USER, parameters);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎鐢ㄦ埛瑙掕壊
+     * @param userId
+     */
+    public void execDelRoleUserList(Long userId){
+        List<Object[]> parameters = new ArrayList<>();
+        Object[] one = new Object[1];
+        one[0]=userId;
+        parameters.add(one);
+        this.execBatchUpdate(SQL_DELETE_ROLE_USER, parameters);
+    }
+
+
+    /**
+     * 鏍规嵁userCode鏌ヨ閲嶅銆�
+     * @param userCode  鐢ㄦ埛鐧诲綍鏍囪瘑
+     * @return
+     */
+    public Integer getByUserCode(String userCode){
+        Map<String, Object> parameter = new HashMap<>();
+        StringBuilder sql = new StringBuilder(SQL_SELECT_USER_CODE);
+        sql.append("and  USER_CODE= :userCode");
+        parameter.put("userCode", userCode);
+        sql.append(" limit 1");
+        List<FinSysTenantUser> select = this.select(sql.toString(), parameter, new FinSysTenantUser());
+        Integer flag=0;
+        if (select!=null && select.size() >0){
+            flag=select.size();
+        }
+        return flag;
+    }
+
+    /**
+     * 鏍规嵁USERID鏌ヨ瑙掕壊
+     * @param userId
+     * @return
+     */
+    public List<S_role> getByUserId(Long userId){
+        Map<String, Object> parameter = new HashMap<>();
+        StringBuilder sql = new StringBuilder(SQL_SELECT_USER_ID);
+        sql.append("and ROLE_ID IN (SELECT DISTINCT(ROLE_ID) FROM S_ROLE_USER WHERE USER_ID= :userId )");
+        parameter.put("userId", userId);
+        List<S_role> select = this.select(sql.toString(), parameter, new S_role());
+        return select;
+    }
+
+    public List<S_dept> selectDept(String deptName) {
+        StringBuilder sqlStr=new StringBuilder(SQL_DEPT_ROLES);
+        Map<String, Object> paramts = new HashMap<>();
+        sqlStr.append(" and dept_name =:dept_name");
+        paramts.put("dept_name",deptName);
+        List<S_dept> orgDeptList = this.select(sqlStr.toString(), paramts, new S_dept());
+        return orgDeptList;
+    }
+
+    /**
+     * @Description 鑾峰彇瀹㈡湇
+     * @Author wh
+     * @Date 2023/7/19 10:12
+     */
+    public List<FinSysTenantUser> selectKF(String tenantCode) {
+        // 鏌ヨ瑙掕壊涓哄鏈嶄笖鏈烘瀯鍜屽綋鍓嶈姹傜敤鎴蜂竴鑷寸殑
+        return this.select(SQL_TENANT_KF_USER, new Object[]{tenantCode}, new FinSysTenantUser());
+    }
+//    public FinSysTenantUser selectKF(String tenantCode) {
+//        // 鏌ヨ瑙掕壊涓哄鏈嶄笖鏈烘瀯鍜屽綋鍓嶈姹傜敤鎴蜂竴鑷寸殑
+//        List<FinSysTenantUser> finSysTenantUserList = this.select(SQL_TENANT_KF_USER, new Object[]{tenantCode}, new FinSysTenantUser());
+//        if (finSysTenantUserList.size() > 0) {
+//            return finSysTenantUserList.get(0);
+//        } else {
+//            return null;
+//        }
+//    }
+
+    /**
+     * @Description 鑾峰彇鎵�鏈夊鏈嶄俊鎭紝涓嶅寘鍚嚜宸�
+     * @Author wh
+     * @Date 2023/7/20 15:33
+     */
+    public List<FinSysTenantUser> selectTeamKF(Long id) {
+        // 鏌ヨ瑙掕壊涓哄鏈嶄笖鏈烘瀯鍜屽綋鍓嶈姹傜敤鎴蜂竴鑷寸殑
+        List<FinSysTenantUser> finSysTenantUserList = this.select(SQL_TEAM_KF_USER, new Object[]{id}, new FinSysTenantUser());
+        return finSysTenantUserList;
+    }
+
+    /**
+     * 鏍规嵁鏈烘瀯id鏌ヨ鏈烘瀯
+     * @param orgId
+     * @return
+     */
+    public List<FinSysOrg> selectFinSysOrg(String orgId) {
+        List<FinSysOrg> select = this.select(SQL_FIN_SYS_ORG, new Object[]{orgId}, new FinSysOrg());
+        return select;
+    }
+
+    public FinSysTenantUser queryBySysUserId(Long userId) {
+        List<FinSysTenantUser> select = this.select(SQL_TENANT_USER_BY_USER_ID, new Object[]{userId}, new FinSysTenantUser());
+        if (StringUtils.isEmptyList(select)) {
+            return null;
+        } else {
+            return select.get(0);
+        }
+    }
+
+    private static final String SQL_GET_ALL_USER = "select DISTINCT( fstu.sys_user_id), fstu.USER_NAME as USER_Name, fstu.id as Id from (\n" +
+            "SELECT DISTINCT(CREATE_BY), EVENT_MANAGE_ID FROM FIN_EVENT_MANAGE_RECORD) femr LEFT JOIN FIN_SYS_TENANT_USER fstu ON femr.CREATE_BY = fstu.ID\n" +
+            "LEFT JOIN FIN_EVENT_MANAGE fem ON fem.id = femr.EVENT_MANAGE_ID WHERE USER_NAME is not NULL ";
+
+    /**
+     * @Description 鏌ヨ鏁版嵁缁熻鐨勪俊鎭�
+     * @Author wh
+     * @Date 2023/9/5 11:53
+     * */
+    public List<FinSysTenantUser> getStatics(FinSysTenantUserSearchParam finSysTenantUserSearchParam) {
+        Map<String, Object> parameters = new HashMap<>(10);
+        StringBuilder sql = new StringBuilder(SQL_GET_ALL_USER);
+        sql.append(" and fem.PROJECT_ID = :projectId");
+        parameters.put("projectId", finSysTenantUserSearchParam.getProjectId());
+        if (StringUtils.isNotEmpty(finSysTenantUserSearchParam.getUserName())) {
+            sql.append(" and fstu.USER_NAME like :userName");
+            parameters.put("userName", StringUtils.CHAR_PERCENT + finSysTenantUserSearchParam.getUserName() + StringUtils.CHAR_PERCENT);
+        }
+        if(finSysTenantUserSearchParam.getStartTime() != null && finSysTenantUserSearchParam.getStartTime() > 0){
+            sql.append(" and fem.create_time >= :startTime");
+            parameters.put("startTime", finSysTenantUserSearchParam.getStartTime());
+        }
+        if(finSysTenantUserSearchParam.getEndTime() != null && finSysTenantUserSearchParam.getEndTime() > 0){
+            sql.append(" and fem.create_time <= :endTime");
+            parameters.put("endTime", finSysTenantUserSearchParam.getEndTime());
+        }
+        sql.append(" ORDER BY ID DESC");
+        return this.select(sql.toString(), parameters, new FinSysTenantUser());
+    }
+
+    /**
+     * @Description 鏍规嵁OrgId鑾峰彇鐢ㄦ埛淇℃伅
+     * @Author wh
+     * @Date 2023/10/4 15:49
+     */
+    public List<FinSysTenantUser> getByOrgId(Long orgId) {
+        return this.select(SQL_GET_USER, new Object[]{orgId}, new FinSysTenantUser());
+    }
+}
diff --git a/consum-base/src/main/java/com/consum/base/support/FinSysTenantGenerator.java b/consum-base/src/main/java/com/consum/base/support/FinSysTenantGenerator.java
new file mode 100644
index 0000000..4693c85
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/support/FinSysTenantGenerator.java
@@ -0,0 +1,21 @@
+package com.consum.base.support;
+
+import com.consum.model.po.FinSysTenant;
+import com.walker.infrastructure.tree.AbstractTreeGenerator;
+import com.walker.infrastructure.tree.TreeNode;
+
+import java.util.List;
+
+public class FinSysTenantGenerator extends AbstractTreeGenerator<FinSysTenant> {
+
+    public FinSysTenantGenerator(String dummyRootName) {
+        super(dummyRootName);
+        this.setMultiRoot(true);
+    }
+
+    protected TreeNode toTreeNode(FinSysTenant entity) {
+        TreeNode treeNode = new TreeNode(entity.getId(), entity.getName(), (List) null, entity.getParentId(), entity.getCode());
+        return treeNode;
+    }
+}
+
diff --git a/consum-base/src/main/java/com/consum/base/support/FinSysTenantGeneratorTow.java b/consum-base/src/main/java/com/consum/base/support/FinSysTenantGeneratorTow.java
new file mode 100644
index 0000000..9254528
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/support/FinSysTenantGeneratorTow.java
@@ -0,0 +1,21 @@
+package com.consum.base.support;
+
+import com.consum.model.po.FinSysTenantRegion;
+import com.walker.infrastructure.tree.AbstractTreeGenerator;
+import com.walker.infrastructure.tree.TreeNode;
+
+import java.util.List;
+
+public class FinSysTenantGeneratorTow extends AbstractTreeGenerator<FinSysTenantRegion> {
+
+    public FinSysTenantGeneratorTow(String dummyRootName) {
+        super(dummyRootName);
+        this.setMultiRoot(true);
+    }
+
+    protected TreeNode toTreeNode(FinSysTenantRegion entity) {
+        TreeNode treeNode = new TreeNode(entity.getId(), entity.getName(), (List) null, entity.getParentId(), entity.getCode());
+        return treeNode;
+    }
+}
+
diff --git a/consum-base/src/main/java/com/consum/base/util/FinSysTenantUtils.java b/consum-base/src/main/java/com/consum/base/util/FinSysTenantUtils.java
index 3b1218b..f507049 100644
--- a/consum-base/src/main/java/com/consum/base/util/FinSysTenantUtils.java
+++ b/consum-base/src/main/java/com/consum/base/util/FinSysTenantUtils.java
@@ -1,26 +1,34 @@
-//package com.consum.base.util;
-//
-//import com.consum.model.po.FinSysTenant;
-//import com.walker.infrastructure.tree.TreeNode;
-//
-//import java.util.List;
-//
-///**
-// * @Description 鍖哄垝鑺傜偣
-// * @Author wh
-// * @Date 2023/7/11 11:26
-// */
-//public class FinSysTenantUtils {
-//
-//    public FinSysTenantUtils() {
-//    }
-//
-//    public static final List<TreeNode> getFinSysTenantTree(List<FinSysTenant> finSysTenantList) {
-//        FinSysTenantGenerator finSysTenantGenerator = new FinSysTenantGenerator((String)null);
-//        finSysTenantGenerator.setEntityList(finSysTenantList);
-//        List<TreeNode> treeNodeList = finSysTenantGenerator.getTreeRootList();
-//        return treeNodeList;
-//    }
-//
-//
-//}
+package com.consum.base.util;
+
+import com.consum.base.support.FinSysTenantGenerator;
+import com.consum.base.support.FinSysTenantGeneratorTow;
+import com.consum.model.po.FinSysTenant;
+import com.consum.model.po.FinSysTenantRegion;
+import com.walker.infrastructure.tree.TreeNode;
+
+import java.util.List;
+
+/**
+ * @Description 鍖哄垝鑺傜偣
+ * @Author wh
+ * @Date 2023/7/11 11:26
+ */
+public class FinSysTenantUtils {
+
+    public FinSysTenantUtils() {
+    }
+
+    public static final List<TreeNode> getFinSysTenantTree(List<FinSysTenant> finSysTenantList) {
+        FinSysTenantGenerator finSysTenantGenerator = new FinSysTenantGenerator((String)null);
+        finSysTenantGenerator.setEntityList(finSysTenantList);
+        List<TreeNode> treeNodeList = finSysTenantGenerator.getTreeRootList();
+        return treeNodeList;
+    }
+
+    public static final List<TreeNode> getFinSysTenantTreeTow(List<FinSysTenantRegion> finSysTenantList) {
+        FinSysTenantGeneratorTow finSysTenantGenerator = new FinSysTenantGeneratorTow((String)null);
+        finSysTenantGenerator.setEntityList(finSysTenantList);
+        List<TreeNode> treeNodeList = finSysTenantGenerator.getTreeRootList();
+        return treeNodeList;
+    }
+}
diff --git a/consum-model-pojo/src/main/java/com/consum/model/po/BaseGoodsTemplate.java b/consum-model-pojo/src/main/java/com/consum/model/po/BaseGoodsTemplate.java
index f857b66..1be32be 100644
--- a/consum-model-pojo/src/main/java/com/consum/model/po/BaseGoodsTemplate.java
+++ b/consum-model-pojo/src/main/java/com/consum/model/po/BaseGoodsTemplate.java
@@ -72,9 +72,17 @@
     @JsonIgnore
     protected boolean isset_createDate = false;
 
-    private Integer type = null;
+    private Long dTime = null;
     @JsonIgnore
-    protected boolean isset_type = false;
+    protected boolean isset_dTime = false;
+
+    private Long dUserId = null;
+    @JsonIgnore
+    protected boolean isset_dUserId = false;
+
+    private String dUserName = null;
+    @JsonIgnore
+    protected boolean isset_dUserName = false;
 
     /**
      * 榛樿鏋勯�犲嚱鏁�
@@ -293,18 +301,46 @@
         return this.createDate == null;
     }
 
-    public Integer getType() {
-        return this.type;
+    public Long getDTime() {
+        return this.dTime;
     }
 
-    public void setType(Integer type) {
-        this.type = type;
-        this.isset_type = true;
+    public void setDTime(Long dTime) {
+        this.dTime = dTime;
+        this.isset_dTime = true;
     }
 
     @JsonIgnore
-    public boolean isEmptyType() {
-        return this.type == null;
+    public boolean isEmptyDTime() {
+        return this.dTime == null;
+    }
+
+    public Long getDUserId() {
+        return this.dUserId;
+    }
+
+    public void setDUserId(Long dUserId) {
+        this.dUserId = dUserId;
+        this.isset_dUserId = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyDUserId() {
+        return this.dUserId == null;
+    }
+
+    public String getDUserName() {
+        return this.dUserName;
+    }
+
+    public void setDUserName(String dUserName) {
+        this.dUserName = dUserName;
+        this.isset_dUserName = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyDUserName() {
+        return this.dUserName == null || this.dUserName.length() == 0;
     }
 
     /**
@@ -327,7 +363,9 @@
                 .append("agencyId=").append(this.agencyId)
                 .append("agencyName=").append(this.agencyName)
                 .append("createDate=").append(this.createDate)
-                .append("type=").append(this.type)
+                .append("dTime=").append(this.dTime)
+                .append("dUserId=").append(this.dUserId)
+                .append("dUserName=").append(this.dUserName)
                 .toString();
     }
 
@@ -384,8 +422,14 @@
         if (this.isset_createDate) {
             base_goods_template.setCreateDate(this.getCreateDate());
         }
-        if (this.isset_type) {
-            base_goods_template.setType(this.getType());
+        if (this.isset_dTime) {
+            base_goods_template.setDTime(this.getDTime());
+        }
+        if (this.isset_dUserId) {
+            base_goods_template.setDUserId(this.getDUserId());
+        }
+        if (this.isset_dUserName) {
+            base_goods_template.setDUserName(this.getDUserName());
         }
         return base_goods_template;
     }
diff --git a/consum-model-pojo/src/main/java/com/consum/model/po/BaseGoodsTemplate_mapper.java b/consum-model-pojo/src/main/java/com/consum/model/po/BaseGoodsTemplate_mapper.java
index b20720b..108c247 100644
--- a/consum-model-pojo/src/main/java/com/consum/model/po/BaseGoodsTemplate_mapper.java
+++ b/consum-model-pojo/src/main/java/com/consum/model/po/BaseGoodsTemplate_mapper.java
@@ -41,7 +41,9 @@
     public static final String AgencyId = "agency_id";
     public static final String AgencyName = "agency_name";
     public static final String CreateDate = "create_date";
-    public static final String Type = "type";
+    public static final String DTime = "d_time";
+    public static final String DUserId = "d_user_id";
+    public static final String DUserName = "d_user_name";
 
     /**
      * 榛樿鏋勯�犲嚱鏁�
@@ -94,8 +96,14 @@
         if (baseGoodsTemplate.isset_createDate) {
             this.setCreateDate(baseGoodsTemplate.getCreateDate());
         }
-        if (baseGoodsTemplate.isset_type) {
-            this.setType(baseGoodsTemplate.getType());
+        if (baseGoodsTemplate.isset_dTime) {
+            this.setDTime(baseGoodsTemplate.getDTime());
+        }
+        if (baseGoodsTemplate.isset_dUserId) {
+            this.setDUserId(baseGoodsTemplate.getDUserId());
+        }
+        if (baseGoodsTemplate.isset_dUserName) {
+            this.setDUserName(baseGoodsTemplate.getDUserName());
         }
         // 鍘绘帀锛�2022-09-07
         // this.setDatabaseName_(base_goods_template.getDatabaseName_());
@@ -153,7 +161,9 @@
         ib.set(AgencyId, this.getAgencyId(), this.isset_agencyId);
         ib.set(AgencyName, this.getAgencyName(), this.isset_agencyName);
         ib.set(CreateDate, this.getCreateDate(), this.isset_createDate);
-        ib.set(Type, this.getType(), this.isset_type);
+        ib.set(DTime, this.getDTime(), this.isset_dTime);
+        ib.set(DUserId, this.getDUserId(), this.isset_dUserId);
+        ib.set(DUserName, this.getDUserName(), this.isset_dUserName);
         return ib.genMapSql();
     }
 
@@ -176,7 +186,9 @@
         ub.set(AgencyId, this.getAgencyId(), this.isset_agencyId);
         ub.set(AgencyName, this.getAgencyName(), this.isset_agencyName);
         ub.set(CreateDate, this.getCreateDate(), this.isset_createDate);
-        ub.set(Type, this.getType(), this.isset_type);
+        ub.set(DTime, this.getDTime(), this.isset_dTime);
+        ub.set(DUserId, this.getDUserId(), this.isset_dUserId);
+        ub.set(DUserName, this.getDUserName(), this.isset_dUserName);
         ub.where(this.getPkName_(), this.getPkValue_());
         return ub.genMapSql();
     }
@@ -200,7 +212,9 @@
         ub.set(AgencyId, this.getAgencyId(), this.isset_agencyId);
         ub.set(AgencyName, this.getAgencyName(), this.isset_agencyName);
         ub.set(CreateDate, this.getCreateDate(), this.isset_createDate);
-        ub.set(Type, this.getType(), this.isset_type);
+        ub.set(DTime, this.getDTime(), this.isset_dTime);
+        ub.set(DUserId, this.getDUserId(), this.isset_dUserId);
+        ub.set(DUserName, this.getDUserName(), this.isset_dUserName);
         return ub.genMapSql(where, parameters);
     }
 
@@ -223,7 +237,9 @@
         ub.set(AgencyId, this.getAgencyId(), this.isset_agencyId);
         ub.set(AgencyName, this.getAgencyName(), this.isset_agencyName);
         ub.set(CreateDate, this.getCreateDate(), this.isset_createDate);
-        ub.set(Type, this.getType(), this.isset_type);
+        ub.set(DTime, this.getDTime(), this.isset_dTime);
+        ub.set(DUserId, this.getDUserId(), this.isset_dUserId);
+        ub.set(DUserName, this.getDUserName(), this.isset_dUserName);
         return ub.genArraySql(where, parameters);
     }
 
@@ -271,7 +287,7 @@
      */
     @Override
     public SqlAndParameters<Map<String, Object>> getSelectSql_(String where, Map<String, Object> parameters) {
-        return new SqlAndParameters<>("select id, goods_code, goods_name, classification, states, category_id, f_agency_id, s_agency_id, t_agency_id, parent_agency_id, agency_level, agency_id, agency_name, create_date, type from " + this.getTableName_() + " " + where, parameters);
+        return new SqlAndParameters<>("select id, goods_code, goods_name, classification, states, category_id, f_agency_id, s_agency_id, t_agency_id, parent_agency_id, agency_level, agency_id, agency_name, create_date, d_time, d_user_id, d_user_name from " + this.getTableName_() + " " + where, parameters);
     }
 
     /**
@@ -279,7 +295,7 @@
      */
     @Override
     public SqlAndParameters<Object[]> getSelectSql_(String where, Object[] parameters) {
-        return new SqlAndParameters<>("select id, goods_code, goods_name, classification, states, category_id, f_agency_id, s_agency_id, t_agency_id, parent_agency_id, agency_level, agency_id, agency_name, create_date, type from " + this.getTableName_() + " " + where, parameters);
+        return new SqlAndParameters<>("select id, goods_code, goods_name, classification, states, category_id, f_agency_id, s_agency_id, t_agency_id, parent_agency_id, agency_level, agency_id, agency_name, create_date, d_time, d_user_id, d_user_name from " + this.getTableName_() + " " + where, parameters);
     }
 
     /**
@@ -404,14 +420,26 @@
                 base_goods_template.setCreateDate(rs.getLong(columnIndex));
             }
         }
-        columnIndex = resultSetUtils.findColumn(rs, BaseGoodsTemplate_mapper.Type);
+        columnIndex = resultSetUtils.findColumn(rs, BaseGoodsTemplate_mapper.DTime);
         if (columnIndex > 0) {
             if (rs.getBigDecimal(columnIndex) == null) {
-                base_goods_template.setType(null);
+                base_goods_template.setDTime(null);
             } else {
-                base_goods_template.setType(rs.getInt(columnIndex));
+                base_goods_template.setDTime(rs.getLong(columnIndex));
             }
         }
+        columnIndex = resultSetUtils.findColumn(rs, BaseGoodsTemplate_mapper.DUserId);
+        if (columnIndex > 0) {
+            if (rs.getBigDecimal(columnIndex) == null) {
+                base_goods_template.setDUserId(null);
+            } else {
+                base_goods_template.setDUserId(rs.getLong(columnIndex));
+            }
+        }
+        columnIndex = resultSetUtils.findColumn(rs, BaseGoodsTemplate_mapper.DUserName);
+        if (columnIndex > 0) {
+            base_goods_template.setDUserName(rs.getString(columnIndex));
+        }
         return base_goods_template;
     }
 }
diff --git a/consum-model-pojo/src/main/java/com/consum/model/po/FinSysTenantRegion.java b/consum-model-pojo/src/main/java/com/consum/model/po/FinSysTenantRegion.java
new file mode 100644
index 0000000..6299bae
--- /dev/null
+++ b/consum-model-pojo/src/main/java/com/consum/model/po/FinSysTenantRegion.java
@@ -0,0 +1,920 @@
+
+package com.consum.model.po;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.walker.jdbc.BasePo;
+
+/**
+ * 琛ㄥ悕:FIN_SYS_TENANT_REGION *
+ * @author genrator
+ */
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
+public class FinSysTenantRegion extends BasePo<FinSysTenantRegion> {
+    // 搴忓垪鍖栫増鏈彿
+    private static final long serialVersionUID = 1L;
+
+    // 涓婚敭
+    private Long tempId = null;
+    @JsonIgnore
+    protected boolean isset_tempId = false;
+
+    // 灞炴�у垪琛�
+    private Long id = null;
+    @JsonIgnore
+    protected boolean isset_id = false;
+
+    private Long parentId = null;
+    @JsonIgnore
+    protected boolean isset_parentId = false;
+
+    private String code = null;
+    @JsonIgnore
+    protected boolean isset_code = false;
+
+    private String financeOrgCode = null;
+    @JsonIgnore
+    protected boolean isset_financeOrgCode = false;
+
+    private String name = null;
+    @JsonIgnore
+    protected boolean isset_name = false;
+
+    private Long lv1Id = null;
+    @JsonIgnore
+    protected boolean isset_lv1Id = false;
+
+    private String lv1Name = null;
+    @JsonIgnore
+    protected boolean isset_lv1Name = false;
+
+    private Long lv2Id = null;
+    @JsonIgnore
+    protected boolean isset_lv2Id = false;
+
+    private String lv2Name = null;
+    @JsonIgnore
+    protected boolean isset_lv2Name = false;
+
+    private Long lv3Id = null;
+    @JsonIgnore
+    protected boolean isset_lv3Id = false;
+
+    private String lv3Name = null;
+    @JsonIgnore
+    protected boolean isset_lv3Name = false;
+
+    private Long lv4Id = null;
+    @JsonIgnore
+    protected boolean isset_lv4Id = false;
+
+    private String lv4Name = null;
+    @JsonIgnore
+    protected boolean isset_lv4Name = false;
+
+    private Long lv5Id = null;
+    @JsonIgnore
+    protected boolean isset_lv5Id = false;
+
+    private String lv5Name = null;
+    @JsonIgnore
+    protected boolean isset_lv5Name = false;
+
+    private Integer lv = null;
+    @JsonIgnore
+    protected boolean isset_lv = false;
+
+    private Integer orderNum = null;
+    @JsonIgnore
+    protected boolean isset_orderNum = false;
+
+    private java.util.Date createTime3 = null;
+    @JsonIgnore
+    protected boolean isset_createTime3 = false;
+
+    private java.util.Date modified = null;
+    @JsonIgnore
+    protected boolean isset_modified = false;
+
+    private String summary = null;
+    @JsonIgnore
+    protected boolean isset_summary = false;
+
+    private String address = null;
+    @JsonIgnore
+    protected boolean isset_address = false;
+
+    private String lng = null;
+    @JsonIgnore
+    protected boolean isset_lng = false;
+
+    private String lat = null;
+    @JsonIgnore
+    protected boolean isset_lat = false;
+
+    private Integer openStatus = null;
+    @JsonIgnore
+    protected boolean isset_openStatus = false;
+
+    private java.util.Date openTime = null;
+    @JsonIgnore
+    protected boolean isset_openTime = false;
+
+    private Integer status = null;
+    @JsonIgnore
+    protected boolean isset_status = false;
+
+    private Integer isDelete = null;
+    @JsonIgnore
+    protected boolean isset_isDelete = false;
+
+    private String path = null;
+    @JsonIgnore
+    protected boolean isset_path = false;
+
+    private String venueName = null;
+    @JsonIgnore
+    protected boolean isset_venueName = false;
+
+    private Long cityId = null;
+    @JsonIgnore
+    protected boolean isset_cityId = false;
+
+    private String orgPhoto = null;
+    @JsonIgnore
+    protected boolean isset_orgPhoto = false;
+
+    private String shortName = null;
+    @JsonIgnore
+    protected boolean isset_shortName = false;
+
+    private Integer tenantType = null;
+    @JsonIgnore
+    protected boolean isset_tenantType = false;
+
+    private String createBy = null;
+    @JsonIgnore
+    protected boolean isset_createBy = false;
+
+    private Long createTime = null;
+    @JsonIgnore
+    protected boolean isset_createTime = false;
+
+    private String updateBy = null;
+    @JsonIgnore
+    protected boolean isset_updateBy = false;
+
+    private Long updateTime = null;
+    @JsonIgnore
+    protected boolean isset_updateTime = false;
+
+    private Integer belongProvince = null;
+    @JsonIgnore
+    protected boolean isset_belongProvince = false;
+
+    /**
+     * 榛樿鏋勯�犲嚱鏁�
+     */
+    public FinSysTenantRegion() {
+    }
+
+    /**
+     * 鏍规嵁涓婚敭鏋勯�犲璞�
+     */
+    public FinSysTenantRegion(Long tempId) {
+        this.setTempId(tempId);
+    }
+
+    /**
+     * 璁剧疆涓婚敭鍊�
+     */
+    @Override
+    public void setPkValue(Object value) {
+        this.setTempId((Long) value);
+    }
+
+    public Long getTempId() {
+        return this.tempId;
+    }
+
+    public void setTempId(Long tempId) {
+        this.tempId = tempId;
+        this.isset_tempId = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyTempId() {
+        return this.tempId == null;
+    }
+
+    public Long getId() {
+        return this.id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+        this.isset_id = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyId() {
+        return this.id == null;
+    }
+
+    public Long getParentId() {
+        return this.parentId;
+    }
+
+    public void setParentId(Long parentId) {
+        this.parentId = parentId;
+        this.isset_parentId = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyParentId() {
+        return this.parentId == null;
+    }
+
+    public String getCode() {
+        return this.code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+        this.isset_code = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyCode() {
+        return this.code == null || this.code.length() == 0;
+    }
+
+    public String getFinanceOrgCode() {
+        return this.financeOrgCode;
+    }
+
+    public void setFinanceOrgCode(String financeOrgCode) {
+        this.financeOrgCode = financeOrgCode;
+        this.isset_financeOrgCode = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyFinanceOrgCode() {
+        return this.financeOrgCode == null || this.financeOrgCode.length() == 0;
+    }
+
+    public String getName() {
+        return this.name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+        this.isset_name = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyName() {
+        return this.name == null || this.name.length() == 0;
+    }
+
+    public Long getLv1Id() {
+        return this.lv1Id;
+    }
+
+    public void setLv1Id(Long lv1Id) {
+        this.lv1Id = lv1Id;
+        this.isset_lv1Id = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyLv1Id() {
+        return this.lv1Id == null;
+    }
+
+    public String getLv1Name() {
+        return this.lv1Name;
+    }
+
+    public void setLv1Name(String lv1Name) {
+        this.lv1Name = lv1Name;
+        this.isset_lv1Name = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyLv1Name() {
+        return this.lv1Name == null || this.lv1Name.length() == 0;
+    }
+
+    public Long getLv2Id() {
+        return this.lv2Id;
+    }
+
+    public void setLv2Id(Long lv2Id) {
+        this.lv2Id = lv2Id;
+        this.isset_lv2Id = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyLv2Id() {
+        return this.lv2Id == null;
+    }
+
+    public String getLv2Name() {
+        return this.lv2Name;
+    }
+
+    public void setLv2Name(String lv2Name) {
+        this.lv2Name = lv2Name;
+        this.isset_lv2Name = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyLv2Name() {
+        return this.lv2Name == null || this.lv2Name.length() == 0;
+    }
+
+    public Long getLv3Id() {
+        return this.lv3Id;
+    }
+
+    public void setLv3Id(Long lv3Id) {
+        this.lv3Id = lv3Id;
+        this.isset_lv3Id = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyLv3Id() {
+        return this.lv3Id == null;
+    }
+
+    public String getLv3Name() {
+        return this.lv3Name;
+    }
+
+    public void setLv3Name(String lv3Name) {
+        this.lv3Name = lv3Name;
+        this.isset_lv3Name = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyLv3Name() {
+        return this.lv3Name == null || this.lv3Name.length() == 0;
+    }
+
+    public Long getLv4Id() {
+        return this.lv4Id;
+    }
+
+    public void setLv4Id(Long lv4Id) {
+        this.lv4Id = lv4Id;
+        this.isset_lv4Id = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyLv4Id() {
+        return this.lv4Id == null;
+    }
+
+    public String getLv4Name() {
+        return this.lv4Name;
+    }
+
+    public void setLv4Name(String lv4Name) {
+        this.lv4Name = lv4Name;
+        this.isset_lv4Name = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyLv4Name() {
+        return this.lv4Name == null || this.lv4Name.length() == 0;
+    }
+
+    public Long getLv5Id() {
+        return this.lv5Id;
+    }
+
+    public void setLv5Id(Long lv5Id) {
+        this.lv5Id = lv5Id;
+        this.isset_lv5Id = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyLv5Id() {
+        return this.lv5Id == null;
+    }
+
+    public String getLv5Name() {
+        return this.lv5Name;
+    }
+
+    public void setLv5Name(String lv5Name) {
+        this.lv5Name = lv5Name;
+        this.isset_lv5Name = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyLv5Name() {
+        return this.lv5Name == null || this.lv5Name.length() == 0;
+    }
+
+    public Integer getLv() {
+        return this.lv;
+    }
+
+    public void setLv(Integer lv) {
+        this.lv = lv;
+        this.isset_lv = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyLv() {
+        return this.lv == null;
+    }
+
+    public Integer getOrderNum() {
+        return this.orderNum;
+    }
+
+    public void setOrderNum(Integer orderNum) {
+        this.orderNum = orderNum;
+        this.isset_orderNum = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyOrderNum() {
+        return this.orderNum == null;
+    }
+
+    public java.util.Date getCreateTime3() {
+        return this.createTime3;
+    }
+
+    public void setCreateTime3(java.util.Date createTime3) {
+        this.createTime3 = createTime3;
+        this.isset_createTime3 = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyCreateTime3() {
+        return this.createTime3 == null;
+    }
+
+    public java.util.Date getModified() {
+        return this.modified;
+    }
+
+    public void setModified(java.util.Date modified) {
+        this.modified = modified;
+        this.isset_modified = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyModified() {
+        return this.modified == null;
+    }
+
+    public String getSummary() {
+        return this.summary;
+    }
+
+    public void setSummary(String summary) {
+        this.summary = summary;
+        this.isset_summary = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptySummary() {
+        return this.summary == null || this.summary.length() == 0;
+    }
+
+    public String getAddress() {
+        return this.address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+        this.isset_address = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyAddress() {
+        return this.address == null || this.address.length() == 0;
+    }
+
+    public String getLng() {
+        return this.lng;
+    }
+
+    public void setLng(String lng) {
+        this.lng = lng;
+        this.isset_lng = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyLng() {
+        return this.lng == null || this.lng.length() == 0;
+    }
+
+    public String getLat() {
+        return this.lat;
+    }
+
+    public void setLat(String lat) {
+        this.lat = lat;
+        this.isset_lat = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyLat() {
+        return this.lat == null || this.lat.length() == 0;
+    }
+
+    public Integer getOpenStatus() {
+        return this.openStatus;
+    }
+
+    public void setOpenStatus(Integer openStatus) {
+        this.openStatus = openStatus;
+        this.isset_openStatus = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyOpenStatus() {
+        return this.openStatus == null;
+    }
+
+    public java.util.Date getOpenTime() {
+        return this.openTime;
+    }
+
+    public void setOpenTime(java.util.Date openTime) {
+        this.openTime = openTime;
+        this.isset_openTime = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyOpenTime() {
+        return this.openTime == null;
+    }
+
+    public Integer getStatus() {
+        return this.status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+        this.isset_status = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyStatus() {
+        return this.status == null;
+    }
+
+    public Integer getIsDelete() {
+        return this.isDelete;
+    }
+
+    public void setIsDelete(Integer isDelete) {
+        this.isDelete = isDelete;
+        this.isset_isDelete = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyIsDelete() {
+        return this.isDelete == null;
+    }
+
+    public String getPath() {
+        return this.path;
+    }
+
+    public void setPath(String path) {
+        this.path = path;
+        this.isset_path = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyPath() {
+        return this.path == null || this.path.length() == 0;
+    }
+
+    public String getVenueName() {
+        return this.venueName;
+    }
+
+    public void setVenueName(String venueName) {
+        this.venueName = venueName;
+        this.isset_venueName = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyVenueName() {
+        return this.venueName == null || this.venueName.length() == 0;
+    }
+
+    public Long getCityId() {
+        return this.cityId;
+    }
+
+    public void setCityId(Long cityId) {
+        this.cityId = cityId;
+        this.isset_cityId = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyCityId() {
+        return this.cityId == null;
+    }
+
+    public String getOrgPhoto() {
+        return this.orgPhoto;
+    }
+
+    public void setOrgPhoto(String orgPhoto) {
+        this.orgPhoto = orgPhoto;
+        this.isset_orgPhoto = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyOrgPhoto() {
+        return this.orgPhoto == null || this.orgPhoto.length() == 0;
+    }
+
+    public String getShortName() {
+        return this.shortName;
+    }
+
+    public void setShortName(String shortName) {
+        this.shortName = shortName;
+        this.isset_shortName = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyShortName() {
+        return this.shortName == null || this.shortName.length() == 0;
+    }
+
+    public Integer getTenantType() {
+        return this.tenantType;
+    }
+
+    public void setTenantType(Integer tenantType) {
+        this.tenantType = tenantType;
+        this.isset_tenantType = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyTenantType() {
+        return this.tenantType == null;
+    }
+
+    public String getCreateBy() {
+        return this.createBy;
+    }
+
+    public void setCreateBy(String createBy) {
+        this.createBy = createBy;
+        this.isset_createBy = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyCreateBy() {
+        return this.createBy == null || this.createBy.length() == 0;
+    }
+
+    public Long getCreateTime() {
+        return this.createTime;
+    }
+
+    public void setCreateTime(Long createTime) {
+        this.createTime = createTime;
+        this.isset_createTime = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyCreateTime() {
+        return this.createTime == null;
+    }
+
+    public String getUpdateBy() {
+        return this.updateBy;
+    }
+
+    public void setUpdateBy(String updateBy) {
+        this.updateBy = updateBy;
+        this.isset_updateBy = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyUpdateBy() {
+        return this.updateBy == null || this.updateBy.length() == 0;
+    }
+
+    public Long getUpdateTime() {
+        return this.updateTime;
+    }
+
+    public void setUpdateTime(Long updateTime) {
+        this.updateTime = updateTime;
+        this.isset_updateTime = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyUpdateTime() {
+        return this.updateTime == null;
+    }
+
+    public Integer getBelongProvince() {
+        return this.belongProvince;
+    }
+
+    public void setBelongProvince(Integer belongProvince) {
+        this.belongProvince = belongProvince;
+        this.isset_belongProvince = true;
+    }
+
+    @JsonIgnore
+    public boolean isEmptyBelongProvince() {
+        return this.belongProvince == null;
+    }
+
+    /**
+     * 閲嶅啓 toString() 鏂规硶
+     */
+    @Override
+    public String toString() {
+        return new StringBuilder()
+                .append("tempId=").append(this.tempId)
+                .append("id=").append(this.id)
+                .append("parentId=").append(this.parentId)
+                .append("code=").append(this.code)
+                .append("financeOrgCode=").append(this.financeOrgCode)
+                .append("name=").append(this.name)
+                .append("lv1Id=").append(this.lv1Id)
+                .append("lv1Name=").append(this.lv1Name)
+                .append("lv2Id=").append(this.lv2Id)
+                .append("lv2Name=").append(this.lv2Name)
+                .append("lv3Id=").append(this.lv3Id)
+                .append("lv3Name=").append(this.lv3Name)
+                .append("lv4Id=").append(this.lv4Id)
+                .append("lv4Name=").append(this.lv4Name)
+                .append("lv5Id=").append(this.lv5Id)
+                .append("lv5Name=").append(this.lv5Name)
+                .append("lv=").append(this.lv)
+                .append("orderNum=").append(this.orderNum)
+                .append("createTime3=").append(this.createTime3)
+                .append("modified=").append(this.modified)
+                .append("summary=").append(this.summary)
+                .append("address=").append(this.address)
+                .append("lng=").append(this.lng)
+                .append("lat=").append(this.lat)
+                .append("openStatus=").append(this.openStatus)
+                .append("openTime=").append(this.openTime)
+                .append("status=").append(this.status)
+                .append("isDelete=").append(this.isDelete)
+                .append("path=").append(this.path)
+                .append("venueName=").append(this.venueName)
+                .append("cityId=").append(this.cityId)
+                .append("orgPhoto=").append(this.orgPhoto)
+                .append("shortName=").append(this.shortName)
+                .append("tenantType=").append(this.tenantType)
+                .append("createBy=").append(this.createBy)
+                .append("createTime=").append(this.createTime)
+                .append("updateBy=").append(this.updateBy)
+                .append("updateTime=").append(this.updateTime)
+                .append("belongProvince=").append(this.belongProvince)
+                .toString();
+    }
+
+    /**
+     * 鍏嬮殕
+     */
+    public FinSysTenantRegion $clone() {
+        FinSysTenantRegion fin_sys_tenant_region = new FinSysTenantRegion();
+
+        // 鏁版嵁搴撳悕绉�
+        //fin_sys_tenant_region.setDatabaseName_(this.getDatabaseName_());
+
+        // 涓婚敭
+        if (this.isset_tempId) {
+            fin_sys_tenant_region.setTempId(this.getTempId());
+        }
+        // 鏅�氬睘鎬�
+        if (this.isset_id) {
+            fin_sys_tenant_region.setId(this.getId());
+        }
+        if (this.isset_parentId) {
+            fin_sys_tenant_region.setParentId(this.getParentId());
+        }
+        if (this.isset_code) {
+            fin_sys_tenant_region.setCode(this.getCode());
+        }
+        if (this.isset_financeOrgCode) {
+            fin_sys_tenant_region.setFinanceOrgCode(this.getFinanceOrgCode());
+        }
+        if (this.isset_name) {
+            fin_sys_tenant_region.setName(this.getName());
+        }
+        if (this.isset_lv1Id) {
+            fin_sys_tenant_region.setLv1Id(this.getLv1Id());
+        }
+        if (this.isset_lv1Name) {
+            fin_sys_tenant_region.setLv1Name(this.getLv1Name());
+        }
+        if (this.isset_lv2Id) {
+            fin_sys_tenant_region.setLv2Id(this.getLv2Id());
+        }
+        if (this.isset_lv2Name) {
+            fin_sys_tenant_region.setLv2Name(this.getLv2Name());
+        }
+        if (this.isset_lv3Id) {
+            fin_sys_tenant_region.setLv3Id(this.getLv3Id());
+        }
+        if (this.isset_lv3Name) {
+            fin_sys_tenant_region.setLv3Name(this.getLv3Name());
+        }
+        if (this.isset_lv4Id) {
+            fin_sys_tenant_region.setLv4Id(this.getLv4Id());
+        }
+        if (this.isset_lv4Name) {
+            fin_sys_tenant_region.setLv4Name(this.getLv4Name());
+        }
+        if (this.isset_lv5Id) {
+            fin_sys_tenant_region.setLv5Id(this.getLv5Id());
+        }
+        if (this.isset_lv5Name) {
+            fin_sys_tenant_region.setLv5Name(this.getLv5Name());
+        }
+        if (this.isset_lv) {
+            fin_sys_tenant_region.setLv(this.getLv());
+        }
+        if (this.isset_orderNum) {
+            fin_sys_tenant_region.setOrderNum(this.getOrderNum());
+        }
+        if (this.isset_createTime3) {
+            fin_sys_tenant_region.setCreateTime3(this.getCreateTime3());
+        }
+        if (this.isset_modified) {
+            fin_sys_tenant_region.setModified(this.getModified());
+        }
+        if (this.isset_summary) {
+            fin_sys_tenant_region.setSummary(this.getSummary());
+        }
+        if (this.isset_address) {
+            fin_sys_tenant_region.setAddress(this.getAddress());
+        }
+        if (this.isset_lng) {
+            fin_sys_tenant_region.setLng(this.getLng());
+        }
+        if (this.isset_lat) {
+            fin_sys_tenant_region.setLat(this.getLat());
+        }
+        if (this.isset_openStatus) {
+            fin_sys_tenant_region.setOpenStatus(this.getOpenStatus());
+        }
+        if (this.isset_openTime) {
+            fin_sys_tenant_region.setOpenTime(this.getOpenTime());
+        }
+        if (this.isset_status) {
+            fin_sys_tenant_region.setStatus(this.getStatus());
+        }
+        if (this.isset_isDelete) {
+            fin_sys_tenant_region.setIsDelete(this.getIsDelete());
+        }
+        if (this.isset_path) {
+            fin_sys_tenant_region.setPath(this.getPath());
+        }
+        if (this.isset_venueName) {
+            fin_sys_tenant_region.setVenueName(this.getVenueName());
+        }
+        if (this.isset_cityId) {
+            fin_sys_tenant_region.setCityId(this.getCityId());
+        }
+        if (this.isset_orgPhoto) {
+            fin_sys_tenant_region.setOrgPhoto(this.getOrgPhoto());
+        }
+        if (this.isset_shortName) {
+            fin_sys_tenant_region.setShortName(this.getShortName());
+        }
+        if (this.isset_tenantType) {
+            fin_sys_tenant_region.setTenantType(this.getTenantType());
+        }
+        if (this.isset_createBy) {
+            fin_sys_tenant_region.setCreateBy(this.getCreateBy());
+        }
+        if (this.isset_createTime) {
+            fin_sys_tenant_region.setCreateTime(this.getCreateTime());
+        }
+        if (this.isset_updateBy) {
+            fin_sys_tenant_region.setUpdateBy(this.getUpdateBy());
+        }
+        if (this.isset_updateTime) {
+            fin_sys_tenant_region.setUpdateTime(this.getUpdateTime());
+        }
+        if (this.isset_belongProvince) {
+            fin_sys_tenant_region.setBelongProvince(this.getBelongProvince());
+        }
+        return fin_sys_tenant_region;
+    }
+}
diff --git a/consum-model-pojo/src/main/java/com/consum/model/po/FinSysTenantRegion_mapper.java b/consum-model-pojo/src/main/java/com/consum/model/po/FinSysTenantRegion_mapper.java
new file mode 100644
index 0000000..6332328
--- /dev/null
+++ b/consum-model-pojo/src/main/java/com/consum/model/po/FinSysTenantRegion_mapper.java
@@ -0,0 +1,731 @@
+package com.consum.model.po;
+
+import com.walker.jdbc.BaseMapper;
+import com.walker.jdbc.ResultSetUtils;
+import com.walker.jdbc.SqlAndParameters;
+import com.walker.jdbc.sqlgen.DeleteBuilder;
+import com.walker.jdbc.sqlgen.InsertBuilder;
+import com.walker.jdbc.sqlgen.SelectBuilder;
+import com.walker.jdbc.sqlgen.UpdateBuilder;
+import org.springframework.jdbc.core.RowMapper;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Map;
+
+/**
+ * 琛ㄥ悕:FIN_SYS_TENANT_REGION *
+ * @author genrator
+ */
+public class FinSysTenantRegion_mapper extends FinSysTenantRegion implements BaseMapper<FinSysTenantRegion> {
+    // 搴忓垪鍖栫増鏈彿
+    private static final long serialVersionUID = 1L;
+
+    public static final RowMapper<FinSysTenantRegion> ROW_MAPPER = new FinSysTenantRegionRowMapper();
+
+    // 涓婚敭
+    public static final String TempId = "temp_id";
+    // 鏅�氬睘鎬�
+    public static final String Id = "id";
+    public static final String ParentId = "parent_id";
+    public static final String Code = "code";
+    public static final String FinanceOrgCode = "finance_org_code";
+    public static final String Name = "name";
+    public static final String Lv1Id = "lv1_id";
+    public static final String Lv1Name = "lv1_name";
+    public static final String Lv2Id = "lv2_id";
+    public static final String Lv2Name = "lv2_name";
+    public static final String Lv3Id = "lv3_id";
+    public static final String Lv3Name = "lv3_name";
+    public static final String Lv4Id = "lv4_id";
+    public static final String Lv4Name = "lv4_name";
+    public static final String Lv5Id = "lv5_id";
+    public static final String Lv5Name = "lv5_name";
+    public static final String Lv = "lv";
+    public static final String OrderNum = "order_num";
+    public static final String CreateTime3 = "create_time3";
+    public static final String Modified = "modified";
+    public static final String Summary = "summary";
+    public static final String Address = "address";
+    public static final String Lng = "lng";
+    public static final String Lat = "lat";
+    public static final String OpenStatus = "open_status";
+    public static final String OpenTime = "open_time";
+    public static final String Status = "status";
+    public static final String IsDelete = "is_delete";
+    public static final String Path = "path";
+    public static final String VenueName = "venue_name";
+    public static final String CityId = "city_id";
+    public static final String OrgPhoto = "org_photo";
+    public static final String ShortName = "short_name";
+    public static final String TenantType = "tenant_type";
+    public static final String CreateBy = "create_by";
+    public static final String CreateTime = "create_time";
+    public static final String UpdateBy = "update_by";
+    public static final String UpdateTime = "update_time";
+    public static final String BelongProvince = "belong_province";
+
+    /**
+     * 榛樿鏋勯�犲嚱鏁�
+     */
+    public FinSysTenantRegion_mapper(FinSysTenantRegion finSysTenantRegion) {
+        if (finSysTenantRegion == null) {
+            throw new IllegalArgumentException("po鍙傛暟涓嶅厑璁镐负绌猴紒");
+        }
+        //涓婚敭
+        if (finSysTenantRegion.isset_tempId) {
+            this.setTempId(finSysTenantRegion.getTempId());
+        }
+        //鏅�氬睘鎬�
+        if (finSysTenantRegion.isset_id) {
+            this.setId(finSysTenantRegion.getId());
+        }
+        if (finSysTenantRegion.isset_parentId) {
+            this.setParentId(finSysTenantRegion.getParentId());
+        }
+        if (finSysTenantRegion.isset_code) {
+            this.setCode(finSysTenantRegion.getCode());
+        }
+        if (finSysTenantRegion.isset_financeOrgCode) {
+            this.setFinanceOrgCode(finSysTenantRegion.getFinanceOrgCode());
+        }
+        if (finSysTenantRegion.isset_name) {
+            this.setName(finSysTenantRegion.getName());
+        }
+        if (finSysTenantRegion.isset_lv1Id) {
+            this.setLv1Id(finSysTenantRegion.getLv1Id());
+        }
+        if (finSysTenantRegion.isset_lv1Name) {
+            this.setLv1Name(finSysTenantRegion.getLv1Name());
+        }
+        if (finSysTenantRegion.isset_lv2Id) {
+            this.setLv2Id(finSysTenantRegion.getLv2Id());
+        }
+        if (finSysTenantRegion.isset_lv2Name) {
+            this.setLv2Name(finSysTenantRegion.getLv2Name());
+        }
+        if (finSysTenantRegion.isset_lv3Id) {
+            this.setLv3Id(finSysTenantRegion.getLv3Id());
+        }
+        if (finSysTenantRegion.isset_lv3Name) {
+            this.setLv3Name(finSysTenantRegion.getLv3Name());
+        }
+        if (finSysTenantRegion.isset_lv4Id) {
+            this.setLv4Id(finSysTenantRegion.getLv4Id());
+        }
+        if (finSysTenantRegion.isset_lv4Name) {
+            this.setLv4Name(finSysTenantRegion.getLv4Name());
+        }
+        if (finSysTenantRegion.isset_lv5Id) {
+            this.setLv5Id(finSysTenantRegion.getLv5Id());
+        }
+        if (finSysTenantRegion.isset_lv5Name) {
+            this.setLv5Name(finSysTenantRegion.getLv5Name());
+        }
+        if (finSysTenantRegion.isset_lv) {
+            this.setLv(finSysTenantRegion.getLv());
+        }
+        if (finSysTenantRegion.isset_orderNum) {
+            this.setOrderNum(finSysTenantRegion.getOrderNum());
+        }
+        if (finSysTenantRegion.isset_createTime3) {
+            this.setCreateTime3(finSysTenantRegion.getCreateTime3());
+        }
+        if (finSysTenantRegion.isset_modified) {
+            this.setModified(finSysTenantRegion.getModified());
+        }
+        if (finSysTenantRegion.isset_summary) {
+            this.setSummary(finSysTenantRegion.getSummary());
+        }
+        if (finSysTenantRegion.isset_address) {
+            this.setAddress(finSysTenantRegion.getAddress());
+        }
+        if (finSysTenantRegion.isset_lng) {
+            this.setLng(finSysTenantRegion.getLng());
+        }
+        if (finSysTenantRegion.isset_lat) {
+            this.setLat(finSysTenantRegion.getLat());
+        }
+        if (finSysTenantRegion.isset_openStatus) {
+            this.setOpenStatus(finSysTenantRegion.getOpenStatus());
+        }
+        if (finSysTenantRegion.isset_openTime) {
+            this.setOpenTime(finSysTenantRegion.getOpenTime());
+        }
+        if (finSysTenantRegion.isset_status) {
+            this.setStatus(finSysTenantRegion.getStatus());
+        }
+        if (finSysTenantRegion.isset_isDelete) {
+            this.setIsDelete(finSysTenantRegion.getIsDelete());
+        }
+        if (finSysTenantRegion.isset_path) {
+            this.setPath(finSysTenantRegion.getPath());
+        }
+        if (finSysTenantRegion.isset_venueName) {
+            this.setVenueName(finSysTenantRegion.getVenueName());
+        }
+        if (finSysTenantRegion.isset_cityId) {
+            this.setCityId(finSysTenantRegion.getCityId());
+        }
+        if (finSysTenantRegion.isset_orgPhoto) {
+            this.setOrgPhoto(finSysTenantRegion.getOrgPhoto());
+        }
+        if (finSysTenantRegion.isset_shortName) {
+            this.setShortName(finSysTenantRegion.getShortName());
+        }
+        if (finSysTenantRegion.isset_tenantType) {
+            this.setTenantType(finSysTenantRegion.getTenantType());
+        }
+        if (finSysTenantRegion.isset_createBy) {
+            this.setCreateBy(finSysTenantRegion.getCreateBy());
+        }
+        if (finSysTenantRegion.isset_createTime) {
+            this.setCreateTime(finSysTenantRegion.getCreateTime());
+        }
+        if (finSysTenantRegion.isset_updateBy) {
+            this.setUpdateBy(finSysTenantRegion.getUpdateBy());
+        }
+        if (finSysTenantRegion.isset_updateTime) {
+            this.setUpdateTime(finSysTenantRegion.getUpdateTime());
+        }
+        if (finSysTenantRegion.isset_belongProvince) {
+            this.setBelongProvince(finSysTenantRegion.getBelongProvince());
+        }
+        // 鍘绘帀锛�2022-09-07
+        // this.setDatabaseName_(fin_sys_tenant_region.getDatabaseName_());
+    }
+
+    /**
+     * 鑾峰彇琛ㄥ悕
+     */
+    @Override
+    public String getTableName_() {
+        String tableName = "fin_sys_tenant_region";
+        /**
+        if (StringUtils.isNotEmpty(this.getDatabaseName_())) {
+            return this.getDatabaseName_() + "." + tableName;
+        } else {
+            return tableName;
+        }
+        */
+        return tableName;
+    }
+
+    /**
+     * 鑾峰彇涓婚敭鍚嶇О
+     */
+    @Override
+    public String getPkName_() {
+        return TempId;
+    }
+
+    /**
+     * 鑾峰彇涓婚敭鍊�
+     */
+    @Override
+    public Object getPkValue_() {
+        return this.getTempId();
+    }
+
+    /**
+     * 鑾峰彇鎻掑叆璇彞鍜屽弬鏁�
+     */
+    @Override
+    public SqlAndParameters<Map<String, Object>> getInsertSql_() {
+        InsertBuilder ib = new InsertBuilder(this.getTableName_());
+        ib.set(TempId, this.getTempId());
+        ib.set(Id, this.getId(), this.isset_id);
+        ib.set(ParentId, this.getParentId(), this.isset_parentId);
+        ib.set(Code, this.getCode(), this.isset_code);
+        ib.set(FinanceOrgCode, this.getFinanceOrgCode(), this.isset_financeOrgCode);
+        ib.set(Name, this.getName(), this.isset_name);
+        ib.set(Lv1Id, this.getLv1Id(), this.isset_lv1Id);
+        ib.set(Lv1Name, this.getLv1Name(), this.isset_lv1Name);
+        ib.set(Lv2Id, this.getLv2Id(), this.isset_lv2Id);
+        ib.set(Lv2Name, this.getLv2Name(), this.isset_lv2Name);
+        ib.set(Lv3Id, this.getLv3Id(), this.isset_lv3Id);
+        ib.set(Lv3Name, this.getLv3Name(), this.isset_lv3Name);
+        ib.set(Lv4Id, this.getLv4Id(), this.isset_lv4Id);
+        ib.set(Lv4Name, this.getLv4Name(), this.isset_lv4Name);
+        ib.set(Lv5Id, this.getLv5Id(), this.isset_lv5Id);
+        ib.set(Lv5Name, this.getLv5Name(), this.isset_lv5Name);
+        ib.set(Lv, this.getLv(), this.isset_lv);
+        ib.set(OrderNum, this.getOrderNum(), this.isset_orderNum);
+        ib.set(CreateTime3, this.getCreateTime3(), this.isset_createTime3);
+        ib.set(Modified, this.getModified(), this.isset_modified);
+        ib.set(Summary, this.getSummary(), this.isset_summary);
+        ib.set(Address, this.getAddress(), this.isset_address);
+        ib.set(Lng, this.getLng(), this.isset_lng);
+        ib.set(Lat, this.getLat(), this.isset_lat);
+        ib.set(OpenStatus, this.getOpenStatus(), this.isset_openStatus);
+        ib.set(OpenTime, this.getOpenTime(), this.isset_openTime);
+        ib.set(Status, this.getStatus(), this.isset_status);
+        ib.set(IsDelete, this.getIsDelete(), this.isset_isDelete);
+        ib.set(Path, this.getPath(), this.isset_path);
+        ib.set(VenueName, this.getVenueName(), this.isset_venueName);
+        ib.set(CityId, this.getCityId(), this.isset_cityId);
+        ib.set(OrgPhoto, this.getOrgPhoto(), this.isset_orgPhoto);
+        ib.set(ShortName, this.getShortName(), this.isset_shortName);
+        ib.set(TenantType, this.getTenantType(), this.isset_tenantType);
+        ib.set(CreateBy, this.getCreateBy(), this.isset_createBy);
+        ib.set(CreateTime, this.getCreateTime(), this.isset_createTime);
+        ib.set(UpdateBy, this.getUpdateBy(), this.isset_updateBy);
+        ib.set(UpdateTime, this.getUpdateTime(), this.isset_updateTime);
+        ib.set(BelongProvince, this.getBelongProvince(), this.isset_belongProvince);
+        return ib.genMapSql();
+    }
+
+    /**
+     * 鑾峰彇鏇存柊璇彞鍜屽弬鏁�
+     */
+    @Override
+    public SqlAndParameters<Map<String, Object>> getUpdateSql_() {
+        UpdateBuilder ub = new UpdateBuilder(this.getTableName_());
+        ub.set(Id, this.getId(), this.isset_id);
+        ub.set(ParentId, this.getParentId(), this.isset_parentId);
+        ub.set(Code, this.getCode(), this.isset_code);
+        ub.set(FinanceOrgCode, this.getFinanceOrgCode(), this.isset_financeOrgCode);
+        ub.set(Name, this.getName(), this.isset_name);
+        ub.set(Lv1Id, this.getLv1Id(), this.isset_lv1Id);
+        ub.set(Lv1Name, this.getLv1Name(), this.isset_lv1Name);
+        ub.set(Lv2Id, this.getLv2Id(), this.isset_lv2Id);
+        ub.set(Lv2Name, this.getLv2Name(), this.isset_lv2Name);
+        ub.set(Lv3Id, this.getLv3Id(), this.isset_lv3Id);
+        ub.set(Lv3Name, this.getLv3Name(), this.isset_lv3Name);
+        ub.set(Lv4Id, this.getLv4Id(), this.isset_lv4Id);
+        ub.set(Lv4Name, this.getLv4Name(), this.isset_lv4Name);
+        ub.set(Lv5Id, this.getLv5Id(), this.isset_lv5Id);
+        ub.set(Lv5Name, this.getLv5Name(), this.isset_lv5Name);
+        ub.set(Lv, this.getLv(), this.isset_lv);
+        ub.set(OrderNum, this.getOrderNum(), this.isset_orderNum);
+        ub.set(CreateTime3, this.getCreateTime3(), this.isset_createTime3);
+        ub.set(Modified, this.getModified(), this.isset_modified);
+        ub.set(Summary, this.getSummary(), this.isset_summary);
+        ub.set(Address, this.getAddress(), this.isset_address);
+        ub.set(Lng, this.getLng(), this.isset_lng);
+        ub.set(Lat, this.getLat(), this.isset_lat);
+        ub.set(OpenStatus, this.getOpenStatus(), this.isset_openStatus);
+        ub.set(OpenTime, this.getOpenTime(), this.isset_openTime);
+        ub.set(Status, this.getStatus(), this.isset_status);
+        ub.set(IsDelete, this.getIsDelete(), this.isset_isDelete);
+        ub.set(Path, this.getPath(), this.isset_path);
+        ub.set(VenueName, this.getVenueName(), this.isset_venueName);
+        ub.set(CityId, this.getCityId(), this.isset_cityId);
+        ub.set(OrgPhoto, this.getOrgPhoto(), this.isset_orgPhoto);
+        ub.set(ShortName, this.getShortName(), this.isset_shortName);
+        ub.set(TenantType, this.getTenantType(), this.isset_tenantType);
+        ub.set(CreateBy, this.getCreateBy(), this.isset_createBy);
+        ub.set(CreateTime, this.getCreateTime(), this.isset_createTime);
+        ub.set(UpdateBy, this.getUpdateBy(), this.isset_updateBy);
+        ub.set(UpdateTime, this.getUpdateTime(), this.isset_updateTime);
+        ub.set(BelongProvince, this.getBelongProvince(), this.isset_belongProvince);
+        ub.where(this.getPkName_(), this.getPkValue_());
+        return ub.genMapSql();
+    }
+
+    /**
+     * 鑾峰彇鏇存柊璇彞鍜屽弬鏁�
+     */
+    @Override
+    public SqlAndParameters<Map<String, Object>> getUpdateSql_(String where, Map<String, Object> parameters) {
+        UpdateBuilder ub = new UpdateBuilder(this.getTableName_());
+        ub.set(Id, this.getId(), this.isset_id);
+        ub.set(ParentId, this.getParentId(), this.isset_parentId);
+        ub.set(Code, this.getCode(), this.isset_code);
+        ub.set(FinanceOrgCode, this.getFinanceOrgCode(), this.isset_financeOrgCode);
+        ub.set(Name, this.getName(), this.isset_name);
+        ub.set(Lv1Id, this.getLv1Id(), this.isset_lv1Id);
+        ub.set(Lv1Name, this.getLv1Name(), this.isset_lv1Name);
+        ub.set(Lv2Id, this.getLv2Id(), this.isset_lv2Id);
+        ub.set(Lv2Name, this.getLv2Name(), this.isset_lv2Name);
+        ub.set(Lv3Id, this.getLv3Id(), this.isset_lv3Id);
+        ub.set(Lv3Name, this.getLv3Name(), this.isset_lv3Name);
+        ub.set(Lv4Id, this.getLv4Id(), this.isset_lv4Id);
+        ub.set(Lv4Name, this.getLv4Name(), this.isset_lv4Name);
+        ub.set(Lv5Id, this.getLv5Id(), this.isset_lv5Id);
+        ub.set(Lv5Name, this.getLv5Name(), this.isset_lv5Name);
+        ub.set(Lv, this.getLv(), this.isset_lv);
+        ub.set(OrderNum, this.getOrderNum(), this.isset_orderNum);
+        ub.set(CreateTime3, this.getCreateTime3(), this.isset_createTime3);
+        ub.set(Modified, this.getModified(), this.isset_modified);
+        ub.set(Summary, this.getSummary(), this.isset_summary);
+        ub.set(Address, this.getAddress(), this.isset_address);
+        ub.set(Lng, this.getLng(), this.isset_lng);
+        ub.set(Lat, this.getLat(), this.isset_lat);
+        ub.set(OpenStatus, this.getOpenStatus(), this.isset_openStatus);
+        ub.set(OpenTime, this.getOpenTime(), this.isset_openTime);
+        ub.set(Status, this.getStatus(), this.isset_status);
+        ub.set(IsDelete, this.getIsDelete(), this.isset_isDelete);
+        ub.set(Path, this.getPath(), this.isset_path);
+        ub.set(VenueName, this.getVenueName(), this.isset_venueName);
+        ub.set(CityId, this.getCityId(), this.isset_cityId);
+        ub.set(OrgPhoto, this.getOrgPhoto(), this.isset_orgPhoto);
+        ub.set(ShortName, this.getShortName(), this.isset_shortName);
+        ub.set(TenantType, this.getTenantType(), this.isset_tenantType);
+        ub.set(CreateBy, this.getCreateBy(), this.isset_createBy);
+        ub.set(CreateTime, this.getCreateTime(), this.isset_createTime);
+        ub.set(UpdateBy, this.getUpdateBy(), this.isset_updateBy);
+        ub.set(UpdateTime, this.getUpdateTime(), this.isset_updateTime);
+        ub.set(BelongProvince, this.getBelongProvince(), this.isset_belongProvince);
+        return ub.genMapSql(where, parameters);
+    }
+
+    /**
+     * 鑾峰彇鏇存柊璇彞鍜屽弬鏁�
+     */
+    @Override
+    public SqlAndParameters<Object[]> getUpdateSql_(String where, Object[] parameters) {
+        UpdateBuilder ub = new UpdateBuilder(this.getTableName_());
+        ub.set(Id, this.getId(), this.isset_id);
+        ub.set(ParentId, this.getParentId(), this.isset_parentId);
+        ub.set(Code, this.getCode(), this.isset_code);
+        ub.set(FinanceOrgCode, this.getFinanceOrgCode(), this.isset_financeOrgCode);
+        ub.set(Name, this.getName(), this.isset_name);
+        ub.set(Lv1Id, this.getLv1Id(), this.isset_lv1Id);
+        ub.set(Lv1Name, this.getLv1Name(), this.isset_lv1Name);
+        ub.set(Lv2Id, this.getLv2Id(), this.isset_lv2Id);
+        ub.set(Lv2Name, this.getLv2Name(), this.isset_lv2Name);
+        ub.set(Lv3Id, this.getLv3Id(), this.isset_lv3Id);
+        ub.set(Lv3Name, this.getLv3Name(), this.isset_lv3Name);
+        ub.set(Lv4Id, this.getLv4Id(), this.isset_lv4Id);
+        ub.set(Lv4Name, this.getLv4Name(), this.isset_lv4Name);
+        ub.set(Lv5Id, this.getLv5Id(), this.isset_lv5Id);
+        ub.set(Lv5Name, this.getLv5Name(), this.isset_lv5Name);
+        ub.set(Lv, this.getLv(), this.isset_lv);
+        ub.set(OrderNum, this.getOrderNum(), this.isset_orderNum);
+        ub.set(CreateTime3, this.getCreateTime3(), this.isset_createTime3);
+        ub.set(Modified, this.getModified(), this.isset_modified);
+        ub.set(Summary, this.getSummary(), this.isset_summary);
+        ub.set(Address, this.getAddress(), this.isset_address);
+        ub.set(Lng, this.getLng(), this.isset_lng);
+        ub.set(Lat, this.getLat(), this.isset_lat);
+        ub.set(OpenStatus, this.getOpenStatus(), this.isset_openStatus);
+        ub.set(OpenTime, this.getOpenTime(), this.isset_openTime);
+        ub.set(Status, this.getStatus(), this.isset_status);
+        ub.set(IsDelete, this.getIsDelete(), this.isset_isDelete);
+        ub.set(Path, this.getPath(), this.isset_path);
+        ub.set(VenueName, this.getVenueName(), this.isset_venueName);
+        ub.set(CityId, this.getCityId(), this.isset_cityId);
+        ub.set(OrgPhoto, this.getOrgPhoto(), this.isset_orgPhoto);
+        ub.set(ShortName, this.getShortName(), this.isset_shortName);
+        ub.set(TenantType, this.getTenantType(), this.isset_tenantType);
+        ub.set(CreateBy, this.getCreateBy(), this.isset_createBy);
+        ub.set(CreateTime, this.getCreateTime(), this.isset_createTime);
+        ub.set(UpdateBy, this.getUpdateBy(), this.isset_updateBy);
+        ub.set(UpdateTime, this.getUpdateTime(), this.isset_updateTime);
+        ub.set(BelongProvince, this.getBelongProvince(), this.isset_belongProvince);
+        return ub.genArraySql(where, parameters);
+    }
+
+    /**
+     * 鑾峰彇鍒犻櫎璇彞鍜屽弬鏁�
+     */
+    @Override
+    public SqlAndParameters<Map<String, Object>> getDeleteSql_() {
+        DeleteBuilder db = new DeleteBuilder(this.getTableName_());
+        db.where(this.getPkName_(), this.getPkValue_());
+        return db.genMapSql();
+    }
+
+    /**
+     * 鑾峰彇鍒犻櫎璇彞鍜屽弬鏁�
+     */
+    @Override
+    public SqlAndParameters<Map<String, Object>> getDeleteSql_(String where, Map<String, Object> parameters) {
+        DeleteBuilder db = new DeleteBuilder(this.getTableName_());
+        return db.genMapSql(where, parameters);
+    }
+
+    /**
+     * 鑾峰彇鍒犻櫎璇彞鍜屽弬鏁�
+     */
+    @Override
+    public SqlAndParameters<Object[]> getDeleteSql_(String where, Object[] parameters) {
+        DeleteBuilder db = new DeleteBuilder(this.getTableName_());
+        return db.genArraySql(where, parameters);
+    }
+
+    /**
+     * 鑾峰彇鍗曡鏌ヨ璇彞鍜屽弬鏁�
+     */
+    @Override
+    public SqlAndParameters<Map<String, Object>> getSingleSql_() {
+        SelectBuilder sb = new SelectBuilder(this.getTableName_());
+        sb.where(this.getPkName_(), this.getPkValue_());
+        return sb.genMapSql();
+    }
+
+
+    /**
+     * 鑾峰彇鏌ヨ璇彞鍜屽弬鏁�
+     */
+    @Override
+    public SqlAndParameters<Map<String, Object>> getSelectSql_(String where, Map<String, Object> parameters) {
+        return new SqlAndParameters<>("select temp_id, id, parent_id, code, finance_org_code, name, lv1_id, lv1_name, lv2_id, lv2_name, lv3_id, lv3_name, lv4_id, lv4_name, lv5_id, lv5_name, lv, order_num, create_time3, modified, summary, address, lng, lat, open_status, open_time, status, is_delete, path, venue_name, city_id, org_photo, short_name, tenant_type, create_by, create_time, update_by, update_time, belong_province from " + this.getTableName_() + " " + where, parameters);
+    }
+
+    /**
+     * 鑾峰彇鏌ヨ璇彞鍜屽弬鏁�
+     */
+    @Override
+    public SqlAndParameters<Object[]> getSelectSql_(String where, Object[] parameters) {
+        return new SqlAndParameters<>("select temp_id, id, parent_id, code, finance_org_code, name, lv1_id, lv1_name, lv2_id, lv2_name, lv3_id, lv3_name, lv4_id, lv4_name, lv5_id, lv5_name, lv, order_num, create_time3, modified, summary, address, lng, lat, open_status, open_time, status, is_delete, path, venue_name, city_id, org_photo, short_name, tenant_type, create_by, create_time, update_by, update_time, belong_province from " + this.getTableName_() + " " + where, parameters);
+    }
+
+    /**
+     * 灏唕esultset鐨勪竴琛岃浆鍖栦负po
+     */
+    @Override
+    public FinSysTenantRegion mapRow(ResultSet rs, int i) throws SQLException {
+        return ROW_MAPPER.mapRow(rs, i);
+    }
+
+    /**
+     * 鍏嬮殕
+     */
+    public FinSysTenantRegion toFinSysTenantRegion() {
+        return super.$clone();
+    }
+}
+
+/**
+ * fin_sys_tenant_region RowMapper
+ *
+ * @author genrator
+ */
+class FinSysTenantRegionRowMapper implements RowMapper<FinSysTenantRegion> {
+
+    @Override
+    public FinSysTenantRegion mapRow(ResultSet rs, int i) throws SQLException {
+        ResultSetUtils resultSetUtils = new ResultSetUtils();
+        FinSysTenantRegion fin_sys_tenant_region = new FinSysTenantRegion();
+        Integer columnIndex;
+        //涓婚敭
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.TempId);
+        if (columnIndex > 0) {
+            fin_sys_tenant_region.setTempId(rs.getLong(columnIndex));
+        }
+        //鏅�氬睘鎬�
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.Id);
+        if (columnIndex > 0) {
+            if (rs.getBigDecimal(columnIndex) == null) {
+                fin_sys_tenant_region.setId(null);
+            } else {
+                fin_sys_tenant_region.setId(rs.getLong(columnIndex));
+            }
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.ParentId);
+        if (columnIndex > 0) {
+            if (rs.getBigDecimal(columnIndex) == null) {
+                fin_sys_tenant_region.setParentId(null);
+            } else {
+                fin_sys_tenant_region.setParentId(rs.getLong(columnIndex));
+            }
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.Code);
+        if (columnIndex > 0) {
+            fin_sys_tenant_region.setCode(rs.getString(columnIndex));
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.FinanceOrgCode);
+        if (columnIndex > 0) {
+            fin_sys_tenant_region.setFinanceOrgCode(rs.getString(columnIndex));
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.Name);
+        if (columnIndex > 0) {
+            fin_sys_tenant_region.setName(rs.getString(columnIndex));
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.Lv1Id);
+        if (columnIndex > 0) {
+            if (rs.getBigDecimal(columnIndex) == null) {
+                fin_sys_tenant_region.setLv1Id(null);
+            } else {
+                fin_sys_tenant_region.setLv1Id(rs.getLong(columnIndex));
+            }
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.Lv1Name);
+        if (columnIndex > 0) {
+            fin_sys_tenant_region.setLv1Name(rs.getString(columnIndex));
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.Lv2Id);
+        if (columnIndex > 0) {
+            if (rs.getBigDecimal(columnIndex) == null) {
+                fin_sys_tenant_region.setLv2Id(null);
+            } else {
+                fin_sys_tenant_region.setLv2Id(rs.getLong(columnIndex));
+            }
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.Lv2Name);
+        if (columnIndex > 0) {
+            fin_sys_tenant_region.setLv2Name(rs.getString(columnIndex));
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.Lv3Id);
+        if (columnIndex > 0) {
+            if (rs.getBigDecimal(columnIndex) == null) {
+                fin_sys_tenant_region.setLv3Id(null);
+            } else {
+                fin_sys_tenant_region.setLv3Id(rs.getLong(columnIndex));
+            }
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.Lv3Name);
+        if (columnIndex > 0) {
+            fin_sys_tenant_region.setLv3Name(rs.getString(columnIndex));
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.Lv4Id);
+        if (columnIndex > 0) {
+            if (rs.getBigDecimal(columnIndex) == null) {
+                fin_sys_tenant_region.setLv4Id(null);
+            } else {
+                fin_sys_tenant_region.setLv4Id(rs.getLong(columnIndex));
+            }
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.Lv4Name);
+        if (columnIndex > 0) {
+            fin_sys_tenant_region.setLv4Name(rs.getString(columnIndex));
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.Lv5Id);
+        if (columnIndex > 0) {
+            if (rs.getBigDecimal(columnIndex) == null) {
+                fin_sys_tenant_region.setLv5Id(null);
+            } else {
+                fin_sys_tenant_region.setLv5Id(rs.getLong(columnIndex));
+            }
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.Lv5Name);
+        if (columnIndex > 0) {
+            fin_sys_tenant_region.setLv5Name(rs.getString(columnIndex));
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.Lv);
+        if (columnIndex > 0) {
+            if (rs.getBigDecimal(columnIndex) == null) {
+                fin_sys_tenant_region.setLv(null);
+            } else {
+                fin_sys_tenant_region.setLv(rs.getInt(columnIndex));
+            }
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.OrderNum);
+        if (columnIndex > 0) {
+            if (rs.getBigDecimal(columnIndex) == null) {
+                fin_sys_tenant_region.setOrderNum(null);
+            } else {
+                fin_sys_tenant_region.setOrderNum(rs.getInt(columnIndex));
+            }
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.CreateTime3);
+        if (columnIndex > 0) {
+            fin_sys_tenant_region.setCreateTime3(rs.getDate(columnIndex));
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.Modified);
+        if (columnIndex > 0) {
+            fin_sys_tenant_region.setModified(rs.getDate(columnIndex));
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.Summary);
+        if (columnIndex > 0) {
+            fin_sys_tenant_region.setSummary(rs.getString(columnIndex));
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.Address);
+        if (columnIndex > 0) {
+            fin_sys_tenant_region.setAddress(rs.getString(columnIndex));
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.Lng);
+        if (columnIndex > 0) {
+            fin_sys_tenant_region.setLng(rs.getString(columnIndex));
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.Lat);
+        if (columnIndex > 0) {
+            fin_sys_tenant_region.setLat(rs.getString(columnIndex));
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.OpenStatus);
+        if (columnIndex > 0) {
+            if (rs.getBigDecimal(columnIndex) == null) {
+                fin_sys_tenant_region.setOpenStatus(null);
+            } else {
+                fin_sys_tenant_region.setOpenStatus(rs.getInt(columnIndex));
+            }
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.OpenTime);
+        if (columnIndex > 0) {
+            fin_sys_tenant_region.setOpenTime(rs.getDate(columnIndex));
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.Status);
+        if (columnIndex > 0) {
+            if (rs.getBigDecimal(columnIndex) == null) {
+                fin_sys_tenant_region.setStatus(null);
+            } else {
+                fin_sys_tenant_region.setStatus(rs.getInt(columnIndex));
+            }
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.IsDelete);
+        if (columnIndex > 0) {
+            if (rs.getBigDecimal(columnIndex) == null) {
+                fin_sys_tenant_region.setIsDelete(null);
+            } else {
+                fin_sys_tenant_region.setIsDelete(rs.getInt(columnIndex));
+            }
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.Path);
+        if (columnIndex > 0) {
+            fin_sys_tenant_region.setPath(rs.getString(columnIndex));
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.VenueName);
+        if (columnIndex > 0) {
+            fin_sys_tenant_region.setVenueName(rs.getString(columnIndex));
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.CityId);
+        if (columnIndex > 0) {
+            if (rs.getBigDecimal(columnIndex) == null) {
+                fin_sys_tenant_region.setCityId(null);
+            } else {
+                fin_sys_tenant_region.setCityId(rs.getLong(columnIndex));
+            }
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.OrgPhoto);
+        if (columnIndex > 0) {
+            fin_sys_tenant_region.setOrgPhoto(rs.getString(columnIndex));
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.ShortName);
+        if (columnIndex > 0) {
+            fin_sys_tenant_region.setShortName(rs.getString(columnIndex));
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.TenantType);
+        if (columnIndex > 0) {
+            if (rs.getBigDecimal(columnIndex) == null) {
+                fin_sys_tenant_region.setTenantType(null);
+            } else {
+                fin_sys_tenant_region.setTenantType(rs.getInt(columnIndex));
+            }
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.CreateBy);
+        if (columnIndex > 0) {
+            fin_sys_tenant_region.setCreateBy(rs.getString(columnIndex));
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.CreateTime);
+        if (columnIndex > 0) {
+            if (rs.getBigDecimal(columnIndex) == null) {
+                fin_sys_tenant_region.setCreateTime(null);
+            } else {
+                fin_sys_tenant_region.setCreateTime(rs.getLong(columnIndex));
+            }
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.UpdateBy);
+        if (columnIndex > 0) {
+            fin_sys_tenant_region.setUpdateBy(rs.getString(columnIndex));
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.UpdateTime);
+        if (columnIndex > 0) {
+            if (rs.getBigDecimal(columnIndex) == null) {
+                fin_sys_tenant_region.setUpdateTime(null);
+            } else {
+                fin_sys_tenant_region.setUpdateTime(rs.getLong(columnIndex));
+            }
+        }
+        columnIndex = resultSetUtils.findColumn(rs, FinSysTenantRegion_mapper.BelongProvince);
+        if (columnIndex > 0) {
+            if (rs.getBigDecimal(columnIndex) == null) {
+                fin_sys_tenant_region.setBelongProvince(null);
+            } else {
+                fin_sys_tenant_region.setBelongProvince(rs.getInt(columnIndex));
+            }
+        }
+        return fin_sys_tenant_region;
+    }
+}
diff --git a/consum-model-pojo/src/main/java/com/consum/model/vo/FinSysTenantUserResult.java b/consum-model-pojo/src/main/java/com/consum/model/vo/FinSysTenantUserResult.java
new file mode 100644
index 0000000..149480d
--- /dev/null
+++ b/consum-model-pojo/src/main/java/com/consum/model/vo/FinSysTenantUserResult.java
@@ -0,0 +1,38 @@
+package com.consum.model.vo;
+
+import com.consum.model.po.FinSysTenantUser;
+
+import java.util.List;
+
+public class FinSysTenantUserResult {
+
+    private String orgName; // 鏈烘瀯鍚嶇О
+
+    private Long orgId;// 鏈烘瀯id
+
+    private List<FinSysTenantUser> userList;// 鐢ㄦ埛List
+
+    public String getOrgName() {
+        return orgName;
+    }
+
+    public void setOrgName(String orgName) {
+        this.orgName = orgName;
+    }
+
+    public Long getOrgId() {
+        return orgId;
+    }
+
+    public void setOrgId(Long orgId) {
+        this.orgId = orgId;
+    }
+
+    public List<FinSysTenantUser> getUserList() {
+        return userList;
+    }
+
+    public void setUserList(List<FinSysTenantUser> userList) {
+        this.userList = userList;
+    }
+}

--
Gitblit v1.9.1