五、K3 WISE 开发插件《K3 Wise 群发短信配置开发(二)之短信群发配置》
开发环境:K/3 Wise 13.0、Sql Server 2005
目录
一、开启Sql Server Agent代理服务
二、短信发送原理
三、编写存储过程
四、开启Sql Server作业
一、开启Sql Server Agent代理服务
打开“管理工具” -- “服务” --“Sql Server Agent(MSSQLSERVER)”,设置为“已启动”、“自动”:
二、短信发送原理
往K3Mobile数据库的两个表T_SMSMSGLOG、tb_sendmessage插入记录,K/3 Wise将自动发送数据到WeiNaDuo短信接口进行短信发送!
发送数据模板:
insert into tb_sendmessage(id,biztype,isRevertible,title,msgtype,receivers,ffuncnumber,issent,createtime,fsendstate)
Values('DB000000000001','k3-9AB20E12-60C4-448C-B60D-6DFC8BA7AC77',0,'还款提醒:XXX先生/女士,您的融资XX应还租金人民币15,300.00元,本期还款日为8月20日。若已还款请忽略。',0,'接收人手机号码','K3V10.3YDSW',0,'2014-08-29 10:26:09.937',0) insert into t_smsmsglog(fsender,freceiver,facctid,frecvphonenum,fsendphonenum,fsendtime,freceivetime,fcontent,fmidserver,frecman,frecmantype,fid)
values(0,-1,2,'接收人手机号码','短信中心','2014-08-29 10:26:09.937','1900-01-01 00:00:00.000','还款提醒:XXX先生/女士,您的融资XX应还租金人民币15,300.00元,本期还款日为8月20日。若已还款请忽略。','服务器IP地址','接收人姓名',1,'DB000000000001')
金蝶提供了“金蝶短信平台”,可以查看短信发送情况,短信平台地址:http://121.52.221.109:8090/Default.aspx
输入账号和密码后:
三、编写存储过程
数据库K3Mobile下,编写存储过程,本例存储过程为“pro_sms_ContractSchemeOutDateWarn”:
附上代码:
IF EXISTS(SELECT * FROM sysobjects WHERE NAME='pro_sms_ContractSchemeOutDateWarn' AND TYPE='p')
DROP PROCEDURE pro_sms_ContractSchemeOutDateWarn
GO
CREATE PROC pro_sms_ContractSchemeOutDateWarn
@OutDay int --过期提醒的天数
AS
SET NOCOUNT ON CREATE TABLE #ContractTemp
(
FID int identity(1,1),
FContractNO varchar(50),
FCustomerName varchar(50),
FSex varchar(50),
FMobilePhone varchar(50),
FReceiveDate datetime,
FAmountFor decimal(18,2)
)
--版本一:2014-8-31
--INSERT INTO #ContractTemp
--SELECT b.FContractNO,c.FName as FCustomerName,c.F_102 as FSex,c.FMobilePhone,a.FReceiveDate,a.FAmountFor from AIS20130715142849.dbo.t_RPContractScheme a
--left join AIS20130715142849.dbo.t_RPContract b on a.FContractID=b.FContractID
--Left Join AIS20130715142849.dbo.T_Organization c On b.FCustomer=c.FItemID
--where datediff(day,getdate(),a.freceivedate)=@OutDay and b.FStatus<>2 and b.FStatus<>1 and c.FMobilePhone is not null
--SELECT * FROM #ContractTemp
--版本二:2014-9-5,纠正“短信发送晚于付款时间2日”的错误;排除已结租合同(包括已审核、已关闭、实收金额合计累计+保证金>=应收金额累计)
INSERT INTO #ContractTemp
select t.FContractNO,c.FName as FCustomerName,c.F_102 as FSex,c.FMobilePhone,t1.FReceiveDate,t1.FAmountFor
from AIS20130715142849.dbo.t_RPContractScheme t1
left join (select a.FContractID,a.FContractNO,a.FStatus,a.Fcustomer,a.FDecimal,sum(b.famountfor) as famountfortotal,sum(famount12) as famount12total
from AIS20130715142849.dbo.t_rpcontract a
left join AIS20130715142849.dbo.t_rpcontractscheme b on a.fcontractid=b.fcontractid where a.fstatus<>1 and a.fstatus<>2
group by a.FContractID,a.fcontractno,a.FStatus,a.FCustomer,a.FDecimal) t ON t1.FContractID=t.FContractID
Left Join AIS20130715142849.dbo.T_Organization c On t.FCustomer=c.FItemID
where t.FAmount12Total+t.FDecimal<t.FAmountForTotal and t.FStatus<>1 and t.FStatus<>2
and datediff(day,getdate(),t1.freceivedate)=@OutDay and c.FMobilePhone is not null DECLARE @DBID varchar(50)
DECLARE @curIndex int
DECLARE @totalRows int
DECLARE @FCustomerName varchar(50)
DECLARE @FSex varchar(50)
DECLARE @FMobilePhone varchar(50)
DECLARE @FReceiveDate datetime
DECLARE @FAmountFor varchar(50)
DECLARE @FContractNO varchar(50)
SELECT @curIndex=1
SELECT @totalRows=COUNT(1) FROM #ContractTemp
WHILE(@curIndex<=@totalRows)
BEGIN
SELECT @DBID=null
SELECT @FCustomerName=null
SELECT @FSex=null
SELECT @FMobilePhone=null
SELECT @FReceiveDate=null
SELECT @FAmountFor=null
SELECT @FContractNO=null
SELECT @FCustomerName=FCustomerName FROM #ContractTemp WHERE FID=@curIndex
SELECT @FSex=CASE FSex WHEN 0 THEN '女士' WHEN 1 THEN '先生' ELSE '先生/女士' END FROM #ContractTemp WHERE FID=@curIndex
SELECT @FMobilePhone=FMobilePhone FROM #ContractTemp WHERE FID=@curIndex
SELECT @FReceiveDate=FReceiveDate FROM #ContractTemp WHERE FID=@curIndex
SELECT @FAmountFor=FAmountFor FROM #ContractTemp WHERE FID=@curIndex
SELECT @FAmountFor=CONVERT(varchar,CONVERT(money,@FAmountFor),1)
SELECT @FContractNO=FContractNO FROM #ContractTemp WHERE FID=@curIndex
SELECT @DBID=MAX(FID) FROM t_DBID
SELECT @DBID='DB'+REPLACE(SPACE(12-LEN(@DBID)),' ','')+CONVERT(varchar(50),@DBID+1) INSERT INTO TB_SENDMESSAGE
(ID,bizType,isRevertible,title,msgType,receivers,FFuncNumber)
VALUES(@DBID,'k3-9AB20E12-60C4-448C-B60D-6DFC8BA7AC77',0,'还款提醒:'+@FCustomerName+@FSex+',您的XX融资合同<'+@FContractNO+'>本期应还¥'+@FAmountFor+'元,还款日为'+CONVERT(varchar,MONTH(@FReceiveDate))+'月'+CONVERT(varchar,DAY(@FReceiveDate))+'日.若已还款请忽略.',0,'13774534210,13850040496,13959240595','K3V10.3YDSW') INSERT INTO T_SMSMSGLOG
(FID,FSender,FReceiver,FAcctID,FRecvPhoneNum,FSendPhoneNum,FContent,FSendTime,FReceiveTime,FMidServer,FRecMan,FRecManType)
VALUES(@DBID,0,-1,2,'13774534210,13850040496,13959240595','短信中心','还款提醒:'+@FCustomerName+@FSex+',您的XX融资合同<'+@FContractNO+'>本期应还¥'+@FAmountFor+'元,还款日为'+CONVERT(varchar,MONTH(@FReceiveDate))+'月'+CONVERT(varchar,DAY(@FReceiveDate))+'日.若已还款请忽略.',GetDate(),0,'127.0.0.1',@FCustomerName,1) INSERT INTO T_DBID(FType)VALUES('sms')
SELECT @curIndex=@curIndex+1
END
DROP TABLE #ContractTemp
GO --exec pro_sms_ContractSchemeOutDateWarn 2
--select * from t_dbid
--select * from TB_SENDMESSAGE where id like 'DB%'
--select * from t_smsmsglog where fid like 'DB%'
--delete from TB_SENDMESSAGE
--delete from t_smsmsglog
四、开启Sql Server作业
五、K3 WISE 开发插件《K3 Wise 群发短信配置开发(二)之短信群发配置》的更多相关文章
- cordova开发插件,并在android studio中开发、调试
之前用过cordova Lib包装H5页面,自己写插件,但做法是野路子,不符合cordova插件的开发思路,这次项目又需要包装H5页面,同时需要自定义插件.所以又折腾了一次cordova自定义插件. ...
- 五、K3 WISE 开发插件《K3 Wise 群发短信配置开发(一)之短信平台配置》
开发环境:K/3 Wise 13.0 目录 一.创建短信数据库 二.配置短信接口 三.设置帐套关键字 四.查询短信余额 一.创建短信数据库 打开帐套管理: 账号默认为Admin,密码不填: 菜单“系统 ...
- 四、K3 WISE 开发插件《工业单据老单插件开发新手指导》
开发环境:K/3 Wise 13.0.K/3 Bos开发平台.Visual Basic 6.0 =============================================== 目录 一 ...
- 【开发者portal在线开发插件系列五】命令的响应,即命令结果的上报(mid的使用)
基础篇 [开发者portal在线开发插件系列一]profile和基本上下行消息 [开发者portal在线开发插件系列二]多条上下行消息(messageId的使用) 基础场景见上面两个帖子,这里单独介绍 ...
- NotePad++安装和配置C/C++开发插件
NotePad++ - 安装和配置C/C++开发插件 | NotePad++ - Install and Configure plugins for develop C/C++ http://aofe ...
- {Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解)
Django基础七之Ajax 本节目录 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解) 一 Ajax简介 ...
- sublime text3前端开发插件配置以及使用(个人喜爱)
第一步下载软件接着Ctrl +~ (回车)把下面安装包管理添加到sublimeimport urllib.request,os; pf = 'Package Control.sublime-packa ...
- {Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解)
{Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解) Django基础七之 ...
- eclipse SE增加Web开发插件
最近接触了些java项目,之前安装了eclipse SE版本.没有Web开发插件,调试不了Web代码.点击“Window”--“Preference” 左边菜单栏是找不到“Server”项来配置服务器 ...
随机推荐
- bioperl 自动化下载genbank 中的序列
当我们想要从genbank 中下载序列的时候,总需要点击右上角的download 按钮,选择对应的格式,然后通过浏览器进行下载,这样反复的点击很费时间了 其实可以通过bioperl 自动化的完成下载: ...
- OpenGL 遮挡查询
原文地址:http://www.linuxidc.com/Linux/2015-02/114036.htm 在一个场景中,如果有有些物体被其他物体遮住了不可见.那么我们就不需要绘制它.在复杂的场景中, ...
- u3d资源打包只能打包场景材质,不能打包脚本
GameObject附带脚本打包进来以后,只有一个脚本名字,估计只是关联了脚本,内容却不在,所以后面打包资源的话,一定要把脚本,shader之类的,放到工程目录下
- Java多线程——可阻塞的队列BlockingQueue
阻塞队列与Semaphore有些相似,但也不同,阻塞队列是一方存放数据,另一方释放数据,Semaphore通常则是由同一方设置和释放信号量. ArrayBlockingQueue 只有put方法和ta ...
- xshell使用xftp传输文件 使用pure-ftpd搭建ftp服务
xshell使用xftp传输文件 下载xftp5 https://www.baidu.com/link?url=8rtxgX3JRIbUFO1Samzv5aXhfwRG7Cf8i4vi573QexoH ...
- spark1.4配置安装
https://segmentfault.com/a/1190000004508993
- Masonry插件:内容始终水平居中
跟随浏览器框架大小,主题内容居中 代码 <!DOCTYPE html> <html> <head> <title>masonry瀑布流插件</ti ...
- input checkbox复选框点击获取当前选中状态jquery
function checkAll(id) { //用is判断 // let checkStatus=$(id).is(':checked'); // console.log(checkStatus) ...
- 8 map的用法
what's map go里面的map和python字典差不多. 类似其他语言中的哈希表或者字典,以key-value的形式存储的数据 key必须是支持==或者!=比较运算的类型,不可以是函数.map ...
- 在ListView中使用GridView, Style这样写:
参考:http://msdn.microsoft.com/zh-cn/library/vstudio/ms788747.aspx 需求,自定义ListView中的滚动条 这岂不是很简单?刷刷刷写完了, ...