新增单据时多基础资料如何新增原创
金蝶云社区-华创云联_杨帅杰
华创云联_杨帅杰
0人赞赏了该文章 127次浏览 未经作者许可,禁止转载编辑于2024年05月06日 10:11:56

新增单据标识 EOPG_YFF_DISPATCH,多选基础资料为组织 ,EOPG_YFF_DISPATCH单据种多选基础资料标识为eopg_mulbasedatafield。

1、获取组织单据相关的id集合 List<Long> idList

2、新增单据数据

    public void insertEopgYff(DynamicObject dy, String title, List<Long> idList){

        DynamicObject dyNew= BusinessDataServiceHelper.newDynamicObject(EOPG_YFF_DISPATCH);

        dyNew.set("eopg_textfield",title);

        dyNew.set("billno",dy.get("billno"));

        dyNew.set("eopg_orgfield",dy.get("eopg_orgfield"));

        dyNew.set("billstatus",dy.get("billstatus"));

        dyNew.set("auditdate",dy.get("auditdate"));

        dyNew.set("auditor",dy.get("auditor"));

        dyNew.set("creator",dy.get("creator"));

        dyNew.set("eopg_combofield",dy.get("eopg_combofield"));

        dyNew.set("eopg_textfield1",dy.get("eopg_textfield1"));

        dyNew.set("eopg_textfield2",dy.get("eopg_textfield2"));

        dyNew.set("eopg_textareafield",dy.get("eopg_textareafield"));

        dyNew.set("eopg_basedatafield",dy.get("eopg_basedatafield"));

        //多选基础资料设置赋值

        DynamicObjectCollection orgclassicsColl = dyNew.getDynamicObjectCollection("eopg_mulbasedatafield");

        DynamicObjectCollection orgColl = new DynamicObjectCollection();

        for (Long entityId : idList) {

            DynamicObject bosOrgObj = BusinessDataServiceHelper.loadSingle(entityId, BOS_ORG);

            DynamicObject tempDyObj = new DynamicObject(orgclassicsColl.getDynamicObjectType());

            tempDyObj.set("fbasedataid", bosOrgObj);

            orgColl.add(tempDyObj);

        }

        dyNew.set("eopg_mulbasedatafield",orgColl);

        //赋值完成开始保存

        OperationResult result= SaveServiceHelper.saveOperate(EOPG_YFF_DISPATCH, new DynamicObject[]               {dyNew}, OperateOption.create());

        logger.info("新增结束");

    }

3、若新增数据的多选基础资料是复制另外一个单据【EOPG_WFF_DISPATCH】的多选基础资料【eopg_mulbasedatafield】。如何获取该基础资料:

            DynamicObject dy= BusinessDataServiceHelper.loadSingle(id, EOPG_WFF_DISPATCH);

            String title = (String) dy.get("eopg_textfield");//标题

            DynamicObjectCollection collection = dy.getDynamicObjectCollection("eopg_mulbasedatafield");//组织

            List<Long> idList = new ArrayList<>();//范围所有机构

            if (collection.size() != 0) {

                for (DynamicObject item_client : collection) {

                    DynamicObject client_info = item_client.getDynamicObject("fbasedataid");

                    Long orgId = client_info.getLong("id");

                    String client_name = client_info.getString("name");

                    String client_number = client_info.getString("number");

                    logger.info("范围:"+client_name+orgId);

                    idList.add(orgId);

                }

                //新增已分发公文

                insertEopgYff(dy, title, idList);

            }

-------------------------------------------------------------------------------------------------

可以先了解下dy.getDynamicObjectCollection与dy.getDynamicObject的用法。

图标赞 0
0人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0