hu 4 месяцев назад
Родитель
Сommit
2b50ff161f

+ 1 - 1
src/custom/beans/stockbill/bills/BasicBill.java

@@ -313,7 +313,7 @@ public abstract class BasicBill {
         this.siteid = billRow.getString("siteid");
         this.status = billRow.getString("status");
         this.period = billRow.getString("period");
-        itemRows = dbConnect.runSqlQuery("select t1.* from st_stockbill_items t1 where t1.st_stockbillid ='" + st_stockbillid + "'");
+        itemRows = dbConnect.runSqlQuery("select t1.*,ifnull(t1.sa_orderitemsid,0) sa_orderitemsidnum from st_stockbill_items t1 where t1.st_stockbillid ='" + st_stockbillid + "'");
         codeRows = dbConnect.runSqlQuery("select t1.* from st_stockbill_items_sku t1 where t1.st_stockbillid ='" + st_stockbillid + "'");
     }
 

+ 2 - 2
src/custom/beans/stockbill/bills/XSCK.java

@@ -76,8 +76,8 @@ public class XSCK extends BasicBill {
              */
         }
         if ((ischeck && rb == 1) || (!ischeck && rb == 0)) {
-            if (order_paymentnode.equals("3") && !Accountbalance.judgeBalance(dbConnect, sys_enterpriseid, accountbalancerows.get(0).getLong("sa_accountclassid"), itemRows.sum("amount"))) {
-                throw new YosException("账户余额不足,还差" + Accountbalance.InsufficientBalance(dbConnect, sys_enterpriseid, accountbalancerows.get(0).getLong("sa_accountclassid"), itemRows.sum("amount")) + "元!");
+            if (order_paymentnode.equals("3") && !Accountbalance.judgeBalance(dbConnect, sys_enterpriseid, accountbalancerows.get(0).getLong("sa_accountclassid"), itemRows.toRowsMap("sa_orderitemsidnum").get("0").sum("amount"))) {
+                throw new YosException("账户余额不足,还差" + Accountbalance.InsufficientBalance(dbConnect, sys_enterpriseid, accountbalancerows.get(0).getLong("sa_accountclassid"), itemRows.toRowsMap("sa_orderitemsidnum").get("0").sum("amount")) + "元!");
             }
             if(!billRow.getString("sourceobject").equals("tpartreimbursement")){
                 Rows rowsjudge = dbConnect.runSqlQuery("select * from (select sa_orderitemsid,sum(qty) qty from st_stockbill_items where st_stockbillid ='" + st_stockbillid + "' group by sa_orderitemsid) t1 inner join sa_orderitems t2 on t1.sa_orderitemsid=t2.sa_orderitemsid where t1.qty>t2.undeliqty");

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

@@ -77,6 +77,14 @@ public class Order extends Controller {
         sqlFactory.addParameter_in("sa_orderid", sa_orderids);
         RowsMap dataRowsMap = dbConnect.runSqlQuery(sqlFactory).toRowsMap("sa_orderid");
 
+        QuerySQL expressformQuery = SQLFactory.createQuerySQL(this, "expressform", "*").setTableAlias("t1");
+        expressformQuery.addJoinTable(JOINTYPE.inner, "sa_expressform_stockbill", "t2", "t2.expressformid = t1.expressformid");
+        expressformQuery.addJoinTable(JOINTYPE.inner, "st_stockbill_items", "t3", "t3.st_stockbillid = t2.st_stockbillid","sa_orderid");
+        expressformQuery.setWhere("t3.sa_orderid", sa_orderids);
+        expressformQuery.setOrderBy("t1.createdate desc");
+        expressformQuery.setDistinct(true);
+        Rows expressformrows = expressformQuery.query();
+        RowsMap expressformrowsMap = expressformrows.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());
@@ -92,7 +100,10 @@ public class Order extends Controller {
             }else{
                 row.put("contacts", new Row());
             }
-
+            //查询快递信息
+            if(expressformrowsMap.containsKey(row.getString("sa_orderid"))){
+                row.put("expressform",expressformrowsMap.get(row.getString("sa_orderid")).get(0));
+            }
         }
 
 

+ 2 - 1
src/custom/restcontroller/sale/shoppingcart/ShoppingCart.java

@@ -367,8 +367,9 @@ public class ShoppingCart extends Controller {
                         row.put("gradeprice", itemPrice.getContractprice());
                     }
                 }
-                row.put("gradeprice", row.getBigDecimal("gradeprice").multiply(rwpricerate).add(row.getBigDecimal("custamount")));
                 row.put("defaultprice", row.getBigDecimal("gradeprice").multiply(rwpricerate));
+                row.put("gradeprice", row.getBigDecimal("gradeprice").multiply(rwpricerate).add(row.getBigDecimal("custamount")));
+
 
 //                row.put("gradeprice", istool == 0 ?itemPrice.getContractprice():itemPrice.getMarketprice());
             } catch (Exception e) {

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

@@ -641,6 +641,16 @@ public class Order extends Controller {
         sqlFactory.addParameter_in("sys_enterpriseid", sys_enterpriseids);
         RowsMap financeRowsMap = dbConnect.runSqlQuery(sqlFactory).toRowsMap("sys_enterpriseid");
 
+        QuerySQL expressformQuery = SQLFactory.createQuerySQL(this, "expressform", "*").setTableAlias("t1");
+        expressformQuery.addJoinTable(JOINTYPE.inner, "sa_expressform_stockbill", "t2", "t2.expressformid = t1.expressformid");
+        expressformQuery.addJoinTable(JOINTYPE.inner, "st_stockbill_items", "t3", "t3.st_stockbillid = t2.st_stockbillid","sa_orderid");
+        expressformQuery.setWhere("t3.sa_orderid", sa_orderids);
+        expressformQuery.setOrderBy("t1.createdate desc");
+        expressformQuery.setDistinct(true);
+        Rows expressformrows = expressformQuery.query();
+        RowsMap expressformrowsMap = expressformrows.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());
@@ -679,6 +689,11 @@ public class Order extends Controller {
             } else {
                 row.put("invoicestatus", "部分开票");
             }
+
+            //查询快递信息
+            if(expressformrowsMap.containsKey(row.getString("sa_orderid"))){
+                row.put("expressform",expressformrowsMap.get(row.getString("sa_orderid")).get(0));
+            }
         }
         Row row = rows.isNotEmpty() ? rows.get(0) : new Row();
         Long pay_enterpriseid = row.getLong("pay_enterpriseid");
@@ -1589,6 +1604,7 @@ public class Order extends Controller {
         querySQL.setWhere("t1.sa_orderitemsid",sa_orderitemsids);
         Rows rowsdetail = querySQL.query();
         Row orderRow = rows.get(0);
+        Rows departmenthrrows =dbConnect.runSqlQuery("select *from sys_departmenthrid where hrid="+hrid);
 
         long st_stockbillid = createTableID("st_stockbill");
         InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "st_stockbill");
@@ -1596,7 +1612,7 @@ public class Order extends Controller {
         insertSQL.setSiteid(siteid);
         insertSQL.setValue("sys_enterpriseid", orderRow.getLong("sys_enterpriseid"));
         insertSQL.setValue("rec_contactsid",  orderRow.getLong("rec_contactsid"));
-        insertSQL.setValue("departmentid", 0);
+        insertSQL.setValue("departmentid", departmenthrrows.isNotEmpty()?departmenthrrows.get(0).getLong("departmentid"):0);
         insertSQL.setValue("stockid", 0);
         insertSQL.setValue("type", "销售出库");
         insertSQL.setValue("typemx", "");

+ 201 - 201
src/custom/restcontroller/webmanage/sale/stockbill/stockbill.java

@@ -515,218 +515,218 @@ public class stockbill extends Controller {
     }
 
 
-    public String xsckcheck(Long st_stockbillid, boolean isinstock) throws YosException {
-        Rows rows = dbConnect.runSqlQuery("select * from st_stockbill where st_stockbillid ='"
-                + st_stockbillid + "' and  siteid='" + siteid + "'");
-        Rows rowsdetail = dbConnect.runSqlQuery("select t1.*,t2.skucontrol from st_stockbill_items t1 left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.st_stockbillid ='"
-                + st_stockbillid + "' and  t1.siteid='" + siteid + "'");
-        long sys_enterpriseid = rows.get(0).getLong("sys_enterpriseid");
-
-        if (rows.isEmpty()) {
-            return "该出入库单不存在";
-        } else {
-            if (!rows.get(0).getString("status").equals("新建")) {
-                return "单号为:【" + rows.get(0).getString("billno") + "】的出入库单为非新建状态,无法审核";
-            }
-        }
-        for (Row row : rowsdetail) {
-            if (row.getBigDecimal("qty").compareTo(BigDecimal.ZERO) < 1) {
-                return "表体数量不能小于0";
-            }
-        }
-        if (rows.get(0).getBigDecimal("payamount").compareTo(BigDecimal.ZERO) <= 0) {
-            return "扣款金额需大于0";
-        }
-        if (StringUtils.isBlank(rows.get(0).getString("outplace"))) {
-            return "发货地不可为空";
-        }
-        if ((rows.get(0).getBigDecimal("payamount").add(rows.get(0).getBigDecimal("paydiscountamount"))).compareTo(rowsdetail.sum("amount")) != 0) {
-            return "扣款金额与应扣金额不符,不能审核";
-        }
-        Rows accountbalancerows = dbConnect.runSqlQuery("select * from  sa_accountbalance t1 inner join sa_accountclass t2 on  t1.sa_accountclassid=t2.sa_accountclassid and t1.siteid=t2.siteid where t2.accountname='现金账户' and t1.sys_enterpriseid=" + sys_enterpriseid);
-        if (accountbalancerows.isNotEmpty()) {
-            BigDecimal discountamount = accountbalancerows.get(0).getBigDecimal("discountamount");
-            if (rows.get(0).getBigDecimal("paydiscountamount").compareTo(discountamount) > 0) {
-                return "优惠金额不能大于可用优惠金额";
-            }
-        } else {
-            return "账户不存在";
-        }
-        ArrayList<String> sqlList = new ArrayList<>();
-//        Rows stockRows= dbConnect.runSqlQuery("select * from st_stock where siteid='"+siteid+"'");
-//        RowsMap stockRowsMap =stockRows.toRowsMap("itemid");
-
-        String order_paymentnode = Parameter.getString(siteid, "order_paymentnode");
-        if (rows.get(0).getBoolean("rb")) {
-            if (rows.get(0).getString("type").equals("销售出库")) {
-                if (order_paymentnode.equals("3")) {
-                    if (Accountbalance.judgeBalance(this, sys_enterpriseid, accountbalancerows.get(0).getLong("sa_accountclassid"), rowsdetail.sum("amount"))) {
-                        CashbillEntity entity = getCashbillEntity(rows.get(0).getBigDecimal("payamount"), rows.get(0).getBigDecimal("paydiscountamount"), st_stockbillid, "销售出库单审核", rows.get(0).getString("billno"), "由销售出库单" + rows.get(0).getString("billno") + "审核时生成");
-                        JSONObject createCashbillPay = Accountbalance.createCashbillPay(this, sys_enterpriseid, accountbalancerows.get(0).getLong("sa_accountclassid"), entity, true);
-                        sqlList.addAll(createCashbillPay.getJSONArray("sqlList").toJavaList(String.class));
-                    } else {
-                        return "账户余额不足,还差" + Accountbalance.InsufficientBalance(this, sys_enterpriseid, accountbalancerows.get(0).getLong("sa_accountclassid"), rowsdetail.sum("amount")) + "元!";
-                    }
-                }
-                Rows rowsOrderDetail = dbConnect.runSqlQuery("select t1.undeliqty,t1.deliedqty,t1.qty,t1.sa_orderitemsid from sa_orderitems t1 where t1.sa_orderitemsid in (select sa_orderitemsid from st_stockbill_items where st_stockbillid=" + st_stockbillid + ")");
-                RowsMap rowsMap = rowsOrderDetail.toRowsMap("sa_orderitemsid");
-                Rows rowsDispatchDetailGroup = dbConnect.runSqlQuery("select sum(t1.qty) qty,t1.sa_orderitemsid,t1.siteid from st_stockbill_items t1  where  t1.st_stockbillid=" + st_stockbillid + " group by t1.sa_orderitemsid,t1.siteid");
-                Rows rowsjudge = dbConnect.runSqlQuery("select * from (select sa_orderitemsid,sum(qty) qty from st_stockbill_items where st_stockbillid ='" + st_stockbillid + "' group by sa_orderitemsid) t1 inner join sa_orderitems t2 on t1.sa_orderitemsid=t2.sa_orderitemsid where t1.qty>t2.undeliqty");
-                if (rowsjudge.isNotEmpty()) {
-                    return "存在商品已完全出库,无法审核";
-                }
-                for (Row row : rowsDispatchDetailGroup) {
-                    sqlList.add("update sa_orderitems set undeliqty=" + rowsMap.get(row.getLong("sa_orderitemsid")).get(0).getBigDecimal("undeliqty").subtract(row.getBigDecimal("qty")) + ",deliedqty=" + (row.getBigDecimal("qty").add(rowsMap.get(row.getLong("sa_orderitemsid")).get(0).getBigDecimal("deliedqty"))) + " where sa_orderitemsid=" + row.getLong("sa_orderitemsid"));
-                }
-                for (Row row : rowsdetail) {
-                    if (row.getBoolean("skucontrol")) {
-                        sqlList.add("update st_stockbill_items set wmsuploadflag2=1 where st_stockbill_itemsid=" + row.getLong("st_stockbill_itemsid"));
-                    }
-
-                }
-            }
-//            for(Row row :rowsdetail){
-//                String itemid= row.getString("itemid");
-//                long stockid=row.getLong("stockid");
-//                if(stockRowsMap.containsKey(itemid)){
-//                    for(Row row1 :stockRowsMap.get(itemid)){
-//                        if(row1.getLong("stockid")==stockid){
-//                            sqlList.add("update st_stock set qty="+row1.getBigDecimal("qty").add(row.getBigDecimal("qty"))+" where stockid="+stockid);
-//                        }
+//    public String xsckcheck(Long st_stockbillid, boolean isinstock) throws YosException {
+//        Rows rows = dbConnect.runSqlQuery("select * from st_stockbill where st_stockbillid ='"
+//                + st_stockbillid + "' and  siteid='" + siteid + "'");
+//        Rows rowsdetail = dbConnect.runSqlQuery("select t1.*,t2.skucontrol from st_stockbill_items t1 left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.st_stockbillid ='"
+//                + st_stockbillid + "' and  t1.siteid='" + siteid + "'");
+//        long sys_enterpriseid = rows.get(0).getLong("sys_enterpriseid");
+//
+//        if (rows.isEmpty()) {
+//            return "该出入库单不存在";
+//        } else {
+//            if (!rows.get(0).getString("status").equals("新建")) {
+//                return "单号为:【" + rows.get(0).getString("billno") + "】的出入库单为非新建状态,无法审核";
+//            }
+//        }
+//        for (Row row : rowsdetail) {
+//            if (row.getBigDecimal("qty").compareTo(BigDecimal.ZERO) < 1) {
+//                return "表体数量不能小于0";
+//            }
+//        }
+//        if (rows.get(0).getBigDecimal("payamount").compareTo(BigDecimal.ZERO) <= 0) {
+//            return "扣款金额需大于0";
+//        }
+//        if (StringUtils.isBlank(rows.get(0).getString("outplace"))) {
+//            return "发货地不可为空";
+//        }
+//        if ((rows.get(0).getBigDecimal("payamount").add(rows.get(0).getBigDecimal("paydiscountamount"))).compareTo(rowsdetail.sum("amount")) != 0) {
+//            return "扣款金额与应扣金额不符,不能审核";
+//        }
+//        Rows accountbalancerows = dbConnect.runSqlQuery("select * from  sa_accountbalance t1 inner join sa_accountclass t2 on  t1.sa_accountclassid=t2.sa_accountclassid and t1.siteid=t2.siteid where t2.accountname='现金账户' and t1.sys_enterpriseid=" + sys_enterpriseid);
+//        if (accountbalancerows.isNotEmpty()) {
+//            BigDecimal discountamount = accountbalancerows.get(0).getBigDecimal("discountamount");
+//            if (rows.get(0).getBigDecimal("paydiscountamount").compareTo(discountamount) > 0) {
+//                return "优惠金额不能大于可用优惠金额";
+//            }
+//        } else {
+//            return "账户不存在";
+//        }
+//        ArrayList<String> sqlList = new ArrayList<>();
+////        Rows stockRows= dbConnect.runSqlQuery("select * from st_stock where siteid='"+siteid+"'");
+////        RowsMap stockRowsMap =stockRows.toRowsMap("itemid");
+//
+//        String order_paymentnode = Parameter.getString(siteid, "order_paymentnode");
+//        if (rows.get(0).getBoolean("rb")) {
+//            if (rows.get(0).getString("type").equals("销售出库")) {
+//                if (order_paymentnode.equals("3")) {
+//                    if (Accountbalance.judgeBalance(this, sys_enterpriseid, accountbalancerows.get(0).getLong("sa_accountclassid"), rowsdetail.sum("amount"))) {
+//                        CashbillEntity entity = getCashbillEntity(rows.get(0).getBigDecimal("payamount"), rows.get(0).getBigDecimal("paydiscountamount"), st_stockbillid, "销售出库单审核", rows.get(0).getString("billno"), "由销售出库单" + rows.get(0).getString("billno") + "审核时生成");
+//                        JSONObject createCashbillPay = Accountbalance.createCashbillPay(this, sys_enterpriseid, accountbalancerows.get(0).getLong("sa_accountclassid"), entity, true);
+//                        sqlList.addAll(createCashbillPay.getJSONArray("sqlList").toJavaList(String.class));
+//                    } else {
+//                        return "账户余额不足,还差" + Accountbalance.InsufficientBalance(this, sys_enterpriseid, accountbalancerows.get(0).getLong("sa_accountclassid"), rowsdetail.sum("amount")) + "元!";
 //                    }
 //                }
-//                // String batchno = row.getString("batchno");
-//            }
-        } else {
-//            for(Row row :rowsdetail){
-//                String itemid= row.getString("itemid");
-//                long stockid=row.getLong("stockid");
-//                if(stockRowsMap.containsKey(itemid)){
-//                    for(Row row1 :stockRowsMap.get(itemid)){
-//                        if(row1.getLong("stockid")==stockid){
-//                            sqlList.add("update st_stock set qty="+row1.getBigDecimal("qty").subtract(row.getBigDecimal("qty"))+" where stockid="+stockid);
-//                        }
+//                Rows rowsOrderDetail = dbConnect.runSqlQuery("select t1.undeliqty,t1.deliedqty,t1.qty,t1.sa_orderitemsid from sa_orderitems t1 where t1.sa_orderitemsid in (select sa_orderitemsid from st_stockbill_items where st_stockbillid=" + st_stockbillid + ")");
+//                RowsMap rowsMap = rowsOrderDetail.toRowsMap("sa_orderitemsid");
+//                Rows rowsDispatchDetailGroup = dbConnect.runSqlQuery("select sum(t1.qty) qty,t1.sa_orderitemsid,t1.siteid from st_stockbill_items t1  where  t1.st_stockbillid=" + st_stockbillid + " group by t1.sa_orderitemsid,t1.siteid");
+//                Rows rowsjudge = dbConnect.runSqlQuery("select * from (select sa_orderitemsid,sum(qty) qty from st_stockbill_items where st_stockbillid ='" + st_stockbillid + "' group by sa_orderitemsid) t1 inner join sa_orderitems t2 on t1.sa_orderitemsid=t2.sa_orderitemsid where t1.qty>t2.undeliqty");
+//                if (rowsjudge.isNotEmpty()) {
+//                    return "存在商品已完全出库,无法审核";
+//                }
+//                for (Row row : rowsDispatchDetailGroup) {
+//                    sqlList.add("update sa_orderitems set undeliqty=" + rowsMap.get(row.getLong("sa_orderitemsid")).get(0).getBigDecimal("undeliqty").subtract(row.getBigDecimal("qty")) + ",deliedqty=" + (row.getBigDecimal("qty").add(rowsMap.get(row.getLong("sa_orderitemsid")).get(0).getBigDecimal("deliedqty"))) + " where sa_orderitemsid=" + row.getLong("sa_orderitemsid"));
+//                }
+//                for (Row row : rowsdetail) {
+//                    if (row.getBoolean("skucontrol")) {
+//                        sqlList.add("update st_stockbill_items set wmsuploadflag2=1 where st_stockbill_itemsid=" + row.getLong("st_stockbill_itemsid"));
 //                    }
+//
 //                }
-//                // String batchno = row.getString("batchno");
 //            }
-        }
-//            Rows stockbillitems = dbConnect.runSqlQuery("select t2.sa_orderid,sum(t2.price*t1.qty) amount from st_stockbill_items t1 inner join sa_orderitems t2 on t1.siteid=t2.siteid and t1.sa_orderitemsid=t2.sa_orderitemsid where t1.siteid='"+siteid+"'and t1.st_stockbillid="+st_stockbillid+" group by t2.sa_orderid");
-//            Rows orderRows =dbConnect.runSqlQuery("select * from sa_order where sa_orderid in(select t2.sa_orderid from st_stockbill_items t1 inner join sa_orderitems t2 on t1.siteid=t2.siteid and t1.sa_orderitemsid=t2.sa_orderitemsid where t1.st_stockbillid='"+st_stockbillid+"')");
-//            RowsMap orderRowsMap =orderRows.toRowsMap("sa_orderid");
-
-        sqlList.addAll(updateAccountbalance_freez(st_stockbillid, isinstock));
-
-        dbConnect.runSqlUpdate(sqlList);
-//        Accountbalance.remindSend(this, sys_enterpriseid, sa_cashbillid);
-        return "success";
-
-    }
-
-    public String unxsckcheck(Long st_stockbillid, boolean isinstock) throws YosException {
-
-
-        Rows rows = dbConnect.runSqlQuery("select * from st_stockbill where st_stockbillid ='"
-                + st_stockbillid + "' and  siteid='" + siteid + "'");
-        Rows rowsdetail = dbConnect.runSqlQuery("select t1.*,t2.skucontrol from st_stockbill_items t1 left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.st_stockbillid ='"
-                + st_stockbillid + "' and  t1.siteid='" + siteid + "'");
-        long sys_enterpriseid = rows.get(0).getLong("sys_enterpriseid");
-
-        if (rows.isEmpty()) {
-            return "该出入库单不存在";
-        } else {
-            if (!rows.get(0).getString("status").equals("审核")) {
-                return "单号为:【" + rows.get(0).getString("billno") + "】的出入库单为非审核状态,无法反审核";
-            }
-        }
-        for (Row row : rowsdetail) {
-            if (row.getBigDecimal("qty").compareTo(BigDecimal.ZERO) < 1) {
-                return "表体数量不能小于0";
-            }
-        }
-        if (rows.get(0).getBigDecimal("paydiscountamount").compareTo(BigDecimal.ZERO) < 0) {
-            return "优惠金额不能小于0";
-        }
-        if (rows.get(0).getBigDecimal("payamount").compareTo(BigDecimal.ZERO) <= 0) {
-            return "扣款金额需大于0";
-        }
-        if (StringUtils.isBlank(rows.get(0).getString("outplace"))) {
-            return "发货地不可为空";
-        }
-        if ((rows.get(0).getBigDecimal("payamount").add(rows.get(0).getBigDecimal("paydiscountamount"))).compareTo(rowsdetail.sum("amount")) != 0) {
-            return "扣款金额与应扣金额不符,不能反审核";
-        }
-        Rows accountbalancerows = dbConnect.runSqlQuery("select * from  sa_accountbalance t1 inner join sa_accountclass t2 on  t1.sa_accountclassid=t2.sa_accountclassid and t1.siteid=t2.siteid where t2.accountname='现金账户' and t1.sys_enterpriseid=" + sys_enterpriseid);
-        if (accountbalancerows.isEmpty()) {
-            return "账户不存在";
-        }
-        if (rows.get(0).getString("type").equals("销售出库") && rows.get(0).getBoolean("isreceiver")) {
-            return "经销商已经确认收货,不可进行反审核";
-        }
-        ArrayList<String> sqlList = new ArrayList<>();
-//        Rows stockRows= dbConnect.runSqlQuery("select * from st_stock where siteid='"+siteid+"'");
-//        RowsMap stockRowsMap =stockRows.toRowsMap("itemid");
-
-        String order_paymentnode = Parameter.getString(siteid, "order_paymentnode");
-        if (rows.get(0).getBoolean("rb")) {
-            if (rows.get(0).getString("type").equals("销售出库")) {
-                if (order_paymentnode.equals("3")) {
-                    if (Accountbalance.judgeBalance(this, sys_enterpriseid, accountbalancerows.get(0).getLong("sa_accountclassid"), rowsdetail.sum("amount").negate())) {
-                        CashbillEntity entity = getCashbillEntity(rows.get(0).getBigDecimal("payamount").negate(), rows.get(0).getBigDecimal("paydiscountamount").negate(), st_stockbillid, "销售出库单反审核", rows.get(0).getString("billno"), "由销售出库单" + rows.get(0).getString("billno") + "反审核时生成");
-                        JSONObject createCashbillPay = Accountbalance.createCashbillPay(this, sys_enterpriseid, accountbalancerows.get(0).getLong("sa_accountclassid"), entity, true);
-                        sqlList.addAll(createCashbillPay.getJSONArray("sqlList").toJavaList(String.class));
-                    } else {
-                        return "账户余额不足,还差" + Accountbalance.InsufficientBalance(this, sys_enterpriseid, accountbalancerows.get(0).getLong("sa_accountclassid"), rowsdetail.sum("amount")) + "元!";
-                    }
-                }
-                Rows rowsOrderDetail = dbConnect.runSqlQuery("select t1.undeliqty,t1.deliedqty,t1.qty,t1.sa_orderitemsid from sa_orderitems t1 where t1.sa_orderitemsid in (select sa_orderitemsid from st_stockbill_items where st_stockbillid=" + st_stockbillid + ")");
-                RowsMap rowsMap = rowsOrderDetail.toRowsMap("sa_orderitemsid");
-                Rows rowsDispatchDetailGroup = dbConnect.runSqlQuery("select sum(t1.qty) qty,t1.sa_orderitemsid,t1.siteid from st_stockbill_items t1  where  t1.st_stockbillid=" + st_stockbillid + " group by t1.sa_orderitemsid,t1.siteid");
-                for (Row row : rowsDispatchDetailGroup) {
-                    sqlList.add("update sa_orderitems set undeliqty=" + rowsMap.get(row.getLong("sa_orderitemsid")).get(0).getBigDecimal("undeliqty").add(row.getBigDecimal("qty")) + ",deliedqty=" + (rowsMap.get(row.getLong("sa_orderitemsid")).get(0).getBigDecimal("deliedqty").subtract(row.getBigDecimal("qty"))) + " where sa_orderitemsid=" + row.getLong("sa_orderitemsid"));
-                }
-                for (Row row : rowsdetail) {
-                    if (row.getBoolean("skucontrol")) {
-                        sqlList.add("update st_stockbill_items set wmsuploadflag2=0 where st_stockbill_itemsid=" + row.getLong("st_stockbill_itemsid"));
-                    }
+////            for(Row row :rowsdetail){
+////                String itemid= row.getString("itemid");
+////                long stockid=row.getLong("stockid");
+////                if(stockRowsMap.containsKey(itemid)){
+////                    for(Row row1 :stockRowsMap.get(itemid)){
+////                        if(row1.getLong("stockid")==stockid){
+////                            sqlList.add("update st_stock set qty="+row1.getBigDecimal("qty").add(row.getBigDecimal("qty"))+" where stockid="+stockid);
+////                        }
+////                    }
+////                }
+////                // String batchno = row.getString("batchno");
+////            }
+//        } else {
+////            for(Row row :rowsdetail){
+////                String itemid= row.getString("itemid");
+////                long stockid=row.getLong("stockid");
+////                if(stockRowsMap.containsKey(itemid)){
+////                    for(Row row1 :stockRowsMap.get(itemid)){
+////                        if(row1.getLong("stockid")==stockid){
+////                            sqlList.add("update st_stock set qty="+row1.getBigDecimal("qty").subtract(row.getBigDecimal("qty"))+" where stockid="+stockid);
+////                        }
+////                    }
+////                }
+////                // String batchno = row.getString("batchno");
+////            }
+//        }
+////            Rows stockbillitems = dbConnect.runSqlQuery("select t2.sa_orderid,sum(t2.price*t1.qty) amount from st_stockbill_items t1 inner join sa_orderitems t2 on t1.siteid=t2.siteid and t1.sa_orderitemsid=t2.sa_orderitemsid where t1.siteid='"+siteid+"'and t1.st_stockbillid="+st_stockbillid+" group by t2.sa_orderid");
+////            Rows orderRows =dbConnect.runSqlQuery("select * from sa_order where sa_orderid in(select t2.sa_orderid from st_stockbill_items t1 inner join sa_orderitems t2 on t1.siteid=t2.siteid and t1.sa_orderitemsid=t2.sa_orderitemsid where t1.st_stockbillid='"+st_stockbillid+"')");
+////            RowsMap orderRowsMap =orderRows.toRowsMap("sa_orderid");
+//
+//        sqlList.addAll(updateAccountbalance_freez(st_stockbillid, isinstock));
+//
+//        dbConnect.runSqlUpdate(sqlList);
+////        Accountbalance.remindSend(this, sys_enterpriseid, sa_cashbillid);
+//        return "success";
+//
+//    }
 
-                }
-            }
-//            for(Row row :rowsdetail){
-//                String itemid= row.getString("itemid");
-//                long stockid=row.getLong("stockid");
-//                if(stockRowsMap.containsKey(itemid)){
-//                    for(Row row1 :stockRowsMap.get(itemid)){
-//                        if(row1.getLong("stockid")==stockid){
-//                            sqlList.add("update st_stock set qty="+row1.getBigDecimal("qty").subtract(row.getBigDecimal("qty"))+" where stockid="+stockid);
-//                        }
+//    public String unxsckcheck(Long st_stockbillid, boolean isinstock) throws YosException {
+//
+//
+//        Rows rows = dbConnect.runSqlQuery("select * from st_stockbill where st_stockbillid ='"
+//                + st_stockbillid + "' and  siteid='" + siteid + "'");
+//        Rows rowsdetail = dbConnect.runSqlQuery("select t1.*,t2.skucontrol from st_stockbill_items t1 left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.st_stockbillid ='"
+//                + st_stockbillid + "' and  t1.siteid='" + siteid + "'");
+//        long sys_enterpriseid = rows.get(0).getLong("sys_enterpriseid");
+//
+//        if (rows.isEmpty()) {
+//            return "该出入库单不存在";
+//        } else {
+//            if (!rows.get(0).getString("status").equals("审核")) {
+//                return "单号为:【" + rows.get(0).getString("billno") + "】的出入库单为非审核状态,无法反审核";
+//            }
+//        }
+//        for (Row row : rowsdetail) {
+//            if (row.getBigDecimal("qty").compareTo(BigDecimal.ZERO) < 1) {
+//                return "表体数量不能小于0";
+//            }
+//        }
+//        if (rows.get(0).getBigDecimal("paydiscountamount").compareTo(BigDecimal.ZERO) < 0) {
+//            return "优惠金额不能小于0";
+//        }
+//        if (rows.get(0).getBigDecimal("payamount").compareTo(BigDecimal.ZERO) <= 0) {
+//            return "扣款金额需大于0";
+//        }
+//        if (StringUtils.isBlank(rows.get(0).getString("outplace"))) {
+//            return "发货地不可为空";
+//        }
+//        if ((rows.get(0).getBigDecimal("payamount").add(rows.get(0).getBigDecimal("paydiscountamount"))).compareTo(rowsdetail.sum("amount")) != 0) {
+//            return "扣款金额与应扣金额不符,不能反审核";
+//        }
+//        Rows accountbalancerows = dbConnect.runSqlQuery("select * from  sa_accountbalance t1 inner join sa_accountclass t2 on  t1.sa_accountclassid=t2.sa_accountclassid and t1.siteid=t2.siteid where t2.accountname='现金账户' and t1.sys_enterpriseid=" + sys_enterpriseid);
+//        if (accountbalancerows.isEmpty()) {
+//            return "账户不存在";
+//        }
+//        if (rows.get(0).getString("type").equals("销售出库") && rows.get(0).getBoolean("isreceiver")) {
+//            return "经销商已经确认收货,不可进行反审核";
+//        }
+//        ArrayList<String> sqlList = new ArrayList<>();
+////        Rows stockRows= dbConnect.runSqlQuery("select * from st_stock where siteid='"+siteid+"'");
+////        RowsMap stockRowsMap =stockRows.toRowsMap("itemid");
+//
+//        String order_paymentnode = Parameter.getString(siteid, "order_paymentnode");
+//        if (rows.get(0).getBoolean("rb")) {
+//            if (rows.get(0).getString("type").equals("销售出库")) {
+//                if (order_paymentnode.equals("3")) {
+//                    if (Accountbalance.judgeBalance(this, sys_enterpriseid, accountbalancerows.get(0).getLong("sa_accountclassid"), rowsdetail.sum("amount").negate())) {
+//                        CashbillEntity entity = getCashbillEntity(rows.get(0).getBigDecimal("payamount").negate(), rows.get(0).getBigDecimal("paydiscountamount").negate(), st_stockbillid, "销售出库单反审核", rows.get(0).getString("billno"), "由销售出库单" + rows.get(0).getString("billno") + "反审核时生成");
+//                        JSONObject createCashbillPay = Accountbalance.createCashbillPay(this, sys_enterpriseid, accountbalancerows.get(0).getLong("sa_accountclassid"), entity, true);
+//                        sqlList.addAll(createCashbillPay.getJSONArray("sqlList").toJavaList(String.class));
+//                    } else {
+//                        return "账户余额不足,还差" + Accountbalance.InsufficientBalance(this, sys_enterpriseid, accountbalancerows.get(0).getLong("sa_accountclassid"), rowsdetail.sum("amount")) + "元!";
 //                    }
 //                }
-//                // String batchno = row.getString("batchno");
-//            }
-        } else {
-//            for(Row row :rowsdetail){
-//                String itemid= row.getString("itemid");
-//                long stockid=row.getLong("stockid");
-//                if(stockRowsMap.containsKey(itemid)){
-//                    for(Row row1 :stockRowsMap.get(itemid)){
-//                        if(row1.getLong("stockid")==stockid){
-//                            sqlList.add("update st_stock set qty="+row1.getBigDecimal("qty").add(row.getBigDecimal("qty"))+" where stockid="+stockid);
-//                        }
+//                Rows rowsOrderDetail = dbConnect.runSqlQuery("select t1.undeliqty,t1.deliedqty,t1.qty,t1.sa_orderitemsid from sa_orderitems t1 where t1.sa_orderitemsid in (select sa_orderitemsid from st_stockbill_items where st_stockbillid=" + st_stockbillid + ")");
+//                RowsMap rowsMap = rowsOrderDetail.toRowsMap("sa_orderitemsid");
+//                Rows rowsDispatchDetailGroup = dbConnect.runSqlQuery("select sum(t1.qty) qty,t1.sa_orderitemsid,t1.siteid from st_stockbill_items t1  where  t1.st_stockbillid=" + st_stockbillid + " group by t1.sa_orderitemsid,t1.siteid");
+//                for (Row row : rowsDispatchDetailGroup) {
+//                    sqlList.add("update sa_orderitems set undeliqty=" + rowsMap.get(row.getLong("sa_orderitemsid")).get(0).getBigDecimal("undeliqty").add(row.getBigDecimal("qty")) + ",deliedqty=" + (rowsMap.get(row.getLong("sa_orderitemsid")).get(0).getBigDecimal("deliedqty").subtract(row.getBigDecimal("qty"))) + " where sa_orderitemsid=" + row.getLong("sa_orderitemsid"));
+//                }
+//                for (Row row : rowsdetail) {
+//                    if (row.getBoolean("skucontrol")) {
+//                        sqlList.add("update st_stockbill_items set wmsuploadflag2=0 where st_stockbill_itemsid=" + row.getLong("st_stockbill_itemsid"));
 //                    }
+//
 //                }
-//                // String batchno = row.getString("batchno");
 //            }
-        }
-//            Rows stockbillitems = dbConnect.runSqlQuery("select t2.sa_orderid,sum(t2.price*t1.qty) amount from st_stockbill_items t1 inner join sa_orderitems t2 on t1.siteid=t2.siteid and t1.sa_orderitemsid=t2.sa_orderitemsid where t1.siteid='"+siteid+"'and t1.st_stockbillid="+st_stockbillid+" group by t2.sa_orderid");
-//            Rows orderRows =dbConnect.runSqlQuery("select * from sa_order where sa_orderid in(select t2.sa_orderid from st_stockbill_items t1 inner join sa_orderitems t2 on t1.siteid=t2.siteid and t1.sa_orderitemsid=t2.sa_orderitemsid where t1.st_stockbillid='"+st_stockbillid+"')");
-//            RowsMap orderRowsMap =orderRows.toRowsMap("sa_orderid");
-        sqlList.addAll(updateAccountbalance_freez(st_stockbillid, isinstock));
-        dbConnect.runSqlUpdate(sqlList);
-
-//        Accountbalance.remindSend(this, sys_enterpriseid, sa_cashbillid);
-        return "success";
-    }
+////            for(Row row :rowsdetail){
+////                String itemid= row.getString("itemid");
+////                long stockid=row.getLong("stockid");
+////                if(stockRowsMap.containsKey(itemid)){
+////                    for(Row row1 :stockRowsMap.get(itemid)){
+////                        if(row1.getLong("stockid")==stockid){
+////                            sqlList.add("update st_stock set qty="+row1.getBigDecimal("qty").subtract(row.getBigDecimal("qty"))+" where stockid="+stockid);
+////                        }
+////                    }
+////                }
+////                // String batchno = row.getString("batchno");
+////            }
+//        } else {
+////            for(Row row :rowsdetail){
+////                String itemid= row.getString("itemid");
+////                long stockid=row.getLong("stockid");
+////                if(stockRowsMap.containsKey(itemid)){
+////                    for(Row row1 :stockRowsMap.get(itemid)){
+////                        if(row1.getLong("stockid")==stockid){
+////                            sqlList.add("update st_stock set qty="+row1.getBigDecimal("qty").add(row.getBigDecimal("qty"))+" where stockid="+stockid);
+////                        }
+////                    }
+////                }
+////                // String batchno = row.getString("batchno");
+////            }
+//        }
+////            Rows stockbillitems = dbConnect.runSqlQuery("select t2.sa_orderid,sum(t2.price*t1.qty) amount from st_stockbill_items t1 inner join sa_orderitems t2 on t1.siteid=t2.siteid and t1.sa_orderitemsid=t2.sa_orderitemsid where t1.siteid='"+siteid+"'and t1.st_stockbillid="+st_stockbillid+" group by t2.sa_orderid");
+////            Rows orderRows =dbConnect.runSqlQuery("select * from sa_order where sa_orderid in(select t2.sa_orderid from st_stockbill_items t1 inner join sa_orderitems t2 on t1.siteid=t2.siteid and t1.sa_orderitemsid=t2.sa_orderitemsid where t1.st_stockbillid='"+st_stockbillid+"')");
+////            RowsMap orderRowsMap =orderRows.toRowsMap("sa_orderid");
+//        sqlList.addAll(updateAccountbalance_freez(st_stockbillid, isinstock));
+//        dbConnect.runSqlUpdate(sqlList);
+//
+////        Accountbalance.remindSend(this, sys_enterpriseid, sa_cashbillid);
+//        return "success";
+//    }
 
     @API(title = "仓库确认", apiversion = R.ID2025050709505703.v1.class)
     public String confirm() throws YosException {

+ 1 - 1
src/custom/restcontroller/webmanage/sale/stockbill/stockbillitems.java

@@ -67,7 +67,7 @@ public class stockbillitems extends Controller {
                 "itemid","unit","undeliqty","remarks","rowno","customproperties","price","defaultprice");
         querySQL.setTableAlias("t1");
         querySQL.addJoinTable(JOINTYPE.left, "plm_item", "t2", "t1.siteid = t2.siteid and t1.itemid = t2.itemid","itemno","itemname","model","spec","batchcontrol","icaddqty","icminqty","outplace");
-        querySQL.addJoinTable(JOINTYPE.left, "sa_order", "t3", "t1.siteid=t3.siteid and t1.sa_orderid=t3.sa_orderid","sonum","billdate","createdate","submitdate","checkdate","typemx","abstract");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_order", "t3", "t1.siteid=t3.siteid and t1.sa_orderid=t3.sa_orderid","sonum","billdate","createdate","submitdate","checkdate","typemx","abstract","delivery","invoicename","invoicetaxno","invoiceaddress");
         querySQL.addQueryFields("orderremarks","t3.remarks");
         querySQL.setSiteid(siteid);
         querySQL.setWhere("t3.STATUS = '审核' and ifnull(t1.undeliqty, 0) !=0 and ifnull(t1.isfreeze, 0) =0 AND ifnull( t1.isclose, 0 )= 0");