yiyong框架方法总结

方法总结

(一)部门公共方法

1.根据部门的id查询所有的上级

/**
 * 使用递归拼接该部门的所有上级部门以及当前部门
 * @param id
 * @return
 */
public String getAllPid(String id){
   
    StringBuffer sb = new StringBuffer();
    getPid(id,sb);
    String substring = sb.toString().substring(0, sb.length()-1);
    return substring;
}

public void  getPid(String id,StringBuffer sb){
   
    Depart depart = get(id);
    sb.append(id);
    sb.append(",");
    if (depart==null){
   
        ExceptionUtils.throwProjectException("id为["+id+"]的数据在部门档案,不存在");
    }
    if(depart.getPid()!=null && !"0".equals(depart.getPid())){
   
        getPid(depart.getPid(),sb);
    }
}

2.查询部门下的所有子id

    /**
     * 通过id获取所有下级部门的部门id (包括父级可以使用)
     */
    public List<String> getidById(String id) {
   
        Depart depart = new Depart();
        depart.setPid(id);
        List<Depart> departs = dao.autoQuery(depart);
        List<String> list = Lists.newArrayList();
        if (!CollectionUtils.isEmpty(departs)) {
   
            list = departs.stream().map(Depart::getId).collect(Collectors.toList());
        }
        list.add(id);
        return list;
    }

3. 输入上级id,查询包含当前id及其所有下级科目的id,逗号拼接

public String getUpDepartIds(String id) {
   
    List<String> tempList = new ArrayList<String>();
    // 将父id先存入集合
    tempList.add(id);
    // 递归查找所有子部门id
    tempList = getChild(id, tempList);
    String departIds = StringUtils.strip(tempList.toString(), "[]").replace(" ", "");
    return departIds;
}

/*递归查询子部门id的方法*/
public List<String> getChild(String id, List<String> a) {
   
    //根据当前部门id查询所有子部门的id
    List<String> list = dataDepartDao.getSonDeptIdByParentId(id);//自己的去数据库查询方法
    for (int i = 0; i < list.size(); i++) {
   
        a.add(list.get(i));
        getChild((String) list.get(i), a);//递归查询
    }
    return a;
}

(二)预算科目档案

1. 输入上级id,查询包含当前id及其所有下级科目的id,逗号拼接

public String getUpDepartIds(String id) {
   
    List<String> tempList = new ArrayList<String>();
    // 将父id先存入集合
    //tempList.add(id);
    // 递归查找所有子部门id
    tempList = getChild(id, tempList);
    String ids = "";
    if(tempList.size() > 0){
   
        ids = "(";
        for (String str : tempList) {
   
            ids = ids+"'"+str+"',";
        }
        ids = ids.substring(0,ids.length()-1)+")";
    }
    return ids;
}

/*递归查询子部门id的方法*/
public List<String> getChild(String id, List<String> a) {
   
    //根据当前部门id查询所有子部门的id
    List<String> list = dao.getSonDeptIdByParentId(id);//自己的去数据库查询方法
    for (int i = 0; i < list.size(); i++) {
   
        a.add(list.get(i));
        getChild((String) list.get(i), a);//递归查询
    }
    return a;
}

2.

(三)redis工具类

1.redis的实例化

    /**
     * 构造函数,创建对象时进行初始化
     *
     * @return redis.clients.jedis.Jedis
     * @description TODO
     * @author QiJie
     * @date 2020/10/29 19:16
     */
    public static Jedis initRedisUtil(String ip, String passWord) {
   
        //连接本地的 Redis 服务
        Jedis jedis = new Jedis(ip);
        // 如果 Redis 服务设置来密码,需要下面这行,没有就不需要
        if (StringUtils.isNotEmpty(passWord)) {
   
            jedis.auth(passWord);
        }

        if (jedis != null) {
   
            //查看服务是否运行
            System.out.println("服务正在运行: " + jedis.ping());
        }
        return jedis;
    }

2.根据key获取hash的全部值

    /**
     * 根据key获取hash的全部值
     *
     * @param dictName 字典名称  字典名称前面拼接一个  dict:
     * @param ip       redis的ip地址
     * @param passWord redis密码  没有密码传 ”“  空字符串或者空值
     * @return java.util.Map<java.lang.String, java.lang.String>
     * @throws
     * @description TODO
     * @author QiJie
     * @date 2020/10/29 19:22
     */
    public static Map<String, String> getKeyAndValue(String dictName, String ip, String passWord) {
   
        //链接redis
        Jedis jedis = initRedisUtil(ip, passWord);
        // 获取存储的数据并输出
        Map<String, String> dictMap = jedis.hgetAll(dictName);
        return dictMap;
    }

(四)字符串工具类

1.检验空值或者空字符串或者多个空格组成的字符串

   /**
     * 检验时候是空值或者空字符串或者多个空格组成的字符串
     *
     * @param object 对象实体
     */
    public static Boolean isEmpty(Object object) {
   
        if (object == null || object.toString().isEmpty()) {
   
            return true;
        } else {
   
            return false;
        }
    }

2.多个空字符的检验信息拼接

备注:每个单据空值检验的时候使用,将所有空值的信息拼接到一快

    /**
     * 检验时候是空值或者空字符串或者多个空格组成的字符串
     *
     * @param sb      Stringbuffer
     * @param object  对象实体
     * @param message 报错信息
     */
    public static void notEmpty(StringBuffer sb, Object object, String message) {
   
        if (object == null || object.toString().isEmpty()) {
   
            sb.append(message);
            sb.append(",");
        }
    }

(五)反射工具类

1.初始化

备注:下面的所有方法都会用到

    /**
     * 根据反射类 得到Object
     *
     * @param className
     * @return java.lang.Object
     * @throws
     * @description TODO
     * @author QiJie
     * @date 2020/11/30 19:09
     */
    public static Object getObject(String className) throws ClassNotFoundException, IllegalAccessException, InstantiationException {
   
        Class<?> tClass = Class.forName(className);
        Object obj = tClass.newInstance();
        return obj;

    }

2.根据对应的单据类型得到对应的实体对象下的全部单据字段集合

    /**
     * 根据对应的单据类型得到对应的实体对象下的全部单据字段集合
     * 单据类型是在字典中定义的   key :单据类型  value :service层的路径
     * 字典: dict_batch_type
     *
     * @param billType 参数是单据类型,单据类型是在字典中定义的   key :单据类型  value :service层的路径
     * @return 返回值:java.util.List<java.lang.String>
     * @throws
     * @description TODO
     * @author QiJie
     * @date 2020/10/29 14:42
     */
    public static Map<String, Object> getEntityAllFiled(String billType) {
   
        if (StringUtils.isEmpty(billType)) {
   
            ExceptionUtils.throwProjectException("单据类型不能为空!");
        }
        //定义全局存储实体类中的字段
        List<String> filedList = new ArrayList<>();
        //根据单据类型 通过字典转  获取对应的反射service
        String tService = DictUtils.getName("dict_batch_type", billType);
        //将tService更换为entity
        String tClassString = tService.replace(".service.", ".entity.").replace("Service", "");
        //定义最终返回的集合
        Map<String, Object> classAll = new HashMap<>();
        //转为实体对象
        try {
   

            Class<?> tClass = Class.forName(tClassString);
            Object obj = tClass.newInstance();
            Field[] fs1 = tClass.getDeclaredFields();
            for (Field field : fs1) {
   
     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值