Просмотр исходного кода

9972 配件申请单,快递单号显示问题

wu 2 месяцев назад
Родитель
Сommit
1b3bc3e195

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

@@ -665,6 +665,10 @@ public class Order extends Controller {
             expressformrowsMap = expressformQuery.query().toRowsMap("sa_orderid");
         }
 
+        sqlFactory = new SQLFactory(this, "查询最新的快递信息");
+        sqlFactory.addParameter_in("sa_orderid", rows.toArrayList("sa_orderid"));
+        RowsMap expressformrowsMap2 = dbConnect.runSqlQuery(sqlFactory).toRowsMap("sa_orderid");
+
         for (Row row : rows) {
             row.put("pay_finance", financeRowsMap.getOrDefault(row.getString("sys_enterpriseid"), new Rows()));
             Rows dataRows = dataRowsMap.getOrDefault(row.getString("sa_orderid"), new Rows());
@@ -708,6 +712,17 @@ public class Order extends Controller {
             if (expressformrowsMap.containsKey(row.getString("sa_orderid"))) {
                 row.put("expressform", expressformrowsMap.get(row.getString("sa_orderid")).get(0));
             }
+            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", "");
+                row.put("expressform_txlogisticid", "");
+
+            }
+
+
         }
         Row row = rows.isNotEmpty() ? rows.get(0) : new Row();
         Long pay_enterpriseid = row.getLong("pay_enterpriseid");
@@ -3961,7 +3976,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","tracknumber","mailno").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);

+ 20 - 0
src/custom/restcontroller/webmanage/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