using DTO; using IServices; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Transactions; using zhengcaioa.IService; using zhengcaioa.Models; namespace zhengcaioa.Controllers.HR { [CheckLogin] public class HrJibengongziController : Controller { private readonly ILogger _logger; private readonly IHrJibengongziService _hrJibengongziService; private readonly ILiaotianService _liaotianService; private readonly IHrPositionService _hrPositionService; private readonly IPltPageService _pltPageService; public HrJibengongziController(ILogger logger, IHrJibengongziService hrJibengongziService, ILiaotianService liaotianService, IHrPositionService hrPositionService , IPltPageService pltPageService) { _logger = logger; _hrJibengongziService = hrJibengongziService; _liaotianService = liaotianService; _hrPositionService = hrPositionService; _pltPageService = pltPageService; } public IActionResult Index() { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; List actionlist = new List(); 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); var pageEntities = _pltPageService.GetUserPage(curentuser.Id, "/HrJibengongzi/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; ViewBag.post = _hrPositionService.GetList().Select(x => new { code = x.Id, label = x.PostName }).ToList(); return View(); } public IActionResult GetList(HrJibengongziDTOSearch search) { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; //JsonResult jsonResult = new JsonResult(_liaotianService.SearchByPaging(search), new Newtonsoft.Json.Serialization.DefaultContractResolver()); return new JsonResult(_hrJibengongziService.SearchByPaging(search)); } #region 编辑 public ActionResult Edit(string id = null) { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; var pageEntities = _pltPageService.GetUserPage(curentuser.Id, "/HrJibengongzi/Index"); var pageEntities2 = pageEntities.Where(x => x.PageMethod == "02").ToList(); ViewData["ActionInfo2"] = pageEntities2; HrJibengongziDTO dto = new HrJibengongziDTO(); if (!String.IsNullOrEmpty(id)) { dto = _hrJibengongziService.Get(id); } dto.JibengongziName = dto.Jibengongzi.HasValue ? dto.Jibengongzi.Value.ToString("F2") : ""; dto.BaomifeiName = dto.Baomifei.HasValue ? dto.Baomifei.Value.ToString("F2") : ""; dto.ShebaodanweiName = dto.Shebaodanwei.HasValue ? dto.Shebaodanwei.Value.ToString("F2") : ""; dto.ShebaogerenName = dto.Shebaogeren.HasValue ? dto.Shebaogeren.Value.ToString("F2") : ""; dto.QuanqingjiangName = dto.Quanqingjiang.HasValue ? dto.Quanqingjiang.Value.ToString("F2") : ""; dto.JiaotongbutieName = dto.Jiaotongbutie.HasValue ? dto.Jiaotongbutie.Value.ToString("F2") : ""; dto.EffecttimeName = dto.Effecttime.HasValue ? dto.Effecttime.Value.ToString("yyyy-MM-dd") : DateTime.Now.ToString("yyyy-MM-dd"); dto.JiabangongziName = dto.Jiabangongzi.HasValue ? dto.Jiabangongzi.Value.ToString("F2") : ""; ViewBag.dianhuabutie = _liaotianService.GetSYScode("hr_jibengongzi", "dianhuabutie"); ViewBag.post = _hrPositionService.GetList(); ViewData.Model = dto; return View(); } /// /// 保存 /// /// 岗位实体类对象 /// [HttpPost] public IActionResult Save(HrJibengongziDTO data) { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; data.RecStatus = "A"; if (String.IsNullOrEmpty(data.Id)) { data.Creater = curentuser.Id; data.Createtime = DateTime.Now; } data.Modifier = curentuser.Id; data.Modifytime = DateTime.Now; ResultEntity resultEntity = _hrJibengongziService.save(data); return new JsonResult(resultEntity); } #endregion /// /// 删除主信息 /// /// 实体 /// /// public IActionResult Nullify(string Id = "") { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; return new JsonResult(_hrJibengongziService.ModifyStatus(Id, curentuser.Id)); } public IActionResult EditShebao() { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; var shebaoDTO = _hrJibengongziService.GetListShebao().FirstOrDefault(); if (shebaoDTO == null) { shebaoDTO = new HrShebaoDTO(); shebaoDTO.Shebaodanwei = 0; shebaoDTO.Shebaogeren = 0; } ViewData.Model = shebaoDTO; return View(); } /// /// 保存 /// /// 岗位实体类对象 /// /// [HttpPost] public IActionResult SaveShebao(HrShebaoDTO data) { ResultEntity resultEntity = new ResultEntity(); using (TransactionScope scope = new TransactionScope()) { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; data.RecStatus = "A"; var resultDTO = _hrJibengongziService.GetListShebao().FirstOrDefault(); if (resultDTO == null || string.IsNullOrEmpty(resultDTO.Id)) { resultDTO = new HrShebaoDTO(); resultDTO.Shebaodanwei = data.Shebaodanwei; resultDTO.Shebaogeren = data.Shebaogeren; resultDTO.Creater = curentuser.Id; resultDTO.Createtime = DateTime.Now; } else { resultDTO.Shebaodanwei = data.Shebaodanwei; resultDTO.Shebaogeren = data.Shebaogeren; } resultDTO.Modifier = curentuser.Id; resultDTO.Modifytime = DateTime.Now; resultEntity = _hrJibengongziService.saveShebao(resultDTO); scope.Complete(); } return new JsonResult(resultEntity); } } }