void EQP_DataCollectionComplete(SecsMessage msg) {
            Item tmpList = msg.SecsItem.Items[2].Items[0].Items[1];

            string carrier_slot_port = (string)tmpList.Items[1];
            int i = carrier_slot_port.IndexOf('.');
            string carrierId = carrier_slot_port.Substring(0, i);
            byte slotNo = Convert.ToByte(carrier_slot_port.Substring(i + 1, 2));
            char portNo = carrier_slot_port[carrier_slot_port.Length - 1];

            var processJob = GetProcessJob(carrierId, slotNo);
            var dc = new DataCollectionReport(processJob);
            var dcc = new DataCollectionCompleteReport(processJob);
            try {
                dc.AddLotData("PJL0", processJob.Id);
                dc.AddLotData("CJL0", carrierId);
                dc.AddLotData("SNL0", slotNo);
                dc.AddLotData("PIL0", Convert.ToByte(portNo));
                dc.AddLotData("RIL0", tmpList.Items[2]);
                dc.AddLotData("LTL0", (uint)tmpList.Items[3] / 100);
            } finally {
                EAP.Report(dc);
                EAP.Report(dcc);
            }
        }