jeecg普通表和数据字典的关联

时间:2020-05-29
本文章向大家介绍jeecg普通表和数据字典的关联,主要包括jeecg普通表和数据字典的关联使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

昨天完成了一个需求,就是那个有bug的定时任务,它会把筛选好的数据存进一张新表里,然后我要把新表的数据用柱状图表示。

本来是件很简单的事情,但是有几个棘手的地方

1.产品的品种有好多个小品种,而几个小品种又有大品种。 比如辣条,长的、扁的、特别辣的、不是很辣的这些是小品种,这些小品种有一个共同的大品种叫辣条。统计的时候,要把小品中所有的数量相加,然后把同一个大品种的小品种的数量堆叠。

1 select data_variety.variety_type as kind, sum(table.quantity) as sums
2 from table
3 inner join data_variety on table.product_id = data_variety.id
4 group by kind

2.其实上一步还是很简单的。就用上面的代码就可以实现了。但是问题是它的大品种,存的是数据字典,如下图所示,kind是1,2,3。要再从数据字典里找出来对应的数据加上去。

 这里有两种方法,

  一是,直接嵌套查询。

  二是,让前端请求两次,第一次获取kind,然后嵌套一个ajax,拿kind去后台请求数据字典。

  第一种方法虽然可以解决问题,但是如果再有同样的需求,我大概又得重复劳动。因此我决定写一个从数据字典中取数据的get方法。

--------------------------------------------------------------------------------------------------

数据字典表一共有两张。t_s_typegroup是存字典名称的,比如性别;t_s_type是存字典名称对应的字典内容,比如1代表男,2代表女。

字典名称是varietyType就是种类名,   typecode就是数字,typename就是数字对应的值

1 select t_s_type.typecode, t_s_type.typename 
2 from t_s_type. 
3 inner join t_s_typegroup where t_s_typegroup.id = t_s_type. typegroupid and typegroupcode='varietyType'

这个写完回头看我发现是有问题的。 inner join 应该使用on,我用了where。但是很奇怪的是,结果是一样的。 这里以后有时间我会看看。

如果代码只能用一次,那就很惨了。minidao有字段功能,因此只要把最后面的红色字符串,改成变量,就可以变成一个查询字典的方法。

1     //根据字典名称,获取该字典。
2     @Sql("select t_s_type.typecode, t_s_type.typename " +
3             "from t_s_type " +
4             "inner join t_s_typegroup " +
5             "where t_s_typegroup.id = t_s_type. typegroupid and typegroupcode= :Type ")
6     List<Map<String,Object>> getTypeGroup(@Param("Type")String Type);

  但是,怎么才能知道字典名称呢???

  我们知道一个品种名字,反过来搜索即可,于是我又写了一个方法

1     //根据任意一个字段,获取该字段的字典名称
2     @Sql("select t_s_type.TYPENAME,t_s_typegroup.TYPEGROUPNAME, t_s_typegroup.TYPEGROUPCODE " +
3             "from t_s_typegroup " +
4             "inner join t_s_type " +
5             "on t_s_typegroup.id = t_s_type.typegroupid " +
6             "where typename= :Typename ")
7     List<Map<String,Object>> getTypeName(@Param("Typename")String Typename);

  这有一个局限性,如果重叠了,那就很尴尬了。 比如西红柿,既是水果又是蔬菜,会索引到两个大类。一时还想不出来怎么避免,先凑合用着。做项目不是写作业,估计也不会有这种事。

 --------------------------------------------------------------------------------------------------------------------------------------------------

虽然我的想法很好,但是最后还是失败了。、

方法没啥问题,运行的时候浏览器崩溃。换了俩浏览器都不行。可能哪里有漏洞? 放弃这个思路了。还是先把任务解决了再说

毕竟世上无难事,只要肯放弃。

中午回家的时候路上想,不如写个小程序,输入字典名,得到字典的code。

因此,虽然还是写了俩ajax,但是后台写死了。就查这一个品种。有我磨磨唧唧改bug的时间,哪怕十个品种也查出来了。

--------------------------------------------------------------------------------------

实现功能的时候又踩了一个坑,爬出来得出一个结论:

ajax一定要嵌套使用。请求两次,就把第二次请求,写在第一次请求的success。

就这吧

原文地址:https://www.cnblogs.com/Anan2020/p/12986787.html