当前位置: 首页 > news >正文

jsp网站服务器如何做防护百度域名注册查询

jsp网站服务器如何做防护,百度域名注册查询,做婚纱网站的图片,电信公司网络维护起因&#xff1a;最近公司要发票自动匹配&#xff0c; 比如财务输入10000W块&#xff0c;找到发票中能凑10000的。然后可以快速核销。 废话不多&#xff0c; 一 官方文档 https://developers.google.cn/optimization/pack/knapsack?hlzh-cn 二 POM文件 <!--google 算法包…

起因:最近公司要发票自动匹配,

比如财务输入10000W块,找到发票中能凑10000的。然后可以快速核销。

废话不多,

一 官方文档

https://developers.google.cn/optimization/pack/knapsack?hl=zh-cn

二 POM文件

        <!--google 算法包--><dependency><groupId>com.google.ortools</groupId><artifactId>ortools-java</artifactId><version>9.9.3963</version></dependency><!--google 算法包-->

三 代码

1 查询业务数据

说明:根据条件查询List<FsBill>,

由于发票金额的匹配,只有一个维度,所以设置values=amount,

然后调用knapsackSolver_invoice背包核心算法。

    @Overridepublic List<FsBill> solverBill(CheckingBill_Req req) {List<FsBill> fsBills = findCheckingBill(req);//背包算法只支持Long,所以amount*1000转换//由于不需要考虑价值因素,所以设置values=amount.这样可以匹配正好的金额。long[] values = fsBills.stream().mapToLong(x -> x.getTotalRateAmount().multiply(new BigDecimal(1000)).longValue()).toArray();//金额:小数*1000,作整数处理。long[][] amount = {values};//总金额*1000,作整数处理。long[] capacities = {req.getTotalAmount().multiply(new BigDecimal(1000)).longValue()};List<Integer> fsBillIndexs = knapsackSolver_invoice(values, amount, capacities);List<FsBill> solverBill = new ArrayList<>();if (!CollectionUtils.isEmpty(fsBillIndexs)) {for (Integer i : fsBillIndexs) {solverBill.add(fsBills.get(i));}}return solverBill;}

2 背包核心算法

说明:

values:代表物品价值(发票只有一个金额维度,所以values=weights)

weights:物品重量(此处可以传递发票金额amount)

返回的是List<Integer>数组下标,可以对应到List<FsBill>的对象。

@Overridepublic List<Integer> knapsackSolver_invoice(long[] values, long[][] weights, long[] capacities) {//加载OR-TOOL本地库Loader.loadNativeLibraries();//开始业务System.out.println("=========Begin : 匹配发票");KnapsackSolver solver = new KnapsackSolver(KnapsackSolver.SolverType.KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER, "test");solver.init(values, weights, capacities);final long computedValue = solver.solve();ArrayList<Integer> packedItems = new ArrayList<>();ArrayList<Long> packedWeights = new ArrayList<>();int totalWeight = 0;for (int i = 0; i < values.length; i++) {if (solver.bestSolutionContains(i)) {packedItems.add(i);packedWeights.add(weights[0][i]);totalWeight = (int) (totalWeight + weights[0][i]);}}//匹配金额System.out.println("Target amounts: " + capacities[0]);//总价值System.out.println("Total values: " + computedValue);//总重量System.out.println("Total amounts: " + totalWeight);//装载项的下标,可对应List<发票>的下标System.out.println("Packed items: " + packedItems);//装载项的重量System.out.println("Packed amounts: " + packedWeights);System.out.println("=========End : 匹配发票");//如果没有完全匹配金额,则清空packedItemsif (capacities[0] != totalWeight) {packedItems.clear();}return packedItems;}

 

http://www.khdw.cn/news/34225.html

相关文章:

  • 网站关键词用什么隔开软文编辑器
  • 网站高质量链群怎么做长沙关键词优化方法
  • 网站建设心得.doc宝鸡seo优化公司
  • 外贸网站推广平台蓝颜seo牛网络营销和推广做什么
  • 百度站长电脑版市场营销毕业论文5000字
  • 只做原创内容平台网站百度网页广告怎么做
  • 网站制作学什么软件有哪些推广页面制作
  • 杭州品牌网站开发b站入口2024已更新
  • 简单电商网站模板淮北seo排名
  • 郑州专业网站制作服务费用怎样制作一个自己的网站
  • 河南seo网站开发百度推广关键词规划师
  • 为什么做的网站别的浏览器打不开怎么办百度怎么打广告
  • 城市建设服务中心网站企业管理培训课程网课
  • 招商门户网站建设方案如何做网站推广优化
  • 怎么用nat做网站百度提问
  • 中国进口贸易网官网seo搜索引擎优化课程
  • 江苏连云港网站制作公司网络营销工资一般多少
  • 网站后台管理系统怎么做的如何线上推广引流
  • 网站页面字体设置电商运营公司
  • 网站建设服务流程长沙快速排名优化
  • 做我女朋友程序网站百度软件应用中心
  • 东莞优化网站建设关键词查询工具软件
  • 合肥网站建设过程百度seo推广优化
  • 网站制作什么语言最好百度怎么发广告
  • 青岛新闻最新消息黑帽seo365t技术
  • 网站建设技百度知道app
  • 三优科技 网站开发南京网络推广公司排名
  • 哪里建设品牌网站seo零基础入门到精通200讲
  • wordpress 评论go跳转合肥seo整站优化网站
  • 适合晚上自己看的b站软件大全网站搭建流程