客户在使用CRM系统之前,数据一般都是在OA、ERP、Excel里,没有准确完整的g工商信息,通过纷享的自定义函数,配合计划任务,可以把工商信息,批量更新到客户信息里。具体代码如下:
/*
客户导入时刷新天眼查字段信息
*/
Map fieldMapping=[:] //工商库字段 映射 CRM客户模块字段API
fieldMapping.put("Name","name") //data-name="客户名称"
fieldMapping.put("Email","email") //data-name="邮箱"
fieldMapping.put("WebSiteUrl","url" )//data-name="网址"
fieldMapping.put("PhoneNumber","tel" )//data-name="电话"
fieldMapping.put("CreditCode" ,"uniform_social_credit_code" )//data-name="税号"
fieldMapping.put("Address" ,"address" )//data-name="地区定位.详细地址"
fieldMapping.put("ShortStatus" ,"field_UzsOx__c" )//data-name="企业状态"
fieldMapping.put("CheckDate" ,"field_9O8d6__c" )//data-name="核准日期"
fieldMapping.put("RegistCapi","field_WEm93__c" )//data-name="注册资本"
fieldMapping.put("Scope" ,"field_C6opK__c" )//data-name="经营范围"
fieldMapping.put("BelongOrg","field_C5p2v__c" )//data-name="登记机关"
fieldMapping.put("orgNumber" ,"field_kBumU__c" )//data-name="组织机构代码"
fieldMapping.put("StartDate" ,"field_s47n9__c" )//data-name="营业期限自"
fieldMapping.put("EndDate","field_y602L__c" )//data-name="营业期限至"
fieldMapping.put("Status" ,"field_xO6Vr__c" )//data-name="经营状态"
fieldMapping.put("OperName" ,"field_xE6Vr__c" )//data-name="法人代表"
fieldMapping.put("industryName" ,"field_QogEm__c " )//data-name="行业"
fieldMapping.put("Province","province") //注册省份
fieldMapping.put("city","city") //注册城市
fieldMapping.put("district","district" )//注册区县
List areaFieldList=["Province","city","district"]
List dateFieldList=[]
dateFieldList.add("CheckDate")
dateFieldList.add("StartDate")
dateFieldList.add("EndDate")
dateFieldList.add("CompanyStartDate")
String id=context.data._id as String //客户ID
String name=context.data.name as String //客户名称
log.info("客户名称:"+name)
//name="北京纷扬科技有限责任公司"
//1、获取根据企业名称查询到的工商信息列表
def (boolean error,HttpResult result,String errorMessage)=
Fx.proxy.callAPI("industry.getCompanyByName",null,["KeyWord":name])
//log.info(result)
Map content=result.content as Map
List companyEsObjects = content.companyEsObjects as List
log.info(companyEsObjects.get(0))
Map map=companyEsObjects.get(0) as Map
if( map.Name ==name){
log.info("KeyNo:"+map.KeyNo)
//若一致则表明是可以被精确匹配上的,再查这条数据的详情,用于回填所需的字段
def (boolean return_error,HttpResult return_result,String return_errorMessage) =
Fx.proxy.callAPI("industry.getCompanyById",null,["KeyNo":map.KeyNo])
log.info(return_result)
Map companyInfoArgs=return_result.content as Map //工商库列表
List<Map> companyInfoArgsList=companyInfoArgs.companyInfoArgs as List
Map updateMap=[:]
//log.info(companyInfoArgsList)
companyInfoArgsList.each{
item ->
/* //工商返回格式
{
"Value":"北京纷扬科技有限责任公司",
"Key":"Name",
"Caption":"企业名称"
},*/
log.info("工商库字段名 :"+item.Caption)
log.info("工商库字段API :"+item.Key)
log.info("工商库字段值 :"+item.Value)
//判断映射字段是否存在
if(fieldMapping.containsKey(item.Key)){
//判断字段类型如果为日期,特殊处理
if(dateFieldList.contains(item.Key)){
if((item.Value as String)!="--"){
Date date = Date.of(item.Value as String )
updateMap.put(fieldMapping[item.Key], date)
}
}//判断字段类型如果为地区,特殊处理
else if(areaFieldList.contains(item.Key)){
String Code = Fx.location.findCountryAreaCode(item.Value as String,fieldMapping[item.Key] as String)
updateMap.put(fieldMapping[item.Key], Code)
}else{
updateMap.put(fieldMapping[item.Key], item.Value as String)
}
}
log.info("--------------------------------------")
}
log.info("更新集合:"+updateMap)
def updateResult= Fx.object.update("AccountObj",id,updateMap,false)
log.info("更新客户信息--执行结果:"+updateResult)
}