public List <maintenance_report_repair_item_model> FindAll(DateTime startDate, DateTime endDate) { List <sys_factory_db> LIST_DB_FACTORY = _context.sys_factorys.Where(d => d.status_del == 1).Select(d => d).ToList(); List <maintenance_report_repair_item_model> result = new List <maintenance_report_repair_item_model>(); for (int FACTORY = 0; FACTORY < LIST_DB_FACTORY.Count; FACTORY++) { List <sys_factory_line_db> LIST_DB_FACTORY_LINE = _context.sys_factory_lines.Where(d => d.id_factory == LIST_DB_FACTORY[FACTORY].id).Where(d => d.status_del == 1).Select(d => d).ToList(); for (int FACTORY_LINE = 0; FACTORY_LINE < LIST_DB_FACTORY_LINE.Count; FACTORY_LINE++) { List <string> LIST_ID_SYSTEM = _context.sys_factory_line_list_maintenance_systems.Where(d => d.id_factory_line == LIST_DB_FACTORY_LINE[FACTORY_LINE].id).Select(d => d.id_system).ToList(); List <maintenance_system_db> LIST_DB_MAINTENANCE_SYSTEM = _context.maintenance_systems.Where(d => LIST_ID_SYSTEM.Contains(d.id)).Where(d => d.status_del == 1).Select(d => d).ToList(); for (int MAINTENANCE_SYSTEM = 0; MAINTENANCE_SYSTEM < LIST_DB_MAINTENANCE_SYSTEM.Count; MAINTENANCE_SYSTEM++) { string FACTORY_NAME = _context.sys_factorys.Where(s => s.id == LIST_DB_FACTORY[FACTORY].id).Where(d => d.status_del == 1).Select(d => d.name).SingleOrDefault(); string FACTORY_LINE_NAME = _context.sys_factory_lines.Where(s => s.id == LIST_DB_FACTORY_LINE[FACTORY_LINE].id).Where(d => d.status_del == 1).Select(d => d.name).SingleOrDefault(); string MAINTENANCE_SYSTEM_NAME = _context.maintenance_systems.Where(s => s.id == LIST_DB_MAINTENANCE_SYSTEM[MAINTENANCE_SYSTEM].id).Where(d => d.status_del == 1).Select(d => d.name).SingleOrDefault(); List <maintenance_repair_process_db> LIST_DB_REPAIR_PROCESS = _context.maintenance_repair_processes.Where(s => s.id_factory == LIST_DB_FACTORY[FACTORY].id && s.id_factory_line == LIST_DB_FACTORY_LINE[FACTORY_LINE].id && s.id_maintenance_system == LIST_DB_MAINTENANCE_SYSTEM[MAINTENANCE_SYSTEM].id && s.status_del == 1).Where(d => d.create_date >= startDate && d.create_date <= endDate).Where(d => _context.Fn_check_finish_approval(_context.maintenance_repair_processes .Where(t => t.id == d.id).Select(t => t.id_approval).SingleOrDefault()) == true).Select(s => s).ToList(); List <long> LIST_ID_REPAIR_PROCESS = LIST_DB_REPAIR_PROCESS.Select(s => s.id).ToList(); List <repair_device> LIST_DB_REPAIR_REPLACED_DEVICE = _context.maintenance_repair_replaced_devices.Where(d => LIST_ID_REPAIR_PROCESS.Contains(d.id_maintenance_repair_process)).Where(d => d.status_del == 1).Select(f => new repair_device { sys_unit_name = _context.sys_units.Where(t => t.id == f.id_unit).Select(d => d.name).SingleOrDefault(), sys_item_name = _context.sys_items.Where(t => t.id == f.id_item).Select(d => d.name).SingleOrDefault(), sys_item_specification_name = _context.sys_item_specifications.Where(t => t.id == f.id_specification).Select(d => d.name).SingleOrDefault(), sys_unit_main_name = _context.sys_units.Where(t => t.id == f.id_unit_main).Select(d => d.name).SingleOrDefault(), warehouse_position_name = _context.sys_warehouse_positions.Where(techpro => techpro.id == f.id_warehouse_position).Select(d => d.name).SingleOrDefault(), db = f, }).ToList(); for (int i = 0; i < LIST_DB_REPAIR_PROCESS.Count(); i++) { string MAINTENANCE_SYSTEM_DEVICE_NAME = _context.maintenance_system_devices.Where(s => s.id == LIST_DB_REPAIR_PROCESS[i].id_maintenance_system_device).Where(d => d.status_del == 1).Select(d => d.name).SingleOrDefault(); maintenance_repair_order_db DB_REPAIR_ORDER = _context.maintenance_repair_orders.Where(d => d.id == LIST_DB_REPAIR_PROCESS[i].id_mainteance_repair_order && d.status_del == 1).Select(s => s).SingleOrDefault(); List <repair_device> MATCHED_RECORD = LIST_DB_REPAIR_REPLACED_DEVICE.Where(d => d.db.id_maintenance_repair_process == LIST_DB_REPAIR_PROCESS[i].id).Select(s => s).ToList(); for (int j = 0; j < MATCHED_RECORD.Count(); j++) { result.Add(new maintenance_report_repair_item_model { maintenance_system_device_name = MAINTENANCE_SYSTEM_DEVICE_NAME, type_add_repair = DB_REPAIR_ORDER.type_add_repair, factory_line_name = FACTORY_LINE_NAME, factory_name = FACTORY_NAME, maintenance_repair_process_db = LIST_DB_REPAIR_PROCESS[i], maintenance_system_name = MAINTENANCE_SYSTEM_NAME, maintenance_repair_replaced_device_db = MATCHED_RECORD[j], }); } } } } } return(result); }
public maintenance_repair_order_model() { db = new maintenance_repair_order_db(); }