Inheritance: MonoBehaviour
Exemplo n.º 1
0
        public List <QualityCheck> ToQualityRecord()
        {
            QualityCheckBatchAddForm batchAddForm = this;

            string[] productionIdList   = batchAddForm.ProductionId.Split(";", StringSplitOptions.RemoveEmptyEntries);
            string[] productionCodeList = batchAddForm.ProductionCode.Split(";", StringSplitOptions.RemoveEmptyEntries);
            string[] productionNameList = batchAddForm.ProductionName.Split(";", StringSplitOptions.RemoveEmptyEntries);

            List <QualityCheck> checkList = new List <QualityCheck>();

            for (int i = 0; i < productionIdList.Length; i++)
            {
                QualityCheck quality = new QualityCheck();
                quality.DefectId         = batchAddForm.DefectId;
                quality.DefectCode       = batchAddForm.DefectCode;
                quality.DefectName       = batchAddForm.DefectName;
                quality.ProductionId     = long.Parse(productionIdList[i]);
                quality.ProductionCode   = productionCodeList[i];
                quality.ProductionName   = productionNameList[i];
                quality.ShiftId          = batchAddForm.ShiftId;
                quality.TimeOfOriginWork = batchAddForm.TimeOfOriginWork;
                quality.TimeOfOrigin     = batchAddForm.TimeOfOriginWork;
                quality.Qty          = batchAddForm.Qty;
                quality.WorkshopId   = batchAddForm.WorkshopId;
                quality.WorkshopCode = batchAddForm.WorkshopCode;
                quality.WorkshopName = batchAddForm.WorkshopName;
                quality.WocgCode     = batchAddForm.WocgCode;
                quality.LocCode      = batchAddForm.LocCode;

                checkList.Add(quality);
            }

            return(checkList);
        }
Exemplo n.º 2
0
        public QualityCheck PostQualityCheck(ProductLocation product)
        {
            if (_db.QualityChecks.Any(d => d.EndDate == null))
            {
                return(null);
            }

            // get correct object from database by id
            ProductLocation pr = _db.Locations.Find(product.Id);

            // initiate quality check object
            QualityCheck qualitycheck = new QualityCheck();

            qualitycheck.StartDate       = DateTime.Now;
            qualitycheck.ProductLocation = pr;
            qualitycheck.EndDate         = null;
            _db.QualityChecks.Add(qualitycheck);
            _db.SaveChanges();

            // create commands for quality check
            DroneCommandProcessor commands = createCommands(qualitycheck);

            // Execute quality check
            commands.Execute();

            return(qualitycheck);
        }
Exemplo n.º 3
0
        private void addVehicleToGarage(string io_LicensePlate)
        {
            string  ownerName;
            string  ownerPhone;
            Vehicle newVehicle;

            if (m_Garage.IsVehicleExists(io_LicensePlate))
            {
                Console.WriteLine("Vehcile is allready listed in the garage!");
                Console.WriteLine("Changing the vehicle status to 'In Repair'...");
                m_Garage.ChangeStatus(io_LicensePlate, GarageLogic.VehicleTicket.eVehicleStatus.InRepair);
            }
            else
            {
                try
                {
                    Console.WriteLine("Owner name:");
                    ownerName = Console.ReadLine();
                    QualityCheck.IsStringContainOnlyChars(ownerName);
                    Console.WriteLine("Owner phone number:");
                    ownerPhone = Console.ReadLine();
                    QualityCheck.IsPhoneNumberValid(ownerPhone);
                    newVehicle = getNewVehicle(io_LicensePlate);
                    m_Garage.AddVehicleTicket(ownerName, ownerPhone, newVehicle);
                    Console.WriteLine("Vehicle was added successfully");
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    Console.WriteLine("Vehicle was not added!");
                }
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// 获取质检信息集合
        /// </summary>
        /// <param name="workOrderId">工单id</param>
        /// <returns></returns>
        public List <QualityCheck> GetQualityChecks(string workOrderId)
        {
            //参数验证
            if (string.IsNullOrEmpty(workOrderId))
            {
                ErrorMsg = ErrorCode.ParameterNull;
                return(null);
            }
            List <QualityCheck> qualityCheckList       = null;
            List <DataEntity>   qualityCheckEntityList = _workOrderProvider.GetQualityChecks(workOrderId);

            if (qualityCheckEntityList != null && qualityCheckEntityList.Count > 0)
            {
                qualityCheckList = new List <QualityCheck>();
                foreach (DataEntity qualityCheckEntity in qualityCheckEntityList)
                {
                    QualityCheck qualityCheck = new QualityCheck();
                    qualityCheck.ID            = qualityCheckEntity["ID"].Value.ToString();
                    qualityCheck.WorkOrderID   = qualityCheckEntity["WorkOrderID"].Value.ToString();
                    qualityCheck.WorkProcessID = qualityCheckEntity["WorkProcessID"].Value.ToString();
                    qualityCheck.IsQualified   = (bool)qualityCheckEntity["IsQualified"].Value;
                    qualityCheck.CreateTime    = qualityCheckEntity["CreateTime"].Value.ToString();
                    qualityCheck.OperatorID    = qualityCheckEntity["OperatorID"].Value.ToString();
                    qualityCheck.OperatorName  = qualityCheckEntity["OperatorName"].Value.ToString();
                    qualityCheck.Remark        = qualityCheckEntity["Remark"].Value.ToString();

                    qualityCheckList.Add(qualityCheck);
                }
            }

            return(qualityCheckList);
        }
Exemplo n.º 5
0
        /// <summary>
        /// 获取质检信息
        /// </summary>
        /// <param name="workProcessId">工单处理流程id</param>
        /// <returns></returns>
        public QualityCheck GetQualityCheck(string workProcessId)
        {
            //参数验证
            if (string.IsNullOrEmpty(workProcessId))
            {
                ErrorMsg = ErrorCode.ParameterNull;
                return(null);
            }

            QualityCheck qualityCheck       = null;
            DataEntity   qualityCheckEntity = _workOrderProvider.GetQualityCheck(workProcessId);

            if (qualityCheckEntity != null)
            {
                qualityCheck               = new QualityCheck();
                qualityCheck.ID            = qualityCheckEntity["ID"].Value.ToString();
                qualityCheck.WorkOrderID   = qualityCheckEntity["WorkOrderID"].Value.ToString();
                qualityCheck.WorkProcessID = qualityCheckEntity["WorkProcessID"].Value.ToString();
                qualityCheck.IsQualified   = (bool)qualityCheckEntity["IsQualified"].Value;
                qualityCheck.CreateTime    = qualityCheckEntity["CreateTime"].Value.ToString();
                qualityCheck.OperatorID    = qualityCheckEntity["OperatorID"].Value.ToString();
                qualityCheck.OperatorName  = qualityCheckEntity["OperatorName"].Value.ToString();
                qualityCheck.Remark        = qualityCheckEntity["Remark"].Value.ToString();
            }

            return(qualityCheck);
        }
Exemplo n.º 6
0
        // Method to create commands for the drone to execute
        private DroneCommandProcessor createCommands(QualityCheck qc)
        {
            // Get productLocation to take picture from
            ProductLocation pl = qc.ProductLocation;

            // Initiate CommandProcessor
            _droneCommandProcessor = new DroneCommandProcessor();

            // Get Graph datastructure in pathfinder generated from selected warehouse
            IPathfinderFactory pathfinderFactory = new PathfinderFactory();
            Pathfinder         pathfinder        = pathfinderFactory.GetPathfinderFromWarehouse(pl.District.Warehouse);

            // Initiate start position (start position is drone start location)
            Position startNode = new Position(pl.District.Warehouse.StartNode.X, pl.District.Warehouse.StartNode.Y);

            // Get path to take from startposition to nearest graphnode for the Productlocation by using dijkstra algoritm
            LinkedList <Position> path = pathfinder.GetPath(startNode, this.giveEndPosition(pl));

            // save path to qualitycheck for webpage view
            List <Position> path2 = pathfinder.GetPathList(startNode, this.giveEndPosition(pl));
            var             s     = JsonConvert.SerializeObject(path2, Formatting.Indented,
                                                                new JsonSerializerSettings
            {
                ReferenceLoopHandling = ReferenceLoopHandling.Ignore
            });

            qc.JSONPath         = s;
            _db.Entry(qc).State = EntityState.Modified;
            _db.SaveChanges();

            // add start / takeoff command to the droneCommandProcessor
            _droneCommandProcessor.AddCommand(new Command {
                name = "Start"
            });

            // add commands to the droneCommandProcessor from path, this generates the commands needed to move to the nearest graphnode to the productlocation
            IMovementCommandFactory mFactory = new MovementCommandFactory();

            _droneCommandProcessor.AddListCommand(mFactory.GetMovementCommands(path));

            // add commands to move from the nearest graphnode to the position in front of the productlocation
            IDistrictCommandFactory dFactory = new DistrictCommandFactory();

            _droneCommandProcessor.AddListCommand(dFactory.GetCommands(giveEndPosition(pl), pl));

            // add command to take picture, this also needs the current quality check id, needed for saving the pictures to the correct location
            _droneCommandProcessor.AddCommand(new Command {
                name = "TakePicture", value = qc.Id
            });

            // add command to land the drone
            _droneCommandProcessor.AddCommand(new Command {
                name = "Land"
            });

            return(_droneCommandProcessor);
        }
Exemplo n.º 7
0
        public string GetQualityCheckID()
        {
            // get current active quality check, return null when not found
            QualityCheck q = _db.QualityChecks.Where(d => d.EndDate == null).FirstOrDefault();

            if (q == null)
            {
                return("null");
            }

            // return qualitycheck id
            return(q.Id.ToString());
        }
Exemplo n.º 8
0
        private string getLicensePlate()
        {
            bool   isLicensePlateValid = false;
            string licensePlate;

            do
            {
                Console.WriteLine("Please insert license plate:");
                licensePlate = Console.ReadLine();
                QualityCheck.IsFullLicensePlateValid(licensePlate, ref isLicensePlateValid);
            }while (!isLicensePlateValid);

            return(licensePlate);
        }
Exemplo n.º 9
0
        public HttpResponseMessage EditQualityCheck()
        {
            // Check if the model binding was successful and is in a valid state
            if (!ModelState.IsValid)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, string.Empty));
            }
            try
            {
                // Check if the file service is valid
                Check.IsNotNull(this.qcService, "qcService");

                if (HttpContext.Current.Request["qcRuleModel"] != null)
                {
                    var qcModelString = HttpContext.Current.Request["qcRuleModel"];

                    if (qcModelString != null)
                    {
                        QualityCheck qualityCheck = Helper.DeSerializeObject <QualityCheck>(qcModelString.DecodeFrom64(), "qcRuleModel");
                        bool         result       = this.qcService.AddUpdateQualityCheck(qualityCheck);
                        return(Request.CreateResponse <bool>(status, result));
                    }
                }
            }
            catch (ArgumentNullException ane)
            {
                if (ane.ParamName.Equals("qcService"))
                {
                    message = MessageStrings.QC_Service_Is_Null;
                    status  = HttpStatusCode.InternalServerError;
                }
                else
                {
                    message = ane.Message;
                    status  = HttpStatusCode.BadRequest;
                }
            }
            catch (Exception ex)
            {
                message = ex.Message + ex.StackTrace + ex.GetType().ToString();
                if (null != ex.InnerException)
                {
                    message += ex.InnerException.Message + ex.InnerException.StackTrace + ex.InnerException.GetType().ToString();
                }
                status = HttpStatusCode.InternalServerError;
            }
            return(Request.CreateErrorResponse(status, message));
        }
Exemplo n.º 10
0
        public string GetQualityCheck()
        {
            // get current active quality check, return null when not found
            QualityCheck q = _db.QualityChecks.Where(d => d.EndDate == null).FirstOrDefault();

            if (q == null)
            {
                return("null");
            }

            // convert qualitycheck to JSON object string, to prevent Reference loop errors.
            var s = JsonConvert.SerializeObject(q, Formatting.Indented,
                                                new JsonSerializerSettings
            {
                ReferenceLoopHandling = ReferenceLoopHandling.Ignore
            });

            return(s);
        }
Exemplo n.º 11
0
        public IHttpActionResult PutQualityCheck(QualityCheck qualitycheck)
        {
            // return error when qualitycheck is empty
            if (qualitycheck == null)
            {
                return(InternalServerError());
            }

            // getcorrect object from database by id
            QualityCheck ck = _db.QualityChecks.Find(qualitycheck.Id);

            // return error when qualitycheck does not excist
            if (ck == null)
            {
                return(InternalServerError());
            }

            // update status for qualitycheck
            if (qualitycheck.Status != null)
            {
                ck.Status = qualitycheck.Status;
                if (qualitycheck.Status.Equals("Done"))
                {
                    ck.EndDate = DateTime.Now;
                }
            }

            // update picture folder for qualitycheck
            if (qualitycheck.PictureFolderUrl != null)
            {
                ck.PictureFolderUrl = qualitycheck.PictureFolderUrl;
            }

            _db.Entry(ck).State = EntityState.Modified;
            _db.SaveChanges();

            return(Ok());
        }
Exemplo n.º 12
0
        /// <summary>
        /// Processes data for list of defects and saves to database
        /// </summary>
        private void SQLDefectMaker(String specialID, QualityCheck thisCheck)
        {
            String output = "INSERT INTO QualityCheckDefects(SpecialCheck,Scratches,Dents,Sharps,LooseCups,Discoloration,Rust,CoatingPeel,Delamination,UnevenBottom,OpenCurl,Wrinkles,Cracks)";

            output += " VALUES (" + specialID;
            foreach (bool check in thisCheck.defectList)
            {
                if (check)
                {
                    output += ",1";
                }
                else
                {
                    output += ",0";
                }
            }
            output += ");";
            using (conn = new SqlConnection(@"Data Source=DESKTOP-10DBF13\SQLEXPRESS;Initial Catalog=QualityControl;Integrated Security=SSPI"))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = output;
                    try
                    {
                        using (SqlDataReader reader = cmd.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                            }
                        }
                    }
                    catch (Exception e) { LogError(e.ToString()); }
                }
            }
        }
Exemplo n.º 13
0
        /// <summary>
        /// Makes SQL string for add check to database.
        /// </summary>
        private String sqlMaker(QualityCheck thisCheck, String dater)
        {
            String output = "";

            output += "INSERT INTO QualityCheck(CheckDate, CheckTime, CheckNo, CheckShift, PartNumber, SampleMatch, " +
                      "PackageMatch, LidMatch, DefectCheck, LineNumber, QAInitials, DSInitials,SupInitials, QAPath, DSPath,SupPath, Notes, SpecialCheck) " +
                      "VALUES('" + dater + "','";
            int checkNo = thisCheck.checkNumber;

            if (thisCheck.date.Date.ToString("HH:mm:ss") == "00:00:00" && (RealShiftBox.SelectedIndex == 0))
            {
                String thisTime = "07:15:00";
                if (checkNo == 1)
                {
                    thisTime = "08:00:00";
                }
                else if (checkNo == 2)
                {
                    thisTime = "9:20:00";
                }
                else if (checkNo == 3)
                {
                    thisTime = "10:00:00";
                }
                else if (checkNo == 4)
                {
                    thisTime = "11:00:00";
                }
                else if (checkNo == 5)
                {
                    thisTime = "12:10:00";
                }
                else if (checkNo == 6)
                {
                    thisTime = "13:00:00";
                }
                else if (checkNo == 7)
                {
                    thisTime = "14:10:00";
                }
                else if (checkNo == 8)
                {
                    thisTime = "15:00:00";
                }
            }
            output += DateTimeOffset.Now.ToString("HH:mm:ss") + "',";
            output += checkNo.ToString() + ",";
            output += RealShiftBox.SelectedIndex.ToString() + ",'" + thisCheck.partName + "',";
            if (thisCheck.sampleMatch)
            {
                output += "1,";
            }
            else
            {
                output += "0,";
            }
            if (thisCheck.boxMatch)
            {
                output += "1,";
            }
            else
            {
                output += "0,";
            }
            if (thisCheck.lidMatch)
            {
                output += "1,";
            }
            else
            {
                output += "0,";
            }
            if (thisCheck.defects)
            {
                output += "1,";
            }
            else
            {
                output += "0,";
            }                                                                   ///ADD DEFECT DATABASE HERE
            int lineInd = (thisCheck.lineName);

            output += lineInd.ToString() + ",'";
            output += thisCheck.initals[0] + "','" + thisCheck.initals[1] + "','" + thisCheck.initals[2] + "','";
            output += thisCheck.sigPath[0] + "','" + thisCheck.sigPath[1] + "','" + thisCheck.sigPath[2] + "','";
            try { output += thisCheck.notes + "','"; } catch { }
            output += dater + "-" + RealShiftBox.SelectedIndex.ToString() + "-" + checkNo + "-" + (thisCheck.lineName).ToString();
            output += "'); ";
            String specialID = "'" + dater + "-" + RealShiftBox.SelectedIndex.ToString() + "-" + checkNo + "-" + (thisCheck.lineName).ToString() + "'";

            SQLDefectMaker(specialID, thisCheck);
            return(output);
        }