浏览代码

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

shenjingwei 10 月之前
父节点
当前提交
a87fa343b4

+ 43 - 1
src/custom/restcontroller/webmanage/sale/order/OrderItems.java

@@ -28,6 +28,9 @@ import utility.tools.WebRequest;
 
 import java.io.IOException;
 import java.math.BigDecimal;
+import java.time.Year;
+import java.time.YearMonth;
+import java.time.temporal.IsoFields;
 import java.util.ArrayList;
 import java.util.HashMap;
 
@@ -148,6 +151,19 @@ public class OrderItems extends Controller {
             BigDecimal defaultprice;
             BigDecimal price;
             BigDecimal saleprice;
+            BigDecimal custamount=new BigDecimal(0);
+            BigDecimal pricerate=new BigDecimal(1);
+            int year= Year.now().getValue();
+            int quarter= YearMonth.now().get(IsoFields.QUARTER_OF_YEAR);
+            Rows custamountrows =dbConnect.runSqlQuery("select * from sa_agents where sys_enterpriseid="+sys_enterpriseid+" and siteid='"+siteid+"'");
+            if(!custamountrows.isEmpty()){
+                custamount=custamountrows.get(0).getBigDecimal("custamount");
+                if(custamountrows.get(0).getInteger("year")==year && custamountrows.get(0).getInteger("quarter")==quarter){
+                    if(custamountrows.get(0).getBigDecimal("pricerate").compareTo(BigDecimal.ZERO)>0){
+                        pricerate=custamountrows.get(0).getBigDecimal("pricerate");
+                    }
+                }
+            }
             //价格
             ItemPrice itemPrice = ItemPrice.getItemPrice(this, sys_enterpriseid, itemid);
             if (!item.containsKey("defaultprice")) {
@@ -165,9 +181,14 @@ public class OrderItems extends Controller {
             if (price.compareTo(BigDecimal.ZERO) < 0) {
                 return getErrReturnObject().setErrMsg("价格不可小于0").toString();
             }
+
+
+
             if (isInsert) {
-                sqlList.add(orderItemsHelper.getInsertSQL(customproperties, sa_orderitemsid, item, itemRow, type, defaultprice, price, saleprice, itemPrice.getMarketprice(), spec, promotionitems, width, length).getSQL());
+                price=price.multiply(pricerate).add(custamount);
+                sqlList.add(orderItemsHelper.getInsertSQL(customproperties, sa_orderitemsid, item, itemRow, type, defaultprice, price, saleprice, itemPrice.getMarketprice(), spec, promotionitems, width, length,custamount).getSQL());
             } else {
+                price=price.multiply(pricerate).add(content.getBigDecimal("custamount"));
                 sqlList.add(orderItemsHelper.getUpdateSQL(sa_orderitemsid, item, itemRow, type, defaultprice, price, saleprice, width, length).getSQL());
             }
 
@@ -638,6 +659,9 @@ public class OrderItems extends Controller {
 //        sqlFactory.addParameter("sa_orderid", sa_orderid);
 //        sqlFactory.addParameter_SQL("where", where);
 //        Rows rows = dbConnect.runSqlQuery(sqlFactory);
+        int year= Year.now().getValue();
+        int quarter= YearMonth.now().get(IsoFields.QUARTER_OF_YEAR);
+
 
         QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_orderitems","*");
         querySQL.setTableAlias("t1");
@@ -649,9 +673,13 @@ public class OrderItems extends Controller {
         querySQL.addJoinTable(JOINTYPE.left, "sa_promotion_items", "t4",
                 "t4.sa_promotion_itemsid = t1.sa_promotion_itemsid and t4.siteid = t1.siteid and t4.sa_promotionid=" + sa_promotionid,"packagetypemx","saledqty","groupqty");
 
+        querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t5", "t5.sys_enterpriseid = "+sys_enterpriseid+" and year="+year+" and quarter="+quarter+" AND t5.siteid = t1.siteid");
+
         querySQL.addQueryFields("candispatchqty", "ifnull(t2.candispatchqty, 0)");
         querySQL.addQueryFields("cansaleqty", "ifnull(t2.cansaleqty, 0)");
         querySQL.addQueryFields("totalaty", "ifnull(t2.qty, 0)");
+        querySQL.addQueryFields("rwpricerate", "ifnull(t5.pricerate, 1)");
+
         querySQL.addQueryFields("stockstatus", "(SELECT (CASE WHEN t2.cansaleqty>=t3.stockstatus1 THEN '充足' WHEN t2.cansaleqty<=t3.stockstatus2 THEN '缺货' ELSE '紧缺' END))");
         if(sa_promotionid>0){
             querySQL.addQueryFields("packageqty", "ifnull(t4.packageqty, 0)");
@@ -692,6 +720,14 @@ public class OrderItems extends Controller {
         Rows itempriceRows = dbConnect.runSqlQuery(sqlFactory3);
         RowsMap itempriceRowsMap = itempriceRows.toRowsMap("itemno");
 
+
+        SQLFactory sqlFactory4 = new SQLFactory(this, "商品等级价格查询");
+        sqlFactory4.addParameter("siteid", siteid);
+        sqlFactory4.addParameter("itemid", ids);
+        sqlFactory4.addParameter("sys_enterpriseid", sys_enterpriseid);
+        Rows pricegradeRows = dbConnect.runSqlQuery(sqlFactory4);
+        RowsMap pricegradeRowsMap = pricegradeRows.toRowsMap("itemid");
+
         JSONArray jsonArray = new JSONArray();
         if(content.getLongValue("onlyquery")==0){
             if (siteid.equalsIgnoreCase("lsa")) {
@@ -763,6 +799,12 @@ public class OrderItems extends Controller {
             if (!row.containsKey("invbalqty")) {
                 row.put("invbalqty", BigDecimal.ZERO);
             }
+            if (pricegradeRowsMap.containsKey(row.getString("itemid"))) {
+                row.put("pricerate",pricegradeRowsMap.get(row.getString("itemid")).get(0).getBigDecimal("discountrate"));
+            }else{
+                row.put("pricerate",new BigDecimal(1));
+            }
+
             row.put("attinfos", attinfoRowsMap.getOrDefault(row.getString("itemid"), new Rows()));
             row.put("contractprice", 0);
             //处理日期字段空的情况

+ 3 - 1
src/custom/restcontroller/webmanage/sale/order/OrderItemsHelper.java

@@ -587,7 +587,7 @@ public class OrderItemsHelper extends BaseClass {
 
     public InsertSQL getInsertSQL(JSONArray customproperties, long sa_orderitemsid, JSONObject item, Row itemRow, String type,
                                   BigDecimal defaultprice, BigDecimal price, BigDecimal saleprice, BigDecimal marketprice,
-                                  String spec, Rows promotionitems,long width,long length) throws YosException {
+                                  String spec, Rows promotionitems,long width,long length,BigDecimal custamount) throws YosException {
         Long itemid = item.getLong("itemid");
         BigDecimal qty = item.getBigDecimal("qty");
         RowsMap promotionitemsRowsMap = promotionitems.toRowsMap("sa_promotion_itemsid");
@@ -618,6 +618,7 @@ public class OrderItemsHelper extends BaseClass {
         insertSQL.setValue("position", item.getOrDefault("position", "null"));
         insertSQL.setValue("batchno", item.getOrDefault("batchno", "null"));
         insertSQL.setValue("spec", spec);
+        insertSQL.setValue("custamount",custamount);
         insertSQL.setValue("sa_promotion_itemsid", item.getLongValue("sa_promotion_itemsid"));
         String deliverydate = item.getStringValue("deliverydate");
         Rows rows = dbConnect.runSqlQuery("SELECT deliverydate,defaultprice from sa_orderitems WHERE sa_orderitemsid =" + sa_orderitemsid);
@@ -700,6 +701,7 @@ public class OrderItemsHelper extends BaseClass {
         updateSQL.setValue("stockno", item.getOrDefault("stockno", "null"));
         updateSQL.setValue("position", item.getOrDefault("position", "null"));
         updateSQL.setValue("batchno", item.getOrDefault("batchno", "null"));
+        updateSQL.setValue("custamount", item.getBigDecimal("custamount"));
 
         String deliverydate = item.getStringValue("deliverydate");
         Rows rows = dbConnect.runSqlQuery("SELECT deliverydate,defaultprice from sa_orderitems WHERE sa_orderitemsid =" + sa_orderitemsid);

+ 7 - 0
src/custom/restcontroller/webmanage/sale/order/SQL/商品等级价格查询.sql

@@ -0,0 +1,7 @@
+select t1.pricegrade, t2.grade, t1.price, t2.discountrate,t1.itemid
+from sa_itemprice t1
+         inner join sa_itemprice_grademapping t2 on t1.siteid = t2.siteid and t1.pricegrade = t2.pricegrade
+         inner join sys_enterprise t3 on t2.siteid = t3.siteid and t2.grade = t3.grade
+where t1.siteid = $siteid$
+  and t1.itemid in $itemid$
+  and t3.sys_enterpriseid = $sys_enterpriseid$

+ 1 - 0
src/custom/restcontroller/webmanage/sale/order/SQL/订单商品明细_列表.sql

@@ -31,6 +31,7 @@ SELECT t1.sa_orderitemsid,
        t1.batchno,
        t1.isfreeze,
        t1.sa_promotion_itemsid,
+       t1.custamount,
        ifnull(t2.candispatchqty, 0)   candispatchqty,
        ifnull(t2.cansaleqty, 0)       cansaleqty,
        ifnull(t2.qty, 0)              totalaty,

+ 2 - 1
src/custom/restcontroller/webmanage/sale/order/SQL/订单商品明细_详情.sql

@@ -33,7 +33,8 @@ SELECT t1.sa_orderitemsid,
        t3.orderaddqty_auxunit,
        t3.orderaddqty,
        t3.packageqty,
-       ifnull(t3.delivery, 0)       delivery
+       ifnull(t3.delivery, 0)       delivery,
+       t1.custamount
 from sa_orderitems t1
          LEFT JOIN st_invbal_sale t2 ON t2.siteid = t1.siteid AND t2.itemid = t1.itemid
          LEFT JOIN plm_item t3 ON t3.itemid = t1.itemid and t3.siteid = t1.siteid