免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

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

三態(tài)日歷落庫(kù):Java 批量生成工作日/周末/節(jié)假日與調(diào)休覆蓋的工程實(shí)踐

三態(tài)日歷落庫(kù):Java 批量生成工作日/周末/節(jié)假日與調(diào)休覆蓋的工程實(shí)踐 簡(jiǎn)介一份面向Java開發(fā)者的年度日期詳情入庫(kù)方案解決IT系統(tǒng)中維護(hù)每年工作日、周末與節(jié)假日數(shù)據(jù)的常見(jiàn)需求。資源將核心代碼封裝為單個(gè)Java文件經(jīng)7z壓縮后僅2KB便于快速查看與遷移。實(shí)現(xiàn)基于java.time的LocalDate遍歷全年日期借助DayOfWeek判斷周末并預(yù)留HolidayCalendar等節(jié)假日庫(kù)接口通過(guò)JDBC連接數(shù)據(jù)庫(kù)設(shè)計(jì)日期、工作日標(biāo)識(shí)、周末標(biāo)識(shí)、節(jié)假日標(biāo)識(shí)等字段表結(jié)構(gòu)同時(shí)考慮批量插入與事務(wù)回滾確保大數(shù)據(jù)量下的寫入效率和一致性。代碼層次清晰包含連接初始化、日期列表構(gòu)建、批量持久化及異常回滾等模塊并留有數(shù)據(jù)庫(kù)連接與自定義節(jié)假日規(guī)則的配置擴(kuò)展空間。適合需要構(gòu)建考勤、排班、運(yùn)營(yíng)日歷等模塊的中級(jí)開發(fā)者可借鑒其表設(shè)計(jì)、批量提交和邊界測(cè)試如閏年、補(bǔ)班等思路。已有3738人學(xué)習(xí)下載可直接作為年度工作日歷數(shù)據(jù)初始化的參考腳本。1. 把節(jié)假日、周末、工作日三態(tài)日歷落庫(kù)這個(gè)需求解決的是“每天是不是工作日”做考勤、排班、租金屬性計(jì)費(fèi)或者任務(wù)調(diào)度的后臺(tái)系統(tǒng)時(shí)幾乎每個(gè)業(yè)務(wù)都要回答同一個(gè)問(wèn)題某一天是不是工作日前幾年我維護(hù)過(guò)一個(gè)考勤統(tǒng)計(jì)模塊早期寫法是每次請(qǐng)求都現(xiàn)算——先判斷周幾再去查節(jié)假日表最后還要處理補(bǔ)班結(jié)果同一套規(guī)則散落在三個(gè)服務(wù)里每年年底節(jié)假日安排一公布就要熬夜改代碼。后來(lái)?yè)Q成了標(biāo)題里這個(gè)思路用 Java 把每年的節(jié)假日、周末、工作日詳情按日期批量生成提前落進(jìn)一張數(shù)據(jù)庫(kù)表業(yè)務(wù)查詢只做一次主鍵點(diǎn)查。這篇筆記就把這套方案從表結(jié)構(gòu)、生成器、調(diào)休覆蓋到運(yùn)維習(xí)慣完整拆開講適合正在做日歷類基礎(chǔ)數(shù)據(jù)維護(hù)、或者想讓考勤邏輯從“算”變成“查”的開發(fā)者。2. 日歷表結(jié)構(gòu)設(shè)計(jì)字段明細(xì)、唯一主鍵、覆蓋規(guī)則表怎么搭配2.1 三態(tài)日歷事實(shí)表為什么主鍵用日期而不是自增ID先看結(jié)果表。這張表要回答的核心問(wèn)題是“某天是三種狀態(tài)中的哪一種”所以它在建模上是一張事實(shí)表每一行代表一個(gè)日期只保留與該日期身份相關(guān)的屬性不摻業(yè)務(wù)狀態(tài)。我常用的建表語(yǔ)句如下CREATE TABLE t_calendar_detail ( calendar_date DATE NOT NULL COMMENT 日期主鍵, year SMALLINT NOT NULL COMMENT 年份, month TINYINT NOT NULL COMMENT 月份, day TINYINT NOT NULL COMMENT 日, weekday TINYINT NOT NULL COMMENT 星期幾1周一7周日, day_type TINYINT NOT NULL COMMENT 1工作日2周末3節(jié)假日, holiday_name VARCHAR(64) DEFAULT NULL COMMENT 節(jié)假日名稱工作日/周末為NULL, remark VARCHAR(128) DEFAULT NULL COMMENT 備注如“調(diào)休補(bǔ)班”, create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (calendar_date), KEY idx_year_month (year, month) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT日歷三態(tài)事實(shí)表;主鍵我沒(méi)有用自增 ID直接拿calendar_date做主鍵。原因是這張表的查詢模式非常固定要么按某個(gè)日期精確查要么按年份/月份范圍掃。日期本身全局唯一用它做物理主鍵還能讓按時(shí)間范圍的掃描走聚簇索引順序讀比自增主鍵再回表快一個(gè)量級(jí)。year/month/day/weekday這些冗余字段看著多余但實(shí)際報(bào)表經(jīng)常按“某年某月的工作日數(shù)”分組統(tǒng)計(jì)直接從行里取比DATE_FORMAT包一層函數(shù)高效得多也避免函數(shù)導(dǎo)致索引失效。2.2 覆蓋規(guī)則表調(diào)休補(bǔ)班只改這張表事實(shí)表只負(fù)責(zé)“最終結(jié)果”它不應(yīng)該是人直接改的地方。真正需要人工維護(hù)的是規(guī)則表也就是每年年底公布的調(diào)休與法定節(jié)假日安排。我一般會(huì)再建一張覆蓋規(guī)則表CREATE TABLE t_rule_override ( target_date DATE NOT NULL COMMENT 被覆蓋的日期, override_type TINYINT NOT NULL COMMENT 1調(diào)休補(bǔ)班周末變工作日3法定節(jié)假日工作日變節(jié)假日, holiday_name VARCHAR(64) DEFAULT NULL COMMENT 節(jié)假日名稱, source_year SMALLINT NOT NULL COMMENT 規(guī)則歸屬年份, effective_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 同一天多條規(guī)則時(shí)取最新, create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (target_date), KEY idx_source_year (source_year) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT節(jié)假日/調(diào)休覆蓋規(guī)則表;這張表只保存“與默認(rèn)規(guī)則不一致”的日子。默認(rèn)規(guī)則在代碼里寫死周一至周五是工作日周六周日是周末。與默認(rèn)規(guī)則一致的日期根本不需要進(jìn)規(guī)則表這樣每年要維護(hù)的記錄通常只有三四十條。target_date做主鍵很關(guān)鍵——同一天的最終狀態(tài)只能有一種這個(gè)約束從表結(jié)構(gòu)上就杜絕了“既放假又補(bǔ)班”的矛盾數(shù)據(jù)。2.3 索引取舍按日期范圍查詢?yōu)橹鱠ay_type 不要單獨(dú)建索引索引設(shè)計(jì)上主鍵索引已經(jīng)覆蓋了精確日期查詢。idx_year_month是為了“某年某月”的分組統(tǒng)計(jì)比如查 6 月的應(yīng)出勤天數(shù)。踩過(guò)的坑是最開始我給day_type單獨(dú)建了索引想著按狀態(tài)過(guò)濾會(huì)快實(shí)際完全沒(méi)用。day_type只有三四個(gè)取值區(qū)分度極低優(yōu)化器全表掃比走索引回表更快這個(gè)索引純屬浪費(fèi)寫放大。如果非要做“按工作日查”的統(tǒng)計(jì)正確做法是利用year month組合索引把日期范圍先縮小到一個(gè)月再過(guò)濾狀態(tài)。還有個(gè)細(xì)節(jié)日期務(wù)必用DATE類型不要圖導(dǎo)入方便用VARCHAR。用字符串存日期等值查詢還能靠主鍵索引碰巧命中一旦做BETWEEN或者DATE_SUB運(yùn)算排序規(guī)則和隱式轉(zhuǎn)換會(huì)讓索引徹底失效后面第 5 章會(huì)把這個(gè)坑單獨(dú)展開。3. 用 Java 批量生成全年日歷并寫庫(kù)生成器核心代碼與 JDBC 批量參數(shù)3.1 生成器核心流程LocalDate 遍歷 規(guī)則覆蓋生成全年的邏輯并不復(fù)雜第一步從t_rule_override讀出所有覆蓋規(guī)則第二步從 1 月 1 日遍歷到 12 月 31 日第三步對(duì)每個(gè)日期先按“工作日/周末”默認(rèn)規(guī)則打分再看有沒(méi)有覆蓋規(guī)則有就按覆蓋結(jié)果重寫。這里我直接用 JDBC 做示例換成MyBatis或Spring Data思路完全一致public void generateYear(Connection conn, int year) throws SQLException { MapLocalDate, Integer overrideMap loadOverrideMap(conn, year); LocalDate start LocalDate.of(year, 1, 1); LocalDate end LocalDate.of(year, 12, 31); ListCalendarDetail rows new ArrayList(); for (LocalDate date start; !date.isAfter(end); date date.plusDays(1)) { DayOfWeek dow date.getDayOfWeek(); // 1. 默認(rèn)規(guī)則周一至周五為工作日周六周日為周末 int dayType (dow DayOfWeek.SATURDAY || dow DayOfWeek.SUNDAY) ? 2 : 1; String holidayName null; String remark null; // 2. 覆蓋規(guī)則優(yōu)先調(diào)休補(bǔ)班或法定節(jié)假日以規(guī)則表為準(zhǔn) if (overrideMap.containsKey(date)) { Integer override overrideMap.get(date); dayType override; remark 規(guī)則覆蓋; } // 3. 拼裝實(shí)體year/month/day 直接從 LocalDate 取不用字符串格式化 CalendarDetail detail new CalendarDetail(); detail.setCalendarDate(date); detail.setYear(date.getYear()); detail.setMonth(date.getMonthValue()); detail.setDay(date.getDayOfMonth()); detail.setWeekday(dow.getValue()); detail.setDayType(dayType); detail.setHolidayName(holidayName); detail.setRemark(remark); rows.add(detail); } writeBatch(conn, year, rows); }這段代碼有幾個(gè)值得注意的參數(shù)與選型點(diǎn)。LocalDate遍歷完全沒(méi)有SimpleDateFormat的線程安全問(wèn)題生成 365 個(gè)日期對(duì)象對(duì) JVM 來(lái)說(shuō)開銷可以忽略。getMonthValue()返回 1-12 的int與表結(jié)構(gòu)里TINYINT對(duì)應(yīng)不要用Month枚舉直接存否則下一步寫庫(kù)還要做一次轉(zhuǎn)換。overDayType存的是最終類型所以規(guī)則覆蓋時(shí)直接賦值即可。3.2 JDBC 批量寫入關(guān)閉自動(dòng)提交與 rewriteBatchedStatementsgenerateYear里只組裝數(shù)據(jù)真正的性能差異在寫庫(kù)這一段。批量插入全年 365/366 條數(shù)據(jù)逐條INSERT和批量addBatch在數(shù)據(jù)量小時(shí)看不出差別但如果你要一次性生成未來(lái)五年甚至十年差距就是秒級(jí)和分鐘級(jí)的區(qū)別。我在接入層一般這樣寫private void writeBatch(Connection conn, int year, ListCalendarDetail rows) throws SQLException { // 先清理舊數(shù)據(jù)保證任務(wù)可重復(fù)執(zhí)行不會(huì)主鍵沖突 try (PreparedStatement ps conn.prepareStatement(DELETE FROM t_calendar_detail WHERE year ?)) { ps.setInt(1, year); ps.executeUpdate(); } String sql INSERT INTO t_calendar_detail (calendar_date, year, month, day, weekday, day_type, holiday_name, remark) VALUES (?, ?, ?, ?, ?, ?, ?, ?); conn.setAutoCommit(false); // 關(guān)閉自動(dòng)提交攢一批再提交 try (PreparedStatement ps conn.prepareStatement(sql)) { int batchSize 2000; int count 0; for (CalendarDetail d : rows) { ps.setObject(1, d.getCalendarDate()); ps.setInt(2, d.getYear()); ps.setInt(3, d.getMonth()); ps.setInt(4, d.getDay()); ps.setInt(5, d.getWeekday()); ps.setInt(6, d.getDayType()); ps.setString(7, d.getHolidayName()); ps.setString(8, d.getRemark()); ps.addBatch(); count; // 每 2000 條執(zhí)行一次避免 single batch 過(guò)大 if (count % batchSize 0) { ps.executeBatch(); } } ps.executeBatch(); // 收尾再刷一次 conn.commit(); } catch (SQLException e) { conn.rollback(); throw e; } finally { conn.setAutoCommit(true); } }這里有一個(gè)隱藏很深的性能參數(shù)如果你連的是 MySQL 5.1 以上的版本JDBC 連接串一定要加上rewriteBatchedStatementstrue。不加這個(gè)參數(shù)驅(qū)動(dòng)拿到addBatch后依然是一條一條發(fā)給服務(wù)端批處理名存實(shí)亡加上之后驅(qū)動(dòng)才會(huì)把多條INSERT重寫為一條多值的INSERT語(yǔ)句。jdbc:mysql://127.0.0.1:3306/yourdb?useUnicodetruecharacterEncodingutf8rewriteBatchedStatementstruesetObject傳LocalDate給DATE列在 JDBC 4.2 之后有標(biāo)準(zhǔn)映射比java.sql.Date.valueOf(date)少一層轉(zhuǎn)換包裝代碼也更干凈。batchSize不建議一次頂滿全年數(shù)據(jù)MySQL 的max_allowed_packet會(huì)限制單次包大小2000 一批在絕大多數(shù)默認(rèn)配置下都能安全通過(guò)。3.3 全量重建與增量補(bǔ)刷兩種調(diào)用方式怎么選生成器寫好后調(diào)用策略有兩種常見(jiàn)方式。全量重建適合每年年初一次性執(zhí)行先刪掉整年數(shù)據(jù)再插入整年數(shù)據(jù)邏輯干凈表里永遠(yuǎn)只有一份完整結(jié)果。代價(jià)是執(zhí)行期間該年份數(shù)據(jù)不可用對(duì)排班系統(tǒng)來(lái)說(shuō)凌晨執(zhí)行完全沒(méi)問(wèn)題。增量補(bǔ)刷適合“節(jié)假日安排出了補(bǔ)充通知只改后面三個(gè)月”的場(chǎng)景。比如年中突然宣布某一天放假這時(shí)全量刪掉整年再重建明顯浪費(fèi)只刷受影響區(qū)間更合理。我的做法是給生成器加一個(gè)窗口參數(shù)public void rebuildWindow(Connection conn, LocalDate start, LocalDate end) throws SQLException { // 刪除窗口內(nèi)數(shù)據(jù)重新生成該區(qū)間規(guī)則表全量參與覆蓋判斷 generateRange(conn, start, end); }兩種方式的取舍用一個(gè)簡(jiǎn)單標(biāo)準(zhǔn)判斷數(shù)據(jù)量不到 5 萬(wàn)行無(wú)腦全量重建超過(guò) 5 萬(wàn)行或業(yè)務(wù)要求“生成期間仍可讀”走增量窗口。實(shí)際項(xiàng)目里一般用不到這個(gè)閾值全量重建足夠。4. 調(diào)休與補(bǔ)班把節(jié)假日“覆蓋”邏輯做成可回滾的規(guī)則映射4.1 為什么單純“周末等于休息日”會(huì)翻車默認(rèn)規(guī)則“周六周日為周末休息”在絕大多數(shù)日子里是成立的但每年總有那么十幾天被官方公布的放假安排打破。最典型的例子五一、國(guó)慶前后往往會(huì)有“前一個(gè)周日補(bǔ)班”或“周六調(diào)休放假”就是說(shuō)默認(rèn)規(guī)則里的周六周日可能被改成工作日默認(rèn)規(guī)則里周一到周五也可能被改成節(jié)假日。如果不做覆蓋機(jī)制只靠“周末自動(dòng)休息”的代碼考勤系統(tǒng)在補(bǔ)班那天會(huì)漏判大量缺勤。所以生成環(huán)節(jié)里我把覆蓋邏輯設(shè)計(jì)成“先按默認(rèn)規(guī)則定基調(diào)再用規(guī)則表整體覆蓋”而不是寫一堆if (date.equals(某節(jié)日))。因?yàn)楣?jié)日日期每年都變硬編碼經(jīng)不起時(shí)間推敲。4.2 規(guī)則合并與去重同一天多條規(guī)則取最新一條覆蓋規(guī)則表維護(hù)的人可能不止一個(gè)每年元旦前 A 同學(xué)錄入一批元旦后 B 同學(xué)又改了幾個(gè)日期。如果規(guī)則表出現(xiàn)target_date重復(fù)主鍵約束會(huì)直接阻止但歷史數(shù)據(jù)替換時(shí)可能出現(xiàn)“同一日期先被標(biāo)記調(diào)休補(bǔ)班又被標(biāo)記節(jié)假日”的修改。這種場(chǎng)景我用一句話處理target_date上的記錄永遠(yuǎn)只有最新一條INSERT ... ON DUPLICATE KEY UPDATE保證冪等。INSERT INTO t_rule_override (target_date, override_type, holiday_name, source_year, effective_time) VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP) ON DUPLICATE KEY UPDATE override_type VALUES(override_type), holiday_name VALUES(holiday_name), source_year VALUES(source_year), effective_time CURRENT_TIMESTAMP;加載規(guī)則映射時(shí)也要注意邏輯方向默認(rèn)工作日被覆蓋成節(jié)假日默認(rèn)周末被覆蓋成補(bǔ)班工作日這兩類都從t_rule_override讀統(tǒng)一按target_date做MapLocalDate, Integer生成器只認(rèn)“日期最終的 day_type 值”不再關(guān)心中間發(fā)生了什么。這樣規(guī)則表與事實(shí)表徹底解耦將來(lái)想回滾某條規(guī)則直接刪規(guī)則表里的記錄再重新觸發(fā)重建即可。4.3 跨月邊界與節(jié)假日名稱歸檔前后 15 天一起解析每年公布的年放假安排會(huì)指定“春節(jié)前一周的周日補(bǔ)班”而這個(gè)補(bǔ)班日期很可能落在上一年的 12 月或者下一年的 1 月。所以加載規(guī)則時(shí)的查詢條件不能只鎖死當(dāng)前年份而要前后各留出緩沖我把這個(gè)窗口叫做“年邊界緩沖”。SELECT target_date, override_type, holiday_name FROM t_rule_override WHERE target_date BETWEEN ? AND ?這里的兩個(gè)問(wèn)號(hào)分別是給定年份的1月1日減去15天和12月31日加上15天。生成時(shí)日期落入緩沖區(qū)內(nèi)但年份不是目標(biāo)年份的行會(huì)直接忽略只有落在目標(biāo)年份內(nèi)的日期才寫入事實(shí)表。這個(gè)設(shè)計(jì)解決了很多團(tuán)隊(duì)“春節(jié)補(bǔ)班總漏一天”的毛病。節(jié)假日名稱歸檔也有講究。規(guī)則表里的holiday_name要按真實(shí)節(jié)日寫全比如“國(guó)慶節(jié)”“中秋節(jié)”不要寫“10月1日放假”這種日期化命名。因?yàn)楹罄m(xù)判斷“某節(jié)假日是否調(diào)休”“今年中秋國(guó)慶是否重疊”都要靠這個(gè)名稱做統(tǒng)計(jì)分析命名規(guī)范了報(bào)表層就不用再清洗。5. 日歷落庫(kù)避坑寫日期字段最容易翻車的 5 個(gè)問(wèn)題5.1 YYYY 與 yyyy 混用年尾日期被排到錯(cuò)誤年份現(xiàn)象生成 12 月 31 日的數(shù)據(jù)時(shí)控制臺(tái)打印出來(lái)的年份是下一年。查數(shù)據(jù)庫(kù)發(fā)現(xiàn)這一行的year字段被寫成了下一年的值。原因SimpleDateFormat或DateTimeFormatter里用了YYYY。這個(gè)模式代表“周周年份”不是日歷年。當(dāng)某年的 12 月 31 日恰好屬于下一周的 ISO 周期時(shí)YYYY會(huì)輸出下周所在的年份。解決生成器里完全不要依賴格式化字符串推導(dǎo)年份直接用LocalDate.getYear()。如果歷史代碼用了DateTimeFormatter.ofPattern(yyyy-MM-dd)一定要明確yyyy才是日歷年。這個(gè)坑在年初或者年末跑批時(shí)特別容易觸發(fā)因?yàn)橹苤苣攴菖c日歷年只在跨年那一兩天不同。5.2 主鍵沖突與重復(fù)生成任務(wù)重跑直接拋異?,F(xiàn)象同樣的生成任務(wù)跑第二遍插入第 366 行時(shí)報(bào)Duplicate entry 2025-12-31 for key PRIMARY。原因生成器第一次執(zhí)行成功后事實(shí)表已經(jīng)存在全年數(shù)據(jù)第二次執(zhí)行沒(méi)有做清理直接INSERT主鍵約束攔截。解決writeBatch開頭一定要按年份先DELETE再插入也就是前面代碼里的DELETE FROM t_calendar_detail WHERE year ?。這個(gè)操作把重跑任務(wù)從“不可重復(fù)執(zhí)行”變成“冪等”任何時(shí)間重放都不會(huì)產(chǎn)生臟數(shù)據(jù)。要注意如果刪除之后、插入之前有其他進(jìn)程在查詢這張表會(huì)短暫查不到數(shù)據(jù)。低峰期運(yùn)維或者用臨時(shí)表替換寫入二選一。5.3 時(shí)區(qū)問(wèn)題日期整體偏移一天現(xiàn)象數(shù)據(jù)庫(kù)里存好的日期和本地代碼里L(fēng)ocalDate對(duì)象完全對(duì)不上總是差一天。比如代碼里是 2025-01-01庫(kù)里變成 2024-12-31。原因生成時(shí)用了LocalDateTime或者Date在寫入DATE列時(shí)經(jīng)過(guò) JDBC 驅(qū)動(dòng)做了時(shí)區(qū)換算。應(yīng)用服務(wù)器時(shí)區(qū)與數(shù)據(jù)庫(kù)會(huì)話時(shí)區(qū)不一致時(shí)邊界時(shí)間會(huì)漂移。解決全部改用LocalDate數(shù)據(jù)庫(kù)連接串顯式指定時(shí)區(qū)參數(shù)useJDBCCompliantTimezoneShifttrueserverTimezoneAsia/Shanghai代碼里ps.setObject(1, localDate)直接傳純?nèi)掌趯?duì)象不要Date.valueOf(localDate)之后再轉(zhuǎn)一次。時(shí)區(qū)問(wèn)題屬于典型的“本地沒(méi)事、上線翻車”因?yàn)楸镜財(cái)?shù)據(jù)庫(kù)和線上數(shù)據(jù)庫(kù)時(shí)區(qū)配置往往不同。5.4 只維護(hù)放假?zèng)]維護(hù)補(bǔ)班考勤異常集中在節(jié)前現(xiàn)象某月底考勤報(bào)表突然冒出一批缺勤正好都是之前調(diào)休補(bǔ)班的那幾天。系統(tǒng)后臺(tái)查“節(jié)假日配置”明明有記錄。原因規(guī)則表只錄入了“法定節(jié)假日”這一類覆蓋也就是只把工作日改成了節(jié)假日卻漏掉了“周末補(bǔ)班”這類逆向覆蓋。默認(rèn)規(guī)則認(rèn)為那天是休息日事實(shí)表也就按休息日記錄導(dǎo)致應(yīng)出勤日被算成了休息。解決覆蓋規(guī)則的設(shè)計(jì)必須同時(shí)支持兩個(gè)方向override_type1表示周末改成工作日override_type3表示工作日改成節(jié)假日。生成邏輯不要只處理“放假”那一側(cè)。另外補(bǔ)班日期在規(guī)則表里也要保留holiday_name的原始信息比如備注“國(guó)慶前補(bǔ)班”方便報(bào)表側(cè)解釋異常出勤記錄。5.5 日期列隱式轉(zhuǎn)換VARCHAR 與 DATE 的混用導(dǎo)致索引失效現(xiàn)象表里calendar_date定義為VARCHAR查詢WHERE calendar_date BETWEEN 2025-01-01 AND 2025-01-31慢到全表掃。原因字符串比較按字典序2025-1-1和2025-01-01排序結(jié)果完全不同邏輯上像一個(gè)日期物理上排成兩條序列。一旦數(shù)據(jù)量上來(lái)所謂“日期范圍查詢”根本沒(méi)有范圍可言。解決表結(jié)構(gòu)里列類型必須是DATE參數(shù)傳LocalDate查詢條件不要用DATE_FORMAT(calendar_date) ...這種寫法因?yàn)閷?duì)列做函數(shù)處理會(huì)讓索引失效。正確姿勢(shì)是calendar_date BETWEEN ? AND ?讓日期列裸著參與比較。6. 進(jìn)階增量窗口更新、結(jié)果校驗(yàn)與“只改規(guī)則表”的運(yùn)維習(xí)慣6.1 按未來(lái) 90 天窗口增量重建全量重建適合年初但年中若突發(fā)“某天臨時(shí)放假”的通知重跑整年代價(jià)不大卻也容易把已有人工訂正的數(shù)據(jù)覆蓋掉。我的習(xí)慣是平時(shí)只維護(hù)規(guī)則表發(fā)布新規(guī)則后對(duì)受影響的未來(lái) 90 天窗口做增量重建。窗口選擇 90 天是因?yàn)榻^大多數(shù)臨時(shí)通知都不會(huì)影響超過(guò)一個(gè)季度窗口太大沒(méi)必要太小又可能覆蓋不全連續(xù)調(diào)休。這種運(yùn)維方式要求生成器把“刪除與插入”限定在一個(gè)窗口內(nèi)public void rebuildWindow(Connection conn, LocalDate start, LocalDate end) { deleteRange(conn, start, end); generateRange(conn, start, end); }刪除和生成需要放在同一個(gè)事務(wù)里避免刪除成功、生成失敗造成窗口空窗。6.2 全年結(jié)果校驗(yàn)對(duì)比 SQL 與總數(shù)范圍生成完數(shù)據(jù)別急著上線跑兩組校驗(yàn)。第一組是總量校驗(yàn)按day_type分組統(tǒng)計(jì)全年三種類型加起來(lái)必須等于 366閏年或 365SELECT day_type, COUNT(*) FROM t_calendar_detail WHERE year 2025 GROUP BY day_type;正常年份工作日數(shù)量通常在 240 到 260 之間周末在 100 到 120 之間節(jié)假日約 11 到 20 天。如果統(tǒng)計(jì)結(jié)果明顯越界說(shuō)明規(guī)則覆蓋環(huán)節(jié)出了問(wèn)題。第二組是規(guī)則匹配校驗(yàn)把規(guī)則表里所有補(bǔ)班日期與事實(shí)表交叉比對(duì)SELECT r.target_date FROM t_rule_override r LEFT JOIN t_calendar_detail c ON c.calendar_date r.target_date WHERE r.override_type 1 AND c.day_type ! 1;查出來(lái)的每一行都是“規(guī)則表要求這天補(bǔ)班事實(shí)表卻沒(méi)生效”的漏網(wǎng)之魚。這兩組 SQL 丟進(jìn)定時(shí)任務(wù)里每天跑一次能兜住絕大多數(shù)人為配置錯(cuò)誤。6.3 一個(gè)值得養(yǎng)成的習(xí)慣規(guī)則表永遠(yuǎn)比事實(shí)表“高級(jí)”我接手這個(gè)方案半年后最大的體會(huì)是事實(shí)表只允許被生成器寫入永遠(yuǎn)不要改單行數(shù)據(jù)。哪怕手工修一條“某天應(yīng)該是節(jié)假日”的錯(cuò)誤也先去改規(guī)則表再觸發(fā)對(duì)應(yīng)年份/窗口重建。因?yàn)槭聦?shí)表是下游業(yè)務(wù)讀取的唯一來(lái)源手工改一條很可能覆蓋掉生成邏輯期望的最終狀態(tài)之后規(guī)則表再變動(dòng)這一條手工數(shù)據(jù)就被靜默抹掉了。相反“規(guī)則表 → 生成器 → 事實(shí)表”的單向數(shù)據(jù)流任何時(shí)刻都可以從頭重算等于給日歷系統(tǒng)留了一顆后悔藥。后來(lái)遇到“某個(gè)日期狀態(tài)不對(duì)”的反饋我先查規(guī)則表而不是直接改結(jié)果表十次有九次都是規(guī)則漏配補(bǔ)班。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
五月丁香啪啪| 九九久久精品| 国产激情久久| 欧美日韩婷婷五月天| 羞羞嫩草视频| 色五月婷婷久久| 久久性爱视频免费| 成年人丁香五月| 超碰成人在线观看| 怎么样可以看免费的一级av| 大香蕉久久久| 五月婷婷婷婷婷婷艺术| 婷婷五月大香蕉| AV在线大香蕉| 久久综合五月天激情小说网站 | 婷婷五月天成人网| 婷婷综合在线| 超碰在线中文字幕| 久久草婷婷丁香网站| 深爱五月激情五月| 国产精品99久久久久久久女警| 337久久| 日本三级网址| 激情五月成年| 色私五月婷婷| 婷婷射图五月天| 天天爱天天爽| 九九99久久精品| 51XX嘿嘿午夜无码| 日日爽日日操| 大香蕉网站,大香蕉综合| 天天做天天爱天天高潮| 性热视频99精品| 婷婷基地成人五月天| 五月丁香婷婷激激激综合网色播| 99久在线精品99re8热| 伊人婷婷五月天| 婷婷丁香中文字幕| 久久这里只有国产| 九月婷婷激情| 九九婷婷激情综合网| 色v综合网| 99热99精品在线观看| 伊人久久大香蕉网| 99丁香婷婷综合网| 激情综合区| 5月婷婷激情6月| 婷婷六月天| 五月丁香久久| www99热| 99热精地址| 成人AV免费观看| 五月激情综合网婷婷| 9l视频自拍九色9l视频自拍九色9l社区| 思思99re这里只有| 久久久精品色| 久久人人九九| 天天干电影| 中文字幕欧美日韩VA免费视频| 婷婷丁香五月激情密臀av| 国产色色网址网站| 伊人激情影院| 97狠狠色| 九九视频免费| 久久9精品| 狠狠狠狠狠狠草| 人人人操Av| 婷婷五月电影| 国产免费av在线| wwccc久久久| 91精品久久久久久久| 精品操逼一区二区| 丁香五月激情婷婷| 大色鬼综合| 日韩成人综合网| 婷婷丁香18| 久99| 色五月xxx| 丁香五月人妻| WWW免费视频碰碰碰碰| 蜜臀嫩草| 超碰97在线观看免费| 99热视| 婷婷综合网| 日本在线视频看se99| 久久这里只有国产精品视频| 风流少妇A片一区二区蜜桃| 爱操人妻| 成人精品在线观看| 色啪综合| 九月婷婷综合| 亚洲色情久久| 婷香五月激情视频| 人人操AV| 深爱婷婷网| 婷婷欧美综合| 97精品综合久久| 99人人精品| 天天日夜夜帕| 大胆伊人久久| 欧美影院| 蜜桃婷婷狠狠久久| 九九热中文| 九热久| 欧美综合激情丁香五月六月婷| 免费黄网不卡AV| 狠狠色丁婷婷日日,伊人激情综合网| 第2色五月婷| 婷婷月综合| 中文字幕欧美久久| 91色五月| 丁香五月天激情网址| 国产成人综合在线| 日日干五月天婷婷| 五月婷久久| 狠狠五月激情在线| 青草视频在线观看视频| 五月婷六月天| 五月丁香六月婷婷激情四射| www.9797国产| 色色日韩网| 成人永久免费视频在线观看| 亚洲av成人在线| 成人五月天丁香| 激情婷婷在线中文字幕| 日日操天天操| 开心五月色婷| www.爱婷婷.com| 日韩三级高清无码| 色射影院| 国产精品18久久久| 色丁香久久久| 成人网站av免费网站推荐| 66成人网| 五月天久久久| 国产成人精品一区二区三区视频| 婷婷五月天成人网站| 久久久91精品| 国产美女视频久| 91成人看片| 久久综合激情| 五月开心婷婷| 91在线看免费 九九九九| 婷婷久久五月天丁香| 97色碰| 六月婷婷狠狠| 91高潮喷水久久久久久久久 | 婷婷深爱五月丁香网| 日日操夜夜操中国无码| 久久人人九九| caobi四区| av大片在线| 狠狠色噜噜狠狠| 婷婷五月丁香色色| 99熟女视频| 99久久99视频只有精品| 97超级碰| 色婷婷AAA| 色丁香五月婷婷婷| 天天日P天天射P| 新激情五月天天在线网| mmm1717.6dbm人人爱人人操| 婷婷久久天堂网| 天堂久久婷婷| 深爱丁香激情| 五月丁香激情四射| 免费视频WWW在线观看网站| 婷婷丁香人妻久久在线观看| 色九月婷婷丁香| 五月丁香综合啪啪| 一级二级香港秋霞欧美欧美秋霞| 色狠狠色综合久久久绯色AⅤ影视 大香蕉五月天婷婷丁香91 | 99热偷拍| m色激情网| 狠狠综合区| 久久婷婷视频| 丁香六月婷婷色XXXX| 五月婷婷丁香av| 久热99热| Av狠狠色丁香婷| 停婷丁五月在线| 日韩无码专区| 色吊操色妞| 五月婷婷综合激情网| 天天草婷婷五月| 欧美激情 日韩无码 婷婷 五月天| 久久综合首页| 五月停停丁香| 人人色人人摸人人看| 色欲久久99精品久久久久久| 国产在这里只有精品| 六月婷婷网站| 97色啪| 免费视频WWW在线观看网站| 99这里| 99色综合网| av一区二区电影免费在线观看| 色噜噜综合网| 思思热精品在线观看| 99ri国产| 国产44页| 九久久婷婷| 亚洲AV日韩无码| 五月丁香综合伦理片| 非洲一级AV| 爽tv | 婷婷精品免费久久| 婷婷社区五月天| 91艹人| 丁香玖玖| 极品五月天| 91啪啪| 激情视频综合| 五月叮香啪| 天天做天天双| 99色视频| www狠狠| 四色AVwww| 色五月婷婷 成人| 性爱激情小说AV五月丁香花| 五月天操逼激情| 亚洲色网址| 天天狠狠六月婷丁香影院| 六月婷婷狠狠色在线观看| 伊人玖玖精品| 天堂五月婷婷| 五月丁香A片| 久青草影院| 五月婷婷色播| 欧美五月婷婷| 五月 婷婷 成人| 怡红院99| 色五月综合婷婷久久综合婷婷久久综合婷婷久久综合婷婷久久 | 99re这里只有精品免费| 9人人操人人看| 4438全国最大视频成人网站在线观看| 97caop| www.婷婷五月| 人妻熟妇国产精品| 六月丁香久久| 变态另类9| 五月天国产婷婷精品视频在线| 久久与婷婷| 99热九九这里只有精品| 欧美日韩99| 99精品高潮| 麻豆AV一区二区三区| 狠狠狠狠狠狠狠狠| 婷婷综合激情| 深爱综合网| 丁香五月激情啪啪| 五月丁香免费看| 亚洲第一黄网| 激情五月综合婷婷| 亚洲男女激情| 婷婷激情综合网| 激情综合亚洲| 丁香五月天电影| 97人人看| 亚洲综合在线视频| 久久五月综合| 五月开心播播网| 少妇伦子伦精品无吗| 天天日天天插| 日韩在线看AV| 婷婷五月激情丁香| 狠狠色五月天| 日本美女上人| 99热成人在线| 天天婷婷综合亚洲亚洲| 亚洲va成人va成人va在线观看| 色播五月| 大天天伊人| 色偷偷综合| 色五月 五月婷婷| 婷婷五月天天天| 综合激情视频| 五月婷婷激情网| 天天干天天日天天操| 色婷久久| 色五月婷婷av| 丁香久久| 久久九九热re6这里有精品| 亚洲黄网AV| 久久看九九90| 9久久网| 成人色图情色成人网 www.5b5b5bcom 五月天 | 99视频在线观看网址| 九九热这里只有精品6| 激情五月综合婷婷| 欧美精产国品一二三区| 色色色热热热| 欧类av怡春院| 噜噜五月天综合| 激情视频综合| 亚洲五月丁香综合网| 狠狠色丁香综合| 色天天狠狠干| 性日本精品| 色婷婷久久| 亚洲av综合网| 婷婷性爱影院| 国产乱人偷精品人妻A片| 午夜69成人做爰视频| 国产AV一区二区三区最新精品| 成人网在线观看视频| 操比激情五月| 久久九九爽| 日本的α片xxxwww| 婷婷五月色播放| 99毛片| 人妻无码精品一区| 超碰av在| 天堂久久性| 激情五月天色色网| 亚洲精品色色色| 国产成人99久久亚洲综合精品| 日日夜夜天天| 五月激情在线| 婷婷色六月| 五月婷色| 五月停视频天堂| 热99久| 日本99热| 婷婷六月五月天综合| 激情九色| www.五月天| 综合激情九月婷婷,激情综合婷婷中文字| 欧美日韩国产伦精品日韩人妻一| 日日夜夜青青草| 99热无码首页| 性色五月天| 99干日日干| 超碰99热精品| 夜夜爽日日躁| 超碰色色综合| 亚洲综合色成丁香五月色| 超碰97色| 亚洲综合干| 色五月丁香六月婷婷| 色五月欧美| 国产成人精品亚洲线观看| 日韩成人综合| 婷婷久久视频| 色婷婷六月天| 99色在线观看视频者| 色色五月天网站| 日韩无码人妻一区二区三区综合| 九月激情综合| 激情综合色婷婷啪啪五月天| 91狠狠综合久久| 开心五月色婷婷综合开心网| 天天插天天爽| 久热超碰91| 色婷婷中文字母五月丁香| 亚洲五月天婷婷在线| 99视频内射三四| 丁香亭亭激情四射| 成人精品一区二区三区四区五区 | 97在线视频人妻九色| 香蕉久久国产AV一区二区| 日本在线视频看se99| 梁铮版《蜘蛛女侠》在线 | AV在线免费网站| 我要色综合五月婷婷| 超碰成人av| 激情婷婷狠狠干综合| 91黄址| 久久五月激情| 极品人妻VIDEOSSS人妻| 色婷婷影院| 噜噜噜噜综合在线| 九九爱激情| 午夜丁香婷婷| 97色啪| 日韩av免费版| 色婷婷婷综合五月天| www.狠狠操| 天天日中文| 色狠狠999综合| 天堂AV在线看| 9久久狠狠的| 九九热这里只有精品23| 婷婷五月花| 九九草草逼| 韩国情人在线电视剧免费观看高清版全集 | 99热91| 特级操b片| 五月天激情综合10p| 亚洲第一第二网站| 色三级色三级| 五月天综合影院| 俺去也五月| 色色操| 久久激情天堂| 国产成人AV在线播放| 婷婷五月丁香性爱| 久久草婷婷丁香网站| 婷婷久久网| 高清视频一区| 国产 亚洲 在线| www.99免费视频| 夜夜做夜夜愛| 亚洲五月六月婷婷| xfplayav在线| 五月天色小说| 丁香五月久久综合| 美女久久婷婷| 天天爽曰日爽| 日日夜夜狠狠| 噜噜色天天开心| 91精品久久久久久久| 91精产一区三区免费观看| 亚洲99热| 一级七香蕉| 99爱在线视频观看| 九九精品re免费视频| 婷婷色情小说| 黄色高清无码| 夜夜干天天干| 九九九九中文字幕| 综合网激情| 99九九免费精品| 婷婷深爱五月丁香| 碰碰碰91| 婷婷丁香五月激情密臀av| 一起肏在线视频| 成年人丁香五月| 久草网大香视频| 五月草视频| 99在线免费视频播放| 婷婷综合伊人丁香| 日韩成人无码片| 99re最新地址| 九九热91| www.久久久.com| 91色九| 色五月天堂| 色啪综合| 99网| 婷婷五月色亚洲| 熟妇国产| 夜夜爱伊人| 五月色色网| 色婷婷综合久久久久| 久久久五月天| 开心深爱五月天| 国产AV一区二区三区日韩| 99精品7| 午夜在线成人网站免费观看| 丁香五月色| 亚洲顶级VA在线观看-高清完整版在线影院观看-S022AV | 九九在线视频| 99热这里只有国产精品| 五月婷婷,六月婷婷| A久久| 成人网站免费在线播放| 开心五月激情网| 五月天婷婷青青| 婷久久高清| 五月天淫乱视频| 久久九九爽| 色婷婷电影网| 色色色.COM| 久久久久婷| 丁香五月Av| 九九视频这里只有精品在线播放 | 一级七香蕉| 久久99精品久久久久久噜噜| 色吧五月婷婷| 免费观看18视频网站| 婷激情五月| 91婷婷五月丁香碰| 六月婷婷综合| 日韩99精品| 久婷婷婷| 亚洲精品无人区| 色偷偷色婷婷| 婷婷丁五月| 超碰成人黄色网| 五月婷婷色五月| 五月丁香香蕉| 一级内射毛片| 色屌丝中文字幕| 久久久久久久人妻| 五月婷婷丁香综合,亚洲天堂| 色婷久久| 激情五月色综合国产精品| 久久九精品| 天天干,天天舔| 久久大香蕉丁香| 999热这里只有精品| 99色日本| 免费观看欧美成人AA片爱我多深| 五月丁香婷婷综合| 五月天婷婷丁香蜜桃91| 97干视频在线| 乱精品一区字幕二区| 五月综合六月丁| 丁香五月欧美色综合| 99啪啪| 丁香五月综合激情性爱| 国产精品国产成人国产三级| 天天插综合| 成人 在线 日韩| Aaa久久| 操久久网| 国产婷婷色综合AV蜜臀AV| 99久久亚洲精品视频| 国产av网| 色婷婷狠狠| 九九热精品| 国产六月婷婷| 五月丁香六月婷婷啪啪| 狠狠爱五月婷婷综合六月| 91婷婷| 久久人妻伊人| 婷婷五月天直播| 六月婷色| 亚洲V国产V欧美V久久久久久| 国产午夜精品一区二区| 99国产性感视频| 婷婷99| 欧美久久九九| 激情五月婷婷五月| 亚洲va综合va国产va中文| ss99热| 午夜色婷婷| 日本情色一区二区| 综合激情五月天| 99色在线观看视频| 可以观看的AV| 色婷婷丁香AV综合| 激情综合5月| 日本久久超碰| 九九九九九九九九九九九九九九九九九九九在线视频| 久久ww| 2025色婷婷| 99色这里| 一逼色综合| 丁香六月婷婷社区| 99热在线中出| 免费看欧美成人A片无码| 色播五月丁香| 欧美婷婷成人| 九月婷婷丁香| 久久综合网免费视频| 91九色精品女同系列| 色啦啦视频| 极品少妇XXXX精品少妇偷拍| 天天在线天天综合网色| 99色天堂| 黄色成人网站在线播放| 亚洲无码www| 日本韩国视频在线观看社区免费的9| 超碰免费人人| 五月婷婷激情久久| 夜色综合网| 99视频只有这里精品| 亚洲天堂AAA| 99爱在线| av婷婷丁香 六月| 久久色天堂| 亚洲成人网站在线| 丁香久久久| 久久久九九九 99| 五月婷在线| 怡红院视频| 六月婷久久| 五月婷婷激情中文字幕| 精品人妻一区| 日日干日日| 五月天婷婷视频小说| 免费五月婷婷网| 色综合综合网| 大狠狠在线| 五月婷婷免费| 五月婷婷花| 婷婷五月久久| 五月丁香六月婷综合成人综合| 都市激情五月婷婷综合| 五月婷婷丁香大陆免费| 色五月婷婷丁香婷婷| 婷婷 亚洲图片 丁香| 综合激情网| 狠狠五月丁香色婷| 天天综合天天玩夜夜玩天天玩夜夜玩 | 狠狠干狠狠操狠狠爱| av大片在线| 欧美怡红院黄站| 久久久久久欧美精品se一二三四| 丁香六月婷婷| www,奇米影视| 大香蕉视频婷| 五月色亚洲| 色婷精品91| 色狠狠综合| 午夜婷婷丁香| 色综合天天网| AAA亚洲AV| 免费观看欧美成人AA片爱我多深 | 亚洲AV无码一区二| 午夜色丁香| 99爱爱网| 久久精彩免费视频精彩免费视频| 美妞av| 秋霞三级影视资源| 99久久er| 综合网天天| 天天射美女| 能直接看的av网站| 亚洲欧美在线观看| 亚洲av成人一区二区电影在线| 激情久久月| 99视频在线播放大全| 大香蕉啪啪网| 97干在线视频精品店| 综合五月激情| 色婷婷国产精品综合在线观看| 久久婷婷五| 日本久久视频| 99re思思精品视频在线观看| 丁香五月六月激情| 色婷婷AV久久久久久久| www.97碰碰com| 婷婷五月天综合网| 欧美A片在线视频免费观看| 黄色激情网站在线观看| 国内一级精品| 无码网| 99热99这里只有精品| 五月天丁香婷婷社区| 婷婷五月情| 这里只有精品96| 婷婷五月天性色| 色婷婷AⅤ| 欧美婷婷六月丁香综合色| 日日射天天射| 99精品一二三四视频| 久久女婷| 免费观看2018www黄色操逼网站| 91se在线视频| 丁香六月婷婷高清| 久久天天| 激情小说五月天| 日韩aⅴ视频| 激情文学第四色婷婷丁香五月| 伊人丁香六月婷婷| 五月亭亭直播| 啪啪91| se.久久视频在线观看| 久婷婷五月天影院| 婷婷 激情 五月| 99这里只有精品视频| 色播五月网| 丁香五月停停av| 久热人妻| 五月婷婷花| 久99久视频| 五月婷久久久久综合| 超碰99久久| 中出内射的人妻视频| 色五月色图| 色婷婷呢狠禁久禁| www久久99| 6080av| www.婷婷五月天| 九九婷婷激情综合网| 婷婷丁香五月天影院| 99热精这里只有精品| 天堂久久精品| 99精品久| 激情四射五月天| 欧美美美女性色视频| 色婷网| 欧美色色色色色色| 678五月丁香亚洲综合| 久久人妻精品| 国产亚洲99久久精品熟| 婷婷五六月丁香| www.色婷婷.com| 丁香五月花| www.91在线观看| 天天舔天天摸天天射| 欧美日本国产欧美日本韩国99| 久久婷婷五月天丁香| 婷婷五月色| 精品人妻一区| 亚洲99热| 五月丁香六月婷婷综合免| 五月婷婷久久大香蕉| 日韩AV在线电影| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 婷婷黄色网| 蜜桃婷婷五月| 日本一道久久| 亚洲免费视频网站| 天天成人五月天| 五月婷婷啪啪| 久热爱大香蕉在线蜜臀悦色 | 激情综合五月丁香六月婷婷| 五月婷婷视频啪啪美女| 色综合色色| 久久综合色五月| 五月天激情无码| 九九九激情综合| 玖玖伦理电影| 这里只有精品视频99| 天天肏天天肏天天肏| www夜夜操comwww| 五月天激情色色| 小视频aaa久久久| 婷婷六月久久综合导航| 久久人人九| 五月天另类小说| 久久九九99视频| 激情 五月 婷婷 丁香| 欧美久久婷婷| 久99热在线观看| 丁香五月天综合| 最新婷婷五月丁香| 婷婷成人小说综合| 99燥99日| 色婷婷色情| 人妻丰满精品一区二区A片| 狠狠舔| 久久性视频| 色婷婷9| 欧美天堂久久| 色婷婷超碰| 五月天婷婷小说| 婷婷五月激情五月丁香五月| 五月丁花六月丁香综合| 一本九九色| 丁香婷婷久久老熟女综合网| 国产精品第一国产精品| 亚洲综合婷婷| 久久婷婷影院| 伊人丁香五月| 亚洲爆乳无码精品AAA片蜜桃| 婷婷天天舔| 亚洲精品无码一区二区| 五月在在观看| 99干免费视频| 岛国AV网站| 亚洲av成人电影在线观看| 99热6精品| 2021日韩无码| 五月丁香六月婷| 狠狠爱婷婷| 亚洲区视频| 超碰免费在线| 婷婷五月天网| 天天干天天操天天上| 精品九九九久| 五月婷婷色五月| 五月婷婷丁香啪啪| 色综合婷婷| 99热99ai| 亚洲V国产V欧美V久久久久久| 激情丁香婷婷五月天| A片试看50分钟做受视频| 99爱免费在线视频| 婷婷五月六月丁香| 97色永久免费视频| 婷婷色网| 亚洲日本韩国| 国产午夜精品久久久观看| 久久44| 欧美这里只有精品| 五月婷婷五月天| 9久精品| 天天色天天噜| 久草五月婷| 99久.| 婷婷丁香五月天在线视频| 超碰在线观看三级片| 99热这里只有精品在线播放| 久久免费丁香| 五月天婷婷色综合| 丁香五月天精品| 99丁香五月| 99热这里只有精品9| 欧美日朝成人| 国产精产国品一二三在观看| 激情5月婷婷| 五月婷婷色影院| 99热精品在线在线| 丁香婷婷色| 9久国产精品| 日日干夜夜干| 这里只有精品免费视频| 99久久久久| 夜夜嗨一区二区三区直播内容 | 婷婷狠狠五月综合| 婷婷五月精品中文| 五月花激情| 丁香六月爱综合| 丁香五月天天| 五月综合视频| 五月天激情Av| 欧美色偷偷大香| 五月激情视频| 色婷婷五月天堂资源| 久久99精品日本| 性爱综合网| 九九热视| 婷色人人狠| 肏日网在线看| 亚洲激情婷婷| 99久久精品网| 综激情网| 五月丁小婷婷激情四射| 婷色五月天| 蜜乳国产网站| 91热99| 久久久全国免费视频| 婷婷五月天影院| 婷婷丁香六月激情综合| 丁香密臀AV激情网| 亚洲亚洲人成综合网络| 五月婷婷色播| 色婷婷九月综合| 久久久久久久97| 啪啪日本欧美| 九九人人精品| 五月婷婷色情| 啪啪一区| 五月黄色婷婷| 99无码| 国产成人亚洲综合A∨婷婷| 久久一热免费视频| 91pornav在线| 成人在线观看精品| 激情五月婷婷| 五月天成人在线| 久久五月视频| 婷婷丁香五月天大香蕉| 亚洲亚洲人成综合网络| 激情亚洲婷婷| 丁香5月婷婷| 秋霞三级色戒| 激情电影五月婷婷| 欧美日韩999| www久久艹| 丁香五月中文字幕久色| 丁香九月综合| 亚洲综合另类| 婷婷丁香五月社区亚洲| 天天干夜晚夜操| www.天天干| 欧美丁香六月激情视频| 久久激情视频| 射区导航| AⅤ在线播放网| 日韩成人无码| 色婷婷激情四射视频| 天天草天天日| 天天色播| 激情四射五月天| 99精品在线观看视频| 亚洲男人的天堂婷婷色五月| 中文精品久久久久人妻不| 99热日| 色播色丁香五月| 亚洲亚洲人成综合网络| 五月天成人综合| 琪琪色五月天| 天天色视频| 丁香婷婷十月| 思思色综合网站| enecarbon-materials.comWu染请涟系Bao护@wip1688 | 国产精品久久7777777精品无码| 亚洲色色图片| 亚洲激情AV| 中美月韩免费A片| 婷婷色情五月| av不卡网站| 国产AV熟妇人震精品一品二区| 婷婷在线播放| 五月婷婷激情久久| 久热人妻| 99热免费精品| 九九99香蕉在线视频播放| 久久人妻视步| 人人人人人人人草| tingtingzonghewang| ...婷婷国产成人亚洲日韩| 99热99ai| 九九精品热| 色五月天丁香| 91日日日| 涩涩婷婷五月| 国产超碰av| 1024AV视频| 久久久精品婷婷五月天| 99无码| 久久九色| 亚洲成人免费电影| 婷婷操逼| 99热精品在线| 五月婷婷激情网| 激情五月天在线免费美女视频| 婷婷五月丁香综合激情| 九九99一区| 色色色免费视频| 中文在线视频久1| 99热精国产这里只有精品| 色五月开心开心五月激情五月| 色5月婷婷| 国产精品视频免费看| 五月婷婷偷拍| 97碰久久| 九九黄色网| 99久久精彩视频。| 三级黄网站| 五月婷婷黄色| 亚州欧美国产久精国产99综合视频| 99超在线| 欧美丁香六月激情视频| 天天爽日日爽夜夜爽| 色亚洲欧洲| 九九热re99re6在线精品| 亚洲av成人在线| 婷婷五月影院| 狠狠精品干练久久久无码中文字幕 | 黄色av网站在线免费播放| 国内精品免费一区二区2009| 免费啪啪啪网站| 六月大香蕉| 亚洲另类婷婷综合| 女人露出p毛视频www网站| 亚洲成人色五月婷婷综合| 丁香五月98| 99精彩视频在线观看| 思思热再线视频| 婷婷五月视屏| 99熟女啪啪视频| 色在线99| 丁香婷婷基地| 噜噜在线| 日日操夜夜擼| 久久五月天丁香花| 丁香五月色五月| 青草青草久热这里只有精品| 五月丁香好婷婷姑娘综合网| 激情婷婷综合| 天天操夜夜玩!| 婷婷五月网图片区| 异能之下短剧免费观看全集| 熟女乱论网| 就爱射中文字幕资源网| AV性爱网| 婷婷色色五月| 欧美性生交A片免费看| 丁香五月天AV在线 | 色99热| 色婷婷久久综合久色| 色亭亭五月天网扯| 五月丁香龟婷婷| 激情综合色图| 五月丁香啪| 97人人干视频| 香蕉久久国产av一区二区| 日本三级中文字幕| 凹凸探花电影| 另类五月激情| 超碰chaompinm| 白人荫道BBWBBB大荫道| 丁香五月婷婷少妇| 色婷婷九月| 激情影院免费视频婷婷五月天 | 婷婷久久五月天丁香| 婷婷六月丁香综合| 无码 色| 久久伊人婷婷| 国产亚洲成AV人片在线观黄桃| 99在线免费视频播放| 五月色婷婷夜色| 婷婷性爱| 26uuu欧美激情另类| 五月婷婷av| 婷婷无五月无码视频| 亚洲成人高清在线| 久久99久久99精品免视看婷婷| 五月婷丁香| 成人国产欧美大片一区| 五月天婷婷色情| 99亚洲综合| 婷婷色片| 51精品国自产在线| 五月丁香六月成人| 狠狠操天天操天天操| 久久在线大香蕉| 国自产拍偷拍精品啪啪一区二区| 香蕉操亚洲| 天天舔天天插天天干| 日韩黄黄| 五月丁香自拍| 美女婷婷激情亚洲| 日本一级一级一级一级| 婷婷五月天激情在线| 狠狠色丁香| 激情 婷婷| 婷婷五月天激情亚洲小说| 91玖玖| 日噜噜色| 99rewww| www久久久久久久97| 国产黄色在线观看| 婷婷五月天丁香| 亚洲热久久| 国产精品久久久久久亚洲毛片| 91无码高清| 人人人操97| 五月天停婷基地| 4438亚洲欧美| 五月丁香 六月婷婷a| 人人操av| 啪啪啪丁香五月| www色婷婷久久综合久色| 五月婷啪啪| 操草草草| 婷婷五月免费观看| 婷婷欧美综合| 日本在线wwww| 开心五月丁香婷婷| 五月丁香| 色色五月丁香婷婷| 亚洲婷婷欧美婷婷| 亚洲色就是色色色| 思思热闹这里只有精品| aa久久| 性爱网六月丁香| 伊人9999| 狠狠干,狠狠操| 欧美日韩成人在线| 亚洲乱码w在线观看| 狠狠色综合无线观看| 五月天播播综合| 婷婷另类小说| 久久久久久久久久91| 色色色色色网站| 婷婷五月天99综合网站| 思思热久在线观看视频| 精品五月天| 9l视频自拍9l九色9l成人| 九九视频这里只有精品| 九九爱激情| 亭亭色天香| 天天插天天干| 久久天天天| 美日韩成人| 99爽视频| 国产精品色婷婷99久久精品| 月丁香久久久| 五月情婷婷| 九月丁香八月婷婷加勒比| 99热日本| CHINESE熟女老女人HD视频| 久久99这里只有精品| 超碰国产在线观看| 色婷婷色| 日本狠狠色| 日本久久9| 丁香五月六月综合激情| 久久久久视剧HD| 五月天五月天激情网| 综合久久狠狠| 色五月激情基地| 九月丁香八月婷婷加勒比| 超碰AAAAAAV| 玩熟女五十AV一二三区| 五月天婷婷在线啪啪视频| 成人做爰A片免费看网站找不到了| 99久久精彩视频。| 99热官网| 久久精品国产色| 亚洲综合成人网| 亚洲激情免费久久| 热久精品| 色色色视频免费无码| 开心五月婷婷激情| 亚洲激情99| 99精品无码| 乱女乱妇熟女熟妇综合网站| 国产这里只有精品| 天天爽—爽| 精品国产乱码久久久久久免费| 久久久久综合激动五月天| 国产精品日本一区二区在线播放| 这里只有精品在线播放| 日曰躁夜夜躁2026| 日日射天天射| 九热网站| 五月六月婷| 国产超碰人人| 成片免费观看视频大全| 人妻自慰在线| 婷婷99狠狠| 天天射影视综合网| 人碰人人人玩91| 国产26uuu| 色色色区| 五月天婷婷色| 五月婷婷六月激情在线| 三级片AAA久久久AAA久久久AAA| 丁香婷婷伊人| 东北黄色一级| 超碰在线9| 六月丁香婷婷拍拍| 白人荫道BBWBBB大荫道| 五月丁香另类网| 成人丁香五月婷| 成人一级片| 五月婷婷中字在线| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | Xx色综合| 国产一区二区av免费| 少妇人妻综合色6699| 9热在线观看| 婷婷网五月天| 婷婷亚洲丁香五月| 欧美碰碰碰| 色爽九九| 欧美天天爽| 亚洲欧美综合7777色亭亭| 婷婷射丁香| 九九精品综合| 五月丁香综合啪啪| 亚洲综合狠狠艹| 伊人九九热| 激情綜合W W W,激情五月天| 日韩AAA| 天天射色五月天| 婷婷久久亚洲| 日日干夜夜撸夜夜骑| 国产高清视频91九九九久久久| 2017狠狠干| 伊人五月天日日夜夜久久久天天| 玖玖婷婷免费| 97色天堂| 欧美天天五月丁香免费观看| 天堂网操| 午夜色婷婷| 第一区久久网站| 99啪99| 99综合免费视频| 五月丁六月香| 色五月婷婷av| 色色色com| 91狠狠综合网| 欧美色播综合在线观看| www亚洲无码| 五月丁香激情综合啪啪| 婷婷五月天激情偷拍| 超碰在线网站| 激情网五月天| 99久久6| 色五月xxx| 日本英国美国欧美亚洲国产精亚洲日韩精品在线观看 | 大香蕉综合在线| 婷婷五月丁香基地| 伊人激情啪啪| 亚州欧美黄色电影| 大香蕉伊人99| 五月色天五月色| 8区视频在线| 操人妻AV| 超碰人人干| www.久久五月天.com| 五月丁香黄色| 天天草女人| 亚洲视频二区| 丁香五月在线观看完整版| 丁香五月综合婷婷| 狠狠操狠狠色| 性爱视频99| 五月丁香青草综合啪啪| 欧美操人| 色99视| 91chinese在线| 九月婷婷激情| 婷婷伊人久久综合| 99色精品视频| 99色 | 欧美69色| JAPANRCEP老熟妇乱子伦视频| 深爱激情五月网| 婷婷五月天日本国产| 国产免费一区二区三区三州老师F1F1.CC| 丁香五月天视频| 青青草五月天| 久热这里只有精品视频6| 色婷婷97| 婷婷丁香www视频日本韩国| 99精品偷自拍| 伊人婷婷综合| www激情com| 丁香婷婷少妇| 五月丁香激情四射综合| 色吊丝中文字幕| 成人做爰A片免费看视频| 成人国产综合| 丁香五月激情婷婷婷婷在线观看| 久久五月天激情视频| 丁香五月婷婷啪| 9热在线视频| 91肏肏肏| 婷婷五月天网| 五月综合久久| 日本丁香五月| 亚洲婷婷激情五月天| 五月 丁香 欧美| 综合网色| 欧美图片丁香五月天| 91久久18| 免费无码毛片一区二区A片| 26uuu精品一区二区| 天堂中文国产| 五月丁香啪啪伦理电影| 深爱五月亚洲| 婷婷丁香六月影视| 久久婷婷伊人| 91色噜噜狠狠狠狠色综合| 五月丁香六月婷婷综合| 伊久大香蕉| 风流少妇A片一区二区蜜桃| 久色| 99热99在线| 色五月婷婷操逼| 无码区婷婷五月花开| 五月精品免费XXX| 伊人丁香婷婷东京| 五月天播播综合| 激情五月综合网| 中文无码婷婷| 婷婷综合亚洲| 婷婷六月综合基地| 青青草网武则天| 精品视频网| 五月婷婷丁香91| 艳妇野外情欲放荡HD| 中文字幕按摩做爰| 久久伊人五月天| 九九色综合| 99九九精品| 影视av久久久噜噜噜噜噜三级| 丁香六月综合激情| 天天日天天摸| 怡红院一二三| 欧美国产一区二区三区| 九九热国产| 久久五月激情| 丁香五月婷在线观看| 99热这里只是精品| 久久综合伊人综合在线| 五月丁香六月婷婷综合免| 91精品熟女| 九九综合久久丁香婷婷,开心激情综合网| 五月色婷婷亚洲 | 在线精品97| www.亚洲激情.com| 婷婷色色宗合网| 五月婷婷久草| 九九综合网|