username@email.com
2021-10-25 cfc134f3f7d5734700f0246fdfc7a74a1b1c8b81
zhengcaioa/zhengcaioa/Controllers/ExpertTest/ExpertTestTopicController.cs
@@ -92,7 +92,21 @@
            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.Area = _areaService.GetList().Where(x => x.ParentId == "0     ").Select(x => new { code = x.CodeId, label = x.Name }).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();
@@ -108,31 +122,135 @@
            return new JsonResult(_expertTestTopicService.SearchByPaging(search));
        }
        public IActionResult Edit(string id = null, string Topictype = "", string Zhishitype = "", string Area = "")
        public IActionResult Edit(string id = null, string Topictype = "", string Zhishitype = "", string Area = "",string Falv ="")
        {
            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
            ViewData["curentuser"] = curentuser;
            var expertTestTopicanwserDTOs = new List<ExpertTestTopicanwserDTO>();
            var expertTestTopicjiexiDTOs = new List<ExpertTestTopicjiexiDTO>();
            ExpertTestTopicDTO dto = new ExpertTestTopicDTO();
            if (!String.IsNullOrEmpty(id))
            {
                dto = _expertTestTopicService.Get(id);
                expertTestTopicanwserDTOs = _expertTestTopicService.GetListanwser(id);
                if (dto.Topictype=="03")
                {
                    expertTestTopicanwserDTOs = expertTestTopicanwserDTOs.OrderByDescending(x=>x.Anwserno).ToList();
                }
                if (expertTestTopicanwserDTOs.Count == 0)
                {
                    expertTestTopicanwserDTOs.Add(new ExpertTestTopicanwserDTO());
                }
                dto.expertTestTopicanwserDTOs = expertTestTopicanwserDTOs;
                expertTestTopicjiexiDTOs = _expertTestTopicService.GetListjiexi(id);
                if (expertTestTopicjiexiDTOs.Count == 0)
                {
                    var ssssss = new ExpertTestTopicjiexiDTO();
                    ssssss.Flag = "A";
                    expertTestTopicjiexiDTOs.Add(ssssss);
                }
                dto.expertTestTopicjiexiDTOs = expertTestTopicjiexiDTOs;
            }
            else
            {
                expertTestTopicanwserDTOs.Add(new ExpertTestTopicanwserDTO());
                dto.expertTestTopicanwserDTOs = expertTestTopicanwserDTOs;
                dto.Topictype = Topictype;
                dto.Zhishitype = Zhishitype;
                dto.Area = Area;
                if (Topictype == "03")
                {
                    var expertTestTopicanwserDTO = new ExpertTestTopicanwserDTO();
                    expertTestTopicanwserDTO.Anwserno = "√";
                    expertTestTopicanwserDTOs.Add(expertTestTopicanwserDTO);
                    var expertTestTopicanwserDTO1 = new ExpertTestTopicanwserDTO();
                    expertTestTopicanwserDTO1.Anwserno = "×";
                    expertTestTopicanwserDTOs.Add(expertTestTopicanwserDTO1);
                    dto.expertTestTopicanwserDTOs = expertTestTopicanwserDTOs;
                }
                else
                {
                    var expertTestTopicanwserDTO = new ExpertTestTopicanwserDTO();
                    expertTestTopicanwserDTO.Anwserno = "A";
                    expertTestTopicanwserDTOs.Add(expertTestTopicanwserDTO);
                    var expertTestTopicanwserDTO1 = new ExpertTestTopicanwserDTO();
                    expertTestTopicanwserDTO1.Anwserno = "B";
                    expertTestTopicanwserDTOs.Add(expertTestTopicanwserDTO1);
                    var expertTestTopicanwserDT2 = new ExpertTestTopicanwserDTO();
                    expertTestTopicanwserDT2.Anwserno = "C";
                    expertTestTopicanwserDTOs.Add(expertTestTopicanwserDT2);
                    var expertTestTopicanwserDT3 = new ExpertTestTopicanwserDTO();
                    expertTestTopicanwserDT3.Anwserno = "D";
                    expertTestTopicanwserDTOs.Add(expertTestTopicanwserDT3);
                    dto.expertTestTopicanwserDTOs = expertTestTopicanwserDTOs;
                }
                if (!string.IsNullOrEmpty(Falv))
                {
                    string[] falvs = Falv.Split(',');
                    for(int i=0;i< falvs.Length; i++)
                    {
                        if (i == 0)
                        {
                            var ssssss = new ExpertTestTopicjiexiDTO();
                            ssssss.Flag = "A";
                            ssssss.Falv = falvs[i];
                            expertTestTopicjiexiDTOs.Add(ssssss);
                        }
                        else if(!string.IsNullOrEmpty(falvs[i]))
                        {
                            var ssssss = new ExpertTestTopicjiexiDTO();
                            ssssss.Flag = "D";
                            ssssss.Falv = falvs[i];
                            expertTestTopicjiexiDTOs.Add(ssssss);
                        }
                    }
                    dto.expertTestTopicjiexiDTOs = expertTestTopicjiexiDTOs;
                }
                else
                {
                    var ssssss = new ExpertTestTopicjiexiDTO();
                    ssssss.Flag = "A";
                    expertTestTopicjiexiDTOs.Add(ssssss);
                    dto.expertTestTopicjiexiDTOs = expertTestTopicjiexiDTOs;
                }
                if (string.IsNullOrEmpty(Topictype))
                {
                    dto.Topictype = "01";
                }
                else
                {
                    dto.Topictype = Topictype;
                }
                if (string.IsNullOrEmpty(Zhishitype))
                {
                    dto.Zhishitype = "01";
                }
                else
                {
                    dto.Zhishitype = Zhishitype;
                }
                if (string.IsNullOrEmpty(Area))
                {
                    dto.Area = "100000";
                }
                else
                {
                    dto.Area = Area;
                }
            }
@@ -145,7 +263,26 @@
            ViewBag.zhongdian = _liaotianService.GetSYScode("system", "shifou").OrderByDescending(x=>x.Sort).ToList();
            ViewBag.jiexi_status = _liaotianService.GetSYScode("expert_test_topic", "jiexi_status");
            ViewBag.shenpi_status = _liaotianService.GetSYScode("expert_test_topic", "shenpi_status");
            ViewBag.Area = _areaService.GetList().Where(x => x.ParentId == "0     ").ToList();
            ViewBag.Flag = _liaotianService.GetSYScode("system", "shifou");
            ViewBag.falv = _liaotianService.GetSYScode("expert_test_topicjiexi", "falv");
            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;
@@ -220,14 +357,22 @@
                    data.Creater = curentuser.Id;
                    data.Createtime = DateTime.Now;
                    data.ShenpiStatus = "D";
                    data.JiexiStatus = "D";
                    //data.JiexiStatus = "D";
                }
                else
                {
                   var ddd  =  _expertTestTopicService.Get(data.Id);
                    data.ShenpiStatus = "D";
                    data.JiexiStatus = ddd.JiexiStatus;
                    //data.JiexiStatus = ddd.JiexiStatus;
                }
                if (string.IsNullOrEmpty(data.Jiexi))
                {
                    data.JiexiStatus = "D";
                }
                else
                {
                    data.JiexiStatus = "A";
                }
                data.Modifier = curentuser.Id;
                data.Modifytime = DateTime.Now;
@@ -356,14 +501,22 @@
                    data.Creater = curentuser.Id;
                    data.Createtime = DateTime.Now;
                    data.ShenpiStatus = "A";
                    data.JiexiStatus = "D";
                    //data.JiexiStatus = "D";
                }
                else
                {
                    var ddd = _expertTestTopicService.Get(data.Id);
                    data.ShenpiStatus = "A";
                    data.JiexiStatus = ddd.JiexiStatus;
                    //data.JiexiStatus = ddd.JiexiStatus;
                }
                if (string.IsNullOrEmpty(data.Jiexi))
                {
                    data.JiexiStatus = "D";
                }
                else
                {
                    data.JiexiStatus = "A";
                }
                data.Modifier = curentuser.Id;
                data.Modifytime = DateTime.Now;
@@ -511,5 +664,218 @@
            return View();
        }
        public IActionResult EditResult()
        {
            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
            ViewData["curentuser"] = curentuser;
            var resultDTOs = _expertTestTopicService.GetListResult();
            var sysCodeDtls = _liaotianService.GetSYScode("expert_test_result", "resulttype");
            if (resultDTOs==null || resultDTOs.Count == 0)
            {
                resultDTOs = new List<ExpertTestResultDTO>();
                foreach (var sysCodeDtl in sysCodeDtls)
                {
                    ExpertTestResultDTO expertTestResultDTO = new ExpertTestResultDTO();
                    expertTestResultDTO.Resulttype = sysCodeDtl.CodeSn;
                    expertTestResultDTO.ResulttypeName = sysCodeDtl.Comments;
                    expertTestResultDTO.Result = "";
                    resultDTOs.Add(expertTestResultDTO);
                }
            }
            ViewBag.resultDTOs = resultDTOs;
            ViewBag.resulttype = sysCodeDtls;
            return View();
        }
        /// <summary>
        /// 保存
        /// </summary>
        /// <param name="data">岗位实体类对象</param>
        /// <returns></returns>
        ///
        [HttpPost]
        public  IActionResult SaveResult(ExpertTestResultDTO data)
        {
            ResultEntity resultEntity = new ResultEntity();
            using (TransactionScope scope = new TransactionScope())
            {
                var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
                ViewData["curentuser"] = curentuser;
                data.RecStatus = "A";
                if(data.Resulttypes!=null&& data.Resulttypes.Length > 0)
                {
                   for(int i=0;i< data.Resulttypes.Length; i++)
                    {
                      var resultDTO = _expertTestTopicService.GetResult(data.Resulttypes[i]);
                        if (string.IsNullOrEmpty(resultDTO.Id))
                        {
                            resultDTO = new ExpertTestResultDTO();
                            resultDTO.Resulttype = data.Resulttypes[i];
                            resultDTO.Result = data.Results[i];
                            resultDTO.Creater = curentuser.Id;
                            resultDTO.Createtime = DateTime.Now;
                        }
                        else
                        {
                            resultDTO.Resulttype = data.Resulttypes[i];
                            resultDTO.Result = data.Results[i];
                        }
                        resultDTO.Modifier = curentuser.Id;
                        resultDTO.Modifytime = DateTime.Now;
                        resultEntity = _expertTestTopicService.saveResult(resultDTO);
                    }
                }
                scope.Complete();
            }
            return new JsonResult(resultEntity);
        }
        public IActionResult EditPeizhi()
        {
            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
            ViewData["curentuser"] = curentuser;
            var expertTestTopicpeizhiDTOs = _expertTestTopicService.GetListpeizhi();
            var topictypes = _liaotianService.GetSYScode("expert_test_topic", "topictype");
            var zhishitypes = _liaotianService.GetSYScode("expert_test_topic", "zhishitype");
            if (expertTestTopicpeizhiDTOs == null || expertTestTopicpeizhiDTOs.Count == 0)
            {
                expertTestTopicpeizhiDTOs = new List<ExpertTestTopicpeizhiDTO>();
                foreach (var topictype in topictypes)
                {
                    foreach (var zhishitype in zhishitypes)
                    {
                        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);
                    }
                }
            }
            else
            {
                foreach (var expertTestTopicpeizhiDTO in expertTestTopicpeizhiDTOs)
                {
                    var aaaa  = expertTestTopicpeizhiDTOs.Where(x => x.Topictype == expertTestTopicpeizhiDTO.Topictype).Sum(x => x.Fenshu);
                    expertTestTopicpeizhiDTO.zongFenshu = aaaa.HasValue? aaaa.Value.ToString("0.##"):"";
                    expertTestTopicpeizhiDTO.zongFenzhi = expertTestTopicpeizhiDTO.Fenzhi.HasValue ? expertTestTopicpeizhiDTO.Fenzhi.Value.ToString("0.##") : "";
                }
            }
            ViewBag.expertTestTopicpeizhiDTOs = expertTestTopicpeizhiDTOs;
            ViewBag.topictype = topictypes;
            ViewBag.zhishitype = zhishitypes;
            return View();
        }
        /// <summary>
        /// 保存
        /// </summary>
        /// <param name="data">岗位实体类对象</param>
        /// <returns></returns>
        ///
        [HttpPost]
        public IActionResult SavePeizhi(ExpertTestTopicpeizhiDTO data)
        {
            ResultEntity resultEntity = new ResultEntity();
            using (TransactionScope scope = new TransactionScope())
            {
                var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
                ViewData["curentuser"] = curentuser;
                data.RecStatus = "A";
                if (data.Zhishitypes != null && data.Zhishitypes.Length > 0)
                {
                    for (int i = 0; i < data.Zhishitypes.Length; i++)
                    {
                        var resultDTO = _expertTestTopicService.Getpeizhi(data.Topictypes[i],data.Zhishitypes[i]);
                        if (string.IsNullOrEmpty(resultDTO.Id))
                        {
                            resultDTO = new ExpertTestTopicpeizhiDTO();
                            resultDTO.ShijianId = data.ShijianIds[i];
                            resultDTO.Topictype = data.Topictypes[i];
                            resultDTO.Zhishitype = data.Zhishitypes[i];
                            resultDTO.Fenshu = data.Fenshus[i];
                            for (int j = 0; j < data.Topictypeszong.Length; j++)
                            {
                                if(data.Topictypeszong[j]== resultDTO.Topictype)
                                {
                                    resultDTO.Fenzhi = data.Fenzhizong[j];
                                }
                            }
                            resultDTO.Creater = curentuser.Id;
                            resultDTO.Createtime = DateTime.Now;
                        }
                        else
                        {
                            resultDTO.ShijianId = data.ShijianIds[i];
                            resultDTO.Topictype = data.Topictypes[i];
                            resultDTO.Zhishitype = data.Zhishitypes[i];
                            resultDTO.Fenshu = data.Fenshus[i];
                            for (int j = 0; j < data.Topictypeszong.Length; j++)
                            {
                                if (data.Topictypeszong[j] == resultDTO.Topictype)
                                {
                                    resultDTO.Fenzhi = data.Fenzhizong[j];
                                }
                            }
                        }
                        resultDTO.Modifier = curentuser.Id;
                        resultDTO.Modifytime = DateTime.Now;
                        resultEntity = _expertTestTopicService.savepeizhi(resultDTO);
                    }
                }
                scope.Complete();
            }
            return new JsonResult(resultEntity);
        }
    }
}