Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 142 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
142
Dung lượng
11,47 MB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA TRỊNH HOÀNG ANH THIẾT KẾ HỆ THỐNG HOẠCH ĐỊNH NHU CẦU VẬT TƯ TÍCH HỢP MƠ HÌNH ĐIỀU ĐỘ SẢN XUẤT CHO CƠNG TY SẢN XUẤT MÌ ĂN LIỀN MAS Chun ngành: KỸ THUẬT CƠNG NGHIỆP Mã số : 60520117 LUẬN VĂN THẠC SĨ TP HỒ CHÍ MINH, tháng 09 năm 2020 Cơng trình hoàn thành tại: Trường Đại học Bách Khoa – ĐHQG TP.HCM Cán hướng dẫn khoa học: PGS TS Đỗ Ngọc Hiền Cán chấm nhận xét 1: TS Đỗ Thành Lưu Cán chấm nhận xét 2: TS Nguyễn Hữu Thọ Luận văn thạc sĩ bảo vệ Trường Đại học Bách Khoa, ĐHQG Tp Hồ Chí Minh ngày 06 tháng 09 năm 2020 Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: Chủ tịch Hội đồng: TS Nguyễn Vạng Phúc Nguyên Thư ký hội đồng: TS Nguyễn Văn Thành Ủy viên phản biện 1: TS Đỗ Thành Lưu Ủy viên phản biện 2: TS Nguyễn Hữu Thọ Ủy viên hội đồng: PGS TS Đỗ Ngọc Hiền Xác nhận Chủ tịch Hội đồng đánh giá LV Trưởng Khoa quản lý chuyên ngành sau luận văn sửa chữa (nếu có) CHỦ TỊCH HỘI ĐỒNG TS Nguyễn Vạn Phúc Nguyên TRƯỞNG KHOA CƠ KHÍ ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA Cộng Hòa Xã Hội Chủ Nghĩa Việt Nam Độc lập – Tự – Hạnh phúc NHIỆM VỤ LUẬN VĂN THẠC SĨ I Họ tên học viên: Trịnh Hoàng Anh MSHV: 1670246 Ngày tháng năm sinh: 12/09/1993 Nơi sinh: Đồng Nai Chuyên ngành: Kỹ Thuật Công Nghiệp Mã số: 60520117 TÊN ĐỀ TÀI: Thiết kế hệ thống hoạch định nhu cầu vật tư tích hợp mơ hình điều độ sản xuất cho cơng ty sản xuất mì ăn liền MAS NHIỆM VỤ VÀ NỘI DUNG: Với mục đích nghiên cứu thiết kế hệ thống hoạch định nhu cầu vật tư tích hợp mơ hình điều độ sản xuất cho cơng ty sản xuất mì ăn liền, nội dung thực hiện: - Tìm hiểu hoạt động sản xuất công ty - Nhận diện vấn đề cần cải tiến việc điều độ kế hoạch sản xuất & hoạch định nhu cầu vật tư, xác định nguyên nhân - Xây dựng mơ hình điều độ lên kế hoạch sản xuất phù hợp với lực nhà máy, tối ưu chi phí sản xuất đồng thời giảm thiểu thời gian đáp ứng nhu cầu đơn hàng đưa khuyến cáo - Xây dựng mơ hình hoạch định nhu cầu ngun vật liệu để đáp ứng kịp thời cho kế hoạch sản xuất, lập kế hoạch mua hàng hướng đến mục tiêu giảm thiểu chi phí mua hàng - Xây dựng phần mềm hỗ trợ điều độ kế hoạch sản xuất hoạch định nhu cầu vật tư - Phân tích kết quả, kết luận & kiến nghị II NGÀY GIAO NHIỆM VỤ: 20/01/2018 III NGÀY HOÀN THÀNH NHIỆM VỤ: 06/09/2020 IV CÁN BỘ HƯỚNG DẪN: PGS.TS Đỗ Ngọc Hiền Tp.HCM, ngày tháng năm 2020 CÁN BỘ HƯỚNG DẪN (họ tên chữ ký) CHỦ NHIỆM BỘ MÔN ĐÀO TẠO (họ tên chữ ký) TRƯỞNG KHOA (họ tên chữ ký) LỜI CẢM ƠN Để hoàn thành luận văn tốt nghiệp, em xin gửi lời cảm ơn đến Thầy/Cô Bộ môn Kĩ thuật hệ thống công nghiệp truyền đạt kiến thức nền tảng cần thiết suốt thời gian vừa qua Đây hành trang quý báu giúp em tạo nền tảng nghiệp sau Đặc biệt, em xin chân thành sâu sắc cảm ơn Phó giáo sư Tiến Sĩ Đỗ Ngọc Hiền tận tình giúp đỡ, định hướng góp ý q trình em thực luận văn, giúp em hồn thành luận văn tốt nghiệp trọn vẹn Một lần nữa, em xin gửi lời cảm ơn đến giúp đỡ người Kính chúc thầy/cơ có thật nhiều sức khỏe thành công sống Em xin chân thành cảm ơn! Tp.HCM, tháng 09 năm 2020 Người thực luận văn Trịnh Hồng Anh iv TĨM TẮT Cơng ty cổ phần hàng tiêu dùng MAS chuyên sản xuất & phân phối mì ăn liền Hiện nay, đối diện với thay đổi nhanh chóng nhu cầu tiêu thụ hàng tiêu dùng thị trường đồng thời cạnh tranh với cơng ty đối thủ địi hỏi cơng ty phải thường xuyên thay đổi kế hoạch sản xuất để đáp ứng nhanh với nhu cầu khách hàng Điều dẫn đến việc công ty dẫn đến việc thiếu hụt nguyên vật liệu, làm gia tăng chi phí sản xuất, nhân cơng & số chi phí khác Mục tiêu đề tài nghiên cứu nhằm tìm hiểu, phân tích quy trình điều độ sản xuất & hoạch định nhu cầu vật tư công ty Từ đề xuất mơ hình điều độ sản xuất dựa mơ hình nghiên cứu tác giả Michael Pineda Xiuli Chao, 1999 thiết kế hiệu chỉnh cho phù hợp với nhu cầu tình hình áp dụng cơng ty sản xuất mì ăn liền MAS để đưa liệu khuyến cáo về kế hoạch điều độ sản xuất cho phận kế hoạch sản xuất Đồng thời dựa mơ hình nghiên cứu tác giả Will cộng sự, 1996 đề xuất mơ hình hoạch định nhu cầu nguyên vật tư cho phận thu mua phận kho Nghiên cứu áp dụng chạy thử cho ngành hàng cơng ty mì ăn liền Thơng qua áp dụng chạy thử dịng sản phẩm mì ăn liền cân đối vấn đề điều độ sản xuất giảm thời gian đáp ứng đơn hàng tối ưu quy trình hoạch định thu mua nguyên liệu với số lượng, thời gian hợp lý nhằm tối ưu thời gian lưu kho, chi phí kho, vận chuyển… Kết điều độ hợp lý thứ tự sản xuất tính tốn xác định mức sử dụng nguyên vật liệu làm giảm thiểu đơn hàng bị trễ, đồng thời giúp tiết kiệm chi phí thu mua lưu kho nguyên vật liệu Cân đối thời gian cần nguyên liệu sản xuất giúp phận mua hàng kiểm sốt q trình mua hàng với nhà cung cấp, giúp phận sản xuất kiểm sốt dịng ngun vật liệu vào chùn, sản xuất tiến độ Kết nghiên cứu sử dụng làm tài liệu tham khảo cho cơng ty sản xuất mì ăn liền nghiên cứu xa tương lai v ABSTRACT MAS Consumer Goods Joint Stock Company specializes in manufacturing and distributing instant noodles Currently, facing the rapidly changing demand for consumer goods in the market and competing with rival companies requires the company to regularly change production plans to respond quickly to the needs of customers This leads to the company leading to the shortage of raw materials, increasing production costs, labor and other costs The objective of the research topic is to find out and analyze the company's current process of production dispatching and material demand planning Since then, proposing a production regulation model based on the research model of author Michael Pineda and Xiuli Chao, 1999, designed and adjusted to suit the needs and application situation at the instant noodle company MAS to provide recommended data on production dispatching plans for the production planning department At the same time based on the research model of author Will et al., 1996 proposed a material demand planning model for the purchasing department and the warehouse department The research is used and tested for the company's main category of instant noodles Through the application of trial runs on instant noodle products, the problem of production dispatching, reducing order response time and optimizing the planning process of purchasing ingredients with reasonable quantity and time to optimize storage time, warehouse costs, transportation The results of reasonable regulation of production order and accurate calculation of raw material usage reduce order delay, and at the same time save the cost of purchasing and storing raw materials Balancing the time needed for raw materials in production helps the purchasing department control the purchasing process with suppliers, helping the production department control the flow of raw materials in and out of the production line, on schedule The results of this study can be used as a reference for the instant noodle companies and further research in the future vi LỜI CAM ĐOAN Tôi xin cam đoan: Luận văn tốt nghiệp cơng trình nghiên cứu thực cá nhân tôi, thực dựa sở nghiên cứu lý thuyết, khảo sát thực tiễn hướng dẫn khoa học PGS.TS Đỗ Ngọc Hiền Các số liệu kết nghiên cứu luận văn trụng thực, chưa công bố hình thức từ trước đến Một lần nữa, xin khẳng định về trung thực lời cam đoan Tp.HCM, ngày tháng Trịnh Hoàng Anh vii năm 2020 MỤC LỤC LỜI CAM ĐOAN VII MỤC LỤC VIII DANH MỤC HÌNH XI DANH MỤC BẢNG XIII CHƯƠNG GIỚI THIỆU TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ 1.2 MỤC ĐÍCH CỦA ĐỀ TÀI 1.3 PHẠM VI VÀ GIỚI HẠN CỦA ĐỀ TÀI 1.4 CẤU TRÚC LUẬN VĂN CHƯƠNG CƠ SỞ LÝ THUYẾT VÀ PHƯƠNG PHÁP LUẬN 2.1 CƠ SỞ LÝ THUYẾT 2.1.1 Hệ thống lập kế hoạch kiểm soát sản xuất (MPC) 2.1.2 Điều độ sản xuất 2.1.3 Các mơ hình sản xuất 2.1.4 Những lý thuyết xử lý ràng buộc: 10 2.1.5 Hàm mục tiêu 11 2.1.6 Các giải thuật toán điều độ .12 2.1.7 Giải thuật điều độ Cực đại tổng số công việc thực – Maximizing Number of Jobs Processed 13 2.1.8 Hoạch định cầu vật tư nguồn lực (MRP) hệ thống lập kế hoạch kiểm soát sản xuất (MPC) 15 2.2 PHƯƠNG PHÁP LUẬN 21 2.2.1 Phương pháp luận chung 21 2.2.2 Phương pháp luận chi tiết 22 2.3 CÁC NGHIÊN CỨU LIÊN QUAN 24 2.3.1 Nghiên cứu “Minimizing the weighted number of tardy jobs on multiple machines” [7] 25 viii 2.3.2 Nghiên cứu “Scheduling of parallel identical machines to maximize the weighted number of just-in-time jobs” [8] 25 2.3.3 Luận văn: “Hoạch định tổng hợp điều độ sản xuất Công ty TNHH Gritti VN” [9] 26 2.3.4 Luận văn: “Xây đựng phần mềm quản lý điều hành sản xuất cho nhà máy may TNG” [10] 26 2.3.5 Luận văn: “Nghiên cứu thiết kế hệ thống hoạch định nhu cầu vật tư cho công ty may Hịa Bình” [11] 27 CHƯƠNG PHÂN TÍCH HIỆN TRẠNG 28 3.1 TỔNG QUAN VỀ CÔNG TY 28 3.1.1 Sơ lược ngành hàng mì ăn liền 28 3.1.2 Qui trình chuỗi cung ứng mì 28 3.2 THỰC TRẠNG CÔNG TY 33 3.3 NGUYÊN NHÂN PHÁT SINH 36 3.4 ĐỀ XUẤT XÂY DỰNG MƠ HÌNH ĐIỀU ĐỘ SẢN XUẤT VÀ HỆ THỐNG HOẠCH ĐỊNH NHU CẦU VẬT TƯ 39 3.4.1 Thay đổi quy trình điều độ kế hoạch sản xuất: 39 3.4.2 Xây dựng hệ thống hoạch định vật tư 39 CHƯƠNG THIẾT KẾ HỆ THỐNG HOẠCH ĐỊNH NHU CẦU VẬT TƯ TÍCH HỢP MƠ HÌNH ĐIỀU ĐỘ SẢN XUẤT CHO CƠNG TY SẢN XUẤT MÌ ĂN LIỀN MAS 40 4.1 QUY TRÌNH NGHIÊN CỨU 40 4.2 VẤN ĐỀ MƠ HÌNH ĐIỀU ĐỘ KẾ HOẠCH SẢN XUẤT CHO CÔNG TY MAS 42 4.2.1 Mơ hình điều độ thực tế công ty MAS 42 4.2.2 Chọn lựa phương án giải 43 4.2.3 Các thơng số tốn 43 4.2.4 Các bước tính tốn áp dụng giải thuật Maximizing Number of Jobs Processed kết hợp với giải thuật Kinh Nghiệm Tìm Kiếm Cục Bộ để xây dựng mơ hình điều độ cho tốn 46 ix 4.2.5 MAS 4.3 Thiết kế thực nghiệm mơ hình điều độ kế hoạch sản xuất cơng ty 48 VẤN ĐỀ HỆ THỐNG HOẠCH ĐỊNH NHU CẦU VẬT TƯ CHO CÔNG TY MAS 63 4.3.1 Hệ thống hoạch định nhu cầu vật tư thực tế công ty MAS 63 4.3.2 Chọn lựa phương án giải 63 4.3.3 Các thơng số tốn 64 4.3.4 Ứng dụng phần mềm Excel để thiết lập hệ thống hoạch định nhu cầu vật tư cho công ty MAS 66 CHƯƠNG KẾT LUẬN VÀ KIẾN NGHỊ 75 5.1 KẾT LUẬN 75 5.2 KIẾN NGHỊ 75 5.2.1 Những hạn chế 75 5.2.2 Hướng phát triển .76 TÀI LIỆU THAM KHẢO .77 MÃ NGUỒN CHƯƠNG TRÌNH .79 x break; case 3: $chooseEndDateOfLine = $result[$key]['proccess_end_line3']; break; case 4: $chooseEndDateOfLine = $result[$key]['proccess_end_line4']; break; case 5: $chooseEndDateOfLine = $result[$key]['proccess_end_line5']; break; default: $chooseEndDateOfLine = 0; break; } $result[$key]['choose_end_date_of_line'] = $chooseEndDateOfLine; } return $result; } function tinhGiaithua($n) { $giai_thua = 1; if ($n == || $n == 1) { return $giai_thua; } else { for ($i = 2; $i get()->toArray(); foreach ($stepThreeTwos as $stepThreeTwo) { if($stepThreeTwo['line_de_sx'] === 1){ $lenh_sx_trung_line1[] = $stepThreeTwo; } if($stepThreeTwo['line_de_sx'] === 2){ 115 $lenh_sx_trung_line2[] = $stepThreeTwo; } if($stepThreeTwo['line_de_sx'] === 3){ $lenh_sx_trung_line3[] = $stepThreeTwo; } if($stepThreeTwo['line_de_sx'] === 4){ $lenh_sx_trung_line4[] = $stepThreeTwo; } if($stepThreeTwo['line_de_sx'] === 5){ $lenh_sx_trung_line5[] = $stepThreeTwo; } } $so_cach_line_1 = $this->tinhGiaithua(count($lenh_sx_trung_line1)); $so_cach_line_2 = $this->tinhGiaithua(count($lenh_sx_trung_line2)); $so_cach_line_3 = $this->tinhGiaithua(count($lenh_sx_trung_line3)); $so_cach_line_4 = $this->tinhGiaithua(count($lenh_sx_trung_line4)); $so_cach_line_5 = $this->tinhGiaithua(count($lenh_sx_trung_line5)); for ($i = 0; $i < $so_cach_line_1; $i++) { $cach_sap_xep_ma_lenh_sx[1][] = $this>sap_xep_thu_tu_phan_tu_trong_mang($lenh_sx_trung_line1, $i, count($lenh_sx_trung_line1)); } for ($i = 0; $i < $so_cach_line_2; $i++) { $cach_sap_xep_ma_lenh_sx[2][] = $this>sap_xep_thu_tu_phan_tu_trong_mang($lenh_sx_trung_line2, $i, count($lenh_sx_trung_line2)); } for ($i = 0; $i < $so_cach_line_3; $i++) { $cach_sap_xep_ma_lenh_sx[3][] = $this>sap_xep_thu_tu_phan_tu_trong_mang($lenh_sx_trung_line3, $i, count($lenh_sx_trung_line3)); } for ($i = 0; $i < $so_cach_line_4; $i++) { $cach_sap_xep_ma_lenh_sx[4][] = $this>sap_xep_thu_tu_phan_tu_trong_mang($lenh_sx_trung_line4, $i, count($lenh_sx_trung_line4)); } for ($i = 0; $i < $so_cach_line_5; $i++) { $cach_sap_xep_ma_lenh_sx[5][] = $this>sap_xep_thu_tu_phan_tu_trong_mang($lenh_sx_trung_line5, $i, count($lenh_sx_trung_line5)); } $endDate1 = []; $endDate2 = []; $endDate3 = []; $endDate4 = []; 116 $endDate5 = []; $arrGroup = Products::pluck('group_product_id','product_code')->toArray(); $arrItem = []; $release_date_max_cach_sap_xep = []; $release_date_max_cach_sap_xep_result = []; $min_release_date = []; foreach ($cach_sap_xep_ma_lenh_sx[1] as $key=>&$value){ foreach ($value as $k=>&$v){ $arrItem[] = $v['item_code']; $v['proccess_ngay_line'] = $v['proccess_ngay_line1']; $deliveryDate = $this>getEndDate(Carbon::parse($v['choose_end_date_of_line'])->addDay(1)->format('Ym-d'), 0); $v['delivery_date'] = $deliveryDate['day']; if(Carbon::parse($v['delivery_date']) < Carbon::parse($v['due_date'])){ $v['tardiness'] = '-'; }else{ $v['tardiness'] = Carbon::parse($v['due_date'])>diffInDays(Carbon::parse($v['delivery_date'])); } $v['tardiness_weight'] = (int)$v['tardiness'] * $v['weight']; $v['slack_time'] = Carbon::parse($v['delivery_date'])>diffInDays(Carbon::parse($v['due_date'])); if($v['thu_tu_san_xuat'] == 1){ $v['release_date'] = $v['startDate']; $v['changeOvertime'] = ; $convertDate = str_replace(' 00:00:00','',$v['startDate']); $endDate1[] = $this->getEndDate($convertDate,$v['proccess_ngay_line']); $release_date_max_cach_sap_xep[$key+1][] = $v['release_date']; }else{ if($arrItem[$k- 1] == $arrItem[$k]){ $changeOvertime = 0; }else{ // truong hop itemc ode co cung group if($arrGroup[$arrItem[$k- 1]] == $arrItem[$k]){ switch ($arrGroup[$arrItem[$k- 1]]){ case 1: $changeOvertime = 1; break; 117 case 2: $changeOvertime = 1; break; case 5: $changeOvertime = 1.25; break; case 6: $changeOvertime = 1.5; break; case 7: $changeOvertime = 1.25; break; case 8: $changeOvertime = 1.25; break; default: $changeOvertime = 1.25;; break ; } }else{ // truong hop item code khac group if($arrGroup[$arrItem[$k- 1]] == && $arrGroup[$arrItem[$k]] == 2){ $changeOvertime = 1.5; }else if($arrGroup[$arrItem[$k- 1]] == && $arrGroup[$arrItem[$k]] == 3){ $changeOvertime = 2; }else if($arrGroup[$arrItem[$k- 1]] == && $arrGroup[$arrItem[$k]] == 4){ $changeOvertime = 2; }else if($arrGroup[$arrItem[$k- 1]] == && $arrGroup[$arrItem[$k]] == 3){ $changeOvertime = 2; }else if($arrGroup[$arrItem[$k- 1]] == && $arrGroup[$arrItem[$k]] == 4){ $changeOvertime = 2; }else if($arrGroup[$arrItem[$k- 1]] == && $arrGroup[$arrItem[$k]] == 4){ $changeOvertime = 1.5; }else if($arrGroup[$arrItem[$k- 1]] == && $arrGroup[$arrItem[$k]] == 6){ $changeOvertime = 2.25; }else if($arrGroup[$arrItem[$k- 1]] == && $arrGroup[$arrItem[$k]] == 5){ $changeOvertime = 1.75; }else if($arrGroup[$arrItem[$k- 1]] == && $arrGroup[$arrItem[$k]] == 7){ $changeOvertime = 2; }else if($arrGroup[$arrItem[$k- 1]] == && $arrGroup[$arrItem[$k]] == 8){ 118 $changeOvertime = 2; }else if($arrGroup[$arrItem[$k- 1]] == && $arrGroup[$arrItem[$k]] == 8){ $changeOvertime = 1.15; } } } $estimation_release_date = Carbon::parse(end($endDate1)['day_hour'])>addDay($changeOvertime); $nextEndDateHour = Carbon::parse(end($endDate1)['day_hour'])>addDay(1); $nextEndDateDay = $estimation_release_date->addDay(1); $thoi_gian_du = $nextEndDateHour->toTimeString(); if ($this->checkHolidate($nextEndDateDay) && ($thoi_gian_du >12)){ $releaseDate = $this->getEndDate($nextEndDateDay->format('Y-md'),0)['day_hour']; }else{ $releaseDate = $estimation_release_date->format('Y-m-d H:i'); } if($releaseDate $release_date_max_value) { $v['max_release_date'] = max($release_date_max_value); $release_date_max_cach_sap_xep_result[$release_date_max_key] = max($release_date_max_value); } } } } foreach ($cach_sap_xep_ma_lenh_sx[2] as $key=>&$value){ foreach ($value as $k=>&$v){ $v['proccess_ngay_line'] = $v['proccess_ngay_line2']; $deliveryDate = $this>getEndDate(Carbon::parse($v['choose_end_date_of_line'])->addDay(1)->format('Ym-d'), 0); $v['delivery_date'] = $deliveryDate['day']; if(Carbon::parse($v['delivery_date']) < Carbon::parse($v['due_date'])){ 119 $v['tardiness'] = '-'; }else{ $v['tardiness'] = Carbon::parse($v['due_date'])>diffInDays(Carbon::parse($v['delivery_date'])); } $v['tardiness_weight'] = (int)$v['tardiness'] * $v['weight']; $v['slack_time'] = Carbon::parse($v['delivery_date'])>diffInDays(Carbon::parse($v['due_date'])); if($v['thu_tu_san_xuat'] == 1){ $v['release_date'] = $v['startDate']; $convertDate = str_replace(' 00:00:00','',$v['startDate']); $endDate2[] = $this->getEndDate($convertDate,$v['proccess_ngay_line']); }else{ $nextEndDateHour = Carbon::parse(end($endDate2)['day_hour'])>addDay(1); $nextEndDateDay = Carbon::parse(end($endDate2)['day'])->addDay(1); $thoi_gian_du = $nextEndDateHour->toTimeString(); if ($this->checkHolidate($nextEndDateDay) && ($thoi_gian_du >12)){ $releaseDate = $this->getEndDate($nextEndDateDay->format('Y-md'),0)['day_hour']; }else{ $releaseDate = end($endDate2)['day_hour']; } $v['release_date'] = $releaseDate; } } } foreach ($cach_sap_xep_ma_lenh_sx[3] as $key=>&$value){ foreach ($value as $k=>&$v){ $v['proccess_ngay_line'] = $v['proccess_ngay_line3']; $deliveryDate = $this>getEndDate(Carbon::parse($v['choose_end_date_of_line'])->addDay(1)->format('Ym-d'), 0); $v['delivery_date'] = $deliveryDate['day']; if(Carbon::parse($v['delivery_date']) < Carbon::parse($v['due_date'])){ $v['tardiness'] = '-'; }else{ $v['tardiness'] = Carbon::parse($v['due_date'])>diffInDays(Carbon::parse($v['delivery_date'])); } $v['tardiness_weight'] = (int)$v['tardiness'] * $v['weight']; $v['slack_time'] = Carbon::parse($v['delivery_date'])>diffInDays(Carbon::parse($v['due_date'])); if($v['thu_tu_san_xuat'] == 1){ 120 $v['release_date'] = $v['startDate']; $convertDate = str_replace(' 00:00:00','',$v['startDate']); $endDate3[] = $this->getEndDate($convertDate,$v['proccess_ngay_line']); }else{ $nextEndDateHour = Carbon::parse(end($endDate3)['day_hour'])>addDay(1); $nextEndDateDay = Carbon::parse(end($endDate3)['day'])->addDay(1); $thoi_gian_du = $nextEndDateHour->toTimeString(); if ($this->checkHolidate($nextEndDateDay) && ($thoi_gian_du >12)){ $releaseDate = $this->getEndDate($nextEndDateDay->format('Y-md'),0)['day_hour']; }else{ $releaseDate = end($endDate3)['day_hour']; } $v['release_date'] = $releaseDate; } } } foreach ($cach_sap_xep_ma_lenh_sx[4] as $key=>&$value){ foreach ($value as $k=>&$v){ $v['proccess_ngay_line'] = $v['proccess_ngay_line4']; $deliveryDate = $this>getEndDate(Carbon::parse($v['choose_end_date_of_line'])->addDay(1)->format('Ym-d'), 0); $v['delivery_date'] = $deliveryDate['day']; if(Carbon::parse($v['delivery_date']) < Carbon::parse($v['due_date'])){ $v['tardiness'] = '-'; }else{ $v['tardiness'] = Carbon::parse($v['due_date'])>diffInDays(Carbon::parse($v['delivery_date'])); } $v['tardiness_weight'] = (int)$v['tardiness'] * $v['weight']; $v['slack_time'] = Carbon::parse($v['delivery_date'])>diffInDays(Carbon::parse($v['due_date'])); if($v['thu_tu_san_xuat'] == 1){ $v['release_date'] = $v['startDate']; $convertDate = str_replace(' 00:00:00','',$v['startDate']); $endDate4[] = $this->getEndDate($convertDate,$v['proccess_ngay_line']); }else{ $nextEndDateHour = Carbon::parse(end($endDate4)['day_hour'])>addDay(1); $nextEndDateDay = Carbon::parse(end($endDate4)['day'])->addDay(1); $thoi_gian_du = $nextEndDateHour->toTimeString(); if ($this->checkHolidate($nextEndDateDay) && ($thoi_gian_du >12)){ $releaseDate = $this->getEndDate($nextEndDateDay->format('Y-md'),0)['day_hour']; }else{ 121 $releaseDate = end($endDate4)['day_hour']; } $v['release_date'] = $releaseDate; } } } foreach ($cach_sap_xep_ma_lenh_sx[5] as $key=>&$value){ foreach ($value as $k=>&$v){ $v['proccess_ngay_line'] = $v['proccess_ngay_line5']; $deliveryDate = $this>getEndDate(Carbon::parse($v['choose_end_date_of_line'])->addDay(1)->format('Ym-d'), 0); $v['delivery_date'] = $deliveryDate['day']; if(Carbon::parse($v['delivery_date']) < Carbon::parse($v['due_date'])){ $v['tardiness'] = '-'; }else{ $v['tardiness'] = Carbon::parse($v['due_date'])>diffInDays(Carbon::parse($v['delivery_date'])); } $v['tardiness_weight'] = (int)$v['tardiness'] * $v['weight']; $v['slack_time'] = Carbon::parse($v['delivery_date'])>diffInDays(Carbon::parse($v['due_date'])); if($v['thu_tu_san_xuat'] == 1){ $v['release_date'] = $v['startDate']; $convertDate = str_replace(' 00:00:00','',$v['startDate']); $endDate5[] = $this->getEndDate($convertDate,$v['proccess_ngay_line']); }else{ $nextEndDateHour = Carbon::parse(end($endDate5)['day_hour'])>addDay(1); $nextEndDateDay = Carbon::parse(end($endDate5)['day'])->addDay(1); $thoi_gian_du = $nextEndDateHour->toTimeString(); if ($this->checkHolidate($nextEndDateDay) && ($thoi_gian_du >12)){ $releaseDate = $this->getEndDate($nextEndDateDay->format('Y-md'),0)['day_hour']; }else{ $releaseDate = end($endDate5)['day_hour']; } $v['release_date'] = $releaseDate; } } } return $cach_sap_xep_ma_lenh_sx; } private function getEndDate($date, $proccessingTime) 122 { $beginDay = $date; $workDay = $proccessingTime; $holidays = Holiday::pluck('holiday')->toArray(); // danh sach cac nghi foreach ($holidays as &$holiday){ $holiday = str_replace(' 00:00:00','',$holiday); } $currentWorkDay = 0; $beginDay = Carbon::createFromFormat('Y-m-d', $beginDay); while ($currentWorkDay format('Y-m-d'); if(!$beginDay->isSunday() && !in_array($dayHuman, $holidays)){ $currentWorkDay ++; } if($currentWorkDay addDay(1); } } $hour = $this->NumberBreakdown($workDay,false) * 24; $beginDay = $beginDay->hour(0)->minute(0)->second(0); $beginDay = $beginDay->addHour($hour); return ['day' => $beginDay->format('Y-m-d'), 'day_hour' => $beginDay->format('Y-m-d H:i') ]; } private function checkHolidate($beginDay) { $holidays = Holiday::pluck('holiday')->toArray(); // danh sach cac nghi foreach ($holidays as &$holiday){ $holiday = str_replace(' 00:00:00','',$holiday); } $dayHuman = $beginDay->format('Y-m-d'); if($beginDay->isSunday() || in_array($dayHuman, $holidays)){ return true; 123 }else{ return false; } } private function NumberBreakdown($number, $returnUnsigned = false) { $negative = 1; if ($number < 0) { $negative = -1; $number *= -1; } if ($returnUnsigned){ return array( floor($number), ($number - floor($number)) ); } return ($number - floor($number)) * $negative; } } @extends('layouts.app') @section('title', $page_title) @section('page_title', $page_title) @section('content') {{ ('Step 3')}} {{ ('Export')}} 124 {{ ('Tuần chứa ngày bắt đầu lệnh')}} {{ ('Mã lệnh sx')}} {{ ('Group sản phẩm')}} {{ ('Line')}} {{ ('Thứ tự sx')}} {{ ('Item code')}} {{ ('Mô tả')}} {{ ('Số lượng')}} {{ ('Release Date R2')}} {{ ('Proccessing time')}} {{ ('End Date')}} {{ ('Delivery Date')}} {{ ('Due Date')}} {{ ('Tardiness')}} {{ ('Weight')}} {{ ('Weight of Tardiness')}} {{ ('Giá trị tiêu chí "TOTAL WEIGHT OF TARDINESS"')}} {{ ('Slack Time (Ngày)')}} @foreach($week26 as $week) @foreach($week as $items) @foreach($items as $item) {{$item['week']}} {{$item['ma_lenh_sx']}} {{$group[$item['group_product']]}} {{$line[$item['line_de_sx']]}} {{$item['thu_tu_san_xuat']}} {{$item['item_code']}} {{$item['description']}} {{$item['quantity']}} {{$item['release_date']}} {{$item['proccess_ngay_line']}} {{$item['choose_end_date_of_line']}} {{$item['delivery_date']}} {{$item['due_date']}} {{$item['tardiness']}} {{$item['weight']}} {{$item['tardiness_weight']}} {{'TOTAL WEIGHT OF TARDINESS'}} {{$item['slack_time']}} @endforeach @endforeach @endforeach 125 @foreach($week27 as $week) @foreach($week as $items) @foreach($items as $item) {{$item['week']}} {{$item['ma_lenh_sx']}} {{$group[$item['group_product']]}} {{$line[$item['line_de_sx']]}} {{$item['thu_tu_san_xuat']}} {{$item['item_code']}} {{$item['description']}} {{$item['quantity']}} {{$item['release_date']}} {{$item['proccess_ngay_line']}} {{$item['choose_end_date_of_line']}} {{$item['delivery_date']}} {{$item['due_date']}} {{$item['tardiness']}} {{$item['weight']}} {{$item['tardiness_weight']}} {{'TOTAL WEIGHT OF TARDINESS'}} {{$item['slack_time']}} @endforeach @endforeach @endforeach @foreach($week28 as $week) @foreach($week as $items) @foreach($items as $item) {{$item['week']}} {{$item['ma_lenh_sx']}} {{$group[$item['group_product']]}} {{$line[$item['line_de_sx']]}} {{$item['thu_tu_san_xuat']}} {{$item['item_code']}} {{$item['description']}} {{$item['quantity']}} {{$item['release_date']}} {{$item['proccess_ngay_line']}} {{$item['choose_end_date_of_line']}} {{$item['delivery_date']}} {{$item['due_date']}} {{$item['tardiness']}} {{$item['weight']}} {{$item['tardiness_weight']}} {{'TOTAL WEIGHT OF TARDINESS'}} {{$item['slack_time']}} 126 @endforeach @endforeach @endforeach @foreach($week29 as $week) @foreach($week as $items) @foreach($items as $item) {{$item['week']}} {{$item['ma_lenh_sx']}} {{$group[$item['group_product']]}} {{$line[$item['line_de_sx']]}} {{$item['thu_tu_san_xuat']}} {{$item['item_code']}} {{$item['description']}} {{$item['quantity']}} {{$item['release_date']}} {{$item['proccess_ngay_line']}} {{$item['choose_end_date_of_line']}} {{$item['delivery_date']}} {{$item['due_date']}} {{$item['tardiness']}} {{$item['weight']}} {{$item['tardiness_weight']}} {{'TOTAL WEIGHT OF TARDINESS'}} {{$item['slack_time']}} @endforeach @endforeach @endforeach @foreach($week30 as $week) @foreach($week as $items) @foreach($items as $item) {{$item['week']}} {{$item['ma_lenh_sx']}} {{$group[$item['group_product']]}} {{$line[$item['line_de_sx']]}} {{$item['thu_tu_san_xuat']}} {{$item['item_code']}} {{$item['description']}} {{$item['quantity']}} {{$item['release_date']}} {{$item['proccess_ngay_line']}} {{$item['choose_end_date_of_line']}} {{$item['delivery_date']}} {{$item['due_date']}} {{$item['tardiness']}} {{$item['weight']}} {{$item['tardiness_weight']}} 127 {{'TOTAL WEIGHT OF TARDINESS'}} {{$item['slack_time']}} @endforeach @endforeach @endforeach {{ csrf_field() }} @endsection @section('script') $( document ).ready(function() { $('.btn_download_excel_transaction').click(function(e){ e.preventDefault(); $('#download_excel_transaction').submit(); }); }); @endsection 128 PHẦN LÝ LỊCH TRÍCH NGANG Họ tên: Trịnh Hoàng Anh Ngày, tháng, năm sinh: ngày 12 tháng 09 năm 1993 Nơi sinh: Đồng Nai Địa liên lạc : 463B/41A đường CMT8, phường 13, quận 10, Tp.HCM QUÁ TRÌNH ĐÀO TẠO : Năm 2011 – 2015 : học khoa Khoa Học Vật Liệu trường đại học Khoa Học Tự Nhiên Tp.HCM Năm 2016 – 2020 : học khoa Kỹ Thuật Hệ Thống Công Nghiệp trường đại học Bách Khoa Tp.HCM Q TRÌNH CƠNG TÁC: Tháng năm 2017 – Tháng năm 2019: làm việc công ty cổ phần hàng tiêu dùng MASAN vị trí Chuyên viên Cung ứng Cấp cao Tháng 07 năm 2020 – tại: làm việc công ty cổ phần One Mount Group vị trí Chuyên viên Cung ứng Cấp cao 129 ... thống hoạch định nhu cầu vật tư tích hợp mơ hình điều độ sản xuất cho cơng ty sản xuất mì ăn liền MAS NHIỆM VỤ VÀ NỘI DUNG: Với mục đích nghiên cứu thiết kế hệ thống hoạch định nhu cầu vật tư tích. .. xác định vấn đề cơng ty đối mặt Tìm hiểu ngun nhân Chương 4: Thiết kế hệ thống hoạch định nhu cầu vật tư tích hợp mơ hình điều độ sản xuất cho ngành mì ăn liền cơng ty sản xuất mì ăn liền MAS. .. cứu thiết kế hệ thống hoạch định nhu cầu vật tư tích hợp mơ hình điều độ sản xuất cho cơng ty sản xuất mì ăn liền MAS nhằm thực kế hoạch sản xuất cân yêu cầu đơn hàng nguồn lực có nhà máy hoạch