ZBLOG

package kd.qyrv.cosmic.formplugin; import kd.bos.dataentity.OperateOption; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.entity.datamodel.ListSelectedRow; import kd.bos.entit...

根据你提供的代码,我检测到以下几个问题:

  1. 代码中存在导入包名错误,请确认引入的包是否正确。

import kd.bos.servicehelper.BusinessDataServiceHelper; 修改为 import kd.bos.servicehelper.data.BusinessDataServiceHelper;

  1. ExchangeAttHelp 类中的 attToAttachmentFile 方法在调用 SaveServiceHelper.save 方法时缺少操作选项参数。

SaveServiceHelper.save(new DynamicObject[] {attObj}); 修改为 SaveServiceHelper.saveOperate("save", "bd_attachment", new DynamicObject[] {attObj}, OperateOption.create());

  1. 代码中的 UserServiceHelper.getCurrentUser() 方法可能不存在或需要修改为合适的方法。请确保该方法可用并返回当前用户ID。

可以参考修正后的代码如下所示:

package kd.qyrv.cosmic.formplugin;

import kd.bos.dataentity.OperateOption;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.datamodel.ListSelectedRow;
import kd.bos.entity.datamodel.ListSelectedRowCollection;
import kd.bos.entity.operate.result.OperationResult;
import kd.bos.form.control.events.ItemClickEvent;
import kd.bos.list.BillList;
import kd.bos.servicehelper.AttachmentServiceHelper;
import kd.bos.servicehelper.data.BusinessDataServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;

public class YourFormPluginClass extends YourBaseClass {

    @Override
    public void itemClick(ItemClickEvent evt) {
        if (evt.getItemKey().equals("kded_synchronize")) {
            BillList billlist = this.getView().getControl("billlistap");
            ListSelectedRowCollection selectedRows = billlist.getSelectedRows();
            String billFormId = billlist.getBillFormId();
            for (ListSelectedRow listSelectedRow : selectedRows) {
                Object primaryKeyValue = listSelectedRow.getPrimaryKeyValue();
                //获取业务单据A的表单数据
                DynamicObject Aobj = BusinessDataServiceHelper.loadSingle(primaryKeyValue, billFormId, "kded_attachmentfieldclz,kded_goods");
                //物品数据
                DynamicObject goodObj = Aobj.getDynamicObject("kded_goods");
                // 获取物品附件面板的附件数据
                List<Map<String, Object>> attachments = AttachmentServiceHelper.getAttachments(
                        goodObj.getDataEntityType().getName(), goodObj.getPkValue(), "kded_attachmentpanelap");

                //获取业务单据A的附件字段数据集
                DynamicObjectCollection attCol = Aobj.getDynamicObjectCollection("kded_attachmentfieldclz");
                
                // 附件面板转换为附件文件对象,并保存到数据库中
                attToAttachmentFile(attachments, attCol);

                OperationResult result = SaveServiceHelper.saveOperate("save", billFormId, new DynamicObject[] {Aobj}, OperateOption.create());
                
                if (result.isSuccess()) {
                    this.getView().showSuccessNotification("同步成功!");
                }
            }
        }
        super.itemClick(evt);
    }

    private void attToAttachmentFile(List<Map<String, Object>> attachments, DynamicObjectCollection attCol) {
        for (Map<String, Object> map : attachments) {
            //创建一条基础资料数据-附件字段
            DynamicObject attObj = BusinessDataServiceHelper.newDynamicObject("bd_attachment");
            attObj.set("name", map.get("name"));
            attObj.set("size", map.get("size"));
            attObj.set("uid", "rc-upload-" + UUID.randomUUID().toString());
            attObj.set("url", map.get("url"));
            attObj.set("type", map.get("type"));
            //tempfile=1表示持久化附件对象
            attObj.set("tempfile", 1);
            
            //设置其他字段值
            //...
            
            SaveServiceHelper.saveOperate("save", "bd_attachment", new DynamicObject[] {attObj}, OperateOption.create());
            
            attCol.addNew().set("fbasedataid", attObj);
        }
    }
}

请注意,这只是对代码中明显错误的修正建议,仍然需要您根据实际需求和环境进行进一步调整。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=3118

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?