工作中,需要完成以下的工作场景:
【场景】单据转换不支持多选基础资料下推;
【案例】通过单据转换插件,实现应收单单据头的多选基础资料下推到付款申请单的单据头的多选基础资料
原文链接:https://vip.kingdee.com/article/324304152484608000?productLineId=1
需要将原代码转换为python代码,首先咨询了CSDN的AI,给我的解答是:
可以使用java2python库将Java代码转换为Python代码。以下是使用java2python库的步骤:
安装java2python库:可以使用pip命令进行安装,命令如下:
pip install java2python
将Java代码保存到文件中,例如保存为example.java。使用java2python库将Java代码转换为Python代码,命令如下:
java2python example.java > example.py
这将把Java代码转换为Python代码并将其保存到example.py文件中。可以使用Python解释器运行生成的Python代码,例如:
python example.py
这将运行生成的Python代码并输出结果
实测pip install java2python 这一步报错,一直安装不上,找不到java2python,可能我的源太少了。
后边再测试一下百度AI,看是如何解答的。
以下是测试过程:
我:将以下代码转换为python:
百度AI:很遗憾,您没有提供任何代码片段,因此我无法为您转换任何代码。如果您能提供一些具体的代码,我将非常乐意帮助您进行转换。
我:public override void AfterConvert(AfterConvertEventArgs e)
{
base.AfterConvert(e);
if (e.Result == null)
return;
/*
* <0>仅支持单据头到单据头,其他自行处理
*/
string tgtFieldKey = "F_BHR_MulBase";
string srcFieleKey = "F_BHR_MulBase";
MulBaseDataField tgtBaseDataField = e.TargetBusinessInfo.GetField(tgtFieldKey) as MulBaseDataField;
MulBaseDataField srcBaseDataField = e.SourceBusinessInfo.GetField(srcFieleKey) as MulBaseDataField;
if (tgtBaseDataField == null || srcBaseDataField == null)
return;
if (tgtBaseDataField.Entity.ElementType != Kingdee.BOS.Core.Metadata.ElementMetadata.ElementType.ELEMENTTYPE_BILLHEAD)
return;
if (srcBaseDataField.Entity.ElementType != Kingdee.BOS.Core.Metadata.ElementMetadata.ElementType.ELEMENTTYPE_BILLHEAD)
return;
/*
* <1>收集源单内码批量获取
*/
Entity tgtEntity = tgtBaseDataField.Entity;
var targetEntityObjs = e.Result.FindByEntityKey(tgtEntity.Key);
HashSet<object> srcPkIds = new HashSet<object>();
for (int i = 0, sz = targetEntityObjs.Length; i < sz; ++i)
{
var targetEntityRow = targetEntityObjs[i];
if (targetEntityRow.DataEntity == null)
continue;
//获取当前目标行的源单数据集合