username@email.com
2024-07-12 4a37150b246e610a583a190b6ffd4b7f017c6600
zhengcaioa/zhengcaioa/Controllers/ExpertTest/ExpertTestTopicController.cs
@@ -11,6 +11,7 @@
using System.Linq;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using System.Transactions;
using zhengcaioa.IService;
@@ -51,38 +52,60 @@
            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
            ViewData["curentuser"] = curentuser;
            List<ActionEntity> actionlist = new List<ActionEntity>();
            ActionEntity actionEntity = new ActionEntity();
            actionEntity.OpenType = 0;
            actionEntity.ActionUrl = "";
            actionEntity.ActionFun = "Search";
            actionEntity.PageIco = "fa fa-search";
            actionEntity.ActionName = "查询";
            actionlist.Add(actionEntity);
            //ActionEntity actionEntity = new ActionEntity();
            //actionEntity.OpenType = 0;
            //actionEntity.ActionUrl = "";
            //actionEntity.ActionFun = "Search";
            //actionEntity.PageIco = "fa fa-search";
            //actionEntity.ActionName = "查询";
            //actionlist.Add(actionEntity);
            ActionEntity actionEntity1 = new ActionEntity();
            actionEntity1.OpenType = 0;
            actionEntity1.ActionUrl = "";
            actionEntity1.ActionFun = "Add";
            actionEntity1.PageIco = "fa fa-plus";
            actionEntity1.ActionName = "新增";
            actionlist.Add(actionEntity1);
            //ActionEntity actionEntity1 = new ActionEntity();
            //actionEntity1.OpenType = 0;
            //actionEntity1.ActionUrl = "";
            //actionEntity1.ActionFun = "Add";
            //actionEntity1.PageIco = "fa fa-plus";
            //actionEntity1.ActionName = "新增";
            //actionlist.Add(actionEntity1);
            ActionEntity actionEntity2 = new ActionEntity();
            actionEntity2.OpenType = 0;
            actionEntity2.ActionUrl = "";
            actionEntity2.ActionFun = "Print";
            actionEntity2.PageIco = "fa fa-print";
            actionEntity2.ActionName = "打印";
            actionlist.Add(actionEntity2);
            //ActionEntity actionEntity2 = new ActionEntity();
            //actionEntity2.OpenType = 0;
            //actionEntity2.ActionUrl = "";
            //actionEntity2.ActionFun = "Print";
            //actionEntity2.PageIco = "fa fa-print";
            //actionEntity2.ActionName = "打印";
            //actionlist.Add(actionEntity2);
            //ActionEntity actionEntity3 = new ActionEntity();
            //actionEntity3.OpenType = 0;
            //actionEntity3.ActionUrl = "";
            //actionEntity3.ActionFun = "Zhuanyi";
            //actionEntity3.PageIco = "fa fa-plus";
            //actionEntity3.ActionName = "数据转移";
            //actionlist.Add(actionEntity3);
            var pageEntities = _pltPageService.GetUserPage(curentuser.Id, "/ExpertTestTopic/Index");
            var pageEntities1 = pageEntities.Where(x => x.PageMethod == "01").ToList();
            foreach (var pageEntity in pageEntities1)
            {
                ActionEntity actionEntity1 = new ActionEntity();
                actionEntity1.OpenType = pageEntity.OpenType;
                actionEntity1.ActionUrl = "";
                actionEntity1.ActionFun = pageEntity.PageShortcut;
                actionEntity1.PageIco = pageEntity.PageIco;
                actionEntity1.ActionName = pageEntity.PageName;
                actionlist.Add(actionEntity1);
            }
            ViewData["ActionInfo"] = actionlist;
            var pageEntities2 = pageEntities.Where(x => x.PageMethod == "02").ToList();
            ViewData["ActionInfo2"] = pageEntities2;
@@ -92,6 +115,10 @@
            ViewBag.zhongdian = _liaotianService.GetSYScode("system", "shifou").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList();
            ViewBag.jiexi_status = _liaotianService.GetSYScode("expert_test_topic", "jiexi_status").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList();
            ViewBag.shenpi_status = _liaotianService.GetSYScode("expert_test_topic", "shenpi_status").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList();
            ViewBag.Falv = _liaotianService.GetSYScode("expert_test_topicjiexi", "falv").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList();
            ViewBag.shanchuzhishitype = _liaotianService.GetSYScodeshanchu("expert_test_topic", "zhishitype").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList();
            var areaDTOs = _areaService.GetList().Where(x => x.ParentId == "0     ").ToList();
            foreach (var areaDTO in areaDTOs)
            {
@@ -126,6 +153,11 @@
        {
            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
            ViewData["curentuser"] = curentuser;
            var pageEntities = _pltPageService.GetUserPage(curentuser.Id, "/ExpertTestTopic/Index");
            var pageEntities2 = pageEntities.Where(x => x.PageMethod == "02").ToList();
            ViewData["ActionInfo2"] = pageEntities2;
            var expertTestTopicanwserDTOs = new List<ExpertTestTopicanwserDTO>();
            var expertTestTopicjiexiDTOs = new List<ExpertTestTopicjiexiDTO>();
@@ -138,7 +170,7 @@
                expertTestTopicanwserDTOs = _expertTestTopicService.GetListanwser(id);
                if (dto.Topictype=="03")
                {
                    expertTestTopicanwserDTOs = expertTestTopicanwserDTOs.OrderByDescending(x=>x.Anwserno).ToList();
                    expertTestTopicanwserDTOs = expertTestTopicanwserDTOs.OrderBy(x=>x.Anwserno).ToList();
                }
                if (expertTestTopicanwserDTOs.Count == 0)
                {
@@ -168,7 +200,7 @@
                    expertTestTopicanwserDTO.Anwserno = "√";
                    expertTestTopicanwserDTOs.Add(expertTestTopicanwserDTO);
                    var expertTestTopicanwserDTO1 = new ExpertTestTopicanwserDTO();
                    expertTestTopicanwserDTO1.Anwserno = "×";
                    expertTestTopicanwserDTO1.Anwserno = "x";
                    expertTestTopicanwserDTOs.Add(expertTestTopicanwserDTO1);
                    
@@ -286,8 +318,6 @@
            List<PageEntity> pageEntities = _pltPageService.GetUserPage(curentuser.Id, "/ExpertTestTopic/Index");
            ViewData["pageEntities"] = pageEntities;
            ViewData.Model = dto;
@@ -311,7 +341,7 @@
            {
                string api_domain = _configuration.GetSection("Elasticsearchurl").Value;
                string url = $"{api_domain}/liaotian/person/" + data.Id;
                string url = $"{api_domain}/liaotian/_doc/" + data.Id;
                //string requestJson = "{\"id\": \"" + Id + "\",\"question\": \"" + data.Question + "\",\"anwser\": \"" + data.Anwser + "\"}";
                try
                {
@@ -412,7 +442,7 @@
            resultEntity = _expertTestTopicService.shenpi(data);
            string api_domain = _configuration.GetSection("Elasticsearchurl").Value;
            string url = $"{api_domain}/liaotian/person/" + data.Id;
            string url = $"{api_domain}/liaotian/_doc/" + data.Id;
            LiaotianElasticsearchDTO liaotianElasticsearchDTO = new LiaotianElasticsearchDTO();
            liaotianElasticsearchDTO.id = data.Id;
            liaotianElasticsearchDTO.question = data.Topic;
@@ -528,7 +558,7 @@
              data = _expertTestTopicService.Get(data.Id);
            var datadtls = _expertTestTopicService.GetListanwser(data.Id);
            string api_domain = _configuration.GetSection("Elasticsearchurl").Value;
            string url = $"{api_domain}/liaotian/person/" + data.Id;
            string url = $"{api_domain}/liaotian/_doc/" + data.Id;
            LiaotianElasticsearchDTO liaotianElasticsearchDTO = new LiaotianElasticsearchDTO();
            liaotianElasticsearchDTO.id = data.Id;
            liaotianElasticsearchDTO.question = data.Topic;
@@ -611,7 +641,7 @@
            ResultEntity resultEntity = _expertTestTopicService.ModifyStatus(Id, curentuser.Id);
            string api_domain = _configuration.GetSection("Elasticsearchurl").Value;
            string url = $"{api_domain}/liaotian/person/" + Id;
            string url = $"{api_domain}/liaotian/_doc/" + Id;
            //string requestJson = "{\"id\": \"" + Id + "\",\"question\": \"" + data.Question + "\",\"anwser\": \"" + data.Anwser + "\"}";
            try
            {
@@ -792,6 +822,36 @@
                    expertTestTopicpeizhiDTO.zongFenshu = aaaa.HasValue? aaaa.Value.ToString("0.##"):"";
                    expertTestTopicpeizhiDTO.zongFenzhi = expertTestTopicpeizhiDTO.Fenzhi.HasValue ? expertTestTopicpeizhiDTO.Fenzhi.Value.ToString("0.##") : "";
                }
                foreach (var zhishitype in zhishitypes)
                {
                    var bbbb = expertTestTopicpeizhiDTOs.Where(x => x.Zhishitype == zhishitype.CodeSn).ToList();
                    if (bbbb.Count <= 0)
                    {
                        foreach (var topictype in topictypes)
                        {
                            ExpertTestTopicpeizhiDTO expertTestTopicpeizhiDTO = new ExpertTestTopicpeizhiDTO();
                            expertTestTopicpeizhiDTO.ShijianId = "01";
                            expertTestTopicpeizhiDTO.Topictype = topictype.CodeSn;
                            expertTestTopicpeizhiDTO.TopictypeName = topictype.Comments;
                            expertTestTopicpeizhiDTO.Zhishitype = zhishitype.CodeSn;
                            expertTestTopicpeizhiDTO.ZhishitypeName = zhishitype.Comments;
                            expertTestTopicpeizhiDTO.Fenshu = 0;
                            expertTestTopicpeizhiDTO.Fenzhi = 0;
                            expertTestTopicpeizhiDTO.FenshuName = "0";
                            expertTestTopicpeizhiDTO.FenzhiName = "0";
                            expertTestTopicpeizhiDTO.zongFenshu = "0";
                            expertTestTopicpeizhiDTO.zongFenzhi = "0";
                            expertTestTopicpeizhiDTOs.Add(expertTestTopicpeizhiDTO);
                        }
                        expertTestTopicpeizhiDTOs = expertTestTopicpeizhiDTOs.OrderBy(x => x.Topictype).ThenBy(x => x.Zhishitype).ToList();
                    }
                }
            }
             
@@ -876,6 +936,290 @@
            return new JsonResult(resultEntity);
        }
        public IActionResult shititongji()
        {
            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
            ViewData["curentuser"] = curentuser;
            var expertTestTopicDTOs = new List<ExpertTestTopicDTO>();
            var expertTestTopicDTOs1 = _expertTestTopicService.GetList();
            var sysCodeDtls = _liaotianService.GetSYScode("expert_test_topic", "topictype");
            var sysCodeDtls1 = _liaotianService.GetSYScode("expert_test_topic", "zhishitype");
            foreach (var sysCodeDtl1 in sysCodeDtls1)
            {
                foreach (var sysCodeDtl in sysCodeDtls)
                {
                    var shuliang = expertTestTopicDTOs1.Count(x => x.Zhishitype == sysCodeDtl1.CodeSn && x.Topictype == sysCodeDtl.CodeSn);
                    var expertTestTopicDTO = new ExpertTestTopicDTO();
                    expertTestTopicDTO.Shuliang = shuliang;
                    var sysCodeDtl2 = sysCodeDtls1.Where(x => x.CodeSn == sysCodeDtl1.CodeSn).FirstOrDefault();
                    if (sysCodeDtl2 != null)
                    {
                        expertTestTopicDTO.ZhishitypeName = sysCodeDtl2.Comments;
                    }
                    expertTestTopicDTO.Zhishitype = sysCodeDtl1.CodeSn;
                    expertTestTopicDTO.Topictype = sysCodeDtl.CodeSn;
                    expertTestTopicDTOs.Add(expertTestTopicDTO);
                }
            }
            foreach (var sysCodeDtl in sysCodeDtls)
            {
                var shuliang = expertTestTopicDTOs1.Count(x => x.Topictype == sysCodeDtl.CodeSn);
                var expertTestTopicDTO = new ExpertTestTopicDTO();
                expertTestTopicDTO.Shuliang = shuliang;
                expertTestTopicDTO.ZhishitypeName = "合计";
                expertTestTopicDTO.Zhishitype = "";
                expertTestTopicDTO.Topictype = sysCodeDtl.CodeSn;
                expertTestTopicDTOs.Add(expertTestTopicDTO);
            }
            //ViewBag.topictype = sysCodeDtls;
            //ViewBag.zhishitype = sysCodeDtls1;
            //ViewBag.listExpertTestTopicDTO = expertTestTopicDTOs;
            StringBuilder stringBuilder = new StringBuilder();
            stringBuilder.Append("<table style=\"width:50%;\">");
            stringBuilder.Append(" <tr>");
            stringBuilder.Append("<td style=\"width:25%;\"> 知识点/题型</td>");
            foreach (var sysCodeDtl in sysCodeDtls)
            {
                stringBuilder.Append("<td style = \"width:25%;\" > " + sysCodeDtl.Comments + "</td >");
            }
            stringBuilder.Append(" </tr>");
            int i = 0;
            foreach(var ExpertTestTopicDTO in expertTestTopicDTOs)
            {
                if(i != 0 && i % 3 == 0)
                {
                    stringBuilder.Append(" </tr>");
                }
                if(i == 0 || i % 3 == 0)
                {
                    stringBuilder.Append("<tr>");
                    stringBuilder.Append(" <td>" + ExpertTestTopicDTO.ZhishitypeName + "</td>");
                }
                stringBuilder.Append("<td><a onclick=\"OpenWindow(' ','98%','100%', '/ExpertTestTopic/tongjiIndex?Topictype=" + ExpertTestTopicDTO.Topictype + "&Zhishitype=" + ExpertTestTopicDTO.Zhishitype + "')\"  >             " + ExpertTestTopicDTO.Shuliang +"</a></td>");
                if (i == expertTestTopicDTOs.Count - 1)
                {
                    stringBuilder.Append(" </tr>");
                }
                i++;
            }
            stringBuilder.Append("</table>");
            ViewBag.htmlstring = stringBuilder.ToString(); ;
            return View();
        }
        public IActionResult tongjiIndex(string Topictype="", string Zhishitype = "")
        {
            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
            ViewData["curentuser"] = curentuser;
            List<ActionEntity> actionlist = new List<ActionEntity>();
            ActionEntity actionEntity = new ActionEntity();
            actionEntity.OpenType = 0;
            actionEntity.ActionUrl = "";
            actionEntity.ActionFun = "Search";
            actionEntity.PageIco = "fa fa-search";
            actionEntity.ActionName = "查询";
            actionlist.Add(actionEntity);
            //ActionEntity actionEntity1 = new ActionEntity();
            //actionEntity1.OpenType = 0;
            //actionEntity1.ActionUrl = "";
            //actionEntity1.ActionFun = "Add";
            //actionEntity1.PageIco = "fa fa-plus";
            //actionEntity1.ActionName = "新增";
            //actionlist.Add(actionEntity1);
            //ActionEntity actionEntity2 = new ActionEntity();
            //actionEntity2.OpenType = 0;
            //actionEntity2.ActionUrl = "";
            //actionEntity2.ActionFun = "Print";
            //actionEntity2.PageIco = "fa fa-print";
            //actionEntity2.ActionName = "打印";
            //actionlist.Add(actionEntity2);
            ViewData["ActionInfo"] = actionlist;
            ViewBag.Topictype1 = Topictype;
            ViewBag.Zhishitype1 = Zhishitype;
            ViewBag.topictype = _liaotianService.GetSYScode("expert_test_topic", "topictype").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList();
            ViewBag.zhishitype = _liaotianService.GetSYScode("expert_test_topic", "zhishitype").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList();
            ViewBag.zhongdian = _liaotianService.GetSYScode("system", "shifou").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList();
            ViewBag.jiexi_status = _liaotianService.GetSYScode("expert_test_topic", "jiexi_status").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList();
            ViewBag.shenpi_status = _liaotianService.GetSYScode("expert_test_topic", "shenpi_status").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList();
            var areaDTOs = _areaService.GetList().Where(x => x.ParentId == "0     ").ToList();
            foreach (var areaDTO in areaDTOs)
            {
                if (areaDTO.CodeId == "510000")
                {
                    areaDTOs.Remove(areaDTO);
                    break;
                }
            }
            var areaDTOsic = new AreaDTO();
            areaDTOsic.CodeId = "510000";
            areaDTOsic.Name = "四川省";
            areaDTOsic.ParentId = "0     ";
            areaDTOs.Insert(1, areaDTOsic);
            ViewBag.Area = areaDTOs.Select(x => new { code = x.CodeId, label = x.Name }).ToList(); ;
            return View();
        }
        /// <summary>
        /// 转移数据
        /// </summary>
        /// <param name="data">岗位实体类对象</param>
        /// <returns></returns>
        [CheckLogin]
        public async Task<string> ZhuanyiAsync()
        {
            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
            ViewData["curentuser"] = curentuser;
            ResultEntity resultEntity = new ResultEntity();
            resultEntity.Result = false;
            var expertTestTopicDTOs = _expertTestTopicService.GetList().Where(x => x.ShenpiStatus == "A").ToList();
            try
            {
                foreach (var data in expertTestTopicDTOs)
                {
                    string api_domain = _configuration.GetSection("Elasticsearchurl").Value;
                    string url = $"{api_domain}/liaotian/_doc/" + data.Id;
                    var datadtls = _expertTestTopicService.GetListanwser(data.Id);
                    LiaotianElasticsearchDTO liaotianElasticsearchDTO = new LiaotianElasticsearchDTO();
                    liaotianElasticsearchDTO.id = data.Id;
                    liaotianElasticsearchDTO.question = data.Topic;
                    liaotianElasticsearchDTO.anwser = data.Topic + "  </br> ";
                    foreach (var datadtl in datadtls)
                    {
                        if (datadtl.Shifouzhengqu == "A")
                        {
                            liaotianElasticsearchDTO.anwser += "<font color=\"#FF0000\">" + datadtl.Anwserno + " " + datadtl.Anwser + "</font>   </br>";
                        }
                        else
                        {
                            liaotianElasticsearchDTO.anwser += datadtl.Anwserno + " " + datadtl.Anwser + "  </br> ";
                        }
                    }
                    string requestJson = JsonConvert.SerializeObject(liaotianElasticsearchDTO);
                    string result = string.Empty;
                    Uri postUrl = new Uri(url);
                    using (HttpContent httpContent = new StringContent(requestJson))
                    {
                        httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                        var httpClient = _clientFactory.CreateClient();
                        httpClient.Timeout = new TimeSpan(0, 0, 60);
                        var Result = await httpClient.PutAsync(postUrl, httpContent);
                        result = Result.Content.ReadAsStringAsync().Result;
                    }
                    Newtonsoft.Json.Linq.JObject jobject = (Newtonsoft.Json.Linq.JObject)JsonConvert.DeserializeObject(result);
                    if (jobject["error"] == null && jobject["_shards"]["successful"].ToString() == "1")
                    {
                        resultEntity.Result = true;
                    }
                    else
                    {
                        resultEntity.Result = false;
                        return JsonConvert.SerializeObject(resultEntity);
                    }
                }
            }
            catch (Exception e)
            {
                resultEntity.Result = false;
                throw e;
            }
            return JsonConvert.SerializeObject(resultEntity);
        }
    }
}