提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、实现功能点
1.客户审核通过时供应商完成新增,提交,审核。(批量操作)
二、关键点
1.涉及供应商提交审核权限
(public static final String ISHASRIGHT=“ishasright”
操作可选参数:已经验权,执行操作服务时,不需要再次验权)
代码如下:
OperateOption supplierOption = OperateOption.create();
supplierOption.setVariableValue(OperateOptionConst.ISHASRIGHT,String.valueOf(true));
2.提交,审核时,如供应商校验字段出问题弹出问题会中断操作(实际业务场景需要记录下来,但不影响后续数据的操作)
代码如下(示例):
public static final String IGNOREINTERACTION=“ignoreinteraction”
自动化处理,忽略操作交互信息
2.public static final String MUTEX_IGNORE_VALIDATION=“ignoreValidation”
网控检查: 忽略网络控制的校验器,即不走网络控制校验器
OperateOption supplierOption = OperateOption.create();
supplierOption.setVariableValue(OperateOptionConst.IGNOREINTERACTION,String.valueOf(true));
supplierOption.setVariableValue(OperateOptionConst.MUTEX_IGNORE_VALIDATION,String.valueOf(true));
因为涉及多次select数据库,所以在做操作之前先一次性查询出数据,转为map再次运用
List<Object> customerIds = new ArrayList<Object>();
List<Object> supplierNumbers = new ArrayList<Object>();
Map<String, DynamicObject> customerMapByNumber = new HashMap<String, DynamicObject>();
for (DynamicObject bill : e.getDataEntities()) {
customerIds.add(bill.getPkValue());
supplierNumbers.add(bill.getString("number"));
customerMapByNumber.put(bill.getString("number"),bill);
}
// 查询所有的客户
DynamicObject[] customers = BusinessDataServiceHelper.load(customerIds.toArray(), MetadataServiceHelper.getDataEntityType("bd_customer"));
// 客户转成map
Map<Object, DynamicObject> customerMap = new HashMap<Object, DynamicObject>();
for (DynamicObject customer : customers) {
customerMap.put(customer.getPkValue(), customer);
}
//查询所有的客户关联分类
DynamicObject[] customerDetailArr = BusinessDataServiceHelper.load("bd_customergroupdetail", "id,standard,group,customer" , new QFilter[]{new QFilter("customer.id", QCP.in, customerIds.toArray())});
// 客户客户分类标准、分类转成map
Map<String, DynamicObject> customerDetailMap = new HashMap<String, DynamicObject>();
for(DynamicObject customerDetailObj: customerDetailArr){
customerDetailMap.put(customerDetailObj.getDynamicObject("customer").getPkValue().toString(), customerDetailObj.getDynamicObject("group"));
}
// 查询客户分类
DynamicObject[] customerGroupsArr = BusinessDataServiceHelper.load("bd_customergroup", "id,ki40_suppgroup", null);//客户分类单据体
// 客户分类转成map
Map<String, DynamicObject> customerGroupMap = new HashMap<String, DynamicObject>();
for(DynamicObject customerGroupsObj: customerGroupsArr){
customerGroupMap.put(customerGroupsObj.getPkValue().toString(), customerGroupsObj.getDynamicObject("ki40_suppgroup"));
}
//查询所有供应商标准
DynamicObject[] supstandGroupArr = BusinessDataServiceHelper.load("bd_suppliergroup", "id,standard",null);
Map<String, DynamicObject> supplierGroupMap = new HashMap<String, DynamicObject>();
for(DynamicObject supstandGroupObj: supstandGroupArr){
supplierGroupMap.put(supstandGroupObj.getPkValue().toString(), supstandGroupObj.getDynamicObject("standard"));
}
//查询所有客户银行单据体
DynamicObject[] customerbankEntiry = BusinessDataServiceHelper.load( "bd_customer", "id,entry_bank,bankaccount,accountname,iban,bank,currency,isdefault_bank",new QFilter("id", QCP.in, customerIds.toArray()).toArray());
//客户-银行转map
Map<Object, DynamicObjectCollection> customerBankMap = new HashMap<Object, DynamicObjectCollection>();
for(DynamicObject bankObj: customerbankEntiry){
customerBankMap.put(bankObj.getString("id"),bankObj.getDynamicObjectCollection("entry_bank"));
}
// 查询对应供应商
DynamicObject[] suppliers = BusinessDataServiceHelper.load("bd_supplier", "id,number", new QFilter("number", QCP.in, supplierNumbers.toArray()).toArray());
List<Object> idsList = new ArrayList<Object>();
Map<Long,String> supNumByIdMap = new HashMap<Long,String>();
for (DynamicObject pkArray : suppliers) {
idsList.add(pkArray.getPkValue());
supNumByIdMap.put((Long) pkArray.getPkValue(),pkArray.getString("number"));
}
// 查询所有的供应商字段
DynamicObject[] suppliersAll = BusinessDataServiceHelper.load(idsList.toArray(), MetadataServiceHelper.getDataEntityType("bd_supplier"));
// 供应商转map
Map<Object, DynamicObject> supplierMap = new HashMap<Object, DynamicObject>();
for (DynamicObject supplier : suppliersAll) {
supplierMap.put(supplier.getString("number"), supplier);
}
总结
提示:这里对文章进行总结:
例如:以上是我在做客商同步的时候特别需要注意的小tips第一次写的时候老是碰到各种小问题,改了很多版本心态逐渐崩溃