- 浏览: 300681 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
masuweng:
如何给新人机会 -
masuweng:
多sql结果集按列合并新结果报表实现方案 -
Ahe:
赞
坚持长跑方能赢 -
masuweng:
好好好
程序员如何更好的了解自己所做的事情 -
小楠人:
laoguan123 写道楼主好,使用过一些excel导入导出 ...
excell导入导出
例子一
例子二
module Api module AobotQuotation def self.query(body = {}) begin quotation_client = Savon.client(wsdl: "#{Settings.robot_quotation_url}/QuotePriceService.svc?singleWsdl", log: false, pretty_print_xml: false) # 0:ok,有结果,-1:未找到合成路径,1:未接收到报价商品信息,2:JCHEM服务异常,3:WCF服务异常 response = quotation_client.call(:get_one_step_price, message: {info: body.to_json}) result = JSON.parse(response.body[:get_one_step_price_response][:get_one_step_price_result]) return result rescue return {'Result' => {'ErrCode' => 3}} end end def self.artificial_quotes(body = {}) begin client = Savon.client(wsdl: "#{Settings.robot_quotation_url}/QuotePriceService.svc?singleWsdl", log: false, pretty_print_xml: false) # 0:ok,有结果,-1:未找到合成路径,1:未接收到报价商品信息,2:JCHEM服务异常,3:WCF服务异常 response = client.call(:artificial_quotes, message: body) return response.body[:artificial_quotes_response][:artificial_quotes_result] rescue return '接口异常。' end end end end -------- module Api module Aide def self.query(cas_number: "", product_num: "", ak_num: "") client = Savon.client(wsdl: "#{Settings.bide_quotation_url}?wsdl", log: false, pretty_print_xml: false) body = {"CASNumber" => cas_number, "ProductNum" => product_num, "AKNum" => ak_num, "client_id" => Settings.bide_client_id, "client_secret" => Settings.bide_client_secret} response = client.call(:get_stock_price_purity_data_cn, message: body.as_json) result = JSON.parse(response.body[:get_stock_price_purity_data_cn_response][:get_stock_price_purity_data_cn_result]) end def self.get_prices(cas) result = query(cas_number: cas) prices = [] if result['ret'].to_i == 0 result['rows'].each do |row| next if row['Price'].to_f <= 0 package = row['PackSize'].to_f unit = row['PackSize'].to_s.gsub(/^\d+/, '').downcase next if package <= 0 || !['g', 'mg', 'kg', 't', 'ml', 'l'].include?(unit) next if OrderDetail.new.convert_unit(package, unit, 'g').to_f > row['Weight'].to_f prices << {package: package, unit: QuotationDetail.package_units[unit], price: row['Price'].to_f, art_no: row['ProductNum'], purity: row['Purity']} end end prices end end end
例子二
# Soap gem 'soap4r' gem 'savon'
def download_msds order_item = OrderItem.find(params[:order_item_id]) msds = Msds.new(order_item) result, flag = msds.generate send_data msds.render, filename: 'iChemical' << (flag ? '' : '-GT') << '-MSDS-' << order_item.order_item_no << '.pdf',type: "application/pdf", disposition: "attachment" end
class Msds def initialize(order_item) super() @order_item = order_item @chemical = order_item.chemical @result = nil end def client client = Savon.client do wsdl MSETTING["wsdl_url"] ssl_verify_mode :none log true end end def generate if @order_item.msds_record.present? @result, flag = complete_modify_msds(@order_item.msds_record) else if call_msds[0].nil? @result, flag = call_fixed_msds else @result, flag = call_msds end end end def call_msds response = client.call(:generate_msds, message: { cas: @chemical.cas, catalogueNo: @chemical.catalog_no }) [response.body[:generate_msds_response][:generate_msds_result], true] end def call_fixed_msds response = client.call(:generate_fixed_msds, message: { cas: @chemical.cas, catalogueNo: @chemical.catalog_no }) [response.body[:generate_fixed_msds_response][:generate_fixed_msds_result], false] end def request_modify_msds response = client.call(:request_modify_msds, message: { cas: @chemical.cas }) response.body[:request_modify_msds_response][:request_modify_msds_result][:string] end def complete_modify_msds(msds) response = client.call(:complete_modify_msds, message: { cas: @chemical.cas, catalogueNo: @chemical.catalog_no, name: msds.name, hazardsIdentification: msds.hazardsIdentification,other: msds.other, purity: msds.purity}) [response.body[:complete_modify_msds_response][:complete_modify_msds_result], true] end def render Base64.strict_decode64(@result).force_encoding('UTF-8') end end
发表评论
-
git仓库创建
2020-09-04 15:33 707推送现有文件夹 cd existing_folder git ... -
puma高并发
2020-08-19 09:31 473nginx突发大量502报错 top看一下,cpu的占用并不高 ... -
searchkick
2019-04-10 11:30 0# 通用查询块(条件) def general_ ... -
导入线下excell业务数据按权重匹配线上数据
2019-03-07 11:00 890业务场景:(系统间还没有接口对调,订单号暂时需要线下处理) 线 ... -
两对象同时映射一对一和一对多
2019-02-20 10:14 834class Kpi::Team < Applicat ... -
ruby一些类加载方式
2018-12-21 10:12 564require_dependency 'order/sco ... -
基于ruby的gem remotipart的异步上传文件
2018-12-21 10:11 530针对某一对象保存实例化之前,异步上传图片保存。 gem ' ... -
基于html2canvas的长图分享
2018-12-21 10:11 1155<span class="ui label ... -
rails处理上传读取excell&生成excell
2018-12-20 14:15 968gem 'spreadsheet' gem 'roo', ... -
基于ruby Mechanize的爬虫
2018-12-20 13:09 667def self.sang_carwler ... -
一些常用加密方式
2018-12-20 13:02 730sign = OpenSSL::Digest::SHA256. ... -
ruby 调用restful接口示例
2018-12-20 12:02 924链接参数中添加token def self.query_p ... -
rails错误日志记录
2018-12-19 14:41 756Rails中对日志的处理采用的是“消息-订阅”机制,各部分组件 ... -
railsAPI接收Base64文件
2018-12-18 11:05 1036tmp_dir = " ... -
关于国际商城现货展示与购物车的费用设计
2018-11-15 18:34 440关于国际商城现货展示 ... -
基于多线程的全局变量
2018-10-31 19:50 1158def current_nation def ... -
hash最小值过滤算法
2018-10-31 09:52 1084[["数量","包装" ... -
阿里云裸机部署rails运用
2018-10-08 20:33 1381登录阿里云后首先 sudo apt-get update a ... -
打包订单单据发给货代
2018-09-11 15:43 1179pdf&excell&png # rend ... -
基于mini_magick多图片合并/添加水印
2018-07-02 17:44 1707class ImageService requi ...
相关推荐
Savon库的出现,弥补了Ruby在处理SOAP服务时的不足,为开发者提供了方便的接口和丰富的功能。 首先,让我们深入了解一下Savon的工作原理。Savon的核心在于解析和构建SOAP消息。当与SOAP服务通信时,它会将Ruby代码...
Ruby Savon Gem是专门为Ruby编程语言设计的一个库,用于处理SOAP(简单对象访问协议)服务。SOAP是一种在分布式环境中交换结构化和类型化的信息的协议,通常用于Web服务。Savon Gem允许Ruby开发者轻松地与SOAP服务器...
savon-ruby-gem
萨翁 重金属SOAP客户端 | | 版本2 Savon版本2可通过,并可通过以下方式安装: $ gem install savon 或将其添加到您的Gemfile中,如下所示: ... 有关更多示例,您应该检查。 Ruby版本支持 master -MRI 2.5、2.
可能会介绍如何使用像HTTParty、 curb 或者savon这样的库来创建和消费这些服务,以及如何处理身份验证、错误处理和数据格式转换。 3. **微服务架构**:随着微服务架构的流行,书中可能会讨论如何利用Ruby构建和管理...
当前支持的产品Google AdWords API Google Ad Manager API客户端库功能支持记录传入和传出SOAP消息支持记录请求信息基于Savon库兼容Ruby 2.1、2.2、2.3和2.4 OAuth2和OAuth2 JWT内置身份验证API调用的参数编号和类型...
使用 ruby 对 Magento API 和 DB 进行基准测试。 现在,脚本将简单地对customer.info soap api 调用进行基准测试,并将其与等效的 mysql 查询进行比较。 随意 fork 并向其添加更复杂的行为。 ##Usage Clone ...
在Ruby 1.9上,它需要savon gem。 我们没有将Savon指定为依赖项,因此您必须自己做。 使用Rails时,请将其添加到您的Gemfile中: gem 'eurovat'gem 'savon', :platforms => :ruby_19密码验证我们的宝石使用带有PGP...
派Faction 是 Atlassian Crowd 的 SOAP API 的客户端。安装将此行添加到应用程序的 Gemfile 中: gem 'faction', github: 'onesto/faction'然后执行: $ bundle或者自己安装: $ gem install faction用法用户认证 ...
该项目是一个基于Sinatra和Savon(SOAP)的小型Ruby应用程序,可以更轻松地访问openLigaDB.de接口。 - Communitybasierte Sport-Ergebnisse - Details zur SOAP Schnittstelle [](REST / JSON Api和语言=&标签= ...
在压缩包文件"Distributeur%20de%20savon_envoi.zip"中,可能包含了项目的所有相关文件,如MATLAB代码、模型文件、仿真结果、报告文档等。解压后,我们可以深入研究项目的具体实现细节,包括模型的结构、参数设定、...