智慧型出庫,先進先出

2021-08-18 06:31:32 字數 1101 閱讀 8849

3分鐘左右

t_erp_location   庫存表(4000行) 如果是40000呢

code     time              location   number

2000     20180101      a1-1          10

2000     20170102      b1-1           20 

2000     20180103      c1-1             5

2000     20180101      d1-1            -5

2000     20180104      a2-1             -4

2000     20180101      a2-1            -9

2001     20180101      d1-1            15

2001     20180104      a2-1             14

2001     20180101      a2-1            -9

(一批車)t_orderdetail (因為對接其他系統,不能夠合併相同產品) (600行,如果是6w呢) 

大概20車左右,不同車與不同的訂單(t_car_product)

根據  t_orderdetail與t_erp_location匹配(1:當

訂單詳細行的產品,例如,要5件,有兩個庫位有這個產品【time為20180101有4件,time為20180102有6件,那就先拿20180102上的5件】,減去20180102上的5件,修改為1。2:其他的按照先進倉庫的拿,乙個卡板不夠,就拿多個)。

最後生成乙個出庫表,生成的資料插入到資料表裡面.  讓分揀員指導產品在哪個位置拿多少

因為資料量太大(空間換時間),後面改為根據每乙個車去生成(一車大概4s),

(個人做法:程式是通過在記憶體中去匹配的兩個for迴圈 , map>,對於修改庫位的number,是難點)

加入執行緒池,(同步的地方,不同的車裡面有很多相同的產品,又要修改t_erp_loaction的產品值 ,同步的地方太多了,不像下單的減庫存,加個鎖就行了,太多地方要修改了,同步的地方太多了,當資料量很多時怎麼辦)

佇列 先進先出

看前面的是什麼型別 指標 普通 出現指標指向空報錯的情況下,傳參不能為空,可以傳個空間的位址給他 queue front next null 從尾進 先進先出 define crt secure no warnings pragma once include include include incl...

佇列實現先進先出

1 入隊,如例 q.push x 將x 接到佇列的末端。2 出隊,如例 q.pop 彈出佇列的第乙個元素,注意,並不會返回被彈出元素的值。3 訪問隊首元素,如例 q.front 即最早被壓入佇列的元素。4 訪問隊尾元素,如例 q.back 即最後被壓入佇列的元素。5 判斷佇列空,如例 q.empty...

先進先出淘汰演算法

c語言實現作業系統最佳淘汰演算法 include include define length 20 定義陣列長度 int bwolist length 淘汰序列 void initlist int arr int bwo int init,int arr if flag 0 if temflag 1...