当前位置:首页 > 政务公开 > 法律法规 > 地方性法规

福建省邮政条例

(2022年5月27日福建省第十三届人民代表大会常务委员会第三十三次会议通过)

2022-06-17 15:59
| | | |

福建省人民代表大会常务委员会公告

〔十三届〕第七十五号

  《福建省邮政条例》已由福建省第十三届人民代表大会常务委员会第三十三次会议于2022年5月27日通过,现予公布。本条例自2022年7月1日起施行。

 

  福建省人民代表大会常务委员会

  2022年5月27日

 

目 录

  第一章 总则

  第二章 规划与建设

  第三章 邮政服务

  第四章 快递业务

  第五章 安全保障

  第六章 监管与促进

  第七章 法律责任

  第八章 附则

第一章 总 则

  第一条 为了保障邮政普遍服务,加强对邮政市场的监督管理,维护用户合法权益,促进邮政业健康发展,根据《中华人民共和国邮政法》和有关法律、行政法规,结合本省实际,制定本条例。

  第二条 在本省行政区域内从事邮政业规划、建设、服务、管理、监督等活动,适用本条例。

  第三条 县级以上地方人民政府应当将邮政业发展纳入国民经济和社会发展规划,保障邮政业与经济社会协调发展,依照国家有关规定承担邮政领域地方财政事权和支出责任。

  第四条 省、设区的市邮政管理部门负责本行政区域内的邮政普遍服务和邮政市场的监督管理工作。

  邮政管理部门可以依法委托县级以上地方人民政府指定的部门或者依法成立的管理公共事务的组织实施行政处罚。

  县级以上地方人民政府有关部门按照各自职责,做好邮政市场的相关监督管理工作。

  第五条 地方各级人民政府及其有关部门应当对邮政企业提供邮政普遍服务给予政策和资金支持。

  鼓励和支持快递企业发展,推进快递服务体系和快递进村工程建设,提高服务质量,满足社会需求。

  第六条 邮政企业、快递企业应当按照国家规定的相关标准,为用户提供迅速、准确、安全、方便的服务。

第二章 规划与建设

  第七条 县级以上地方人民政府应当组织编制邮政快递服务设施专项规划,并纳入国土空间规划,保障邮政业与当地经济社会协调发展。

  第八条 用于邮政普遍服务的邮政营业场所、邮件处理和储运场所建设用地,应当纳入年度国有建设用地供应计划。符合划拨用地目录的非营利性邮政设施用地依法以划拨方式供应,免征城市基础设施配套费。未经批准,邮政企业不得改变土地用途。

  县级以上地方人民政府应当支持快递物流园区、快件处理中心建设,项目建设用地按照规定享受相关优惠政策。

  第九条 城乡建设时,应当根据国土空间规划的要求,同时配套建设提供邮政普遍服务的邮政设施。城市建成区已有的邮政设施不能满足邮政普遍服务要求的,经依法批准后予以扩建或者重建。

  较大的车站、机场、港口、高等院校和酒店等公共场所应当设置提供邮政普遍服务的邮政营业场所,并为邮政企业装卸、转运邮件或者邮政车辆出入提供必要的场所或者通道。大型厂矿、综合性商贸中心、工业产业园区等单位应当根据需要为邮政企业提供办理邮政普遍服务业务的场所。

  第十条 因公共利益需要征收邮政营业场所或者邮件处理和储运场所的,设区的市、县级人民政府应当依法予以补偿安置。对邮政营业场所或者邮件处理和储运场所未作出妥善安排前,不得征收。

  第十一条 未实现直接投递到户的农村地区应当由村民委员会设置村邮站。邮政企业应当加强对村邮站的业务指导,并与村邮站签订邮件接收、转投协议。

  地方各级人民政府应当为乡镇邮政设施和村邮站的建设、运营、管护提供政策和资金支持。

  第十二条 交通运输、市场监督管理、税务、供销合作社等单位应当支持村邮站开展农业生产资料、日用消费品和农副产品配送服务。

  鼓励村邮站叠加电商、快递等增值业务,拓展服务功能。

  第十三条 城市街道、广场、公园等公共场所应当按照方便群众的原则设置邮筒(箱)、邮政报刊亭等公用设施,由邮政企业编制设置方案经城市管理部门批准后统一建设、统一管理。邮筒(箱)和占地十平方米以下的邮政报刊亭免收城市道路占用费。

  邮筒(箱)、邮政报刊亭确需迁移的,应当依法妥善安置。

  第十四条 住宅建筑工程应当按照规划在方便邮件、快件投递位置合理布局并配套建设邮政快递末端综合服务场所,邮政管理部门应当加强监督管理。

  新建住宅建筑工程,应当将融合邮件、快件投递接收功能的智能信包箱工程纳入建筑工程统一规划、设计、施工和验收,并与建筑工程同时投入使用。建设单位应当按照国家规定的标准设置智能信包箱,并依法组织验收,未经验收合格的,建筑工程不得交付使用。

  运营智能信包箱产生的收入,在扣除合理成本后属于业主共有,用于智能信包箱的保养维修,并定期公布,接受业主的监督。

  鼓励和支持传统信报箱升级改造为智能信包箱。使用智能信包箱开展邮政普遍服务的,不得收取费用。

  第十五条 物业服务人应当做好智能信包箱日常使用管理工作,并可以委托第三方主体运营维护。

  邮政管理部门应当引导邮政、快递等相关企业合理使用智能信包箱,并在系统数据对接、日常使用与运营维护等方面加强监督管理,协调解决智能信包箱使用过程中的问题。智能信包箱使用管理办法由省邮政管理部门制定。

  第十六条 设置智能信包箱应当为智能信包箱管理平台接入邮政管理部门的监管信息系统预留相应的数据接口,并按照规定与邮政管理部门的监管信息系统联网。

  智能信包箱管理平台应当与邮政企业、快递企业业务系统数据对接。邮政企业、快递企业在确保信息数据安全情况下,应当为数据对接提供便利。

第三章 邮政服务

  第十七条 邮政企业提供邮政普遍服务,应当符合邮政普遍服务标准,确保服务时限和邮件安全,及时足额兑付邮政汇款。

  未经邮政管理部门批准,邮政企业不得停止办理或者限制办理邮政普遍服务业务;因不可抗力或者其他特殊原因暂时停止办理或者限制办理的,邮政企业应当及时公告,采取相应的补救措施,并向邮政管理部门报告。

  第十八条 邮政企业应当采用现代科学技术和管理手段,发挥邮政网络、邮政设施、安全保障、信息传递的优势,增强邮政普遍服务能力,满足社会的用邮需求。

  第十九条 邮政企业应当在其营业场所的醒目位置公示或者以其他方式公布其服务项目、服务内容、资费标准、收费依据、邮件和汇款的查询以及损失赔偿办法,在邮筒(箱)上标明开取信件的次数和时间,并按时开取信件。

  第二十条 邮政企业应当建立和完善服务质量管理制度,设置监督投诉电话、信箱,公布监督方式,接受用户对邮政企业服务质量的监督和投诉;对于用户的投诉,邮政企业应当在七日内,将处理结果答复用户。

  第二十一条 新建住宅小区、新设立的单位应当办理用户通邮手续。用户变更名称、邮件投递地址的,应当在变更前十日内书面通知邮政企业。

  邮政企业应当自受理用户办理通邮手续之日起七日内安排投递;暂不具备通邮条件的,应当与用户协商并签订协议,将邮件投递至用户指定的已通邮的邮件代收点或者信报箱、智能信包箱。

  第二十二条 地名管理部门设置地名标志,应当按照国家规定标明邮政编码。邮政企业应当协助提供相应地段的邮政编码。

  第二十三条 邮政企业从业人员投递邮件时,应当统一穿着具有组织标识的服装,并佩戴工号牌。

  机关、企事业单位、综合性商贸中心、工业产业园区、商用写字楼和住宅小区的物业服务人等应当为邮政企业投递邮件提供便利,不得无故阻碍邮政企业从业人员、投递车辆进入。

  单位收发室、物业服务人代收邮件时,应当当面核对签收,并负责邮件的保管、转交;对无法转交或者误收的邮件,及时通知邮政企业收回。

  第二十四条 经省邮政管理部门和省人民政府交通运输主管部门核定的带有邮政专用标志的邮政普遍服务运邮车辆,按照国家有关规定享受优惠政策。

  带有邮政专用标志的邮政普遍服务运邮车辆在执行邮件运递任务时,确需通过公安机关交通管理部门划定的禁行路线或者确需在禁止停车的地点停车的,经公安机关交通管理部门同意,在确保安全的前提下,可以通行或者临时停车。

  带有邮政专用标志的邮政普遍服务运邮车辆在运递邮件时,发生交通事故危及邮件安全的,公安机关交通管理部门应当及时通知邮政企业,并协助保护邮件安全。

  第二十五条 邮政企业及其从业人员不得有下列行为:

  (一)无故拒绝办理邮政业务;

  (二)擅自变更邮政普遍服务和特殊服务业务收费标准或者增加收费项目;

  (三)强迫或者误导用户使用高资费邮政业务;

  (四)法律、法规禁止的其他行为。

第四章 快递业务

  第二十六条 在本省行政区域内经营快递业务,应当依法取得快递业务经营许可。未经许可,任何单位和个人不得经营快递业务。

  邮政管理部门应当向社会公告快递业务经营许可证的颁发、注销等事项。

  第二十七条 快递企业设立分支机构或者合并、分立的应当向邮政管理部门备案。快递企业应当对使用其商标、字号或者快递运单的企业进行业务指导与培训,在服务标准、服务质量、运营安全、业务流程、损失赔偿、环保包装及从业人员保护等方面实行统一管理,并协调处理全网用户投诉。

  第二十八条 邮政管理部门会同县级以上地方人民政府公安机关交通管理等部门,依法规范快递服务车辆的管理和使用,加强对快递服务车辆统一编号和专用标识管理。

  提供快递服务的车辆应当喷涂快递专用标识。对带有快递专用标识的车辆,在确保安全的情况下,公安机关交通管理、交通运输、住房和城乡建设、城市管理及其他有关部门应当对其通行、停靠以及进社区揽收、投递等方面提供便利。

  第二十九条 快递企业应当加强服务质量管理,健全规章制度,完善服务保障,按照行业服务标准收寄、分拣、运输、投递快件。

  快递企业应当在营业场所、门户网站或者以其他方式向社会公布服务种类、服务时限、服务价格、投递范围、损失赔偿、投诉处理等服务承诺事项。

  快递企业分拣作业时,应当规范操作,不得以抛扔、踩踏或者其他危害快件安全的方法处理快件。

  第三十条 快递企业及其从业人员应当按照国家有关规定和行业标准要求的服务时限和投递范围进行投递。

  快递企业及其从业人员应当将快件投递到约定的收件地址、收件人或者收件人指定的代收人,并告知收件人或者代收人当面验收,收件人或者代收人有权当面验收。快递企业及其从业人员不得违反服务标准以增加资费为条件投递快件。

  第三十一条 快递企业停止经营快递业务的,应当事先向邮政管理部门报告,在营业场所、门户网站或者以其他方式向社会公告,并及时妥善处理收寄的快件。

  第三十二条 快递行业协会应当加强行业自律,为快递企业提供信息、培训等方面的服务,引导快递企业依法、诚信经营,促进快递行业的健康发展。

  第三十三条 本条例第二十条、第二十三条以及第二十五条第三项关于邮政企业及其从业人员的规定,适用于快递企业及其从业人员。本条例第二十九条、第三十条规定,适用于邮政企业及其从业人员。

第五章 安全保障

  第三十四条 邮政企业、快递企业应当落实安全生产主体责任,遵守安全生产的法律、法规,建立健全安全生产责任制,完善安全保障制度,加强安全生产管理和安全防范、风险排查和隐患治理,确保寄递渠道安全畅通。

  第三十五条 邮政企业、快递企业应当按照国家有关规定建立突发事件应急机制。发生重大服务阻断和安全事故时,邮政企业、快递企业应当立即启动应急处理预案,并按照有关规定及时向邮政管理部门和负有相关职责的部门报告。

  发生重大新发突发传染病、动植物疫情时, 邮政企业、快递企业应当按照地方各级人民政府防控要求,依法采取安全保障措施,加强邮件、快件消毒和从业人员个人卫生防护。运输冷链食品过程中禁止开箱、倒货,确有开箱、倒货必要的应当按照相关要求进行消毒。

  第三十六条 寄件人交寄邮件、快件的,应当出示本人有效身份证件,如实、准确、完整填写寄递信息,不得在邮件、快件内夹带禁止寄递物品,不得将禁止寄递物品匿报或者谎报为其他物品交寄。

  第三十七条 邮政企业、快递企业收寄邮件、快件应当依法对寄件人身份进行查验,并对内件进行验视,作出验视标识。寄件人拒绝验视内件、拒绝出示本人有效身份证件或者拒绝登记身份信息的,邮政企业、快递企业不得收寄。

  邮政企业、快递企业应当使用符合邮政管理部门要求的实名收寄信息系统,与邮政管理部门实名收寄信息监管平台联网,及时收集、录入、报送实名收寄信息,并确保有关信息数据的真实、准确、完整。

  第三十八条 邮政企业、快递企业收寄邮件、快件和寄件人交寄邮件、快件,应当遵守国家关于禁止寄递、限制寄递或者临时管控物品的规定。

  邮政企业、快递企业发现寄件人交寄禁止寄递物品或者临时管控物品的,应当拒绝收寄;发现已经收寄的邮件、快件中有疑似禁止寄递物品或者临时管控物品的,应当立即停止分拣、运输、投递,及时向邮政管理部门和负有相关职责的部门报告,并按照国家有关禁止寄递物品管理的规定处理。

  第三十九条 邮政企业、快递企业接受网络购物、电视购物和邮购等经营者委托提供寄递服务的,应当与委托方签订安全协议,并一次性查验寄件人的有效身份证件,登记相关身份信息,留存有效身份证件复印件。寄件人为法人或者其他组织的,邮政企业、快递企业应当核对、记录其统一社会信用代码,留存法定代表人或者相关负责人的有效身份证件复印件。

  邮政企业、快递企业应当将安全协议以及用户身份信息保存至协议终止后不少于一年,并将与其签订安全协议的用户名单报邮政管理部门备案。

  第四十条 邮政企业、快递企业应当建立健全安全检查制度,按照规定配备符合国家标准或者行业标准的安全检查设备,安排具备专门技能的人员对邮件、快件进行安全检查,并对经过安全检查的邮件、快件作出安全检查标识。

  第四十一条 邮政企业、快递企业、智能信包箱管理单位应当按照法律、法规以及国家有关规定,建立健全信息安全保障制度,防止信息泄露、毁损、丢失。

  邮政企业、快递企业、智能信包箱管理单位及其从业人员应当在寄递服务中依法使用用户信息,不得在寄递详情单上记录用户有效身份证件的类型、号码,不得出售、泄露或者非法提供寄递服务过程中知悉的用户信息。发生或者可能发生用户信息泄露的,邮政企业、快递企业、智能信包箱管理单位应当立即采取补救措施并向所在地邮政管理部门报告。

第六章 监管与促进

  第四十二条 邮政管理部门应当建立健全监督检查制度,加强邮政普遍服务和邮政市场的监督检查,依法协助财政、审计部门对邮政企业使用邮政普遍服务补贴资金实施监督,依法查处违反邮政法律、法规的行为。

  第四十三条 邮政管理部门依法履行监督管理职责,可以采取下列监督检查措施:

  (一)对邮政企业、快递企业或者涉嫌发生违反邮政法律、法规活动的其他场所实施现场检查;

  (二)对邮政行业运行安全进行监测、预警和应急管理;

  (三)查阅、复制有关文件、资料、凭证、电子数据;

  (四)法律、法规规定的其他措施。

  对邮政管理部门依法进行的监督检查,被检查单位和个人应当配合,如实提供情况和有关资料,不得拒绝、拖延、阻碍,不得转移、隐匿、篡改、毁弃原始资料。

  第四十四条 邮政管理部门依法进行监督检查时,监督检查人员不得少于二人,并出示执法证件。对监督检查中知悉的国家秘密、商业秘密、个人隐私负有保密义务。

  第四十五条 邮政管理部门应当建立邮政普遍服务、快递服务质量社会监督网络,聘请社会监督员对邮政普遍服务、快递服务质量进行监督。

  第四十六条 邮政管理部门应当建立申诉、举报制度,及时妥善处理申诉、举报的事项。用户对邮政企业、快递企业投诉处理结果不满意的,可以向邮政管理部门申诉,邮政管理部门应当自接到申诉之日起三十日内答复申诉人。

  第四十七条 邮政企业、快递企业应当按照国家规定向邮政管理部门报送有关经营情况、服务质量自查情况和统计报表,并及时报告重大通信事故和重大服务质量问题。

  邮政管理部门应当组织或者委托评价机构开展以公众满意度、时限准时率和用户申诉率为核心的服务质量评价,并将评价结果向社会公布。

  第四十八条 邮政管理部门应当督促邮政企业、快递企业开展从业人员教育培训。人力资源和社会保障部门、工业和信息化部门及邮政管理部门按照职责分工管理实施快递工程技术人员职称评审工作,提高从业人员素质和技能,提高行业服务水平。

  邮政企业、快递企业应当建立从业人员实名档案,了解从业人员与劳动合同直接相关的基本情况,从业人员应当如实说明。企业所在地公安机关、国家安全机关配合做好相关工作。

  第四十九条 人力资源和社会保障部门、邮政管理部门、工会等按照各自职责依法保障邮政企业、快递企业从业人员合法权益。

  邮政企业、快递企业应当依法与其从业人员订立劳动合同,按时足额支付劳动报酬、缴纳社会保险费,提供符合国家标准的劳动防护用品;可以为灵活性、流动性较大的快递企业从业人员单独办理工伤保险,人力资源和社会保障部门应当建立健全相应的参保机制。鼓励为从业人员办理意外伤害等商业保险。

  邮政企业、快递企业应当建立合理的考核奖惩制度,完善针对从业人员的投诉澄清免责机制。

  第五十条 设区的市快递行业协会应当组织当地快递企业,根据当地职工平均工资水平,结合快件收派人员正常劳动时间内平均派送数量、劳动强度等因素,对末端派费进行具体核算,确定最低派费标准,并建立动态调整机制。省快递行业协会应当进行指导。邮政管理部门应当会同相关部门进行督促。

  第五十一条 县级以上地方人民政府及其有关部门应当采取措施,加强本地区邮政业绿色发展工作的组织实施,促进寄递包装物减量化、安全化和循环使用。

  生产企业、电商企业、邮政企业、快递企业应当执行邮政业绿色包装相关标准,使用符合国家规定的包装用品和胶带,禁止使用不可降解塑料袋等一次性塑料制品,减少二次包装。

  支持邮政企业、快递企业和电商企业、商业机构、便利店、物业服务人等合作开展快递包装可循环回收工作,规范快递包装废弃物分类投放和清运处置。

  第五十二条 支持闽台通邮基础设施建设,开辟闽台联运邮路,开通闽台邮政专船,扩大两岸邮件、快件运输空中直航范围,促进两岸之间互发各类邮件和快件的中转地和集散地建设。

  第五十三条 鼓励开展以下闽台邮政合作项目:

  (一)闽台之间相互设立快递企业或者快递企业分支机构;

  (二)闽台之间开展以书信、集邮、家乡包裹、特产礼品寄递等为主题的邮政合作交流;

  (三)闽台之间加强邮政业务的监管协作,提高安全性和通关速度;

  (四)闽台邮政、快递行业协会建立定期联络协调机制,推动同业人员定期对话、互访交流和业务合作;

  (五)国家和本省鼓励的其他项目。

  从事前款规定合作项目的,享受国家和本省相应的扶持政策。

第七章 法律责任

  第五十四条 违反本条例规定的行为,法律、行政法规已有法律责任规定的,从其规定。

  第五十五条 邮政企业违反本条例第二十五条规定、快递企业违反本条例第二十五条第三项规定,邮政企业、快递企业违反本条例第三十条第二款规定,由邮政管理部门责令限期改正,对邮政企业直接负责的主管人员和其他直接责任人员给予处分;有违法所得的没收违法所得,对邮政企业、快递企业可以处二千元以上一万元以下罚款;情节严重的,处一万元以上五万元以下罚款;涉及价格违法行为的,由价格主管部门依法处理。

  第五十六条 违反本条例第二十九条第三款规定,邮政企业、快递企业以抛扔、踩踏或者其他危害快件安全的方法处理快件的,由邮政管理部门责令改正,可以处三千元以上一万元以下罚款;情节严重的,处一万元以上三万元以下罚款。

  第五十七条 违反本条例第三十五条规定,邮政企业、快递企业有下列行为之一的,由邮政管理部门责令限期改正,可以处五千元以上二万元以下罚款:

  (一)未按照国家有关规定建立突发事件应急机制;

  (二)发生重大服务阻断时,未立即启动应急处理预案或者按照有关规定及时向邮政管理部门和负有相关职责的部门报告。

  第五十八条 违反本条例第三十八条第二款规定,邮政企业、快递企业发现已经收寄的邮件、快件中有疑似禁止寄递物品或者临时管控物品未按照规定处理并报告的,由邮政管理部门责令限期改正;逾期未改正的,处二千元以上一万元以下罚款。

  第五十九条 违反本条例第三十九条第一款规定,邮政企业、快递企业未与委托方签订安全协议的,由邮政管理部门责令限期改正;逾期未改正的,处五千元以上二万元以下罚款。

  第六十条 违反本条例第四十一条第二款规定,邮政企业、快递企业出售、泄露或者非法提供寄递服务过程中知悉的用户信息的,由邮政管理部门责令改正,没收违法所得,可以并处一万元以上五万元以下罚款;情节严重的,处五万元以上十万元以下罚款,并可以依法责令停业整顿直至吊销其快递业务经营许可证;邮政企业、快递企业人员构成犯罪的,依法追究刑事责任。

  第六十一条 违反本条例第四十七条第一款规定,邮政企业、快递企业未按照国家规定报送相关情况的,由邮政管理部门责令限期改正;逾期未改正的,处五千元以上二万元以下罚款。

第八章 附 则

  第六十二条 本条例所称快递企业是指经营在承诺的时限内快速完成信件、包裹、印刷品等物品的收寄、分拣、运输、投递业务(不包括同城快送业务)的企业。

  第六十三条 本条例自2022年7月1日起施行。福建省第十一届人民代表大会常务委员会第三十二次会议于2012年9月27日通过的《福建省邮政条例》同时废止。

附件:

政府文件全真版:

温馨提示: 请使用OFD阅读软件浏览源文件,如未安装点击下载

来源:福建日报

扫码关注中国福建微信

扫码关注中国福建微信

扫一扫在手机上查看当前页面

”进行咨询,后续会有业务部门人员进行回复哦。"; //模拟sessionid var rondom = ""; //默认300秒超时 var outTime = 300; //定时器计数 var count = 140; //用户无响应时间定时器 用于超期退出 var ref; //热点问题显示个数 var rows = 18; var status = 200; var siteUrl = ""; var index = -1; var size = ""; var rec; var voiceRefMap = new Map(); var secs = 20; //倒计时 var param; var num = 0; var switch2Text = false; var timeliness = 0;//响应及时性 var accuracy = 0;//答案准确性 var experience = 0;//互动体验性 var knowledgeNum = 0;//业务知识量 var suggest = "";//意见 var userLastInput = ""; var isRstSearch = false; var evaluateShow = true;//是否显示评价 // var listener = new window.keypress.Listener(); var queTemplate = Handlebars.compile($("#que_template").html()); var li = 0 var keyStatus = 0 //点击按键状态 1代表上键 2代表下键 var userOldInput = ""; //语音 $('#start_record').on('click', function () { startRec(); ifs="0"; $("#answerList").html(" ") if(window.bf && window.bf._voice) { if(window.bf._voice.closeState == 0) { window.bf._voice.closeState = 1; window.bf.getState('voiceClose', 1) } } }) //语音 $('#stop_record').on('click', function () { ifs=""; uploadRec(); $(".h-start1").hide() if(window.bf && window.bf._voice) { if(window.bf._voice.closeState == 1) { window.bf._voice.closeState = 0; window.bf.getState('voiceClose', 0) } } }) function onmouseover_(obj, e) { if (e == 1) { $(obj).css('color', 'blue'); $(obj.childNodes[0]).attr('src', 'img/ishelp1.png'); } else { $(obj).css('color', 'black'); $(obj.childNodes[0]).attr('src', 'img/ishelp3.png'); } } function onmouseout_(obj, e) { if (e == 1) { $(obj).css('color', '#999'); $(obj.childNodes[0]).attr('src', 'img/ishelp.png'); } else { $(obj).css('color', '#999'); $(obj.childNodes[0]).attr('src', 'img/ishelp2.png'); } } function timecount() { $('#lisening').html("(点击结束 " + secs + " 秒)"); secs = secs - 1; if (secs < 0) { uploadRec(); clearTimeout(param); } param = setTimeout(function () { timecount(); }, 1000); } var btnStartRecording = document.getElementById('start_record'); var btnStopRecording = document.getElementById('stop_record'); var isEdge = navigator.userAgent.indexOf('Edge') !== -1 && (!!navigator.msSaveOrOpenBlob || !!navigator.msSaveBlob); var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); var recorder; // globally accessible var microphone; // 语音调用的方法 function startRec() { $("#voice-label").html("(录音功能正在准备中)") // initVoice(); $("audio").each(function (index, item) { $(this)[0].pause(); }); $('.yy_btn_close').each(function (index, item) { $(this).removeClass().addClass("yy_btn"); }); clearTimeout(param); secs = 20; timecount(); if (!microphone) { captureMicrophone(function (mic) { //捕获传声器captureMicrophone microphone = mic; click(btnStartRecording); }); return; } var options = { type: 'audio', numberOfAudioChannels: 1, checkForInactiveTracks: false, bufferSize: 4096, recorderType: StereoAudioRecorder }; if (recorder) { recorder.destroy(); recorder = null; } $('.h-start2').hide(); $('.h-close').show(); $("#voice-label").text("(点击开始说话)"); recorder = RecordRTC(microphone, options); recorder.startRecording(); }; //停止录音的回调 function stopRecordingCallback() { if (!switch2Text) { var internalRecorder = recorder.getInternalRecorder(); var leftchannel = internalRecorder.leftchannel; var rightchannel = internalRecorder.rightchannel; // ------------------------------------------------------------ mergeLeftRightBuffers({ desiredSampRate: 8000, sampleRate: internalRecorder.sampleRate, numberOfAudioChannels: internalRecorder.numberOfAudioChannels, internalInterleavedLength: internalRecorder.recordingLength, leftBuffers: leftchannel, rightBuffers: internalRecorder.numberOfAudioChannels === 1 ? [] : rightchannel }, function (buffer, view) { var wavBlob = new Blob([buffer], { type: 'audio/wav' }); var blob = changeFormat(buffer); clearTimeout(param); var form = new FormData(); var filleName = rondomNum(true, 32, 32); form.append("siteId", siteId); form.append("random", rondom); form.append("upfile", blob, filleName + ".mp3"); //和普通form表单并无二致,后端接收到upfile参数的文件,文件名为recorder.mp3 var audio = document.createElement("audio"); audio.id = filleName + "_"; audio.style.cssFloat = "right"; audio.style.height = "32px"; audio.controls = true; audio.style.display = "none"; audio.src=/zwgk/flfg/dfxfg/202206/URL.createObjectURL(wavBlob); $("#answerList").append(audio); var values = {value: filleName, isvoice: true}; appendHtml(queTemplate(values), 3); // audio.play(); isVoiceAsk = true; $.ajax({ type: 'POST', url: "/isr/public/talk/uploadMp3?siteId=2c9bc5436f844983016f84499f1b00ac", data: form, cache: false, processData: false, contentType: false, success: function (ret) { //console.log("resresres",ret); //console.log(importVoice,"2202"); var json = $.parseJSON(ret); $("#" + json.id).val(json.result); if (json.qastatus == 1) { qaResult(json.result); } } }); count = outTime; }); } else { switch2Text = false; } // if (isSafari) { // click(btnReleaseMicrophone); // } } function uploadRec() { $('.h-start2').show(); $('.h-close').hide(); recorder.stopRecording(stopRecordingCallback); }; function isSolve(e) { var status = e; $.ajax({ headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, type: "POST", url: isSolveSessionUrl, async: true, data: "{\"status\":\"" + status + "\",\"rondom\":\"" + rondom + "\"}", success: function (result) { }, }) } function captureMicrophone(callback) { // btnReleaseMicrophone.disabled = false; if (microphone) { callback(microphone); return; } if (typeof navigator.mediaDevices === 'undefined' || !navigator.mediaDevices.getUserMedia) { $('.h-start2').show(); $('.h-close').hide(); var sys = isAndroidOrIOSOrPc(); if (sys == "pc") { alert("该浏览器不支持语音录入,
请使用谷歌、火狐等主流浏览器。", {area: ['320px', '80px']}); } else if (sys == "ios") { alert("该浏览器不支持语音录入,
请将您的IOS操作系统升级最新版本,并使用safari浏览器打开使用。", {area: ['320px', '80px']}); } else if (sys == "android") { alert("该浏览器不支持语音录入,
请使用系统自带浏览器打开使用。", {area: ['320px', '80px']}); } else { alert("您当前的操作系统不支持语音录入。", {area: ['300px', '50px']}); } } navigator.mediaDevices.getUserMedia( { audio: isEdge ? true : {echoCancellation: false} } ).then(function (mic) { callback(mic); }).catch(function (error) { alert("该浏览器不支持语音录入。
或您拒绝了语音授权", {area: ['300px', '60px']}); $("#voice-label").html("(点击开始说话)"); $('.h-start2').show(); $('.h-close').hide(); }) } /** * randomWord 产生任意长度随机字母数字组合 * randomFlag-是否任意长度 min-任意长度最小位[固定位数] max-任意长度最大位 * @param randomFlag * @param min * @param max * @returns {string} */ function rondomNum(randomFlag, min, max) { var str = "", range = min, arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'U', 'V', 'W', 'X', 'Y', 'Z']; // 随机产生 if (randomFlag) { range = Math.round(Math.random() * (max - min)) + min; } for (var i = 0; i < range; i++) { pos = Math.round(Math.random() * (arr.length - 1)); str += arr[pos]; } return str; } function qaResult(keyWord) { $("#completionQues").html(""); $("#tc_Big_box").hide(); $("#keyLength").html(50); var url = answerUrl; if (isRstSearch) { url = rstAnswerUrl; } $.ajax({ headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, //请求方式 type: "POST", //请求地址 url: url, dataType: "json", //数据,json字符串 data: "{\"question\":\"" + keyWord + "\",\"siteId\":\"" + siteId + "\",\"rondom\":\"" + rondom + "\"}", //请求成功 success: function (data) { // console.log(data); if (!data.error) { if (data.msg) { appendHtml(data.msg, 1); return; } recordId = data.recordId; var isVoice = data.isVoice; //匹配答案 var match = data.result.matchQuestions; //相似问题 var like = data.result.likeQuestions; var fill = data.result.fillQuestions; //敏感词 var filter = data.result.filterList; var ischat = data.result.ischat; var rstdata = data.result.rstdata; parseData(match, like, filter, ischat, keyWord, rstdata, isVoice); } }, //请求失败,包含具体的错误信息 error: function (e) { if (e.responseText.indexOf('script') > 0) { var msg = e.responseText.substring(e.responseText.indexOf('\'') + 1, e.responseText.lastIndexOf('\'')); appendHtml(msg, 1) } } }); $("#keyWord").val(""); } /** * 后端返回值解析 * @param match * @param like * @param filter */ function parseData(match, like, filter, ischat, textValue, rstdata, isVoice) { voiceBtnId = genUuid(); isRstData = false; $("#tc_Big_box").hide(); if (rstdata && rstdata.list.length > 0) { var values = { robotName: robotName, img: robotImage, rstdata: rstdata, unknow: unknow, index: ++num, isWebSearch: isRstSearch, voiceBtnId: voiceBtnId }; appendHtml(rstTemplate(values), 8); var smartAnswer = rstDataAddIndex(rstdata.list); smartList = getSmartList(smartAnswer); isRstData = true; isRstSearch = false; playVoiceAsk(); return; } //敏感词 if (filter && filter.length > 0) { var words = ""; jQuery.each(filter, function (i, item) { var obj = JSON.parse(item); words += obj.word + ","; }); if (words.length > 0) words = words.substring(0, words.length - 1); var values = { robotName: robotName, isVoice: isVoice, img: robotImage, value: words, index: ++num, isSen: true, voiceBtnId: voiceBtnId }; appendHtml(othTemplate(values), 8); playVoiceAsk(); return; } //智能问答 if (match) { if (match.length > 0 && ischat == 1) { var values = { question: match[0].question, robotName: robotName, img: robotImage, answer: match[0].answer, answerId: match[0].answerId, uuid: match[0].uuid, index: ++num, voiceTime: match[0].voiceTime, isVoice: isVoice, isTime: match[0].voiceTime === "undefined" || match[0].voiceTime === "" ? false : true, iswenda: true, like: like, voiceBtnId: voiceBtnId }; appendHtml(ansTemplate(values), 8); //寒暄 } else if (match.length > 0 && ischat == 0) { var values = { robotName: robotName, img: robotImage, answer: match[0].answer, answerId: match[0].answerId, uuid: match[0].uuid, isVoice: isVoice, index: ++num, voiceTime: match[0].voiceTime, isTime: match[0].voiceTime === "undefined" || match[0].voiceTime === "" ? false : true, iswenda: false, voiceBtnId: voiceBtnId }; appendHtml(ansTemplate(values), 8); } else if (match.length == 0 && like.length > 0) { if (textValue != null) { if (textValue == like[0].question.replace(/\n/g, "")) { // console.log("匹配第一条:" + like[0].question.replace(/\n/g, "")); var values = { robotName: robotName, img: robotImage, answer: like[0].answer, uuid: like[0].uuid, index: ++num, isVoice: isVoice, iswenda: true, voiceBtnId: voiceBtnId, }; appendHtml(ansTemplate(values), 8); playVoiceAsk(); return; } } var values = { robotName: robotName, img: robotImage, like: like, keyWord: textValue, isVoice: isVoice, index: ++num, voiceBtnId: voiceBtnId, webSearch: webSearchOn }; var smartAnswer = likeDataAddIndex(like); smartList = getSmartList(smartAnswer); appendHtml(simTemplate(values), 8); } else if (match.length == 0 && like.length == 0) { var values = { robotName: robotName, isVoice: isVoice, isUnknow: true, unknow: unknow, index: ++num, img: robotImage, voiceBtnId: voiceBtnId }; appendHtml(othTemplate(values), 8); } } else { var values = { robotName: robotName, isVoice: isVoice, isUnknow: true, index: ++num, unknow: "真的非常抱歉,从网站也未能检索到您需要的信息,您可以前往福建省12345平台进行咨询。", img: robotImage, voiceBtnId: voiceBtnId }; appendHtml(othTemplate(values), 8); } playVoiceAsk(); } /** * * @param html 追加的html * @param type 类型 1:欢迎及警告 3:用户 8:完全匹配及寒暄库 * @param isvoice 是否语音 */ function appendHtml(value, type) { var commonHtml = ""; if (type == 1) { var values = {robotName: robotName, isSys: true, value: value, img: robotImage}; commonHtml = othTemplate(values); } else if (type == 8) { commonHtml = value; } else if (type == 3) { commonHtml = value; } else { commonHtml = value; } $("#answerList").html(" ") $("#answerList").append(commonHtml); var div = document.getElementById('answerList'); div.scrollTop = div.scrollHeight; } $(window).keydown(function (e) { if (e.keyCode == 38) { index = (index-- < 0 ? size - 1 : index); $(".completionQues").find("li").each(function (_index, item) { if (index == _index) { $(this).addClass("li_hover"); } else { $(this).removeClass("li_hover"); } }) } else if (e.keyCode == 40) { index = (index++ > size - 1 ? 0 : index); $(".completionQues").find("li").each(function (_index, item) { if (index == _index) { $(this).addClass("li_hover"); } else { $(this).removeClass("li_hover"); } }) } else if (e.keyCode == 13) { return; } }) function play(id, ele) { $("audio").each(function (index, item) { $(this)[0].pause(); }); var audio = document.getElementById(id); console.log(audio,"0202");//测试 audio.loop = false; audio.addEventListener('ended', function () { $(ele).find("span").eq(0).removeClass().addClass("yy_btn"); }, false); audio.load(); var _class = $(ele).find("span").eq(0).attr("class"); if (_class == "yy_btn") { $(".yy_btn_close").each(function (index, item) { $(this).removeClass().addClass("yy_btn"); }) $(ele).find("span").eq(0).removeClass().addClass("yy_btn_close"); audio.play(); } else if (_class == "yy_btn_close") { $(ele).find("span").eq(0).removeClass().addClass("yy_btn"); audio.pause(); } } function isAndroidOrIOSOrPc() { var u = navigator.userAgent, app = navigator.appVersion; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //Android终端 var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); // ios终端 if (IsPC()) { return "pc"; } else if (isAndroid) { return "android"; } else if (isIOS) { return "ios"; } else { return "other"; } } function IsPC() { var userAgentInfo = navigator.userAgent; var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod", "MicroMessenger"]; var flag = true; for (var v = 0; v < Agents.length; v++) { if (userAgentInfo.indexOf(Agents[v]) > 0) { flag = false; break; } } return flag; } $("#yuyin").click(function(){ $(".h-start1").show(); }) $("#jianpan").click(function(){ if(ifs){uploadRec()} $(".h-start1").hide() })