项目中后台查询字典切换显示内容

List list = companyDao.xyunitUserListByType(hash);

Map<String, String> para = new HashMap<String, String>();
para.put("Unit_type", "612");
para.put("Unit_nmtype", "601");
para.put("Class_type", "611");

para.put("Communication_methods_type", "207");
para.put("Unit_condition", "604");
para.put("Industry_categories", "99997");
list = listFormat(list, para);

//封装的方法==============

public List listFormat(List list,Map<String,String>para) {
if(null==list ||list.size()==0) {
return new ArrayList();
}
//获取list元素的类
Class c=list.get(0).getClass();
boolean flag=false;
//hashmap为真。实体类为false
if(c.equals(HashMap.class)) {
flag=true;
}

try {
//便利参数,获取需要替换的字段,以及按照的fid
for (String key : para.keySet()) {
String fid=para.get(key);
//redis 获取字典
List listResult= (List) RedisUtils.get(fid);
// redis为空则查询后再存
if(null==listResult) {
listResult=dictService.getDictByFid(fid);
RedisUtils.save(key, listResult);
}
//取得get/set方法,输入值
Method gm =null;Method sm =null;String allin=null;
if(!flag) {
gm =c.getMethod("get"+key, null);
sm =c.getMethod("set"+key, String.class);
}
//循环处理list
for(int i =0;i<list.size();i++) {
Object o = list .get(i);
if(flag) { allin=(String) ((Map) o).get(key);}
else { allin=(String) gm.invoke(o, null);}
System.out.println("输入量="+allin);
String out="";
//切割循环处理具体量
if (null!=allin&&!"".equals(allin)) {
String[] ins=allin.split(",");
for(int j =0;j<ins.length;j++) {
String in =ins[j];
if (!"".equals(in)) {
String res=null;
//进行配对
for(int z =0;z<listResult.size();z++) {
if(ins[j].equals(((Map)listResult.get(z)).get("id"))) {
res=(String) ((Map)listResult.get(z)).get("name");break;
}
}
//未找到不处理
if (null==res) {
out=in;
}else {
out = out+res+" ";
}}
}
System.out.println("输出量="+out);
if(!flag) {sm.invoke(o, out);}
else{((Map<String, String>) o).put(key, out);}
list.remove(i);
list.add(i, o);
}
}

}

} catch (Exception e) {
e.printStackTrace();
}
return list;

}

原文地址:https://www.cnblogs.com/xianz666/p/12180890.html

时间: 2024-12-14 16:24:00

项目中后台查询字典切换显示内容的相关文章

MyEclipse项目中的包按层次显示

MyEclipse项目中的包按层次显示 window >  Navigation > Show View Menu  >  Package Presentation  > Hierachial.

记一次项目中的查询汇总

项目要实现查询汇总的功能,针对不同的分组实现不同的汇总.直接上图吧,直观一点.要实现的效果如下图所示. 设计思路:第一,先实现电业局,变电工区,运维站,变电所相同的列名称,能够合并的功能.第二,在合适的位置插入汇总行(即有总计的行). 实现方法,第一,相同的列名称合并的功能,很简单,设置要合并的列的列属性AllowMerge=true,并不总的GridView的AllowMerge设为true即可. 第二,主要难点在怎么实现汇总的功能.数据库中的获取的数据如下图所示: 数据说明: PERSONI

教你如何快速定位项目中慢查询[项目管理]

1. 使用对象: 项目经理或者项目管理者 2. 数据库: mysql 3. 快速定位慢查询: 启动mysql时,启动慢查询日志:3.1 Window系统:第一种:bin\mysqlId.exe  --safe-mode  --slow-query-log (可在my.ini中配置地址,默认存放位置:datadir=C:/ProgramData/MySQL/MySQL Server 5.6/Data):第二种(建议):修改mysql的配置文件my.ini,找到my.ini文件,在[mysqld]里

mysql python pymysql模块 增删改查 查询 字典游标显示

我们看到取得结果是一个元祖,但是不知道是哪个字段的,如果字段多的时候,就比较麻烦 ''' (1, 'mike', '123') (2, 'jack', '456') ''' 用字典显示查询的结果,也可以查询到字段名 在拿游标时候加上字典显示的游标 cur = conn.cursor(pymysql.cursors.DictCursor) import pymysql mysql_host = '192.168.0.106' port = 3306 mysql_user = 'root' mysq

如何给界面中的文本框输出显示内容

1.#define MSG(msg) SetDlgItemText(IDC_INFO,_T(msg)) IDC_INFO为静态文本框的ID,msg为要显示到文本框的字符串

Eclipse/MyEclipse项目中包以树形结构显示

在Package Explore窗口右上边的小三角那里进去菜单"Package Prensentation", 选第一个Flat是显示完整的包名,第二个Hierachical显示的是树形结构.

java web项目中后台控制层对参数进行自定义验证 类 Pattern

Pattern pattern = Pattern.compile("/^([1-9]\\d+元*|[0]{0,1})$/");//将给定的正则表达式编译到模式中 if(!"".equals(mmshop.getOriginalPrice().trim())){ if(!pattern.matcher(mmshop.getOriginalPrice().trim()).matches()){ map.put("msg","请输入数字或x

Vue项目中svg图标不能正常显示

1.安装 svg-sprite-loader npm install svg-sprite-loader --save-dev 2.配置build文件夹中的webpack.base.conf.js 3.在src/components下新建文件夹及文件SvgIcon/index.vue 4.在src下新建icons文件夹,及icons文件夹下svg文件夹.index.js文件 5.在main.js中引入svg import '@/icons' 原文地址:https://www.cnblogs.co

字典树的基础,以及在实际项目中对于敏感词的替换的应用

最近刷题时连续遇到两道字典树的题目,所以做一下这个数据结构的总结. 首先什么叫做字典树? 叫 是 我   想 看 听 这种树结构并且把文字或者英文放在里面组成的叫做字典树. 那么字典树有什么用呢? 通过几道题目的练习我发现,字典树主要应用在,对于字符串的分级匹配和查询. 比如在我们如果有三句话,1:我是人,2:我是男人,3:我是中国人 如果一般的我们用三个字符串去存放他们,然后当我们要寻找在这些字符串中是否存在我是中国人的时候,那么就需要一句句匹配过来,如果有1000条这样的数据,那么匹配的速度