From 12ba81e92ae6a8ed63da2d69a5848b743b9ba3e4 Mon Sep 17 00:00:00 2001 From: ljw Date: Wed, 28 Aug 2024 17:38:58 +0800 Subject: [PATCH] l --- .../DeclareDocxToExportinvoiceConvert.java | 65 ++++++++++++++++++- 1 file changed, 62 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/yem/wm/es/declaredocx/convert/DeclareDocxToExportinvoiceConvert.java b/src/main/java/com/yem/wm/es/declaredocx/convert/DeclareDocxToExportinvoiceConvert.java index 8e017880..89ade1f5 100644 --- a/src/main/java/com/yem/wm/es/declaredocx/convert/DeclareDocxToExportinvoiceConvert.java +++ b/src/main/java/com/yem/wm/es/declaredocx/convert/DeclareDocxToExportinvoiceConvert.java @@ -5,6 +5,7 @@ import com.yem.wm.utils.DynamicObjectUtil; import com.yem.wm.utils.YEM; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.BillEntityType; import kd.bos.entity.ExtendedDataEntity; import kd.bos.entity.botp.plugin.AbstractConvertPlugIn; import kd.bos.entity.botp.plugin.args.AfterConvertEventArgs; @@ -28,9 +29,9 @@ public class DeclareDocxToExportinvoiceConvert extends AbstractConvertPlugIn { public void afterConvert(AfterConvertEventArgs e) { super.afterConvert(e); String targetName = this.getTgtMainType().getName(); + //上游 String name = this.getSrcMainType().getName(); ExtendedDataEntity[] findByEntityKeys = e.getTargetExtDataEntitySet().FindByEntityKey(targetName); - for (ExtendedDataEntity findByEntityKey : findByEntityKeys) { //携带合同中的佣金率 setRate(findByEntityKey); @@ -90,9 +91,67 @@ public class DeclareDocxToExportinvoiceConvert extends AbstractConvertPlugIn { // } calculatePremium(dataEntity); + + } + + ExtendedDataEntity[] findByname = e.getTargetExtDataEntitySet().FindByEntityKey(targetName); + yemCushscode(findByname); + } + + private void yemCushscode(ExtendedDataEntity[] findByname) { + for (ExtendedDataEntity extendedDataEntity : findByname) { + DynamicObject dataEntity = extendedDataEntity.getDataEntity(); + long aLong2 = dataEntity.getLong("yem_sourcebillid"); + String yem_es_declare = DynamicObjectUtil.getSelectfields("yem_es_declaredocx", false); + String yem_es_declare_ec = DynamicObjectUtil.getEntrySelectfields(yem_es_declare, "yem_es_declaredocx", "yem_es_declare_ec", false); + DynamicObject dynamicObject2 = BusinessDataServiceHelper.loadSingle("yem_es_declaredocx", yem_es_declare_ec, new QFilter[]{new QFilter("id", QCP.equals, aLong2)}); + DynamicObjectCollection dynamicObjectCollection = dynamicObject2.getDynamicObjectCollection("yem_es_declare_ec"); + //出口发票 + for (DynamicObject dynamicObject : dynamicObjectCollection) { + DynamicObject yemCushscode = dynamicObject.getDynamicObject("yem_cushscode"); + long aLong1 = dynamicObject.getLong("id"); + if (yemCushscode != null) { + String yemCushscodeString = yemCushscode.getString("number"); + String yemDecmatericalname = dynamicObject.getString("yem_decmatericalname"); + BigDecimal yemCusconsalesprice = dynamicObject.getBigDecimal("yem_cusconsalesprice"); + QFilter qFilter = new QFilter("yem_ca_cddetailedentry.yem_codets.number", QCP.equals, yemCushscodeString); + qFilter.and(new QFilter("yem_ca_cddetailedentry.yem_codetsname", QCP.equals, yemDecmatericalname)); + qFilter.and(new QFilter("yem_ca_cddetailedentry.yem_declprice", QCP.equals, yemCusconsalesprice)); + String selectfield = DynamicObjectUtil.getSelectfields("yem_ca_cusdec", false); + String selectfields = DynamicObjectUtil.getEntrySelectfields(selectfield, "yem_ca_cusdec", "yem_ca_cddetailedentry", false); + //单一窗口报关单 + DynamicObject load = BusinessDataServiceHelper.loadSingle("yem_ca_cusdec", selectfields, new QFilter[]{qFilter}); + if (load != null) { + DynamicObjectCollection dynamicObjectCollection1 = load.getDynamicObjectCollection("yem_ca_cddetailedentry"); + for (DynamicObject object : dynamicObjectCollection1) { + DynamicObject yemCodets = object.getDynamicObject("yem_codets"); + BigDecimal bigDecimal = object.getBigDecimal("yem_declprice"); + String string = object.getString("yem_codetsname"); + DynamicObject yemGunit = object.getDynamicObject("yem_gunit"); + DynamicObject yemunit = object.getDynamicObject("yem_unit1"); + DynamicObject yemUnit = object.getDynamicObject("yem_unit2"); + if (yemCodets != null) { + String yemCodetsString = yemCodets.getString("number"); + if (yemCodetsString.equals(yemCushscodeString) && bigDecimal.compareTo(yemCusconsalesprice) == 0 && yemDecmatericalname.equals(string)) { + DynamicObjectCollection dynamicObjectCollection2 = dataEntity.getDynamicObjectCollection("yem_exportinvoice_c"); + for (DynamicObject dynamicObject1 : dynamicObjectCollection2) { + long aLong = dynamicObject1.getLong("yem_sourcebillentryid"); + if (aLong1 == aLong) { + dynamicObject1.set("yem_customsdeclaration", yemGunit); + dynamicObject1.set("yem_unitmeasurement", yemunit); + dynamicObject1.set("yem_measurement", yemUnit); + } + } + } + } + } + } + } + } } } + /** * 获取出口日期的海运费汇率 保费汇率 * @@ -163,9 +222,9 @@ public class DeclareDocxToExportinvoiceConvert extends AbstractConvertPlugIn { //汇率 BigDecimal yem_seatransfeerate = dataEntity.getBigDecimal("yem_seatransfeerate"); //海运费原币 - BigDecimal multiply1 = yem_count.multiply(yem_localamountsum).setScale(2,BigDecimal.ROUND_HALF_UP); + BigDecimal multiply1 = yem_count.multiply(yem_localamountsum).setScale(2, BigDecimal.ROUND_HALF_UP); //海运费(本位币) - BigDecimal yem_seatransfeebase = yem_seatransfeerate.multiply(multiply1).setScale(2,BigDecimal.ROUND_HALF_UP); + BigDecimal yem_seatransfeebase = yem_seatransfeerate.multiply(multiply1).setScale(2, BigDecimal.ROUND_HALF_UP); //佣金 BigDecimal yem_commissionba = dataEntity.getBigDecimal("yem_commissionba"); BigDecimal ybz = yem_seatransfeebase.add(yem_insurefeebase).add(yem_commissionba);