Przeglądaj źródła

Merge remote-tracking branch 'origin/develop' into develop

沈静伟 2 lat temu
rodzic
commit
56294c2617

+ 1 - 0
src/custom/restcontroller/webmanage/sale/databoard/SQL/工厂待发明细查询.sql

@@ -14,6 +14,7 @@ from sa_orderitems t1
                              inner join sa_dispatch t3 on t1.siteid = t3.siteid and t3.sa_dispatchid = t1.sa_dispatchid
                     where t1.outwarehouseqty > 0
                       and t1.siteid = $siteid$
+                      and t3.status in ('复核','关闭','手工关闭')
                       and $where2$
                     group by t1.sa_orderitemsid, t1.siteid) t3
                    on t1.sa_orderitemsid = t3.sa_orderitemsid and t1.siteid = t3.siteid

+ 11 - 0
src/custom/restcontroller/webmanage/sale/dispatch/SQL/发货单明细关联商品列表查询.sql

@@ -0,0 +1,11 @@
+SELECT
+       t1.itemno,
+       t1.itemname,
+       t2.unitname
+FROM
+	plm_item t1
+	INNER JOIN plm_unit t2 ON t1.unitid = t2.unitid AND t1.siteid = t2.siteid
+WHERE
+	t1.siteid = $siteid$
+	AND t1.itemid IN $itemids$
+	

+ 14 - 0
src/custom/restcontroller/webmanage/sale/dispatch/SQL/发货单明细关联订单列表查询.sql

@@ -0,0 +1,14 @@
+SELECT
+       t2.sa_orderid,
+       t2.sonum,
+       t2.type,
+       t1.rowno  orderRowno,
+       t1.price,
+       t1.undeliqty,
+       t1.deliedqty
+FROM
+	sa_orderitems t1
+	INNER JOIN sa_order t2 ON t1.sa_orderid = t2.sa_orderid AND t1.siteid = t2.siteid 
+WHERE
+	t1.siteid = $siteid$
+	AND t1.sa_orderitemsid IN $sa_orderitemsids$

+ 1 - 17
src/custom/restcontroller/webmanage/sale/dispatch/SQL/发货单明细所有列表查询.sql

@@ -4,35 +4,19 @@ SELECT t1.sa_dispatch_itemsid,
        t1.isclose,
        t4.billno,
        t4.status,
-       t8.sa_orderid,
-       t8.sonum,
-       t8.type,
        t10.enterprisename,
        t9.agentnum,
        t4.billdate,
        t4.closedate,
        t1.rowno,
-       t5.rowno                       orderRowno,
        t1.itemid,
-       t2.itemno,
-       t2.itemname,
-       t3.unitname,
        ifnull(t1.qty, 0) qty,
        ifnull(t1.outwarehouseqty, 0) outwarehouseqty,
        t1.outwarehousedate,
        t1.batchno,
-       t5.price,
-       cast((ifnull(t1.qty, 0) * t5.price) AS CHAR) amount,
-        t1.remarks,
-       t5.undeliqty,
-       t5.deliedqty
+       t1.remarks
 FROM sa_dispatch_items t1
-         left join plm_item t2 on t1.itemid = t2.itemid and t1.siteid = t2.siteid
-         LEFT JOIN plm_unit t3 ON t3.unitid = t2.unitid AND t3.siteid = t2.siteid
          LEFT JOIN sa_dispatch t4 ON t4.sa_dispatchid = t1.sa_dispatchid AND t4.siteid = t1.siteid
-         left join sa_orderitems t5 on t1.sa_orderitemsid = t5.sa_orderitemsid and t1.siteid = t5.siteid
-         left join sa_order t8 on t8.sa_orderid=t5.sa_orderid and t8.siteid=t5.siteid
-         left join plm_itemextend t6 on t2.siteid = t6.siteid and t2.itemid = t6.itemid
         LEFT JOIN sa_agents t9 on t9.sys_enterpriseid = t4.sys_enterpriseid and t9.siteid = t4.siteid
         LEFT JOIN sys_enterprise t10 on t10.sys_enterpriseid = t4.sys_enterpriseid and t10.siteid = t4.siteid
 where $where$

+ 63 - 6
src/custom/restcontroller/webmanage/sale/dispatch/dispatchItems.java

@@ -322,13 +322,51 @@ public class dispatchItems extends Controller {
             }
         }
         boolean isExport = content.getBooleanValue("isExport");
-        SQLFactory sqlFactory = new SQLFactory(this, "发货单明细所有列表查询", pageSize, pageNumber, pageSorting);
-        if (isExport) {
-            sqlFactory = new SQLFactory(this, "发货单明细所有列表查询");
+//        SQLFactory sqlFactory = new SQLFactory(this, "发货单明细所有列表查询", pageSize, pageNumber, pageSorting);
+//        if (isExport) {
+//            sqlFactory = new SQLFactory(this, "发货单明细所有列表查询");
+//        }
+//        sqlFactory.addParameter_SQL("where", where);
+//        sqlFactory.addParameter("siteid", siteid);
+//        Rows rows = dbConnect.runSqlQuery(sqlFactory);
+        QuerySQL querySQL = queryListManage(where.toString());
+        querySQL.setOrderBy(pageSorting);
+        Rows rows;
+        if (!isExport) {
+            querySQL.setPage(pageSize, pageNumber);
         }
-        sqlFactory.addParameter_SQL("where", where);
-        sqlFactory.addParameter("siteid", siteid);
-        Rows rows = dbConnect.runSqlQuery(sqlFactory);
+        rows = querySQL.query();
+
+        SQLFactory itemsqlFactory = new SQLFactory(this, "发货单明细关联商品列表查询");
+        itemsqlFactory.addParameter("siteid", siteid);
+        itemsqlFactory.addParameter_in("itemids", rows.toArrayList("itemid",new ArrayList<>()));
+        Rows itemRows = dbConnect.runSqlQuery(itemsqlFactory);
+        RowsMap itemRowsMap =itemRows.toRowsMap("itemid");
+
+        SQLFactory ordersqlFactory = new SQLFactory(this, "发货单明细关联订单列表查询");
+        ordersqlFactory.addParameter("siteid", siteid);
+        ordersqlFactory.addParameter_in("sa_orderitemsids", rows.toArrayList("sa_orderitemsid",new ArrayList<>()));
+        Rows orderRows = dbConnect.runSqlQuery(itemsqlFactory);
+        RowsMap orderRowsMap =orderRows.toRowsMap("sa_orderitemsid");
+
+        for (Row row :rows) {
+            if(orderRowsMap.containsKey(row.getString("sa_orderitemsid"))){
+                row.put("sa_orderid",orderRowsMap.get(row.getString("sa_orderitemsid")).get(0).getString("sa_orderid"));
+                row.put("sonum",orderRowsMap.get(row.getString("sa_orderitemsid")).get(0).getString("sonum"));
+                row.put("type",orderRowsMap.get(row.getString("sa_orderitemsid")).get(0).getString("type"));
+                row.put("orderRowno",orderRowsMap.get(row.getString("sa_orderitemsid")).get(0).getString("orderRowno"));
+                row.put("price",orderRowsMap.get(row.getString("sa_orderitemsid")).get(0).getString("price"));
+                row.put("undeliqty",orderRowsMap.get(row.getString("sa_orderitemsid")).get(0).getString("undeliqty"));
+                row.put("deliedqty",orderRowsMap.get(row.getString("sa_orderitemsid")).get(0).getString("deliedqty"));
+                row.put("amount",orderRowsMap.get(row.getString("sa_orderitemsid")).get(0).getBigDecimal("price").multiply(row.getBigDecimal("qty")).toPlainString());
+            }
+            if(itemRowsMap.containsKey(row.getString("itemid"))){
+                row.put("itemno",itemRowsMap.get(row.getString("itemid")).get(0).getString("itemno"));
+                row.put("itemname",itemRowsMap.get(row.getString("itemid")).get(0).getString("itemname"));
+                row.put("unitname",itemRowsMap.get(row.getString("itemid")).get(0).getString("unitname"));
+            }
+        }
+
         RowsMap rowsMap = rows.toRowsMap("itemno");
         ERPDocking erpDocking = new ERPDocking();
         JSONArray jsonArray = new JSONArray();
@@ -393,6 +431,25 @@ public class dispatchItems extends Controller {
         }
         return getSucReturnObject().setData(rows).toString();
     }
+
+    //查询订单列表(管理端)
+    public QuerySQL queryListManage(String where) throws YosException {
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_dispatch_items",
+                "sa_dispatch_itemsid","sa_dispatchid","sa_orderitemsid","isclose","rowno","itemid","outwarehousedate","batchno","remarks","ifnull(t1.qty, 0)"," ifnull(t1.outwarehouseqty, 0)");
+        querySQL.setTableAlias("t1");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_dispatch", "t4", "t4.sa_dispatchid = t1.sa_dispatchid AND t4.siteid = t1.siteid",
+                "billno","status","billdate","closedate");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t9", "t9.sys_enterpriseid = t4.sys_enterpriseid and t9.siteid = t4.siteid",
+                "agentnum");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t10", "t10.sys_enterpriseid = t4.sys_enterpriseid and t10.siteid = t4.siteid",
+                "enterprisename");
+        querySQL.setWhere("t1.siteid", siteid);
+        querySQL.setWhere(where);
+        querySQL.setWhere("t4.status in ('审核','复核','关闭','手工关闭')");
+        return querySQL;
+    }
+
+
     @API(title = "工厂发货/退货明细", apiversion = R.ID20230626104003.v1.class)
     @CACHEING
     public String queryDispatchAndAftersalesmagItemsList() throws YosException, IOException {