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); }
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); }
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!"); } } }
/// <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); }
/// <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); }
// 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); }
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()); }
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); }
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)); }
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); }
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()); }
/// <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()); } } } }
/// <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); }