查看权限详情 将部门大类单据整合,将子类单据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文件中类以及类成员函数的框框叫导航栏! 怎么打开导航栏可以再百度.
随机推荐
- JAVA在最新版Windows10_1909版本环境下的环境变量配置
1.配置 1.1新建 JAVA_HOME C:\Program Files\Java\jdk-13.0.2 1.2新建 CLASSPATH .;%JAVA_HOME%\bin;%JAVA_HOME%\ ...
- Spring Cloud Alibaba 初体验(一) Nacos 配置中心
一.Nacos 下载与初始化配置 本文使用1.2.0,下载地址:https://github.com/alibaba/nacos/releases Nacos 单机模式支持持久化配置到 MySQL 数 ...
- 对称加密之---AES加密
工作中常会需要让数据传输前进行加密处理.这次用到的是AES加密.AES加密中,需要注意到坑还是挺多的.对AES也进行了一番了解,发现里面的东西真的是注意的太多了.今天只是整理了一种简单的加密格式,工作 ...
- PyQt(Python+Qt)学习随笔:Designer中PushButton按钮default、atuoDefault属性
引言 1.default.atuoDefault属性仅在父窗口为对话窗才生效,其他窗口类型设置这两个属性没有意义: 2.按钮的按压触发除了鼠标键之外,也可以使用回车键和空格键触发,这两个属性正是控制回 ...
- Django框架简单认识(一)
1.Django是什么 Django是一个由python写成的开放源代码的Web应用框架. 2.Django安装 2.1 Django与python版本的安装版本匹配 Django 版本 Python ...
- flask中的return、过滤器详解
之前吧一直学习flask的时候,一直不明白response是怎么产生,今天是明白了.retrun 哎呀,这个地方看着挺小心的东西, 蕴含的能量可不小啊.今天我详细总结总结. 先来写jinjia2语法 ...
- 题解-MtOI2019 幽灵乐团
题面 MtOI2019 幽灵乐团 给定 \(p\),\(Cnt\) 组测试数据,每次给 \(a,b,c\),求 \[\prod_{i=1}^a\prod_{j=1}^b\prod_{k=1}^c\le ...
- tcp/ip原理/三次握手/四次挥手
@ tcp/ip原理 1.1 tcp/ip三次握手 1.1.1 建立过程说明 a) 由主机A发送建立TCP连接的请求报文, 其中报文中包含seq序列号, 是由发送端随机生成的, 并且还将报文中SY ...
- IIS-logfiles详解以及日志日期问题
IIS日志的含义IIS是Internet Information Server的缩写,意思是英特网信息服务,日志就是运行的记录 IIS日志的默认目录就是%systemroot%\system32\lo ...
- swiper4使用教程-填坑
本篇博客用于记录使用swiper插件中的一些关键点: 首先附上官网地址:https://www.swiper.com.cn/ ios中使用swiper的坑: /*解决swiper中苹果点击变暗,在cs ...