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

k3对接发货单退货单速度优化

hu 2 лет назад
Родитель
Сommit
cc6cc7eb93

+ 15 - 5
src/custom/restcontroller/webmanage/lsak3/aftersalesmag/aftersalesmag.java

@@ -7,6 +7,7 @@ import common.YosException;
 import common.annotation.API;
 import common.data.Row;
 import common.data.Rows;
+import common.data.RowsMap;
 import restcontroller.R;
 
 import java.util.ArrayList;
@@ -28,15 +29,24 @@ public class aftersalesmag extends Controller {
     @API(title = "获取DRP返退单", apiversion = R.ID20230715093903.v1.class,accesstoken = false)
     public String getAftersalesmag() throws YosException{
         Rows rows = dbConnect.runSqlQuery("select t2.k3outcode fk3outcode,t1.updatek3flag fupdatek3flag,t1.sa_aftersalesmagid salereturnbillid,t1.billno fbillnum,t1.createby,ifnull(t1.billdate,CURRENT_DATE) fdate,t2.agentnum fagentnum,t1.reason fnotes from sa_aftersalesmag t1 inner join sa_agents t2 on t1.sys_enterpriseid=t2.sys_enterpriseid and t1.siteid=t2.siteid where (t1.updatek3flag='0' or t1.updatek3flag='2') and t1.createby !='LSA总0001' and t1.siteid='lsa1986'");
-        for (Row row : rows) {
-            String sa_aftersalesmagid = row.getString("sa_aftersalesmagid");
-            Rows detailRows = dbConnect.runSqlQuery("select t2.k3outcode fk3outcode,t1.st_stockbill_itemsid salereturnbilldeid,t2.itemno fitemno,t1.qty fqty,t1.price fprice,t1.reason fnotes,t4.billno fsaleissuebillno, t3.rowno fsaleissuebillentryid from sa_aftersalesmag_items t1 inner join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid left join st_stockbill_items t3 on t1.st_stockbill_itemsid=t3.st_stockbill_itemsid and t1.siteid=t3.siteid left join st_stockbill t4 on t3.st_stockbillid=t4.st_stockbillid and t3.siteid=t4.siteid where t1.sa_aftersalesmagid='" + sa_aftersalesmagid + "' and t1.siteid='lsa1986'");
-            row.put("salereturnbilldetil", detailRows.toJsonArray());
-        }
         if(rows.isEmpty()) {
             JSONArray array = new JSONArray();
             return array.toString();
+        }else{
+            Rows detailRows = dbConnect.runSqlQuery("select t1.sa_aftersalesmagid,t2.k3outcode fk3outcode,t1.st_stockbill_itemsid salereturnbilldeid,t2.itemno fitemno,t1.qty fqty,t1.price fprice,t1.reason fnotes,t4.billno fsaleissuebillno, t3.rowno fsaleissuebillentryid from sa_aftersalesmag_items t1 inner join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid left join st_stockbill_items t3 on t1.st_stockbill_itemsid=t3.st_stockbill_itemsid and t1.siteid=t3.siteid left join st_stockbill t4 on t3.st_stockbillid=t4.st_stockbillid and t3.siteid=t4.siteid where t1.sa_aftersalesmagid in" + rows.toJsonArray("salereturnbillid").toJSONString().replace("[", "(").replace("]", ")")  + " and t1.siteid='lsa1986'");
+            RowsMap rowsMap =detailRows.toRowsMap("sa_aftersalesmagid");
+            for (Row row : rows) {
+                String salereturnbillid = row.getString("salereturnbillid");
+                if(rowsMap.containsKey(salereturnbillid)){
+                    row.put("salereturnbilldetil", rowsMap.get(salereturnbillid));
+                }else{
+                    row.put("salereturnbilldetil", new JSONArray());
+                }
+
+            }
         }
+
+
         return rows.toJsonArray().toString();
     }
 

+ 13 - 5
src/custom/restcontroller/webmanage/lsak3/dispatch/dispatch.java

@@ -7,6 +7,7 @@ import common.YosException;
 import common.annotation.API;
 import common.data.Rows;
 import common.data.Row;
+import common.data.RowsMap;
 import restcontroller.R;
 
 import java.util.ArrayList;
@@ -28,15 +29,22 @@ public class dispatch extends Controller {
     @API(title = "获取DRP发货单", apiversion = R.ID20230715091603.v1.class,accesstoken = false)
     public String getDispatch() throws YosException{
         Rows rows = dbConnect.runSqlQuery("select t3.sonum fsonum,t2.k3outcode fk3outcode,t1.updatek3flag fupdatek3flag,t1.billno finvonum,t1.sa_dispatchid sainvoiceid,t1.createby,t1.trantype ftrantype,ifnull(t1.billdate,CURRENT_DATE) fdate,t2.agentnum fagentnum,t1.remarks fnotes from sa_dispatch t1 inner join sa_agents t2 on t1.sys_enterpriseid=t2.sys_enterpriseid and t1.siteid=t2.siteid left join sa_order t3 on  t3.sa_orderid=t1.sa_orderid and t3.siteid=t1.siteid  where (t1.updatek3flag='0' or t1.updatek3flag='2') and t1.createby !='LSA总0001'  and t1.siteid='lsa1986'");
-        for (Row row : rows) {
-            String sa_dispatchid = row.getString("sa_dispatchid");
-            Rows detailRows = dbConnect.runSqlQuery("select t1.sa_dispatch_itemsid sainvoicedetailid,t2.itemno fitemno,t2.k3outcode fk3outcode,t3.qty fqty,t3.price fprice,t1.remarks fnotes,t3.customproperties,t2.spec flong from sa_dispatch_items t1 inner join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid inner join sa_orderitems t3 on t1.sa_orderitemsid=t3.sa_orderitemsid and t1.siteid=t3.siteid where t1.sa_dispatchid='" + sa_dispatchid + "'  and t1.siteid='lsa1986'");
-            row.put("sainvoicedetail", detailRows.toJsonArray());
-        }
         if(rows.isEmpty()) {
             JSONArray array = new JSONArray();
             return array.toString();
+        }else{
+            Rows detailRows = dbConnect.runSqlQuery("select t1.sa_dispatchid,t1.sa_dispatch_itemsid sainvoicedetailid,t2.itemno fitemno,t2.k3outcode fk3outcode,t3.qty fqty,t3.price fprice,t1.remarks fnotes,t3.customproperties,t2.spec flong from sa_dispatch_items t1 inner join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid inner join sa_orderitems t3 on t1.sa_orderitemsid=t3.sa_orderitemsid and t1.siteid=t3.siteid where t1.sa_dispatchid in" + rows.toJsonArray("sainvoiceid").toJSONString().replace("[", "(").replace("]", ")") + "  and t1.siteid='lsa1986'");
+            RowsMap rowsMap =detailRows.toRowsMap("sa_dispatchid");
+            for (Row row : rows) {
+                String sainvoiceid = row.getString("sainvoiceid");
+                if(rowsMap.containsKey(sainvoiceid)){
+                    row.put("sainvoicedetail", rowsMap.get(sainvoiceid));
+                }
+
+            }
         }
+
+
         return rows.toJsonArray().toString();
     }