任务描述

【数据库 -- 表设计】

在共享数据库创建一个语音表
RB_Voice
Text NVARCHAR(1000) NOT NULL 【该字段要创建唯一索引】(文本)
OssURL VARCHAR(200) NOT NULL                 (OSS地址)


【业务设计 -- 业务逻辑设计,梳理】

===前端逻辑

1. AJAX获取语音地址OSS Url
2. 使用JQuery 读取OSS Url语音包

语音读取公共脚本名称 irobotbox.common.customSpeech.js, 放到Manager/js目录下
改脚本文件代码内容
$.fn.extend({
    //自定义读取语音
    CustomSpeech: function (text) {
        //AJAX读取语音的OSS URL

        //读取语音
        $(this).speech({
            "speech": false,
            "speed": 13,
            "src": OSS URL
        });
    }
});

在调用方页面定义一个隐藏的DIV,domId为隐藏DIV的id
调用方在页面引用irobotbox.common.customSpeech.js,调用方法 $('#' + domId).CustomSpeech(text) 读取语音


===后端逻辑

===流程
1. 先访问【Web层服务端缓存】,如果没有则执行2。
2. 读取数据库,如果数据库有,将数据库的数据缓存到【Web层服务端】。如果数据库没有,则执行3。
3. 直接调用百度语音接口,将百度语音接口返回的MP3文件缓存至OSS,将OSS连接保存到数据。Text字段存语音文本,OssURL存OSS连接。并且将语音文本和OssURL保存到【Web层服务端】

var ossUrl = 获取Web层服务端缓存;Cache key = 语音文本字符串, value = OSS URL

if (ossUrl 为空)
{
    ossUrl = 读取数据库
    if(ossUrl 不为空)
    {
        将数据缓存到【Web层服务端】
    }
}

if (ossUrl 为空)
{
    url 生成百度语音包地址
    请求url 下载百度语音包
    ossUrl = 将语音包上传只OSS
    if(ossUrl 不为空)
    {
        将数据缓存到【Web层服务端】
        将数据保存到【数据库】
    }
    else
    {
        ossUrl = url
    }
}

return ossUrl


===百度API访问Token
获取百度API Tkoen :new Biz.Irobotbox.BaiduTts().GetCacheTokenModel().AccessToken

//下载百度语音包
client.DownloadData("https://tsn.baidu.com/text2audio?tex=称重发货&lan=zh&aue=3&spd=4&cuid=1&ctp=1&tok=24.3151c8364e4e909bcfcf9119a52b0638.2592000.1636079062.282335-24557501");

MP3测试语音连接:http://test-erp2-files.oss-cn-shenzhen.aliyuncs.com/xxx.mp3

===OSS上传语音包
var ossService = new Biz.Common.FileService();
string urlKey = string.Format("商户号/voice/生成一个guid.mp3");
string ossUrl = ossService.Upload(urlKey, 百度语音返回的字节数组);
ossUrl不为空才是上传成功



【风险识别 -- 性能,开发,扩展】

无


【注意事项 -- 编码规范,可能存在BUG,风险和业务关联】


1. 优化涉及到的功能点

1.1 PackageCheck.aspx 包裹复核
1.2 PrintDelivery.aspx 打单
1.3 TwoSortingByBarCode.aspx 二次分拣
1.4 PackageWeight.aspx PackageWeight.js 称重

1.5 Terminal/Terminal.master PDA拣货操作模板


需求描述

1.    需求概述

1.1. 背景

语音播报调用百度接口,费用较高

1.2. 目标

进行本地存储功能,降低成本

2.    功能设计

2.2. 订单审核策略

2.1.1 需求说明


  • 扫描提示音,调用语言播放接口的时候,将对应文字和语音存储于OSS服务器上
  • 扫描的时候,先获取OSS服务器存储的语音,如果取不到则调用语言播放的API接口,并进行存储

涉及改动点:PC端、网页端、终端机

验收标准
暂无
相关用例
历史记录  
  1. 2021-10-21 11:12:26, 由 程伟 创建。
  2. 2021-10-21 11:37:48, 由 程伟 编辑。
    修改了 父任务 ,旧值为 "0",新值为 "-1"。
    修改了 最初预计,旧值为 "0",新值为 "24"。
    修改了 预计剩余,旧值为 "0",新值为 "24"。
  3. 2021-10-21 11:37:48, 由 程伟 创建子任务 #21221 PC端、网页端、终端机语言提示增加本地存储-代码审查 , #21222 PC端、网页端、终端机语言提示增加本地存储-后端实现-PC端公共方法 , #21223 PC端、网页端、终端机语言提示增加本地存储-后端实现-包裹复核 , #21224 PC端、网页端、终端机语言提示增加本地存储-后端实现-默认打单 , #21225 PC端、网页端、终端机语言提示增加本地存储-后端实现-二次分拣 , #21226 PC端、网页端、终端机语言提示增加本地存储-后端实现-称重发货 , #21227 PC端、网页端、终端机语言提示增加本地存储-后端实现-PDA拣货 。
    修改了 父任务 ,旧值为 "0",新值为 "-1"。
    修改了 最初预计,旧值为 "0",新值为 "24"。
    修改了 预计剩余,旧值为 "0",新值为 "24"。
  4. 2021-10-21 11:39:16, 由 程伟 编辑。
    修改了 任务描述,区别为:
    008- 无
    008+ 1. PackageCheck.aspx 包裹复核
    009- 【风险识别 -- 性能,开发,扩展】
    009+ 2. PrintDelivery.aspx 打单3. TwoSortingByBarCode.aspx 二次分拣4. PackageWeight.aspx PackageWeight.js 称重5. Terminal/Terminal.master PDA拣货操作模板
    010- 无
    010+ 【风险识别 -- 性能,开发,扩展】
    011-
    011+ 无
    012- 【注意事项 -- 编码规范,可能存在BUG,风险和业务关联】
    012+
    013- 无
    013+ 【注意事项 -- 编码规范,可能存在BUG,风险和业务关联】
    014-
    014+ 无
    015-
    015+
    016-
    016+
    017-
    017+
    018+
    008- 无<br /><p><br /></p>
    008+ 1. PackageCheck.aspx 包裹复核<br />
    009- <p>【风险识别 -- 性能,开发,扩展】</p>
    009+ 2. PrintDelivery.aspx 打单<br />3. TwoSortingByBarCode.aspx 二次分拣<br />4. PackageWeight.aspx PackageWeight.js 称重<br />5. Terminal/Terminal.master PDA拣货操作模板<br /><p><br /></p>
    010- <p>无</p>
    010+ <p>【风险识别 -- 性能,开发,扩展】</p>
    011- <p><br /></p>
    011+ <p>无</p>
    012- <p>【注意事项 -- 编码规范,可能存在BUG,风险和业务关联】</p>
    012+ <p><br /></p>
    013- <p>无</p>
    013+ <p>【注意事项 -- 编码规范,可能存在BUG,风险和业务关联】</p>
    014- </div>
    014+ <p>无</p>
    015- </div>
    015+ </div>
    016- </div>
    016+ </div>
    017- </div>
    017+ </div>
    018+ </div>
  5. 2021-10-21 11:57:13, 由 程伟 编辑。
    修改了 任务描述,区别为:
    008- 1. PackageCheck.aspx 包裹复核
    008+ 1. 优化涉及到的功能点
    009- 2. PrintDelivery.aspx 打单3. TwoSortingByBarCode.aspx 二次分拣4. PackageWeight.aspx PackageWeight.js 称重5. Terminal/Terminal.master PDA拣货操作模板
    009+ 1.1 PackageCheck.aspx 包裹复核
    010- 【风险识别 -- 性能,开发,扩展】
    010+ 1.2 PrintDelivery.aspx 打单1.3 TwoSortingByBarCode.aspx 二次分拣1.4 PackageWeight.aspx PackageWeight.js 称重1.5 Terminal/Terminal.master PDA拣货操作模板
    011- 无
    011+
    012-
    012+ 2. 封装声音插件的JS公共方法
    013- 【注意事项 -- 编码规范,可能存在BUG,风险和业务关联】
    013+ 2.1 所有语音提示功能都引用JS公共方法提示声音
    014- 无
    014+
    015-
    015+ 【风险识别 -- 性能,开发,扩展】
    016-
    016+ 无
    017-
    017+
    018-
    018+ 【注意事项 -- 编码规范,可能存在BUG,风险和业务关联】
    019+ 无
    020+
    021+
    022+
    023+
    008- 1. PackageCheck.aspx 包裹复核<br />
    008+ <p>1. 优化涉及到的功能点</p>
    009- 2. PrintDelivery.aspx 打单<br />3. TwoSortingByBarCode.aspx 二次分拣<br />4. PackageWeight.aspx PackageWeight.js 称重<br />5. Terminal/Terminal.master PDA拣货操作模板<br /><p><br /></p>
    009+ 1.1 PackageCheck.aspx 包裹复核<br />
    010- <p>【风险识别 -- 性能,开发,扩展】</p>
    010+ 1.2 PrintDelivery.aspx 打单<br />1.3 TwoSortingByBarCode.aspx 二次分拣<br />1.4 PackageWeight.aspx PackageWeight.js 称重<br /><p>1.5 Terminal/Terminal.master PDA拣货操作模板</p>
    011- <p>无</p>
    011+ <p><br /></p>
    012- <p><br /></p>
    012+ <p>2. 封装声音插件的JS公共方法</p>
    013- <p>【注意事项 -- 编码规范,可能存在BUG,风险和业务关联】</p>
    013+ <p>2.1 所有语音提示功能都引用JS公共方法提示声音</p>
    014- <p>无</p>
    014+ <p><br /></p>
    015- </div>
    015+ <p>【风险识别 -- 性能,开发,扩展】</p>
    016- </div>
    016+ <p>无</p>
    017- </div>
    017+ <p><br /></p>
    018- </div>
    018+ <p>【注意事项 -- 编码规范,可能存在BUG,风险和业务关联】</p>
    019+ <p>无</p>
    020+ </div>
    021+ </div>
    022+ </div>
    023+ </div>
  6. 2021-10-21 11:58:02, 由 程伟 编辑。
    修改了 最初预计,旧值为 "24",新值为 "36"。
    修改了 预计剩余,旧值为 "24",新值为 "36"。
  7. 2021-10-21 11:58:02, 由 程伟 创建子任务 #21228 PC端、网页端、终端机语言提示增加本地存储-后端实现-JS语音公共方法 。
    修改了 最初预计,旧值为 "24",新值为 "36"。
    修改了 预计剩余,旧值为 "24",新值为 "36"。
  8. 2021-10-25 18:29:50, 由 程伟 编辑。
    修改了 任务描述,区别为:
    006- 无
    006+ 在共享数据库创建一个语音表
    007- 【业务设计 -- 业务逻辑设计,梳理】
    007+ RB_VoiceText NVARCHAR(1000) NOT NULL 【该字段要创建唯一索引】(文本)OssURL VARCHAR(200) NOT NULL (OSS地址)
    008- 1. 优化涉及到的功能点
    008+ 【业务设计 -- 业务逻辑设计,梳理】
    009- 1.1 PackageCheck.aspx 包裹复核
    009+ ===前端逻辑1. AJAX获取语音地址OSS Url2. 使用JQuery 读取OSS Url语音包语音读取公共脚本名称 irobotbox.common.customSpeech.js, 放到Manager/js目录下改脚本文件代码内容$.fn.extend({ //自定义读取语音 CustomSpeech: function (text) { //AJAX读取语音的OSS URL //读取语音 $(this).speech({ "speech": false, "speed": 13, "src": OSS URL }); }});在调用方页面定义一个隐藏的DIV,domId为隐藏DIV的id调用方在页面引用irobotbox.common.customSpeech.js,调用方法 $('#' + domId).CustomSpeech(text) 读取语音
    010- 1.2 PrintDelivery.aspx 打单1.3 TwoSortingByBarCode.aspx 二次分拣1.4 PackageWeight.aspx PackageWeight.js 称重1.5 Terminal/Terminal.master PDA拣货操作模板
    010+
    011-
    011+ ===后端逻辑===流程1. 先访问【Web层服务端缓存】,如果没有则执行2。2. 读取数据库,如果数据库有,将数据库的数据缓存到【Web层服务端】。如果数据库没有,则执行3。3. 直接调用百度语音接口,将百度语音接口返回的MP3文件缓存至OSS,将OSS连接保存到数据。Text字段存语音文本,OssURL存OSS连接。并且将语音文本和OssURL保存到【Web层服务端】var ossUrl = 获取Web层服务端缓存;Cache key = 语音文本字符串, value = OSS URLif (ossUrl 为空){ ossUrl = 读取数据库 if(ossUrl 不为空) { 将数据缓存到【Web层服务端】 }}if (ossUrl 为空){ url 生成百度语音包地址 请求url 下载百度语音包 ossUrl = 将语音包上传只OSS if(ossUrl 不为空) { 将数据缓存到【Web层服务端】 将数据保存到【数据库】 } else { ossUrl = url }}return ossUrl
    012- 2. 封装声音插件的JS公共方法
    012+
    013- 2.1 所有语音提示功能都引用JS公共方法提示声音
    013+ ===百度API访问Token获取百度API Tkoen :new Biz.Irobotbox.BaiduTts().GetCacheTokenModel().AccessToken//下载百度语音包client.DownloadData("https://tsn.baidu.com/text2audio?tex=称重发货&amp;lan=zh&amp;aue=3&amp;spd=4&amp;cuid=1&amp;ctp=1&amp;tok=24.3151c8364e4e909bcfcf9119a52b0638.2592000.1636079062.282335-24557501");MP3测试语音连接:http://test-erp2-files.oss-cn-shenzhen.aliyuncs.com/xxx.mp3===OSS上传语音包var ossService = new Biz.Common.FileService();string urlKey = string.Format("商户号/voice/生成一个guid.mp3");string ossUrl = ossService.Upload(urlKey, 百度语音返回的字节数组);ossUrl不为空才是上传成功
    014-
    014+
    019- 无
    019+
    020-
    020+ 1. 优化涉及到的功能点
    021-
    021+ 1.1 PackageCheck.aspx 包裹复核
    022-
    022+ 1.2 PrintDelivery.aspx 打单1.3 TwoSortingByBarCode.aspx 二次分拣1.4 PackageWeight.aspx PackageWeight.js 称重1.5 Terminal/Terminal.master PDA拣货操作模板
    023-
    023+
    024+
    025+
    026+
    027+
    006- 无<br /><p><br /></p>
    006+ 在共享数据库创建一个语音表 <br />
    007- <p>【业务设计 -- 业务逻辑设计,梳理】</p>
    007+ RB_Voice<br />Text NVARCHAR(1000) NOT NULL 【该字段要创建唯一索引】(文本)<br />OssURL VARCHAR(200) NOT NULL (OSS地址)<br /><p><br /></p>
    008- <p>1. 优化涉及到的功能点</p>
    008+ <p>【业务设计 -- 业务逻辑设计,梳理】</p>
    009- 1.1 PackageCheck.aspx 包裹复核<br />
    009+ <p>===前端逻辑<br /><br />1. AJAX获取语音地址OSS Url<br />2. 使用JQuery 读取OSS Url语音包<br /><br />语音读取公共脚本名称 irobotbox.common.customSpeech.js, 放到Manager/js目录下<br />改脚本文件代码内容<br />$.fn.extend({<br /> //自定义读取语音<br /> CustomSpeech: function (text) {<br /> //AJAX读取语音的OSS URL<br /><br /> //读取语音<br /> $(this).speech({<br /> "speech": false,<br /> "speed": 13,<br /> "src": OSS URL<br /> });<br /> }<br />});<br /><br />在调用方页面定义一个隐藏的DIV,domId为隐藏DIV的id<br />调用方在页面引用irobotbox.common.customSpeech.js,调用方法 $('#' + domId).CustomSpeech(text) 读取语音</p>
    010- 1.2 PrintDelivery.aspx 打单<br />1.3 TwoSortingByBarCode.aspx 二次分拣<br />1.4 PackageWeight.aspx PackageWeight.js 称重<br /><p>1.5 Terminal/Terminal.master PDA拣货操作模板</p>
    010+ <p><br /></p>
    011- <p><br /></p>
    011+ <p>===后端逻辑<br /><br />===流程<br />1. 先访问【Web层服务端缓存】,如果没有则执行2。<br />2. 读取数据库,如果数据库有,将数据库的数据缓存到【Web层服务端】。如果数据库没有,则执行3。<br />3. 直接调用百度语音接口,将百度语音接口返回的MP3文件缓存至OSS,将OSS连接保存到数据。Text字段存语音文本,OssURL存OSS连接。并且将语音文本和OssURL保存到【Web层服务端】<br /><br />var ossUrl = 获取Web层服务端缓存;Cache key = 语音文本字符串, value = OSS URL<br /><br />if (ossUrl 为空)<br />{<br /> ossUrl = 读取数据库<br /> if(ossUrl 不为空)<br /> {<br /> 将数据缓存到【Web层服务端】<br /> }<br />}<br /><br />if (ossUrl 为空)<br />{<br /> url 生成百度语音包地址<br /> 请求url 下载百度语音包<br /> ossUrl = 将语音包上传只OSS<br /> if(ossUrl 不为空)<br /> {<br /> 将数据缓存到【Web层服务端】<br /> 将数据保存到【数据库】<br /> }<br /> else<br /> {<br /> ossUrl = url<br /> }<br />}<br /><br />return ossUrl</p>
    012- <p>2. 封装声音插件的JS公共方法</p>
    012+ <p><br /></p>
    013- <p>2.1 所有语音提示功能都引用JS公共方法提示声音</p>
    013+ <p>===百度API访问Token<br />获取百度API Tkoen :new Biz.Irobotbox.BaiduTts().GetCacheTokenModel().AccessToken<br /><br />//下载百度语音包<br />client.DownloadData("https://tsn.baidu.com/text2audio?tex=称重发货&amp;lan=zh&amp;aue=3&amp;spd=4&amp;cuid=1&amp;ctp=1&amp;tok=24.3151c8364e4e909bcfcf9119a52b0638.2592000.1636079062.282335-24557501");<br /><br />MP3测试语音连接:http://test-erp2-files.oss-cn-shenzhen.aliyuncs.com/xxx.mp3<br /><br />===OSS上传语音包<br />var ossService = new Biz.Common.FileService();<br />string urlKey = string.Format("商户号/voice/生成一个guid.mp3");<br />string ossUrl = ossService.Upload(urlKey, 百度语音返回的字节数组);<br />ossUrl不为空才是上传成功</p>
    014- <p><br /></p>
    014+ <br /><p><br /></p>
    019- <p>无</p>
    019+ <p><br /></p>
    020- </div>
    020+ <p>1. 优化涉及到的功能点</p>
    021- </div>
    021+ 1.1 PackageCheck.aspx 包裹复核<br />
    022- </div>
    022+ 1.2 PrintDelivery.aspx 打单<br />1.3 TwoSortingByBarCode.aspx 二次分拣<br />1.4 PackageWeight.aspx PackageWeight.js 称重<br /><p>1.5 Terminal/Terminal.master PDA拣货操作模板</p>
    023- </div>
    023+ <p><br /></p>
    024+ </div>
    025+ </div>
    026+ </div>
    027+ </div>
  9. 2021-10-26 19:20:07, 由 fengjibo 启动。
    修改了 总计消耗,旧值为 "0",新值为 "12"。
    修改了 预计剩余,旧值为 "36",新值为 "24"。
    修改了 任务状态,旧值为 "wait",新值为 "doing"。
  10. 2021-10-27 19:22:34, 由 程伟 编辑。
    修改了 最初预计,旧值为 "36",新值为 "32"。
    修改了 预计剩余,旧值为 "24",新值为 "20"。
  11. 2021-10-27 19:22:55, 由 程伟 编辑。
    修改了 最初预计,旧值为 "32",新值为 "36"。
  12. 2021-10-28 15:06:05, 由 王地福 编辑。
    修改了 总计消耗,旧值为 "12",新值为 "15"。
    修改了 预计剩余,旧值为 "20",新值为 "16"。
  13. 2021-10-28 19:12:49, 由 李振宇 编辑。
    修改了 总计消耗,旧值为 "15",新值为 "17"。
    修改了 预计剩余,旧值为 "16",新值为 "12"。
  14. 2021-10-29 15:39:30, 由 fengjibo 编辑。
    修改了 总计消耗,旧值为 "17",新值为 "21"。
    修改了 预计剩余,旧值为 "12",新值为 "8"。
  15. 2021-11-01 09:14:51, 由 李振宇 编辑。
    修改了 总计消耗,旧值为 "21",新值为 "36"。
    修改了 预计剩余,旧值为 "8",新值为 "4"。
  16. 2021-11-01 09:18:09, 由 fengjibo 编辑。
    修改了 总计消耗,旧值为 "36",新值为 "40"。
    修改了 预计剩余,旧值为 "4",新值为 "0"。
  17. 2021-11-01 09:30:15, 由 程伟 完成。
    修改了 总计消耗,旧值为 "40",新值为 "41"。
    修改了 任务状态,旧值为 "doing",新值为 "done"。
    修改了 由谁完成,旧值为 "",新值为 "chengwei"。
    修改了 实际完成,旧值为 "0000-00-00 00:00:00",新值为 "2021-11-01 09:30:15"。
  18. 2023-06-14 19:47:36, 由 程伟 关闭。
    修改了 任务状态,旧值为 "done",新值为 "closed"。
    修改了 指派给 ,旧值为 "chengwei",新值为 "closed"。
    修改了 由谁关闭,旧值为 "",新值为 "chengwei"。
    修改了 关闭时间,旧值为 "0000-00-00 00:00:00",新值为 "2023-06-14 19:47:36"。
    修改了 关闭原因,旧值为 "",新值为 "done"。
所属迭代 【主干】产品中心11月第一个版本(2021年)
所属模块 赛盒科技  赛盒ERP管理系统   物流发货组
相关需求 【物流】PC端、网页端、终端机语言提示增加本地存储
指派给 Closed 于 2023-06-14 19:47:36
任务类型 后端
任务标签 初始
开发组
任务状态 已关闭
进度 100%
优先级 P2
关键词
抄送给
由谁创建 程伟 于 2021-10-21 11:12:26
由谁完成 程伟 于 2021-11-01 09:30:15
由谁取消 暂无
由谁关闭 程伟 于 2023-06-14 19:47:36
关闭原因 已完成
最后编辑 程伟 于 2023-06-14 19:47:36
团队 最初预计 总计消耗 预计剩余
工时信息
最初预计 36工时
总计消耗 41工时
预计剩余 0工时
预计开始 0000-00-00
实际开始 2021-10-26
截止日期 2021-10-28