订单分箱问题

订单分箱需求,我把它简化为如下模型:

一张表实现,实现分箱的效果,总结一下做个小demo。

package com.kaspar.order.model;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

import org.hibernate.annotations.GenericGenerator;

@Entity
@Table(name = "Orders")
public class Order implements Serializable {

    /**
     *
     */
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(generator = "orderid")
    @GenericGenerator(name = "orderid", strategy = "native")
    private int orderid;
    private String ordernum;
    public String getOrdernum() {
        return ordernum;
    }

    public void setOrdernum(String ordernum) {
        this.ordernum = ordernum;
    }

    @Column(length = 100, name = "item")
    private String item;
    private String box;
    private String quality;

    public int getOrderid() {
        return orderid;
    }

    public void setOrderid(int orderid) {
        this.orderid = orderid;
    }

    public String getItem() {
        return item;
    }

    public void setItem(String item) {
        this.item = item;
    }

    public String getBox() {
        return box;
    }

    public void setBox(String box) {
        this.box = box;
    }

    public String getQuality() {
        return quality;
    }

    public void setQuality(String quality) {
        this.quality = quality;
    }
    public Order() {

    }

    public Order(String ordernum,String item, String box, String quality) {
        this.ordernum = ordernum;
        this.item = item;
        this.box = box;
        this.quality = quality;
    }
}

public class fenxiangbyorder {
    private ArrayList<Order> getList(){
        ArrayList<Order> list = new ArrayList<Order>();
        Order b1 = new Order();
        Order b2 = new Order();
        Order b3 = new Order();

        b1.setOrderid(1);
        b2.setOrderid(2);
        b3.setOrderid(3);

        b1.setBox("1");
        b2.setBox("4");
        b3.setBox("1");

        b1.setItem("1");
        b2.setItem("2");
        b3.setItem("3");

        b1.setOrdernum("WR20191213001");
        b2.setOrdernum("WR20191213001");
        b3.setOrdernum("WR20191213001");

        b1.setQuality("75");
        b2.setQuality("36");
        b3.setQuality("23");
        list .add(b1);
        list .add(b2);
        list .add(b3);

        return list;
    }

    public  Map<String, Object> getOrder2(){
        Map<String, Object>    map = new HashMap<String, Object>();
        List<Order> listresult =getList();//三个bean对象
        ArrayList<Order> listBox = new ArrayList<Order>();
         Integer  num1=1;
         for (int i = 0; i <  listresult.size(); i++) { //根据条目遍历,因为这个和条目一致直接拿来用了
             Order box = (Order) listresult.get(i);
             int boxNum = Integer.valueOf(box.getBox());
             for (int k = 0; k < boxNum; k++) {  //根据箱子数量遍历
                 Order Order1 = new Order();
                 Order1 = box;
                 System.out.println("dayin第一遍"+num1);
                 Order1.setOrderid(num1);
                 System.out.println(Order1);
                 num1=num1+1;
                 listBox.add(Order1);
            }
        }
        map.put("result", listBox);
        return map;
    }
    public static void main(String[] args) {
        fenxiangbyorder a = new fenxiangbyorder();
        Map<String, Object> ss = a.getOrder2();
        System.out.println("---------------------------------");
        System.out.println(ss);
    }
}

数据就直接在里面取,实际业务直接从持久层拿就欧克。

到这里结束,一共六箱。关于设置箱号这里有点补充。

原因就是引用类型变量的赋值只复制对象的引用,而不复制对象本身;而将一个值类型赋给另一个值类型变量时, 将复制包含的值。我的实体bean自然是引用类型,所以我在for循环赋值的时候,实体类添加但对象一直都是相同的, bt.setValues将之 前的赋值更新成。新的赋值然后再添加一-次就会出现上面的结果。

原文地址:https://www.cnblogs.com/kaspar/p/12011836.html

时间: 2024-10-17 09:16:19

订单分箱问题的相关文章

基于卡方分箱的评分卡建模

卡方分布-chi-square distribution, χ2-distribution: 若k个独立的随机变量Z1, Z2,..., Zk 满足标准正态分布 N(0,1) , 则这k个随机变量的平方和: 为服从自由度为k的卡方分布,记作:  或者  卡方检验-χ2检验是以χ2分布为基础的一种假设检验方法,主要用于分类变量之间的独立性检验: 基本思想是根据样本数据推断总体分布与期望分布是否有显著性差异,或者推断两个分类变量是否相关或者独立.一般可以设原假设为 :观察频数与期望频数没有差异,或者

[转]卡方分箱中卡方值的计算

<div class="show-content-free"> <p>关于卡方分箱,网上有很多文章,但几乎没有文章介绍分箱时相邻区间卡方值计算的方法,而本文在介绍卡方分箱的同时,重点介绍了相邻区间卡方值的计算方法.通过本文,希望大家能对卡方分箱有清楚透彻的认识.</p> 分箱是什么 分箱是将连续的变量离散化,将多状态的离散变量合并成少状态.这里要注意的是,不仅仅是连续变量要分箱,状态多的离散变量也需要分箱,之前接触过公司内特征工程的项目,里边就将超过

pandas逐行操作、分箱技术、窗口函数

cummax,cummin,cumprod,cumsum 有时候我们需要求出从第一行开始截止到当前行的最大值.最小值,以及实现累乘.累和等等. import pandas as pd df = pd.DataFrame({"a": [10, 20, 15, 50, 40]}) # cummax:求出从第一行开始截止到当前行的最大值 # 第1行为10,第2行为20,第3行为15但是比20小所以还是20,第4行为50,同理第5行也是50 print(df["a"].cu

数据离散化-分箱

  变量的延申和筛选-连续变量离散化-特征筛选 WOE编码(最优分箱) WOE一般在0.1~3之间波动,IV值做得特征筛选的操作 一般保留>0.03的特征 IV值体现的时X和Y之间的显著性进行筛选 1.逐列分箱并获得IV值 # 运行自定义函数所在文件 对自定义分箱文件要自己理解 %run smob.py # y进行0,1互换 train_data['SeriousDlqin2yrs'] = -(train_data.SeriousDlqin2yrs-1) #因为与自定义函数中的标签0 1设定正好

猜测分箱算法

public static void main(String[] args) { List<Integer> tax = new ArrayList<>(); tax.add(70); tax.add(55); tax.add(40); tax.add(30); tax.add(20); tax.add(10); // 关税倒序排列 Collections.sort(tax, new Comparator<Integer>() { @Override public in

按时分秒对数据进行分箱

https://nbviewer.jupyter.org/github/China-LuoYaxiong/pandas/blob/master/%E6%97%B6%E9%97%B4%E6%8C%89%E6%97%B6%E5%88%86%E7%A7%92%E6%9D%A5%E5%88%86%E7%AE%B1.ipynb 原文地址:https://www.cnblogs.com/LUOyaXIONG/p/12066963.html

各种分箱算法

有监督:chi2.BestK.cart.最优woe/iv 无监督:等频.等距.聚类 https://www.jb51.net/article/174833.htm https://www.jb51.net/article/174816.htm https://www.jb51.net/article/174821.htm https://pypi.org/project/woe/ 原文地址:https://www.cnblogs.com/ironan-liu/p/12127844.html

订单分库分表实践总结

订单分库分表实践总结 主库容量已接近服务器物理空间上限,同时也已经达到MySQL的处理上限,很快将无法再处理新增订单. 旧订单库面临的问题有: 1.超大容量问题 订单相关表都已经是超大表,最大表的数据量已经是几十亿,数据库处理能力已经到了极限: 单库包含多个超大表,占用的硬盘空间已经接近了服务器的硬盘极限,很快将无空间可用: 2.性能问题 单一服务器处理能力是有限的,单一订单库的TPS也有上限,不管如何优化,总会有达到上限,这限制了单位时间的订单处理能力,这个问题在大促时更加明显,如果不重构,订

订单系统 高级设计

ps 这里的高级设计是针对我自己的,一开始我设计的系统,虽然实现了mvc,但还没有真正做到逻辑分离. 因为之前开发过的订单已经已经上线,并且运营了一段时间,修正了很多的bug.这里给了我些思路.但我希望能够把他做的更好. 我把订单分为了3大块. 产品服务.订单服务.结算服务.用户服务 <?php interface IGoodsService { public function parseGoods(); } interface ICouponsService { public function