Ver Fonte

订单是否关闭代码位置变更

hxh há 4 meses atrás
pai
commit
e425290219
1 ficheiros alterados com 46 adições e 43 exclusões
  1. 46 43
      src/custom/beans/stockbill/bills/XSCK.java

+ 46 - 43
src/custom/beans/stockbill/bills/XSCK.java

@@ -205,6 +205,14 @@ public class XSCK extends BasicBill {
                             sqlList.add("update st_stockbill_items set wmsuploadflag2=0 where st_stockbill_itemsid=" + row.getLong("st_stockbill_itemsid"));
                         }
                     }
+
+                    int orderautoclosepoint = Parameter.getInteger(siteid, "orderautoclosepoint");
+                    if(orderautoclosepoint==2){
+                        ArrayList<Long> sa_orderids = itemRows.toArrayList("sa_orderid",new ArrayList<>());
+                        for(Long sa_orderid : sa_orderids){
+                            sqlList.add("update sa_order set status='审核',closeby='',closedate=NULL where sa_orderid=" +sa_orderid);
+                        }
+                    }
                 }else{
                     QuerySQL querySQL = SQLFactory.createQuerySQL(controller, "sa_tpartreimbursementdetail", "sa_tpartreimbursementdetailid","isverified","qty","sa_orderitemsid");
                     querySQL.setTableAlias("t1");
@@ -232,13 +240,7 @@ public class XSCK extends BasicBill {
                     }
 
                 }
-                int orderautoclosepoint = Parameter.getInteger(siteid, "orderautoclosepoint");
-                if(orderautoclosepoint==2){
-                    ArrayList<Long> sa_orderids = itemRows.toArrayList("sa_orderid",new ArrayList<>());
-                    for(Long sa_orderid : sa_orderids){
-                        sqlList.add("update sa_order set status='审核',closeby='',closedate=NULL where sa_orderid=" +sa_orderid);
-                    }
-                }
+
             }
 
 
@@ -296,6 +298,43 @@ public class XSCK extends BasicBill {
                             sqlList.add("update st_stockbill_items set wmsuploadflag2=1 where st_stockbill_itemsid=" + row.getLong("st_stockbill_itemsid"));
                         }
                     }
+                    //判断是否关闭订单
+                    int orderautoclosepoint = Parameter.getInteger(siteid, "orderautoclosepoint");
+                    if(orderautoclosepoint==2){
+                        ArrayList<Long> sa_orderids = itemRows.toArrayList("sa_orderid",new ArrayList<>());
+                        QuerySQL querySQL = SQLFactory.createQuerySQL(controller, "sa_order", "sa_orderid");
+                        querySQL.addJoinTable(BaseClass.JOINTYPE.inner, "sa_orderitems", "t2", "t2.sa_orderid = t1.sa_orderid and t2.siteid = t1.siteid",
+                                "undeliqty","sa_orderitemsid");
+                        querySQL.setTableAlias("t1");
+                        querySQL.setWhere("t1.siteid", siteid);
+                        querySQL.setWhere("t1.sa_orderid", sa_orderids);
+                        querySQL.setWhere("t1.status='审核' and t2.undeliqty!=0");
+                        Rows rows = querySQL.query();
+                        RowsMap rowsMap =rows.toRowsMap("sa_orderid");
+                        RowsMap itemRowsMap=itemRows.toRowsMap("sa_orderid");
+                        for(Long sa_orderid : sa_orderids){
+                            Rows stockbillitemrows = itemRowsMap.getOrDefault(String.valueOf(sa_orderid),new Rows());
+                            Rows orderrows = rowsMap.getOrDefault(String.valueOf(sa_orderid),new Rows());
+                            RowsMap stockbillitemrowsMap =stockbillitemrows.toRowsMap("sa_orderitemsid");
+                            int count=0;
+                            for(Row row : orderrows){
+                                if(stockbillitemrowsMap.containsKey(row.getString("sa_orderitemsid"))){
+                                    if(stockbillitemrowsMap.getOrDefault(row.getString("sa_orderitemsid"),new Rows()).sum("qty").compareTo(row.getBigDecimal("undeliqty"))==0){
+                                        count++;
+                                    }
+                                }
+                            }
+                            if(orderrows.size()==count){
+                                sqlList.add("update sa_order set status='关闭',closeby='"+controller.username+"',closedate=CURRENT_TIME where sa_orderid=" +sa_orderid);
+                                sqlList.add("UPDATE sa_accountbalance t1 " +
+                                        "INNER JOIN sa_accountbalance_freez t2 ON t1.sa_accountbalanceid = t2.sa_accountbalanceid " +
+                                        "SET t1.freezamount = case when ifnull(t1.freezamount,0)>t2.amount then t1.freezamount-t2.amount else 0 end " +
+                                        "WHERE t1.sa_accountbalanceid="+accountbalancerows.get(0).getLong("sa_accountbalanceid")+" and t2.sourcetable='sa_order' and t2.sourceid="+sa_orderid);
+                                sqlList.add("delete from sa_accountbalance_freez t1 WHERE t1.sourcetable='sa_order' and t1.sourceid="+sa_orderid);
+                            }
+                        }
+
+                    }
                 }else{
                     QuerySQL querySQL = SQLFactory.createQuerySQL(controller, "sa_tpartreimbursementdetail", "sa_tpartreimbursementid","sa_tpartreimbursementdetailid","isverified","qty","sa_orderitemsid");
                     querySQL.setTableAlias("t1");
@@ -322,43 +361,7 @@ public class XSCK extends BasicBill {
                         sqlList.add("update sa_orderitems set verifiedqty=ifnull(verifiedqty,0)-"+row.getBigDecimal("sumqty")+" where sa_orderitemsid=" + row.getLong("sa_orderitemsid"));
                     }
                 }
-                //判断是否关闭订单
-                int orderautoclosepoint = Parameter.getInteger(siteid, "orderautoclosepoint");
-                if(orderautoclosepoint==2){
-                    ArrayList<Long> sa_orderids = itemRows.toArrayList("sa_orderid",new ArrayList<>());
-                    QuerySQL querySQL = SQLFactory.createQuerySQL(controller, "sa_order", "sa_orderid");
-                    querySQL.addJoinTable(BaseClass.JOINTYPE.inner, "sa_orderitems", "t2", "t2.sa_orderid = t1.sa_orderid and t2.siteid = t1.siteid",
-                            "undeliqty","sa_orderitemsid");
-                    querySQL.setTableAlias("t1");
-                    querySQL.setWhere("t1.siteid", siteid);
-                    querySQL.setWhere("t1.sa_orderid", sa_orderids);
-                    querySQL.setWhere("t1.status='审核' and t2.undeliqty!=0");
-                    Rows rows = querySQL.query();
-                    RowsMap rowsMap =rows.toRowsMap("sa_orderid");
-                    RowsMap itemRowsMap=itemRows.toRowsMap("sa_orderid");
-                    for(Long sa_orderid : sa_orderids){
-                        Rows stockbillitemrows = itemRowsMap.getOrDefault(String.valueOf(sa_orderid),new Rows());
-                        Rows orderrows = rowsMap.getOrDefault(String.valueOf(sa_orderid),new Rows());
-                        RowsMap stockbillitemrowsMap =stockbillitemrows.toRowsMap("sa_orderitemsid");
-                        int count=0;
-                        for(Row row : orderrows){
-                            if(stockbillitemrowsMap.containsKey(row.getString("sa_orderitemsid"))){
-                                if(stockbillitemrowsMap.getOrDefault(row.getString("sa_orderitemsid"),new Rows()).sum("qty").compareTo(row.getBigDecimal("undeliqty"))==0){
-                                    count++;
-                                }
-                            }
-                        }
-                        if(orderrows.size()==count){
-                            sqlList.add("update sa_order set status='关闭',closeby='"+controller.username+"',closedate=CURRENT_TIME where sa_orderid=" +sa_orderid);
-                            sqlList.add("UPDATE sa_accountbalance t1 " +
-                                    "INNER JOIN sa_accountbalance_freez t2 ON t1.sa_accountbalanceid = t2.sa_accountbalanceid " +
-                                    "SET t1.freezamount = case when ifnull(t1.freezamount,0)>t2.amount then t1.freezamount-t2.amount else 0 end " +
-                                    "WHERE t1.sa_accountbalanceid="+accountbalancerows.get(0).getLong("sa_accountbalanceid")+" and t2.sourcetable='sa_order' and t2.sourceid="+sa_orderid);
-                            sqlList.add("delete from sa_accountbalance_freez t1 WHERE t1.sourcetable='sa_order' and t1.sourceid="+sa_orderid);
-                        }
-                    }
 
-                }
 
             }