Browse Source

工单详情接口修改

hu 4 months ago
parent
commit
ad5eafab5f

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

@@ -0,0 +1 @@
+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$

+ 80 - 0
src/custom/restcontroller/webmanage/sale/workorder/workorder.java

@@ -172,6 +172,9 @@ public class workorder extends Controller {
         sqlFactory.addParameter("siteid", siteid);
         Rows rows = dbConnect.runSqlQuery(sqlFactory);
         Row row = rows.isNotEmpty() ? rows.get(0) : new Row();
+
+        RowsMap rowsMapdetails = queryWorkOrderNodedetails(sa_workorderid);
+
         if (!row.isEmpty()) {
             /** 工单工序查询 **/
             Rows rowsOneLevelWorkpreset = dbConnect
@@ -201,6 +204,7 @@ public class workorder extends Controller {
                     }
                     rowOneLevel.put("attinfos",
                             attRowsMap.get(rowOneLevel.getString("sa_workorder_nodeid")));
+                    rowOneLevel.put("detail",rowsMapdetails.get(rowOneLevel.getString("sa_workorder_nodeid")));
                     Rows lowerRows = rowsTwoLevelMap.get(rowOneLevel.getString("sa_workorder_nodeid"));
                     if (!lowerRows.isEmpty()) {
                         for (Row lowerRow : lowerRows) {
@@ -210,6 +214,7 @@ public class workorder extends Controller {
 
                             lowerRow.put("attinfos",
                                     attRowsMap.get(lowerRow.getString("sa_workorder_nodeid")));
+                            lowerRow.put("detail",rowsMapdetails.get(lowerRow.getString("sa_workorder_nodeid")));
                         }
                     }
                     rowOneLevel.put("child", lowerRows);
@@ -236,6 +241,81 @@ public class workorder extends Controller {
         return getSucReturnObject().setData(row).toString();
     }
 
+    public RowsMap queryWorkOrderNodedetails(long sa_workorderid) throws YosException {
+        SQLFactory sqlFactory = new SQLFactory(this, "服务工单节点查询全部");
+        sqlFactory.addParameter("sa_workorderid", sa_workorderid);
+        sqlFactory.addParameter("siteid", siteid);
+        //System.out.println(sqlFactory.getSQL());
+        Rows rows = dbConnect.runSqlQuery(sqlFactory);
+        Rows sa_workorder_templateids = dbConnect.runSqlQuery("select sa_workorder_templateid from sa_workorder where sa_workorderid=" + sa_workorderid);
+        long sa_workorder_templateid = 0;
+        if (!sa_workorder_templateids.isEmpty()) {
+            sa_workorder_templateid = sa_workorder_templateids.get(0).getLong("sa_workorder_templateid");
+        }
+
+        Rows workorderteamRows = dbConnect
+                .runSqlQuery("select * from sys_datateam where ownertable='sa_workorder_node' and siteid='" + siteid
+                        + "'");
+        RowsMap workorderteamRowsMap = workorderteamRows.toRowsMap("ownerid");
+
+        /** 工单节点物料查询 **/
+        Rows oldworkorderitemRows = dbConnect.runSqlQuery(
+                "select t1.*,t2.itemno,t2.model,t2.itemname,t2.spec from sa_workorder_node_items t1 left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where  t1.sa_workorderid=" + sa_workorderid + " and ifnull(t1.isnew,0)=0 and t1.siteid='"
+                        + siteid + "'");
+        RowsMap oldworkorderitemRowsMap = oldworkorderitemRows.toRowsMap("sa_workorder_nodeid");
+
+        Rows newworkorderitemRows = dbConnect.runSqlQuery(
+                "select t1.*,t2.itemno,t2.model,t2.itemname,t2.spec from sa_workorder_node_items t1 left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.sa_workorderid=" + sa_workorderid + " and ifnull(t1.isnew,0)=1 and t1.siteid='"
+                        + siteid + "'");
+        RowsMap newworkorderitemRowsMap = newworkorderitemRows.toRowsMap("sa_workorder_nodeid");
+
+        /** 节点关联培训人员查询 **/
+        Rows trainers = dbConnect.runSqlQuery(
+                "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");
+        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") + ")");
+                    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")));
+                    }
+
+                }
+            } else {
+                row.put("workpresetjson", JSONObject.parseObject(row.getString("workpresetjson"))); // 转化成json
+            }
+
+            /** 工单节点附件 **/
+            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")));
+            /** 工单节点团队查询 **/
+
+            row.put("team", workorderteamRowsMap.get(row.getString("sa_workorder_nodeid")));
+
+            /** 工单节点物料查询 **/
+            row.put("oldtitems", oldworkorderitemRowsMap.get(row.getString("sa_workorder_nodeid")));
+
+
+            row.put("newtitems", newworkorderitemRowsMap.get(row.getString("sa_workorder_nodeid")));
+
+//			 /** 节点关联培训物料查询 **/
+//			  Rows traintitem = dbConnect.runSqlQuery("select * from sa_workorder_node_items where sa_workorder_nodeid="+sa_workorder_nodeid+" and sa_workorderid="
+//						+ sa_workorderid+" and siteid='"+siteid+"'");
+//			  row.put("traintitem", traintitem);
+
+            /** 节点关联培训人员查询 **/
+
+            row.put("trainers", trainersRowsMap.get(row.getString("sa_workorder_nodeid")));
+        }
+
+        return rows.toRowsMap("sa_workorder_nodeid");
+    }
+
     @API(title = "查询服务工单列表", apiversion = R.ID20230208140203.v1.class)
     @CACHEING
     public String queryworkorderList() throws YosException {