private void bindTaskInfo()
 {
     lbl_taskName.Text     = taskInfo.taskName;
     lbl_taskExecutor.Text = taskInfo.taskExecutor;
     lbl_taskClass.Text    = CodeCache.getClass().FirstOrDefault(c => c.id == taskInfo.taskClass).codeName;
     lbl_taskCode.Text     = taskInfo.taskCode;
     lbl_taskType.Text     = CodeCache.getType().FirstOrDefault(c => c.id == taskInfo.taskType).codeName;
     lbl_brandModel.Text   = string.Join(Environment.NewLine, from brandCode in CodeCache.getBrand()
                                         from modelCode in CodeCache.getModel()
                                         from taskModelMap in TaskModelMapCache.getCache()
                                         where taskModelMap.taskId == taskInfo.id && taskModelMap.brandId == brandCode.id && taskModelMap.ModelId == modelCode.id
                                         select brandCode.codeName + "    " + modelCode.codeName);
 }
        public void init(int[] taskStateArray, TaskGridShownStyle style)
        {
            this._taskStateArray = taskStateArray;
            this._style          = style;
            var classList         = CodeCache.getClass();
            var brandList         = CodeCache.getBrand();
            var modelList         = CodeCache.getModel();
            var taskList          = TaskCache.getCache();
            var tasklifecycleList = TaskLifecycleCache.getCache();
            var taskModelMapList  = TaskModelMapCache.getCache();

            taskModelAllList = (from task in taskList
                                from classCode in classList
                                from tasklifecycle in tasklifecycleList
                                                                                                                                                      //from brandCode in brandList
                                                                                                                                                      //from taskModelMap in taskModelMapList
                                                                                                                                                      //where (taskStateArray == (int)TaskStateEnum.Completed ?
                                                                                                                                                      //    (task.taskState == taskStateArray || task.taskState == (int)TaskStateEnum.Rejected || task.taskState == (int)TaskStateEnum.Closed)
                                                                                                                                                      //    : (task.taskState == taskStateArray))//如果是展示已完成任务,则需要附带已关闭、已驳回的任务
                                where taskStateArray.Contains(task.taskState) &&
                                task.taskClass == classCode.id                                                                                        //&& taskModelMap.taskId == task.id && taskModelMap.brandId == brandCode.id
                                                                                                                                                      //todo 跟当前用户相关
                                && task.id == tasklifecycle.taskId && tasklifecycle.taskState == 5001 &&
                                (task.taskExecutor.Contains(User.currentUser.name) || tasklifecycle.taskStateChangeExecutor == User.currentUser.name) //当前用户创建或测试人包含当前用户
                                orderby task.createTime descending
                                select new TaskModel
            {
                taskId = task.id,
                taskName = task.taskName,
                taskStateId = task.taskState,
                taskStateName = taskStateDic[task.taskState],
                taskBrandModelName = string.Join(Environment.NewLine, from brandCode in brandList
                                                 from modelCode in modelList
                                                 from taskModelMap in taskModelMapList
                                                 where taskModelMap.taskId == task.id && taskModelMap.brandId == brandCode.id && taskModelMap.ModelId == modelCode.id
                                                 select brandCode.codeName + "    " + modelCode.codeName),
                taskClassName = classCode.codeName,
                taskStartTime = task.createTime,
                taskCode = task.taskCode,
                percent = task.percent,
                taskRound = task.taskRound
            }).ToList();
            doQuery(new TaskQueryItem());
            showStyle(style);
        }
        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());
        }
Exemple #4
0
 /// <summary>
 /// 新增任务,及任务相关的表(任务指标映射表、任务生命周期表)
 /// </summary>
 /// <param name="task"></param>
 /// <param name="indicatorIdList"></param>
 public static void createTask(Tb_taskInfo task, List <int> indicatorIdList, Dictionary <int, List <int> > brandModelIdDic)
 {
     using (EFMySqlDbContext context = new Db.EFMySqlDbContext())
     {
         using (var transaction = context.Database.BeginTransaction())
         {
             try
             {
                 //新增任务信息
                 context.Tb_taskInfos.Add(task);
                 context.SaveChanges();
                 context.Entry(task);
                 int taskId = task.id;
                 //添加任务生命周期
                 Tb_taskLifecycle lifecycle = new Tb_taskLifecycle();
                 lifecycle.taskId                  = taskId;
                 lifecycle.taskStateDateTime       = DateTime.Now;
                 lifecycle.taskStateChangeExecutor = User.currentUser.name;
                 lifecycle.taskState               = (int)TaskStateEnum.Created;
                 lifecycle.remark                  = string.Empty;
                 context.Tb_taskLifecycles.Add(lifecycle);
                 context.SaveChanges();
                 //添加任务型号映射
                 List <Tb_taskModelMap> tmmList = new List <Entity.Tb_taskModelMap>();
                 foreach (int brandId in brandModelIdDic.Keys)
                 {
                     foreach (int modelId in brandModelIdDic[brandId])
                     {
                         Tb_taskModelMap tmm = new Tb_taskModelMap();
                         tmm.taskId  = taskId;
                         tmm.brandId = brandId;
                         tmm.ModelId = modelId;
                         tmmList.Add(tmm);
                     }
                 }
                 context.Tb_taskModelMaps.AddRange(tmmList);
                 context.SaveChanges();
                 //添加任务指标映射
                 List <Tb_taskIndicatorMap> timList = new List <Tb_taskIndicatorMap>();
                 foreach (int indicatorId in indicatorIdList)
                 {
                     Tb_taskIndicatorMap tim = new Tb_taskIndicatorMap();
                     tim.taskId      = taskId;
                     tim.indicatorId = indicatorId;
                     timList.Add(tim);
                 }
                 context.Tb_taskIndicatorMaps.AddRange(timList);
                 context.SaveChanges();
                 //提交数据库
                 transaction.Commit();
                 //更新任务生命周期缓存
                 TaskLifecycleCache.addCacheOnly(lifecycle);
                 //更新品牌型号映射缓存
                 foreach (var tmm in tmmList)
                 {
                     TaskModelMapCache.addCacheOnly(tmm);
                 }
                 //更新指标映射缓存
                 foreach (var tim in timList)
                 {
                     TaskIndicatorMapCache.addCacheOnly(tim);
                 }
             }
             catch (Exception ex)
             {
                 transaction.Rollback();
                 throw ex;
             }
         }
     }
 }
Exemple #5
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);
        }