/// <summary> /// 清除样本 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ButClearSample_Click(object sender, EventArgs e) { if (getOPID != null && !getOPID()) { MessageBoxDraw.ShowMsg("机器正在运行中,不能清除样本信息!", MsgType.OK); } else { try { int[] rows = this.gridView1.GetSelectedRows(); List <TaskInfo> lstTaskInfo = new List <TaskInfo>(); TaskInfo task; for (int i = 0; i < rows.Length; i++) { string samplelNum = this.gridView1.GetRowCellValue(rows[i], "样本编号").ToString(); if (samplelNum != "" && samplelNum != null) { task = new TaskInfo(); task.SampleNum = Convert.ToInt32(samplelNum); task.CreateDate = Convert.ToDateTime(this.gridView1.GetRowCellValue(rows[i], "样本申请时间")); lstTaskInfo.Add(task); } } if (lstTaskInfo.Count > 0) { string result = new WorkAreaApplyTask().DeleteTaskAndSampleInfo("DeleteTaskAndSampleInfo", lstTaskInfo); if (result.Substring(0, 1) == "1") { result = "选取样本信息清除成功!"; ComSampleNum_SelectedIndexChanged(null, null); } else if (result.Substring(0, 1) == "2") { result = result.Remove(0, 1) + ":样本信息清除成功!"; ComSampleNum_SelectedIndexChanged(null, null); } else { result = result.Remove(0, 1); } MessageBoxDraw.ShowMsg(result, MsgType.OK); } } catch (FormatException fx) { Console.WriteLine(fx.Message); } } }
/// <summary> /// 任务列表点击事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void lstvTask_Click(object sender, EventArgs e) { SimpleButCancel_Click(null, null); int selectedHandle; if (this.gridView1.GetSelectedRows().Count() > 0) { selectedHandle = this.gridView1.GetSelectedRows()[0]; int SampleNum = System.Convert.ToInt32(this.gridView1.GetRowCellValue(selectedHandle, "样本编号").ToString()); int PanelNum = System.Convert.ToInt32(this.gridView1.GetRowCellValue(selectedHandle, "盘号").ToString()); foreach (SampleInfo sampleInfo in lstSampleInfo) { if (sampleInfo.SampleNum == SampleNum && sampleInfo.PanelNum == PanelNum) { txtSampleNum.Text = sampleInfo.SampleNum.ToString(); combPanelNum.SelectedItem = sampleInfo.PanelNum.ToString(); combPosNum.SelectedItem = sampleInfo.SamplePos.ToString(); combSampleType.SelectedItem = sampleInfo.SampleType; combSampleContainer.SelectedItem = sampleInfo.SamContainer; chkEmergency.Checked = sampleInfo.IsEmergency; txtBarCode.Text = sampleInfo.Barcode; chkManuallyDilute.Checked = sampleInfo.IsOperateDilution; } } List <TaskInfo> lstTaskInfos = new WorkAreaApplyTask().QueryTaskInfoBySampleNum("QueryTaskInfoBySampleNum", SampleNum.ToString()); lstDiluteInfos.Clear(); List <string> lstProjects1 = new List <string>(); foreach (TaskInfo t in lstTaskInfos) { string[] strTaskInfo = new string[3]; strTaskInfo[0] = t.ProjectName; strTaskInfo[1] = t.SampleDilute; strTaskInfo[2] = t.DilutedRatio.ToString(); txtBoxDetectionNum.Text = t.InspectTimes.ToString(); lstDiluteInfos.Add(strTaskInfo); lstProjects1.Add(t.ProjectName); } projectPage1.SelectedProjects = lstProjects1; projectPage2.SelectedProjects = lstProjects1; projectPage3.SelectedProjects = lstProjects1; projectPage4.SelectedProjects = lstProjects1; } }
/// <summary> /// 盘符改变事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ComSampleNum_SelectedIndexChanged(object sender, EventArgs e) { List <TaskInfo> lstTaskInfos = new WorkAreaApplyTask().GetTaskInfo("GetTaskInfo", Convert.ToInt32(ComSampleNum.Text)); //this.Invoke(new EventHandler(delegate //{ dt.Rows.Clear(); for (int i = 1; i <= 120; i++) { TaskInfo task = lstTaskInfos.SingleOrDefault(s => s.SamplePos == i); if (task != null) { dt.Rows.Add(task.SampleNum, task.SamplePos, task.CreateDate.ToString("yyyy-MM-dd HH:mm:ss.fff"), task.Barcode, task.ProjectName); } else { dt.Rows.Add("", "", "", "", ""); } } this.gridControl1.DataSource = dt; //})); }
/// <summary> /// 批量录入的委托事件 /// </summary> /// <param name="intStartSamNum"></param> /// <param name="samAmount"></param> private void batchInput_DataTransferEvent(int intStartSamNum, int samAmount) { //批量录入给服务器传递参数的集合 object[] inputDictionary = new object[samAmount]; List <object> lstObjec = new List <object>(); List <int> lstSamNum = new List <int>(); List <int[]> lstPos = new List <int[]>(); foreach (SampleInfo s in lstSampleInfo) { lstSamNum.Add(s.SampleNum); lstPos.Add(new int[] { s.PanelNum, s.SamplePos }); } // 样本盘号 int panel = 0; for (int i = 0; i < samAmount; i++) { DateTime createTime = DateTime.Now; SampleInfo sampleInfo = new SampleInfo(); // 样本号 int samNum = 0; while (lstSamNum.Contains(intStartSamNum + i + samNum)) { samNum++; } sampleInfo.SampleNum = intStartSamNum + i + samNum; lstSamNum.Add(intStartSamNum + i + samNum); //样本位置 int pos = 0; bool b = true; while (b) { bool exist = false; foreach (int[] info in lstPos) { if (System.Convert.ToInt32(combPanelNum.SelectedItem.ToString()) + panel == info[0] && System.Convert.ToInt32(combPosNum.SelectedItem.ToString()) + pos == info[1]) { exist = true; } } if (exist) { if (System.Convert.ToInt32(combPosNum.SelectedItem.ToString()) + pos >= 120) { panel++; combPosNum.SelectedItem = "1"; pos = 0; lstPos.Clear(); } else { pos++; } } else { b = false; } } sampleInfo.PanelNum = System.Convert.ToInt32(combPanelNum.SelectedItem.ToString()) + panel; sampleInfo.SamplePos = System.Convert.ToInt32(combPosNum.SelectedItem.ToString()) + pos; lstPos.Add(new int[] { System.Convert.ToInt32(combPanelNum.SelectedItem.ToString()) + panel, System.Convert.ToInt32(combPosNum.SelectedItem.ToString()) + pos }); sampleInfo.SampleType = combSampleType.SelectedItem.ToString(); sampleInfo.SamContainer = combSampleContainer.SelectedItem.ToString(); sampleInfo.IsEmergency = chkEmergency.Checked; sampleInfo.Barcode = txtBarCode.Text; sampleInfo.IsOperateDilution = chkManuallyDilute.Checked; sampleInfo.CreateTime = createTime; sampleInfo.SampleState = 0; List <TaskInfo> lstTaskInfo = new List <TaskInfo>(); if (lstDiluteInfos.Count > 0) { foreach (string[] strDiluteInfo in lstDiluteInfos) { TaskInfo taskInfo = new TaskInfo(); taskInfo.SampleNum = sampleInfo.SampleNum; taskInfo.CreateDate = createTime; taskInfo.ProjectName = strDiluteInfo[0]; taskInfo.SampleDilute = strDiluteInfo[1]; if (taskInfo.SampleDilute == "自定义") { taskInfo.DilutedRatio = System.Convert.ToInt32(strDiluteInfo[2]); } else { taskInfo.DilutedRatio = 0; } taskInfo.InspectTimes = System.Convert.ToInt32(txtBoxDetectionNum.Text.Trim()); taskInfo.SendTimes = 0; taskInfo.FinishTimes = 0; taskInfo.TaskState = 0; lstTaskInfo.Add(taskInfo); } } else { List <string> lstSelectedProName = new List <string>(); lstSelectedProName.AddRange(projectPage1.GetSelectedProjects()); lstSelectedProName.AddRange(projectPage2.GetSelectedProjects()); lstSelectedProName.AddRange(projectPage3.GetSelectedProjects()); lstSelectedProName.AddRange(projectPage4.GetSelectedProjects()); foreach (string ProName in lstSelectedProName) { TaskInfo taskInfo = new TaskInfo(); taskInfo.SampleNum = sampleInfo.SampleNum; taskInfo.CreateDate = createTime; taskInfo.ProjectName = ProName; taskInfo.SampleType = sampleInfo.SampleType; taskInfo.SampleDilute = "常规体积"; taskInfo.DilutedRatio = 0; taskInfo.InspectTimes = System.Convert.ToInt32(txtBoxDetectionNum.Text.Trim()); taskInfo.SendTimes = 0; taskInfo.FinishTimes = 0; taskInfo.TaskState = 0; lstTaskInfo.Add(taskInfo); } } inputDictionary[i] = (new object[] { sampleInfo, lstTaskInfo }); } dic.Clear(); //添加批量录入的任务信息 WorkAreaApplyTask workAreaApplyTask = new WorkAreaApplyTask(); batchInput.LstReceiveInfo = workAreaApplyTask.BatchAddTask("AddTaskForBatch", inputDictionary); MessageBox.Show("批量录入执行完成!"); batchInput.Close(); }
/// <summary> /// 点击保存项目事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSave_Click(object sender, EventArgs e) { if (getopid != null) { if (!getopid()) { MessageBox.Show("当前任务正在测试,暂停后方可继续下任务!"); return; } } btnSave.Enabled = false; // 1.判断样本编号是否为空,判断样本编号是否已申请任务,判断样本编号是否大于2400 if (txtSampleNum.Text == "" || txtSampleNum.Text == null) { MessageBox.Show("样本号不能为空!"); btnSave.Enabled = true; return; } if (System.Convert.ToInt32(txtSampleNum.Text) > 2400) { MessageBox.Show("输入最大样本号不能大于2400!"); btnSave.Enabled = true; return; } foreach (SampleInfo s in lstSampleInfo) { if (s.SampleNum == System.Convert.ToInt32(txtSampleNum.Text)) { DialogResult dr = MessageBox.Show("此样本号已被申请任务,请修改样本号!"); btnSave.Enabled = true; if (dr == DialogResult.OK) { btnApply_Click(null, null); } return; } } // 2.判断盘号+位置是否已被申请任务 foreach (SampleInfo s in lstSampleInfo) { if (s.PanelNum == System.Convert.ToInt32(combPanelNum.SelectedItem.ToString()) && s.SamplePos == System.Convert.ToInt32(combPosNum.SelectedItem.ToString())) { MessageBox.Show(string.Format("{0}样本盘中的{1}号位置已被占用,请重新选择!", combPanelNum.SelectedItem.ToString(), combPosNum.SelectedItem.ToString())); btnSave.Enabled = true; return; } } // 4.检测项目不能为空 if (projectPage1.GetSelectedProjects().Count == 0 && projectPage2.GetSelectedProjects().Count == 0 && projectPage3.GetSelectedProjects().Count == 0 && projectPage4.GetSelectedProjects().Count == 0) { MessageBox.Show("申请常规任务中检测项目不能为空,请选择待检测项目!"); btnSave.Enabled = true; return; } DateTime createTime = DateTime.Now; SampleInfo sampleInfo = new SampleInfo(); sampleInfo.SampleNum = System.Convert.ToInt32(txtSampleNum.Text); sampleInfo.PanelNum = System.Convert.ToInt32(combPanelNum.SelectedItem.ToString()); sampleInfo.SamplePos = System.Convert.ToInt32(combPosNum.SelectedItem.ToString()); sampleInfo.SampleType = combSampleType.SelectedItem.ToString(); sampleInfo.SamContainer = combSampleContainer.SelectedItem.ToString(); sampleInfo.IsEmergency = chkEmergency.Checked; sampleInfo.Barcode = txtBarCode.Text; sampleInfo.IsOperateDilution = chkManuallyDilute.Checked; sampleInfo.CreateTime = createTime; sampleInfo.SampleState = 0; List <TaskInfo> lstTaskInfo = new List <TaskInfo>(); if (lstDiluteInfos.Count > 0) { foreach (string[] strDiluteInfo in lstDiluteInfos) { TaskInfo taskInfo = new TaskInfo(); taskInfo.SampleNum = sampleInfo.SampleNum; taskInfo.CreateDate = createTime; taskInfo.ProjectName = strDiluteInfo[0]; taskInfo.SampleType = combSampleType.SelectedItem.ToString(); taskInfo.SampleDilute = strDiluteInfo[1]; if (taskInfo.SampleDilute == "自定义") { taskInfo.DilutedRatio = System.Convert.ToInt32(strDiluteInfo[2]); } else { taskInfo.DilutedRatio = 0; } taskInfo.InspectTimes = System.Convert.ToInt32(txtBoxDetectionNum.Text.Trim()); taskInfo.SendTimes = 0; taskInfo.FinishTimes = 0; taskInfo.TaskState = 0; lstTaskInfo.Add(taskInfo); } } else { List <string> lstSelectedProName = new List <string>(); lstSelectedProName.AddRange(projectPage1.GetSelectedProjects()); lstSelectedProName.AddRange(projectPage2.GetSelectedProjects()); lstSelectedProName.AddRange(projectPage3.GetSelectedProjects()); lstSelectedProName.AddRange(projectPage4.GetSelectedProjects()); foreach (string ProName in lstSelectedProName) { TaskInfo taskInfo = new TaskInfo(); taskInfo.SampleNum = sampleInfo.SampleNum; taskInfo.CreateDate = createTime; taskInfo.ProjectName = ProName; taskInfo.SampleType = combSampleType.SelectedItem.ToString(); taskInfo.SampleDilute = "常规体积"; taskInfo.DilutedRatio = 0; taskInfo.InspectTimes = System.Convert.ToInt32(txtBoxDetectionNum.Text.Trim()); taskInfo.SendTimes = 0; taskInfo.FinishTimes = 0; taskInfo.TaskState = 0; lstTaskInfo.Add(taskInfo); } } string SaveIsSuccess = new WorkAreaApplyTask().AddTask("AddTask", sampleInfo, lstTaskInfo); if (SaveIsSuccess == "此样本任务已经存在,请重新录入!") { MessageBox.Show("此样本任务已经存在,请重新录入!"); btnSave.Enabled = true; return; } else { dic.Clear(); dic.Add("QueryApplyTaskLsvt", new object[] { "" }); ClientSendToServices(dic); } btnSave.Enabled = true; SimpleButCancel_Click(null, null); }