Bläddra i källkod

报表查询逻辑更新,git提交排除out文件夹

郭齐峰 1 år sedan
förälder
incheckning
084152ca1a

+ 1 - 1
.gitignore

@@ -7,4 +7,4 @@
 /yos.war
 /lib/sqlite-jdbc-3.32.3.3.jar
 /web/webcontent/
-
+/out/

+ 5 - 4
src/custom/restcontroller/system/report/SQL/应用报表查询.sql

@@ -1,11 +1,12 @@
 select t1.sys_reportid,
        t1.siteid,
-       t2.type,
-       t2.name,
-       t2.view_count
+       if(t1.reporttype = '积木报表', t2.type, 'datainfo') type,
+       if(t1.reporttype = '积木报表', t2.name, t1.name)    name
 from sys_report t1
-         inner join jimureport.jimu_report t2 on t1.jimu_report_id = t2.id
+         left join jimureport.jimu_report t2 on t1.jimu_report_id = t2.id
 where (ifnull(t1.siteid, '') = '' or t1.siteid = $siteid$)
   and t1.systemappid = $systemappid$
   and t1.isused = 1
+  and ((t1.reporttype = '积木报表' and t2.id is not null)
+    or (t1.reporttype != '积木报表'))
   and exists(select * from sys_rolereportauth t3 where t1.sys_reportid = t3.sys_reportid and t3.roleid in $roleids$)

+ 28 - 6
src/custom/restcontroller/system/report/report.java

@@ -19,6 +19,9 @@ public class report extends Controller {
     public String queryReportList() throws YosException {
         long systemappid = content.getLong("systemappid");
         SQLFactory sqlFactory = new SQLFactory(this, "应用报表查询");
+        if (usertype == 0) {
+            sqlFactory = new SQLFactory(this, "应用报表查询2");
+        }
         sqlFactory.addParameter("systemappid", systemappid);
         sqlFactory.addParameter("siteid", siteid);
         sqlFactory.addParameter_in("roleids", User.getUserRoleIDs(this, userid));
@@ -27,18 +30,37 @@ public class report extends Controller {
     }
 
     @API(title = "应用报表、打印请求预览页面", apiversion = R.ID20221213094501.v1.class)
-    @CACHEING_CLEAN(apiversions =  R.ID20221114135403.v1.class)
     public String viewReport() throws YosException {
         long sys_reportid = content.getLongValue("sys_reportid");
         long dataid = content.getLongValue("dataid");
-        Rows rows = dbConnect.runSqlQuery("select t1.*,t2.systemapp from sys_report t1 left join sys_systemapp t2 on t1.systemappid=t2.systemappid where sys_reportid=" + sys_reportid);
+        Rows rows = dbConnect.runSqlQuery("select * from sys_report where sys_reportid=" + sys_reportid);
         if (rows.isEmpty()) {
             return getErrReturnObject().setErrMsg("找不到报表信息").toString();
         }
-        String jimu_report_id = rows.get(0).getString("jimu_report_id");
-        if (rows.get(0).getString("systemapp").equals("dispatch")) {
-            dbConnect.runSqlUpdate("update sa_dispatch set isreport=isreport+1 where siteid='" + siteid + "' and sa_dispatchid=" + dataid);
+        if ("积木报表".equals(rows.get(0).getString("reporttype"))) {
+            String jimu_report_id = rows.get(0).getString("jimu_report_id");
+            if (rows.get(0).getString("systemapp").equals("dispatch")) {
+                dbConnect.runSqlUpdate("update sa_dispatch set isreport=isreport+1 where siteid='" + siteid + "' and sa_dispatchid=" + dataid);
+            }
+            return getSucReturnObject().setData("/yosreport/jmreport/view/" + jimu_report_id + "?token=" + getReportToken(sys_reportid, dataid)).toString();
+        } else if (rows.get(0).getString("reporttype").equalsIgnoreCase("Birt报表")) {
+            String filename = rows.get(0).getString("filename");
+            return getSucReturnObject().setData("/birt/frameset?__report=" + filename + ".rptdesign&token=" + getReportToken(sys_reportid, dataid)).toString();
+        } else {
+//            getReportToken(sys_reportid, dataid);
+            String path = rows.get(0).getString("path");
+            if (path.contains("${siteid}")) {
+                path = path.replace("${siteid}", siteid);
+            }
+            if (path.contains("${userid}")) {
+                path = path.replace("${userid}", String.valueOf(userid));
+            }
+            if (path.contains("${dataid}")) {
+                path = path.replace("${dataid}", String.valueOf(dataid));
+            }
+            return getSucReturnObject().setData(path).toString();
         }
-        return getSucReturnObject().setData("/yosreport/jmreport/view/" + jimu_report_id + "?token=" + getReportToken(sys_reportid, dataid)).toString();
+
+
     }
 }

+ 7 - 3
src/custom/restcontroller/webmanage/role/SQL/角色授权报表查询.sql

@@ -1,9 +1,13 @@
 select t1.sys_reportid,
-       t3.type,
-       t3.name
+       if(t2.reporttype = '积木报表', t3.type, 'datainfo') type,
+       if(t2.reporttype = '积木报表', t3.name, t2.name)    name,
+       t4.systemappname
 from sys_rolereportauth t1
          inner join sys_report t2
                     on t1.sys_reportid = t2.sys_reportid and (ifnull(t2.siteid, '') = '' or t2.siteid = $siteid$) and
                        isused = 1
-         inner join jimureport.jimu_report t3 on t2.jimu_report_id = t3.id
+         left join jimureport.jimu_report t3 on t2.jimu_report_id = t3.id
+         inner join sys_systemapp t4 on t2.systemappid = t4.systemappid
 where t1.roleid = $roleid$
+  and ((t2.reporttype = '积木报表' and t3.id is not null)
+    or (t2.reporttype != '积木报表'))

+ 7 - 5
src/custom/restcontroller/webmanage/role/SQL/角色授权报表选择查询.sql

@@ -1,14 +1,16 @@
 select t1.sys_reportid,
        t1.siteid,
-       t2.type,
-       t2.name,
+       if(t1.reporttype = '积木报表', t2.type, 'datainfo') type,
+       if(t1.reporttype = '积木报表', t2.name, t1.name)    name,
        t3.systemappname
 from sys_report t1
-         inner join jimureport.jimu_report t2
-                    on t1.jimu_report_id = t2.id
-         left join sys_systemapp t3 on t1.systemappid = t3.systemappid
+         left join jimureport.jimu_report t2
+                   on t1.jimu_report_id = t2.id
+         inner join sys_systemapp t3 on t1.systemappid = t3.systemappid
 where (ifnull(t1.siteid, '') = '' or t1.siteid = $siteid$)
   and t1.isused = 1
+  and ((t1.reporttype = '积木报表' and t2.id is not null)
+    or (t1.reporttype != '积木报表'))
   and not exists(select *
                  from sys_rolereportauth t3
                  where t1.sys_reportid = t3.sys_reportid