Esempio n. 1
0
 private void getAllList()
 {
     indicatorList    = IndicatorCache.getCache();
     classList        = CodeCache.getClass();
     detectionList    = CodeCache.getDetection();
     subDetectionList = CodeCache.getSubDetection();
 }
Esempio n. 2
0
        /// <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);
             }
         }
     }
 }
Esempio n. 4
0
 /// <summary>
 /// 保存/编辑 指标至数据库
 /// </summary>
 private void saveIndicator()
 {
     if (indicator == null)
     {
         indicator = new Tb_indicator();
     }
     setIndicator();
     IndicatorCache.addCache(indicator);
 }
Esempio n. 5
0
        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);
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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;
        }