username@email.com
2025-04-27 15eb82df2d6ec539e9d4245bfe08d531e8eb6379
zhengcaioa/Services/ExpertTestTopicService.cs
@@ -121,7 +121,7 @@
                {
                    for (int i = 0; i < Falv.Length; i++)
                    {
                        if (!string.IsNullOrEmpty(dto.Falv[i]))
                        if (!string.IsNullOrEmpty(dto.Falv[i]) || !string.IsNullOrEmpty(dto.Fatiao[i]) || !string.IsNullOrEmpty(dto.Fatiaomingxi[i]))
                        {
                            ExpertTestTopicjiexi expertTestTopicjiexi = new ExpertTestTopicjiexi();
@@ -132,6 +132,7 @@
                            expertTestTopicjiexi.Falv = dto.Falv[i];
                            expertTestTopicjiexi.Fatiao = dto.Fatiao[i];
                            expertTestTopicjiexi.Flag = dto.Flag[i];
                            expertTestTopicjiexi.Jiexi = dto.Fatiaomingxi[i];
                            expertTestTopicjiexi.Creater = dto.Modifier;
                            expertTestTopicjiexi.Createtime = DateTime.Now;
                            expertTestTopicjiexi.Modifier = dto.Modifier;
@@ -185,8 +186,7 @@
            var listCode = (from a in _context.SysCodeDtls
                            join b in _context.SysCodes
                            on a.CodeId equals b.Id
                            where a.RecStatus == "A"
                                          && b.RecStatus == "A"
                            where  b.RecStatus == "A"
                            select new CodeDataEntity()
                            {
                                CodeId = b.Id,
@@ -242,28 +242,33 @@
                 into ksssss
                         from kkk in ksssss.DefaultIfEmpty()
                         //join ll in ( from  aaa in _context.ExpertTestTopicanwsers.Where(x => x.RecStatus == "A").Select(e => new { Topic = e.Topic, Items = e.Anwserno + " " + e.Anwser + "</br>" }).GroupBy(e => new { e.Topic })
                         //             let ids = aaa.Select(b => b.Items.ToString()).ToArray()
                         //             select new { Topic = aaa.Key.Topic, Items = String.Join(" ", ids) }
                         // //.Select(eg => new
                         // //{
                         // //    Topic = eg.Key.Topic,
                         // //    //EmployeeName = eg.First().EmployeeName,
                         // //    Items = eg.Select(i => i.Anwserno) + " " + eg.Select(i => i.Anwser) + "</br>",
                         // //})
                         // )
                         //on a.Id equals ll.Topic
                         //  into llsssss
                         //from llll in llsssss.DefaultIfEmpty()
                         join l in _context.ExpertTestTopicjiexis
              on a.Id equals l.Topic
              into lsssss
                         from lll in lsssss.DefaultIfEmpty()
                             //join ll in ( from  aaa in _context.ExpertTestTopicanwsers.Where(x => x.RecStatus == "A").Select(e => new { Topic = e.Topic, Items = e.Anwserno + " " + e.Anwser + "</br>" }).GroupBy(e => new { e.Topic })
                             //             let ids = aaa.Select(b => b.Items.ToString()).ToArray()
                             //             select new { Topic = aaa.Key.Topic, Items = String.Join(" ", ids) }
                             // //.Select(eg => new
                             // //{
                             // //    Topic = eg.Key.Topic,
                             // //    //EmployeeName = eg.First().EmployeeName,
                             // //    Items = eg.Select(i => i.Anwserno) + " " + eg.Select(i => i.Anwser) + "</br>",
                             // //})
                             // )
                             //on a.Id equals ll.Topic
                             //  into llsssss
                             //from llll in llsssss.DefaultIfEmpty()
            where a.RecStatus == "A"
                         where a.RecStatus == "A"
                          && (string.IsNullOrWhiteSpace(searchEntity.Topictype) || a.Topictype == searchEntity.Topictype.Trim())
                           && (string.IsNullOrWhiteSpace(searchEntity.Zhishitype) || a.Zhishitype == searchEntity.Zhishitype.Trim())
@@ -273,12 +278,12 @@
                             && (string.IsNullOrWhiteSpace(searchEntity.Topic) || a.Topic.Contains(searchEntity.Topic.Trim()))
                              && (string.IsNullOrWhiteSpace(searchEntity.Area) || a.Area == searchEntity.Area.Trim())
                               && (string.IsNullOrWhiteSpace(searchEntity.Falv) || lll.Falv == searchEntity.Falv.Trim())
                                && (string.IsNullOrWhiteSpace(searchEntity.shanchuzhishitype) || a.Zhishitype == searchEntity.shanchuzhishitype.Trim())
                         select new ExpertTestTopicDTO
                         select  new ExpertTestTopicDTO
                         {
                             Id = a.Id,
                             Topictype = a.Topictype,
@@ -305,15 +310,15 @@
                             Modifytime = a.Modifytime,
                         }
                ).OrderByDescending(x => x.Modifytime).ToList();
                ).Distinct().OrderByDescending(x => x.Modifytime).ToList();
                           //if (searchEntity.totalrows == 0)
            searchEntity.totalrows = query.Count();
                //if (searchEntity.totalrows == 0)
                searchEntity.totalrows = query.Count();
            var lianlist = query.Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList();
            var lianlist11 = lianlist.Select(x => x.Id).ToList();
@@ -326,10 +331,42 @@
                foreach (var quer in querydel)
                {
                    lian.Topic += quer.Anwserno + " " + quer.Anwser + " </br>";
                    if (lian.Topictype != "03")
                    {
                        lian.Topic += quer.Anwserno + " " + quer.Anwser + " </br>";
                    }
                    if(quer.Shifouzhengqu == "A")
                    {
                        lian.Anwsers += quer.Anwserno ;
                    }
                }
            }
            var queryjiexis = (from aaa in _context.ExpertTestTopicjiexis.Where(x => x.RecStatus == "A" && lianlist11.Contains(x.Topic)) select aaa).ToList();
            var falvs = listCode.Where(x => x.CodeTable == "expert_test_topicjiexi" && x.CodeField == "falv").ToList();
            foreach (var lian in lianlist)
            {
                var queryjiexi = queryjiexis.Where(x => x.Topic == lian.Id).OrderBy(x => x.Flag).ToList();
                var jiexi = "";
                foreach (var quer in queryjiexi)
                {
                 var falv = falvs.Where(x => x.CodeSn == quer.Falv).FirstOrDefault();
                    jiexi +=(falv!=null? "《" + falv.Comments + "》" : "") + " " + quer.Fatiao + " " + quer.Jiexi + " </br>" ;
                }
                if (string.IsNullOrEmpty(lian.Jiexi))
                {
                    lian.Jiexi = jiexi;
                }
                else
                {
                    lian.Jiexi = jiexi + lian.Jiexi + " </br>";
                }
            }
            data.LoadData(searchEntity, lianlist);
            return data;
@@ -370,9 +407,31 @@
        /// <returns></returns>
        public List<ExpertTestTopicDTO> GetList()
        {
            var listCode = (from a in _context.SysCodeDtls
                            join b in _context.SysCodes
                            on a.CodeId equals b.Id
                            where a.RecStatus == "A" &&  b.RecStatus == "A"
                            select new CodeDataEntity()
                            {
                                CodeId = b.Id,
                                CodeTable = b.CodeTable,
                                CodeField = b.CodeField,
                                CodeSn = a.CodeSn,
                                Comments = a.Comments,
                                Contents = a.Contents,
                                RecStatus = a.RecStatus,
                                Sort = a.Sort
                            }
                              );
            var listRole = _context.ExpertTestTopics.Where(r => r.RecStatus == "A").ToList();
            var listRole =
                 ( from a in _context.ExpertTestTopics.Where(r => r.RecStatus == "A")
                   join f in listCode.Where(x => x.CodeTable == "expert_test_topic" && x.CodeField == "zhishitype")
                    on a.Zhishitype equals f.CodeSn
                   select a ).ToList();
            var list = _mapper.Map<List<ExpertTestTopicDTO>>(listRole);
@@ -760,7 +819,7 @@
                                Modifytime = a.Modifytime,
                            }
                ).OrderBy(x => x).ToList();
                ).OrderBy(x => x.Resulttype).ToList();
            return listRole;
        }
@@ -799,8 +858,8 @@
                            join f in listCode.Where(x => x.CodeTable == "expert_test_topic" && x.CodeField == "zhishitype")
                       on a.Zhishitype equals f.CodeSn
                       into fsssss
                            from fff in fsssss.DefaultIfEmpty()
                       //into fsssss
                       //     from fff in fsssss.DefaultIfEmpty()
                            where a.RecStatus == "A"
@@ -812,10 +871,11 @@
                                Topictype = a.Topictype,
                                TopictypeName = eee.Comments,
                                Zhishitype = a.Zhishitype,
                                ZhishitypeName = fff.Comments,
                                Fenshu = a.Fenshu,
                                Fenzhi = a.Fenzhi,
                                ZhishitypeName = f.Comments,
                                Fenshu = a.Fenshu ?? 0,
                                Fenzhi = a.Fenzhi??0,
                                FenshuName = (a.Fenshu ?? 0).ToString("0.##"),
                                FenzhiName = (a.Fenzhi ?? 0).ToString("0.##"),
                                Creater = a.Creater,
                                Createtime = a.Createtime,
@@ -927,5 +987,40 @@
            return resultEntity;
        }
        public ExpertTestResultDTO GetResult(string Resulttype)
        {
            var entity = _context.ExpertTestResults.Where(x=>x.RecStatus =="A" && x.Resulttype == Resulttype).FirstOrDefault();
            if (entity==null)
            {
                entity = new ExpertTestResult();
            }
            var result = _mapper.Map<ExpertTestResultDTO>(entity);
            return result;
        }
        public ExpertTestTopicpeizhiDTO Getpeizhi(string Topictype, string Zhishitype)
        {
            var entity = _context.ExpertTestTopicpeizhis.Where(x => x.RecStatus == "A" && x.Topictype == Topictype && x.Zhishitype == Zhishitype).FirstOrDefault();
            if (entity == null)
            {
                entity = new ExpertTestTopicpeizhi();
            }
            var result = _mapper.Map<ExpertTestTopicpeizhiDTO>(entity);
            return result;
        }
    }
}