diff --git a/src/main/java/com/yem/wm/es/salesorder/utils/SalesOrderUtils.java b/src/main/java/com/yem/wm/es/salesorder/utils/SalesOrderUtils.java index 468755b8..581886e9 100644 --- a/src/main/java/com/yem/wm/es/salesorder/utils/SalesOrderUtils.java +++ b/src/main/java/com/yem/wm/es/salesorder/utils/SalesOrderUtils.java @@ -416,11 +416,25 @@ public class SalesOrderUtils { materielId.add(materiel.getLong("id")); } } + String yemBdProductsid = ""; + DynamicObject yemBdProducts = dataEntitie.getDynamicObject("yem_bd_products"); + if (yemBdProducts != null) { + yemBdProductsid = yemBdProducts.getString("number"); + } + if ("CC".equals(yemBdProducts.getString("number"))) {//叉车 + yemBdProductsid = "CCPJ"; + } else if ("ZZJ".equals(yemBdProducts.getString("number"))) {//装载机 + yemBdProductsid = "ZZJPJ"; + } else if ("TLJ".equals(yemBdProducts.getString("number"))) {//拖拉机 + yemBdProductsid = "TLJPJ"; + } String selectFields = DynamicObjectUtil.getSelectfields("yem_pricelibrary", false); selectFields = DynamicObjectUtil.getEntrySelectfields(selectFields, "yem_pricelibrary", "yem_accessory", false); DynamicObject[] accPriceLibrarys = BusinessDataServiceHelper.load("yem_pricelibrary", selectFields, - new QFilter[]{new QFilter("yem_accessory.yem_material", QCP.in, materielId), - new QFilter("billstatus", QCP.equals, "C")}); + new QFilter[]{new QFilter("yem_accessory.yem_material", QCP.in, materielId) + , new QFilter("billstatus", QCP.equals, "C") + , new QFilter("yem_productclass.number", QCP.equals, yemBdProductsid) + ,new QFilter("yem_cancelstatus", QCP.equals, "0")}); for (DynamicObject accPriceLibrary : accPriceLibrarys) { Map> allMap = new HashMap<>(); Date bizDate = accPriceLibrary.getDate("yem_bizdate"); @@ -1109,9 +1123,9 @@ public class SalesOrderUtils { for (DynamicObject destport : destports) { DynamicObject port = destport.getDynamicObject("fbasedataid"); if (port == null) continue; - port = BusinessDataServiceHelper.loadSingle(port.getPkValue(), port.getDataEntityType().getName(), "yem_factory"); - if (!port.getString("yem_factory").isEmpty()) { - sb.append(port.getString("yem_factory")).append(";"); + port = BusinessDataServiceHelper.loadSingle(port.getPkValue(), port.getDataEntityType().getName(), "yem_namecn"); + if (!port.getString("yem_namecn").isEmpty()) { + sb.append(port.getString("yem_namecn")).append(";"); } } if (sb.lastIndexOf(";") == sb.length() - 1) { @@ -1226,20 +1240,26 @@ public class SalesOrderUtils { List value = entry.getValue(); DynamicObject basemodelib = BusinessDataServiceHelper.loadSingle(productmodelId, "yem_bd_basemodelib"); long products = basemodelib.getLong("yem_products.id"); -// BigDecimal singlepartgiftmat = BigDecimal.ZERO; + BigDecimal qty = BigDecimal.ZERO; + BigDecimal singlepartgiftmat = BigDecimal.ZERO; for (DynamicObject dynamicObject : value) { - BigDecimal qty = dynamicObject.getBigDecimal("yem_qty"); - BigDecimal singlepartgiftmat = dynamicObject.getBigDecimal("yem_singlepartgiftmat"); // 单台配件金额 - BigDecimal amount = qty.multiply(singlepartgiftmat); - if (singlepartgiftmat.compareTo(BigDecimal.ZERO) == 0) continue; - DynamicObject addNew = giftEntry.addNew(); - addNew.set("yem_giveproactype", products); // 产品机型 - addNew.set("yem_qtyint", qty); // 台数 - addNew.set("yem_singleamt", singlepartgiftmat); // 单台配件金额 - addNew.set("yem_singleamtlocal", singlepartgiftmat.multiply(exrate)); // 单台配件金额(本位币) - addNew.set("yem_giveamt", amount); // 配件金额 - addNew.set("yem_giveamtbase", amount.multiply(exrate)); // 配件金额本位币 + BigDecimal yemSinglepartgiftmat = dynamicObject.getBigDecimal("yem_singlepartgiftmat"); + if (yemSinglepartgiftmat.compareTo(BigDecimal.ZERO) != 0) { + qty = qty.add(dynamicObject.getBigDecimal("yem_qty")); + } + if (singlepartgiftmat.compareTo(BigDecimal.ZERO) == 0) { + singlepartgiftmat = yemSinglepartgiftmat; + } } + BigDecimal amount = qty.multiply(singlepartgiftmat); + if (singlepartgiftmat.compareTo(BigDecimal.ZERO) == 0) continue; + DynamicObject addNew = giftEntry.addNew(); + addNew.set("yem_giveproactype", products); // 产品机型 + addNew.set("yem_qtyint", qty); // 台数 + addNew.set("yem_singleamt", singlepartgiftmat); // 单台配件金额 + addNew.set("yem_singleamtlocal", singlepartgiftmat.multiply(exrate)); // 单台配件金额(本位币) + addNew.set("yem_giveamt", amount); // 配件金额 + addNew.set("yem_giveamtbase", amount.multiply(exrate)); // 配件金额本位币 } }