# 加载依赖包library(readxl)library(dplyr)library(openxlsx)# ========== 设置时间段 ==========start_date <- as.Date("2025-01-01")end_date <- as.Date("2025-01-31")# -------------------- A数据处理函数 --------------------process_zss <- function(start_date, end_date) { df <- read_excel("./dh/A到货明细.xlsx") df %>% mutate( Date = as.Date(substr(Date, 1, 10)), 供应商 = "A" ) %>% filter(Date >= start_date & Date <= end_date) %>% select(Date, PO, CUSPN, DEVICE, GOODQTY, MESLOT, 供应商) %>% rename( 到货日期 = Date, PO = PO, 品号 = CUSPN, 料号 = DEVICE, 良品数量 = GOODQTY, 批次 = MESLOT )}# -------------------- B数据处理函数 --------------------process_ase <- function(start_date, end_date) { df <- read_excel("./dh/B到货明细.xlsx") df %>% mutate( 到货日期 = as.Date(substr(到货日期, 1, 10)), 供应商 = "B" ) %>% filter(到货日期 >= start_date & 到货日期 <= end_date) %>% select(到货日期, PONo, 品号, Device, 良品数量, AOLOT, 供应商) %>% rename( PO = PONo, 料号 = Device, 批次 = AOLOT )}# -------------------- C数据处理函数 --------------------process_mdk <- function(start_date, end_date) { df <- read_excel("./dh/C到货明细.xlsx") df %>% mutate( 日期 = as.Date(substr(日期, 1, 10)), 供应商 = "C" ) %>% filter(日期 >= start_date & 日期 <= end_date) %>% select(日期, 合同号, 数量, 成品料号, 型号, 成品数量, 成品批号, 供应商) %>% rename( 到货日期 = 日期, PO = 合同号, 品号 = 成品料号, 料号 = 型号, 良品数量 = 成品数量, 批次 = 成品批号 )}# -------------------- D数据处理函数 --------------------process_wisol <- function(start_date, end_date) { df <- read_excel("./dh/D到货明细.xlsx") df %>% mutate( 发货日期 = as.Date(substr(发货日期, 1, 10)), 良品数量 = as.numeric(良品数量), 供应商 = "D" ) %>% filter(发货日期 >= start_date & 发货日期 <= end_date, !is.na(良品数量)) %>% select(发货日期, 订单编号, 品号, 料号, 良品数量, LOTNO, 供应商) %>% rename( 到货日期 = 发货日期, PO = 订单编号, 批次 = LOTNO )}# -------------------- 合并时间段内所有有数据的厂家 --------------------data_list <- list( tryCatch(process_zss(start_date, end_date), error = function(e) data.frame()), tryCatch(process_ase(start_date, end_date), error = function(e) data.frame()), tryCatch(process_mdk(start_date, end_date), error = function(e) data.frame()), tryCatch(process_wisol(start_date, end_date), error = function(e) data.frame()))final_data <- bind_rows(data_list)# 按到货日期排序final_data <- final_data %>% arrange(到货日期) %>% select(到货日期, PO, 品号, 料号, 良品数量, 批次, 供应商)# 导出文件,文件名包含时间段output_file <- paste0("合并到货明细_", start_date, "_to_", end_date, ".xlsx")write.xlsx(final_data, file = output_file)