久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線(xiàn)實(shí)戰(zhàn)洞察。

開(kāi)源WMS倉(cāng)庫(kù)管理系統(tǒng)解析:從批次追溯到庫(kù)存精度提升

開(kāi)源WMS倉(cāng)庫(kù)管理系統(tǒng)解析:從批次追溯到庫(kù)存精度提升 簡(jiǎn)介GreaterWMS倉(cāng)庫(kù)管理系統(tǒng)完整源碼包面向供應(yīng)鏈開(kāi)發(fā)、企業(yè)應(yīng)用系統(tǒng)研究人員及物流倉(cāng)儲(chǔ)從業(yè)者。系統(tǒng)源自福特亞太區(qū)售后物流倉(cāng)儲(chǔ)供應(yīng)鏈流程作者離開(kāi)福特后將其從內(nèi)部定制方案發(fā)展為獨(dú)立項(xiàng)目重點(diǎn)解決庫(kù)存精確性、庫(kù)位分配、出入庫(kù)與訂單處理等效率問(wèn)題。壓縮包共2000個(gè)文件約85.15MB以1529個(gè)JavaScript、179個(gè)Python、105個(gè)Vue組件為主要構(gòu)成輔以CSS、JSON及Markdown文檔覆蓋前端管理界面、后端服務(wù)、數(shù)據(jù)處理邏輯與部署說(shuō)明目錄結(jié)構(gòu)清晰便于按模塊研讀。目前已有42人學(xué)習(xí)適合通過(guò)完整實(shí)戰(zhàn)項(xiàng)目理解WMS架構(gòu)學(xué)習(xí)企業(yè)應(yīng)用前后端開(kāi)發(fā)或參考其從內(nèi)部系統(tǒng)轉(zhuǎn)向商業(yè)產(chǎn)品的設(shè)計(jì)思路。內(nèi)容包括庫(kù)存控制、條碼掃描、報(bào)告生成等可運(yùn)行實(shí)現(xiàn)是結(jié)合真實(shí)業(yè)務(wù)場(chǎng)景深入掌握現(xiàn)代倉(cāng)庫(kù)管理軟件的優(yōu)質(zhì)素材。1. GreaterWMS 是什么從汽車(chē)售后物流走出來(lái)的開(kāi)源倉(cāng)庫(kù)管理系統(tǒng)倉(cāng)庫(kù)管理系統(tǒng)做久了會(huì)發(fā)現(xiàn)一個(gè)真相最難的從來(lái)不是庫(kù)存加減而是批次追溯、逆向退貨和拆零揀貨這三件事。GreaterWMS 正是一套把這三件事按“汽車(chē)售后備件”標(biāo)準(zhǔn)做出來(lái)的開(kāi)源倉(cāng)庫(kù)管理系統(tǒng)——它最早承載的是某大型跨國(guó)整車(chē)廠(chǎng)亞太區(qū)售后物流的完整供應(yīng)鏈流程從備件預(yù)測(cè)、入倉(cāng)上架一直管到經(jīng)銷(xiāo)商訂單下發(fā)和逆向退件。項(xiàng)目作者離開(kāi)那家整車(chē)廠(chǎng)后把這套業(yè)務(wù)邏輯從內(nèi)部系統(tǒng)里抽出來(lái)重寫(xiě)做成了可以獨(dú)立部署的開(kāi)源項(xiàng)目。這套系統(tǒng)適合三類(lèi)人業(yè)務(wù)上被批次強(qiáng)制追溯逼到墻角的備件倉(cāng)和醫(yī)藥倉(cāng)想從 Excel 管理庫(kù)存升級(jí)到系統(tǒng)化管理的中小電商倉(cāng)以及需要拿一套完整 WMS 做二次開(kāi)發(fā)的團(tuán)隊(duì)。它把售后物流里那些“一個(gè)零件用錯(cuò)批次就要全部召回”的嚴(yán)謹(jǐn)性帶到了普通倉(cāng)庫(kù)的日常管理里。說(shuō)到底WMS 不是一個(gè)錄入界面的合集而是一套庫(kù)存狀態(tài)的業(yè)務(wù)規(guī)則引擎。這篇文章會(huì)從業(yè)務(wù)模型、技術(shù)架構(gòu)、部署命令到上線(xiàn)避坑把這條鏈路完整拆給你看。2. 拆解業(yè)務(wù)模型售后件、庫(kù)位、批次和波次是怎么在系統(tǒng)里運(yùn)作的2.1 售后物流和成品物流的差異為什么通用 WMS 容易在這里翻車(chē)多數(shù)通用 WMS 是從電商或產(chǎn)線(xiàn)物料場(chǎng)景寫(xiě)出來(lái)的它們的庫(kù)存模型通常是“SKU 數(shù)量 貨架”批次只是一個(gè)可選的小字段??墒酆髠浼锪鞯牡讓舆壿嬐耆煌?。汽車(chē)售后備件的 SKU 動(dòng)輒五萬(wàn)到二十萬(wàn)遠(yuǎn)比產(chǎn)線(xiàn)物料復(fù)雜單張訂單往往只有三五行的拆零需求卻要求每一件貨都能按批次追溯到出廠(chǎng)時(shí)間、供應(yīng)商、質(zhì)檢報(bào)告。更麻煩的是逆向物流——經(jīng)銷(xiāo)商退回的舊件、索賠件、維修件不是簡(jiǎn)單重新入庫(kù)它們要按狀態(tài)分流處理。在售后場(chǎng)景里通用 WMS 通常會(huì)在三個(gè)地方翻車(chē)。第一是批次在揀貨環(huán)節(jié)被抹掉出庫(kù)記錄里只剩數(shù)量沒(méi)有批號(hào)真要召回時(shí)根本無(wú)從下手第二是逆向退貨直接復(fù)用正向入庫(kù)流程導(dǎo)致同一件貨的庫(kù)存被重復(fù)累計(jì)第三是拆零后原包裝余量找不到存放規(guī)則散件到處亂塞賬實(shí)差異越滾越大。GreaterWMS 的庫(kù)存模型從一開(kāi)始就是圍繞“主數(shù)據(jù)分層”和“批次全鏈路”設(shè)計(jì)的而不是把批次當(dāng)附加字段。它管的不只是貨在哪里、有多少而是每一批貨從哪個(gè)供應(yīng)商來(lái)、在哪個(gè)庫(kù)位、當(dāng)前什么狀態(tài)、能賣(mài)給誰(shuí)。理解這套系統(tǒng)的第一步是接受一個(gè)觀(guān)念轉(zhuǎn)換WMS 的庫(kù)存不是“庫(kù)存余額”而是一組帶有狀態(tài)的庫(kù)位明細(xì)。每一次收貨、上架、揀貨、出庫(kù)、盤(pán)點(diǎn)本質(zhì)都是在做“庫(kù)位明細(xì)狀態(tài)轉(zhuǎn)移”。你在系統(tǒng)里看到的庫(kù)存總數(shù)永遠(yuǎn)是這些明細(xì)的聚合結(jié)果。我見(jiàn)過(guò)很多團(tuán)隊(duì)在實(shí)施時(shí)總想跳過(guò)明細(xì)直接改總數(shù)最后無(wú)一例外倒在賬實(shí)不符上。2.2 主數(shù)據(jù)分層貨主、倉(cāng)庫(kù)、庫(kù)區(qū)、庫(kù)位、批次的關(guān)系GreaterWMS 的主數(shù)據(jù)組織方式可以理解成一棵從上到下的樹(shù)。最頂層是貨主Owner用于區(qū)分自營(yíng)庫(kù)存和第三方代管庫(kù)存貨主下面掛倉(cāng)庫(kù)Warehouse倉(cāng)庫(kù)下面分庫(kù)區(qū)Area庫(kù)區(qū)下面再細(xì)到庫(kù)位Location。每一層都有自己的編碼規(guī)則而編碼本身承擔(dān)著定位信息。庫(kù)位編碼是這套系統(tǒng)里最值得學(xué)習(xí)的細(xì)節(jié)。常見(jiàn)做法是用分段編碼比如CH-A-01-02表示“倉(cāng)庫(kù) CH、庫(kù)區(qū) A存儲(chǔ)區(qū)、貨架 01、層 02”。這種編碼的好處是揀貨路徑能通過(guò)字符串排序直接優(yōu)化——系統(tǒng)按庫(kù)位編碼排序生成揀貨順序揀貨員沿著貨架走就是最短路徑。如果庫(kù)位編碼是隨意編的哪怕系統(tǒng)再先進(jìn)揀貨效率也提不起來(lái)。編碼規(guī)則在項(xiàng)目初始化時(shí)就要定死半路再改是巨大的災(zāi)難。批次Batch是另一個(gè)核心主數(shù)據(jù)。它記錄的是同一供應(yīng)商、同一生產(chǎn)日期、同一質(zhì)量狀態(tài)的貨物集合。系統(tǒng)在收貨時(shí)強(qiáng)制要求錄入批次號(hào)和到期日期后續(xù)所有庫(kù)存移動(dòng)都綁定批次。對(duì)于 ECU、電瓶這類(lèi)需要單品追溯的貴重件還要啟用序列號(hào)Serial Number管理每一件貨都有唯一的身份編碼。下面這張表列出了我在實(shí)施時(shí)重點(diǎn)關(guān)注的主數(shù)據(jù)表數(shù)據(jù)對(duì)象關(guān)鍵字段作用貨主 Owner編碼、名稱(chēng)、結(jié)算方式區(qū)分庫(kù)存歸屬支撐多客戶(hù)共倉(cāng)倉(cāng)庫(kù) Warehouse編碼、地址、時(shí)區(qū)物理倉(cāng)的邊界庫(kù)區(qū) Area編碼、類(lèi)型區(qū)分收貨區(qū)、存儲(chǔ)區(qū)、揀貨區(qū)、退貨區(qū)、不合格區(qū)庫(kù)位 Location編碼、庫(kù)區(qū)、容量、狀態(tài)最小存儲(chǔ)單元承載上架策略SKU編碼、名稱(chēng)、單位、尺寸、重量貨物檔案注意多單位換算批次 Batch批次號(hào)、到期日、入庫(kù)日、質(zhì)檢狀態(tài)追溯的最小邏輯單元序列號(hào) Serial序列號(hào)、SKU、批次、來(lái)源單號(hào)單件級(jí)追溯啟用后揀貨必須掃序列號(hào)主數(shù)據(jù)不干凈后面所有流程都是空中樓閣。我在給一家三方云倉(cāng)做實(shí)施時(shí)光是庫(kù)位編碼就統(tǒng)一了三輪第一輪是客戶(hù)歷史編碼里帶特殊字符第二輪是庫(kù)位狀態(tài)字段含義不一致第三輪是同一個(gè)物理庫(kù)位在系統(tǒng)里錄了兩遍。這些都要在初始化階段全部清干凈再開(kāi)始跑業(yè)務(wù)否則后面每一條庫(kù)存記錄都是錯(cuò)的。2.3 從 ASN 收貨到波次揀貨流程在數(shù)據(jù)上是如何串聯(lián)的業(yè)務(wù)流程從供應(yīng)商預(yù)約送貨開(kāi)始。倉(cāng)庫(kù)先建 ASN到貨預(yù)報(bào)單寫(xiě)明預(yù)計(jì)到達(dá)時(shí)間、SKU、數(shù)量、批次信息。收貨員收到實(shí)物后按 ASN 核對(duì)并生成正式入庫(kù)單。這里有個(gè)關(guān)鍵參數(shù)是否允許“無(wú) ASN 收貨”。售后物流強(qiáng)烈建議關(guān)閉這個(gè)選項(xiàng)因?yàn)榕涡畔⒃?ASN 里已經(jīng)預(yù)先錄好現(xiàn)場(chǎng)補(bǔ)錄非常容易出錯(cuò)。收貨完成后進(jìn)入上架環(huán)節(jié)。系統(tǒng)按上架策略推薦庫(kù)位常見(jiàn)策略有三條同 SKU 合并到已有庫(kù)位減少碎片化按 ABC 分類(lèi)把高頻揀貨 SKU 放到靠近打包區(qū)的庫(kù)位按批次先進(jìn)先出原則將早批次放在可揀貨位、晚批次放入存儲(chǔ)位。這個(gè)動(dòng)作在系統(tǒng)里會(huì)產(chǎn)生一條上架任務(wù)PDA 上掃庫(kù)位碼和箱碼完成綁定。出庫(kù)側(cè)的核心是波次Wave。常見(jiàn)做法是把一段時(shí)間內(nèi)的一批訂單合并成一個(gè)波次系統(tǒng)按訂單行生成揀貨任務(wù)再按庫(kù)位編碼排序輸出揀貨路徑。揀貨員沿路徑一次性把整個(gè)波次的貨揀完到復(fù)核區(qū)按訂單二次分揀、掃描校驗(yàn)、打包出庫(kù)。整個(gè)過(guò)程在數(shù)據(jù)庫(kù)里會(huì)留下完整的移動(dòng)記錄庫(kù)存從庫(kù)位明細(xì)扣減、生成出庫(kù)明細(xì)、批次和序列號(hào)被鎖定到訂單號(hào)上。這套“追蹤鏈路”正是售后追溯的基礎(chǔ)——任何一個(gè)出庫(kù)件都能反查它來(lái)自哪個(gè)批次、哪個(gè)庫(kù)位、哪次收貨。3. 技術(shù)架構(gòu)與數(shù)據(jù)落盤(pán)Django 后臺(tái)、API 與雙模式前端3.1 技術(shù)棧選型為什么是 Python 和 Django 而不是一堆 Node 服務(wù)倉(cāng)庫(kù)管理系統(tǒng)的本質(zhì)是“業(yè)務(wù)對(duì)象多、狀態(tài)流轉(zhuǎn)多、報(bào)表查詢(xún)多、實(shí)時(shí)并發(fā)中低”的典型企業(yè)應(yīng)用它的核心訴求是業(yè)務(wù)邏輯清晰、能快速出后臺(tái)界面、數(shù)據(jù)和權(quán)限可控。Django 在這類(lèi)場(chǎng)景里的優(yōu)勢(shì)非常明顯自帶 ORM、數(shù)據(jù)庫(kù)遷移、Admin 后臺(tái)和權(quán)限框架一個(gè)團(tuán)隊(duì)可以在很短時(shí)間內(nèi)把主數(shù)據(jù)管理和單據(jù)流程全部跑起來(lái)。相比用 Node/Go 從零搭一套微服務(wù)Django 的開(kāi)發(fā)效率在中期維護(hù)階段會(huì)拉開(kāi)明顯差距。從分工上看系統(tǒng)拆成前后端兩層。后端是一套 Django 應(yīng)用對(duì)外提供 JSON API管理后臺(tái)走 Django 自帶的 Admin 界面可以快速處理主數(shù)據(jù)維護(hù)、單據(jù)查詢(xún)這類(lèi)低頻操作一線(xiàn)操作界面則是一套面向移動(dòng)端的 Web 應(yīng)用專(zhuān)門(mén)給掃碼槍、PDA 和手機(jī)瀏覽器用。操作員在 PDA 上打開(kāi)任務(wù)列表點(diǎn)擊任務(wù)開(kāi)始掃一個(gè)條碼提交一個(gè)動(dòng)作界面簡(jiǎn)單到只剩大按鈕和輸入框。這樣設(shè)計(jì)是刻意為之的。倉(cāng)儲(chǔ)現(xiàn)場(chǎng)的硬件條件參差不齊Windows 平板、安卓 PDA、老式掃碼槍都有瀏覽器是最大公約數(shù)。移動(dòng)端頁(yè)面不能依賴(lài)復(fù)雜交互和長(zhǎng)表單每個(gè)動(dòng)作一個(gè)頁(yè)面提交后立即返回結(jié)果。管理端則可以做得信息密集因?yàn)楣芾砣藛T是在電腦前用鼠標(biāo)鍵盤(pán)操作搜索、篩選、批量修改這些能力都要齊備。3.2 核心數(shù)據(jù)模型庫(kù)存表是如何避免余額式設(shè)計(jì)的Django 的 ORM 讓建表非常直接但建模思路錯(cuò)了后面全是坑。最典型的誤區(qū)是把“庫(kù)存”建一張簡(jiǎn)單的余額表比如sku_id location_id qty每次出入庫(kù)直接qty qty n。這種模型在并發(fā)場(chǎng)景下極易出錯(cuò)且沒(méi)有任何歷史鏈路。GreaterWMS 的思路是把庫(kù)存拆成“庫(kù)存快照”和“庫(kù)存移動(dòng)記錄”兩張核心表。庫(kù)存快照表達(dá)“當(dāng)前每個(gè)庫(kù)位有什么”移動(dòng)記錄表達(dá)“每一筆變化從哪來(lái)到哪去”。我通常會(huì)在項(xiàng)目里保持下面這種核心結(jié)構(gòu)class StockBatch(models.Model): # 批次庫(kù)存SKU在一個(gè)庫(kù)位上的批次明細(xì)而不是籠統(tǒng)的庫(kù)存余額 sku models.ForeignKey(Sku, on_deletemodels.PROTECT) location models.ForeignKey(Location, on_deletemodels.PROTECT) batch_no models.CharField(max_length64, db_indexTrue) qty models.DecimalField(max_digits15, decimal_places3) locked_qty models.DecimalField(max_digits15, decimal_places3, default0) expire_date models.DateField(nullTrue, blankTrue) # 狀態(tài)待檢/合格/不合格/凍結(jié) status models.CharField(max_length20, db_indexTrue) updated_at models.DateTimeField(auto_nowTrue) class Meta: constraints [ models.UniqueConstraint( fields[sku, location, batch_no, status], nameuniq_stock_batch_sku_location_status, ) ] class StockMove(models.Model): # 移動(dòng)記錄所有庫(kù)存變化都寫(xiě)一條帶方向、單號(hào)、操作人 move_type models.CharField(max_length30) # inbound/outbound/transfer/stocktake ref_no models.CharField(max_length64) # 關(guān)聯(lián)的入庫(kù)單/出庫(kù)單號(hào) sku models.ForeignKey(Sku, on_deletemodels.PROTECT) from_location models.ForeignKey(Location, nullTrue, on_deletemodels.SET_NULL, related_name) to_location models.ForeignKey(Location, nullTrue, on_deletemodels.SET_NULL, related_name) batch_no models.CharField(max_length64) qty models.DecimalField(max_digits15, decimal_places3) operator models.CharField(max_length64) created_at models.DateTimeField(auto_now_addTrue, db_indexTrue)上面這兩張表配合起來(lái)庫(kù)存總數(shù)永遠(yuǎn)是StockBatch按 SKU 聚合出來(lái)的結(jié)果而不是某一行字段。locked_qty是關(guān)鍵參數(shù)訂單已經(jīng)分配但還沒(méi)實(shí)際揀貨的數(shù)量要記在上面可用量等于qty - locked_qty。否則銷(xiāo)售看了庫(kù)存說(shuō)有貨揀貨時(shí)才發(fā)現(xiàn)被別的訂單鎖定了這種事故在電商促銷(xiāo)期間尤其常見(jiàn)。移動(dòng)記錄表只插入不更新是財(cái)務(wù)審計(jì)和批次追溯的數(shù)據(jù)底倉(cāng)。線(xiàn)上問(wèn)題排查時(shí)只要拿著 SKU 和批次號(hào)去查StockMove從最后一次收貨到當(dāng)前庫(kù)存的全部路徑都會(huì)浮出來(lái)。這套設(shè)計(jì)不復(fù)雜但把“庫(kù)存余額思維”換成“流水思維”之后絕大多數(shù)的對(duì)賬問(wèn)題都能在幾分鐘內(nèi)定位而不是半夜去翻 Excel。3.3 API 與移動(dòng)端配合掃碼交互里的三個(gè)邊界后端 API 采用 REST 風(fēng)格接口認(rèn)證走 JWT操作員在 PDA 上登錄一次Token 到點(diǎn)失效重新登錄。接口設(shè)計(jì)上有一條鐵律前端只負(fù)責(zé)掃碼和展示結(jié)果所有業(yè)務(wù)判斷都由后端做。條碼掃進(jìn)來(lái)是一串原始字符串后端去解析它到底是 SKU 碼、庫(kù)位碼還是批次碼前端不做任何猜測(cè)。這樣換個(gè)掃碼槍型號(hào)或者條碼規(guī)則調(diào)整都只需要改后端不用升級(jí)每一臺(tái) PDA。接口需要重點(diǎn)設(shè)計(jì)冪等性。掃碼提交是最容易產(chǎn)生重復(fù)請(qǐng)求的場(chǎng)景PDA 網(wǎng)絡(luò)卡頓操作員以為自己沒(méi)點(diǎn)中又點(diǎn)了一次兩條一模一樣的收貨請(qǐng)求都到了后端。我一般會(huì)在入庫(kù)明細(xì)表上做唯一約束接收單號(hào)SKU批次號(hào)三字段聯(lián)合唯一重復(fù)提交直接返回“該明細(xì)已處理”。這個(gè)約束在數(shù)據(jù)庫(kù)層面做不依賴(lài)前端按鈕防抖。權(quán)限模型用 RBAC角色劃分為收貨員、揀貨員、上架員、倉(cāng)管員、管理員五類(lèi)。每個(gè) API 按角色做訪(fǎng)問(wèn)控制。這里有個(gè)細(xì)節(jié)不要把權(quán)限控制得太粗比如讓揀貨員也能做庫(kù)存調(diào)整。庫(kù)存調(diào)整是止血操作寧可讓倉(cāng)管員多走兩步路也不能讓一線(xiàn)操作員隨手改庫(kù)存否則月底盤(pán)點(diǎn)差異永遠(yuǎn)解釋不清。4. 本地跑通最小系統(tǒng)Docker 部署命令與關(guān)鍵參數(shù)4.1 用 Docker Compose 拉一套最小環(huán)境在本地跑通一份代碼永遠(yuǎn)比看文檔學(xué)得快。常見(jiàn)做法是把整個(gè)環(huán)境用 Docker Compose 組織成兩個(gè)核心服務(wù)web是 Django 應(yīng)用db是 PostgreSQL 數(shù)據(jù)庫(kù)。生產(chǎn)環(huán)境再外部掛一層反向代理和對(duì)象存儲(chǔ)但本地驗(yàn)證這套最小配置就足夠了。下面這個(gè) Compose 文件是多數(shù) Django WMS 項(xiàng)目都能直接對(duì)上的骨架version: 3.9 services: db: image: postgres:14-alpine environment: POSTGRES_DB: wms POSTGRES_USER: wms POSTGRES_PASSWORD: wms_pass # 參數(shù)說(shuō)明容器內(nèi)數(shù)據(jù)庫(kù)名/用戶(hù)名/密碼首次啟動(dòng)自動(dòng)建好庫(kù) volumes: - pgdata:/var/lib/postgresql/data ports: - 5432:5432 web: build: . command: python manage.py runserver 0.0.0.0:8000 volumes: - .:/app # 參數(shù)說(shuō)明掛載源碼目錄改代碼即生效不用重建鏡像 ports: - 8000:8000 environment: DJANGO_DEBUG: True DB_HOST: db DB_PORT: 5432 DB_NAME: wms DB_USER: wms DB_PASSWORD: wms_pass depends_on: - db volumes: pgdata:數(shù)據(jù)庫(kù)連接配置是本地最容易卡住的一步。DB_HOST必須寫(xiě)db不是localhost因?yàn)閼?yīng)用容器和數(shù)據(jù)庫(kù)容器是兩臺(tái)獨(dú)立的機(jī)器localhost指向的是 web 容器自己。第一次啟動(dòng)時(shí)如果 web 容器報(bào)could not connect to server通常不是密碼錯(cuò)了而是 db 容器還在初始化等十幾秒后docker compose restart web就行。我一般會(huì)在項(xiàng)目的.env文件里把數(shù)據(jù)庫(kù)配置和 Django 密鑰拆出來(lái)避免把環(huán)境配置寫(xiě)死在代碼里。調(diào)試階段DJANGO_DEBUG開(kāi) True能看到詳細(xì)的報(bào)錯(cuò)堆棧一旦要往測(cè)試環(huán)境部署第一件事就是把 Debug 關(guān)掉這也意味著要提前處理靜態(tài)文件后面第 5 章的坑就是從這里長(zhǎng)出來(lái)的。4.2 初始化數(shù)據(jù)庫(kù)與第一個(gè)管理員賬號(hào)容器起來(lái)之后進(jìn)入 web 容器執(zhí)行數(shù)據(jù)遷移和管理員創(chuàng)建這一步是通用的 Django 流程# 進(jìn)入 web 容器注意這里執(zhí)行的是容器內(nèi)的 shell docker compose exec web python manage.py migrate # 生成 Django 后臺(tái)必需指令執(zhí)行后按提示輸入用戶(hù)名、郵箱、密碼 docker compose exec web python manage.py createsuperuser # 收集靜態(tài)文件到指定目錄為后續(xù)關(guān)閉 Debug 做準(zhǔn)備 docker compose exec web python manage.py collectstatic --noinputmigrate負(fù)責(zé)把項(xiàng)目里所有的數(shù)據(jù)模型映射成數(shù)據(jù)庫(kù)表。如果migrate中間報(bào)錯(cuò)說(shuō)某張表已存在不要慌常見(jiàn)原因是之前跑過(guò)一次或者數(shù)據(jù)庫(kù)卷沒(méi)清干凈執(zhí)行docker compose down -v清掉數(shù)據(jù)卷再重新up就好。createsuperuser創(chuàng)建的是管理員賬號(hào)用于登錄 Django Admin 后臺(tái)做基礎(chǔ)配置賬號(hào)密碼只存在數(shù)據(jù)庫(kù)里重建容器也不會(huì)丟因?yàn)閿?shù)據(jù)卷是獨(dú)立的。collectstatic這一步容易被人忽略。本地開(kāi)著默認(rèn)的 App 服務(wù)器時(shí)Django 會(huì)自動(dòng)處理靜態(tài)資源你會(huì)覺(jué)得不執(zhí)行這條命令也能用但一旦切換成生產(chǎn)模式樣式和腳本會(huì)全部 404整個(gè)后臺(tái)變成裸 HTML。所以項(xiàng)目初始化階段就要把它寫(xiě)進(jìn)部署腳本別等到上線(xiàn)才想起來(lái)。4.3 首次登錄后的配置順序登錄系統(tǒng)之后配置順序是有講究的順序錯(cuò)了后面每步都別扭。正確順序是先配倉(cāng)庫(kù)和庫(kù)區(qū)再配庫(kù)位然后建貨主和 SKU 檔案最后配供應(yīng)商和客戶(hù)。步驟配置項(xiàng)注意事項(xiàng)1倉(cāng)庫(kù)檔案設(shè)置默認(rèn)時(shí)區(qū)時(shí)區(qū)錯(cuò)會(huì)導(dǎo)致批次到期日計(jì)算偏差2庫(kù)區(qū)與庫(kù)位先把編碼規(guī)則寫(xiě)進(jìn)文檔按規(guī)則批量生成庫(kù)位3貨主第三方倉(cāng)儲(chǔ)業(yè)務(wù)的貨主編碼要和客戶(hù)系統(tǒng)保持一致4SKU 檔案錄入重量和尺寸波次揀貨的路徑優(yōu)化依賴(lài)這些參數(shù)5供應(yīng)商/客戶(hù)建議提前把聯(lián)系人姓名和電話(huà)維護(hù)齊全單據(jù)上要打印有個(gè)最容易踩的細(xì)節(jié)SKU 的單位換算關(guān)系要先定死。汽車(chē)備件經(jīng)常出現(xiàn)“箱”和“個(gè)”混用的情況入庫(kù)按箱數(shù)出庫(kù)按個(gè)如果換算系數(shù)在 SKU 檔案里配錯(cuò)庫(kù)存數(shù)字會(huì)成倍失真。我在給某公司做實(shí)施時(shí)遇到過(guò)一件奇葩事一種機(jī)油濾芯的換算系數(shù)被配成了 1 箱 12 個(gè)但供應(yīng)商實(shí)際包裝是一箱 10 個(gè)結(jié)果系統(tǒng)庫(kù)存顯示 1200實(shí)物只有 1000。查到最后就是在 SKU 檔案里差了這一步。這個(gè)參數(shù)在配置時(shí)就要和倉(cāng)庫(kù)主管當(dāng)面確認(rèn)不要自己猜。5. 上線(xiàn)避坑最容易翻車(chē)的 5 個(gè)問(wèn)題5.1 批次號(hào)被 Excel 自動(dòng)截?cái)喱F(xiàn)象導(dǎo)入批次主數(shù)據(jù)后系統(tǒng)里批次號(hào)的后幾位全變成了 0比如原始批次號(hào)是BF20241118A1234導(dǎo)入后變成了BF20241118A0000。追溯查詢(xún)對(duì)不上供應(yīng)商原始記錄。原因Excel 默認(rèn)把超過(guò) 15 位的數(shù)字列當(dāng)成數(shù)值處理批次號(hào)一旦長(zhǎng)得像數(shù)字就會(huì)被轉(zhuǎn)成科學(xué)計(jì)數(shù)法再把精度丟光。這個(gè)錯(cuò)在導(dǎo)入階段根本看不出來(lái)因?yàn)榻缑骖A(yù)覽時(shí)數(shù)字差不多要到出庫(kù)追溯才對(duì)不上。解決導(dǎo)入模板里把批次號(hào)列的數(shù)據(jù)格式強(qiáng)制設(shè)為文本同時(shí)后端這塊字段必須定義為CharField而不是數(shù)字類(lèi)型。最穩(wěn)妥的做法是導(dǎo)入腳本里對(duì)批次號(hào)做一次正則校驗(yàn)只允許字母、數(shù)字和短橫線(xiàn)任何科學(xué)計(jì)數(shù)法特征直接報(bào)錯(cuò)攔截。順帶在數(shù)據(jù)庫(kù)層給batch_no字段加上唯一約束重復(fù)數(shù)據(jù)進(jìn)不來(lái)問(wèn)題就提前暴露而非事后排查。5.2 并發(fā)揀貨把庫(kù)存扣成負(fù)數(shù)現(xiàn)象兩個(gè)揀貨員在同一時(shí)間掃描同一個(gè)庫(kù)位的同一個(gè) SKU系統(tǒng)顯示揀貨成功但庫(kù)存明細(xì)變成了負(fù)值總賬對(duì)不上。原因這是典型的讀改寫(xiě)并發(fā)問(wèn)題。邏輯是“先查庫(kù)存判斷夠不夠再扣減”但兩個(gè)請(qǐng)求同時(shí)讀到同樣的庫(kù)存數(shù)字各自都以為夠扣然后分別扣減最終結(jié)果就突破了零。解決扣減庫(kù)存必須走原子操作不能用“先讀后寫(xiě)”。ORM 層用條件更新加F()表達(dá)式在數(shù)據(jù)庫(kù)層把扣減和檢查合成一條語(yǔ)句類(lèi)似UPDATE stock_batch SET qty qty - 2 WHERE sku xxx AND qty 2。這樣即使并發(fā)再高數(shù)據(jù)庫(kù)的鎖機(jī)制也會(huì)讓第二個(gè)請(qǐng)求等待等它執(zhí)行時(shí)條件已經(jīng)不滿(mǎn)足直接返回庫(kù)存不足而不是扣成負(fù)數(shù)。線(xiàn)上最好再配合流水表唯一約束做兜底一筆入庫(kù)單明細(xì)只能被出庫(kù)沖銷(xiāo)一次。5.3 批次到期日差了一天導(dǎo)致效期管理錯(cuò)亂現(xiàn)象倉(cāng)庫(kù)反饋某藥品批次的到期日比實(shí)物標(biāo)簽晚了 8 小時(shí)部分庫(kù)位顯示還有效期實(shí)物已經(jīng)過(guò)期。原因前后端時(shí)區(qū)處理不一致。前端輸入日期2024-11-30后把它當(dāng)成帶時(shí)區(qū)的完整時(shí)間2024-11-30T00:00:00傳給后端后端用 UTC 解析再存到數(shù)據(jù)庫(kù)的timestamp字段東八區(qū)環(huán)境下最后記錄就變成了實(shí)際日期的前一天或后一天。解決效期管理只關(guān)心“哪天到期”完全不關(guān)心幾點(diǎn)幾分。API 層對(duì)日期字段只接收YYYY-MM-DD純?nèi)掌谧址蠖擞肈ateField存儲(chǔ)計(jì)算效期剩余時(shí)把到期日當(dāng)天的 23:59:59 作為最終時(shí)間邊界。這個(gè)規(guī)則在接口文檔里寫(xiě)清楚前端不做任何時(shí)間轉(zhuǎn)換時(shí)區(qū)問(wèn)題就不會(huì)有機(jī)會(huì)滲透到庫(kù)存邏輯里。5.4 逆向退貨重復(fù)上架導(dǎo)致庫(kù)存虛增現(xiàn)象客戶(hù)退貨重新入庫(kù)后庫(kù)存總數(shù)翻了一倍財(cái)務(wù)對(duì)賬怎么都對(duì)不上。一查發(fā)現(xiàn)同一件貨既在“已出庫(kù)”記錄里又在“可用庫(kù)存”里。原因逆向退貨直接用正向入庫(kù)流程處理系統(tǒng)把退回來(lái)的貨當(dāng)成一筆全新入庫(kù)加進(jìn)庫(kù)存而不是沖銷(xiāo)原來(lái)那筆出庫(kù)記錄。正向和逆向沒(méi)有關(guān)聯(lián)賬面上就出現(xiàn)了同一件貨的重復(fù)累計(jì)。解決退貨必須走獨(dú)立的逆向流程而且退貨單要引用原出庫(kù)單號(hào)。正確狀態(tài)流轉(zhuǎn)是退貨收貨進(jìn)入“待檢庫(kù)位”質(zhì)檢合格后做兩步操作——先沖銷(xiāo)原出庫(kù)記錄再生成新的入庫(kù)記錄然后才上架到可用庫(kù)存。質(zhì)檢不合格的直接進(jìn)不合格品區(qū)走供應(yīng)商退貨流程。我見(jiàn)過(guò)太多項(xiàng)目為了省事把逆向流程簡(jiǎn)化掉最后全部倒在月底對(duì)賬上。5.5 關(guān)閉 Debug 后后臺(tái)全部 404現(xiàn)象把DJANGO_DEBUG從 True 改成 False 后部署到測(cè)試服務(wù)器登錄頁(yè)面能打開(kāi)但沒(méi)有任何樣式圖片全部裂開(kāi)JS 控制臺(tái)全是 404。原因Django 默認(rèn)只在 Debug 模式下自己服務(wù)靜態(tài)文件關(guān)掉 Debug 后靜態(tài)文件請(qǐng)求不再被框架處理。項(xiàng)目部署前沒(méi)有執(zhí)行collectstatic或者執(zhí)行了但沒(méi)有把靜態(tài)文件目錄暴露到反向代理的路由里。解決部署腳本里把collectstatic --noinput放在啟動(dòng)服務(wù)之前然后讓反向代理配置里加一條/static/的路徑映射直接服務(wù)靜態(tài)文件目錄。驗(yàn)證方法很簡(jiǎn)單直接訪(fǎng)問(wèn)一個(gè)靜態(tài)文件地址能返回文件內(nèi)容就說(shuō)明配通了。這個(gè)坑沒(méi)有技術(shù)難度純粹是部署流程繞不過(guò)的必選項(xiàng)。6. 進(jìn)階技巧用循環(huán)盤(pán)點(diǎn)把庫(kù)存精度拉回 99% 以上庫(kù)存系統(tǒng)跑三個(gè)月后賬實(shí)差異會(huì)像雪球一樣滾起來(lái)。差異來(lái)源不一定是系統(tǒng) bug很可能是收貨時(shí)掃碼漏掃、揀貨時(shí)串貨、或者是某個(gè)庫(kù)位的貨被挪了位置沒(méi)錄系統(tǒng)。與其等年底一次性大盤(pán)點(diǎn)不如用一個(gè)技巧按 ABC 分類(lèi)做循環(huán)盤(pán)點(diǎn)每天點(diǎn)名一小部分庫(kù)位讓庫(kù)存精度持續(xù)保持在可接受范圍內(nèi)。做法是給每個(gè) SKU 打上分類(lèi)標(biāo)簽A 類(lèi)是出貨頻率最高的頭部 SKU數(shù)量可能只占 10%但出貨行數(shù)占 70%每周盤(pán)一次B 類(lèi)每月盤(pán)一次C 類(lèi)每季度盤(pán)一次。盤(pán)點(diǎn)任務(wù)按庫(kù)位隨機(jī)抽樣生成每天盤(pán) 20 到 50 個(gè)庫(kù)位即可不會(huì)干擾正常作業(yè)。盤(pán)點(diǎn)采用盲盤(pán)模式更靠譜——盤(pán)點(diǎn)單據(jù)上不顯示系統(tǒng)賬面數(shù)量操作員只錄入實(shí)盤(pán)數(shù)量系統(tǒng)隨后對(duì)比差異這樣能避免操作員被賬面數(shù)字暗示。我把這套邏輯簡(jiǎn)化成一個(gè)獨(dú)立腳本def generate_stocktake_tasks(warehouses, today): tasks [] for wh in warehouses: for sku_class in [A, B, C]: frequency {A: 7, B: 30, C: 90}[sku_class] if today.day % frequency 0 or sku_class A: # 按庫(kù)位抽樣A類(lèi)全盤(pán)B/C類(lèi)按庫(kù)位隨機(jī)抽 locs StockBatch.objects.filter( warehousewh, sku_classsku_class ).values_list(location_id, flatTrue).distinct() sample list(locs) if sku_class A else random.sample(list(locs), kmin(len(locs), 30)) tasks.append({warehouse: wh, locations: sample}) return tasks每日盤(pán)點(diǎn)產(chǎn)生的差異不要直接改庫(kù)存。正確做法是把差異掛起讓倉(cāng)管員去查StockMove流水確認(rèn)是漏掃碼還是挪庫(kù)沒(méi)錄再?zèng)Q定是補(bǔ)單還是做調(diào)整單。這里的教訓(xùn)是盤(pán)點(diǎn)不是為了把賬面改對(duì)而是為了找到流程里那個(gè)讓庫(kù)存變錯(cuò)的環(huán)節(jié)。只有把根因修掉循環(huán)盤(pán)點(diǎn)才真正發(fā)揮作用。這套方法我實(shí)踐過(guò)多次一般兩個(gè)月內(nèi)能把庫(kù)存準(zhǔn)確率從 90% 拉到 99% 以上。希望這個(gè)思路對(duì)你手頭的倉(cāng)庫(kù)項(xiàng)目有用也能幫你少走我走過(guò)的那些彎路。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲成人精品在线一区| 小日子操bb在线看| 亚洲丝袜B诱惑| 激情五月丁香五月| 3D污黄视频在线观看| 久久久555| 97av,com| 视频二区熟女人妻| 久热精品在线| 一区二区乱码福利| 国产精品夜夜| 后入式999| 亚洲男人的天堂一区二区| 五月丁香六月婷综合成人综合| 思思视频免费看网站| 久久久555| AV在线播放网址| 97爱爱影院| 亚洲综合小说另类图欧美视频激情小说色五月天 | 九九性爱网| 午夜激情成人在线观看| 无码人妻1727| 影视综合无码少妇| 女同性恋久久| 最近的最新的中文字幕视频| 婷婷AV一区二区三区| 亚洲人妻在线一区| 亚洲最新av无码成人精品区| 伊人激情五月天一区二区| 国产强奸AV在线| 中文字幕一二三| 精品久久97| 激情欧美97| 岛国艾薇凹凸视频天堂| 久插不卡| 伊人嫩草| 亚洲有薄码区日本系列中文字幕| 操久久久久久| 日韩伦理久 久久 清纯| 好淫网一二三视区| 偷拍欧美激情| 99精品高潮| 粉嫩小泬久久久一区二区| 色呦呦、国产精品| 有码人妻系列| 91无码人妻| 久久免费中文字幕在线观看| 很黄很污的免费网站 | 亚州九九九精品视频| 少妇人妻无码| 亚洲天堂情色| 97国产伦理| com 首页 18岁 禁区 女优 免费 精选 同城| 91美女視頻| 亚洲久草AV色图| 桑老女人九区| 中文字幕日韩专区精品系列 | 亚洲天堂,男人| 青青草日逼视频| 午夜久久一区二区无码中出| 久久99999| 亚洲熟女乱综合一区二区三区| 综合av影片| 久久久亚洲熟妇资源| 超碰97久| 天天操天天干一区二区 | 黄色工厂这里只有精品| 18啪啪手机免费性爱| 亚洲一卡2卡3卡4卡乱码网站| 欧美性爱十八禁| 九九综合久久| 黑人综合色| 96精品久久久久久久久久| 免费家庭乱伦视频| 色婷婷电影网| 久草男人天堂| 襙一襙| 在线观看黄色电话| 欧美精品91| 日日躁天天躁狠狠躁| 综合久久97| 中文字幕国产| 欧美日韩国产传媒在线精品| 一区二区三区麻豆| 嫩草影院在线观看精品 | 日本幼女18+| 亚洲成人精品在线一区| 欧美极品女人的天堂| 韩国嫰模上门援交视频| 91视频伊人| 26uuu国产| 久草热制服丝袜在线观看| 日韩欧美传媒一区国产| 亚洲乱码尤物193YW| 亚洲色性情三级| 熟女精品一区二区三区| 中文AV制服乱伦| 岛国在线国产| 日本有码影片下载| 国产欧美日韩女同性恋ww喷水精品| 久操视频免费在线观看| 亚洲欧美骚| 成人性爱美曰韩| 无码99| 国产综合久久久鬼色| 亚洲毛片久久| 人人摸人人干| 亚洲中文字幕熟女少妇一区二区| 女人高潮大叫一级毛片| 少妇精品| 成人影 天天操 亚洲| 欲香欲色综合天天伊人| 91一起操| 久久久久久久久一区二区三区| 人人操人人插人人摸人人干| 激情视频一二三| 性色av大全| 久久嫩草国产成人一区| 国产精品一区二区校花| 国内一区二区三区| 日韩午夜啪啪视频| 中文三一区| 国产欧美一区激情交| 超碰 国产熟女精品一区| 在线看片国产精品每日更新| 婷婷人妻激情| 久久久婷| 91人妻尻屄视频| 极品一区二区三区免费| 色五月网址| 9 1果冻精品视频| 亚州色交| 黄片免费久久久久久久| 在线洲亚线| 大香蕉免费中文| 好吊色综合| 国产亚洲 中文欧美久久| 超碰97综合| 99久在线精品99re8热视频在线| 欧美一二在线| www.超碰在线| 秋霞成人做爱| 色婷婷一区二区三区久久午夜成人不| 婷婷五月综合在线| 成人小说另类在线| 国产99999久久精品| 天堂中文日本在线观看| 蜜臀视频网站| a片亚洲一本通视频| 一区二区三区 日韩欧美| 毛片99-全集电影手机免费观看完整-B029AV| 久久免费精品视频免一| 国产偷拍网站| 日韩日韩日韩-国产乱码精品一区二区| 国产精品秘 福利姬在线观看| 久久六六| 久久久精| 日日噜噜夜夜久久亚洲一区二区| 97亚洲综合电影| 在线一道啪| 97色综合中文网| 又摸又舔在线观看网站| 色五月av| 欧美视频边做饭边橾| 国产日本一区二区三区蜜臀在线观看| 欧美91网站| 五月婷婷大香蕉| 桃花色综合影院| 91热色| 久久伊人网视频一区二区三区 | 综合激情五月丁香| 九九热久久99精品re| 日日日日做夜夜夜夜做无码97| 日韩人妻精品久久久久| 亚洲第一无码播放立川理惠| 久久精品亚洲成a人天堂| 九九九九久久久| 欧美一级黄片视频在线| 久久精品国产亚洲AV先锋| 爱妻综合网| 熟妇亚洲一区二区三区| 日韩成人电影AV| 午夜.DJ高清在线观看免费7| 清纯唯美亚洲综合| 91美女片在线| 東南亚性呦成人伦理资源在线视频| 九九久久国产精品| 91男女啊啊啊| 欧美1727免费观看视频| 国产欧美一区激情交| 欧美日韩黄片精品在线| jizz啪啪| 成人欧美日超碰| 亚洲欧美清纯| 嫩草91| 日欧毛片久久| 男女香蕉一区二区| 91黑丝美女| 超碰天天久久79| 色婷婷丁香五月| 高清无码 国产精品| 18禁在线视频| 手机在线人成免费视频| 国产午夜无码片在线观看影视 | 国产大学生高潮在线播放| 国产成人自拍视频视频| 最近2018中文字幕在线高清第一页| 黄页av| 99热伊人| 操逼操2| 草草草视频在线免费看| 夜夜影视四色| 久热色情精品| 欧美性爱在线无码| 欧美写真视频一区| 久久夜夜夜| 美骚妇av高清在线| 精久久久| 久久久亚洲精品中文字幕人妻| 爱丝福利| 亚洲欧洲自拍| 日韩免费簧片| 久久九九视频九九视频| 九九这里只有精品| 青青草日逼视频| 欧美日韩免费专区在线| 亚av顶级裸体一区二区三区四区五区 | 亚洲综合20p| 激情小说在线视频| 中文色综合| 亚洲一卡2卡3卡4卡乱码网站 | 久久熟女人| 蜜臀亚洲中文| 蜜臀av一区二区三区免费观看| 五月天久久久| 日本不卡三级网在线播放| 成人网欧美风情| 精品国产99| 久久久草草精品| 亚洲av资源| 自拍偷拍国产欧美日韩韩| 先锋色眉乱伦资源| 99操| 91爱看| 日韩精品一二三| 中文字幕一区二区三区50路| 二男一女成人A片| 婷婷六月色开| 欧美一区二区成人一卡| 综合少妇网| 欧美性生活男人的天堂| 久9视频| 97在线欧洲| 5252色欧美在线男人的天堂| 婷婷色色五月天福利| 懂色av色欲av蜜臀av| 五月婷婷激情| 日本黄色XXX| 91福利网在线观看| aaa一级黄片| 丝袜天堂| 精品毛片av一区二区| 99啪啪| 啊啊啊啊啊啊啊啊啊啊在线观看| 毛片一区二区| 超碰久热| 中日韩久久久免费看| 美国日韩黄片| 亚洲aw毛茸茸在线 | 伊人综合色网| 欧洲一区二区三区四区在线观看| 又大又长又粗又爽又黄| 亚洲AV资源| 性欧美91| 色婷婷五月天| 色欧美在线| 中日韩久久久| 丝袜av一区二区三区| 精品国产Av无码久久久伦古装| 久久AV无码网址| 亚洲欧洲色情高清| 国产精品女生av| 日韩av熟女一区二区三区成人| 青青草好吊色| 中文字幕一区 二 区 三 四 五 区日 日 骚| 99这里都是精品| av午夜影院在线播放| 91丝袜激情在线| 国内毛片热久久思思热| 欧美亚州色的图| 91在线精品一区二区三区| 一二三四日本视频高清| 亚洲国产另类在线中文| 天天射网| 白丝被操91| 中文字幕丝袜人妻| 色官网色综合| 欧美黑人168页欧美黑人167| 在线国产探花| 欧美亚洲首页| 日韩成人午夜精品久久高潮| 久久青青草原免费视频| 国产精品久久久久久久免牛肉蒲团 | 91精片| 91婷婷伊人狠人| 精品视频一区二区| 人人摸人人干| 浪人综合网| 久久久久久裸体| 日韩激情啪啪| 亚州综合色| 亚洲人在线| 国产精品盗摄 偷窥盗摄| 91久久久视| 岛国AB视频| 性欧美999| 五月丁香影院| 岛国网址国产| 天堂亚洲精品| 手机不卡视频不卡在线一二三区 | 亚洲色图a| 懂色AV蜜臀无码精品APP| 久久超碰天天| 大香蕉伊人亚洲| 91午夜无码| 大干人妻| 99国产精品久久久久久久成人热| 1769精品一区二区三区| 一起草高清无码| www.男人天堂| 男人的天堂2019AV| 国产精品久久久久无码A√| 欧美淫乱视频| 中文字幕亚洲欧美在线不卡| 国产精品香蕉热久久新品| 中国和日本人色哪个不下载能放| 国产精品久久久久绯色| 亚洲四虎熟女精品| 人人干黄色| 99999久久精| 超碰98综合网| 蜜桃久久久久久久| 99热综合| 国产女性无套 免费观看| 亚洲国产美女久久久久| 久热精品在线| 超碰精品人妻狠狠干| 欧美日韩性感| 大香蕉丝袜一级片| 国产精品无码av在线| 日本一区二区亚洲综合| 蜜臀久久久99久久久久| 99精品无码| 嗯嗯啊啊好疼| 成 人 影视 一区 二区 三区 四区| 激情久久av一区av二区av| 中文字幕人成乱码熟女香港| 97视频在线播放| 欧美肥臀在线| 在线观看 99热| 精品人妻一区二区三区-国产精品| 亚洲性爱无码乱伦av| 国产女人和拘做爰视频 | 中国zzijzzijzzwww精品| 精品久久久久久中文字幕视频免费| 曰本特级特黄特色黄色A级网站高清在线免费看| 少妇毛片久久| 97精彩视频网站| 色婷婷综合网站| 欧美系列在线一区二区| 3p国产色噜噜一区| 家庭乱伦网站国产| 91爆操视频| 欧亚乱色熟女一区二区| 亚洲九月丁香| 在免费jIzzjIzz在线视频| 五十路六十路七十路熟婆| 欧美一级在线观看成人| 精品久久久久久中文字幕视频免费| 亚洲精品电影| 欧美高清色| 国产日韩久久| 91操熟女| 亚洲春色欧美激情自拍| 不卡中文字幕aⅴ在线| 26uuu久久| 日本欧美一区二区三区视频麻豆| 国产探花日韩援交| 岛国视频免费在线观看| 最新啪啪视频| 亚洲五月丁香花狠狠干一区二区三区 | 麻豆久久久久久久久丝袜| 精品大久久| 亚洲色图a| 绑缚麻绳人妻寝取完整版| 一级黄碟在线观看| 另类成人首页一区| 又黄又硬又粗又长国产视频| 花花AV导航| 一区二区乱码福利| 精品国产一区二区三区四区在线看| 免费日韩黄片| 日本色色色视频| 一块操欧美| 人人爽天天爽| 亚洲素人网| 中韩中文字幕在线观看| 日韩欧美加勒比| 黄色人人| 天天舔天天| 国产精品91ai| 蜜臀99久久国产| 爱妃国产亚洲视频中文字幕| 国产一区二区欧美日本| 天天干一区二区| 六月婷婷一区二区三区| 日韩猛交| japan日本高清乱xxxx| 99免费在线视频| 97这里都是精品| 九九人妻| 午夜.DJ高清在线观看免费7| 日韩人妻资源在线看| 黑丝日韩av丝袜av| 国产一区在线看| 久久成人午夜精品影院 | 色欲久久99精品久久| 久久久精品网站| 国产精品久久久久中文字幕| 日本一区三级韩国| 亚洲做性| 九九久久一区二区伦理| 久久9 9 9精品| 国产精品对白自产拍| 欧美日韩国产一区二区小黄片大全| 日韩午夜精品一区二区三区电影| 国产精品亚洲四五区在线观看| 久久9免费视频| 人人操人人插 - 百度 - 百度| 91人妻Pr| 欧美日日人人天天| 可以免费观看的日韩av毛片| 国产乱弄免费在线视频。| 国产农村妇女毛片精品久久| 加勒比久久综合网高清| 超碰 av 女人天堂| 亚洲天堂久久久久久粉红视频| 风流老熟女一区二区三区l| 夜夜操天天肏| 女性91网站| 五月激情综合网| 一区二区播放| 99热只有这里有精品| 欧美夜色| 黄色片,com| 五月天伊人| 欧美精品97| 五月丁香色综合| 超碰 欧美| 偷窥自拍A片| 伦理日韩国产久久| 国产人妻天天干精品| 极品AV网站在线观看| 天天狠操| 九九九九九九九九九九精品视频| 一类av片在线看| 欧美后入视频| 伊人激情五月天一区二区| 国产美女口爆吞精| 岛国视频免费在线观看| 久久久久久久久国产| 一区二区三区视频国产免费| 亚洲色图国产另类| 色成人Www精品永久观看| 欧美激色| 激情综合五| 粉嫩av一区二区三区天美传媒| 91九色网| 99色网| 99999精品成人| 日韩精品一区二区高清| 色色综合97| 无码精品蜜桃一区二区三区ww| 日本黄页视频在线观看| 久久五月婷| 啊啊啊啊啊啊好多水| 暖暖精品二区三区观看| 精品高清一区二区三区三州| 日韩av情韩国爱禁区av一区二区| 天天躁日日躁AAAXX| 天天干电影| 欧美狠狠操| 国产亚洲美日韩Aⅴ中文字幕无码成人| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 全免费a敌肛交毛片免费| 蜜臀在线看片| 人妻碰碰碰碰碰碰| A 在线网址| 日韩本不卡视频在线观看| 麻豆 欧美 日韩| 国产一级137片内射麻豆| 黄色一区三区| 久九干| 国产精品香蕉热久久新品| 天天干电影| 91激情综合| 九九毛片这里只有精品| 久久精品中文字幕无码l| 久久久久女教师免费一区 | 国产精品福利资源在线尤物| 蜜乳av一区二区三区四区不卡| 超碰在线人妻| 亚洲伊人a线观看视频| 欧美色91| 亚洲青青草| 青青草在线成人视频| 99久久精品无码一区二区| 欧美超碰97| 十八禁电影伊人网| 久久蜜色情在线视频xxx免费观看| 蜜乳AV色欲AVAV无码| AV乱伦专区| 国产熟女无套内射| 午夜AV污污污| 国产地址二三| 欧美少妇第一页| 丁香五月激情五月| 亚洲黄色网址视频| 精品人妻中文字幕4399| 婷婷丁香激情| 国产剧情在线| 欧美人妻制服| 日本不卡免费二区| 九九九九97| 亚洲限制级| 综合激情97| 国产av白丝| 欧洲色| 欧美色五月| 国产精品岛国片在线观看| 欧美黄色片在线播放| 人人摸人人入| 天天综合网91| 天久久久噜噜噜久久国产精品爽爽 | 欧美激情精品| 果冻传媒A片麻豆熟妇人妻| 一区二区三区色综合| 亚洲AO在线| 99国产精品在线观看| 天天狠| 婷婷综合视频| 男人亚洲91首页在线| 日韩精品一区的| 毛片电影一区二区三区| 最新国产亚洲精品精品国产亚洲综合| 国产专区第一页| 中国一级操逼视频| 2019天天干天天操| A片 AV一级在线播放观看免费| 最新中文字幕在线亚洲| 亚洲最大无码中文字幕网站 | 欧美少妇高潮视频| 91爱剪切久久| 91春色| www.亚洲黄色| 啊啊啊用力在线观看| 五月天激情网站| 国内91熟女人妻丝袜天天精品视频在线| 亚洲午夜AV| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 神马久久久久久| 日本熟女不卡视频| 淫荡少妇免费| 丁香五月激情综合国产| 大香交伊人网| 在线视频五十市| 亚洲色图欧美色图制服诱惑| 久久久精选| 日本操逼视频免费| 国产女人与拘做受视频免费| 久久AV无码网址| 91一区二区| 久久精品国产99国产精品亚洲| 天天激色| 女生久久网| 日韩黄片视频试看| 色五月首页| 欧美最婬乱婬爆婬性视频| 伊人 俄罗斯 a v| 欧美视频一区二区三区| 狠狠久久手机视频精品| 在线观看综合精品亚洲| 国产精品女同| 91亚洲欧美综合高清在线| 国产999精品久久久| 四虎午夜影院| 丁香五月天激情综合| 亚洲欧美另类少妇精品| 婷婷人妻激情| 天天操夜夜嗨| 九九久久久久久爱| 亚洲丝袜二区在线| 亚洲无码成人精品| 97资源制服丝袜| 精国久久一区二区三区98| 91精品网站| 日本性爱少妇| 大香网伊人久久综合网eew| 精品一级| 色噜噜人妻丝袜a∨先锋影| 亚洲熟妇图片| 大香蕉伊人75| 在线看免费无码AV天堂的| 亚洲综合113页| 性色综合网| 免费强奸av| 色综和网| 亚洲欧美国产中文视频| 大香樵伊人网| 成人情色综合网| 日韩中文字幕人妻视频| 久久综合久久综合人久久夜精品| 欧美亚洲手机在线| 色综合尤物| 蜜臀无码一区二区| 亚洲欧洲精品视频发布| 神马久久久久久久久久久久| 91内射| 男人天堂2019亚洲| 操久久久久| 日韩999| 亚洲在线观看| 免费黄色A片| 9999久久久久| 国产强奸超碰AV| 精品中文一区二区| 人人操,操人人| 强奸熟女一区二区三区| 草草影院最新网址| 欧美一区二区成人一卡| 欧美日日操| 日日黄色三级网站| 国产91乱伦| 亚欧美综合网。| 干干干天天| 欧美在线综合| 午夜天堂网| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 91色艳| 欧美日韩中文字幕人妻| 亚洲夜夜欢无码一区二区 | 丁香五月自拍| 欧美精品庄| 青青草操逼逼视频| 亚洲爽图| 久久天天躁日日躁狠狠躁| 日韩福利综合一区| 97免费免费视频网| 午夜福利免费福利视频| 欧美手机在线综合| 综合色久| 人妻9117c| 传媒免费一区二区三区| 久久一级无码精品毛片6| 久久天堂网| 少妇一线天久久久久久| 88xx成人精品视频| 蜜臀久久久国产| 多乙久久久久久| 欧美情色亚洲| 成人AV素股で擦久久| 国产精品麻豆免费视频| 色偷偷男人的天堂麻豆| 99热色精品| 立川理惠被中出无码| 色天堂综合| 午夜福利成人免费视频| 九九九热| 另类专区加勒比| 天天影视色香色欲| 久久久久久一日韩字幕无码| 疯操AV| 国产久久视频| 日韩av在线播放不卡| 欧美日韩1234| 午夜AV污污污| 久久久久9久久久久| 五月婷网站| 中文字幕一二三| 狠狠做深爱婷婷久久二区| 丁香五月激情五月| av强奸乱轮| 午夜超碰| 国产精品国产| 91欧美偷拍| 91站街按摩店老熟女熟女| 亚洲国产一级黄色视频| 亚洲色图8| 日韩超碰精品综合| 久久五月份| 日本人人操人人操| 白丝被操91| 97超碰美女| 欧美在线干| 亚洲淫乱骚妇AV| 热久久这里只有精品| 青青久久手机线视频| 99热| 天啪| 中文字幕一区二区三区四五区| 高跟伊人julia ann| 中文字暮97| 五月丁香激情综合网| AV网站高清无码在线观看| 麻豆天美传媒毛片| 女生久久网| 加勒比无码毛片| 麻豆天美在线喷水AV| 久久久不能久久久久| 在线 制服丝袜中出 人妻| 男人高清无码一区二区| 在线无码视频| 操婢日韩| 国产精品白丝在线播放| 久久久亚洲熟妇熟女| 精品人妻一区二区三区视频在线| 99热国产| 9ⅰ久久久天天| 午夜无码熟妇丰满人妻| 综合av影片| 久久精品夜色国产亚洲AV| 91殴美大片| 99精品热| 天天插夜夜爽| 日韩欧美偷拍美女视频| 天天影视射综合网| 久久久久久久久久久久久久久久9| 狠插 制服 自拍| 台湾佬中文娱乐自偷自拍| 97精品国产97久久久久久户外免费| 又黄又爽在线观看视频| 女人爽到高潮久久久| 婷婷日韩一区二区三区中文字幕在线| 开心激情站| 亚 欧 美 综合| 又大又长又爽| 欧美精品第四五页中文字幕在线观看| 久久九七| 99国内熟女露脸视频| 成人精品水蜜桃久久久久久久| 肉丝无码中文高清| 亚洲色图8| 中文乱码字幕观看视频| 国产精品免费久久久久久久久久| 污色区网站| 亚洲综合另类小说色区亚洲成av人片在www| 大屁股人妻女教师撅着屁股| 无码精品久久久天天影视| aaaa少妇高潮大片| 九九精品热| 操我啊啊啊啊啊| 91丝袜熟女| 亚洲天堂电影网99999| 97爱亚洲| 日本免费一级AAA大片器| 日韩乱插| 男人下部插入女人下部| 国产精品久久久999| av橘色网站| 亚洲97| 日韩无码黄色片| 99综合网| 夜夜嗨绯色| 97人人爱人人乐| 日韩免费一级性爱视频| 蜜乳AV一区二区三区四| 色噜噜综合在线| 60秒免费小视频| 96超碰网| 超碰国产精品久| 热久久这里只有精品| 亚洲中文电影| 国产精品日日摸天天碰| 伊人五月天婷婷| 国产一级片| 使劲用力艹少妇视频一区二区| 亚洲中文丝袜美腿诱惑字幕| 久久国产在线一区二区| JULIA一区二区三区在线播放| 九九久久一区二区三区| 精品国产乱码久久久影院| 少妇熟女1区2区3区| 日本在线激情一区二区三区| 久草资源在线视频官方总站日韩丝袜美腿| 精品白丝一区| 亚洲国产精品9999在线观看| 吻戏激情性巴克| 伦理日韩国产久久| 人人操人人色人人摸| 97色碰| 人妻少妇久久中文| 国产无马在线| 97日本超碰综合| 久久久久久久久女黄| 成人精品久久久午夜福利| 99色在线视频| 97jingpin| 一级片在线观看高清无码| 亚洲欧洲小说图片视频| 亚洲自拍小说| 殴美大黄片| 日本新免费二区三区| 免费AV中文网在线观看| 五月婷婷六月丁香| 亚洲欧美综合图片| 乱伦系列一区二区| 97欧美色综合| 欧美日本中字另类在线| 国产丰满少妇久久久精品影院| 亚州91| 欧洲天天在线| 亚州男人天堂| 少妇一线天久久久久久| 噜噜噜噜久久久精品免费| 欧美 亚洲 偷拍自拍| 东北操逼| 蜜乳性色无码专日粉嫩骚逼AV| 99国产精品久久久久久久成人热| 乱伦熟妇一区二区| 久久av网| 一级性爱啪啪视频| 亚洲在高跟鞋自慰久久在色线| 国产午夜福利专区综合| 青青草视频在线观看一区二区| 2024年最新色情网站在线观看 | 精品传媒在线一区| 九九综合| 99热在线播放| 亚洲精品一区二区三区新线路| 亚洲熟女综合网| 熟女丰满人妻一区| 欧州一区二区三区四区| 天天影视激情欧美| 无码人妻精品一区二区中文| 大香蕉综合在线| 欧美日韩性爱操大逼| 男人的天堂三级| www.色婷婷| 乱欲视频| 97超级欧美| 久操视频资源站公开| 大香蕉99re| 亚州情色j区| 亚洲高清无毛一区二区| 欧亚成人在线视频| 2024人人操人人摸| 亚洲有码视频二区| 久操操| 激情干在线| 啊v在线观看视频| 玖玖爱综合| 国产色精品午夜大片| 99少妇| 欧美内射少妇| 在线观看综合精品亚洲| 91精品91久久久中77777| 亭亭丁香激情| 97国产高清视频在线观看| 国产suv一区二区三区6| 麻豆av一区二区三区| 免费簧片在线观看| 中文字幕制服诱惑| 国产小炒后入式| 五月天伊人| 日本精品网站在线中文| 综合熟妇一区二区三区| 久久精品免费| 欧美成人一区二区三区在线播放| 2019天天干| 日本最新1区2区3区| 无码9区| 国产专区第一页| 欧美极品| 黄久久| 青青草视频在线观看一区二区| 亚洲最大网站av| 国产成久久综合片| AV女资源| 天天综合网~91入口| 殴美牲| 欧美极度丰满熟妇hd| 乱伦一二三| 91欧| 精吧天堂| 日本加靬比网站发布页| 久久久婷婷| 亚洲成人久久一区二区| 日韩综合无码一区久久92| 亚洲性刺激| jiujiujiujingpin| 亚洲aw毛茸茸在线| 丁香五月婷婷基地| 综合久久欧美| 亚洲免费在线探花| 国产中出内射一区二区| 97操B| 亚洲AV不卡在线观看| 亚洲 欧美 小说| 久久免费老司机精品| 久久HD| 日韩少妇一区二区三区| 国产精品免费日韩| 91性高朝久久久久久久久| 嗯嗯不要视频| 欧美激情内射| 青青草原香蕉日本Ap| 91强在线播放| 老女人碰碰在线碰碰视频| 大香蕉免| 看黑人AV不卡| 爆乳免费黄网站| 欧美色偷拍| 天综合网| 久久久影院| 久久久蜜桃一区二区三区| 97色色色| 天天干,天天日| 99视频只有精品| 91一起操| 色婷婷五月综合| 国产毛片精品一区二区色欲黄A片| 色婷久久| 五月丁香久久| 国内91熟女人妻丝袜天天精品视频在线 | 久久夜黄色无码A级大片| 精品欧美А∨无码黑人大荫蒂| 一区二区乱码福利| 欧美岛国精品在线观看| 国产强奸乱伦欧美| 操逼视频国产无套| AV天堂国产| 无码高清国产AV| 91成人在线免费视频| 熟女字幕| 开心五月婷婷激情| 天天添天天干电影| 97干在线看| 欧美亚洲一区二区久久久婷精品大包诱| 亚洲情色五月天| 精品人妻视频一区二区三区蜜桃视频| 天堂国产AV| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 婷婷天堂站| 嗯啊不要啊在线| AV天堂电影网| 欧美少妇性乱| 熟女熟妇伦久久影院毛片一区二区 | a亚洲欧美色欲| 久久黄色视频一区二区三区| 日本激情免费大片| 精品-91人妻子系列| 伊人久久88国产女| 9超碰免费| 天欧美在线| 老熟女91视频| 国产Av超碰| 亚洲各类熟们中文字幕| 久久久久久国产精品| 天天综合网久久ww| 国产一| 国产精品诱惑| 国产av波波国产精品| 婷婷五月天激情网| 佐山爱中文字幕| 一二三四区操操Av| 超碰97久久| 欧美视频一区二区在线| 色蜜AV| 97bbn| 老熟妇91| 国产91乱伦| 淮穴色AV| 九九av| 午夜性刺激视频免费观看| 亚洲少妇综合在线播放| 精品久久視頻在线| 美女黄码视频午夜| 91老熟妇| 91在线无码精品秘 软件| 久久久久久久久久久人妻| 女上位精品在线| 日韩欧美大片免费高清啪啪| 色官网在线| 91爰爱欧美| 日本道不卡| a级理论午夜日本| 上床不卡网站| 久久午夜色播影院免费高清| 性开放中文AV高清无码免费看| 天天舔天天| 啊啊啊轻点在线观看| 欧美精品二区视频在线| 国产伦精品一区二区三区在线观| 亚洲污一污二| 国产激情视频一区区三区| 亚洲中文一区二区三区视频| 欧美综合在线91| 亚洲日韩国产精品| 亚洲激情网| 死我十八禁| 草草网站影院白丝内射| 综合网~91综合网| 久久精品熟妇丰满人妻99| 91人妻Pr| 精品中文一区二区| 人妻一二三区| 青青操少妇| 新亚洲无码| 天天综合91在线| 99re6在线视频播放免费精品| 国产性爱乱伦AV| 婷婷五月天无码| 超碰97人妻免费在线| 69人妻人人揉人人躁人人精品| 蜜臀久久99精品久久久久电影| 老司机射| 欧美日韩中国x| 国产精品女久久久久av爽| 成人热久久精品| 91精品亚洲内射孕妇| 亚洲日韩青青草色月| 偷拍精品一区二区三区| 久久手机视直播| 国产精品九九九| 91精品电影18| 亚欧色图在线激情| 在线啊啊啊啊| 男女啪啪网站免费视频| 精彩视频日韩| 国产亚洲福利第一页丝袜| 无码人妻一区二区一牛影视| 亚洲精品久久久久久久蜜桃臀| 少妇二级| 人人么人人操| 欧美午夜色妇色鬼| 人妻无一区二区三区| 亚洲视频小说| 性影在线视频| 欲色啪| 欧美 亚洲 偷拍自拍| 99热这里都是精品| 久久久久久亚洲精品不卡人乳 | 久久精品72| 韩日性爱av| 蜜桃臀AV在线| 另类小说五月天| 日韩精品在线视频,日韩精品……| 人妻久热在线| 少妇一级婬片免费放一级a性色.| 情色五月天网| 国产精品亚洲免费| 成人怡红院| 亚洲永久永久永久永久一级一级一级精品 | 亚洲中文字母在线播放| 欧美激情1区| 欧美色图私拍91| 伊人五月天激情| 天堂性色| 亚洲淫乱骚妇AV| 婷婷五月天激情网| 午夜爽爽爽| 欧美 日韩 另类 亚洲| 国产偷拍自拍在线视频| 91色插| 1204av韩国| 久热大香蕉| 夜夜草天天| 超碰9 7女人 | 国产精品久久久久无码A√| 亚洲做性| 麻豆性爱视频在线播放| 91free福利| 操屄日韩| 久久成人东京热人妻| 美日韩一卡二卡三卡免费人妻精品| 亚洲国产成人福利在线观看| 中文有码9| 天堂伊人久久| 天天色粽合合合合合合合| 国产高清精品一区二区三区毛片 | 老熟妇一区二区三区…| 日韩熟女精一区二区三区不卡| 亚洲精品欧洲精品| 色婷婷亚洲婷婷| 综合久久久久久久综合网| 偷拍盗拍亚洲色图图片| 天美传媒av在线| 天天干一区二区| 丰满的三级少妇欧美久久久| 国产日韩手机视频在线| 亚洲高清色综合| 亚洲日本天堂| 一区二区三区四区姦女| 99啪啪| 操屄不卡视频| 91香蕉视频在线观看免费| 久久 精品| 青草伊人网| 4虎在线视频| 中文97国产| 国产少妇与亚洲av| 九九aV| 亚洲九月丁香| 少妇无码av专区线| 999久久久免费精品国产牛牛| 深喉吞精| 精品无码一区二区三区| 少妇500双飞99| 91亚洲青青草原精品1区| 自偷自拍的亚洲视频| 1769一区二区| 91成人久久 | 997色在线| 91日产欧美| 久久久18禁| 国产AV天美| 狼人综合婷婷激情四射 | 校园春色中文字幕AV| 另类av天堂| 欧美一二三区四五区| 高清不卡一二三区视频......| 久久五月婷| 丁香五月性| 九久9精品| 人人色人人操在线| 亚洲熟女中文字幕在线| 国产精品自在自拍视频| 天天躁日日躁xxxxx| 丰满岳乱妇一区二区三区| 国产精品一区av在线| 免费日韩黄片| 国产AV色黄看到爽| 秋霞网—男女啪啪亚洲免费体验区| 日本潮催一卡操| 国产精品一区二区亚洲人成毛片| 青娱乐999| 女同女同恋久久级三级| av强奸乱轮| 国产一级作爱毛片| 黄色一级视| 97色干| 殴美牲| 欧美天天谢综合网| 久久亚洲熟妇在线视频| 亚洲欧美精品久| 久久9999 | 国产特级毛片AAAAAA高潮流水 | 亚洲天天影视综合网| 日韩色女精品| 日本精品加勒比海一区|