public static object getDeviecSorByDevice(string type = "全部") { string fileneme = getDownloadFilename(); if (File.Exists(fileneme)) { EditTask task = null; try { task = Common.LoadFromXml(fileneme, typeof(EditTask)) as EditTask; IEnumerable <TaskDevice> filter; if (type == "全部" || type.ToUpper() == "ALL") { filter = task.Devices; } else { filter = task.Devices.Where(t => t.DeviceType == type); } if (filter.Count() == 0) { List <TaskDevice> nodevice = new List <TaskDevice>(); TaskDevice d = new TaskDevice(); d.Photo = Common.getImageByLocal("Err.png"); d.Company = "仪器列表为空"; d.DeviceType = "错误"; d.IsChecked = false; nodevice.Add(d); return(nodevice); } else { return(filter); } } catch { List <TaskDevice> nodevice = new List <TaskDevice>(); TaskDevice d = new TaskDevice(); d.Photo = Common.getImageByLocal("Err.png"); d.Company = "任务文件读取失败"; d.DeviceType = "错误"; d.IsChecked = false; nodevice.Add(d); return(nodevice); } } else { List <TaskDevice> nodevice = new List <TaskDevice>(); TaskDevice d = new TaskDevice(); d.Photo = Common.getImageByLocal("Err.png"); d.Company = "设备清单文件不存在"; d.DeviceType = "错误"; d.IsChecked = false; nodevice.Add(d); return(nodevice); } }
private List <TaskDevice> getDevice() { IEnumerable <TaskDevice> filter = (IEnumerable <TaskDevice>)Common.getDeviecSorByDevice(CurTask.Type); IEnumerable <TaskDevice> added = (IEnumerable <TaskDevice>)Common.getDeviecSorByTask(CurTask.Name); string lastname = Common.GetLastTaskName(CurTask.Name); string last2name = Common.GetLastTaskName(lastname); IEnumerable <TaskDevice> lastadded = (IEnumerable <TaskDevice>)Common.getDeviecSorByTask(lastname, CurTask.Type); IEnumerable <TaskDevice> last2added = (IEnumerable <TaskDevice>)Common.getDeviecSorByTask(last2name, CurTask.Type); List <TaskDevice> temp = new List <TaskDevice>(); if (filter.Count() != 0) { temp = filter.ToList(); var remain = temp.RemoveAll(t => added.Any(a => a.ID == t.ID) || lastadded.Any(a => a.ID == t.ID) || last2added.Any(a => a.ID == t.ID)); foreach (TaskDevice item in temp) { item.GroupBy = GROUP_BY_Remain; } } added = added.SkipWhile(t => string.IsNullOrEmpty(t.ID)); lastadded = lastadded.SkipWhile(t => string.IsNullOrEmpty(t.ID)); last2added = last2added.SkipWhile(t => string.IsNullOrEmpty(t.ID)); foreach (TaskDevice item in added) { item.GroupBy = GROUP_BY_Added; } temp.AddRange(added); foreach (TaskDevice item in lastadded) { item.IsChecked = false; item.GroupBy = GROUP_BY_PreTask + " " + lastname; } temp.AddRange(lastadded); foreach (TaskDevice item in last2added) { item.IsChecked = false; item.GroupBy = GROUP_BY_Earlier + " " + last2name; } temp.AddRange(last2added); if (temp.Count() == 0) { TaskDevice d = new TaskDevice(); d.Photo = Common.getImageByLocal("Err.png"); d.Company = "清单中没有符合条件的设备"; d.DeviceType = "错误"; d.IsChecked = false; temp.Add(d); } return(temp); }
/// <summary> /// 得到的扫描结果 通过设备资源获取仪器信息并更新设备资源的IsChecked属性 /// </summary> /// <param name="result"> 设备的id</param> private void SetResult(string result) { List <TaskDevice> selected = new List <TaskDevice>();//= DeviceSource.Where(t => t.ID == result).ToList(); DeviceSource.ForEach(t => { if (t.ID == result) { t.IsChecked = true; selected.Add(t); } }); if (selected.Count == 0) { TaskDevice d = new TaskDevice(); d.Photo = Common.getImageByLocal("unkown.png"); d.Company = "请下载最新的设备清单"; d.DeviceType = "未知设备"; d.IsChecked = false; selected.Add(d); } GridCtl2.DataSource = selected; GridCtl2.RefreshDataSource(); TabDeviceSelect.RefreshDataSource(); }
public static object getDeviecSorByTask(string taskname, string type = null) { string fileneme = string.Format("{0}\\{1}\\{1}.xml", Config.AppConfig.TaskRootPath, taskname);// + "\\" + _SelectedItem.Name +"\\"+_SelectedItem "" if (File.Exists(fileneme)) { EditTask task = null; try { task = Common.LoadFromXml(fileneme, typeof(EditTask)) as EditTask; if (string.IsNullOrEmpty(type) || task.Type == type) { if (task.Devices.Length == 0) { List <TaskDevice> nodevice = new List <TaskDevice>(); TaskDevice d = new TaskDevice(); d.Photo = Common.getImageByLocal("Err.png"); d.Company = "仪器列表为空"; d.DeviceType = "错误"; d.IsChecked = false; nodevice.Add(d); return(nodevice); } else { return(task.Devices); } } else { List <TaskDevice> nodevice = new List <TaskDevice>(); TaskDevice d = new TaskDevice(); d.Photo = Common.getImageByLocal("Err.png"); d.Company = "仪器类型不匹配"; d.DeviceType = "错误"; d.IsChecked = false; nodevice.Add(d); return(nodevice); } } catch { List <TaskDevice> nodevice = new List <TaskDevice>(); TaskDevice d = new TaskDevice(); d.Photo = Common.getImageByLocal("Err.png"); d.Company = "任务文件读取失败"; d.DeviceType = "错误"; d.IsChecked = false; nodevice.Add(d); return(nodevice); } } else { List <TaskDevice> nodevice = new List <TaskDevice>(); TaskDevice d = new TaskDevice(); d.Photo = Common.getImageByLocal("Err.png"); d.Company = "任务文件不存在"; d.DeviceType = "错误"; d.IsChecked = false; nodevice.Add(d); return(nodevice); } }
private bool tryDownload() { string filename = Common.getNextDownloadFilename(); int[] s = TviewFilter.GetCheckedRows(); List <TaskDevice> download = new List <TaskDevice>(); if (s != null) { EditTask output = new EditTask("download", "全部"); foreach (int i in s) { FilterItem suser = s.Length > 0 ? users[i] : null; List <QcJob> jobs = null; try { jobs = QcJob.GetMyJob(suser.Tag as QcUser); foreach (QcJob job in jobs) { QcTask task = QcTask.GetTaskByid(job["任务编号"]); foreach (QcCheckData data in QcCheckData.GetCheckData(job)) { QcDevice de = QcDevice.GetDeviceByUID(data["设备UID"]); TaskDevice tde = new TaskDevice(); tde.ID = data.Code;//利用数据guid进行唯一编号 tde.IsChecked = false; tde.JobCode = job.Code; tde.Producer = de["生产厂商"]; tde.Model = de["设备型号"]; tde.Company = task["委托单位"]; tde.DeviceNo = de["设备编号"]; tde.EliminateDate = job["作业计划完成时间"]; tde.DeviceType = de["设备类型"]; tde.Checker = suser.Name; download.Add(tde); } } } catch (Exception ex) { MessageBox.Show("下载数据错误" + ex.Message); return(false); } } try { output.Devices = download.ToArray(); string outpath = string.Format("{0}\\{1}\\{2}", Config.AppConfig.TaskRootPath, Config.AppConfig.DownloadDirName, filename); Common.SaveToXml(outpath, output); } catch (Exception ex) { MessageBox.Show("输出文件错误" + ex.Message); return(false); } return(true); } else { MessageBox.Show("请选择一个人员"); return(false); } }