package tqq9.lc123.cloud.app.plugin.operate.im; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; 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.logging.Log; import kd.bos.logging.LogFactory; import kd.sdk.plugin.Plugin; import java.math.BigDecimal; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 采购订单下推收获通知单转换插件 * 退货补货数量修改 */ public class PurOrderPushReceiptNoticePlugin extends AbstractConvertPlugIn implements Plugin { private final static Log logger = LogFactory.getLog(PurOrderPushReceiptNoticePlugin.class); private static String RECEIPTNOTICE = "pm_receiptnotice"; @Override public void afterConvert(AfterConvertEventArgs e) { super.afterConvert(e); ExtendedDataEntitySet targetExtDataEntitySet = e.getTargetExtDataEntitySet(); ExtendedDataEntity[] extendedDataEntities = targetExtDataEntitySet.FindByEntityKey(RECEIPTNOTICE); Map variables = this.getOption().getVariables(); for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) { //收货通知单 DynamicObject dataEntity = extendedDataEntity.getDataEntity(); DynamicObjectCollection dynamicObjectCollection = dataEntity.getDynamicObjectCollection("billentry"); for (DynamicObject dynamicObject : dynamicObjectCollection) { String mainbillentryid = dynamicObject.getString("mainbillentryid"); //核心单据号一致,修改补货数量 if (variables.containsKey(mainbillentryid)) { String jsonString = variables.get(mainbillentryid); 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) { for (int i = 0; i < jsonList.size(); i++) { HashMap jsonMap = jsonList.get(i); BigDecimal entry_qty = (BigDecimal) jsonMap.get("qty");//类型 dynamicObject.set("qty", entry_qty);//数量 dynamicObject.set("baseqty", entry_qty);//基本数量 } } } } } } }