diff --git a/lc123/cloud/app/plugin/operate/im/PurInConvertPlugin.java b/lc123/cloud/app/plugin/operate/im/PurInConvertPlugin.java index 3650b21..301aa8c 100644 --- a/lc123/cloud/app/plugin/operate/im/PurInConvertPlugin.java +++ b/lc123/cloud/app/plugin/operate/im/PurInConvertPlugin.java @@ -11,7 +11,6 @@ import kd.bos.entity.ExtendedDataEntity; import kd.bos.entity.ExtendedDataEntitySet; import kd.bos.entity.botp.plugin.AbstractConvertPlugIn; import kd.bos.entity.botp.plugin.args.AfterConvertEventArgs; -import kd.bos.entity.botp.runtime.ConvertConst; import kd.bos.logging.Log; import kd.bos.logging.LogFactory; import kd.bos.orm.query.QCP; @@ -59,168 +58,101 @@ public class PurInConvertPlugin extends AbstractConvertPlugIn implements Plugin super.afterConvert(e); ExtendedDataEntitySet targetExtDataEntitySet = e.getTargetExtDataEntitySet(); ExtendedDataEntity[] extendedDataEntities = targetExtDataEntitySet.FindByEntityKey(IM_PURINBILL); - - ExtendedDataEntity[] entities = targetExtDataEntitySet.FindByEntityKey(getTgtMainType().getName()); - List srcRows = (List) entities[0].getValue(ConvertConst.ConvExtDataKey_SourceRows); - DynamicObject srcRow = srcRows.get(0); - Object sourceBillPK = e.getFldProperties().get("id").getValue(srcRow); - DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(sourceBillPK, "pm_purrefundapplybill");//采购退货申请单 - boolean tqq9_isydth = dynamicObject.getBoolean("tqq9_isydth");//是否异地退货 - Map variables = this.getOption().getVariables(); - if (!tqq9_isydth) { - for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) { - //采购入库单 - DynamicObject dataEntity = extendedDataEntity.getDataEntity(); - DynamicObjectCollection dynamicObjectCollection = dataEntity.getDynamicObjectCollection("billentry"); - ListIterator iterator = dynamicObjectCollection.listIterator(); - while (iterator.hasNext()) { - DynamicObject entry = iterator.next(); - String srcbillentryid = entry.getString("srcbillentryid"); - //核心单据号一致,写入数据 - if (variables.containsKey(srcbillentryid)) { - String jsonString = variables.get(srcbillentryid); - ObjectMapper objectMapper = new ObjectMapper(); - List> jsonList = null; - try { - jsonList = objectMapper.readValue(jsonString, objectMapper.getTypeFactory().constructCollectionType(List.class, HashMap.class)); - } catch (JsonProcessingException ex) { - throw new RuntimeException(ex); - } - if (jsonList != null) { - dataEntity.set("tqq9_isrebulidlink", true); - for (int i = 0; i < jsonList.size(); i++) { - HashMap jsonMap = jsonList.get(i); - String VoucherType = jsonMap.get("VoucherType").toString();//类型 - Date manufactureDate = null; - Date expirationDate = null; - if (jsonMap.get("manufactureDate") instanceof Long) { - manufactureDate = new Date((Long) jsonMap.get("manufactureDate")); //生产日期 - } - if (jsonMap.get("expirationDate") instanceof Long) { - expirationDate = new Date((Long) jsonMap.get("expirationDate")); //生产日期 - } - BigDecimal quantity = BigDecimal.ZERO; - if (StringUtils.equals("pm_receiptnotice", VoucherType)) { - quantity = new BigDecimal(jsonMap.get("quantity").toString());//入库数量 - } else { - quantity = new BigDecimal(jsonMap.get("quantity").toString()).negate();//入库数量 - } - String batch = jsonMap.get("batch") != null ? jsonMap.get("batch").toString() : null; // 批次 - String toZone = jsonMap.get("toZone") != null ? jsonMap.get("toZone").toString() : null; // 库区 - DynamicObject bd_warehouse = null; - if (toZone != null) { - String wareNumber = wareTypeMap.get(toZone); - bd_warehouse = BusinessDataServiceHelper.loadSingle("bd_warehouse", new QFilter[]{new QFilter("number", QCP.equals, wareNumber)}); - } - String wmsDetailId = jsonMap.get("wmsDetailId") != null ? jsonMap.get("wmsDetailId").toString() : null; // WMS分录id - String uniqueCode = jsonMap.get("uniqueCode") != null ? jsonMap.get("uniqueCode").toString() : null; // 商品编码 - String registrationCode = jsonMap.get("registrationCode") != null ? jsonMap.get("registrationCode").toString() : null; // 注册证号 - String licenceCode = jsonMap.get("licenceCode") != null ? jsonMap.get("licenceCode").toString() : null; // 生产许可证号 - String producer = jsonMap.get("producer") != null ? jsonMap.get("producer").toString() : null; // 生产厂商 - DynamicObject tqq9_goodspackage = BusinessDataServiceHelper.loadSingle("tqq9_goodspackage", new QFilter[]{new QFilter("tqq9_mater.number", QCP.equals, uniqueCode).and("tqq9_isauto", QCP.equals, true)}); - DynamicObject tqq9_registration = BusinessDataServiceHelper.loadSingle("tqq9_registration", new QFilter[]{new QFilter("number", QCP.equals, registrationCode)}); - DynamicObject tqq9_proxyandfactory = BusinessDataServiceHelper.loadSingle("tqq9_proxyandfactory", new QFilter[]{new QFilter("number", QCP.equals, producer)}); - // 处理第一次逻辑 - if (i == 0) { - // 第一次直接赋值 - entry.set("qty", quantity); - entry.set("baseqty", quantity); - entry.set("tqq9_goods", tqq9_goodspackage); - entry.set("producedate", manufactureDate); - entry.set("expirydate", expirationDate); - entry.set("lotnumber", batch); - if (null != bd_warehouse) { - entry.set("warehouse", bd_warehouse); - } - entry.set("tqq9_wmsdetailid", wmsDetailId); - entry.set("tqq9_licenseno", licenceCode); - entry.set("tqq9_registration", tqq9_registration); - entry.set("tqq9_proxyandfactory", tqq9_proxyandfactory); - DynamicObjectCollection billentry_lk = entry.getDynamicObjectCollection("billentry_lk"); - billentry_lk.clear(); - } else { - DataEntityPropertyCollection properties = entry.getDataEntityType().getProperties(); - // 后续循环复制entry并赋值 - DynamicObject newEntry = new DynamicObject(dynamicObjectCollection.getDynamicObjectType()); - for (IDataEntityProperty property : properties) { - newEntry.set(property.getName(), entry.get(property.getName())); - } - newEntry.set("qty", quantity); - newEntry.set("baseqty", quantity); - newEntry.set("tqq9_goods", tqq9_goodspackage); - newEntry.set("producedate", manufactureDate); - newEntry.set("expirydate", expirationDate); - newEntry.set("lotnumber", batch); - if (null != bd_warehouse) { - newEntry.set("warehouse", bd_warehouse); - } - newEntry.set("tqq9_wmsdetailid", wmsDetailId); - newEntry.set("tqq9_licenseno", licenceCode); - newEntry.set("tqq9_registration", tqq9_registration); - newEntry.set("tqq9_proxyandfactory", tqq9_proxyandfactory); - DynamicObjectCollection billentry_lk = newEntry.getDynamicObjectCollection("billentry_lk"); - billentry_lk.clear(); - // 处理完新entry后的逻辑(比如加入集合或其他操作) - iterator.add(newEntry); - } - } - } + for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) { + //采购入库单 + DynamicObject dataEntity = extendedDataEntity.getDataEntity(); + DynamicObjectCollection dynamicObjectCollection = dataEntity.getDynamicObjectCollection("billentry"); + ListIterator iterator = dynamicObjectCollection.listIterator(); + while (iterator.hasNext()) { + DynamicObject entry = iterator.next(); + String srcbillentryid = entry.getString("srcbillentryid"); + //核心单据号一致,写入数据 + if (variables.containsKey(srcbillentryid)) { + String jsonString = variables.get(srcbillentryid); + ObjectMapper objectMapper = new ObjectMapper(); + List> jsonList = null; + try { + jsonList = objectMapper.readValue(jsonString, objectMapper.getTypeFactory().constructCollectionType(List.class, HashMap.class)); + } catch (JsonProcessingException ex) { + throw new RuntimeException(ex); } - } - } - } else { - for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) { - //采购入库单 - DynamicObject dataEntity = extendedDataEntity.getDataEntity(); - DynamicObjectCollection dynamicObjectCollection = dataEntity.getDynamicObjectCollection("billentry"); - ListIterator iterator = dynamicObjectCollection.listIterator(); - while (iterator.hasNext()) { - DynamicObject entry = iterator.next(); - String srcbillentryid = entry.getString("srcbillentryid"); - //核心单据号一致,写入数据 - if (variables.containsKey(srcbillentryid)) { - String jsonString = variables.get(srcbillentryid); - ObjectMapper objectMapper = new ObjectMapper(); - List> jsonList = null; - try { - jsonList = objectMapper.readValue(jsonString, objectMapper.getTypeFactory().constructCollectionType(List.class, HashMap.class)); - } catch (JsonProcessingException ex) { - throw new RuntimeException(ex); - } - if (jsonList != null) { - dataEntity.set("tqq9_isrebulidlink", true); - for (int i = 0; i < jsonList.size(); i++) { - HashMap jsonMap = jsonList.get(i); - Object materialId = jsonMap.get("materialId"); - Object qty = jsonMap.get("qty"); - Object returnEntryId = jsonMap.get("returnEntryId"); -// BigDecimal price = entry.getBigDecimal("price");//不含税单价 -// BigDecimal priceandtax = entry.getBigDecimal("priceandtax");//含税单价 - // 处理第一次逻辑 - if (i == 0) { - // 第一次直接赋值 - entry.set("qty", qty); -// BigDecimal amount = - //amount 金额 - //taxamount 税额 - //amountandtax 折扣后价税合计 - DynamicObjectCollection billentry_lk = entry.getDynamicObjectCollection("billentry_lk"); - billentry_lk.clear(); - } else { - DataEntityPropertyCollection properties = entry.getDataEntityType().getProperties(); - // 后续循环复制entry并赋值 - DynamicObject newEntry = new DynamicObject(dynamicObjectCollection.getDynamicObjectType()); - for (IDataEntityProperty property : properties) { - newEntry.set(property.getName(), entry.get(property.getName())); - } - newEntry.set("qty", qty); - - DynamicObjectCollection billentry_lk = newEntry.getDynamicObjectCollection("billentry_lk"); - billentry_lk.clear(); - // 处理完新entry后的逻辑(比如加入集合或其他操作) - iterator.add(newEntry); + if (jsonList != null) { + dataEntity.set("tqq9_isrebulidlink", true); + for (int i = 0; i < jsonList.size(); i++) { + HashMap jsonMap = jsonList.get(i); + String VoucherType = jsonMap.get("VoucherType").toString();//类型 + Date manufactureDate = null; + Date expirationDate = null; + if (jsonMap.get("manufactureDate") instanceof Long) { + manufactureDate = new Date((Long) jsonMap.get("manufactureDate")); //生产日期 + } + if (jsonMap.get("expirationDate") instanceof Long) { + expirationDate = new Date((Long) jsonMap.get("expirationDate")); //生产日期 + } + BigDecimal quantity = BigDecimal.ZERO; + if (StringUtils.equals("pm_receiptnotice", VoucherType)) { + quantity = new BigDecimal(jsonMap.get("quantity").toString());//入库数量 + } else { + quantity = new BigDecimal(jsonMap.get("quantity").toString()).negate();//入库数量 + } + String batch = jsonMap.get("batch") != null ? jsonMap.get("batch").toString() : null; // 批次 + String toZone = jsonMap.get("toZone") != null ? jsonMap.get("toZone").toString() : null; // 库区 + DynamicObject bd_warehouse = null; + if (toZone != null) { + String wareNumber = wareTypeMap.get(toZone); + bd_warehouse = BusinessDataServiceHelper.loadSingle("bd_warehouse", new QFilter[]{new QFilter("number", QCP.equals, wareNumber)}); + } + String wmsDetailId = jsonMap.get("wmsDetailId") != null ? jsonMap.get("wmsDetailId").toString() : null; // WMS分录id + String uniqueCode = jsonMap.get("uniqueCode") != null ? jsonMap.get("uniqueCode").toString() : null; // 商品编码 + String registrationCode = jsonMap.get("registrationCode") != null ? jsonMap.get("registrationCode").toString() : null; // 注册证号 + String licenceCode = jsonMap.get("licenceCode") != null ? jsonMap.get("licenceCode").toString() : null; // 生产许可证号 + String producer = jsonMap.get("producer") != null ? jsonMap.get("producer").toString() : null; // 生产厂商 + DynamicObject tqq9_goodspackage = BusinessDataServiceHelper.loadSingle("tqq9_goodspackage", new QFilter[]{new QFilter("tqq9_mater.number", QCP.equals, uniqueCode).and("tqq9_isauto", QCP.equals, true)}); + DynamicObject tqq9_registration = BusinessDataServiceHelper.loadSingle("tqq9_registration", new QFilter[]{new QFilter("number", QCP.equals, registrationCode)}); + DynamicObject tqq9_proxyandfactory = BusinessDataServiceHelper.loadSingle("tqq9_proxyandfactory", new QFilter[]{new QFilter("number", QCP.equals, producer)}); + // 处理第一次逻辑 + if (i == 0) { + // 第一次直接赋值 + entry.set("qty", quantity); + entry.set("baseqty", quantity); + entry.set("tqq9_goods", tqq9_goodspackage); + entry.set("producedate", manufactureDate); + entry.set("expirydate", expirationDate); + entry.set("lotnumber", batch); + if (null != bd_warehouse) { + entry.set("warehouse", bd_warehouse); } + entry.set("tqq9_wmsdetailid", wmsDetailId); + entry.set("tqq9_licenseno", licenceCode); + entry.set("tqq9_registration", tqq9_registration); + entry.set("tqq9_proxyandfactory", tqq9_proxyandfactory); + DynamicObjectCollection billentry_lk = entry.getDynamicObjectCollection("billentry_lk"); + billentry_lk.clear(); + } else { + DataEntityPropertyCollection properties = entry.getDataEntityType().getProperties(); + // 后续循环复制entry并赋值 + DynamicObject newEntry = new DynamicObject(dynamicObjectCollection.getDynamicObjectType()); + for (IDataEntityProperty property : properties) { + newEntry.set(property.getName(), entry.get(property.getName())); + } + newEntry.set("qty", quantity); + newEntry.set("baseqty", quantity); + newEntry.set("tqq9_goods", tqq9_goodspackage); + newEntry.set("producedate", manufactureDate); + newEntry.set("expirydate", expirationDate); + newEntry.set("lotnumber", batch); + if (null != bd_warehouse) { + newEntry.set("warehouse", bd_warehouse); + } + newEntry.set("tqq9_wmsdetailid", wmsDetailId); + newEntry.set("tqq9_licenseno", licenceCode); + newEntry.set("tqq9_registration", tqq9_registration); + newEntry.set("tqq9_proxyandfactory", tqq9_proxyandfactory); + DynamicObjectCollection billentry_lk = newEntry.getDynamicObjectCollection("billentry_lk"); + billentry_lk.clear(); + // 处理完新entry后的逻辑(比如加入集合或其他操作) + iterator.add(newEntry); } } }