|
|
@@ -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);
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
- }
|
|
|
|
|
|
}
|
|
|
|