Sfoglia il codice sorgente

9869 配件申请单,配件申请单管理 列表显示快递单号问题

wu 2 mesi fa
parent
commit
3c6b989801

+ 7 - 3
src/custom/restcontroller/sale/order/Order.java

@@ -89,6 +89,10 @@ public class Order extends Controller {
             expressformrowsMap = expressformQuery.query().toRowsMap("sa_orderid");
         }
 
+        SQLFactory sqlFactory2 = new SQLFactory(this, "查询最新的快递信息");
+        sqlFactory2.addParameter_in("sa_orderid",sa_orderids);
+        RowsMap expressformrowsMap2=dbConnect.runSqlQuery(sqlFactory2).toRowsMap("sa_orderid");
+
         RowsMap ContactsRowsMap = beans.order.Order.getContactsRowsMap(this, rows.toArrayList("rec_contactsid", new ArrayList<>()));
         for (Row row : rows) {
             Rows dataRows = dataRowsMap.getOrDefault(row.getString("sa_orderid"), new Rows());
@@ -105,9 +109,9 @@ public class Order extends Controller {
                 row.put("contacts", new Row());
             }
             //查询快递信息
-            if (expressformrowsMap.containsKey(row.getString("sa_orderid"))) {
-                row.put("expressform_mailno", expressformrowsMap.get(row.getString("sa_orderid")).get(0).getString("mailno"));
-                row.put("expressform_txlogisticid", expressformrowsMap.get(row.getString("sa_orderid")).get(0).getString("txlogisticid"));
+            if (expressformrowsMap2.containsKey(row.getString("sa_orderid"))) {
+                row.put("expressform_mailno", expressformrowsMap2.get(row.getString("sa_orderid")).get(0).getString("mailno"));
+                row.put("expressform_txlogisticid", expressformrowsMap2.get(row.getString("sa_orderid")).get(0).getString("tracknumber"));
 
             } else {
                 row.put("expressform_mailno", "");

+ 20 - 0
src/custom/restcontroller/sale/order/SQL/查询最新的快递信息.sql

@@ -0,0 +1,20 @@
+SELECT
+    createdate,
+    mailno,
+    tracknumber,
+    sa_orderid
+FROM (
+         SELECT
+             t.createdate,
+             t.mailno,
+             t.tracknumber,
+             t.sa_orderid,
+             ROW_NUMBER() OVER (PARTITION BY t.sa_orderid ORDER BY t.createdate DESC) AS rn
+         FROM (
+                  SELECT DISTINCT t1.createdate,t1.mailno,t1.tracknumber,t2.sa_orderid
+                  FROM st_stockbill t1
+                           INNER JOIN st_stockbill_items t2 ON t2.st_stockbillid=t1.st_stockbillid
+                  WHERE t2.sa_orderid IN $sa_orderid$
+              ) t
+     ) ranked_results
+WHERE rn = 1

+ 20 - 0
src/custom/restcontroller/webmanage/sale/accessoryorder/SQL/查询最新的快递信息.sql

@@ -0,0 +1,20 @@
+SELECT
+    createdate,
+    mailno,
+    tracknumber,
+    sa_orderid
+FROM (
+         SELECT
+             t.createdate,
+             t.mailno,
+             t.tracknumber,
+             t.sa_orderid,
+             ROW_NUMBER() OVER (PARTITION BY t.sa_orderid ORDER BY t.createdate DESC) AS rn
+         FROM (
+                  SELECT DISTINCT t1.createdate,t1.mailno,t1.tracknumber,t2.sa_orderid
+                  FROM st_stockbill t1
+                           INNER JOIN st_stockbill_items t2 ON t2.st_stockbillid=t1.st_stockbillid
+                  WHERE t2.sa_orderid IN $sa_orderid$
+              ) t
+     ) ranked_results
+WHERE rn = 1

+ 8 - 3
src/custom/restcontroller/webmanage/sale/accessoryorder/accessoryorder.java

@@ -161,6 +161,11 @@ public class accessoryorder extends Controller {
             expressformrowsMap = expressformQuery.query().toRowsMap("sa_orderid");
         }
 
+        SQLFactory sqlFactory = new SQLFactory(this, "查询最新的快递信息");
+        sqlFactory.addParameter_in("sa_orderid",rows.toArrayList("sa_orderid"));
+        RowsMap expressformrowsMap2=dbConnect.runSqlQuery(sqlFactory).toRowsMap("sa_orderid");
+
+
         //查询区域信息
 //        QuerySQL areaQuery = SQLFactory.createQuerySQL(this, "sa_salearea", "areanum","areaname","areafullname").setTableAlias("t1");
 //        areaQuery.addJoinTable(JOINTYPE.inner, "sys_enterprise_tradefield ", "t2", "t2.sa_saleareaid = t1.sa_saleareaid","sys_enterpriseid");
@@ -219,9 +224,9 @@ public class accessoryorder extends Controller {
             if (expressformrowsMap.containsKey(row.getString("sa_orderid"))) {
                 row.put("expressform", expressformrowsMap.get(row.getString("sa_orderid")).get(0));
             }
-            if (expressformrowsMap.containsKey(row.getString("sa_orderid"))) {
-                row.put("expressform_mailno", expressformrowsMap.get(row.getString("sa_orderid")).get(0).getString("mailno"));
-                row.put("expressform_txlogisticid", expressformrowsMap.get(row.getString("sa_orderid")).get(0).getString("txlogisticid"));
+            if (expressformrowsMap2.containsKey(row.getString("sa_orderid"))) {
+                row.put("expressform_mailno", expressformrowsMap2.get(row.getString("sa_orderid")).get(0).getString("mailno"));
+                row.put("expressform_txlogisticid", expressformrowsMap2.get(row.getString("sa_orderid")).get(0).getString("tracknumber"));
 
             } else {
                 row.put("expressform_mailno", "");

+ 2 - 1
src/custom/restcontroller/webmanage/sale/order/Order.java

@@ -3676,7 +3676,7 @@ public class Order extends Controller {
     @CACHEING
     public String stockbillList() throws YosException {
         Long sa_orderid = content.getLong("sa_orderid");
-        QuerySQL stockbillQuery = SQLFactory.createQuerySQL(this, "st_stockbill", "rb", "billdate", "status", "billno", "remarks", "st_stockbillid").setTableAlias("t1");
+        QuerySQL stockbillQuery = SQLFactory.createQuerySQL(this, "st_stockbill", "rb", "billdate", "status", "billno", "remarks", "st_stockbillid","tracknumber","mailno").setTableAlias("t1");
         stockbillQuery.addJoinTable(JOINTYPE.left, "st_stockbill_items", "t2", "t2.st_stockbillid = t1.st_stockbillid");
         stockbillQuery.setWhere("t2.sa_orderid", sa_orderid);
         stockbillQuery.setDistinct(true);
@@ -3684,6 +3684,7 @@ public class Order extends Controller {
         for (Row row : rows) {
             int rb = row.getInteger("rb");
             row.put("rb", rb == 1 ? "蓝" : "红");
+            row.put("expressform_mailno", row.getString("mailno"));
         }
         return getSucReturnObject().setData(rows).toString();
     }