Пример #1
0
        /// <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;
                }
            }
            if (combPosition.SelectedItem.ToString() == "" || combPosition.SelectedItem.ToString() == "请选择" || combPosition.SelectedItem == null)
            {
                MessageBox.Show("请选择质控品!");
                return;
            }

            if (projectPage1.GetSelectedProjects().Count == 0 &&
                projectPage2.GetSelectedProjects().Count == 0 &&
                projectPage3.GetSelectedProjects().Count == 0)
            {
                MessageBox.Show("请选择质控项目!");
                return;
            }

            if (intMaxSamNum >= System.Convert.ToInt32(txtSumpleNum.Text.Substring(1)))
            {
                MessageBox.Show("此任务已存在,如需创建新任务,请点击申请按钮!");
                return;
            }


            List <QCTaskInfo> lstQCTaskInfos = new List <QCTaskInfo>();
            DateTime          dt             = DateTime.Now;

            foreach (string qcName in projectPage1.GetSelectedProjects())
            {
                QCTaskInfo qcTaskInfo = new QCTaskInfo();

                qcTaskInfo.SampleNum = txtSumpleNum.Text;

                qcTaskInfo.Position   = combPosition.SelectedItem.ToString();
                qcTaskInfo.SampleType = combSampleType.SelectedItem.ToString();

                qcTaskInfo.CreateDate   = dt;
                qcTaskInfo.ProjectName  = qcName;
                qcTaskInfo.InspectTimes = 1;

                lstQCTaskInfos.Add(qcTaskInfo);
            }
            foreach (string qcName in projectPage2.GetSelectedProjects())
            {
                QCTaskInfo qcTaskInfo = new QCTaskInfo();

                qcTaskInfo.SampleNum = txtSumpleNum.Text;

                qcTaskInfo.Position   = combPosition.SelectedItem.ToString();
                qcTaskInfo.SampleType = combSampleType.SelectedItem.ToString();

                qcTaskInfo.CreateDate   = dt;
                qcTaskInfo.ProjectName  = qcName;
                qcTaskInfo.InspectTimes = 1;

                lstQCTaskInfos.Add(qcTaskInfo);
            }
            foreach (string qcName in projectPage3.GetSelectedProjects())
            {
                QCTaskInfo qcTaskInfo = new QCTaskInfo();

                qcTaskInfo.SampleNum = txtSumpleNum.Text;

                qcTaskInfo.Position   = combPosition.SelectedItem.ToString();
                qcTaskInfo.SampleType = combSampleType.SelectedItem.ToString();

                qcTaskInfo.CreateDate   = dt;
                qcTaskInfo.ProjectName  = qcName;
                qcTaskInfo.InspectTimes = 1;

                lstQCTaskInfos.Add(qcTaskInfo);
            }
            qcTaskDictionary.Clear();
            qcTaskDictionary.Add("AddQCTask", new object[] { XmlUtility.Serializer(typeof(List <QCTaskInfo>), lstQCTaskInfos) });
            ClientSendToServices(qcTaskDictionary);
        }
Пример #2
0
        private void SaveABS(int WN, int PT, float PW, float SW)
        {
            //TimeCourseService timeCoursService = new TimeCourseService();
            myBatis.UpdateRealTimeState(WN, PT);
            RealTimeCUVDataInfo realTimeData = myBatis.QueryRealTimeCUVDataTC(WN);

            if (realTimeData == null)
            {
                return;
            }

            if (PT == RunConfigureUtility.BlankPoint)
            {
                //timeCoursService.UpdateBlkABSData(realTimeData.TC, PW, SW);
                myBatis.UpdateBlkABSData(realTimeData.TC, PW, SW);
            }
            else
            {
                //timeCoursService.UpdateABSData(realTimeData.TC, PT, PW, SW);
                myBatis.UpdateABSData(realTimeData.TC, PT, PW, SW);
                //SaveDataQueue(new string[] { realTimeData.TC.ToString(), PT.ToString(), PW.ToString(), SW.ToString() });
                //ProcessingQueueEvent(new string[] { realTimeData.TC.ToString(), PT.ToString(), PW.ToString(), SW.ToString() });
            }

            if (PT == RunConfigureUtility.LastPoint)
            {
                TaskInfo t = null;
                switch (realTimeData.WorkType)
                {
                case WORKTYPE.N:
                case WORKTYPE.E:
                    //2018、11、15 改成存储过程
                    //myBatis.UpdateSMPScheduleFinishCount(realTimeData.SmpNo, realTimeData.Assay, myBatis.GetSMPScheduleFinishCount(realTimeData.SmpNo, realTimeData.Assay) + 1);
                    myBatis.UpdateSMPScheduleFinishCount(realTimeData.SmpNo, realTimeData.Assay);
                    t = myBatis.GetSMPSchedule(realTimeData.SmpNo, realTimeData.Assay);
                    if (t != null && t.FinishTimes == t.InspectTimes)
                    {
                        //2018、11、15 改成使用存储过程
                        //myBatis.UpdateSampleStatePerform(t, TaskState.SUCC);
                        ////2018 9/4
                        ////myBatis.UpdteTaskState(t.SampleNum.ToString(), t.ProjectName);
                        //myBatis.UpdateTaskStatePerform(t, TaskState.SUCC);
                        myBatis.UpdateSampleInfoAndTaskInfo(t, TaskState.SUCC);
                    }
                    break;

                case WORKTYPE.B:
                case WORKTYPE.S:
                    CalibrationResultinfo calibResult = myBatis.QueryCalibResultInfo(realTimeData.Assay, realTimeData.SmpNo, realTimeData.TC);
                    myBatis.UpdateSDTScheduleFinishCount(calibResult.SampleNum, calibResult.ProjectName, calibResult.CalibratorName, calibResult.CalibrationDT,
                                                         myBatis.GetSDTScheduleFinishCount(calibResult.SampleNum, calibResult.ProjectName, calibResult.CalibratorName, calibResult.CalibrationDT) + 1);
                    CalibratorinfoTask s = myBatis.GetSDTSchedule(calibResult.ProjectName, calibResult.SampleNum, calibResult.CalibratorName, calibResult.CalibrationDT);
                    if (s != null && s.SendTimes == s.InspectTimes && s.SendTimes == s.FinishTimes)
                    {
                        //myBatis.ClearSDTSchedules(s.SampleNum, s.ProjectName);

                        myBatis.UpdateSDTResultState(s, TaskState.SUCC);
                    }
                    break;

                case WORKTYPE.C:
                    myBatis.UpdateQCScheduleFinishCount(realTimeData.SmpNo, realTimeData.Assay, myBatis.GetQCScheduleFinishCount(realTimeData.SmpNo, realTimeData.Assay) + 1);
                    QCTaskInfo c = myBatis.GetQCSchedule(realTimeData.SmpNo, realTimeData.Assay) as QCTaskInfo;
                    if (c != null && c.InspectTimes == c.SendTimes && c.SendTimes == c.FinishTimes)
                    {
                        myBatis.UpdateQCTaksState(c.SampleNum, c.ProjectName);
                    }
                    break;
                }

                myBatis.DeleteRealTimeCUVData(WN);
                RealTimeCalculate(realTimeData);
                //SaveDataQueue(realTimeData);
                //switch (realTimeData.WorkType)
                //{
                //    case WORKTYPE.N:
                //    case WORKTYPE.E:
                //        TaskInfo t = new TaskInfo();
                //        t = myBatis.GetSMPSchedule(realTimeData.SmpNo, realTimeData.Assay);
                //        if (t != null && t.FinishTimes == t.InspectTimes)
                //        {
                //            myBatis.UpdateSampleStatePerform(t, TaskState.SUCC);
                //            //2018 9/4
                //            //myBatis.UpdteTaskState(t.SampleNum.ToString(), t.ProjectName);
                //            myBatis.UpdateTaskStatePerform(t, TaskState.SUCC);
                //        }
                //        break;
                //    case WORKTYPE.B:
                //    case WORKTYPE.S:
                //        CalibrationResultinfo calibResult = myBatis.QueryCalibResultInfo(realTimeData.Assay, realTimeData.SmpNo, realTimeData.TC);
                //        CalibratorinfoTask s = myBatis.GetSDTSchedule(calibResult.ProjectName, calibResult.SampleNum, calibResult.CalibratorName, calibResult.CalibrationDT);
                //        if (s != null && s.SendTimes == s.InspectTimes && s.SendTimes == s.FinishTimes)
                //        {
                //            //myBatis.ClearSDTSchedules(s.SampleNum, s.ProjectName);

                //            myBatis.UpdateSDTResultState(s, TaskState.SUCC);
                //        }
                //        break;
                //    case WORKTYPE.C:
                //        QCTaskInfo c = myBatis.GetQCSchedule(realTimeData.SmpNo, realTimeData.Assay) as QCTaskInfo;
                //        //if (c != null && c.FinishTimes >= c.InspectTimes)
                //        //{
                //        //myBatis.ClearQCSchedules(c.SampleNum, c.ProjectName);
                //        //}
                //        if (c != null && c.InspectTimes == c.SendTimes && c.SendTimes == c.FinishTimes)
                //        {
                //            myBatis.UpdateQCTaksState(c.SampleNum, c.ProjectName);
                //        }
                //        break;
                //}
            }
        }