解忧对接详情
企业后台登录及配置参数登录:
企业配置参数登录页面:http://ef.fstorch.com/company/
数据对接页面:http://ef.fstorch.com/company/guanli_SetingSys.html
解忧系统状态列表:
01新建单据 02企业接单 03师傅接单 04已经阅读 05抵达现场 06已预报价 07开始处理 08遗留等待
09处理完成 10正在付款 11完成付款 12用户评价 13企业回访 14平台回访 99用户取消
正火系统上传数据到解忧
本地数据列列名,用|分割:
LocalColumns =serviceid|service_name|yhmc|lxdh|yhdz|brandid|gzxx|ktpp|pgdh|ppnrmc|servicename|ktppmc|ktxh|ppnr|self|fwlx|yyrq1|pgwd
解忧平台列列名,用|分割:
RemoteColumns = serviceID|service_Name|contact_name|contact_phone|address|brandID|service_demand|
brand_contentid|record_number|brand_content_name|servicename|brand_name|equipmentname|
equipmentid|record_isself|service_type|reservationdate|record_pgwd
如果需要上传工厂单号(转移单号和信息来源),需要在
LocalColumns增加 zydh|xxly
RemoteColumns增加 record_number2|record_source
同时在localsql参数中增加zydh,xxly字段。
如果需要上传预约时间、派工网点,需要在
LocalColumns增加 yyrq1|pgwd
RemoteColumns增加reservationdate|record_pgwd
同时在localsql参数中增加yyrq1|pgwd字段。
解忧遗留获取数据到正火
解忧返回数据及对应返回数据含义:
wait_type:遗留类型 wait_typename:遗留类型名称 wait_reason:遗留说明 info_num:解忧单据号 subid:遗留序号 record_table:正火系统表名(da_wxjl/da_azjl) record_number:正火系统单号 expect_deal_date:解忧预计完工日期
下载类参数配置实例:
localupdatewaitsql=update da_wxjl set wwyy1=(case @wait_type when ‘01‘ then ‘待件‘ when ‘02‘ then ‘用户改约‘ when ‘03‘ then ‘用户不在家‘ when ‘04‘ then ‘其他‘ when ‘05‘ then ‘无法联系‘ end),yyrq1=(case @expect_deal_date when ‘0000-00-00 00:00:00‘ then null else @expect_deal_date end ),wxzt=‘G‘,wwyy2=@wait_reason where pgdh=@record_number
localupdatewaitparm=wait_type|expect_deal_date|wait_reason|record_number
G为遗留状态
解忧回传下载消息说明
解忧返回数据及返回数据含义:
service_type:服务大类 record_table_status:正火系统表名状态 record_table:正火表名 id:解忧单据号 contact_name:联系人员姓名 equipmentname:规格型号 contact_phone:联系电话 record_number:正火单据号 payment:收费金额 complete_info1:完工信息1 complete_info2:完工信息2 complete_info3:完工信息3 a.status:解忧状态 to_come_time:抵达时间 service_measure:服务措施 service_result:服务结果 engineerid:工程师ID engineer_name:工程师名称 send_work_time:派工时间 end_time:完工时间 send_work_operator:派工人员 read_time:阅读时 start_time:开始处理时间
上传正火工程师提成信息到解忧2017-6-1
LocalUpdateMoney_Engineer=select a.*,b.jieyoucode,'da_wxjl' record_table from da_wxjl_wxry a,rsgl_jbda b where a.wxry=b.ygbh and a.hdje<>0 and isnull(b.jieyoucode,'')>'' and isnull(a.jieyoustatus,'')<>'1'
说明:上传提成的查询语句,前提是da_wxjl_wxry表中需要增加jieyoustatus字段,升级语句为:
alter table da_wxjl_wxry add jieyoustatus varchar(1); --增加上传标志字段
update da_wxjl_wxry set jieyoustatus='1' --更改当前所有结算信息标志为已上传状态
上面红色的部分如果localsql参数中包含record_table,则此处也需要,否则此处不需要;
LocalUpdateMoney_Engineer_Columns=hdje|qtf|xsje|zdf|jlf|hdje1|hdje2|hdje3|hdje4
说明:上传工程师提成金额列列名,最多只能上传10列,依次上传至解忧平台的1-10列,列间用|分割;
LocalUpdateMoney_Engineer_SQL=update da_wxjl_wxry set jieyoustatus='1' where pgdh=@pgdh and wxry=@wxry
说明:上传工程师信息后更新本地数据库状态
LocalUpdateMoney_Engineer_Sql_Parm=pgdh|wxry
说明:更新本地数据库状态的参数
上传正火完工信息到解忧平台2017-6-6(手动完工)
localsql_end=select top 10 pgdh,wxjg,wxcs,'da_wxjl' record_table from da_wxjl a,bm_ktlb b,bm_lb_pp c where a.wxzt >='D' and isnull(appstatus_end,'')='0' and a.ktpp=b.code and a.ppnr=c.code
说明:正火系统完工单的查询条件,根据实际情况需要进行修改,其中红色部分如果新单上传是没有record_table,则此处不需要,否则需要;
localupdatesql_end=update da_wxjl set appstatus_end='1' where charindex(pgdh+',',@pgdh)>0
说明:完工单上传的更新标志;
localupdateparm_end=pgdh
说明:完工单上传更新时用到的参数,可以使用|分割;
localcolumns_end=pgdh|wxcs|wxjg
说明:完工单上传是本地数据库对应的列名;
remotecolumns_end=record_number|service_measure|service_result
说明:完工单上传到解忧平台,解忧平台对应的列名,此参数需要和上一参数配合使用;
需要修改以下存储过程:
proc_wxjl_update
原内容:set @xfry='update da_wxjl set '+@xfry+' where pgdh='''+@pgdh+''''
现内容:set @xfry='update da_wxjl set '+REPLACE(@xfry,'"','''')+' where pgdh='''+@pgdh+''''
proc_exists_wxzt
原内容:set @sql='update da_wxjl set wxzt='''+@wxzt+''','+@zdgx+' where pgdh='''+@pgdh+''''
现内容:set @sql='update da_wxjl set wxzt='''+@wxzt+''','+REPLACE(@zdgx,'"','''')+' where pgdh='''+@pgdh+''''
同时修改工作状态编码表中的自动更新列,将其中的单引号('')换成双引号("")
2017-6-22
下载服务新增下载OA表单数据的功能,需要手动在下载参数中增加以下参数:
localoaparm=表单名称1|表单名称2
localoacolumns_表单名称1=姓名,电话,地址(表单的中文字段名称)
...
localoaupdate_表单名称1=proc_.....(存储过程名称,此存储过程必须包括所有返回数据参数和一个returnparm output参数)
说明:存储过程可以参考后面的下载OA数据的存储过程
2017-7-19
解忧新增数据自动对接到正火系统中(适合于每个企业的公众号报修),需要在下载参数中增加以下参数:
localnewupdatesql=pro_wxgl_web_jieyou|id,contact_name,contact_phone,address,service_demand,
equipmentname,brand_name,brand_content_name
说明:|前面是存储过程名称,后面是解忧数据的字段名称,存储过程可以参考后面的存储过程。
说明:
a、数据上传和对接程序涉及到本地数据库更新的可在后台设置参数的地方,均可以使用如下两种方式(案例):
1、update da_wxjl set **=** where pgdh=@record_number;(直接使用SQL语句)
2、execute proc_exec_app_** @record_table,@pgdh...(使用存储过程)
b、数据对接参数一旦修改,需要重新启动相应服务;
c、修改参数system.ini配置文件的writelogs=false可取消日志功能;
d、如果遇到下载服务不能使用的情况,可以设置system.ini配置中的userRedis=false再试;
e、安装服务的计算机应取消电脑休眠功能;
f、涉及到本地编码需要和解忧编码转换的参数,可以通过以下两种方式设置,如以下案例:localreplacecolumn_engineerid_table=SQLselect jieyoucode,ygbh from rsgl_jbda where gzzt='1' and ISNULL(jieyoucode,'')>''
localreplacecolumn_engineerid_table=解忧编码:工程师编码|...
g、解忧派工后下载到正火系统
localupdatesql_status_04=update da_wxjl set xfry=@engineerid,xfry1=@engineer_name,pgrq=@send_work_time,wxzt='B' where pgdh=@record_number and wxzt【‘B‘|execute proc_execute_jieyou_download @record_number,@engineerid,@send_work_operator
h、如果要上传派工后的单据到解忧平台,请在localsql参数中,增加如下关联(rsgl_jbda e):
charindex(e.ygbh,a.xfry)>0 and e.jieyoucode>''
解忧对接升级脚本
//基本数据对接
go
alter table rsgl_jbda add jieyoucode varchar(50)
go
alter table da_wxjl add appstatus varchar(1),appstatus_end varchar(1)
go
//升级时此代码请最后执行
update da_wxjl set
appstatus='1',appstatus_end='1'
go
//增加获取维修人员ID
create function [dbo].[gf_wxjl_xfry](@xfry varchar(50)) returns varchar(255)
as
begin
declare @rn varchar(255)
declare @ygbh varchar(50)
set @rn=''
set @ygbh=''
declare cur_tmp cursor for select jieyoucode from rsgl_jbda where
charindex(','+ygbh+',',','+@xfry+',')>0
open cur_tmp
fetch cur_tmp into @ygbh
while @@FETCH_STATUS=0
begin
set @rn=@rn +@ygbh+ ','
fetch cur_tmp into @ygbh
end
close cur_tmp
DEALLOCATE cur_tmp
return @rn
end
go
//维修记录表触发器实现改派后重新上传
ALTER TRIGGER [dbo].[trig_da_wxjl_update] ON
[dbo].[da_wxjl]
FOR insert,UPDATE
AS
begin
declare @xfry varchar(200)
declare @pgdh varchar(20)
if UPDATE(xfry)
begin
update da_wxjl set da_wxjl.appstatus='' from da_wxjl,inserted a
where da_wxjl.pgdh=a.pgdh and a.xfry>'' and
isnull(da_wxjl.appstatus,'')='1'
end
return
end
go
//解忧下载后自动更新维修记录表状态
CREATE proc [dbo].[proc_execute_jieyou_download](@pgdh varchar(30),@xfry
varchar(100),@pgry varchar(30))
as
begin
if @pgry>''
update da_wxjl set pgry=@pgry where pgdh=@pgdh
if @xfry>''
execute proc_wxjl_update @pgdh,'xfry',@xfry
end
GO
//增加存储过程(可编程性- 存储过程-新建)
create PROCEDURE proc_exec_app_upload(@record_table varchar(10),@pgdh
varchar(500))
as
BEGIN
if @record_table='da_wxjl'
update da_wxjl
set appstatus='1' where charindex(pgdh ',',@pgdh)>0
else
update da_azjl
set appstatus='1' where charindex(pgdh ',',@pgdh)>0
END
GO
//2017-05-17修改遗留和过程反馈数据对接
alter table da_wxjl_ylwt add feedbackstatus varchar(1),replystatus varchar(1)
go
alter table da_wxjl_ylwt add appid varchar(50)
go
create proc proc_exec_app_message_feedback_update(@appid
varchar(50),@record_number varchar(50))
as
begin
update da_wxjl_ylwt set feedbackstatus='1',appid=@appid where pgdh+ convert(varchar,xh)=@record_number
end
GO
create proc proc_exec_app_message_feedback_add (@record_table
varchar(10),@record_number varchar(30),
@info_num varchar(30),@subid varchar(10),@feedback_person
varchar(30),@feedback_content varchar(300),@feedback_type varchar(20))
as
begin
declare @xh int
set @xh=0
select @xh=isnull(max(xh),0) from da_wxjl_ylwt where pgdh=@record_number
if @xh=null
set @xh=1
else
set @xh=@xh +1
insert into da_wxjl_ylwt(pgdh,xh,ylrq,ylwt,wtlx,clqk,feedbackstatus,replystatus,appid)
values(@record_number,@xh,getdate(),@feedback_content,@feedback_type,'','1','0',@info_num+@subid)
end
go
create proc proc_exec_app_message_reply_update(@record_number varchar(50))
as
begin
update da_wxjl_ylwt set replystatus='1' where pgdh +
convert(varchar,xh)=@record_number
end
go
create proc proc_exec_app_message_reply_add (@record_table
varchar(10),@record_number varchar(30),
@info_num varchar(30),@subid varchar(10),@reply_person
varchar(30),@reply_content varchar(300),@reply_node varchar(20))
as
begin
update da_wxjl_ylwt set
clqk=@reply_content,clrq=getdate(),cljg='Y',clry=@reply_person where
appid=@info_num+@subid
end
go
2017-7-19解忧新增数据下载到正火系统存储过程
CREATE procedure [dbo].[pro_wxgl_web_jieyou](@id varchar(50),@contact_name varchar(50),@contact_phone varchar(50),@address varchar(100),
@service_demand varchar(100), @equipmentname varchar(50),@brand_name varchar(50),@brand_content_name varchar(50),@returnparm varchar(2048) output)
as
begin
declare @pgdh varchar(30)
declare @ktpp varchar(6)
declare @ppnr varchar(8)
declare @xtmc varchar(100)
declare @djh varchar(50)
set @pgdh=''
select @pgdh=isnull(pgdh,'') from da_wxjl where zydh=@id
if @pgdh>''
begin
set @returnparm=@id+':'+@pgdh
return
end
set @xtmc=@brand_name +@brand_content_name
--获取最大派工单号
select @pgdh=isnull(max(pgdh),'') from da_wxjl where left(pgdh,6)=substring(convert(varchar,getdate(),112),3,6)
if @pgdh=''
begin
select @pgdh=substring(convert(varchar,getdate(),112),3,6)+'-0001'
end
else
begin
select @djh=convert(varchar,convert(int,right(@pgdh,4))+1)
select @pgdh=left(@pgdh,7)+left('000000',4 - len(@djh))+ @djh
end
--查询品牌和品牌内容
if exists(select * from bm_ktlb a,bm_lb_pp b where a.code=b.sspp and a.sm+b.lbmc=@xtmc)
begin
select top 1 @ktpp=a.code,@ppnr=b.code from bm_ktlb a,bm_lb_pp b where a.code=b.sspp and a.sm+b.lbmc=@xtmc
end
else
begin
select top 1 @ktpp=a.code,@ppnr=b.code from bm_ktlb a,bm_lb_pp b where a.code=b.sspp
end
--插入记录
begin tran
insert into da_wxjl (pgdh,ktpp,ppnr,yhmc,lxdh,lxsj,yhdz,gzxx,yhlxry,xxbz,jswd,xxly,jdrq,ktxh,jdry,pgdhtop,fwlx,fwfs,hyid,yyrq1,yhlx,wxzt,zydh,appstatus)
values (@pgdh,@ktpp,@ppnr,@contact_name,'',@contact_phone,@address,@service_demand,@contact_name,'A','001','解忧平台',getdate(),@equipmentname,'manager',@pgdh,'03','10','',null,'A','A',@id,'1')
if @@error<>0 goto Err
commit transaction
set @returnparm=@id+':'+@pgdh
return
Err:
rollback transaction
set @returnparm=''
return
end
go
OA系统数据下载到正火系统
create function dbo.Get_StrArrayLength
(
@str varchar(5000), --要分割的字符串
@split varchar(10) --分隔符号
)
returns int
as
begin
declare @location int
declare @start int
declare @length int
set @str=ltrim(rtrim(@str))
set @location=charindex(@split,@str)
set @length=1
while @location<>0
begin
set @start=@location+1
set @location=charindex(@split,@str,@start)
set @length=@length+1
end
return @length
end
go
create function dbo.Get_StrArrayStrOfIndex
(
@str varchar(5000), --要分割的字符串
@split varchar(10), --分隔符号
@index int --取第几个元素
)
returns varchar(5000)
as
begin
declare @location int
declare @start int
declare @next int
declare @seed int
set @str=ltrim(rtrim(@str))
set @start=1
set @next=1
set @seed=len(@split)
set @location=charindex(@split,@str)
while @location<>0 and @index>@next
begin
set @start=@location+@seed
set @location=charindex(@split,@str,@start)
set @next=@next+1
end
if @location =0 select @location =len(@str)+1
return substring(@str,@start,@location-@start)
end
go
create proc [dbo].[proc_exec_oa_jieyou_bxsq] (
@id varchar(50),@提交人员 varchar(10),
@提交时间 varchar(20),@报销主题 varchar(200),
@附件张数 varchar(10),@情况说明 varchar(200),
@报销合计 varchar(20),@明细信息 varchar(1024),
@returnparm varchar(2048) output)
as
declare @cwdh varchar(20)
declare @ygbh varchar(10)
declare @gzbm varchar(10)
declare @ssgs varchar(10)
begin
--获取最大财务单号
exec PROC_GET_DJH '001','CW_SZD','DB',@cwdh output
--写入财务收支top表
SET @ygbh=''
SET @gzbm=''
select @ygbh=ygbh,@gzbm=gzbm,@ssgs=bm from rsgl_jbda where ygmc=@提交人员
--写入财务收支top表
insert into cwgl_qtsz_top (djh, bz, pzh, shry, fsrq, shrq, kdry, kdrq, djzt, zjje, zdje, zffs, szlx, szbh, ssgs, fklx, zph, gszh, pzjzbz, gzbm,djh_oa)
values(@cwdh,isnull(@报销主题,'')+':'+isnull(@情况说明,''),'',null,@提交时间,null,
@ygbh,@提交时间,'0',0,@报销合计,'0','其他收费',null,@ssgs,null,null,null,'0',@gzbm,@ID)
--
if @@ERROR=0
begin
--写入明细表数据
DECLARE @N INT
DECLARE @I INT
declare @xh int
declare @s varchar(1024)
declare @xmbm varchar(20)
DECLARE @XMMC VARCHAR(20)
DECLARE @XMSL VARCHAR(20)
DECLARE @XMDJ VARCHAR(20)
DECLARE @XMJE VARCHAR(20)
DECLARE @XMSM1 VARCHAR(200)
DECLARE @XMSM2 VARCHAR(200)
set @xh=1
SET @I=1
set @明细信息=REPLACE(@明细信息,'[{','')
set @明细信息=REPLACE(@明细信息,'}]','')
SET @N=DBO.Get_StrArrayLength(@明细信息,'},{')
WHILE @I<=@N
BEGIN
set @s=dbo.Get_StrArrayStrOfIndex(@明细信息,'},{',@i)
SET @XMMC=dbo.Get_StrArrayStrOfIndex(dbo.Get_StrArrayStrOfIndex(@s,'","',2),'":"',2)
set @xmbm=''
select @xmbm=isnull(code,'') from bm_szxm where name=@XMMC
if @xmbm=''
set @xmbm='D1' --默认收支项目
SET @XMSL=dbo.Get_StrArrayStrOfIndex(dbo.Get_StrArrayStrOfIndex(@s,'","',3),'":"',2)
SET @XMDJ=dbo.Get_StrArrayStrOfIndex(dbo.Get_StrArrayStrOfIndex(@s,'","',4),'":"',2)
SET @XMJE=dbo.Get_StrArrayStrOfIndex(dbo.Get_StrArrayStrOfIndex(@s,'","',5),'":"',2)
SET @XMSM1=dbo.Get_StrArrayStrOfIndex(dbo.Get_StrArrayStrOfIndex(@s,'","',6),'":"',2)
SET @XMSM2=dbo.Get_StrArrayStrOfIndex(dbo.Get_StrArrayStrOfIndex(@s,'","',7),'":"',2)
if @XMDJ='' set @XMDJ=null
if @XMsl='' set @XMsl=null
if @XMJE='' set @XMJE=0
if @XMJE<>0
begin
insert into cwgl_qtsz (djh,xh,szxm,pzlx,jsr,yhzh,sr,zc,fpje,fph,zy,wldw,pzhx,hxrq,hxry,yxpjh,htbh,dw,sl,dj,ywry)
values( @cwdh,@xh,@xmbm,'19',@ygbh,null,0,@xmje,0,null,@XMSM1,@ygbh,'0',null,null,null,null,null,@xmsl,@xmdj,@ygbh)
set @xh=@xh +1
end
SET @I=@i +1
END
if not exists(select * from cwgl_qtsz where djh=@cwdh)
begin
delete from cwgl_qtsz_top where djh=@cwdh
set @returnparm=''
end
else
begin
set @returnparm=@id
end
end
else
begin
set @returnparm=''
end
end
go
正火系统完成上传解决完工和新单同时上传时无法上传完工信息
CREATE TABLE [jieyou_err] (
pgdh varchar(50) not null,
sccs int ,
type varchar(10) not null,
CONSTRAINT [PK_jieyou_err] PRIMARY KEY CLUSTERED
(
[pgdh],
[type]
) ON [PRIMARY]
) ON [PRIMARY]
GO
//处理派工后立即完工bug
create proc [dbo].[proc_exec_jieyou_upload_err](@pgdh varchar(100),@type varchar(20),@record_table varchar(50))
as
begin
if @type='end'
begin
update jieyou_err set sccs=sccs +1 where type=@type and charindex(pgdh,@pgdh)>0
insert into jieyou_err(pgdh,type,sccs)
select pgdh,@type,1 from da_wxjl where charindex(pgdh,@pgdh)>0 and pgdh not in(select pgdh from jieyou_err where type=@type)
return
end
if @type='end_reset'
begin
delete from jieyou_err where type='end' and sccs>=3
update da_wxjl set appstatus_end='0' where pgdh in(select pgdh from jieyou_err where type='end' and sccs<3)
return
end
if @type='success'
begin
delete from jieyou_err where type='end' and charindex(pgdh,@pgdh)>0
return
end
end
go
企业端自动派工设置
1、同时需要在工程师表及工程师档案维护中维护以下内容:
service_county 服务区域
service_id 服务类型名称+服务大类
service_brand 服务品牌名称
service_brand_content 品牌内容名称
2、自动派工设置需要在企业端网站中的企业信息中进行维护,主要需要维护:
HASH位数、坐标距离、定位模式、必备条件、排序规则、过滤条件、派工模式
数据库字段名及含义:
lbs_geohash_left GEOHASH精确位置,5位10公里,位数越大越精确
lbs_distince 距离多少公里
lbs_modle 定位方式 Hash / Distinct
lbs_modle_sort 排序规则
lbs_modle_filter 过滤规则
lbs_modle_rule 查询条件
lbs_send_work 派工/抢单/手动
a、lbs_modle_rule必备条件设置规则:
默认为:
gps|service_brand_content|service_id(含义为需要以定位、服务品牌内容、服务类别名称+服务大类)
可用模式为:
county 区县 service_id 服务类型+服务大类 service_brand品牌 service_brand_content 品牌内容 gps 定位
b、lbs_modle_filter 过滤规则设置:
过滤规则和排序规则为配套设置,可以使用|分割以设置多种过滤规则和排序,系统在使用抢单模式时,只使用第一种规则,使用派单模式时,若第一种没有找到合适的数据,则依次后延;
例:distance<=3|distance<=10|
c、lbs_modle_sort排序规则设置:
例:distance asc,service_wwgsl2 asc,skill_level desc|distance asc,service_wwgsl2 asc,skill_level desc|service_wwgsl2 asc,skill_level desc
过滤和排序的字段名:
appid,distance,lat,lng,service_pgsl,service_tssl,service_jdsl,service_county,id,name,sex,phone,name,companyid,
company_name,service_wwgsl,service_wwgsl2,service_ylsl,skill_level
中文含义为:
appid,距离,经度,维度,派工数量,推送数量,接单数量,服务区县,编号,姓名,性别,电话,公司编码,公司名称,未完工数量,未完工数量- 遗留数量,遗留数量�