Просмотр исходного кода

新增订单是否自动返利结算功能

eganwu 2 лет назад
Родитель
Сommit
39fa8c7c75

+ 12 - 0
src/custom/restcontroller/webmanage/lsak3/stockbill/stockbill.java

@@ -7,6 +7,7 @@ import beans.parameter.Parameter;
 import beans.remind.Remind;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.sun.tools.corba.se.idl.constExpr.Or;
 import common.Controller;
 import common.YosException;
 import common.annotation.API;
@@ -18,6 +19,7 @@ import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 import restcontroller.R;
 import restcontroller.webmanage.executorService.Executor;
+import restcontroller.webmanage.sale.order.OrderItemsHelper;
 import service.AftersalesmagAutoRecheckService;
 
 import javax.swing.text.StyledEditorKit;
@@ -367,6 +369,7 @@ public class stockbill extends Controller {
 
 
                 ArrayList<String> sqlorder = new ArrayList<>();
+                ArrayList<Long> sa_orderids = new ArrayList<>();
                 for (Row row : ordersumrows) {
                     if (orderinstockRowsMap.containsKey(row.getString("sa_orderid"))) {
                         if (orderinstockRowsMap.get(row.getString("sa_orderid")).get(0).getBigDecimal("sumoutwarehouseqty").compareTo(row.getBigDecimal("sumqty")) == 0) {
@@ -381,6 +384,7 @@ public class stockbill extends Controller {
                             sqlFactory.addParameter("actionby", "admin");
                             sqlFactory.addParameter("siteid", "lsa");
                             sqlorder.add(sqlFactory.getSQL());
+                            sa_orderids.add(row.getLong("sa_orderid"));
                         } else {
                             sqlorder.add("update sa_order set status='审核',closedate=null,closeby='' where sa_orderid='" + row.getLong("sa_orderid") + "' and siteid='lsa'");
                             sqlorder.add("delete from sys_contrllog  where ownertable='sa_order' and action='自动关闭'  and  ownerid='" + row.getLong("sa_orderid") + "' and siteid='lsa'");
@@ -393,6 +397,14 @@ public class stockbill extends Controller {
                 }
                 dbConnect.runSqlUpdate(sqlorder);
 
+
+                //是否自动返利结算
+                OrderItemsHelper orderItemsHelper = new OrderItemsHelper(this);
+                for (Long sa_orderid : sa_orderids) {
+                    orderItemsHelper.executeAutoRebate(sa_orderid, sys_enterpriseid);
+                }
+
+
             }
 
             /**

+ 3 - 0
src/custom/restcontroller/webmanage/sale/order/Order.java

@@ -3422,6 +3422,9 @@ public class Order extends Controller {
 
         dbConnect.runSqlUpdate(sqlList);
 
+        //是否自动返利结算
+        new OrderItemsHelper(this).executeAutoRebate(sa_orderid, sys_enterpriseid);
+
         for (Long sa_cashbillid : sa_cashbillidList) {
             Accountbalance.remindSend(this, sys_enterpriseid, sa_cashbillid);
         }

+ 0 - 2
src/custom/restcontroller/webmanage/sale/order/OrderItems.java

@@ -181,8 +181,6 @@ public class OrderItems extends Controller {
 
         //查询商品费用方案方法
         orderItemsHelper.executeDataFunction(sa_orderid);
-        //是否自动返利结算
-        orderItemsHelper.executeAutoRebate(sa_orderid,sys_enterpriseid);
 
         return getSucReturnObject().toString();
     }

+ 128 - 112
src/custom/restcontroller/webmanage/sale/order/OrderItemsHelper.java

@@ -1,8 +1,11 @@
 package restcontroller.webmanage.sale.order;
 
+import beans.accountbalance.Accountbalance;
+import beans.accountbalance.CashbillEntity;
 import beans.datacontrllog.DataContrlLog;
 import beans.itemclass.ItemClass;
 import beans.itemprice.ItemPrice;
+import beans.order.Order;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import common.BaseClass;
@@ -30,102 +33,117 @@ public class OrderItemsHelper extends BaseClass {
 
     //执行是否自动返利结算
     public void executeAutoRebate(Long sa_orderid, Long sys_enterpriseid) throws YosException {
-//
-//        Rows enterpriseRows = dbConnect.runSqlQuery("SELECT isrebate from sys_enterprise WHERE sys_enterpriseid=" + sys_enterpriseid);
-//        if (enterpriseRows.isEmpty()) {
-//            return;
-//        }
-//        //是否自动返利结算
-//        Boolean isrebate = enterpriseRows.get(0).getBoolean("isrebate");
-//        if (!isrebate) {
-//            return;
-//        }
-//        //查询有效期内,余额大于0 的经销商装修补贴返利
-//        String sql = "select * from sa_agentdecorationtrebate WHERE sys_enterpriseid=" + sys_enterpriseid + " and siteid='" + controller.siteid + "' and begindate <= current_date and enddate>=current_date and balance>0";
-//        Rows rows = dbConnect.runSqlQuery(sql);
-//        if (rows.isEmpty()) {
-//            return;
-//        }
-//        //查询装修返利方案
-//        Rows rebateschemeRows = dbConnect.runSqlQuery("select * from sa_rebatescheme where siteid='" + controller.siteid + "'");
-//        if (rebateschemeRows.isEmpty()) {
-//            return;
-//        }
-//        ArrayList<String> sqlList = new ArrayList<>();
-//        Long sa_rebateschemeid = rebateschemeRows.get(0).getLong("sa_rebateschemeid");
-//
-//        Rows rebatecategorys = dbConnect.runSqlQuery("select * from sa_rebatecategory where siteid='" + controller.siteid + "' and sa_rebateschemeid=" + sa_rebateschemeid);
-//        Rows rebateunproducts = dbConnect.runSqlQuery("select * from sa_rebateunproducts where siteid='" + controller.siteid + "' and sa_rebateschemeid=" + sa_rebateschemeid);
-//        Rows agentdecorationtrebates = dbConnect.runSqlQuery("select * from sa_agentdecorationtrebate where siteid='" + controller.siteid + "' and sys_enterpriseid=" + sys_enterpriseid);
-//        Rows agentrebatecategorys = dbConnect.runSqlQuery("select * from sa_agentrebatecategory where siteid='" + controller.siteid + "'");
-//        RowsMap agentdecorationtrebatesRowsMap = agentdecorationtrebates.toRowsMap("sys_enterpriseid");
-//        RowsMap agentrebatecategorysRowsMap = agentrebatecategorys.toRowsMap("sys_enterpriseid");
-//        String itemids = rebateunproducts.toJsonArray("itemid").toString();
-//        itemids = itemids.replace("[", "(").replace("]", ")");
-//
-//        ArrayList<Long> itemclsids = rebatecategorys.toArrayList("itemclassid", new ArrayList<Long>());
-//
-//        RowsMap amountRowsMap = CalculateAmount(itemclsids, sys_enterpriseid, itemids);
-//        RowsMap ordersRowsMap = QuerySaorderNum(itemclsids, sys_enterpriseid, itemids);
-//        RowsMap orderDetailIdRowsMap = QuerySaorderDetailId(itemclsids, sys_enterpriseid, itemids);
-//
-//        for (Row row : rebateaccounts) {
-//            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-//            String begindate = "";
-//            String enddate = "";
-//            BigDecimal amount = BigDecimal.ZERO;
-//            BigDecimal balance = BigDecimal.ZERO;
-//            BigDecimal brate = BigDecimal.ZERO;
-//
-//
-////                String agentitemclsnums = null;
-//            if (agentdecorationtrebatesRowsMap.containsKey(row.getString("sys_enterpriseid"))) {
-//                if (!agentdecorationtrebatesRowsMap.get(row.getString("sys_enterpriseid")).isEmpty()) {
-//                    begindate = sdf.format(agentdecorationtrebatesRowsMap.get(row.getString("sys_enterpriseid")).get(0).getDate("begindate"));
-//                    if (begindate.compareTo("2023-08-26") < 0) {
-//                        begindate = "2023-08-26";
-//                    }
-//                    enddate = sdf.format(agentdecorationtrebatesRowsMap.get(row.getString("sys_enterpriseid")).get(0).getDate("enddate"));
-//                    amount = agentdecorationtrebatesRowsMap.get(row.getString("sys_enterpriseid")).get(0).getBigDecimal("amount");
-//                    balance = agentdecorationtrebatesRowsMap.get(row.getString("sys_enterpriseid")).get(0).getBigDecimal("balance");
-//                    brate = agentdecorationtrebatesRowsMap.get(row.getString("sys_enterpriseid")).get(0).getBigDecimal("brate");
-//                }
-//            }
-//            final String begindate1 = begindate;
-//            final String enddate1 = enddate;
-//            List<Row> selectamountList = amountRowsMap.get(row.getString("sys_enterpriseid")).stream().filter(row1 -> sdf.format(row1.getDate("closedate")).compareTo(enddate1) <= 0 && sdf.format(row1.getDate("closedate")).compareTo(begindate1) >= 0).collect(Collectors.toList());
-//            List<Row> selectorderDetailIdList = orderDetailIdRowsMap.get(row.getString("sys_enterpriseid")).stream().filter(row1 -> sdf.format(row1.getDate("closedate")).compareTo(enddate1) <= 0 && sdf.format(row1.getDate("closedate")).compareTo(begindate1) >= 0).collect(Collectors.toList());
-//            List<Row> selectordersList = ordersRowsMap.get(row.getString("sys_enterpriseid")).stream().filter(row1 -> sdf.format(row1.getDate("closedate")).compareTo(enddate1) <= 0 && sdf.format(row1.getDate("closedate")).compareTo(begindate1) >= 0).collect(Collectors.toList());
-//
-//            BigDecimal saorderamount = new BigDecimal("0");
-//            for (Row row2 : selectamountList) {
-//                if (row2.containsKey("amount")) {
-//                    saorderamount = saorderamount.add(row2.getBigDecimal("amount"));
-//                }
-//            }
-//            System.out.println(saorderamount);
-//            if (balance.compareTo(saorderamount.multiply(brate)) >= 0) {
-//                sqlList.add("update sa_rebateaccount set approvedamount=" + saorderamount.multiply(brate) + ",rebateamount=" + saorderamount.multiply(brate) + ",accumulatedamount=" + saorderamount + " where sa_rebateaccountid=" + row.getLong("sa_rebateaccountid"));
-//            } else if (balance.compareTo(BigDecimal.ZERO) > 0) {
-//                sqlList.add("update sa_rebateaccount set approvedamount=" + balance + ",rebateamount=" + balance + ",accumulatedamount=" + saorderamount + " where sa_rebateaccountid=" + row.getLong("sa_rebateaccountid"));
-//            }
-//            sqlList.add("update sa_orderitems set decorationrebateflag=1,rebatesourceid=" + rows.get(0).getLong("sa_rebateaccountheadid") + ",rebatesourceobject='sa_rebateaccounthead' where sa_orderitemsid in" + toJsonArray("sa_orderitemsid", selectorderDetailIdList).toJSONString().replace("[", "(").replace("]", ")"));
-//
-//            for (Row order : selectordersList) {
-//                SQLFactory sqlFactory = new SQLFactory(this, "返利结算单孙体明细新增");
-//                sqlFactory.addParameter("siteid", controller.siteid);
-//                sqlFactory.addParameter("sa_rebateaccountdetailid", createTableID("sa_rebateaccountdetail"));
-//                sqlFactory.addParameter("sa_rebateaccountid", row.getLong("sa_rebateaccountid"));
-//                sqlFactory.addParameter("sa_orderid", order.getLong("sa_orderid"));
-//                sqlFactory.addParameter("rateamount", order.getBigDecimal("amount").multiply(brate));
-//                sqlFactory.addParameter("amount", order.getBigDecimal("amount"));
-//                sqlList.add(sqlFactory.getSQL());
-//
-//            }
-//        }
-//
-//
-//        dbConnect.runSqlUpdate(sqlList);
+
+        Rows orderRows = Order.getOrderRows(controller, sa_orderid);
+        if (orderRows.get(0).getString("type").equals("促销订单")) {
+            return;
+        }
+
+        Rows enterpriseRows = dbConnect.runSqlQuery("SELECT isrebate from sys_enterprise WHERE sys_enterpriseid=" + sys_enterpriseid);
+        if (enterpriseRows.isEmpty()) {
+            return;
+        }
+        //是否自动返利结算
+        Boolean isrebate = enterpriseRows.get(0).getBoolean("isrebate");
+        if (!isrebate) {
+            return;
+        }
+        //查询有效期内,余额大于0 的经销商装修补贴返利
+        String sql = "select * from sa_agentdecorationtrebate WHERE sys_enterpriseid=" + sys_enterpriseid + " and siteid='" + controller.siteid + "' and begindate <= current_date and enddate>=current_date and balance>0";
+        Rows agentdecorationtrebatRows = dbConnect.runSqlQuery(sql);
+        if (agentdecorationtrebatRows.isEmpty()) {
+            return;
+        }
+        //查询装修返利方案
+        Rows rebateschemeRows = dbConnect.runSqlQuery("select * from sa_rebatescheme where siteid='" + controller.siteid + "'");
+        if (rebateschemeRows.isEmpty()) {
+            return;
+        }
+        ArrayList<String> sqlList = new ArrayList<>();
+        Long sa_rebateschemeid = rebateschemeRows.get(0).getLong("sa_rebateschemeid");
+        Long sa_accountclassid = rebateschemeRows.get(0).getLong("sa_accountclassid");
+
+        Rows rebatecategorys = dbConnect.runSqlQuery("select itemclassid from sa_rebatecategory where siteid='" + controller.siteid + "' and sa_rebateschemeid=" + sa_rebateschemeid);
+        Rows rebateunproducts = dbConnect.runSqlQuery("select itemid from sa_rebateunproducts where siteid='" + controller.siteid + "' and sa_rebateschemeid=" + sa_rebateschemeid);
+
+        ArrayList<Long> itemclsids = rebatecategorys.toArrayList("itemclassid", new ArrayList<Long>());
+
+        itemclsids.addAll(ItemClass.getSubItemClassIds(controller, itemclsids));
+        itemclsids.add(0l);
+        ArrayList<Long> itemids = rebateunproducts.toArrayList("itemid", new ArrayList<Long>());
+        itemids.add(0l);
+
+        SQLFactory sqlFactory = new SQLFactory(controller, "查询返利数据");
+        sqlFactory.addParameter("sa_orderid", sa_orderid);
+        sqlFactory.addParameter("siteid", controller.siteid);
+        sqlFactory.addParameter("siteid", controller.siteid);
+        sqlFactory.addParameter_in("itemclassid", itemclsids);
+        sqlFactory.addParameter_in("itemid", itemids);
+
+        Rows rows = controller.dbConnect.runSqlQuery(sqlFactory);
+        BigDecimal saorderamount = BigDecimal.ZERO;
+        for (Row row : rows) {
+            saorderamount = saorderamount.add(row.getBigDecimal("amount"));
+        }
+        //查询定制费用
+        sql = "SELECT ifnull(sum(costamount),0) costamount from sa_order_cost WHERE sa_orderid=" + sa_orderid;
+        BigDecimal costamount = dbConnect.runSqlQuery(0, sql).getBigDecimal("costamount");
+        saorderamount = saorderamount.add(costamount);
+
+
+        BigDecimal balance = agentdecorationtrebatRows.get(0).getBigDecimal("balance");
+        BigDecimal brate = agentdecorationtrebatRows.get(0).getBigDecimal("brate");
+
+
+        BigDecimal approvedamount = BigDecimal.ZERO;
+        if (balance.compareTo(saorderamount.multiply(brate)) >= 0) {
+            approvedamount = saorderamount.multiply(brate);
+        } else if (balance.compareTo(BigDecimal.ZERO) > 0) {
+            approvedamount = balance;
+        }
+        System.out.println(saorderamount);
+        System.out.println(approvedamount);
+
+        if (approvedamount.compareTo(BigDecimal.ZERO) > 0) {
+            ArrayList<Long> sa_orderitemsids = rows.toArrayList("sa_orderitemsid", new ArrayList<>());
+            sa_orderitemsids.add(0l);
+
+            //更新订单明细的装修返利标志
+            UpdateSQL updateSQL = SQLFactory.createUpdateSQL(controller, "sa_orderitems");
+            updateSQL.setWhere("sa_orderitemsid", sa_orderitemsids);
+            updateSQL.setValue("decorationrebateflag", "1");
+            sqlList.add(updateSQL.getSQL());
+
+            //更新sa_agentdecorationtrebate
+            updateSQL = SQLFactory.createUpdateSQL(controller, "sa_agentdecorationtrebate");
+            updateSQL.setWhere("sys_enterpriseid", sys_enterpriseid);
+            updateSQL.setSiteid(controller.siteid);
+            updateSQL.setValue("balance", balance.subtract(approvedamount));
+            sqlList.add(updateSQL.getSQL());
+
+            //生成收入凭证
+            CashbillEntity entity = new CashbillEntity();
+            entity.setAmount(approvedamount);
+            entity.setOwnerid(sa_orderid);
+            entity.setOwnertable("sa_order");
+            entity.setSource("订单自动返利");
+            entity.setSourcenote(orderRows.get(0).getString("sonum"));
+            entity.setRemarks(orderRows.get(0).getString("sonum") + "订单自动返利");
+            JSONObject cashbillIncome = Accountbalance.createCashbillIncome(controller, sys_enterpriseid, sa_accountclassid, entity, true, true);
+            sqlList.addAll(cashbillIncome.getJSONArray("sqlList").toJavaList(String.class));
+
+            dbConnect.runSqlUpdate(sqlList);
+        }
+    }
+
+    public JSONArray toJsonArray(String column, List<Row> list) {
+        JSONArray array = new JSONArray();
+        array.add("0");
+        for (Row row : list) {
+            Object value = row.get(column);
+            array.add(value);
+        }
+        return array;
     }
 
     public RowsMap CalculateAmount(ArrayList<Long> itemclsids, Long sys_enterpriseid,
@@ -175,24 +193,22 @@ public class OrderItemsHelper extends BaseClass {
         Rows rows = null;
         itemclsids.addAll(ItemClass.getSubItemClassIds(controller, itemclsids));
         itemclsids.add(0l);
-        if (itemids.equals("()")) {
-            rows = dbConnect.runSqlQuery("select t2.closedate,t2.sys_enterpriseid,t1.sa_orderitemsid  from sa_orderitems t1 \n" +
-                    "inner join sa_order t2 on  t1.sa_orderid=t2.sa_orderid and t1.siteid=t2.siteid\n" +
-                    "inner join plm_item t3 on  t1.itemid=t3.itemid and t1.siteid=t3.siteid where t2.type !='促销订单' and ifnull( t2.closedate,'')!='' and t2.sa_accountclassid!=0 and t2.sys_enterpriseid =" + sys_enterpriseid + "  and t2.status in('关闭') and t1.itemid in(select itemid from sa_itemsaleclass where itemclassid in" + itemclsids.toString().replace("[", "(").replace("]", ")") + " )  and t1.DECORATIONREBATEFLAG=0 and t1.siteid='" + controller.siteid + "' group by t2.sys_enterpriseid,t2.closedate,t1.sa_orderitemsid");
-
-        } else {
-            rows = dbConnect.runSqlQuery("select t2.closedate,t2.sys_enterpriseid,t1.sa_orderitemsid from sa_orderitems t1 \n" +
-                    "inner join sa_order t2 on  t1.sa_orderid=t2.sa_orderid and t1.siteid=t2.siteid\n" +
-                    "inner join plm_item t3 on  t1.itemid=t3.itemid and t1.siteid=t3.siteid where t2.type !='促销订单' and ifnull( t2.closedate,'')!='' and t2.sa_accountclassid!=0 and t2.sys_enterpriseid =" + sys_enterpriseid + "  and t2.status in('关闭') and t1.itemid not in" + itemids + " and  t1.itemid in(select itemid from sa_itemsaleclass where itemclassid in" + itemclsids.toString().replace("[", "(").replace("]", ")") + " ) and t1.DECORATIONREBATEFLAG=0 and t1.siteid='" + controller.siteid + "' group by t2.sys_enterpriseid,t2.closedate,t1.sa_orderitemsid");
-
-
+        String sql = "select t2.closedate,t2.sys_enterpriseid,t1.sa_orderitemsid  from sa_orderitems t1 " +
+                "inner join sa_order t2 on  t1.sa_orderid=t2.sa_orderid and t1.siteid=t2.siteid " +
+                "inner join plm_item t3 on  t1.itemid=t3.itemid and t1.siteid=t3.siteid " +
+                "where t2.type !='促销订单' " +
+                "and ifnull( t2.closedate,'')!='' " +
+                "and t2.sa_accountclassid!=0 and t2.sys_enterpriseid =" + sys_enterpriseid + "  " +
+                "and t2.status in('关闭') " +
+                "and t1.itemid in(select itemid from sa_itemsaleclass where itemclassid in" + itemclsids.toString().replace("[", "(").replace("]", ")") + " )  " +
+                "and t1.DECORATIONREBATEFLAG=0 and t1.siteid='" + controller.siteid + "' ";
+        if (!itemids.equals("()")) {
+            sql = sql + " and t1.itemid not in" + itemids;
         }
+        sql = sql + "group by t2.sys_enterpriseid,t2.closedate,t1.sa_orderitemsid";
+        System.err.println(sql);
+        rows = dbConnect.runSqlQuery(sql);
         return rows.toRowsMap("sys_enterpriseid");
-//        if(rows.toJsonArray("sa_orderitemsid").isEmpty()){
-//            return "(0)";
-//        }else{
-//            return rows.toJsonArray("sa_orderitemsid").toJSONString().replace("[", "(").replace("]", ")");
-//        }
 
 
     }

+ 12 - 0
src/custom/restcontroller/webmanage/sale/order/SQL/查询返利数据.sql

@@ -0,0 +1,12 @@
+SELECT t3.sa_orderitemsid, t3.price * t1.outwarehouseqty amount
+from sa_dispatch_items t1
+         inner join sa_dispatch t2 ON t2.sa_dispatchid = t1.sa_dispatchid and t2.siteid = t1.siteid
+         inner join sa_orderitems t3 on t3.sa_orderitemsid = t1.sa_orderitemsid and t3.siteid = t1.siteid
+         inner join plm_item t4 on t4.itemid = t3.itemid and t4.siteid = t3.siteid
+         inner join sa_order t5 ON t5.sa_orderid = t2.sa_orderid and t5.siteid = t2.siteid
+WHERE t2.sa_orderid = $sa_orderid$
+  and t1.siteid = $siteid$
+  and t1.outwarehouseqty > 0
+  and (t3.decorationrebateflag = 0 or t3.decorationrebateflag is null)
+  and t1.itemid in (select itemid from sa_itemsaleclass where itemclassid in $itemclassid$)
+  and t1.itemid not in $itemid$

+ 27 - 16
src/custom/restcontroller/webmanage/sale/rebatescheme/rebatescheme.java

@@ -9,14 +9,12 @@ import common.YosException;
 import common.annotation.API;
 import common.annotation.CACHEING;
 import common.annotation.CACHEING_CLEAN;
-import common.data.Row;
-import common.data.Rows;
-import common.data.SQLFactory;
+import common.data.*;
 import restcontroller.R;
 
 import java.util.ArrayList;
 
-public class rebatescheme  extends Controller {
+public class rebatescheme extends Controller {
     /**
      * 构造函数
      *
@@ -25,23 +23,36 @@ public class rebatescheme  extends Controller {
     public rebatescheme(JSONObject content) throws YosException {
         super(content);
     }
+
     @API(title = "装修返利方案新增更新", apiversion = R.ID20230627102803.v1.class)
     @CACHEING_CLEAN(apiClass = {rebatescheme.class})
     public String insertormodify_rebatescheme() throws YosException {
         ArrayList<String> sqlList = new ArrayList<>();
-        // 表名
         String tableName = "sa_rebatescheme";
-        Long sa_rebateschemeid = content.getLong("sa_rebateschemeid");
-        SQLFactory sqlFactory = new SQLFactory(this, "装修返利方案新增");
-        sa_rebateschemeid = createTableID(tableName);
-        sqlList.add(DataContrlLog.createLog(this, "sa_rebatescheme", sa_rebateschemeid, "新增", "装修返利方案新增成功").getSQL());
-        sqlFactory.addParameter("siteid", siteid);
-        sqlFactory.addParameter("userid", userid);
-        sqlFactory.addParameter("username", username);
-        sqlFactory.addParameter("sa_rebateschemeid", sa_rebateschemeid);
-        // 装修返利方案号createBillCode("rebateschemebill")
-        sqlFactory.addParameter("billno",createBillCode("rebateschemebill"));
-        sqlList.add(sqlFactory.getSQL());
+
+        Long sa_rebateschemeid = content.getLongValue("sa_rebateschemeid");
+        Long sa_accountclassid = content.getLongValue("sa_accountclassid");
+        if (sa_accountclassid <= 0) {
+            return getErrReturnObject().setErrMsg("请选择账户").toString();
+        }
+        if (sa_rebateschemeid <= 0) {
+            sa_rebateschemeid = createTableID(tableName);
+            InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sa_rebatescheme");
+            insertSQL.setUniqueid(sa_rebateschemeid).setSiteid(siteid);
+            insertSQL.setValue("billno", createBillCode("rebateschemebill"));
+            insertSQL.setValue("sa_accountclassid", sa_accountclassid);
+            sqlList.add(insertSQL.getSQL());
+            sqlList.add(DataContrlLog.createLog(this, tableName, sa_rebateschemeid, "新增", "装修返利方案新增成功").getSQL());
+        }
+        if (sa_rebateschemeid > 0) {
+            UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, tableName);
+            updateSQL.setUniqueid(sa_rebateschemeid).setSiteid(siteid);
+            updateSQL.setValue("sa_accountclassid", sa_accountclassid);
+            sqlList.add(updateSQL.getSQL());
+            sqlList.add(DataContrlLog.createLog(this, tableName, sa_rebateschemeid, "编辑", "装修返利方案编辑成功").getSQL());
+        }
+
+
         dbConnect.runSqlUpdate(sqlList);
 
         content.put("sa_rebateschemeid", sa_rebateschemeid);