客户在使用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)
- }