diff --git a/src/main/java/com/yem/wm/es/salesorder/op/SalesOrderSubmitOp.java b/src/main/java/com/yem/wm/es/salesorder/op/SalesOrderSubmitOp.java index b60e75a2..d70474d7 100644 --- a/src/main/java/com/yem/wm/es/salesorder/op/SalesOrderSubmitOp.java +++ b/src/main/java/com/yem/wm/es/salesorder/op/SalesOrderSubmitOp.java @@ -71,106 +71,113 @@ public class SalesOrderSubmitOp extends AbstractOperationServicePlugIn { super.afterExecuteOperationTransaction(e); DynamicObject[] eDataEntities = e.getDataEntities(); for (DynamicObject eDataEntity : eDataEntities) { - DynamicObjectCollection yemEsMaterialinfo = eDataEntity.getDynamicObjectCollection("yem_es_materialinfo"); - for (DynamicObject yemEsMAterialin : yemEsMaterialinfo) { - DynamicObjectCollection yemMulticonfig = yemEsMAterialin.getDynamicObjectCollection("yem_multiconfig"); - List list = new ArrayList<>(); - for (DynamicObject yemMulticon : yemMulticonfig) { - String yemConfigurtypeen = yemMulticon.getString("yem_configurtypeen"); - list.add(yemConfigurtypeen); + long aLong = eDataEntity.getLong("id"); + DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("yem_es_salesorder", "id,billno,yem_es_materialinfo" + + ",yem_es_materialinfo.yem_multiconfig,yem_es_materialinfo.yem_optional,yem_multiconfig.yem_configurtypeen" + , new QFilter[]{new QFilter("id", QCP.equals, aLong)}); + if (dynamicObject != null) { + DynamicObjectCollection yemEsMaterialinfo = dynamicObject.getDynamicObjectCollection("yem_es_materialinfo"); + for (DynamicObject yemEsMAterialin : yemEsMaterialinfo) { + DynamicObjectCollection yemMulticonfig = yemEsMAterialin.getDynamicObjectCollection("yem_multiconfig"); + List list = new ArrayList<>(); + for (DynamicObject yemMulticon : yemMulticonfig) { + String yemConfigurtypeen = yemMulticon.getString("yem_configurtypeen"); + list.add(yemConfigurtypeen); + } + String mergedString = String.join(";" + "\n", list); + yemEsMAterialin.set("yem_optional", mergedString); + SaveServiceHelper.update(dynamicObject); } - String mergedString = String.join(";" + "\n", list); - yemEsMAterialin.set("yem_optional", mergedString); } } } - /** - * 更新配件客商额度申请单据 - * - * @param e - */ - public void updatePartsmerchant (EndOperationTransactionArgs e){ - String operationKey = e.getOperationKey(); - DynamicObject[] entities = e.getDataEntities(); - for (DynamicObject entity : entities) { - String fundusetype = entity.getString("yem_fundusetype"); - if (!"A".equals(fundusetype)) { - return; - } - // 公司 - long orgId = entity.getLong("org.id"); - // 客户ID - long customerId = entity.getLong("yem_customer.id"); - // 产品分类 - long productsId = entity.getLong("yem_bd_products.id"); - // 结算币别 - long currency = entity.getLong("yem_currency.id"); - // 配件客商/借记额度 - BigDecimal debitamount = entity.getBigDecimal("yem_debitamount"); - // 预计发货时间 - Date acshipdate = entity.getDate("yem_acshipdate"); - // 业务组织 = 公司 - QFilter qFilters = new QFilter("org.id", QCP.equals, orgId); - // 客户名称 = 客户名称 - qFilters.and(new QFilter("yem_client.id", QCP.equals, customerId)); - // 产品分类 = 产品分类 - qFilters.and(new QFilter("yem_productcategorie", QCP.equals, productsId)); - // 单据状态 = 已审核 - qFilters.and(new QFilter("billstatus", QCP.equals, "C")); - // 合同上结算币别 = 额度申请上 额度币别 - qFilters.and(new QFilter("yem_currency.id", QCP.equals, currency)); - // 日期降序 + /** + * 更新配件客商额度申请单据 + * + * @param e + */ + public void updatePartsmerchant(EndOperationTransactionArgs e) { + String operationKey = e.getOperationKey(); + DynamicObject[] entities = e.getDataEntities(); + for (DynamicObject entity : entities) { + String fundusetype = entity.getString("yem_fundusetype"); + if (!"A".equals(fundusetype)) { + return; + } + // 公司 + long orgId = entity.getLong("org.id"); + // 客户ID + long customerId = entity.getLong("yem_customer.id"); + // 产品分类 + long productsId = entity.getLong("yem_bd_products.id"); + // 结算币别 + long currency = entity.getLong("yem_currency.id"); + // 配件客商/借记额度 + BigDecimal debitamount = entity.getBigDecimal("yem_debitamount"); + // 预计发货时间 + Date acshipdate = entity.getDate("yem_acshipdate"); + // 业务组织 = 公司 + QFilter qFilters = new QFilter("org.id", QCP.equals, orgId); + // 客户名称 = 客户名称 + qFilters.and(new QFilter("yem_client.id", QCP.equals, customerId)); + // 产品分类 = 产品分类 + qFilters.and(new QFilter("yem_productcategorie", QCP.equals, productsId)); + // 单据状态 = 已审核 + qFilters.and(new QFilter("billstatus", QCP.equals, "C")); + // 合同上结算币别 = 额度申请上 额度币别 + qFilters.and(new QFilter("yem_currency.id", QCP.equals, currency)); + // 日期降序 // qFilters.and(new QFilter("yem_bizdate", QCP.equals)); - if ("submit".equals(operationKey)) { - // 根据组织+客户+产品分类,查询 配件客商额度申请单 - DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("yem_im_partsmerchant", qFilters.toArray()); + if ("submit".equals(operationKey)) { + // 根据组织+客户+产品分类,查询 配件客商额度申请单 + DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("yem_im_partsmerchant", qFilters.toArray()); - if (dynamicObject == null) { - continue; - } - ; - // 配件客商额度申请单 - 分录 - DynamicObjectCollection collection = dynamicObject.getDynamicObjectCollection("yem_im_entryentity_m"); - - // 删除旧的数据,保证相同合同数据只有一条 - Iterator iterator = collection.iterator(); - while (iterator.hasNext()) { - DynamicObject next = iterator.next(); - long constractId = next.getLong("yem_cn.id"); - if (constractId == entity.getLong("id")) { - iterator.remove(); - } - } - - DynamicObject addNew = collection.addNew(); - // 合同号 - 基本信息-外销合同号 - addNew.set("yem_cn", entity.get("id")); - // 合同币别 - 财务信息-结算币别 - addNew.set("yem_currencyfield", entity.get("yem_currency")); - // 合同占用金额 - 基本信息-配件客商/借记额度 - addNew.set("yem_sum", debitamount); - // 合同占用金额RMB - 配件客商/借记额度 * 财务信息-汇率 - addNew.set("yem_localsum", debitamount.multiply(entity.getBigDecimal("yem_exrate"))); - // 核销金额 - addNew.set("yem_writtenamt", null); - // 核销金额RMB - addNew.set("yem_locwrittenamt", null); - // 发货时间 - 基本信息-预计发货时间 - addNew.set("yem_deliverytime", acshipdate); - // 最晚还款时间 - 预计发货时间的下个月14号 - Calendar calendar = Calendar.getInstance(); - calendar.setTime(acshipdate); - calendar.add(Calendar.MONTH, 1); - calendar.set(Calendar.DAY_OF_MONTH, 14); - addNew.set("yem_optimaltime", calendar.getTime()); - // 实际还款时间 - addNew.set("yem_pennsylvania", null); - // 备注 - addNew.set("yem_comment", entity.get("yem_contremark")); - SaveServiceHelper.save(new DynamicObject[]{dynamicObject}); - SalesOrderUtils.calcCreditAmount(dynamicObject.getLong("id")); + if (dynamicObject == null) { + continue; } + ; + // 配件客商额度申请单 - 分录 + DynamicObjectCollection collection = dynamicObject.getDynamicObjectCollection("yem_im_entryentity_m"); + + // 删除旧的数据,保证相同合同数据只有一条 + Iterator iterator = collection.iterator(); + while (iterator.hasNext()) { + DynamicObject next = iterator.next(); + long constractId = next.getLong("yem_cn.id"); + if (constractId == entity.getLong("id")) { + iterator.remove(); + } + } + + DynamicObject addNew = collection.addNew(); + // 合同号 - 基本信息-外销合同号 + addNew.set("yem_cn", entity.get("id")); + // 合同币别 - 财务信息-结算币别 + addNew.set("yem_currencyfield", entity.get("yem_currency")); + // 合同占用金额 - 基本信息-配件客商/借记额度 + addNew.set("yem_sum", debitamount); + // 合同占用金额RMB - 配件客商/借记额度 * 财务信息-汇率 + addNew.set("yem_localsum", debitamount.multiply(entity.getBigDecimal("yem_exrate"))); + // 核销金额 + addNew.set("yem_writtenamt", null); + // 核销金额RMB + addNew.set("yem_locwrittenamt", null); + // 发货时间 - 基本信息-预计发货时间 + addNew.set("yem_deliverytime", acshipdate); + // 最晚还款时间 - 预计发货时间的下个月14号 + Calendar calendar = Calendar.getInstance(); + calendar.setTime(acshipdate); + calendar.add(Calendar.MONTH, 1); + calendar.set(Calendar.DAY_OF_MONTH, 14); + addNew.set("yem_optimaltime", calendar.getTime()); + // 实际还款时间 + addNew.set("yem_pennsylvania", null); + // 备注 + addNew.set("yem_comment", entity.get("yem_contremark")); + SaveServiceHelper.save(new DynamicObject[]{dynamicObject}); + SalesOrderUtils.calcCreditAmount(dynamicObject.getLong("id")); } } } +}