Order secondary sorting method based on pre-allocation and dynamic allocation
By adopting a secondary sorting method based on pre-allocation and dynamic allocation of orders in the logistics and e-commerce warehousing sorting process, the sorting machine workload is calculated in real time, which solves the problem of queuing and congestion of sorting carts and improves sorting efficiency and logistics smoothness.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- 青岛蚂蚁机器人有限责任公司
- Filing Date
- 2025-10-16
- Publication Date
- 2026-07-31
AI Technical Summary
In the current technology for sorting in logistics and e-commerce warehousing, the random selection of sorting machine slots leads to queuing and congestion of sorting carts, resulting in low sorting efficiency and failing to effectively prevent the sorting machine from filling up the slots prematurely.
A secondary sorting method based on pre-allocation and dynamic allocation of orders is adopted. By calculating the sorting machine's task volume and historical task volume in real time, the grid position is dynamically allocated to avoid the same sorting machine being assigned multiple SKUs at the same time, thus optimizing the sorting machine's task allocation.
It effectively improved the queuing situation of sorting carts, increased the smoothness of logistics queues and sorting efficiency, and avoided congestion in sorting machine delivery.
Smart Images

Figure CN121189755B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of logistics and warehousing, and specifically proposes a secondary sorting method for orders based on pre-allocation and dynamic allocation. Background Technology
[0002] Currently, in logistics and e-commerce warehousing operations, after the upstream control system sorts out multiple batches of orders from the automated warehouse, it needs to perform secondary sorting before being packaged and shipped out, in order to allocate multiple items in one order to multiple boxes. For orders that only need to be sorted into one box, secondary sorting is also required to calculate the designated box to be allocated in real time and dynamically based on multiple dimensions of conveying conditions.
[0003] In the current sorting process, for multiple waves issued by the upstream control system, the delivery slot positions for the wave orders are usually pre-assigned when the wave is started. At this time, the SKU and the delivery slot position are bound. When the SKU is scanned at the packing station, the order line that needs that SKU is obtained, and then a slot is randomly selected for delivery. The SKU is delivered to the sorting machine via a fly-picking cart, and then delivered to the assigned slot bin by the sorting machine.
[0004] While the pre-allocation in the existing wave sorting system can randomly select an allocation slot for delivery based on the scanned SKU, this random selection has significant limitations. There is still a considerable probability that multiple SKUs will be delivered to a single sorting machine simultaneously within a short period. Furthermore, because of pre-allocation, it cannot prevent some sorting machines from filling their slots prematurely, leading to the final tasks being delivered to the remaining sorting machines. This results in sorting carts queuing up to wait for materials, causing logistical congestion and low sorting efficiency.
[0005] In view of the above, this patent application is hereby filed. Summary of the Invention
[0006] The order secondary sorting method based on pre-allocation and dynamic allocation described in this application aims to solve the aforementioned problems in the prior art. In view of the existing problems, the solution proposed in this application aims to effectively improve the delivery efficiency of pre-assigned locations and avoid the occurrence of queuing and congestion of sorting carts by dynamically calculating the allocation position based on the workload of the sorting machine.
[0007] For the aforementioned design objectives, the order secondary sorting method based on pre-allocation and dynamic allocation initiates a process from a three-dimensional... When sorting one or more batches of orders from the warehouse, the number of bins required for each order is first determined. For orders that require sorting into multiple bins, available sorting walls are located and pre-allocation of designated slots is performed before sorting to prevent the slots for the same order from being allocated too sparsely. For orders that only require sorting into one bin, no pre-allocation of slots is performed; instead, the sorting wall slots that can be pre-occupied are identified and recorded. During the delivery of the order, the slot allocation is dynamically calculated based on the real-time operating conditions of the sorting machine.
[0008] Furthermore, the real-time operating conditions of the sorting machine include the number of tasks currently being executed by the sorting machine, the total number of historical tasks, and the execution time of the previous task, so as to dynamically calculate the allocation position in real time.
[0009] Furthermore, when initiating a wave of orders, the order information and available distribution walls are obtained through a barcode scanning device, including the following implementation process: Step (1): Obtain information; Obtain outbound wave information, order information, and order line information from the upstream control system; Step (2), wave start-up; Step (2.1): Sort the orders; Step (2.2): Obtain the currently available seeding walls and sort them; A usable seeding wall refers to a sorting machine that is operating normally and has not been assigned a slot. Step (2.3): Determine the number of material boxes required for each order; Iterate through the orders ∀i∈T and obtain the order line set TL={ fol(tn)} for that order; Step (3): Calculate the delivery order line and dynamically allocate delivery slots; Step (3.1): The equipment scans the barcode to obtain the material SKU, and obtains the set O of all order lines to be delivered based on the SKU, where O={fsku(SKU)}; Step (3.2): Obtain the set of allocatable seeding walls W; Obtain the set of allocable seed walls W={ fw(O)} based on the order line set O; Step (3.3): Obtain the optimal planting wall (wallNo) for allocable orders; Step (3.4): Calculate the delivery order line and allocate the planting wall grid. Step (4): Sorting machine task execution; The order line of each order calculated in step (3) needs to be delivered to the sorting machine. The current task quantity, historical task quantity and task execution time of the sorting machine are updated, and the delivery operation is carried out. If an exception is thrown when executing step (3.4), it means that the SKU material cannot be assigned to a grid. Then, deliver the material to the designated exception grid location. After the delivery operation is completed, update the current task quantity of the sorting machine.
[0010] Step (1) includes: wave information including but not limited to wave ID, wave number, wave status and allocation wall number; order information including but not limited to order ID, wave ID, order number and order status; order line information including but not limited to order line ID, order ID, order line number, SKU number, slot ID, bin number and bin sequence number, material quantity and order line status; obtaining sorting machine information for delivering different goods to designated slots, including but not limited to sorting machine ID, sorting machine sequence number, allocation wall ID, IP, port and sorting machine operating status; obtaining allocation wall information for binding or unbinding sorting machines, including but not limited to allocation wall ID, allocation wall sequence number and bound sorting machine ID; obtaining slot information for subsequently allocating corresponding available slots to orders according to slot status, including but not limited to slot ID, allocation wall ID, slot sequence number, order ID, sorting machine location and bin number.
[0011] In step (2.1), the set of wave orders T = {fo(waveNo)} is obtained, where waveNo is the wave number; the orders are sorted in descending order according to the number of boxes required by each wave order, calculated as T = {fsort(T,toteIndex)}, and the sorted order queue T = [t1, t2, ..., tn] is obtained; the queue sorting condition is: t1.toteIndex ≥ t2.toteIndex ≥ ... ≥ tn.toteIndex, where tn.toteIndex is the number of boxes required for a certain order.
[0012] Step (2.2) involves obtaining the available seeding wall set WA={fwa()}, sorting the available seeding walls WA according to the seeding wall index WA={fsort(WA,indexNo)}; after sorting, the seeding wall set WA=[wa1 ,wa2,...,wan] satisfies the condition: wa1.indexNo≥wa2.indexNo≥...≥wan.indexNo, and arranging the allocable seeding walls in a W shape, allocating the seeding wall slots sequentially according to the logical index in the diagram during order allocation.
[0013] In step (2.3), traverse the order lines, ∀i∈TL, and calculate the cell that the order line TLn needs to be assigned to, Cell=fc(WA,TLn); if tn.toteIndex>1, then multiple boxes need to be prepared and must be arranged consecutively, so set TLi.cellId=Cell.id, Cell.orderId=tn.id to indicate that the order line TLn needs to be delivered to the cell; if tn.toteIndex=1, then only one box is needed, so set Cell.orderId=0 to only indicate that the cell can be dynamically assigned, and calculate which cell the order line SKU will be delivered to when the subsequent barcode scanning is performed for sorting; record the seeding wall sequence number assigned to this wave of orders and mark the status of this wave of orders as started.
[0014] Step (3.3) includes: Step (3.3.1) obtaining the set L of sorting machines with the fewest currently executing tasks bound to the seeding wall; traversing the set W of allocable seeding walls to obtain the set L of sorting machines with the fewest currently executing tasks bound to the seeding wall; where L={∀i∈W, fmin (wi)}, the fmin (wi) function is used to obtain the sorting machine with the fewest tasks corresponding to the wall, each element in L contains the sorting machine number and the set of available walls to bind the sorting machine; if |L|=1, then return a value wallNo in the bound seeding wall set; if |L|>1, then directly jump to the following step (3.3.2). Step (3.3.2): Obtain the sorting machine list LM with the smallest number of historical tasks; Iterate through the set of sorting machines with the fewest current tasks ∀i∈L, and obtain the list of sorting machines with the fewest historical tasks; where LM={ flm (li)∣li ∈L,i=1,2,…,n}, each element in LM contains the sorting machine number and the set of seeding walls available to bind the sorting machine; if |LM|=1, return a value wallNo from the set of seeding walls to bind; if |LM|>1, then jump to the following step (3.3.3); Step (3.3.3): Obtain the set of sorting machines (LMT) that are available for allocation at the current time; Iterate through the sorting machine list LM with the smallest number of historical tasks, and obtain the sorting machine set LMT that can be allocated at the current time. The condition for allocation is that the time for the sorting machine to execute the previous sorting task is greater than a preset time threshold t. Where LMT={ flmt(lmi,t)|lmi ∈LM,i=1,2,…,n}. If |LMT|>0, then return the available seeding wall number wallNo corresponding to lmt0; otherwise, return the available seeding wall number wallNo corresponding to the first element LM0 of the LM set.
[0015] In step (3.4), traverse the order line set O ∀i∈{1,2,…,n}. If there exists an order line Oi.wallNo=wallNo that has been assigned to the planting wall, return Oi; otherwise, traverse the order line O again. If wallNo∈Oi.wallNoList, indicating that the order line can be assigned to this wall, then calculate whether there are available cells for the planting wall, and let Cell = fcell(wallNo); If there is a cell (∃Cell), meaning there is a cell available for allocation, based on the condition being met, set Oi.wallNo=wallNo, Oi.cellId=Cell.id, and Cell.orderId=O.orderId, indicating that the cell for this order line Oi is optimally allocated, update the database, and return Oi.; If ∄Cell, meaning there is no cell available for allocation, then remove the seeding wall from the set of available seeding walls W, i.e., W:=W∖{wallNo}; then return to step (3.3) to continue execution until the calculation of order line Oi ends; if there is still no seeding wall available after the calculation of order line Oi ends, then throw an exception message.
[0016] In summary, the advantages and beneficial effects of this application are that it can effectively improve the situation where the same sorting machine is simultaneously distributing... In cases with multiple SKUs, the problem of sorting carts queuing up has been resolved, which has improved the overall smoothness of the logistics queue and sorting efficiency. Attached Figure Description
[0017] The present application will now be further illustrated with reference to the following figures.
[0018] Figure 1 This is a flowchart of the order secondary sorting method based on pre-allocation and dynamic allocation proposed in this application; Figure 2 This is a schematic diagram of the order sorting process; Figure 3 This is a schematic diagram of the logical sorting results of the sorting machine bound to the seeding wall; Detailed Implementation
[0019] Example 1, as Figures 1 to 3 As shown, this application proposes a secondary sorting method for orders based on pre-allocation and dynamic allocation. When one or more waves of orders are started from the automated warehouse, the number of bins required for each order is first determined. For orders that need to be sorted into multiple bins, available sorting walls are found and pre-allocation of designated slots is performed before sorting to prevent the slots of the same order from being allocated too sparsely. For orders that only need to be sorted into one bin, instead of pre-allocating the sorting slots, the sorting wall slots that can be pre-occupied are identified and recorded. During the order delivery process, the allocation of slots is dynamically calculated based on the real-time operating conditions of the sorting machine.
[0020] Specifically, the seeding wall is a movable structure with multiple slots for placing material bins. Materials can be delivered to the corresponding material bins in the slots according to SKU orders.
[0021] The real-time operating conditions of the sorting machine include the number of tasks currently being executed by the sorting machine, the total number of historical tasks, and the execution time of the previous task, so as to dynamically calculate the allocation position in real time.
[0022] like Figure 2 As shown, when initiating a wave of orders, a scanning device such as a barcode reader or barcode scanner can be manually operated to obtain order information and the assignable sorting wall. The corresponding delivery slot location for the order is calculated through the following secondary sorting process.
[0023] The order secondary sorting method based on pre-allocation and dynamic allocation includes the following implementation process: Step (1): Obtain information; The outbound wave information, order information, and order line information are obtained from the upstream control system; the wave information package... This includes, but is not limited to, wave ID, wave number, wave status, and allocation wall number; the order information includes, but is not limited to, order ID, wave ID, order number, and order status; the order line information includes, but is not limited to, order line ID, order ID, order line number, SKU number, grid ID, bin number and bin sequence number (the maximum bin sequence number is the number of bins to be allocated), material quantity, and order line status; Obtain sorting machine information to deliver different goods to designated slots, including but not limited to sorting machine ID, sorting machine serial number, distribution wall ID, IP, port and sorting machine operating status; Obtain sorting wall information for binding or unbinding sorting machines, including but not limited to sorting wall ID, sorting wall serial number, and bound sorting machine ID; Obtain grid information for subsequent allocation of corresponding available grids to orders based on grid status, including but not limited to grid ID, sorting wall ID, grid sequence number, order ID, sorter location, and bin number; Step (2), wave start-up; Step (2.1): Sort the orders; Obtain the set of wave orders T = {fo(waveNo)}, where waveNo is the wave number. Sort the orders in descending order based on the number of boxes required for each wave order (each box corresponds to a subsequent delivery grid in the planting wall). The descending order calculation is T = {fsort(T, toteIndex)}, and the sorted order queue is T = [t1, t2, ..., tn]. The queue sorting condition is: t1.toteIndex ≥ t2.toteIndex ≥ ... ≥ tn.toteIndex, where tn.toteIndex is the number of boxes required for a certain order. Step (2.2): Obtain the currently available seeding walls and sort them; A usable seeding wall refers to a sorting machine that is operating normally and has not been assigned a slot. Obtain the available seed wall set WA = {fwa()}. Sort the available seed walls WA according to their seed wall indices WA = {fsort(WA, indexNo)}. The sorted seed wall set WA = [wa1, wa2, ..., wan], where the arrangement satisfies the condition: wa1.indexNo ≥ wa2.indexNo ≥ ... ≥ wan.indexNo. Arrange the allocable seed walls in a W-shape, as follows: Figure 3 This ensures that even with a small number of orders, they are not consecutively assigned to adjacent planting grids on the same sorting machine; Figure 3 In this system, each sorting machine has two adjacent seeding walls (R represents the right wall of the sorting machine, L represents the left wall of the sorting machine, and 3D00N represents the sorting machine number). When allocating orders, the seeding wall slots are allocated sequentially according to the logical sequence number in the diagram, thereby effectively avoiding delivery congestion. Step (2.3): Determine the number of material boxes required for each order; Iterate through the orders ∀i∈T and obtain the order line set TL={ fol(tn)} for that order; Traverse the order lines, ∀i∈TL, and calculate the number of cells to be allocated for order line TLn: Cell = fc(WA, TLn); If tn.toteIndex>1, then multiple bins need to be prepared and must be arranged consecutively. In this case, set TL1.cellId=Cell.id, Cell.orderId=tn.id to indicate that the order line TLn needs to be delivered to the Cell slot. If tn.toteIndex=1, then only one bin is needed. In this case, set Cell.orderId=0 to simply indicate that the bin can be dynamically allocated. The order line SKU will be calculated and delivered to the correct bin during subsequent scanning and sorting. Record the seed wall sequence number assigned to this wave of orders and mark the status of this wave of orders as started; Step (3): Calculate the delivery order line and dynamically allocate delivery slots; Step (3.1): The equipment scans the barcode to obtain the material SKU, and obtains the set O of all order lines to be delivered based on the SKU; Where O={fsku(SKU)}, each element of the order line contains wave code (waveNo), list of allocable walls (wallNoList), order ID (orderId), order line ID (orderLineId), cell ID (cellId, dynamically allocated is empty), and wall number (wallNo, dynamically allocated is empty). Step (3.2): Obtain the set of allocatable seeding walls W; Obtain the set of allocable seed walls W={ fw(O)} based on the order line set O; Step (3.3): Obtain the optimal planting wall (wallNo) for allocable orders; Step (3.3.1): Obtain the set L of sorting machines with the fewest currently executing tasks bound to the seeding wall; Traverse the set of allocable seeding walls W to obtain the set of sorting machines L with the fewest currently executing tasks bound to the seeding wall. Since the obtained set of sorting machines is not randomly assigned, but associated with the sorting machine with the fewest current tasks, it can effectively ensure that multiple orders are not randomly assigned to the same sorting machine and avoid congestion.
[0024] Where L = {∀i∈W, fmin (wi)}, the fmin (wi) function is used to obtain the sorting machine with the fewest tasks corresponding to the wall. Each element in L contains the sorting machine number and the set of available walls for the sorting machine (e.g., R represents the right wall of the sorting machine, and L represents the left wall of the sorting machine). If |L| = 1, then return a value wallNo from the set of seeding walls; if |L| > 1, then jump directly to the following step (3.3.2). Step (3.3.2): Obtain the sorting machine list LM with the smallest number of historical tasks; Traverse the set of sorting machines with the fewest current tasks ∀i∈L, and obtain the list of sorting machines with the fewest historical tasks. This ensures that all sorting machine tasks are distributed relatively evenly and prevents some sorting machines from filling up their slots in advance, resulting in a backlog of tasks for the remaining sorting machines. Where LM = { flm (li) | li ∈ L, i = 1, 2, ..., n}, each element in LM contains the sorter number and the set of seed walls available for binding the sorter; if | LM | = 1, return a value wallNo from the set of seed walls to be bound; if | LM | > 1, then jump to the following step (3.3.3). Step (3.3.3): Obtain the set of sorting machines (LMT) that are available for allocation at the current time; Iterate through the sorting machine list LM with the smallest number of historical tasks, and obtain the sorting machine set LMT that can be allocated at the current time. The condition for allocation is that the time for the sorting machine to execute the previous sorting task is greater than the preset time threshold t, which can effectively prevent two consecutive sorting tasks from being delivered to the same sorting machine and avoid congestion. Where LMT={ flmt(lmi,t)|lmi ∈LM,i=1,2,…,n}, if |LMT|>0, then return an available seeding wall number wallNo corresponding to lmt0; otherwise, return an available seeding wall number wallNo corresponding to the first element LM0 of the LM set. Step (3.4): Calculate the delivery order line and allocate the planting wall grid. Iterate through the order line set O ∀i∈{1,2,…,n}. If there exists an order line Oi.wallNo=wallNo that has already been assigned to the planting wall, return Oi; otherwise, iterate through the order lines O again. If wallNo∈Oi.wallNoList, indicating that the order line can be assigned to this wall, then calculate whether there are available cells for the planting wall, and let Cell = fcell(wallNo); If there is a cell (∃Cell), meaning there is a cell available for allocation, based on the condition being met, set Oi.wallNo=wallNo, Oi.cellId=Cell.id, and Cell.orderId=O.orderId, indicating that the cell for this order line Oi is optimally allocated, update the database, and return Oi.; If ∄Cell, meaning there is no cell available for allocation, then remove the seeding wall from the set of allocable seeding walls W, i.e., W:=W∖{wallNo}; then return to step (3.3) to continue execution until the calculation ends at order line Oi; If no seed wall can be assigned after the order line Oi is calculated, an exception message is thrown. In step (3.4) above, by calculating the optimal available grid results, and associating them with the order line of the order (an order has multiple order lines, each order line is a type of SKU, and the material quantity in each order line may be greater than 1), it is possible to accurately and systematically calculate which specific order the material recorded in the SKU should be assigned to and which specific grid (bin) it should be delivered to.
[0025] Step (4): Sorting machine task execution; The order line of each order calculated in step (3) needs to be delivered to the sorting machine. The current task quantity, historical task quantity and task execution time of the sorting machine are updated, and the delivery operation is carried out. If an exception is thrown when executing step (3.4), it means that the SKU material cannot be assigned to a grid. Then, deliver the material to the designated exception grid location. After the delivery operation is completed, update the current task quantity of the sorting machine.
[0026] Specifically, once the wave of orders has been delivered or all the grids of the entire sorting wall have been filled with materials, the sorting machine will be unbound from the sorting wall. Subsequent operations will rebind to a new sorting wall and start a new sorting process from step (1) above. At that time, the current task quantity and historical task quantity of the sorting machine should be cleared so that the initialization required in advance can be calculated according to step (3).
[0027] As described above, the embodiments given in conjunction with the accompanying drawings are merely preferred solutions for achieving the objectives of this invention. Those skilled in the art can draw inspiration from this and directly derive other alternative structures that conform to the design concept of this invention. Other structural features derived therefrom should also fall within the scope of the solutions described in this invention.
Claims
1. A method for order re-sorting based on pre-allocation and dynamic allocation, characterized in that, When initiating one or more waves of orders sorted from the automated warehouse, the number of bins required for each order is first determined. For orders that require sorting into multiple bins, available sorting walls are located and pre-allocation of designated slots is performed before sorting to prevent the slot locations for the same order from being allocated too sparsely. For orders that only need to be sorted into one bin, instead of pre-allocating the sorting slots, the sorting wall slots that can be pre-occupied are identified and recorded. During the delivery of the order, the allocation of slots is dynamically calculated based on the real-time operating conditions of the sorting machine. When initiating a wave of orders, the order information and available distribution walls are obtained through a barcode scanning device, including the following implementation process: Step (1): Obtain information; Obtain outbound wave information, order information, and order line information from the upstream control system; Step (2), wave start-up; Step (2.1): Sort the orders; Step (2.2): Obtain the currently available distribution walls and sort them; Available sorting walls refer to sorting machines that are operating normally and whose slots have not been assigned. Step (2.3): Determine the number of material boxes required for each order; Iterate through the orders ∀i∈T and obtain the order line set TL for that order; Step (3): Calculate the delivery order line and dynamically allocate delivery slots; Step (3.1): The equipment scans the barcode to obtain the material SKU, and obtains the set O of all order lines to be delivered based on the SKU; Step (3.2): Obtain the set of allocable distribution walls W; Obtain the set of allocable distribution walls W based on the order line set O; Step (3.3): Obtain the optimal distribution wall (wallNo) for allocable orders; Step (3.3) includes: Step (3.3.1): Obtain the set L of sorting machines with the fewest currently executing tasks bound to the sorting wall; Traverse the set of allocable distribution walls W to obtain the set of sorting machines L with the fewest currently executing tasks bound to the distribution wall; where L={∀i∈W, fmin (wi)}, the function fmin (wi) is used to obtain the sorting machine with the fewest tasks corresponding to the distribution wall, each element in L contains the sorting machine number and the set of available distribution walls bound to the sorting machine; if |L|=1, then return an available distribution wall number wallNo in the set of bound distribution walls; if |L|>1, then jump directly to the following step (3.3.2). Step (3.3.2): Obtain the sorting machine list LM with the smallest number of historical tasks; Iterate through the set of sorting machines with the fewest current tasks ∀i∈L, and obtain the list of sorting machines with the fewest historical tasks; where LM={ flm (li)∣li ∈L,i=1,2,…,n}; Each element in LM contains the sorter number and the set of available sorting walls for the sorter; if |LM|=1, return one available sorting wall number wallNo from the set of available sorting walls; if |LM|>1, proceed to step (3.3.3) below. Step (3.3.3): Obtain the set of sorting machines (LMT) that are available for allocation at the current time; Iterate through the sorting machine list LM with the smallest number of historical tasks, and obtain the sorting machine set LMT that can be allocated at the current time. The condition for allocation is that the time for the sorting machine to execute the previous sorting task is greater than the preset time threshold t; where LMT={flmt(lmi,t)|lmi ∈LM,i=1,2,…,n}; If |LMT|>0, then return an available distribution wall number wallNo corresponding to lmt0; otherwise, return an available distribution wall number wallNo corresponding to the first element LM0 of the LM set. Step (3.4): Calculate the delivery order line and allocate the distribution wall slots; Step (4): Sorting machine task execution; The order line of each order calculated in step (3) needs to be delivered to the sorting machine. The current task quantity, historical task quantity and task execution time of the sorting machine are updated, and the delivery operation is carried out. If an exception is thrown when executing step (3.4), it means that the SKU material cannot be assigned to a grid. Then, deliver the material to the designated exception grid location. After the delivery operation is completed, update the current task quantity of the sorting machine.
2. The pre-allocation and dynamic allocation based order sub-sorting method according to claim 1, wherein, The real-time operating conditions of the sorting machine include the number of tasks currently being executed by the sorting machine, the total number of historical tasks, and the execution time of the previous task, so as to dynamically calculate the allocation position in real time.
3. The order secondary sorting method based on pre-allocation and dynamic allocation according to claim 1, characterized in that, In step (1), the wave information includes wave ID, wave number, wave status, and distribution wall number; Order information includes order ID, wave ID, order number, and order status; Order line information includes order line ID, order ID, order line number, SKU number, slot ID, bin number and bin sequence number, material quantity, and order line status; Obtaining sorting machine information is used to deliver different goods to designated slots, including sorting machine ID, sorting machine serial number, distribution wall ID, IP, port, and sorting machine operating status; Obtain sorting wall information for binding or unbinding sorting machines, including sorting wall ID, sorting wall serial number, and bound sorting machine ID; Obtaining grid information is used to subsequently allocate corresponding available grids to orders based on grid status. This includes grid ID, sorting wall ID, grid sequence number, order ID, sorter location, and bin number.
4. The order secondary sorting method based on pre-allocation and dynamic allocation according to claim 1, characterized in that, In step (2.1), the wave order set T={fo(waveNo)} is obtained, where waveNo is the wave number; The orders are sorted in descending order based on the number of boxes required for each wave of orders. The sorted order queue is T = [t1, t2, ..., tn]. The condition for sorting the order set T in waves is: t1.toteIndex≥t2.toteIndex≥...≥tn.toteIndex, where tn.toteIndex is the number of boxes required for a given order.
5. The order secondary sorting method based on pre-allocation and dynamic allocation according to claim 1, characterized in that, In step (2.2), the available distribution wall set WA is obtained, and the available distribution wall set WA is sorted according to the distribution wall number WA={fsort(WA,indexNo)}; The sorted set of available distribution walls WA = [wa1, wa2, ..., wan] satisfies the condition: wa1.indexNo ≥ wa2.indexNo ≥ ... ≥ wan.indexNo; The assignable sorting walls are arranged in a W shape to ensure that even with a small number of orders, they are not continuously assigned to adjacent sorting wall slots on the same sorting machine. When allocating orders, the assigned partition wall slots are allocated sequentially according to logical sequence numbers.
6. The order secondary sorting method based on pre-allocation and dynamic allocation according to claim 1, characterized in that, In step (2.3), traverse the order lines, ∀i∈TL, and calculate the number of cells that need to be allocated for order line TLn; If tn.toteIndex>1, then multiple bins need to be prepared and must be arranged consecutively. In this case, set TL1.cellId=Cell.id, Cell.orderId=tn.id to indicate that the order line TLn needs to be delivered to the Cell slot. If tn.toteIndex=1, then only one bin is needed. Setting Cell.orderId=0 only indicates that the bin can be dynamically allocated. The order line SKU will be calculated to which bin to deliver during subsequent scanning and sorting. Record the distribution wall sequence number assigned to this wave of orders and mark the status of this wave of orders as started.
7. The order secondary sorting method based on pre-allocation and dynamic allocation according to claim 1, characterized in that, Step (3.4) involves traversing the order line set O; If there exists an order line Oi.wallNo = wallNo that has already been assigned to the distribution wall, then return Oi; otherwise, iterate through the order line set O again. If wallNo∈Oi.wallNoList, it indicates that the order line can be assigned to this wall, then calculate whether there is an available grid for the distribution wall; If a deliverable distribution wall cell can be calculated, that is, there is a cell available for allocation, based on the condition being met, set Oi.wallNo=wallNo, Oi.cellId=Cell.id, Cell.orderId=O.orderId, indicating that the optimal cell for this order line Oi is allocated, and update the database, and return Oi; If no deliverable distribution wall cell can be calculated, i.e. there is no cell available for allocation, then the distribution wall is removed from the set of allocable distribution walls W; then return to step (3.3) to continue execution until the calculation ends at order line Oi; If no distribution wall can be assigned after calculating all order line Oi, an exception message is thrown.