futian.liu
2023-12-11 2c706a5d58e8315980ea92d6b82e0e4959bad8ca
consum-base/src/main/java/com/consum/base/service/impl/FinSysTenantServiceImpl.java
File was renamed from consum-base/src/main/java/com/consum/base/service/FinSysTenantServiceImpl.java
@@ -1,31 +1,36 @@
package com.consum.base.service;
package com.consum.base.service.impl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import org.springframework.stereotype.Service;
import com.consum.base.pojo.FinSysTenantParam;
import com.consum.base.service.FinSysTenantService;
import com.consum.model.po.FinSysTenant;
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 java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import org.springframework.stereotype.Service;
@Service
public class FinSysTenantServiceImpl extends BaseServiceImpl {
public class FinSysTenantServiceImpl extends BaseServiceImpl implements FinSysTenantService {
    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_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_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_LV2_ALL = "SELECT * FROM FIN_SYS_TENANT WHERE LV < 3 ORDER BY CODE ASC";
    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  ";
    /**
     * @Author :power
     * @Date : 2023/7/20 20:41 获取区划信息 主要用于缓存
     */
    @Override
    public FinSysTenant queryOneByCode(String code) {
        FinSysTenant tenant = new FinSysTenant();
        tenant.setCode(code);
@@ -36,16 +41,17 @@
        return null;
    }
    @Override
    public List<FinSysTenant> queryForTree() {
        // 展示全部节点
        return this.select(QUERY_TREE_ALL, new Object[]{}, new FinSysTenant());
        return this.select(QUERY_TREE_ALL, new Object[] {}, new FinSysTenant());
    }
    /**
     * @Author :power
     * @Date : 2023/7/20 16:34 根据id 查询下级所有节点 地市查询自己 省查询所有地市
     */
    @Override
    public List<FinSysTenant> queryTreeById(Long id, Integer lv) {
        if (lv == 3) {
            return new ArrayList<>();
@@ -67,6 +73,7 @@
     * @Author :power
     * @Date : 2023/7/21 14:46 特殊数据 禁止其他接口使用
     */
    @Override
    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);
@@ -80,20 +87,10 @@
        }
        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().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());
    }
    /**
     * 删除
@@ -101,6 +98,7 @@
     * @author 卢庆阳
     * @date 2023/10/4
     */
    @Override
    public int updateById(FinSysTenantParam param, FinSysTenantUser sysInfo) {
        FinSysTenant finSysTenant = new FinSysTenant();
        finSysTenant.setTempId(param.getId());
@@ -112,17 +110,17 @@
        return this.update(finSysTenant);
    }
    /**
     * 添加机构
     *
     * @author 卢庆阳
     * @date 2023/10/4
     */
    @Override
    public int addFinSysTenant(FinSysTenantParam param, FinSysTenantUser sysInfo, int lv) {
        FinSysTenant finSysTenant = new FinSysTenant();
        //id和tempId
        // id和tempId
        StringBuilder sql = new StringBuilder("SELECT max(id) FROM fin_sys_tenant WHERE 1=1");
        HashMap<String, Object> paramts = new HashMap<>();
@@ -132,7 +130,7 @@
        List<Map<String, Object>> list = this.select(sql.toString(), paramts);
        long id = 0L;
        if (!CollectionUtils.isEmpty(list) && list.get(0).get("max(id)") != null) {
            id = (Long) list.get(0).get("max(id)") + 1;
            id = (Long)list.get(0).get("max(id)") + 1;
        } else {
            id = param.getParentId() * 1000 + 1;
        }
@@ -142,13 +140,13 @@
        finSysTenant.setParentId(param.getParentId());
        finSysTenant.setCode(param.getCode());
        //设置详细地址及经纬度
        // 设置详细地址及经纬度
        finSysTenant.setName(param.getName());
        finSysTenant.setCreateTime3(DateUtils.getDate("yyyy-MM-dd HH:mm:ss"));
        finSysTenant.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
        finSysTenant.setSummary(param.getSummary());
        finSysTenant.setCreateBy(sysInfo.getUserName());
        //设置各层级id及名称
        // 设置各层级id及名称
        finSysTenant.setLv(lv);
        setLvIdAndName(param, finSysTenant, id, lv);
@@ -161,9 +159,10 @@
     * @author 卢庆阳
     * @date 2023/10/4
     */
    private void setLvIdAndName(FinSysTenantParam param, FinSysTenant finSysTenant, long id, int lv) {
        if (lv == 2) {    //新增市级机构
            //查询上一级 - 省级
    @Override
    public void setLvIdAndName(FinSysTenantParam param, FinSysTenant finSysTenant, long id, int lv) {
        if (lv == 2) { // 新增市级机构
            // 查询上一级 - 省级
            FinSysTenant finSysTenant1 = this.get(new FinSysTenant(param.getParentId()));
            if (finSysTenant1 != null) {
                finSysTenant.setLv1Id(finSysTenant1.getId());
@@ -171,11 +170,11 @@
                finSysTenant.setLv2Id(id);
                finSysTenant.setLv2Name(param.getName());
            }
        } else if (lv == 3) {     //新增县级机构
            //查询上一级 - 市级
        } else if (lv == 3) { // 新增县级机构
            // 查询上一级 - 市级
            FinSysTenant finSysTenant2 = this.get(new FinSysTenant(param.getParentId()));
            if (finSysTenant2 != null) {
                //查询上一级 - 省级
                // 查询上一级 - 省级
                FinSysTenant finSysTenant1 = this.get(new FinSysTenant(finSysTenant2.getParentId()));
                finSysTenant.setLv1Id(finSysTenant1.getId());
@@ -185,14 +184,14 @@
                finSysTenant.setLv3Id(id);
                finSysTenant.setLv3Name(param.getName());
            }
        } else if (lv == 4) {      //新增支局机构
            //查询上一级 - 县级
        } else if (lv == 4) { // 新增支局机构
            // 查询上一级 - 县级
            FinSysTenant finSysTenant3 = this.get(new FinSysTenant(param.getParentId()));
            if (finSysTenant3 != null) {
                //查询上一级 - 市级
                // 查询上一级 - 市级
                FinSysTenant finSysTenant2 = this.get(new FinSysTenant(finSysTenant3.getParentId()));
                if (finSysTenant2 != null) {
                    //查询上一级 - 省级
                    // 查询上一级 - 省级
                    FinSysTenant sysTenant1 = this.get(new FinSysTenant(finSysTenant2.getParentId()));
                    if (sysTenant1 != null) {
                        finSysTenant.setLv1Id(sysTenant1.getId());
@@ -209,19 +208,18 @@
        }
    }
    /**
     * 批量添加机构
     *
     * @author jlq
     * @date 2023/10/9
     */
    @Override
    public void insertFinSysTenantBatch(List<FinSysTenantParam> params, FinSysTenantUser sysInfo, int lv) {
        for (FinSysTenantParam param : params) {
            addFinSysTenant(param, sysInfo, lv);
        }
    }
    /**
     * 编辑
@@ -229,6 +227,7 @@
     * @author 卢庆阳
     * @date 2023/10/6
     */
    @Override
    public int updateFinSysTenant(FinSysTenant finSysTenant, FinSysTenantUser sysInfo) {
        Integer lv = finSysTenant.getLv();
        if (lv == 1) {
@@ -244,9 +243,17 @@
        return this.update(finSysTenant);
    }
    @Override
    public FinSysTenant selectById(Long id) {
        FinSysTenant tenant = new FinSysTenant();
        tenant.setTempId(id);
        return this.get(tenant);
    }
    @Override
    public FinSysTenant selectByName(String tenantName) {
        FinSysTenant tenant = new FinSysTenant();
        tenant.setName(tenantName);
        return this.select(tenant).stream().findFirst().orElse(null);
    }
}