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/service/FinSysTenantServiceImpl.java |  264 +++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 216 insertions(+), 48 deletions(-)

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);
+    }
 }

--
Gitblit v1.9.1