示例#1
0
        private void AddMachineToLog(
            DateTime timeToSkip, IDictionary <int, PalletLocation> devices, MakinoDB.MachineResults m)
        {
            //find the location
            PalletLocation loc;

            if (devices.ContainsKey(m.DeviceID))
            {
                loc = devices[m.DeviceID];
            }
            else
            {
                loc = new PalletLocation(PalletLocationEnum.Buffer, "Unknown", 0);
            }

            if (loc.Location != PalletLocationEnum.Machine)
            {
                Log.Error("Creating machine cycle for device that is not a machine: " + loc.Location.ToString());
            }

            //count the number of parts
            int numParts = 0;

            foreach (var i in m.OperQuantities)
            {
                numParts += i;
            }
            if (numParts <= 0)
            {
                return;
            }

            //create the material
            var matList = FindOrCreateMaterial(m.PalletID, m.FixtureNumber, m.EndDateTimeUTC,
                                               m.OrderName, m.PartName, m.ProcessNum, numParts);

            var elapsed = m.EndDateTimeUTC.Subtract(m.StartDateTimeUTC);

            //check if the cycle already exists
            if (timeToSkip == m.EndDateTimeUTC &&
                _log.CycleExists(m.EndDateTimeUTC, m.PalletID.ToString(), LogType.MachineCycle, "MC", loc.Num))
            {
                return;
            }

            var extraData = new Dictionary <string, string>();

            if (matList.Count > 0)
            {
                var matID1 = matList[0].MaterialID;
                Log.Debug(
                    "Starting load of common values between the times of {start} and {end} on DeviceID {deviceID}." +
                    "These values will be attached to part {part} with serial {serial}",
                    m.StartDateTimeLocal, m.EndDateTimeLocal, m.DeviceID, m.PartName, Settings.ConvertMaterialIDToSerial(matID1));

                foreach (var v in _makinoDB.QueryCommonValues(m))
                {
                    Log.Debug("Common value with number {num} and value {val}", +v.Number, v.Value);
                    extraData[v.Number.ToString()] = v.Value;
                }
            }
            _log.RecordMachineEnd(
                mats: matList,
                pallet: m.PalletID.ToString(),
                statName: "MC",
                statNum: loc.Num,
                program: m.Program,
                result: "",
                timeUTC: m.EndDateTimeUTC,
                elapsed: elapsed,
                active: TimeSpan.FromSeconds(m.SpindleTimeSeconds),
                extraData: extraData);

            AddInspection(m, matList);
        }