using AutoMapper; using DTO; using DTO.Models; using IServices; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using zhengcaioa.IService; using zhengcaioa.Models; namespace Services { public class WfRunProcessService: IWfRunProcessService { private readonly zhengcaioaContext _context; private readonly IMapper _mapper; private readonly IWfNeeddeelService _wfNeeddeelService; public WfRunProcessService(zhengcaioaContext context, IMapper mapper, IWfNeeddeelService wfNeeddeelService) { _context = context; _mapper = mapper; _wfNeeddeelService = wfNeeddeelService; } public ResultEntity save(WfRunProcessDTO dto) { ResultEntity resultEntity = new ResultEntity(); try { var model = _mapper.Map(dto); if (String.IsNullOrEmpty(model.Id)) { model.Id = Guid.NewGuid().ToString(); dto.Id = model.Id; var datestreing = DateTime.Now.ToString("yyyyMMdd"); var Applyno = _context.WfRunProcesses.Where(x => x.Applyno.Contains(datestreing)).Max(x => x.Applyno); if (string.IsNullOrEmpty(Applyno)) { model.Applyno = datestreing + 1.ToString().PadLeft(4, '0'); } else { model.Applyno = datestreing + (int.Parse(Applyno.Substring(Applyno.Length - 4)) + 1).ToString().PadLeft(4, '0'); } _context.WfRunProcesses.Add(model); } else { var updateWfRunProcess = _context.WfRunProcesses.Find(model.Id); updateWfRunProcess.Applyno = model.Applyno; updateWfRunProcess.Applytime = model.Applytime; updateWfRunProcess.Applytiye = model.Applytiye; updateWfRunProcess.DanjuId = model.DanjuId; updateWfRunProcess.Content = model.Content; updateWfRunProcess.Step = model.Step; updateWfRunProcess.ShenpiStatus = model.ShenpiStatus; updateWfRunProcess.Version = model.Version; updateWfRunProcess.Deelurl = model.Deelurl; updateWfRunProcess.RecStatus = model.RecStatus; // updateWfRunProcess.Creater = WfRunProcess.Creater; //updateWfRunProcess.Createtime = WfRunProcess.Createtime; updateWfRunProcess.Modifier = model.Modifier; updateWfRunProcess.Modifytime = model.Modifytime; } _context.SaveChanges(); resultEntity.ReturnID = model.Id; resultEntity.Result = true; } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "保存失败,请联系管理员"; } return resultEntity; } public WfRunProcessDTO Get(string id) { WfRunProcess entity = _context.WfRunProcesses.Find(id); if (entity.RecStatus != "A") { entity = new WfRunProcess(); } var WfRunProcessDTO = _mapper.Map(entity); return WfRunProcessDTO; } public ResultDataEntity SearchByPaging(WfRunProcessDTOSearch searchEntity) { ResultDataEntity data = new ResultDataEntity(); List list = new List(); 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 } ); DateTime Applytimestart = DateTime.Now; DateTime Applytimeend = DateTime.Now; if (!string.IsNullOrWhiteSpace(searchEntity.Applytime)) { string[] Applytimes = searchEntity.Applytime.Split("|"); DateTime.TryParse(Applytimes[0], out Applytimestart); DateTime.TryParse(Applytimes[1], out Applytimeend); Applytimeend = Applytimeend.AddDays(1); } ///WfRunProcesses var query = (from a in _context.WfRunProcesses join e in listCode.Where(x => x.CodeTable == "wf_run_process" && x.CodeField == "shenpi_status") on a.ShenpiStatus equals e.CodeSn into esssss from eee in esssss.DefaultIfEmpty() join d in _context.WfApplytypes on a.Applytiye equals d.Applyno join b in _context.PltUsers on a.Creater equals b.Id join c in _context.HrDepts on b.DeptId equals c.Id where a.RecStatus == "A" && (string.IsNullOrWhiteSpace(searchEntity.Applytime) || (a.Applytime >= Applytimestart && a.Applytime <= Applytimeend)) && (string.IsNullOrWhiteSpace(searchEntity.Applytiye) || a.Applytiye == searchEntity.Applytiye.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.ShenpiStatus) || a.ShenpiStatus == searchEntity.ShenpiStatus.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.Applyno) || a.Applyno == searchEntity.Applyno.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.Creater) || a.Creater == searchEntity.Creater.Trim()) select new WfRunProcessDTO { Id = a.Id, ApplytimeName = a.Applytime.Value.ToString("yyyy-MM-dd"), Applyno = a.Applyno, Creater = a.Creater, Applytiye = d.Applytiye, Content = a.Content, ShenpiStatusName = eee.Comments, ShenpiStatus = a.ShenpiStatus, Step = a.Step, Version = a.Version, Createtime = a.Createtime, Deelurl = a.Deelurl, RecStatus = a.RecStatus, Modifier = a.Modifier, Modifytime = a.Modifytime, } ).OrderByDescending(x => x.Applyno).ToList(); //if (searchEntity.totalrows == 0) searchEntity.totalrows = query.Count(); var lianlist = query.Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList(); data.LoadData(searchEntity, lianlist); return data; } public ResultEntity ModifyStatus(string id, string userid) { ResultEntity result = new ResultEntity(); result.Result = true; var model = _context.WfRunProcesses.Find(id); if (model != null) { model.RecStatus = "D"; model.Modifier = userid; model.Modifytime = DateTime.Now; _context.SaveChanges(); } return result; } /// /// 获取所有有效流程类型 /// /// public List GetList(string DanjuId = "",string Applytiye = "") { var listRole = _context.WfRunProcesses.Where(r => r.RecStatus == "A").ToList(); if(!string.IsNullOrEmpty(DanjuId) && !string.IsNullOrEmpty(Applytiye)) { listRole = listRole.Where(x=>x.DanjuId == DanjuId && x.Applytiye == Applytiye).ToList(); } var list = _mapper.Map>(listRole); return list; } public ResultEntity WfAskLeave(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, "01").FirstOrDefault(); if (wfRunProcessDTO != null) { version = wfRunProcessDTO.Version; } if (version == "v1") { if (step == "提交") { //更新流程实例 // WfRunProcessDTO wfRunProcessDTO = this.GetList(DanjuId, "01").FirstOrDefault(); if (wfRunProcessDTO == null) { //插入流程实例 wfRunProcessDTO = new WfRunProcessDTO(); //wfRunProcessDTO.Applyno = wfRunProcessDTO.Applytime = DateTime.Now; wfRunProcessDTO.Applytiye = "01"; 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 = "/Signin/AskLeave?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 = "/Signin/AskLeave?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 = "/Signin/AskLeave?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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "提交"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 = "/Signin/AskLeave?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, "01").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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "人事审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 = "/Signin/AskLeave?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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "人事审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 = "/Signin/AskLeave?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, "01").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 askLeave = _context.AdmAskLeaves.Find(DanjuId); if (wfRunProcessDTO == null) { result.Result = false; result.Message = "未找到单据"; return result; } askLeave.ShenpiStatus = "A"; _context.SaveChanges(); List wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "总经理审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "总经理审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 = "/Signin/AskLeave?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 WfAskLeaveOff(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, "02").FirstOrDefault(); if (wfRunProcessDTO != null) { version = wfRunProcessDTO.Version; } if (version == "v1") { if (step == "提交") { //更新流程实例 // WfRunProcessDTO wfRunProcessDTO = this.GetList(DanjuId, "02").FirstOrDefault(); if (wfRunProcessDTO == null) { //插入流程实例 wfRunProcessDTO = new WfRunProcessDTO(); //wfRunProcessDTO.Applyno = wfRunProcessDTO.Applytime = DateTime.Now; wfRunProcessDTO.Applytiye = "02"; 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 = "/Signin/AskLeaveOff?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 = "/Signin/AskLeaveOff?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 = "/Signin/AskLeaveOff?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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "提交"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 = "/Signin/AskLeaveOff?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, "02").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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "人事审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 = "/Signin/AskLeaveOff?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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "人事审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 = "/Signin/AskLeaveOff?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, "02").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 askLeaveOff = _context.AdmAskLeaveOffs.Find(DanjuId); if (wfRunProcessDTO == null) { result.Result = false; result.Message = "未找到单据"; return result; } askLeaveOff.ShenpiStatus = "A"; _context.SaveChanges(); List wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "总经理审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "总经理审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 = "/Signin/askLeaveOff?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 WfSalaryAppeal(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, "03").FirstOrDefault(); if (wfRunProcessDTO != null) { version = wfRunProcessDTO.Version; } if (version == "v1") { if (step == "提交") { //更新流程实例 // WfRunProcessDTO wfRunProcessDTO = this.GetList(DanjuId, "03").FirstOrDefault(); if (wfRunProcessDTO == null) { //插入流程实例 wfRunProcessDTO = new WfRunProcessDTO(); //wfRunProcessDTO.Applyno = wfRunProcessDTO.Applytime = DateTime.Now; wfRunProcessDTO.Applytiye = "03"; 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 = "/SalaryCheck/Appeal?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 = "/SalaryCheck/Appeal?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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "提交"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 = "/SalaryCheck/Appeal?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, "03").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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "人事审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 = "/SalaryCheck/Appeal?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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "人事审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 = "/SalaryCheck/Appeal?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, "03").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 salaryAppeal = _context.HrSalaryAppeal.Find(DanjuId); if (wfRunProcessDTO == null) { result.Result = false; result.Message = "未找到单据"; return result; } salaryAppeal.shenpi_status = "A"; _context.SaveChanges(); List wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "总经理审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "总经理审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 = "/SalaryCheck/Appeal?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 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 = "/AdmAsk/Askcost?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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "提交"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "财务审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "财务审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "总经理审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "总经理审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 = "/AdmAsk/AskGood?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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "提交"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "行政审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "行政审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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; } public ResultEntity WfAskovertime(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, "10").FirstOrDefault(); if (wfRunProcessDTO != null) { version = wfRunProcessDTO.Version; } if (version == "v1") { if (step == "提交") { //更新流程实例 // WfRunProcessDTO wfRunProcessDTO = this.GetList(DanjuId, "10").FirstOrDefault(); if (wfRunProcessDTO == null) { //插入流程实例 wfRunProcessDTO = new WfRunProcessDTO(); //wfRunProcessDTO.Applyno = wfRunProcessDTO.Applytime = DateTime.Now; wfRunProcessDTO.Applytiye = "10"; 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/Askovertime?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/Askovertime?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 = "/AdmAsk/Askovertime?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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "提交"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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/Askovertime?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, "10").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 admAskovertime = _context.AdmAskovertimes.Find(DanjuId); if (wfRunProcessDTO == null) { result.Result = false; result.Message = "未找到单据"; return result; } admAskovertime.ShenpiStatus = "A"; _context.SaveChanges(); List wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "人事审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "人事审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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/Askovertime?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 WfAskCar(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, "06").FirstOrDefault(); if (wfRunProcessDTO != null) { version = wfRunProcessDTO.Version; } if (version == "v1") { if (step == "提交") { //更新流程实例 // WfRunProcessDTO wfRunProcessDTO = this.GetList(DanjuId, "06").FirstOrDefault(); if (wfRunProcessDTO == null) { //插入流程实例 wfRunProcessDTO = new WfRunProcessDTO(); //wfRunProcessDTO.Applyno = wfRunProcessDTO.Applytime = DateTime.Now; wfRunProcessDTO.Applytiye = "06"; 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/AskCar?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/AskCar?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 = "/AdmAsk/AskCar?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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "提交"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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/AskCar?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, "06").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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "行政审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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/AskCar?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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "行政审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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/AskCar?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, "06").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 admAskCar = _context.AdmAskCars.Find(DanjuId); if (wfRunProcessDTO == null) { result.Result = false; result.Message = "未找到单据"; return result; } admAskCar.ShenpiStatus = "A"; _context.SaveChanges(); List wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "总经理审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "总经理审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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/AskCar?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 WfAskMarketingCost(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, "07").FirstOrDefault(); if (wfRunProcessDTO != null) { version = wfRunProcessDTO.Version; } if (version == "v1") { if (step == "提交") { //更新流程实例 // WfRunProcessDTO wfRunProcessDTO = this.GetList(DanjuId, "07").FirstOrDefault(); if (wfRunProcessDTO == null) { //插入流程实例 wfRunProcessDTO = new WfRunProcessDTO(); //wfRunProcessDTO.Applyno = wfRunProcessDTO.Applytime = DateTime.Now; wfRunProcessDTO.Applytiye = "07"; 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/AskMarketingCost?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/AskMarketingCost?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 = "/AdmAsk/AskMarketingCost?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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "提交"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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/AskMarketingCost?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, "07").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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "财务审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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/AskMarketingCost?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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "财务审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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/AskMarketingCost?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, "07").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 admAskMarketingCost = _context.AdmAskMarketingCosts.Find(DanjuId); if (wfRunProcessDTO == null) { result.Result = false; result.Message = "未找到单据"; return result; } admAskMarketingCost.ShenpiStatus = "A"; _context.SaveChanges(); List wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "总经理审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "总经理审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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/AskMarketingCost?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 WfAskSuggestion(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, "08").FirstOrDefault(); if (wfRunProcessDTO != null) { version = wfRunProcessDTO.Version; } if (version == "v1") { if (step == "提交") { //更新流程实例 // WfRunProcessDTO wfRunProcessDTO = this.GetList(DanjuId, "08").FirstOrDefault(); if (wfRunProcessDTO == null) { //插入流程实例 wfRunProcessDTO = new WfRunProcessDTO(); //wfRunProcessDTO.Applyno = wfRunProcessDTO.Applytime = DateTime.Now; wfRunProcessDTO.Applytiye = "08"; 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/AskSuggestion?id=" + DanjuId; result = this.save(wfRunProcessDTO); if (result.Result == false) { return result; } //查询处理人 var danju = _context.AdmAskMarketingCosts.Where(x => x.RecStatus == "A" && x.Id == DanjuId).FirstOrDefault(); if (danju == 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 (string.IsNullOrEmpty(danju.ToUserId)) { result.Result = false; result.Message = "未找到处理人"; return result; } else { //插入待办 WfNeeddeelDTO wfNeeddeelDTO = new WfNeeddeelDTO(); wfNeeddeelDTO.RunProcessId = wfRunProcessDTO.Id; wfNeeddeelDTO.SendUserId = Userid; wfNeeddeelDTO.DeelUserId = danju.ToUserId; wfNeeddeelDTO.Sendtime = DateTime.Now; wfNeeddeelDTO.Resivetime = DateTime.Now; wfNeeddeelDTO.Step = "被建议人"; wfNeeddeelDTO.NeeddeelType = "1"; wfNeeddeelDTO.ChuliStatus = "0"; wfNeeddeelDTO.Deelurl = "/AdmAsk/AskSuggestion?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 = "/AdmAsk/AskSuggestion?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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "提交"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(wfNeeddeelDTOs); foreach (var wfNeeddeel in wfNeeddeels) { //_wfNeeddeelService.ModifyStatus(wfNeeddeel.Id, Userid); _context.WfNeeddeels.Remove(wfNeeddeel); } _context.SaveChanges(); //查询处理人 var danju = _context.AdmAskMarketingCosts.Where(x => x.RecStatus == "A" && x.Id == DanjuId).FirstOrDefault(); if (danju == 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 (string.IsNullOrEmpty(danju.ToUserId)) { result.Result = false; result.Message = "未找到处理人"; return result; } else { //插入新的待办 WfNeeddeelDTO wfNeeddeelDTO = new WfNeeddeelDTO(); wfNeeddeelDTO.RunProcessId = wfRunProcessDTO.Id; wfNeeddeelDTO.SendUserId = Userid; wfNeeddeelDTO.DeelUserId = danju.ToUserId; wfNeeddeelDTO.Sendtime = DateTime.Now; wfNeeddeelDTO.Resivetime = DateTime.Now; wfNeeddeelDTO.Step = "被建议人"; wfNeeddeelDTO.NeeddeelType = "1"; wfNeeddeelDTO.ChuliStatus = "0"; wfNeeddeelDTO.Deelurl = "/AdmAsk/AskSuggestion?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, "08").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 admAskMarketingCost = _context.AdmAskMarketingCosts.Find(DanjuId); if (wfRunProcessDTO == null) { result.Result = false; result.Message = "未找到单据"; return result; } admAskMarketingCost.ShenpiStatus = "A"; _context.SaveChanges(); List wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "被建议人"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "被建议人"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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/AskSuggestion?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 WfAskOther(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, "11").FirstOrDefault(); if (wfRunProcessDTO != null) { version = wfRunProcessDTO.Version; } if (version == "v1") { if (step == "提交") { //更新流程实例 // WfRunProcessDTO wfRunProcessDTO = this.GetList(DanjuId, "11").FirstOrDefault(); if (wfRunProcessDTO == null) { //插入流程实例 wfRunProcessDTO = new WfRunProcessDTO(); //wfRunProcessDTO.Applyno = wfRunProcessDTO.Applytime = DateTime.Now; wfRunProcessDTO.Applytiye = "11"; 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/AskOther?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/AskOther?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 = "/AdmAsk/AskOther?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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "提交"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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/AskOther?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, "11").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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "财务审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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/AskOther?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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "财务审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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/AskOther?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, "11").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 admAskMarketingCost = _context.AdmAskMarketingCosts.Find(DanjuId); if (wfRunProcessDTO == null) { result.Result = false; result.Message = "未找到单据"; return result; } admAskMarketingCost.ShenpiStatus = "A"; _context.SaveChanges(); List wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "总经理审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "总经理审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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/AskOther?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 WfAskPunishAppeal(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, "09").FirstOrDefault(); if (wfRunProcessDTO != null) { version = wfRunProcessDTO.Version; } if (version == "v1") { if (step == "提交") { //更新流程实例 // WfRunProcessDTO wfRunProcessDTO = this.GetList(DanjuId, "09").FirstOrDefault(); if (wfRunProcessDTO == null) { //插入流程实例 wfRunProcessDTO = new WfRunProcessDTO(); //wfRunProcessDTO.Applyno = wfRunProcessDTO.Applytime = DateTime.Now; wfRunProcessDTO.Applytiye = "09"; 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/AskPunishAppeal?id=" + DanjuId; result = this.save(wfRunProcessDTO); if (result.Result == false) { return result; } //查询处理人 var danju = _context.AdmAskMarketingCosts.Where(x => x.RecStatus == "A" && x.Id == DanjuId).FirstOrDefault(); if (danju == 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(); var admBreakPrecedent = _context.AdmBreakPrecedents.Where(x => x.RecStatus == "A" && x.Id == danju.BreakPrecedentId).FirstOrDefault(); if (admBreakPrecedent == null) { result.Result = false; result.Message = "未找到处罚决定"; return result; } else { //插入待办 WfNeeddeelDTO wfNeeddeelDTO = new WfNeeddeelDTO(); wfNeeddeelDTO.RunProcessId = wfRunProcessDTO.Id; wfNeeddeelDTO.SendUserId = Userid; wfNeeddeelDTO.DeelUserId = admBreakPrecedent.QianfaUserId; wfNeeddeelDTO.Sendtime = DateTime.Now; wfNeeddeelDTO.Resivetime = DateTime.Now; wfNeeddeelDTO.Step = "处罚签发人"; wfNeeddeelDTO.NeeddeelType = "1"; wfNeeddeelDTO.ChuliStatus = "0"; wfNeeddeelDTO.Deelurl = "/AdmAsk/AskPunishAppeal?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 = "/AdmAsk/AskPunishAppeal?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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "提交"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(wfNeeddeelDTOs); foreach (var wfNeeddeel in wfNeeddeels) { //_wfNeeddeelService.ModifyStatus(wfNeeddeel.Id, Userid); _context.WfNeeddeels.Remove(wfNeeddeel); } _context.SaveChanges(); //查询处理人 //查询处理人 var danju = _context.AdmAskMarketingCosts.Where(x => x.RecStatus == "A" && x.Id == DanjuId).FirstOrDefault(); if (danju == 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(); var admBreakPrecedent = _context.AdmBreakPrecedents.Where(x => x.RecStatus == "A" && x.Id == danju.BreakPrecedentId).FirstOrDefault(); if (admBreakPrecedent == null) { result.Result = false; result.Message = "未找到处罚决定"; return result; } else { //插入新的待办 WfNeeddeelDTO wfNeeddeelDTO = new WfNeeddeelDTO(); wfNeeddeelDTO.RunProcessId = wfRunProcessDTO.Id; wfNeeddeelDTO.SendUserId = Userid; wfNeeddeelDTO.DeelUserId = admBreakPrecedent.QianfaUserId; wfNeeddeelDTO.Sendtime = DateTime.Now; wfNeeddeelDTO.Resivetime = DateTime.Now; wfNeeddeelDTO.Step = "处罚签发人"; wfNeeddeelDTO.NeeddeelType = "1"; wfNeeddeelDTO.ChuliStatus = "0"; wfNeeddeelDTO.Deelurl = "/AdmAsk/AskPunishAppeal?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, "09").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 admAskMarketingCost = _context.AdmAskMarketingCosts.Find(DanjuId); if (wfRunProcessDTO == null) { result.Result = false; result.Message = "未找到单据"; return result; } admAskMarketingCost.ShenpiStatus = "A"; _context.SaveChanges(); List wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "处罚签发人"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "处罚签发人"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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/AskPunishAppeal?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 WfAskYouHui(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, "12").FirstOrDefault(); if (wfRunProcessDTO != null) { version = wfRunProcessDTO.Version; } if (version == "v1") { if (step == "提交") { //更新流程实例 // WfRunProcessDTO wfRunProcessDTO = this.GetList(DanjuId, "12").FirstOrDefault(); if (wfRunProcessDTO == null) { //插入流程实例 wfRunProcessDTO = new WfRunProcessDTO(); //wfRunProcessDTO.Applyno = wfRunProcessDTO.Applytime = DateTime.Now; wfRunProcessDTO.Applytiye = "12"; 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/AskYouHui?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/AskYouHui?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 = "/AdmAsk/AskYouHui?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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "提交"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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/AskYouHui?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, "12").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 admAskYouHui = _context.AdmAskYouHuis.Find(DanjuId); if (wfRunProcessDTO == null) { result.Result = false; result.Message = "未找到单据"; return result; } admAskYouHui.ShenpiStatus = "A"; _context.SaveChanges(); List wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "总经理审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "总经理审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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/AskYouHui?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 WfAskBaiFang(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, "13").FirstOrDefault(); if (wfRunProcessDTO != null) { version = wfRunProcessDTO.Version; } if (version == "v1") { if (step == "提交") { //更新流程实例 // WfRunProcessDTO wfRunProcessDTO = this.GetList(DanjuId, "13").FirstOrDefault(); if (wfRunProcessDTO == null) { //插入流程实例 wfRunProcessDTO = new WfRunProcessDTO(); //wfRunProcessDTO.Applyno = wfRunProcessDTO.Applytime = DateTime.Now; wfRunProcessDTO.Applytiye = "13"; 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/AskBaiFang?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/AskBaiFang?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 = "/AdmAsk/AskBaiFang?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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "提交"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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/AskBaiFang?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, "13").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 admAskBaiFang = _context.AdmAskBaiFangs.Find(DanjuId); if (wfRunProcessDTO == null) { result.Result = false; result.Message = "未找到单据"; return result; } admAskBaiFang.ShenpiStatus = "A"; _context.SaveChanges(); List wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "总经理审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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 wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "总经理审批"); var wfHistoryDTOs = _mapper.Map>(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>(wfHistoryDTOs); foreach (var wfHistory in wfHistories) { _context.WfHistories.Add(wfHistory); } var wfNeeddeels = _mapper.Map>(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/AskBaiFang?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; } } }