package tqq9.lc123.cloud.app.plugin.operate.pm; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.entity.plugin.AbstractOperationServicePlugIn; import kd.bos.entity.plugin.args.BeforeOperationArgs; import kd.bos.logging.Log; import kd.bos.logging.LogFactory; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.sdk.plugin.Plugin; import tqq9.lc123.cloud.app.plugin.utils.AutoFixLinkUtil; import java.util.stream.Collectors; /** * 采购退货单保存操作插件 */ public class PurRefundApplySaveOpPlugin extends AbstractOperationServicePlugIn implements Plugin { private final static Log logger = LogFactory.getLog(PurRefundApplySaveOpPlugin.class); private static String PM_PURREFUNDAPPLYBILL = "pm_purrefundapplybill";//采购退货申请单 private static String PM_PURORDERBILL = "pm_purorderbill";//采购订单 private static String billentry = "billentry";//分录标识 @Override public void beforeExecuteOperationTransaction(BeforeOperationArgs e) { super.beforeExecuteOperationTransaction(e); DynamicObject[] dataEntities1 = e.getDataEntities(); logger.info("PurRefundApplySaveOpPlugin-start"); logger.info("PurRefundApplySaveOpPlugin:单据数量"+dataEntities1.length); if (dataEntities1.length > 0) { DynamicObject dynamicObject = dataEntities1[0]; logger.info("PurRefundApplySaveOpPlugin:单据号"+dynamicObject.getString("billno")); DynamicObjectCollection billentry1 = dynamicObject.getDynamicObjectCollection("billentry"); if (billentry1.size() > 0) { DynamicObject dynamicObject1 = billentry1.get(0); String srcbillnumber = dynamicObject1.getString("srcbillnumber"); DynamicObject pm_purorderbill = BusinessDataServiceHelper.loadSingle(PM_PURORDERBILL, new QFilter[]{new QFilter("billno", QCP.equals, srcbillnumber)}); DynamicObjectCollection dynamicObjects = new DynamicObjectCollection(); dynamicObjects.add(pm_purorderbill); dynamicObjects.stream().collect(Collectors.toList()); AutoFixLinkUtil fixLinkHelp = new AutoFixLinkUtil(); fixLinkHelp.linkSourceRow(dynamicObject, dynamicObjects.stream().collect(Collectors.toList()), PM_PURREFUNDAPPLYBILL, billentry, "srcbillentryid", PM_PURORDERBILL, billentry, "", "billentry_lk"); logger.info("PurRefundApplySaveOpPlugin:修复关联关系成功"); } } logger.info("PurRefundApplySaveOpPlugin-end"); } }