private void getAllList() { indicatorList = IndicatorCache.getCache(); classList = CodeCache.getClass(); detectionList = CodeCache.getDetection(); subDetectionList = CodeCache.getSubDetection(); }
/// <summary> /// 从缓存层获取指标 /// </summary> private void getIndicator() { indicatorList = IndicatorCache.getCache(); classList = CodeCache.getClass(); detectionList = CodeCache.getDetection(); subDetectionList = CodeCache.getSubDetection(); indicatorModels = (from indicator in indicatorList from classType in classList from detection in detectionList from subDetection in subDetectionList where indicator.classId == classType.id && indicator.detectionId == detection.id && indicator.subDetectionId == subDetection.id select new IndicatorModel() { indicatorId = indicator.id, classId = indicator.classId, className = classType.codeName, detectionId = indicator.detectionId, detectionName = detection.codeName, subDetectionId = indicator.subDetectionId, subDetectionName = subDetection.codeName, indicatorName = indicator.indicatorName, indicatorDesc = indicator.indicatorDesc, indicatorInstr = indicator.indicatorInstr, isObsolete = indicator.isObsolete == 1 ? "已废弃" : "生效中" }).ToList(); pagingPanel.setDetail(indicatorModels.Count); dgv_indicator.DataSource = indicatorModels.Skip(pageSize * (pageNum - 1)).Take(pageSize).ToList(); }
/// <summary> /// 双击事件:双击附件时打开附件内容;双击指标项时显示指标细节 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dgv_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) { if (e.ColumnIndex >= 0) { if (dgv.Columns[e.ColumnIndex].Name == "attachmentCount") { if (dgv.Rows[e.RowIndex].Cells["attachment"].Value != null) { if (dgv.Rows[e.RowIndex].Cells["attachment"].Value.ToString() != string.Empty || dgv.Rows[e.RowIndex].Cells["supplement"].Value.ToString() != string.Empty) { #region 过时代码 ////只有单个附件,直接打开 //if (dgv.Rows[e.RowIndex].Cells["attachmentCount"].Value.ToString().Replace("(补)", "") == "1个") //{ // string remoteFilePath = dgv.Rows[e.RowIndex].Cells["attachment"].Value.ToString(); // string localFilePath = Application.StartupPath + @"\temp" + remoteFilePath.Replace("/", @"\"); // string localFileFolder = Path.GetDirectoryName(localFilePath);//获取待下载文件的下载后目录,如不存在目录则先创建 // if (!Directory.Exists(localFileFolder)) // { // Directory.CreateDirectory(localFileFolder); // } // FtpProcessForm fpf = new FtpProcessForm(localFilePath, remoteFilePath, false); // var downloadState = fpf.ShowDialog(); // if (downloadState == DialogResult.OK) // { // System.Diagnostics.Process.Start("explorer.exe", localFilePath);//打开下载的文件 // } // else // { // MessageBoxEx.Show("下载附件失败"); // } //} //else//多个附件,打开附件列表窗体 //{ // string remoteFilePath = dgv.Rows[e.RowIndex].Cells["attachment"].Value.ToString(); // FtpListForm flf = new FtpListForm(remoteFilePath); // flf.ShowDialog(); //} #endregion //附件和补漏报合并显示,所以附件无论单个还是多个,都要打开附件列表 string remoteFilePath = dgv.Rows[e.RowIndex].Cells["attachment"].Value.ToString(); string supplementJsonString = dgv.Rows[e.RowIndex].Cells["supplement"].Value.ToString(); FtpListForm flf = new FtpListForm(remoteFilePath, supplementJsonString); flf.ShowDialog(); } } } if (dgv.Columns[e.ColumnIndex].Name == "indicatorInstr" || dgv.Columns[e.ColumnIndex].Name == "indicatorDesc" || dgv.Columns[e.ColumnIndex].Name == "indicatorName") { IndicatorEdit ie = new AviationSafetyExperiment.IndicatorEdit(_readOnly: true); var indicatorIdValue = dgv.Rows[e.RowIndex].Cells["indicatorId"].Value.ToString(); int indicatorId; if (int.TryParse(indicatorIdValue, out indicatorId)) { ie.indicator = IndicatorCache.getCache().FirstOrDefault(i => i.id == indicatorId); ie.Show(this); } } } }
/// <summary> /// 保存/编辑 指标至数据库 /// </summary> private void saveIndicator() { if (indicator == null) { indicator = new Tb_indicator(); } setIndicator(); IndicatorCache.addCache(indicator); }
private Dictionary <string, IndicatorCache> LoadIndicatorCacheList(string indicatorIdentityCodes) { string[] indicatorIdentities = indicatorIdentityCodes.Split(new string[] { Environment.NewLine }, StringSplitOptions.None); Dictionary <string, IndicatorCache> cacheList = new Dictionary <string, IndicatorCache>(); foreach (string indicatorIdentity in indicatorIdentities) { IndicatorCache indicatorCache = new IndicatorCache(indicatorIdentity, barType, cacheId); cacheList.Add(indicatorIdentity, indicatorCache); } return(cacheList); }
public List <TaskResultModel> getData(int step, int round) { var taskIndicatorMapList = TaskIndicatorMapCache.getCache().Where(i => i.taskId == taskId).ToList(); var indicatorList = IndicatorCache.getCache(); var brandList = CodeCache.getBrand(); var modelList = CodeCache.getModel(); var taskModelList = TaskModelMapCache.getCache(); taskResultMapList = TaskResultCache.getCache().Where(t => t.taskId == taskId && t.taskRound == taskRound).ToList(); if (round == 1) { //todo ***************确定后将下列ToList都去掉****************** var brand_model_list = (from brand in brandList from model in modelList where brand.id == model.parentId select new { modelId = model.id, modelName = model.codeName, brandId = brand.id, brandName = brand.codeName }).ToList(); var task_model_indicator_list = (from taskIndicator in taskIndicatorMapList from taskModel in taskModelList from bm in brand_model_list where taskIndicator.taskId == taskId && taskModel.taskId == taskId && taskModel.ModelId == bm.modelId select new { taskIndicator, bm.brandId, bm.brandName, bm.modelId, bm.modelName }).ToList(); var list_indicator = (from indicator in task_model_indicator_list join result in taskResultMapList.Where(r => r.taskStep == step && r.taskRound == round) on new { indicator.taskIndicator.indicatorId, indicator.modelId } equals new { result.indicatorId, result.modelId } into temp from tt in temp.DefaultIfEmpty() select new { indicator, taskRecord = tt == null ? "" : tt.taskRecord, taskResult = tt == null ? 0 : tt.taskResult, taskRemark = tt == null ? "" : tt.taskRemark, attachment = tt == null ? "" : tt.attachment, taskExecutor = tt == null ? "" : tt.taskExecutor, taskDateTime = tt == null ? "" : tt.taskDateTime.ToString(), taskStep = tt == null ? 0 : tt.taskStep, modelId = tt == null ? 0 : tt.modelId, taskResultId = tt == null ? 0 : tt.id, supplement = tt == null ? "" : tt.supplement }).ToList(); allResultModelList = (from temp in list_indicator from indicator in indicatorList where temp.indicator.taskIndicator.indicatorId == indicator.id select new TaskResultModel { indicatorId = indicator.id, indicatorName = indicator.indicatorName, indicatorDesc = indicator.indicatorDesc, indicatorInstr = indicator.indicatorInstr, taskDateTime = temp.taskDateTime, taskStep = temp.taskStep, taskExecutor = temp.taskExecutor, taskRecord = temp.taskRecord, taskRemark = temp.taskRemark, attachment = temp.attachment, attachmentCount = (temp.attachment == string.Empty ? "" : temp.attachment.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries).Count() + "个") + (temp.supplement == "" ? "" : "(补)"), taskResult = temp.taskResult, modelId = temp.indicator.modelId, modelName = temp.indicator.modelName, brandId = temp.indicator.brandId, brandName = temp.indicator.brandName, taskResultId = temp.taskResultId, supplement = temp.supplement, isFillFinish = (temp.taskResult == 0 && temp.taskRecord == "") ? 0 : 1, isHaveModi = ((temp.taskResult != 0 || temp.taskRecord != "" || temp.taskRemark != "" || temp.attachment != "" || temp.supplement != "") ? 1:0) }).ToList(); } else { var initStepList = TaskResultCache.getCache().Where(r => r.taskId == taskId && r.taskRound == taskRound && r.taskResult == 0 && r.taskStep == 1).ToList(); var a = (from initStep in initStepList join result in TaskResultCache.getCache().Where(r => r.taskId == taskId && r.taskRound == taskRound && r.taskStep == step).ToList() on new { initStep.modelId, initStep.indicatorId } equals new { result.modelId, result.indicatorId } into temp from tt in temp.DefaultIfEmpty() select new Tb_taskResult { id = initStep.id, taskRecord = (tt == null?"": tt.taskRecord), attachment = (tt == null ?"":tt.attachment), taskResult = (tt == null?0:tt.taskResult), taskId = initStep.taskId, taskStep = step, taskRound = round, taskExecutor = initStep.taskExecutor, taskDateTime = tt == null? DateTime.Now: tt.taskDateTime, modelId = initStep.modelId, indicatorId = initStep.indicatorId, taskRemark = (tt == null ? "" : tt.taskRemark), supplement = (tt == null ? "" : tt.supplement), }).ToList(); allResultModelList = (from resultList in a from indicator in indicatorList from brand in brandList from model in modelList where resultList.modelId == model.id && model.parentId == brand.id && resultList.indicatorId == indicator.id && resultList.taskId == taskId && resultList.taskRound == round && resultList.taskStep == step select new TaskResultModel { indicatorId = resultList.indicatorId, indicatorName = indicator.indicatorName, indicatorDesc = indicator.indicatorDesc, indicatorInstr = indicator.indicatorInstr, brandId = brand.id, brandName = brand.codeName, modelId = model.id, modelName = model.codeName, taskStep = resultList.taskStep, taskExecutor = resultList.taskExecutor, taskDateTime = resultList.taskDateTime.ToString(), taskRecord = resultList.taskRecord, taskResult = resultList.taskResult, taskResultId = resultList.id, taskRemark = resultList.taskRemark, attachment = resultList.attachment, attachmentCount = (resultList.attachment == string.Empty ? "" : resultList.attachment.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries).Count() + "个") + (resultList.supplement == "" ? "" : "(补)"), supplement = resultList.supplement, isFillFinish = (resultList.taskResult == 0 && resultList.taskRecord == "") ? 0 : 1, isHaveModi = ((resultList.taskResult != 0 || resultList.taskRecord != "" || resultList.taskRemark != "" || resultList.attachment != "" || resultList.supplement != "") ? 1 : 0) }).ToList(); } pagingPanel.setDetail(allResultModelList.Count); return(allResultModelList.Skip(pageSize * (pageNum - 1)).Take(pageSize).ToList()); }
public void maxRoundInit(int taskInfoId, bool readOnly = false, int taskRound = 1) { taskId = taskInfoId; this.taskRound = taskRound; taskResultMapList = TaskResultCache.getCache().Where(t => t.taskId == taskId && t.taskRound == taskRound && t.taskStep == 1).ToList(); List <Tb_taskResult> allResult = TaskResultCache.getCache().Where(t => t.taskId == taskId && t.taskRound == taskRound).ToList(); maxResultStep = 0; try { maxResultStep = allResult.Max(x => x.taskStep); currentResultStep = maxResultStep; } catch (Exception ex) { } var result = (from resultList in taskResultMapList join resultAll in TaskResultCache.getCache().Where(r => r.taskId == taskInfoId && r.taskStep == maxResultStep && r.taskRound == taskRound) on new { resultList.indicatorId, resultList.modelId } equals new { resultAll.indicatorId, resultAll.modelId } into temp from tt in temp.DefaultIfEmpty() select new { attachment = tt == null? resultList.attachment: tt.attachment, resultList.id, resultList.indicatorId, resultList.modelId, supplement = tt == null? resultList.supplement: tt.supplement, taskDateTime = tt == null? resultList.taskDateTime: tt.taskDateTime, resultList.taskExecutor, resultList.taskId, taskRecord = tt == null? resultList.taskRecord: tt.taskRecord, taskRemark = tt == null? resultList.taskRemark: tt.taskRemark, taskResult = tt == null? resultList.taskResult: tt.taskResult, taskRound = taskRound, taskStep = maxResultStep //resultList.taskRecord = tt.taskRecord }).ToList(); var indicatorList = IndicatorCache.getCache(); var brandList = CodeCache.getBrand(); var modelList = CodeCache.getModel(); allResultModelList = (from resultList in result from indicator in indicatorList from brand in brandList from model in modelList where resultList.modelId == model.id && model.parentId == brand.id && resultList.indicatorId == indicator.id select new TaskResultModel { indicatorId = resultList.indicatorId, indicatorName = indicator.indicatorName, indicatorDesc = indicator.indicatorDesc, indicatorInstr = indicator.indicatorInstr, brandId = brand.id, brandName = brand.codeName, modelId = model.id, modelName = model.codeName, taskStep = resultList.taskStep, taskExecutor = resultList.taskExecutor, taskDateTime = resultList.taskDateTime.ToString(), taskRecord = resultList.taskRecord, taskResult = resultList.taskResult, taskResultId = resultList.id, taskRemark = resultList.taskRemark, attachment = resultList.attachment, attachmentCount = (resultList.attachment == string.Empty ? "" : resultList.attachment.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries).Count() + "个") + (resultList.supplement == "" ? "" : "(补)"), supplement = resultList.supplement, isFillFinish = (resultList.taskResult == 0 && resultList.taskRecord == "") ? 0 : 1, isHaveModi = ((resultList.taskResult != 0 || resultList.taskRecord != "" || resultList.taskRemark != "" || resultList.attachment != "" || resultList.supplement != "") ? 1 : 0) }).ToList(); dgv.DataSource = null; pagingPanel.setDetail(allResultModelList.Count); //return allResultModelList.Skip(pageSize * (pageNum - 1)).Take(pageSize).ToList(); dgv.DataSource = allResultModelList.Skip(pageSize * (pageNum - 1)).Take(pageSize).ToList(); setReadOnly(readOnly); }
private List <TaskResultModel> GetReportInfo(int step, int round) { var taskIndicatorMapList = TaskIndicatorMapCache.getCache().Where(i => i.taskId == taskInfoId).ToList(); var indicatorList = IndicatorCache.getCache(); var brandList = CodeCache.getBrand(); var modelList = CodeCache.getModel(); var taskModelList = TaskModelMapCache.getCache(); var brand_model_list = (from brand in brandList from model in modelList where brand.id == model.parentId select new { modelId = model.id, modelName = model.codeName, brandId = brand.id, brandName = brand.codeName }).ToList(); var task_model_indicator_list = (from taskIndicator in taskIndicatorMapList from taskModel in taskModelList from bm in brand_model_list where taskIndicator.taskId == taskInfoId && taskModel.taskId == taskInfoId && taskModel.ModelId == bm.modelId select new { taskIndicator, bm.brandId, bm.brandName, bm.modelId, bm.modelName }).ToList(); var list_indicator = (from indicator in task_model_indicator_list join result in taskResultMapList.Where(r => r.taskStep == step && r.taskRound == round) on new { indicator.taskIndicator.indicatorId, indicator.modelId } equals new { result.indicatorId, result.modelId } into temp from tt in temp.DefaultIfEmpty() select new { indicator, taskRecord = tt == null ? "" : tt.taskRecord, taskResult = tt == null ? 0 : tt.taskResult, taskRemark = tt == null ? "" : tt.taskRemark, attachment = tt == null ? "" : tt.attachment, taskExecutor = tt == null ? "" : tt.taskExecutor, taskDateTime = tt == null ? "" : tt.taskDateTime.ToString(), taskStep = tt == null ? 0 : tt.taskStep, modelId = tt == null ? 0 : tt.modelId, taskResultId = tt == null ? 0 : tt.id, supplement = tt == null ? "" : tt.supplement }).ToList(); var allResultModelList = (from temp in list_indicator from indicator in indicatorList where temp.indicator.taskIndicator.indicatorId == indicator.id select new TaskResultModel { indicatorId = indicator.id, indicatorName = indicator.indicatorName, indicatorDesc = indicator.indicatorDesc, indicatorInstr = indicator.indicatorInstr, taskDateTime = temp.taskDateTime, taskStep = temp.taskStep, taskExecutor = temp.taskExecutor, taskRecord = temp.taskRecord, taskRemark = temp.taskRemark, attachment = temp.attachment, attachmentCount = (temp.attachment == string.Empty ? "" : temp.attachment.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries).Count() + "个") + (temp.supplement == "" ? "" : "(补)"), taskResult = temp.taskResult, modelId = temp.indicator.modelId, modelName = temp.indicator.modelName, brandId = temp.indicator.brandId, brandName = temp.indicator.brandName, taskResultId = temp.taskResultId, supplement = temp.supplement }).ToList(); return(allResultModelList); }
private async Task getData(int templateId, string className, IProgress <string> progress) { //获取某分类下所有指标 var anyClassIndicatorList = IndicatorCache.getCache().Where(i => i.classId == cbb_classId); progress.Report("获取全部指标"); //获取所选模板的已选指标 var selectedIndicatorList = IndicatorTemplateMapCache.getCache().Where(i => i.templateId == templateId); progress.Report("获取已选指标"); await Task.Factory.StartNew(() => { Stopwatch sw = new Stopwatch(); sw.Start(); var childOne = Task.Factory.StartNew(() => { //生成已选指标model对象列表 selectedIndicatorModelList = (from indicatorMap in selectedIndicatorList from indicator in anyClassIndicatorList //from classType in classList from detection in detectionList from subDetection in subDetectionList where indicatorMap.indicatorId == indicator.id &&// && indicator.classId == classType.id indicator.detectionId == detection.id && indicator.subDetectionId == subDetection.id select new IndicatorForTemplateModel() { classId = indicator.classId, className = className, //classType.codeName, detectionId = detection.id, detectionName = detection.codeName, indicatorDesc = indicator.indicatorDesc, indicatorInstr = indicator.indicatorInstr, indicatorId = indicator.id, indicatorName = indicator.indicatorName, isObsolete = indicator.isObsolete == 1 ? "已废弃" : "生效中", isSelected = false, subDetectionId = subDetection.id, subDetectionName = subDetection.codeName, }).ToList(); progress.Report("指标计算中……"); Debug.WriteLine("one"); }, TaskCreationOptions.AttachedToParent); var childTwo = Task.Factory.StartNew(() => { //已选指标id列表 var selectedIndicatorIdList = selectedIndicatorList.Select(i => i.indicatorId).ToList(); //计算出所选模板的待选指标 var unselectIndicatorList = anyClassIndicatorList.Where(ii => selectedIndicatorIdList.Contains(ii.id) == false).ToList(); //unselectedIndicatorModelList = anyClassIndicatorList.AsEnumerable<Tb_indicator>().Except<Tb_indicator>(selectedIndicatorModelList); unselectedIndicatorModelList = (from unselectedIndicator in unselectIndicatorList from indicator in anyClassIndicatorList //from classType in classList from detection in detectionList from subDetection in subDetectionList where unselectedIndicator.id == indicator.id && //&& indicator.classId == classType.id indicator.detectionId == detection.id && indicator.subDetectionId == subDetection.id select new IndicatorForTemplateModel() { classId = indicator.classId, className = className, // classType.codeName, detectionId = detection.id, detectionName = detection.codeName, indicatorDesc = indicator.indicatorDesc, indicatorInstr = indicator.indicatorInstr, indicatorId = indicator.id, indicatorName = indicator.indicatorName, isObsolete = indicator.isObsolete == 1 ? "已废弃" : "生效中", isSelected = false, subDetectionId = subDetection.id, subDetectionName = subDetection.codeName, }).ToList(); progress.Report("指标计算中……"); Debug.WriteLine("two"); }, TaskCreationOptions.AttachedToParent); sw.Stop(); Debug.WriteLine(sw.ElapsedMilliseconds); progress.Report("指标获取中……"); }); bindDgv(); progressBar.Visible = false; cbb_exitsTemplate.Enabled = true; }