From 00446e5e764fd57ea0f28b30921f4a5daa60c890 Mon Sep 17 00:00:00 2001 From: username@email.com <yzy2002yzy@163.com> Date: 星期五, 23 七月 2021 14:10:31 +0800 Subject: [PATCH] 流程 费用申请,物品申领 --- zhengcaioa/Services/WfRunProcessService.cs | 877 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 877 insertions(+), 0 deletions(-) diff --git a/zhengcaioa/Services/WfRunProcessService.cs b/zhengcaioa/Services/WfRunProcessService.cs index fd21e38..97da843 100644 --- a/zhengcaioa/Services/WfRunProcessService.cs +++ b/zhengcaioa/Services/WfRunProcessService.cs @@ -1812,5 +1812,882 @@ return result; } + + public ResultEntity WfAskcost(string DanjuId, string step, string tongguojujue, string Userid, string Content, string title, string version) + { + + ResultEntity result = new ResultEntity(); + result.Result = true; + + + WfRunProcessDTO wfRunProcessDTO = this.GetList(DanjuId, "04").FirstOrDefault(); + if (wfRunProcessDTO != null) + { + version = wfRunProcessDTO.Version; + } + + + if (version == "v1") + { + if (step == "鎻愪氦") + { + //鏇存柊娴佺▼瀹炰緥 + // WfRunProcessDTO wfRunProcessDTO = this.GetList(DanjuId, "04").FirstOrDefault(); + if (wfRunProcessDTO == null) + { + //鎻掑叆娴佺▼瀹炰緥 + wfRunProcessDTO = new WfRunProcessDTO(); + //wfRunProcessDTO.Applyno = + wfRunProcessDTO.Applytime = DateTime.Now; + wfRunProcessDTO.Applytiye = "04"; + wfRunProcessDTO.DanjuId = DanjuId; + wfRunProcessDTO.Content = title; + wfRunProcessDTO.Step = "璐㈠姟瀹℃壒"; + wfRunProcessDTO.ShenpiStatus = "D"; + wfRunProcessDTO.Version = version; + wfRunProcessDTO.RecStatus = "A"; + wfRunProcessDTO.Creater = Userid; + wfRunProcessDTO.Createtime = DateTime.Now; + wfRunProcessDTO.Modifier = Userid; + wfRunProcessDTO.Modifytime = DateTime.Now; + wfRunProcessDTO.Deelurl = "/AdmAsk/Askcost?id=" + DanjuId; + result = this.save(wfRunProcessDTO); + if (result.Result == false) + { + return result; + } + //鏌ヨ澶勭悊浜� + var hrPositions = _context.PltRoles.Where(x => x.RecStatus == "A" && x.RoleName == "璐㈠姟").FirstOrDefault(); + if (hrPositions == null) + { + result.Result = false; + result.Message = "鏈壘鍒拌亴浣�"; + return result; + } + var pltUsers = (from a in _context.PltUsers.Where(x => x.RecStatus == "A" && x.Zhiwustatus == "A") + join b in _context.PltUserRoles.Where(x => x.RecStatus == "A" && x.RoleId == hrPositions.Id) on a.Id equals b.UserId + select a + ).ToList(); + + if (pltUsers == null || pltUsers.Count == 0) + { + result.Result = false; + result.Message = "鏈壘鍒板鐞嗕汉"; + return result; + } + foreach (var pltUser in pltUsers) + { + //鎻掑叆寰呭姙 + WfNeeddeelDTO wfNeeddeelDTO = new WfNeeddeelDTO(); + wfNeeddeelDTO.RunProcessId = wfRunProcessDTO.Id; + wfNeeddeelDTO.SendUserId = Userid; + wfNeeddeelDTO.DeelUserId = pltUser.Id; + wfNeeddeelDTO.Sendtime = DateTime.Now; + wfNeeddeelDTO.Resivetime = DateTime.Now; + wfNeeddeelDTO.Step = "璐㈠姟瀹℃壒"; + wfNeeddeelDTO.NeeddeelType = "1"; + wfNeeddeelDTO.ChuliStatus = "0"; + wfNeeddeelDTO.Deelurl = "/AdmAsk/Askcost?id=" + DanjuId; + wfNeeddeelDTO.Content = ""; + wfNeeddeelDTO.Sort = 1; + wfNeeddeelDTO.RecStatus = "A"; + wfNeeddeelDTO.Creater = Userid; + wfNeeddeelDTO.Createtime = DateTime.Now; + wfNeeddeelDTO.Modifier = Userid; + wfNeeddeelDTO.Modifytime = wfNeeddeelDTO.Createtime; + result = _wfNeeddeelService.save(wfNeeddeelDTO); + if (result.Result == false) + { + return result; + } + } + + //鎻掑叆鏂扮殑宸插姙 + WfHistory wfHistoryDTO1 = new WfHistory(); + wfHistoryDTO1.Id = Guid.NewGuid().ToString(); + wfHistoryDTO1.RunProcessId = wfRunProcessDTO.Id; + wfHistoryDTO1.SendUserId = Userid; + wfHistoryDTO1.DeelUserId = wfRunProcessDTO.Creater; + wfHistoryDTO1.Sendtime = DateTime.Now; + wfHistoryDTO1.Resivetime = DateTime.Now; + wfHistoryDTO1.Step = "鎻愪氦"; + wfHistoryDTO1.NeeddeelType = "1"; + wfHistoryDTO1.ChuliStatus = "2"; + wfHistoryDTO1.Deelurl = "/SalaryCheck/Appeal?id=" + DanjuId; + wfHistoryDTO1.Content = ""; + wfHistoryDTO1.Sort = 1; + wfHistoryDTO1.RecStatus = "A"; + wfHistoryDTO1.Creater = Userid; + wfHistoryDTO1.Createtime = DateTime.Now; + wfHistoryDTO1.Modifier = Userid; + wfHistoryDTO1.Modifytime = wfHistoryDTO1.Createtime; + _context.WfHistories.Add(wfHistoryDTO1); + _context.SaveChanges(); + } + else + { + wfRunProcessDTO.Step = "璐㈠姟瀹℃壒"; + wfRunProcessDTO.Modifier = Userid; + wfRunProcessDTO.Modifytime = DateTime.Now; + result = this.save(wfRunProcessDTO); + if (result.Result == false) + { + return result; + } + + //鏇存柊寰呭姙 + List<WfNeeddeelDTO> wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "鎻愪氦"); + var wfHistoryDTOs = _mapper.Map<List<WfHistoryDTO>>(wfNeeddeelDTOs); + + var wfHistoryDTO = wfHistoryDTOs.Where(x => x.DeelUserId == Userid).FirstOrDefault(); + if (wfHistoryDTO == null) + { + result.Result = false; + result.Message = "鏈壘鍒颁唬鍔�"; + return result; + } + wfHistoryDTO.Content = Content; + wfHistoryDTO.ChuliStatus = "2"; + wfHistoryDTO.Modifier = Userid; + wfHistoryDTO.Modifytime = DateTime.Now; + var wfHistories = _mapper.Map<List<WfHistory>>(wfHistoryDTOs); + foreach (var wfHistory in wfHistories) + { + _context.WfHistories.Add(wfHistory); + } + var wfNeeddeels = _mapper.Map<List<WfNeeddeel>>(wfNeeddeelDTOs); + foreach (var wfNeeddeel in wfNeeddeels) + { + //_wfNeeddeelService.ModifyStatus(wfNeeddeel.Id, Userid); + _context.WfNeeddeels.Remove(wfNeeddeel); + } + _context.SaveChanges(); + + //鏌ヨ澶勭悊浜� + var hrPositions = _context.PltRoles.Where(x => x.RecStatus == "A" && x.RoleName == "璐㈠姟").FirstOrDefault(); + if (hrPositions == null) + { + result.Result = false; + result.Message = "鏈壘鍒拌亴浣�"; + return result; + } + var pltUsers = (from a in _context.PltUsers.Where(x => x.RecStatus == "A" && x.Zhiwustatus == "A") + join b in _context.PltUserRoles.Where(x => x.RecStatus == "A" && x.RoleId == hrPositions.Id) on a.Id equals b.UserId + select a + ).ToList(); + + if (pltUsers == null || pltUsers.Count == 0) + { + result.Result = false; + result.Message = "鏈壘鍒板鐞嗕汉"; + return result; + } + + foreach (var pltUser in pltUsers) + { + //鎻掑叆鏂扮殑寰呭姙 + WfNeeddeelDTO wfNeeddeelDTO = new WfNeeddeelDTO(); + wfNeeddeelDTO.RunProcessId = wfRunProcessDTO.Id; + wfNeeddeelDTO.SendUserId = Userid; + wfNeeddeelDTO.DeelUserId = pltUser.Id; + wfNeeddeelDTO.Sendtime = DateTime.Now; + wfNeeddeelDTO.Resivetime = DateTime.Now; + wfNeeddeelDTO.Step = "璐㈠姟瀹℃壒"; + wfNeeddeelDTO.NeeddeelType = "1"; + wfNeeddeelDTO.ChuliStatus = "0"; + wfNeeddeelDTO.Deelurl = "/AdmAsk/Askcost?id=" + DanjuId; + wfNeeddeelDTO.Content = ""; + wfNeeddeelDTO.Sort = 2; + wfNeeddeelDTO.RecStatus = "A"; + wfNeeddeelDTO.Creater = Userid; + wfNeeddeelDTO.Createtime = DateTime.Now; + wfNeeddeelDTO.Modifier = Userid; + wfNeeddeelDTO.Modifytime = wfNeeddeelDTO.Createtime; + result = _wfNeeddeelService.save(wfNeeddeelDTO); + if (result.Result == false) + { + return result; + } + } + } + + + + + } + if (step == "璐㈠姟瀹℃壒") + { + //鏇存柊娴佺▼瀹炰緥 + //WfRunProcessDTO wfRunProcessDTO = this.GetList(DanjuId, "04").FirstOrDefault(); + if (wfRunProcessDTO == null) + { + result.Result = false; + result.Message = "鏈壘鍒版祦绋嬪疄渚�"; + return result; + } + if (wfRunProcessDTO.Step != "璐㈠姟瀹℃壒") + { + result.Result = false; + result.Message = "褰撳墠姝ラ宸茬粡澶勭悊"; + return result; + } + + if (tongguojujue == "A") + { + wfRunProcessDTO.Step = "鎬荤粡鐞嗗鎵�"; + wfRunProcessDTO.Modifier = Userid; + wfRunProcessDTO.Modifytime = DateTime.Now; + result = this.save(wfRunProcessDTO); + if (result.Result == false) + { + return result; + } + + //鏇存柊寰呭姙 + List<WfNeeddeelDTO> wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "璐㈠姟瀹℃壒"); + + + + var wfHistoryDTOs = _mapper.Map<List<WfHistoryDTO>>(wfNeeddeelDTOs); + + var wfHistoryDTO = wfHistoryDTOs.Where(x => x.DeelUserId == Userid).FirstOrDefault(); + if (wfHistoryDTO == null) + { + result.Result = false; + result.Message = "鏈壘鍒颁唬鍔�"; + return result; + } + + wfHistoryDTO.Content = Content; + wfHistoryDTO.ChuliStatus = "2"; + wfHistoryDTO.Modifier = Userid; + wfHistoryDTO.Modifytime = DateTime.Now; + + + var wfHistories = _mapper.Map<List<WfHistory>>(wfHistoryDTOs); + foreach (var wfHistory in wfHistories) + { + _context.WfHistories.Add(wfHistory); + } + var wfNeeddeels = _mapper.Map<List<WfNeeddeel>>(wfNeeddeelDTOs); + foreach (var wfNeeddeel in wfNeeddeels) + { + //_wfNeeddeelService.ModifyStatus(wfNeeddeel.Id, Userid); + _context.WfNeeddeels.Remove(wfNeeddeel); + } + _context.SaveChanges(); + + //鏌ヨ澶勭悊浜� + var hrPositions = _context.PltRoles.Where(x => x.RecStatus == "A" && x.RoleName == "鎬荤粡鐞�").FirstOrDefault(); + if (hrPositions == null) + { + result.Result = false; + result.Message = "鏈壘鍒拌亴浣�"; + return result; + } + var pltUsers = (from a in _context.PltUsers.Where(x => x.RecStatus == "A" && x.Zhiwustatus == "A") + join b in _context.PltUserRoles.Where(x => x.RecStatus == "A" && x.RoleId == hrPositions.Id) on a.Id equals b.UserId + select a + ).ToList(); + + if (pltUsers == null || pltUsers.Count == 0) + { + result.Result = false; + result.Message = "鏈壘鍒板鐞嗕汉"; + return result; + } + + foreach (var pltUser in pltUsers) + { + //鎻掑叆鏂扮殑寰呭姙 + WfNeeddeelDTO wfNeeddeelDTO = new WfNeeddeelDTO(); + wfNeeddeelDTO.RunProcessId = wfRunProcessDTO.Id; + wfNeeddeelDTO.SendUserId = Userid; + wfNeeddeelDTO.DeelUserId = pltUser.Id; + wfNeeddeelDTO.Sendtime = DateTime.Now; + wfNeeddeelDTO.Resivetime = DateTime.Now; + wfNeeddeelDTO.Step = "鎬荤粡鐞嗗鎵�"; + wfNeeddeelDTO.NeeddeelType = "1"; + wfNeeddeelDTO.ChuliStatus = "0"; + wfNeeddeelDTO.Deelurl = "/AdmAsk/Askcost?id=" + DanjuId; + wfNeeddeelDTO.Content = ""; + wfNeeddeelDTO.Sort = 3; + wfNeeddeelDTO.RecStatus = "A"; + wfNeeddeelDTO.Creater = Userid; + wfNeeddeelDTO.Createtime = DateTime.Now; + wfNeeddeelDTO.Modifier = Userid; + wfNeeddeelDTO.Modifytime = wfNeeddeelDTO.Createtime; + result = _wfNeeddeelService.save(wfNeeddeelDTO); + if (result.Result == false) + { + return result; + } + } + } + else + { + wfRunProcessDTO.Step = "鎻愪氦"; + wfRunProcessDTO.Modifier = Userid; + wfRunProcessDTO.Modifytime = DateTime.Now; + result = this.save(wfRunProcessDTO); + if (result.Result == false) + { + return result; + } + + //鏇存柊寰呭姙 + List<WfNeeddeelDTO> wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "璐㈠姟瀹℃壒"); + var wfHistoryDTOs = _mapper.Map<List<WfHistoryDTO>>(wfNeeddeelDTOs); + + var wfHistoryDTO = wfHistoryDTOs.Where(x => x.DeelUserId == Userid).FirstOrDefault(); + if (wfHistoryDTO == null) + { + result.Result = false; + result.Message = "鏈壘鍒颁唬鍔�"; + return result; + } + wfHistoryDTO.Content = Content; + wfHistoryDTO.ChuliStatus = "1"; + wfHistoryDTO.Modifier = Userid; + wfHistoryDTO.Modifytime = DateTime.Now; + var wfHistories = _mapper.Map<List<WfHistory>>(wfHistoryDTOs); + foreach (var wfHistory in wfHistories) + { + _context.WfHistories.Add(wfHistory); + } + var wfNeeddeels = _mapper.Map<List<WfNeeddeel>>(wfNeeddeelDTOs); + foreach (var wfNeeddeel in wfNeeddeels) + { + //_wfNeeddeelService.ModifyStatus(wfNeeddeel.Id, Userid); + _context.WfNeeddeels.Remove(wfNeeddeel); + } + _context.SaveChanges(); + + + //鎻掑叆鏂扮殑寰呭姙 + WfNeeddeelDTO wfNeeddeelDTO = new WfNeeddeelDTO(); + wfNeeddeelDTO.RunProcessId = wfRunProcessDTO.Id; + wfNeeddeelDTO.SendUserId = Userid; + wfNeeddeelDTO.DeelUserId = wfRunProcessDTO.Creater; + wfNeeddeelDTO.Sendtime = DateTime.Now; + wfNeeddeelDTO.Resivetime = DateTime.Now; + wfNeeddeelDTO.Step = "鎻愪氦"; + wfNeeddeelDTO.NeeddeelType = "1"; + wfNeeddeelDTO.ChuliStatus = "0"; + wfNeeddeelDTO.Deelurl = "/AdmAsk/Askcost?id=" + DanjuId; + wfNeeddeelDTO.Content = ""; + wfNeeddeelDTO.Sort = 1; + wfNeeddeelDTO.RecStatus = "A"; + wfNeeddeelDTO.Creater = Userid; + wfNeeddeelDTO.Createtime = DateTime.Now; + wfNeeddeelDTO.Modifier = Userid; + wfNeeddeelDTO.Modifytime = wfNeeddeelDTO.Createtime; + result = _wfNeeddeelService.save(wfNeeddeelDTO); + if (result.Result == false) + { + return result; + } + + } + + + + + + } + + if (step == "鎬荤粡鐞嗗鎵�") + { + //鏇存柊娴佺▼瀹炰緥 + //WfRunProcessDTO wfRunProcessDTO = this.GetList(DanjuId, "04").FirstOrDefault(); + if (wfRunProcessDTO == null) + { + result.Result = false; + result.Message = "鏈壘鍒版祦绋嬪疄渚�"; + return result; + } + if (wfRunProcessDTO.Step != "鎬荤粡鐞嗗鎵�") + { + result.Result = false; + result.Message = "褰撳墠姝ラ宸茬粡澶勭悊"; + return result; + } + if (tongguojujue == "A") + { + + wfRunProcessDTO.Step = "瀹岀粨"; + wfRunProcessDTO.ShenpiStatus = "A"; + wfRunProcessDTO.Modifier = Userid; + wfRunProcessDTO.Modifytime = DateTime.Now; + result = this.save(wfRunProcessDTO); + if (result.Result == false) + { + return result; + } + //鏇存柊鍗曟嵁 + var admAskcost = _context.AdmAskcosts.Find(DanjuId); + if (wfRunProcessDTO == null) + { + result.Result = false; + result.Message = "鏈壘鍒板崟鎹�"; + return result; + } + admAskcost.ShenpiStatus = "A"; + _context.SaveChanges(); + + List<WfNeeddeelDTO> wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "鎬荤粡鐞嗗鎵�"); + + var wfHistoryDTOs = _mapper.Map<List<WfHistoryDTO>>(wfNeeddeelDTOs); + + var wfHistoryDTO = wfHistoryDTOs.Where(x => x.DeelUserId == Userid).FirstOrDefault(); + if (wfHistoryDTO == null) + { + result.Result = false; + result.Message = "鏈壘鍒颁唬鍔�"; + return result; + } + wfHistoryDTO.Content = Content; + wfHistoryDTO.ChuliStatus = "2"; + wfHistoryDTO.Modifier = Userid; + wfHistoryDTO.Modifytime = DateTime.Now; + var wfHistories = _mapper.Map<List<WfHistory>>(wfHistoryDTOs); + foreach (var wfHistory in wfHistories) + { + _context.WfHistories.Add(wfHistory); + } + var wfNeeddeels = _mapper.Map<List<WfNeeddeel>>(wfNeeddeelDTOs); + foreach (var wfNeeddeel in wfNeeddeels) + { + // _wfNeeddeelService.ModifyStatus(wfNeeddeel.Id, Userid); + _context.WfNeeddeels.Remove(wfNeeddeel); + } + _context.SaveChanges(); + } + else + { + wfRunProcessDTO.Step = "鎻愪氦"; + wfRunProcessDTO.Modifier = Userid; + wfRunProcessDTO.Modifytime = DateTime.Now; + result = this.save(wfRunProcessDTO); + if (result.Result == false) + { + return result; + } + + //鏇存柊寰呭姙 + List<WfNeeddeelDTO> wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "鎬荤粡鐞嗗鎵�"); + var wfHistoryDTOs = _mapper.Map<List<WfHistoryDTO>>(wfNeeddeelDTOs); + + var wfHistoryDTO = wfHistoryDTOs.Where(x => x.DeelUserId == Userid).FirstOrDefault(); + if (wfHistoryDTO == null) + { + result.Result = false; + result.Message = "鏈壘鍒颁唬鍔�"; + return result; + } + wfHistoryDTO.Content = Content; + wfHistoryDTO.ChuliStatus = "1"; + wfHistoryDTO.Modifier = Userid; + wfHistoryDTO.Modifytime = DateTime.Now; + var wfHistories = _mapper.Map<List<WfHistory>>(wfHistoryDTOs); + foreach (var wfHistory in wfHistories) + { + _context.WfHistories.Add(wfHistory); + } + var wfNeeddeels = _mapper.Map<List<WfNeeddeel>>(wfNeeddeelDTOs); + foreach (var wfNeeddeel in wfNeeddeels) + { + //_wfNeeddeelService.ModifyStatus(wfNeeddeel.Id, Userid); + _context.WfNeeddeels.Remove(wfNeeddeel); + } + _context.SaveChanges(); + + + //鎻掑叆鏂扮殑寰呭姙 + WfNeeddeelDTO wfNeeddeelDTO = new WfNeeddeelDTO(); + wfNeeddeelDTO.RunProcessId = wfRunProcessDTO.Id; + wfNeeddeelDTO.SendUserId = Userid; + wfNeeddeelDTO.DeelUserId = wfRunProcessDTO.Creater; + wfNeeddeelDTO.Sendtime = DateTime.Now; + wfNeeddeelDTO.Resivetime = DateTime.Now; + wfNeeddeelDTO.Step = "鎻愪氦"; + wfNeeddeelDTO.NeeddeelType = "1"; + wfNeeddeelDTO.ChuliStatus = "0"; + wfNeeddeelDTO.Deelurl = "/AdmAsk/Askcost?id=" + DanjuId; + wfNeeddeelDTO.Content = ""; + wfNeeddeelDTO.Sort = 1; + wfNeeddeelDTO.RecStatus = "A"; + wfNeeddeelDTO.Creater = Userid; + wfNeeddeelDTO.Createtime = DateTime.Now; + wfNeeddeelDTO.Modifier = Userid; + wfNeeddeelDTO.Modifytime = wfNeeddeelDTO.Createtime; + result = _wfNeeddeelService.save(wfNeeddeelDTO); + if (result.Result == false) + { + return result; + } + + } + + + + } + + + } + + + + return result; + } + + public ResultEntity WfAskGood(string DanjuId, string step, string tongguojujue, string Userid, string Content, string title, string version) + { + + ResultEntity result = new ResultEntity(); + result.Result = true; + + + WfRunProcessDTO wfRunProcessDTO = this.GetList(DanjuId, "05").FirstOrDefault(); + if (wfRunProcessDTO != null) + { + version = wfRunProcessDTO.Version; + } + + + if (version == "v1") + { + if (step == "鎻愪氦") + { + //鏇存柊娴佺▼瀹炰緥 + // WfRunProcessDTO wfRunProcessDTO = this.GetList(DanjuId, "05").FirstOrDefault(); + if (wfRunProcessDTO == null) + { + //鎻掑叆娴佺▼瀹炰緥 + wfRunProcessDTO = new WfRunProcessDTO(); + //wfRunProcessDTO.Applyno = + wfRunProcessDTO.Applytime = DateTime.Now; + wfRunProcessDTO.Applytiye = "05"; + wfRunProcessDTO.DanjuId = DanjuId; + wfRunProcessDTO.Content = title; + wfRunProcessDTO.Step = "琛屾斂瀹℃壒"; + wfRunProcessDTO.ShenpiStatus = "D"; + wfRunProcessDTO.Version = version; + wfRunProcessDTO.RecStatus = "A"; + wfRunProcessDTO.Creater = Userid; + wfRunProcessDTO.Createtime = DateTime.Now; + wfRunProcessDTO.Modifier = Userid; + wfRunProcessDTO.Modifytime = DateTime.Now; + wfRunProcessDTO.Deelurl = "/AdmAsk/AskGood?id=" + DanjuId; + result = this.save(wfRunProcessDTO); + if (result.Result == false) + { + return result; + } + //鏌ヨ澶勭悊浜� + var hrPositions = _context.PltRoles.Where(x => x.RecStatus == "A" && x.RoleName == "琛屾斂").FirstOrDefault(); + if (hrPositions == null) + { + result.Result = false; + result.Message = "鏈壘鍒拌亴浣�"; + return result; + } + var pltUsers = (from a in _context.PltUsers.Where(x => x.RecStatus == "A" && x.Zhiwustatus == "A") + join b in _context.PltUserRoles.Where(x => x.RecStatus == "A" && x.RoleId == hrPositions.Id) on a.Id equals b.UserId + select a + ).ToList(); + + if (pltUsers == null || pltUsers.Count == 0) + { + result.Result = false; + result.Message = "鏈壘鍒板鐞嗕汉"; + return result; + } + foreach (var pltUser in pltUsers) + { + //鎻掑叆寰呭姙 + WfNeeddeelDTO wfNeeddeelDTO = new WfNeeddeelDTO(); + wfNeeddeelDTO.RunProcessId = wfRunProcessDTO.Id; + wfNeeddeelDTO.SendUserId = Userid; + wfNeeddeelDTO.DeelUserId = pltUser.Id; + wfNeeddeelDTO.Sendtime = DateTime.Now; + wfNeeddeelDTO.Resivetime = DateTime.Now; + wfNeeddeelDTO.Step = "琛屾斂瀹℃壒"; + wfNeeddeelDTO.NeeddeelType = "1"; + wfNeeddeelDTO.ChuliStatus = "0"; + wfNeeddeelDTO.Deelurl = "/AdmAsk/AskGood?id=" + DanjuId; + wfNeeddeelDTO.Content = ""; + wfNeeddeelDTO.Sort = 1; + wfNeeddeelDTO.RecStatus = "A"; + wfNeeddeelDTO.Creater = Userid; + wfNeeddeelDTO.Createtime = DateTime.Now; + wfNeeddeelDTO.Modifier = Userid; + wfNeeddeelDTO.Modifytime = wfNeeddeelDTO.Createtime; + result = _wfNeeddeelService.save(wfNeeddeelDTO); + if (result.Result == false) + { + return result; + } + } + + //鎻掑叆鏂扮殑宸插姙 + WfHistory wfHistoryDTO1 = new WfHistory(); + wfHistoryDTO1.Id = Guid.NewGuid().ToString(); + wfHistoryDTO1.RunProcessId = wfRunProcessDTO.Id; + wfHistoryDTO1.SendUserId = Userid; + wfHistoryDTO1.DeelUserId = wfRunProcessDTO.Creater; + wfHistoryDTO1.Sendtime = DateTime.Now; + wfHistoryDTO1.Resivetime = DateTime.Now; + wfHistoryDTO1.Step = "鎻愪氦"; + wfHistoryDTO1.NeeddeelType = "1"; + wfHistoryDTO1.ChuliStatus = "2"; + wfHistoryDTO1.Deelurl = "/SalaryCheck/Appeal?id=" + DanjuId; + wfHistoryDTO1.Content = ""; + wfHistoryDTO1.Sort = 1; + wfHistoryDTO1.RecStatus = "A"; + wfHistoryDTO1.Creater = Userid; + wfHistoryDTO1.Createtime = DateTime.Now; + wfHistoryDTO1.Modifier = Userid; + wfHistoryDTO1.Modifytime = wfHistoryDTO1.Createtime; + _context.WfHistories.Add(wfHistoryDTO1); + _context.SaveChanges(); + } + else + { + wfRunProcessDTO.Step = "琛屾斂瀹℃壒"; + wfRunProcessDTO.Modifier = Userid; + wfRunProcessDTO.Modifytime = DateTime.Now; + result = this.save(wfRunProcessDTO); + if (result.Result == false) + { + return result; + } + + //鏇存柊寰呭姙 + List<WfNeeddeelDTO> wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "鎻愪氦"); + var wfHistoryDTOs = _mapper.Map<List<WfHistoryDTO>>(wfNeeddeelDTOs); + + var wfHistoryDTO = wfHistoryDTOs.Where(x => x.DeelUserId == Userid).FirstOrDefault(); + if (wfHistoryDTO == null) + { + result.Result = false; + result.Message = "鏈壘鍒颁唬鍔�"; + return result; + } + wfHistoryDTO.Content = Content; + wfHistoryDTO.ChuliStatus = "2"; + wfHistoryDTO.Modifier = Userid; + wfHistoryDTO.Modifytime = DateTime.Now; + var wfHistories = _mapper.Map<List<WfHistory>>(wfHistoryDTOs); + foreach (var wfHistory in wfHistories) + { + _context.WfHistories.Add(wfHistory); + } + var wfNeeddeels = _mapper.Map<List<WfNeeddeel>>(wfNeeddeelDTOs); + foreach (var wfNeeddeel in wfNeeddeels) + { + //_wfNeeddeelService.ModifyStatus(wfNeeddeel.Id, Userid); + _context.WfNeeddeels.Remove(wfNeeddeel); + } + _context.SaveChanges(); + + //鏌ヨ澶勭悊浜� + var hrPositions = _context.PltRoles.Where(x => x.RecStatus == "A" && x.RoleName == "琛屾斂").FirstOrDefault(); + if (hrPositions == null) + { + result.Result = false; + result.Message = "鏈壘鍒拌亴浣�"; + return result; + } + var pltUsers = (from a in _context.PltUsers.Where(x => x.RecStatus == "A" && x.Zhiwustatus == "A") + join b in _context.PltUserRoles.Where(x => x.RecStatus == "A" && x.RoleId == hrPositions.Id) on a.Id equals b.UserId + select a + ).ToList(); + + if (pltUsers == null || pltUsers.Count == 0) + { + result.Result = false; + result.Message = "鏈壘鍒板鐞嗕汉"; + return result; + } + + foreach (var pltUser in pltUsers) + { + //鎻掑叆鏂扮殑寰呭姙 + WfNeeddeelDTO wfNeeddeelDTO = new WfNeeddeelDTO(); + wfNeeddeelDTO.RunProcessId = wfRunProcessDTO.Id; + wfNeeddeelDTO.SendUserId = Userid; + wfNeeddeelDTO.DeelUserId = pltUser.Id; + wfNeeddeelDTO.Sendtime = DateTime.Now; + wfNeeddeelDTO.Resivetime = DateTime.Now; + wfNeeddeelDTO.Step = "琛屾斂瀹℃壒"; + wfNeeddeelDTO.NeeddeelType = "1"; + wfNeeddeelDTO.ChuliStatus = "0"; + wfNeeddeelDTO.Deelurl = "/AdmAsk/AskGood?id=" + DanjuId; + wfNeeddeelDTO.Content = ""; + wfNeeddeelDTO.Sort = 2; + wfNeeddeelDTO.RecStatus = "A"; + wfNeeddeelDTO.Creater = Userid; + wfNeeddeelDTO.Createtime = DateTime.Now; + wfNeeddeelDTO.Modifier = Userid; + wfNeeddeelDTO.Modifytime = wfNeeddeelDTO.Createtime; + result = _wfNeeddeelService.save(wfNeeddeelDTO); + if (result.Result == false) + { + return result; + } + } + } + + + + + } + + + if (step == "琛屾斂瀹℃壒") + { + //鏇存柊娴佺▼瀹炰緥 + //WfRunProcessDTO wfRunProcessDTO = this.GetList(DanjuId, "05").FirstOrDefault(); + if (wfRunProcessDTO == null) + { + result.Result = false; + result.Message = "鏈壘鍒版祦绋嬪疄渚�"; + return result; + } + if (wfRunProcessDTO.Step != "琛屾斂瀹℃壒") + { + result.Result = false; + result.Message = "褰撳墠姝ラ宸茬粡澶勭悊"; + return result; + } + if (tongguojujue == "A") + { + + wfRunProcessDTO.Step = "瀹岀粨"; + wfRunProcessDTO.ShenpiStatus = "A"; + wfRunProcessDTO.Modifier = Userid; + wfRunProcessDTO.Modifytime = DateTime.Now; + result = this.save(wfRunProcessDTO); + if (result.Result == false) + { + return result; + } + //鏇存柊鍗曟嵁 + var admAskGood = _context.AdmAskGoods.Find(DanjuId); + if (wfRunProcessDTO == null) + { + result.Result = false; + result.Message = "鏈壘鍒板崟鎹�"; + return result; + } + admAskGood.ShenpiStatus = "A"; + _context.SaveChanges(); + + List<WfNeeddeelDTO> wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "琛屾斂瀹℃壒"); + + var wfHistoryDTOs = _mapper.Map<List<WfHistoryDTO>>(wfNeeddeelDTOs); + + var wfHistoryDTO = wfHistoryDTOs.Where(x => x.DeelUserId == Userid).FirstOrDefault(); + if (wfHistoryDTO == null) + { + result.Result = false; + result.Message = "鏈壘鍒颁唬鍔�"; + return result; + } + wfHistoryDTO.Content = Content; + wfHistoryDTO.ChuliStatus = "2"; + wfHistoryDTO.Modifier = Userid; + wfHistoryDTO.Modifytime = DateTime.Now; + var wfHistories = _mapper.Map<List<WfHistory>>(wfHistoryDTOs); + foreach (var wfHistory in wfHistories) + { + _context.WfHistories.Add(wfHistory); + } + var wfNeeddeels = _mapper.Map<List<WfNeeddeel>>(wfNeeddeelDTOs); + foreach (var wfNeeddeel in wfNeeddeels) + { + // _wfNeeddeelService.ModifyStatus(wfNeeddeel.Id, Userid); + _context.WfNeeddeels.Remove(wfNeeddeel); + } + _context.SaveChanges(); + } + else + { + wfRunProcessDTO.Step = "鎻愪氦"; + wfRunProcessDTO.Modifier = Userid; + wfRunProcessDTO.Modifytime = DateTime.Now; + result = this.save(wfRunProcessDTO); + if (result.Result == false) + { + return result; + } + + //鏇存柊寰呭姙 + List<WfNeeddeelDTO> wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "琛屾斂瀹℃壒"); + var wfHistoryDTOs = _mapper.Map<List<WfHistoryDTO>>(wfNeeddeelDTOs); + + var wfHistoryDTO = wfHistoryDTOs.Where(x => x.DeelUserId == Userid).FirstOrDefault(); + if (wfHistoryDTO == null) + { + result.Result = false; + result.Message = "鏈壘鍒颁唬鍔�"; + return result; + } + wfHistoryDTO.Content = Content; + wfHistoryDTO.ChuliStatus = "1"; + wfHistoryDTO.Modifier = Userid; + wfHistoryDTO.Modifytime = DateTime.Now; + var wfHistories = _mapper.Map<List<WfHistory>>(wfHistoryDTOs); + foreach (var wfHistory in wfHistories) + { + _context.WfHistories.Add(wfHistory); + } + var wfNeeddeels = _mapper.Map<List<WfNeeddeel>>(wfNeeddeelDTOs); + foreach (var wfNeeddeel in wfNeeddeels) + { + //_wfNeeddeelService.ModifyStatus(wfNeeddeel.Id, Userid); + _context.WfNeeddeels.Remove(wfNeeddeel); + } + _context.SaveChanges(); + + + //鎻掑叆鏂扮殑寰呭姙 + WfNeeddeelDTO wfNeeddeelDTO = new WfNeeddeelDTO(); + wfNeeddeelDTO.RunProcessId = wfRunProcessDTO.Id; + wfNeeddeelDTO.SendUserId = Userid; + wfNeeddeelDTO.DeelUserId = wfRunProcessDTO.Creater; + wfNeeddeelDTO.Sendtime = DateTime.Now; + wfNeeddeelDTO.Resivetime = DateTime.Now; + wfNeeddeelDTO.Step = "鎻愪氦"; + wfNeeddeelDTO.NeeddeelType = "1"; + wfNeeddeelDTO.ChuliStatus = "0"; + wfNeeddeelDTO.Deelurl = "/AdmAsk/AskGood?id=" + DanjuId; + wfNeeddeelDTO.Content = ""; + wfNeeddeelDTO.Sort = 1; + wfNeeddeelDTO.RecStatus = "A"; + wfNeeddeelDTO.Creater = Userid; + wfNeeddeelDTO.Createtime = DateTime.Now; + wfNeeddeelDTO.Modifier = Userid; + wfNeeddeelDTO.Modifytime = wfNeeddeelDTO.Createtime; + result = _wfNeeddeelService.save(wfNeeddeelDTO); + if (result.Result == false) + { + return result; + } + + } + + + + } + + + } + + + + return result; + } } } -- Gitblit v1.9.1