查看权限详情 将部门大类单据整合,将子类单据id去重合并
/**
* 查看权限详情
* @param id 部门id
* @return
*/
@GetMapping("getListInfo")
public R getDetail(String id){
List<SapFormCategory>sapFormCategoryList=new ArrayList<>();
//1.将部门大类单据整合,将子类单据id去重合并
Map<String,String>keyMap=new HashMap<String,String>();
//过滤后要返回的list
String[] deptIds=id.split(",");
for(String deptId:deptIds){
//获取权限设置
Map<String,Object>deptMap=new HashMap<String,Object>();
deptMap.put("dept_id",deptId);
log.info("获取权限设置deptMap====="+deptMap);
List<SapJurisdictionMaintain> maintainList=service.listByMap(deptMap);
log.info("获取权限设置maintainList===="+maintainList);
for(SapJurisdictionMaintain msg:maintainList){
String typeId=msg.getTypeId();
String orderIds=msg.getOrderId();
if(!keyMap.containsKey(typeId)){
keyMap.put(typeId,orderIds);
}else{
String values =keyMap.get(typeId);
String[]orders=orderIds.split(",");
for(String order:orders){
if(!values.contains(order)){
values.concat(",").concat(order);
keyMap.put(typeId,values);
}
}
}
}
}
//2.根据分类好的 map中的key是大类id,vaue是细类id
if(Func.isNotEmpty(keyMap)){
Iterator<String> iter = keyMap.keySet().iterator();
while(iter.hasNext()){
String key=iter.next();
String value = keyMap.get(key);
log.info(key+" "+value);
//获取表单类型
SapFormCategory sapFormCategory=categoryService.getById(Long.valueOf(key));
if(Func.isNotEmpty(sapFormCategory)){
//根据大的单据id获取子单据
Map<String,Object>map=new HashMap<String,Object>();
map.put("form_category_id",Long.valueOf(key));
//根据form_category_id获取单据列表
List<SapFormInfo> list=infoService.listByMap(map);
if(Func.isNotEmpty(list)){
Map<String,Object>valueMap=new HashMap<>();
List<SapFormInfo>returnList=new ArrayList<>();
String[]valueIds=value.split(",");
//根据设置的权限过滤出自己具有的权限列表
for(String valueId:valueIds){
for(SapFormInfo formInfo:list){
if(valueId.equals(String.valueOf(formInfo.getId()))){
returnList.add(formInfo);
}
}
}
sapFormCategory.setSapFormInfoList(returnList);
}
}
//将单据小类放入单据分类
sapFormCategoryList.add(sapFormCategory);
}
}
return R.data(sapFormCategoryList);
}
查看权限详情 将部门大类单据整合,将子类单据id去重合并的更多相关文章
- 验证销售部门的数据查看权限-脚本demo
1 # coding:utf-8 2 ''' 3 @file: run_old.py 4 @author: jingsheng hong 5 @ide: PyCharm 6 @createTime: ...
- Android布局6大类
1:在我们Android开发中,常见的布局的方式有6大类 线性布局LinearLayout 相对布局RelativeLayout 表格布局TableLayout 单帧布局FrameLayout 绝对布 ...
- 浅析微信支付:公众平台卡券功能开通、HTML5线上发券(JS-SDK接口)、查看卡券详情
本文是[浅析微信支付]系列文章的第十六篇,主要讲解如何使用微信公众平台的卡券功能.如何使用HTML5在网页展示用户领券以及微信卡券和商户平台代金券的关系. 浅析微信支付系列已经更新十六篇了哟-,没有看 ...
- Android--仿1号店继续拖动查看图文详情——一个自定义的ViewGroup
声明:源代码不是我写的,是网上的以为大神写的(地址给忘了),我拿过来以后呢,稍微改动了一下源码,使之符合了项目需求,再次特别感谢那位大牛,非常感谢. 是一个自定义布局,继承自ViewGroup pac ...
- 技术流:6大类37种方式教你在国内推广App
转自:http://www.gamelook.com.cn/2015/01/201906 如何有效的推广自己App,是每个发行商都要考虑的问题,当然每个产品都有适合自己的推广方式.本文就集结了包括应用 ...
- Java基础详解 (一)Java的类成员访问权限修饰词(以及类访问权限)
在一个类的内部,其成员(包括成员变量和成员函数)能否被其他类所访问,取决于该成员的修饰词.Java的类成员访问权限修饰词有四类:private,无(默认情况下),protected和public.其权 ...
- dll的加载方式主要分为两大类,显式和隐式链接
之前简单写过如何创建lib和dll文件及简单的使用(http://blog.csdn.net/betabin/article/details/7239200).现在先再深入点写写dll的加载方式. d ...
- 今天工作中遇到的根据用户id取得产品大类和相关小类的问题
今天做了一个项目,需求是客户登陆后,可以从会员中心发布详细信息(包括联系信息和公司信息),插入到数据库后在将来生成一个公司页面模板,一般的产品大类+小类 用repeater嵌套就可以了,但是这个涉及到 ...
- VS2015 导航栏 查看每个cpp文件中类以及类成员函数的框框
这个可以查看每个cpp文件中类以及类成员函数的框框叫导航栏! 怎么打开导航栏可以再百度.
随机推荐
- 【scrum】scrum价值观
1.每一位成员都承诺实现项目的目标 2.团队成员相互尊重 3.所有人都专注于工作 4.团队着重开放 5.团队成员有勇气全力支持项目
- C# 9.0新特性详解系列之三:模块初始化器
1 背景动机 关于模块或者程序集初始化工作一直是C#的一个痛点,微软内部外部都有大量的报告反应很多客户一直被这个问题困扰,这还不算没有统计上的客户.那么解决这个问题,还有基于什么样的考虑呢? 在库加载 ...
- 【知识点】C/C++编码规范
为了提高我们写的代码的可读性,本文章说一下C/C++的编码规范. 一.源文件头部的注释 /******************************************************* ...
- Django 的JsonResponse 与json
json
- MockWebServer使用指南(转载)
转载自(http://blog.csdn.net/shensky711/article/details/52771797 ) MockWebServer介绍 MockWebServer是square出 ...
- vue+element ctrl+s保存写法
<el-input type="textarea" ref="inppp" v-model="values" placeholder= ...
- `prometheus-net.DotNetRuntime` 获取 CLR 运行指标原理解析
prometheus-net.DotNetRuntime 介绍 Intro 前面集成 Prometheus 的文章中简单提到过,prometheus-net.DotNetRuntime 可以获取到一些 ...
- PyQt(Python+Qt)学习随笔:树型部件QTreeWidget中使用sortItems进行项排序
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 树型部件QTreeWidget中的项可以使用sortItems方法按照指定列进行排序,调用语法: s ...
- Linux下安装视频转换工具ffmpeg
ffmpeg下载地址:http://ffmpeg.org/releases/ 1.首先需要安装解码器集合(包含安装ffmpeg用到的所有解码器)下载地址: 链接:https://pan.baidu.c ...
- vue 中 this.$options.data() 重置
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...