杜洪波
2025-09-17 6c0c3557e791dc46948190dd3745335ed043d051
src/main/java/com/product/server/report/service/GenerateEChartService.java
@@ -117,18 +117,18 @@
        DataTableEntity valueData = baseDao.listTable(sql_text,new Object[]{});
        //获取报表配置属性表  加echarts配置属性
        //只能查询到关联属性值的属性表,如果父级属性下有多个相同子属性。通过grouping分组。
        DataTableEntity attributeData = baseDao.listTable("SELECT a.field_name,a.report_type_attr_value,a.uuid,a.grouping ,b.* FROM product_sys_report_config_attribute a LEFT JOIN product_sys_report_type_attribute b on a.report_type_attr = b.uuid WHERE a.report_config_uuid = ? ORDER BY a.grouping,b.parentAttributeUuid " ,new Object[]{fse.getString(CmnConst.UUID)});
        DataTableEntity attributeData = baseDao.listTable("SELECT a.field_name,a.report_type_attr_value,a.uuid,a.grouping ,b.* FROM product_sys_report_config_attribute a LEFT JOIN product_sys_report_type_attribute b on a.report_type_attr = b.uuid WHERE a.report_config_uuid = ? ORDER BY a.grouping,b.parent_attribute_uuid " ,new Object[]{fse.getString(CmnConst.UUID)});
        JSONObject allProperties = new JSONObject();
        if(attributeData.getRows() > 0){
            JSONObject propertyObject = new JSONObject();
            String parenUuid1 = attributeData.getString(0,"parentAttributeUuid");
            String parenUuid1 = attributeData.getString(0,"parent_attribute_uuid");
            String grouping1 = attributeData.getString(0,"grouping");
            for (int i = 0,length = attributeData.getRows(); i < length; i++) {
                FieldSetEntity fieldSet = attributeData.getFieldSetEntity(i);
                //上级uuid
                String parenUuid2 = fieldSet.getString("parentAttributeUuid");
                String parenUuid2 = fieldSet.getString("parent_attribute_uuid");
                //上级name
                String parenName = fieldSet.getString("parentAttributeName");
                String parenName = fieldSet.getString("parent_attribute_name");
                //图表属性值
                String attr_value = fieldSet.getString("report_type_attr_value");
                //为空传默认值
@@ -166,9 +166,9 @@
                grouping1 = grouping2;
                //饼状图插入数据同属一个父元素  多个元素和对应的数据需全部找出来一起封装json
                if(!BaseUtil.strIsNull(fieldName)){
                    String parentAttributeName = fieldSet.getString("parentAttributeName");
                    String parentAttributeName = fieldSet.getString(CmnConst.PARENT_ATTRIBUTE_NAME);
                    //下级为对象还是数组
                    String type = fieldSet.getString("subordinateElementType");
                    String type = fieldSet.getString("subordinate_element_ype");
                    List<String> keys = ListUtils.newArrayList();
                    List<String> keys2 = ListUtils.newArrayList();
                    keys.add(fieldName);
@@ -176,7 +176,7 @@
                    //为最后一位
                    while (i < length-1) {
                        FieldSetEntity fieldSet2 = attributeData.getFieldSetEntity(i+1);
                        String parenUuid3 = fieldSet2.getString("parentAttributeUuid");
                        String parenUuid3 = fieldSet2.getString("parent_attribute_uuid");
                        String fieldName3 = fieldSet2.getString(CmnConst.FIELD_NAME);
                        if(parenUuid2.equals(parenUuid3) && !BaseUtil.strIsNull(fieldName3)){
                            keys.add(fieldName3);
@@ -229,7 +229,7 @@
        JSONArray objSubArray = obj.getJSONArray(attribute_name);
        //确定他的子属性时(1)array 还是(0)object
//        if(objSubArray == null){
            if ("1".equals(fieldSet.getString("subordinateElementType"))) {
            if ("1".equals(fieldSet.getString(CmnConst.SUBORDINATE_ELEMENT_TYPE))) {
                JSONArray array = new JSONArray();
                array.add(obj);
                superiorObj.put(attribute_name, array);
@@ -240,9 +240,9 @@
//            superiorObj = obj;
//        }
        //上级属性name
        superiorUuid = fieldSet.getString("parentAttributeUuid");
        superiorUuid = fieldSet.getString(CmnConst.PARENT_ATTRIBUTE_UUID);
        //上级名称
        String parentAttributeName = fieldSet.getString("parentAttributeName");
        String parentAttributeName = fieldSet.getString(CmnConst.PARENT_ATTRIBUTE_NAME);
        //如果父元素uuid为空
        if(BaseUtil.strIsNull(superiorUuid)){
            JSONArray allSubProperties = allProperties.getJSONArray(attribute_name);
@@ -689,12 +689,15 @@
        Integer pageSize = fieldSetEntity.getInteger(CmnConst.PAGE_SIZE);
        StringBuffer sql = new StringBuffer();
//        sql.append(" select * from ( ")
        sql.append(" select rc.uuid,rc.report_name,'图表' type_name,t1.role_info,mp.menu_name tricode_parent,m.menu_icon,m.menu_name,rc.function_uuid ")
        sql.append(" select rc.uuid,rc.report_name,'图表' type_name,mp.menu_name tricode_parent,m.menu_icon,m.menu_name,rc.function_uuid ")
//        sql.append(" select rc.uuid,rc.report_name,'图表' type_name,t1.role_info,mp.menu_name tricode_parent,m.menu_icon,m.menu_name,rc.function_uuid ")
                .append(" FROM product_sys_report_config rc ")
                .append(" inner join ( ")
                .append(" select function_uuid,group_concat(role_info separator ',') role_info ")
                .append(" select function_uuid ")
//                .append(" select function_uuid,group_concat(role_info separator ',') role_info ")   //Duird解析不了这个函数用法
                .append(" from ( ")
                .append(" select function_uuid,concat(c.client_name,'/',o.org_level_name,'/',role_name) role_info ")
//                .append(" select function_uuid,concat(c.client_name,'/',o.org_level_name,'/',role_name) role_info ")
                .append(" select function_uuid ")
                .append(" FROM product_sys_clients c ")
                .append(" inner join product_sys_org_levels o on o.client_uuid=c.uuid ")
                .append(" inner join ( ")