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 b11503ae..c2feca41 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.dataentity.entity.MulBasedataDynamicObjectCollection; import kd.bos.entity.BillEntityType; import kd.bos.entity.ExtendedDataEntity; import kd.bos.entity.botp.plugin.AbstractConvertPlugIn; @@ -32,14 +33,34 @@ public class DeclareDocxToExportinvoiceConvert extends AbstractConvertPlugIn { BillEntityType srcMainType = this.getSrcMainType(); //上游 String name = this.getSrcMainType().getName(); - ExtendedDataEntity[] findByEntityKeys = e.getTargetExtDataEntitySet().FindByEntityKey(targetName); for (ExtendedDataEntity findByEntityKey : findByEntityKeys) { - DynamicObject findBynames = BusinessDataServiceHelper.loadSingle(findByEntityKey.getValue("id"), name); - //携带合同中的佣金率 + List shippingDetails = (List) findByEntityKey.getValue("ConvertSource"); + DynamicObject dataEntity = findByEntityKey.getDataEntity();//单据主实体 + + for (DynamicObject shippingDetail : shippingDetails) { + + Long value = shippingDetail.getLong("id"); + DynamicObject findBynames = BusinessDataServiceHelper.loadSingle(value, name); + MulBasedataDynamicObjectCollection yemDestport = (MulBasedataDynamicObjectCollection ) findByEntityKey.getValue("yem_shipports"); + DynamicObjectCollection fourBookColls = new DynamicObjectCollection(); + DynamicObject tempDyObjs = new DynamicObject(yemDestport.getDynamicObjectType()); + tempDyObjs.set("fbasedataid",findBynames.getDynamicObject("yem_despportcodebase")); + fourBookColls.add(tempDyObjs); + dataEntity.set("yem_shipports", fourBookColls); + + + MulBasedataDynamicObjectCollection yemDestports = (MulBasedataDynamicObjectCollection ) findByEntityKey.getValue("yem_destports"); + DynamicObjectCollection fourBookColl = new DynamicObjectCollection(); + DynamicObject tempDyObj = new DynamicObject(yemDestports.getDynamicObjectType()); + tempDyObj.set("fbasedataid",findBynames.getDynamicObject("yem_distinateportbase")); + fourBookColl.add(tempDyObj); + dataEntity.set("yem_destports", fourBookColl); + + + }//携带合同中的佣金率 setRate(findByEntityKey); - DynamicObject dataEntity = findByEntityKey.getDataEntity();//单据主实体 bringLatestExRate(dataEntity); DynamicObjectCollection yemExportinvoiceC = dataEntity.getDynamicObjectCollection("yem_exportinvoice_c");//报关商品 DynamicObjectCollection yemExportinvoiceCd = dataEntity.getDynamicObjectCollection("yem_exportinvoice_cd");//报关商品对照表 @@ -101,24 +122,7 @@ public class DeclareDocxToExportinvoiceConvert extends AbstractConvertPlugIn { // } calculatePremium(dataEntity); - List userList = new ArrayList<>(); - DynamicObjectCollection userColl = findBynames.getDynamicObjectCollection("yem_shipports"); - userList.add((DynamicObject) findByEntityKey.getValue("yem_despportcodebase")); - for (DynamicObject users : userList) { - DynamicObject newUser = new DynamicObject(userColl.getDynamicObjectType()); - newUser.set("fbasedataId", users); - userColl.add(newUser); - } - findBynames.set("yem_shipports", userColl); - List userLists = new ArrayList<>(); - DynamicObjectCollection userColls = findBynames.getDynamicObjectCollection("yem_destports"); - userLists.add((DynamicObject) findByEntityKey.getValue("yem_distinateportbase")); - for (DynamicObject users : userLists) { - DynamicObject newUser = new DynamicObject(userColls.getDynamicObjectType()); - newUser.set("fbasedataId", users); - userColls.add(newUser); - } - findBynames.set("yem_destports", userColls); + } ExtendedDataEntity[] findByname = e.getTargetExtDataEntitySet().FindByEntityKey(targetName);