新增单据标识 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的用法。
推荐阅读
您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!
请选择打赏金币数 *