Bladeren bron

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

沈静伟 2 jaren geleden
bovenliggende
commit
8159192a6e

+ 4 - 2
src/custom/restcontroller/webmanage/lsak3/stockbill/SQL/销售出库单明细新增.sql

@@ -1,4 +1,4 @@
-insert into st_stockbill_items (siteid, st_stockbill_itemsid,st_stockbillid, sa_dispatch_itemsid, rowno, itemid, qty,amount,remarks,price)
+insert into st_stockbill_items (siteid, st_stockbill_itemsid,st_stockbillid, sa_dispatch_itemsid, rowno, itemid, qty,amount,remarks,price,sa_orderitemsid,sa_orderid)
 select $siteid$,
 select $siteid$,
        $st_stockbill_itemsid$,
        $st_stockbill_itemsid$,
        $st_stockbillid$,
        $st_stockbillid$,
@@ -8,4 +8,6 @@ select $siteid$,
        $qty$,
        $qty$,
        $amount$,
        $amount$,
        $remarks$,
        $remarks$,
-       $price$
+       $price$,
+       $sa_orderitemsid$,
+       $sa_orderid$

+ 11 - 3
src/custom/restcontroller/webmanage/lsak3/stockbill/stockbill.java

@@ -127,11 +127,11 @@ public class stockbill extends Controller {
                      rows = dbConnect.runSqlQuery("select * from plm_item  where siteid='lsa1986' and itemno in('')");
                      rows = dbConnect.runSqlQuery("select * from plm_item  where siteid='lsa1986' and itemno in('')");
                 }
                 }
                 RowsMap itemRowsMap =rows.toRowsMap("itemno");
                 RowsMap itemRowsMap =rows.toRowsMap("itemno");
-                Rows distiptchRows = dbConnect.runSqlQuery("select t2.price,t1.sa_dispatch_itemsid from sa_dispatch_items t1 inner join sa_orderitems t2 on t1.sa_orderitemsid=t2.sa_orderitemsid and t1.siteid=t2.siteid inner join sa_dispatch t3 on t1.sa_dispatchid=t3.sa_dispatchid and t1.siteid=t3.siteid  where t3.status in('审核','复核','关闭') and  t1.siteid='lsa1986' and  t1.sa_dispatch_itemsid in "+sa_dispatch_itemsids.toString().replace("[", "(").replace("]", ")"));
+                Rows distiptchRows = dbConnect.runSqlQuery("select t2.price,t1.sa_dispatch_itemsid,t1.sa_orderitemsid,t2.sa_orderid from sa_dispatch_items t1 inner join sa_orderitems t2 on t1.sa_orderitemsid=t2.sa_orderitemsid and t1.siteid=t2.siteid inner join sa_dispatch t3 on t1.sa_dispatchid=t3.sa_dispatchid and t1.siteid=t3.siteid  where t3.status in('审核','复核','关闭') and  t1.siteid='lsa1986' and  t1.sa_dispatch_itemsid in "+sa_dispatch_itemsids.toString().replace("[", "(").replace("]", ")"));
                 RowsMap distiptchRowsMap =distiptchRows.toRowsMap("sa_dispatch_itemsid");
                 RowsMap distiptchRowsMap =distiptchRows.toRowsMap("sa_dispatch_itemsid");
 
 
-                Rows aftersalesmagRows = dbConnect.runSqlQuery("select t1.price,t1.sa_aftersalesmag_itemsid from sa_aftersalesmag_items t1  where  t1.siteid='lsa1986' and  t1.sa_aftersalesmag_itemsid in "+sa_dispatch_itemsids.toString().replace("[", "(").replace("]", ")"));
-                RowsMap aftersalesmagRowsMap =distiptchRows.toRowsMap("sa_aftersalesmag_itemsid");
+                Rows aftersalesmagRows = dbConnect.runSqlQuery("select t1.price,t1.sa_aftersalesmag_itemsid,t1.sa_orderitemsid,t2.sa_orderid from sa_aftersalesmag_items t1 inner join sa_orderitems t2 on t1.sa_orderitemsid=t2.sa_orderitemsid and t1.siteid=t2.siteid  where  t1.siteid='lsa1986' and  t1.sa_aftersalesmag_itemsid in "+sa_dispatch_itemsids.toString().replace("[", "(").replace("]", ")"));
+                RowsMap aftersalesmagRowsMap =aftersalesmagRows.toRowsMap("sa_aftersalesmag_itemsid");
                 BigDecimal amountTotal=BigDecimal.ZERO;
                 BigDecimal amountTotal=BigDecimal.ZERO;
                 for (Object object:detailarray) {
                 for (Object object:detailarray) {
                     JSONObject jsonObject = (JSONObject)object;
                     JSONObject jsonObject = (JSONObject)object;
@@ -164,18 +164,26 @@ public class stockbill extends Controller {
                             sqlFactorydetail.addParameter("price", distiptchRowsMap.get(sainvoicedetailid).get(0).getBigDecimal("price"));
                             sqlFactorydetail.addParameter("price", distiptchRowsMap.get(sainvoicedetailid).get(0).getBigDecimal("price"));
                             amountTotal=amountTotal.add(fqty.multiply(distiptchRowsMap.get(sainvoicedetailid).get(0).getBigDecimal("price")));
                             amountTotal=amountTotal.add(fqty.multiply(distiptchRowsMap.get(sainvoicedetailid).get(0).getBigDecimal("price")));
                             sqlFactorydetail.addParameter("amount", fqty.multiply(distiptchRowsMap.get(sainvoicedetailid).get(0).getBigDecimal("price")));
                             sqlFactorydetail.addParameter("amount", fqty.multiply(distiptchRowsMap.get(sainvoicedetailid).get(0).getBigDecimal("price")));
+                            sqlFactorydetail.addParameter("sa_orderitemsid", distiptchRowsMap.get(sainvoicedetailid).get(0).getLong("sa_orderitemsid"));
+                            sqlFactorydetail.addParameter("sa_orderid", distiptchRowsMap.get(sainvoicedetailid).get(0).getLong("sa_orderid"));
                             System.out.println(amountTotal);
                             System.out.println(amountTotal);
                         }else{
                         }else{
                             sqlFactorydetail.addParameter("price", 0);
                             sqlFactorydetail.addParameter("price", 0);
                             sqlFactorydetail.addParameter("amount", 0);
                             sqlFactorydetail.addParameter("amount", 0);
+                            sqlFactorydetail.addParameter("sa_orderitemsid", 0);
+                            sqlFactorydetail.addParameter("sa_orderid", 0);
                         }
                         }
                     }else{
                     }else{
                         if(aftersalesmagRowsMap.containsKey(String.valueOf(sainvoicedetailid)) && aftersalesmagRowsMap.get(sainvoicedetailid).isNotEmpty()){
                         if(aftersalesmagRowsMap.containsKey(String.valueOf(sainvoicedetailid)) && aftersalesmagRowsMap.get(sainvoicedetailid).isNotEmpty()){
                             sqlFactorydetail.addParameter("price", aftersalesmagRowsMap.get(sainvoicedetailid).get(0).getBigDecimal("price"));
                             sqlFactorydetail.addParameter("price", aftersalesmagRowsMap.get(sainvoicedetailid).get(0).getBigDecimal("price"));
                             sqlFactorydetail.addParameter("amount", fqty.multiply(aftersalesmagRowsMap.get(sainvoicedetailid).get(0).getBigDecimal("price")));
                             sqlFactorydetail.addParameter("amount", fqty.multiply(aftersalesmagRowsMap.get(sainvoicedetailid).get(0).getBigDecimal("price")));
+                            sqlFactorydetail.addParameter("sa_orderitemsid", aftersalesmagRowsMap.get(sainvoicedetailid).get(0).getBigDecimal("sa_orderitemsid"));
+                            sqlFactorydetail.addParameter("sa_orderid", aftersalesmagRowsMap.get(sainvoicedetailid).get(0).getBigDecimal("sa_orderid"));
                         }else{
                         }else{
                             sqlFactorydetail.addParameter("price", 0);
                             sqlFactorydetail.addParameter("price", 0);
                             sqlFactorydetail.addParameter("amount", 0);
                             sqlFactorydetail.addParameter("amount", 0);
+                            sqlFactorydetail.addParameter("sa_orderitemsid", 0);
+                            sqlFactorydetail.addParameter("sa_orderid", 0);
                         }
                         }
                     }
                     }
 
 

+ 4 - 3
src/custom/restcontroller/webmanage/sale/order/OrderItems.java

@@ -831,8 +831,9 @@ public class OrderItems extends Controller {
         ArrayList<Long> ids = rows.toArrayList("itemid", new ArrayList<>());
         ArrayList<Long> ids = rows.toArrayList("itemid", new ArrayList<>());
         RowsMap rowsMap = rows.toRowsMap("itemno");
         RowsMap rowsMap = rows.toRowsMap("itemno");
 
 
-        SQLFactory sqlFactory1 = new SQLFactory(this, "订单明细发货数量汇总");
+        SQLFactory sqlFactory1 = new SQLFactory(this, "订单明细出库数量汇总");
         sqlFactory1.addParameter("siteid", siteid);
         sqlFactory1.addParameter("siteid", siteid);
+        sqlFactory1.addParameter_in("sa_orderitemsids", rows.toArrayList("sa_orderitemsid",new ArrayList<>()));
         Rows sumQtyRows = dbConnect.runSqlQuery(sqlFactory1);
         Rows sumQtyRows = dbConnect.runSqlQuery(sqlFactory1);
         RowsMap sumQtyRowsMap = sumQtyRows.toRowsMap("sa_orderitemsid");
         RowsMap sumQtyRowsMap = sumQtyRows.toRowsMap("sa_orderitemsid");
 
 
@@ -858,9 +859,9 @@ public class OrderItems extends Controller {
         RowsMap attinfoRowsMap = getAttachmentUrl("plm_item", ids);
         RowsMap attinfoRowsMap = getAttachmentUrl("plm_item", ids);
         for (Row row : rows) {
         for (Row row : rows) {
             if (sumQtyRowsMap.get(row.getString("sa_orderitemsid")).isNotEmpty()) {
             if (sumQtyRowsMap.get(row.getString("sa_orderitemsid")).isNotEmpty()) {
-                row.put("unsoldqty", sumQtyRowsMap.get(row.getString("sa_orderitemsid")).get(0).getBigDecimal("qty"));
+                row.put("unsoldqty", row.getBigDecimal("qty").subtract(sumQtyRowsMap.get(row.getString("sa_orderitemsid")).get(0).getBigDecimal("sumqty")));
             } else {
             } else {
-                row.put("unsoldqty", BigDecimal.ZERO);
+                row.put("unsoldqty",  row.getBigDecimal("qty"));
             }
             }
             if (!row.containsKey("invbalqty")) {
             if (!row.containsKey("invbalqty")) {
                 row.put("invbalqty", BigDecimal.ZERO);
                 row.put("invbalqty", BigDecimal.ZERO);

+ 6 - 0
src/custom/restcontroller/webmanage/sale/order/SQL/订单明细出库数量汇总.sql

@@ -0,0 +1,6 @@
+SELECT  t1.sa_orderitemsid,
+        SUM(ifnull(t1.qty,0)) sumqty
+FROM st_stockbill_items t1
+         inner join st_stockbill t2 on t1.siteid = t2.siteid and t1.st_stockbillid = t2.st_stockbillid
+         inner join sa_orderitems t4 on t1.sa_orderitemsid=t4.sa_orderitemsid and t1.siteid = t4.siteid
+WHERE t2.STATUS ='审核' and t2.rb=1 and t1.siteid=$siteid$ and t1.sa_orderitemsid in $sa_orderitemsids$ group by t1.sa_orderitemsid