查看权限详情 将部门大类单据整合,将子类单据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文件中类以及类成员函数的框框叫导航栏! 怎么打开导航栏可以再百度.
随机推荐
- Linux Tomcat安装篇(daemon运行,开机自启动)
目录 前言 作为一个Java后端开发者,tomcat想必是最最最熟悉的一个开发组件了,tomcat环境的搭建部署都十分简单.安装部署只需要两步,第一步下载,第二步解压,这样一个基础的tomcat环境就 ...
- Dotnet Core下的Channel, 你用了吗?
今天给大家分享一个微软官方的好东西:Channel. 前言 今天给大家分享一个微软官方的生产者/消费者方案的特性解决:Channel. Channel在System.Threading.Chann ...
- NTML
NTLM: 1.客户端向服务器发送一个请求,请求中包含明文的登陆用户名.在服务器中已经存储了登陆用户名和对应的密码hash 2.服务器接收到请求后,NTLMv2协议下 ...
- nginx,wsgi项目部署
1.一些重要概念 https://www.cnblogs.com/xiaonq/p/8932266.html 1.1web容器 什么是web容器 1.web容器是帮助我们部署java丶php丶pyth ...
- iNeuOS工业互联平台,WEB组态(iNeuView)图元和数据点组合及生成新图元复用,实现拖业务
目 录 1. 概述... 1 2. 平台演示... 2 3. 应用过程... 2 1. 概述 iNeuView视图建模Web组态平台实现图元和数据点组合及 ...
- PyQt(Python+Qt)学习随笔:通过QMainWindow的resizeDocks方法调整QDockWidget停靠窗大小
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 QMainWindow的resizeDocks用于将QMainWind ...
- HTTP助记
1** 信息,服务器收到请求,需要请求者继续执行操作 100 continue 继续,客户端应继续请求 101 swithching protocls 切换协议,服务器根据客户端的请求切换协议.只能切 ...
- CobaltStrike 生成office宏病毒进行钓鱼攻击
关于WORD宏: 在百度百科上有: 宏是一个批量处理程序命令,正确地运用它可以提高工作效率.微软的office软件允许用户自己编写,叫VBA的脚本来增加其灵活性,进一步扩充它的能力.如完打开word文 ...
- Java的字符串操作一些简单的思考
Java的字符串操作 1 .1不可变的String String对象事不可变的,String类中的每一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象,以包含修改后的字符 ...
- Codeforces Edu Round 65 A-E
A. Telephone Number 跟之前有一道必胜策略是一样的,\(n - 10\)位之前的数存在\(8\)即可. #include <iostream> #include < ...