hxh 4 месяцев назад
Родитель
Сommit
d5e58be7a0

+ 8 - 1
src/custom/restcontroller/webmanage/sale/workorder/SQL/服务工单节点查询全部.sql

@@ -1 +1,8 @@
-select * from (SELECT * FROM(SELECT( @i := CASE WHEN ( @parentid = parentid AND @sa_workorderid = sa_workorderid ) THEN @i + 1 ELSE 1 END ) rownum,( @parentid := parentid ),( @sa_workorderid := sa_workorderid ),( @siteid := siteid ),b.* FROM	sa_workorder_node b,( SELECT @i:= 0, @parentid := '', @sa_workorderid := '', @siteid := '' ) AS a )t)t where sa_workorderid=$sa_workorderid$ and siteid=$siteid$
+SELECT *,
+       ROW_NUMBER() OVER (
+           PARTITION BY parentid, sa_workorderid, siteid
+           ORDER BY sa_workorder_nodeid
+       ) AS rownum
+FROM sa_workorder_node
+WHERE sa_workorderid =$sa_workorderid$
+  AND siteid =$siteid$

+ 9 - 1
src/custom/restcontroller/webmanage/sale/workorder/SQL/服务工单节点详情查询.sql

@@ -1 +1,9 @@
-select * from (SELECT * FROM(SELECT( @i := CASE WHEN ( @parentid = parentid AND @sa_workorderid = sa_workorderid ) THEN @i + 1 ELSE 1 END ) rownum,( @parentid := parentid ),( @sa_workorderid := sa_workorderid ),( @siteid := siteid ),b.* FROM	sa_workorder_node b,( SELECT @i:= 0, @parentid := '', @sa_workorderid := '', @siteid := '' ) AS a )t)t where sa_workorderid=$sa_workorderid$ and sa_workorder_nodeid=$sa_workorder_nodeid$ and siteid=$siteid$
+SELECT *,
+       ROW_NUMBER() OVER (
+           PARTITION BY parentid, sa_workorderid, siteid
+           ORDER BY sa_workorder_nodeid
+       ) AS rownum
+FROM sa_workorder_node
+WHERE sa_workorderid =$sa_workorderid$
+  AND siteid =$siteid$
+  AND sa_workorder_nodeid =$sa_workorder_nodeid$

+ 20 - 21
src/custom/restcontroller/webmanage/sale/workorder/workorder.java

@@ -254,11 +254,13 @@ public class workorder extends Controller {
                             + " and t1.siteid='" + siteid + "'");
             RowsMap rowsOneLevelMapWorkpreset = rowsOneLevelWorkpreset.toRowsMap("sequence");
             Rows rowsOneLevel = dbConnect
-                    .runSqlQuery("select * from (SELECT * FROM(SELECT( @i := CASE WHEN ( @parentid = parentid AND @sa_workorderid = sa_workorderid ) THEN @i + 1 ELSE 1 END ) rownum,( @parentid := parentid ),( @sa_workorderid := sa_workorderid ),( @siteid := siteid ),b.* FROM	sa_workorder_node b,( SELECT @i:= 0, @parentid := '', @sa_workorderid := '', @siteid := '' ) AS a )t)t where parentid=0 and sa_workorderid=" + sa_workorderid
-                            + " and siteid='" + siteid + "'");
-            Rows rowsTwoLevel = dbConnect
-                    .runSqlQuery("select * from (SELECT * FROM(SELECT( @i := CASE WHEN ( @parentid = parentid AND @sa_workorderid = sa_workorderid ) THEN @i + 1 ELSE 1 END ) rownum,( @parentid := parentid ),( @sa_workorderid := sa_workorderid ),( @siteid := siteid ),b.* FROM	sa_workorder_node b,( SELECT @i:= 0, @parentid := '', @sa_workorderid := '', @siteid := '' ) AS a )t)t where parentid!=0 and sa_workorderid="
-                            + sa_workorderid + " and siteid='" + siteid + "'");
+                    .runSqlQuery("SELECT *,ROW_NUMBER() OVER (PARTITION BY parentid, sa_workorderid, siteid ORDER BY sa_workorder_nodeid) AS rownum FROM sa_workorder_node WHERE siteid = '"+siteid+"' AND sa_workorderid = "+sa_workorderid+" ORDER BY parentid, rownum");
+            Rows rowsTwoLevel =new Rows();
+            for (Row rowOneLevel :rowsOneLevel) {
+                if(rowOneLevel.getInteger("parentid")!=0){
+                    rowsTwoLevel.add(rowOneLevel);
+                }
+            }
             RowsMap rowsTwoLevelMap = rowsTwoLevel.toRowsMap("parentid");
             // 附件
             ArrayList<Long> ids = rowsOneLevel.toArrayList("sa_workorder_nodeid", new ArrayList<>());
@@ -362,12 +364,14 @@ public class workorder extends Controller {
                 "select t1.sa_workorder_node_teamid,t1.createuserid,t1.createby,t1.createdate,t1.sa_workorderid,t1.sa_workorder_nodeid,if(t1.userid>0,t3.name,t1.name) name,if(t1.userid>0,t3.phonenumber,t1.phonenumber) phonenumber,if(t1.userid>0,t3.position,t1.position) position,t2.enterprisename,t2.phonenumber enterprisephonenumber from sa_workorder_node_team t1 left join sys_enterprise t2 on t1.sys_enterpriseid=t2.sys_enterpriseid and t1.siteid=t2.siteid left join sys_hr t3 on t1.userid=t3.userid and t1.siteid=t3.siteid  where t1.sa_workorderid=" + sa_workorderid + " and t1.siteid='"
                         + siteid + "'");
         RowsMap trainersRowsMap = trainers.toRowsMap("sa_workorder_nodeid");
+        ArrayList<Long> ids = rows.toArrayList("sa_workorder_nodeid", new ArrayList<>());
+        RowsMap attRowsMap = getAttachmentUrl("sa_workorder_node", ids);
         for (Row row : rows) {
             if (row.getJSONObject("workpresetjson") == null || row.getJSONObject("workpresetjson").isEmpty()) {
                 if (row.getLong("parentid") == 0) {
                     row.put("workpresetjson", queryCorrespondingWorkpresetInfo(sa_workorder_templateid, row.getString("rownum"), 0));
                 } else {
-                    Rows sa_workorder_template_worksids = dbConnect.runSqlQuery("select sa_workorder_template_worksid from  sa_workorder_template_works  where sa_workorder_templateid=" + sa_workorder_templateid + " and parentid=0 and sequence=(select t.rownum from  (SELECT * FROM(SELECT( @i := CASE WHEN ( @parentid = parentid AND @sa_workorderid = sa_workorderid ) THEN @i + 1 ELSE 1 END ) rownum,( @parentid := parentid ),( @sa_workorderid := sa_workorderid ),( @siteid := siteid ),b.* FROM	sa_workorder_node b,( SELECT @i:= 0, @parentid := '', @sa_workorderid := '', @siteid := '' ) AS a )t) t where t.sa_workorder_nodeid=" + row.getLong("parentid") + ")");
+                    Rows sa_workorder_template_worksids = dbConnect.runSqlQuery("SELECT sa_workorder_template_worksid FROM sa_workorder_template_works WHERE sa_workorder_templateid = "+sa_workorder_templateid+" AND parentid = 0 AND sequence = (SELECT rownum FROM ( SELECT ROW_NUMBER() OVER (PARTITION BY parentid, sa_workorderid, siteid ORDER BY sa_workorder_nodeid) AS rownum FROM sa_workorder_node WHERE sa_workorder_nodeid = "+ row.getLong("parentid") +" AND siteid ='"+siteid+"') t);");
                     if (!sa_workorder_template_worksids.isEmpty()) {
                         row.put("workpresetjson", queryCorrespondingWorkpresetInfo(sa_workorder_templateid, row.getString("sequence"), sa_workorder_template_worksids.get(0).getLong("sa_workorder_template_worksid")));
                     }
@@ -378,8 +382,7 @@ public class workorder extends Controller {
             }
 
             /** 工单节点附件 **/
-            ArrayList<Long> ids = rows.toArrayList("sa_workorder_nodeid", new ArrayList<>());
-            RowsMap attRowsMap = getAttachmentUrl("sa_workorder_node", ids);
+
             row.put("attinfos", attRowsMap.get(row.getString("sa_workorder_nodeid")));
             /** 工单节点团队查询 **/
 
@@ -490,11 +493,12 @@ public class workorder extends Controller {
         querySQL.setOrderBy("t1.createdate desc");
         querySQL.setPage(pageSize, pageNumber);
         Rows rows = querySQL.query();
-        SQLFactory sqlFactory2 = new SQLFactory(this, "服务工单状态统计");
-        sqlFactory2.addParameter("userid", userid);
-        sqlFactory2.addParameter("siteid", siteid);
-        sqlFactory2.addParameter_SQL("where", where);
-        Rows rows_total = dbConnect.runSqlQuery(sqlFactory2.getSQL());
+
+//        SQLFactory sqlFactory2 = new SQLFactory(this, "服务工单状态统计");
+//        sqlFactory2.addParameter("userid", userid);
+//        sqlFactory2.addParameter("siteid", siteid);
+//        sqlFactory2.addParameter_SQL("where", where);
+//        Rows rows_total = dbConnect.runSqlQuery(sqlFactory2.getSQL());
 
         QuerySQL userquerySQL = SQLFactory.createQuerySQL(this, "sys_users","userid");
         userquerySQL.setTableAlias("t1");
@@ -522,15 +526,10 @@ public class workorder extends Controller {
                 }
 
             }
-            rows.get(0).put("rows_total", rows_total);
+//            rows.get(0).put("rows_total", rows_total);
         }
 
-//		 //附件
-//        ArrayList<Long> ids = rows.toArrayList("sa_workorderid", new ArrayList<>());
-//        RowsMap attRowsMap = getAttachmentUrl("sa_workorder", ids);
-//        for (Row row : rows) {
-//            row.put("attinfos", attRowsMap.getOrDefault(row.getString("sa_workorderid"), new Rows()));
-//        }
+
 
         return getSucReturnObject().setData(rows).toString();
     }
@@ -564,7 +563,7 @@ public class workorder extends Controller {
 
                     row.put("workpresetjson", queryCorrespondingWorkpresetInfo(sa_workorder_templateid, row.getString("rownum"), 0));
                 } else {
-                    Rows sa_workorder_template_worksids = dbConnect.runSqlQuery("select sa_workorder_template_worksid from  sa_workorder_template_works  where sa_workorder_templateid=" + sa_workorder_templateid + " and parentid=0 and sequence=(select t.rownum from  (SELECT * FROM(SELECT( @i := CASE WHEN ( @parentid = parentid AND @sa_workorderid = sa_workorderid ) THEN @i + 1 ELSE 1 END ) rownum,( @parentid := parentid ),( @sa_workorderid := sa_workorderid ),( @siteid := siteid ),b.* FROM	sa_workorder_node b,( SELECT @i:= 0, @parentid := '', @sa_workorderid := '', @siteid := '' ) AS a )t) t where t.sa_workorder_nodeid=" + row.getLong("parentid") + ")");
+                    Rows sa_workorder_template_worksids = dbConnect.runSqlQuery("SELECT sa_workorder_template_worksid FROM sa_workorder_template_works WHERE sa_workorder_templateid = "+sa_workorder_templateid+" AND parentid = 0 AND sequence = (SELECT rownum FROM ( SELECT ROW_NUMBER() OVER (PARTITION BY parentid, sa_workorderid, siteid ORDER BY sa_workorder_nodeid) AS rownum FROM sa_workorder_node WHERE sa_workorder_nodeid = "+ row.getLong("parentid") +" AND siteid ='"+siteid+"') t);");
                     if (!sa_workorder_template_worksids.isEmpty()) {
                         row.put("workpresetjson", queryCorrespondingWorkpresetInfo(sa_workorder_templateid, row.getString("sequence"), sa_workorder_template_worksids.get(0).getLong("sa_workorder_template_worksid")));
                     }