public Result <int> DeleteContractModel(long id) { Result <int> result = new Result <int>(); try { var model = DataOperateBusiness <Epm_Contract> .Get().GetModel(id); model.OperateUserId = CurrentUserID.ToLongReq(); model.OperateUserName = CurrentUserName; model.OperateTime = DateTime.Now; model.DeleteTime = DateTime.Now; //处理待办 var temp = DataOperateBusiness <Epm_Approver> .Get().GetList(t => t.BusinessId == model.Id && t.IsApprover == false).FirstOrDefault(); if (temp != null) { ComplateApprover(temp.Id); } var rows = DataOperateBusiness <Epm_Contract> .Get().Delete(model); result.Data = rows; result.Flag = EResultFlag.Success; WriteLog(BusinessType.Contract.GetText(), SystemRight.Delete.GetText(), "删除: " + rows); } catch (Exception ex) { result.Data = -1; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(ex, "DeleteContractModel"); } return(result); }
/// <summary> /// 更新所有消息状态 /// </summary> /// <param name="state"></param> /// <returns></returns> public Result <int> UpdateAllMassageState(long recId, bool state) { Result <int> result = new Result <int>(); try { var list = DataOperateBusiness <Epm_Massage> .Get().GetList(p => p.RecId == recId && p.IsRead != state).ToList(); foreach (var item in list) { item.OperateUserId = CurrentUserID.ToLongReq(); item.OperateUserName = CurrentUserName; item.OperateTime = DateTime.Now; item.IsRead = state; item.ReadTime = DateTime.Now; } var rows = DataOperateBusiness <Epm_Massage> .Get().UpdateRange(list); result.Data = rows; result.Flag = EResultFlag.Success; } catch (Exception ex) { result.Data = -1; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(ex, "UpdateAllMassageState"); } return(result); }
/// <summary> /// 更新状态 /// </summary> /// <param name="id"></param> /// <param name="state"></param> /// <returns></returns> public Result <int> UpdateTrainState(long id, string state) { Result <int> result = new Result <int>(); try { var model = DataOperateBusiness <Epm_Train> .Get().GetModel(id); if (model != null) { model.OperateUserId = CurrentUserID.ToLongReq(); model.OperateUserName = CurrentUserName; model.OperateTime = DateTime.Now; model.State = (int)state.ToEnumReq <ConfirmState>(); var rows = DataOperateBusiness <Epm_Train> .Get().Update(model); result.Data = rows; result.Flag = EResultFlag.Success; WriteLog(BusinessType.Change.GetText(), SystemRight.Delete.GetText(), "更新状态: " + rows); } else { throw new Exception("id有误"); } } catch (Exception ex) { result.Data = -1; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(ex, "UpdateState"); } return(result); }
/// <summary> /// 增加代办记录 /// </summary> /// <param name="model"></param> /// <returns></returns> public Result <int> AddApproverRecord(Epm_ApproverRecord model) { Result <int> result = new Result <int>(); try { model.CrtCompanyId = CurrentCompanyID.ToLongReq(); model.CrtCompanyName = CurrentCompanyName; model.CreateUserId = CurrentUserID.ToLongReq(); model.CreateUserName = CurrentUserName; model.CreateTime = DateTime.Now; model.OperateUserId = CurrentUserID.ToLongReq(); model.OperateUserName = CurrentUserName; model.OperateTime = DateTime.Now; model.IsDelete = false; var rows = DataOperateBusiness <Epm_ApproverRecord> .Get().Add(model); result.Data = rows; result.Flag = EResultFlag.Success; WriteLog(BusinessType.Approver.GetText(), SystemRight.Add.GetText(), "新增: " + model.Id); } catch (Exception ex) { result.Data = -1; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(ex, "AddApproverRecord"); } return(result); }
/// <summary> /// 写审核日志 /// </summary> /// <param name="model"></param> /// <param name="oldState"></param> /// <param name="newState"></param> /// <param name="user"></param> /// <returns></returns> public virtual Result <Base_StatusLog> WriteStateLog(BaseModel model, string oldState, string newState) { Result <Base_StatusLog> result = new Result <Base_StatusLog>(); try { Base_StatusLog log = new Base_StatusLog(); log.OperateUserId = CurrentUserID.ToLongReq(); log.OperateUserName = CurrentUserName; log.OldState = oldState; log.State = newState; log.TableId = model.Id; log.TableName = model.GetType().Name; var rows = DataOperateBasic <Base_StatusLog> .Get().Add(log); result.Data = log; result.Flag = EResultFlag.Success; } catch (Exception ex) { result.Data = null; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(ex, "WriteStateLog"); } return(result); }
///<summary> ///获取列表: ///</summary> /// <param name="qc">查询条件</param> /// <returns>符合条件的数据集合</returns> public Result<List<Epm_Visa>> GetVisaList(string projectName, string title, int state, string visaTypeName, int pageIndex, int pageSize) { Result<List<Epm_Visa>> result = new Result<List<Epm_Visa>>(); try { var currentUserID = CurrentUserID.ToLongReq(); int statu = (int)ApprovalState.Enabled; var query = from b in context.Epm_Visa.Where(p => p.IsDelete == false) where CurrentProjectIds.Contains(b.ProjectId.ToString()) && (b.ProjectName.Contains(projectName) || string.IsNullOrEmpty(projectName)) && (b.VisaTypeName.Contains(visaTypeName) || string.IsNullOrEmpty(visaTypeName)) && (b.VisaTitle.Contains(title) || string.IsNullOrEmpty(title)) && (b.State == state || state == -1) && ((b.State == statu && b.CreateUserId == currentUserID) || b.State != statu) select b; //query = query.Distinct(); int count = query.Count(); int skip = (pageIndex - 1) * pageSize; int take = pageSize; var list = query.OrderByDescending(p => p.OperateTime).Skip(skip).Take(take).ToList(); result.Data = list; result.AllRowsCount = count; result.Flag = EResultFlag.Success; } catch (Exception ex) { result.Data = null; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(ex, "GetVisaList"); } return result; }
///<summary> ///修改: ///</summary> /// <param name="model">要修改的model</param> /// <returns>受影响的行数</returns> public Result <int> UpdateMassage(Epm_Massage model) { Result <int> result = new Result <int>(); try { Epm_Massage oldmodel = DataOperateBusiness <Epm_Massage> .Get().GetModel(model.Id); oldmodel.OperateUserId = CurrentUserID.ToLongReq(); oldmodel.OperateUserName = CurrentUserName; oldmodel.OperateTime = DateTime.Now; oldmodel.IsRead = model.IsRead; oldmodel.ReadTime = model.ReadTime; var rows = DataOperateBusiness <Epm_Massage> .Get().Update(oldmodel); result.Data = rows; result.Flag = EResultFlag.Success; } catch (Exception ex) { result.Data = -1; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(ex, "UpdateMassage"); } return(result); }
/// <summary> /// 添加问题关联模型 /// </summary> /// <param name="model"></param> /// <param name="componentIds"></param> /// <returns></returns> public Result <int> AddQuestionBIM(Epm_QuestionBIM model, string componentIds) { Result <int> result = new Result <int>(); try { if (!string.IsNullOrEmpty(componentIds)) { //首先删除同一模型同一检查详情下的所有模型组件 var componentList = DataOperateBusiness <Epm_QuestionBIM> .Get().GetList(i => i.QuestionId == model.QuestionId && i.BIMId == model.BIMId).ToList(); if (componentList.Count > 0) { foreach (var item in componentList) { item.OperateUserId = CurrentUserID.ToLongReq(); item.OperateUserName = CurrentUserName; item.OperateTime = DateTime.Now; item.DeleteTime = DateTime.Now; } DataOperateBusiness <Epm_QuestionBIM> .Get().DeleteRange(componentList); } //获取组件ID集合 var componentIdList = componentIds.SplitString(","); List <Epm_QuestionBIM> dataList = new List <Epm_QuestionBIM>(); foreach (var item in componentIdList) { Epm_QuestionBIM temp = new Epm_QuestionBIM(); temp = base.SetCurrentUser(temp); temp.CrtCompanyId = CurrentCompanyID.ToLongReq(); temp.CrtCompanyName = CurrentCompanyName; temp.QuestionId = model.QuestionId; temp.BIMId = model.BIMId; temp.BIMName = model.BIMName; temp.ComponentId = item; dataList.Add(temp); } //批量添加问题管理关联模型 var rows = DataOperateBusiness <Epm_QuestionBIM> .Get().AddRange(dataList); result.Data = rows; result.Flag = EResultFlag.Success; WriteLog(BusinessType.Plan.GetText(), SystemRight.Add.GetText(), "新增:添加问题关联模型 " + model.Id); } else { throw new Exception("没有选择关联组件,请选择要关联的组件!"); } } catch (Exception ex) { result.Data = -1; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(ex, "AddQuestionBIM"); } return(result); }
/// <summary> /// 删除 /// </summary> /// <param name="id"></param> /// <returns></returns> public Result <int> DeleteDangerousWork(long id) { Result <int> result = new Result <int>(); try { var model = DataOperateBusiness <Epm_DangerousWork> .Get().GetModel(id); model.IsDelete = true; model.DeleteTime = DateTime.Now; //处理待办 var temp = DataOperateBusiness <Epm_Approver> .Get().GetList(t => t.BusinessId == model.Id && t.IsApprover == false).FirstOrDefault(); if (temp != null) { ComplateApprover(temp.Id); } #region 消息 var waitSend = GetWaitSendMessageList(model.ProjectId.Value); foreach (var send in waitSend) { Epm_Massage modelMsg = new Epm_Massage(); modelMsg.ReadTime = null; modelMsg.RecId = send.Key; modelMsg.RecName = send.Value; modelMsg.RecTime = DateTime.Now; modelMsg.SendId = CurrentUserID.ToLongReq(); modelMsg.SendName = CurrentUserName; modelMsg.SendTime = DateTime.Now; modelMsg.Title = CurrentUserName + "提报的危险作业单已删除"; modelMsg.Content = CurrentUserName + "提报的危险作业单已删除"; modelMsg.Type = 2; modelMsg.IsRead = false; modelMsg.BussinessId = model.Id; modelMsg.BussinesType = BusinessType.Dangerous.ToString(); modelMsg.ProjectId = model.ProjectId; modelMsg.ProjectName = model.ProjectName; modelMsg = base.SetCurrentUser(modelMsg); modelMsg = base.SetCreateUser(modelMsg); DataOperateBusiness <Epm_Massage> .Get().Add(modelMsg); } #endregion var rows = DataOperateBusiness <Epm_DangerousWork> .Get().Delete(model); result.Data = rows; result.Flag = EResultFlag.Success; WriteLog(BusinessType.Dangerous.GetText(), SystemRight.Delete.GetText(), "删除: " + rows); } catch (Exception ex) { result.Data = -1; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(ex, "DeleteDangerousWork"); } return(result); }
///<summary> ///获取列表: ///</summary> /// <param name="qc">查询条件</param> /// <returns>符合条件的数据集合</returns> public Result <List <ChangeView> > GetChangeList(string projectName, string name, int state, int pageIndex, int pageSize) { Result <List <ChangeView> > result = new Result <List <ChangeView> >(); try { var currentUserID = CurrentUserID.ToLongReq(); int statu = (int)ApprovalState.Enabled; var query = from b in context.Epm_Change.Where(p => p.IsDelete == false) where CurrentProjectIds.Contains(b.ProjectId.ToString()) && (b.ProjectName.Contains(projectName) || string.IsNullOrEmpty(projectName)) && (b.ChangeName.Contains(name) || string.IsNullOrEmpty(name)) && (b.State == state || state == -1) && ((b.State == statu && b.CreateUserId == currentUserID) || b.State != statu) select b; int count = query.Count(); int skip = (pageIndex - 1) * pageSize; int take = pageSize; var list = query.OrderByDescending(p => p.OperateTime).Skip(skip).Take(take).Select(chang => new ChangeView { Id = chang.Id, TotalAmount = chang.TotalAmount, AddAmount = chang.AddAmount, ReduceAmount = chang.ReduceAmount, ChangeAmount = chang.ChangeAmount, ChangeContent = chang.ChangeContent, ChangeDays = chang.ChangeDays, ChangeName = chang.ChangeName, ChangeNo = chang.ChangeNo, ChangeReason = chang.ChangeReason, ChangeStartTime = chang.ChangeStartTime, ChangeEndTime = chang.ChangeEndTime, ProjectId = chang.ProjectId, ProjectName = chang.ProjectName, Remark = chang.Remark, State = chang.State, SubmitUserId = chang.SubmitUserId, SubmitUserName = chang.SubmitUserName, CreateTime = chang.CreateTime, CrtCompanyName = chang.CrtCompanyName }).ToList(); result.Data = list; result.AllRowsCount = count; result.Flag = EResultFlag.Success; } catch (Exception ex) { result.Data = null; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(ex, "GetChangeList"); } return(result); }
/// <summary> /// 修改数据时,保留创建人,创建时间不变,修改操作人和操作时间 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="oldModel">原数据</param> /// <param name="newModel">要修改的新数据</param> /// <returns></returns> public T FiterUpdate <T>(T oldModel, T newModel) where T : BaseBusiness { newModel.CreateUserId = oldModel.CreateUserId; newModel.CreateUserName = oldModel.CreateUserName; newModel.CreateTime = oldModel.CreateTime; newModel.OperateUserId = CurrentUserID.ToLongReq(); newModel.OperateUserName = CurrentUserName; newModel.OperateTime = DateTime.Now; return(newModel); }
/// <summary> /// 根据项目获取需要发送消息通知的用户Id和用户名称 /// </summary> /// <param name="projectId"></param> /// <returns></returns> private Dictionary <long, string> GetWaitSendMessageList(long?projectId) { Dictionary <long, string> dic = new Dictionary <long, string>(); var project = DataOperateBusiness <Epm_Project> .Get().GetModel(projectId.Value); if (project != null) { //项目经理 if (project.PMId != null && project.PMId != CurrentUserID.ToLongReq()) { if (!dic.Keys.Contains(project.PMId.Value)) { dic.Add(project.PMId.Value, project.PMName); } } //分公司项目负责人 if (project.ContactUserId != null && project.ContactUserId != CurrentUserID.ToLongReq()) { if (!dic.Keys.Contains(project.ContactUserId.Value)) { dic.Add(project.ContactUserId.Value, project.ContactUserName); } } } var projectCompany = DataOperateBusiness <Epm_ProjectCompany> .Get().GetList(t => t.ProjectId == projectId).ToList(); //List<Base_User> allUser = DataOperateBasic<Base_User>.Get().GetList().ToList(); //服务商 项目经理 和负责人 if (projectCompany.Count > 0) { foreach (var item in projectCompany) { //var users = allUser.Where(t => t.Id == item.PMId || t.Id == item.LinkManId).ToList(); //foreach (var user in users) //{ // if (user.Id != CurrentUserID.ToLongReq() && !dic.Keys.Contains(user.Id)) // dic.Add(user.Id, user.UserName); //} if (item.LinkManId.HasValue) { if (!dic.Keys.Contains(item.LinkManId.Value)) { dic.Add(item.LinkManId.Value, item.LinkMan); } } } } return(dic); }
public Result <int> AddApproverBatch(List <Epm_Approver> list) { Result <int> result = new Result <int>(); try { foreach (var item in list) { item.IsApprover = false; item.CrtCompanyId = CurrentCompanyID.ToLongReq(); item.CrtCompanyName = CurrentCompanyName; item.CreateUserId = CurrentUserID.ToLongReq(); item.CreateUserName = CurrentUserName; item.CreateTime = DateTime.Now; item.OperateUserId = CurrentUserID.ToLongReq(); item.OperateUserName = CurrentUserName; item.OperateTime = DateTime.Now; item.IsDelete = false; } var rows = DataOperateBusiness <Epm_Approver> .Get().AddRange(list); Epm_ApproverRecord record = new Epm_ApproverRecord(); record.BusinessId = list[0].BusinessId; record.BusinessType = list[0].BusinessTypeNo; record.BusinessName = list[0].BusinessTypeName; record.BusinessState = list[0].BusinessState.ToString(); record.HandleUserId = CurrentUserID.ToLongReq(); record.HandleUserName = CurrentUserName; AddApproverRecord(record); result.Data = rows; result.Flag = EResultFlag.Success; WriteLog(BusinessType.Approver.GetText(), SystemRight.Add.GetText(), "新增: " + rows + "条待办"); } catch (Exception ex) { result.Data = -1; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(ex, "AddApprover"); } return(result); }
/// <summary> /// 生成BIM模型图片 /// </summary> /// <param name="id"></param> /// <param name="img"></param> /// <returns></returns> public Result <int> CreateImgBim(long id, string img, List <Base_Files> fileList) { Result <int> result = new Result <int>(); try { var model = DataOperateBusiness <Epm_Bim> .Get().GetModel(id); if (model != null && string.IsNullOrEmpty(model.BIMImg)) { model.OperateUserId = CurrentUserID.ToLongReq(); model.OperateUserName = CurrentUserName; model.OperateTime = DateTime.Now; model.BIMImg = img; if (fileList.Count > 0) { AddFilesByTable(model, fileList); } var rows = DataOperateBusiness <Epm_Bim> .Get().Update(model); result.Data = rows; result.Flag = EResultFlag.Success; } else { result.Data = -1; result.Flag = EResultFlag.Success; } } catch (Exception ex) { result.Data = -1; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(ex, "CreateImgBim"); } return(result); }
/// <summary> /// 修改状态(废弃) /// </summary> /// <param name="id"></param> /// <param name="state"></param> /// <returns></returns> public Result <int> ChangeContractState(long id, string state) { Result <int> result = new Result <int>(); try { var drawState = state.ToEnumReq <ApprovalState>(); var model = DataOperateBusiness <Epm_Contract> .Get().GetModel(id); model.OperateUserId = CurrentUserID.ToLongReq(); model.OperateUserName = CurrentUserName; model.OperateTime = DateTime.Now; model.State = int.Parse(drawState.GetValue().ToString()); var rows = DataOperateBusiness <Epm_Contract> .Get().Update(model); //处理待办 var temp = DataOperateBusiness <Epm_Approver> .Get().GetList(t => t.BusinessId == model.Id && t.IsApprover == false).FirstOrDefault(); if (temp != null) { ComplateApprover(temp.Id); } #region 生成待办 var project = DataOperateBusiness <Epm_Project> .Get().GetModel(model.ProjectId.Value); List <Epm_Approver> list = new List <Epm_Approver>(); Epm_Approver app = new Epm_Approver(); app.Title = model.CreateUserName + "上传了项目合同,已废弃"; app.Content = model.CreateUserName + "上传了项目合同,已废弃"; app.SendUserId = CurrentUserID.ToLongReq(); app.SendUserName = CurrentUserName; app.SendTime = DateTime.Now; app.LinkURL = string.Empty; app.BusinessTypeNo = BusinessType.Contract.ToString(); app.Action = SystemRight.Invalid.ToString(); app.BusinessTypeName = BusinessType.Contract.GetText(); app.BusinessState = (int)(ApprovalState.Discarded); app.BusinessId = model.Id; app.ApproverId = project.PMId; app.ApproverName = project.PMName; app.ProjectId = model.ProjectId; app.ProjectName = project.Name; list.Add(app); AddApproverBatch(list); WriteLog(BusinessType.Contract.GetText(), SystemRight.Invalid.GetText(), "废弃合同生成待办: " + model.Id); #endregion if (model.ProjectId.Value != 0) { #region 消息 var waitSend = GetWaitSendMessageList(model.ProjectId.Value); foreach (var send in waitSend) { Epm_Massage modelMsg = new Epm_Massage(); modelMsg.ReadTime = null; modelMsg.RecId = send.Key; modelMsg.RecName = send.Value; modelMsg.RecTime = DateTime.Now; modelMsg.SendId = CurrentUserID.ToLongReq(); modelMsg.SendName = CurrentUserName; modelMsg.SendTime = DateTime.Now; modelMsg.Title = model.CreateUserName + "上传了项目合同,已废弃"; modelMsg.Content = model.CreateUserName + "上传了项目合同,已废弃"; modelMsg.Type = 2; modelMsg.IsRead = false; modelMsg.BussinessId = model.Id; modelMsg.BussinesType = BusinessType.Contract.ToString(); modelMsg.ProjectId = model.ProjectId.Value; modelMsg.ProjectName = model.ProjectName; modelMsg = base.SetCurrentUser(modelMsg); modelMsg = base.SetCreateUser(modelMsg); DataOperateBusiness <Epm_Massage> .Get().Add(modelMsg); } #endregion } result.Data = rows; result.Flag = EResultFlag.Success; } catch (Exception ex) { result.Data = -1; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(ex, "ChangeContractState"); } return(result); }
///<summary> ///获取列表: ///</summary> /// <param name="qc">查询条件</param> /// <returns>符合条件的数据集合</returns> public Result <List <Epm_Contract> > GetContractList(QueryCondition qc) { qc = AddDefault(qc); #region 条件 ConditionExpression ce = new ConditionExpression(); ce.ExpName = "IsDelete"; ce.ExpValue = false; ce.ExpOperater = eConditionOperator.Equal; qc.ConditionList.Add(ce); //2、草稿状态数据只有添加人自己可以看(项目无草稿状态) ConditionExpression ce1 = new ConditionExpression(); ConditionExpression ce11 = new ConditionExpression(); ce11.ConditionList.Add(new ConditionExpression() { ExpName = "State", ExpValue = 0, ExpOperater = eConditionOperator.Equal }); ce11.ConditionList.Add(new ConditionExpression() { ExpName = "CreateUserId", ExpValue = CurrentUserID.ToLongReq(), ExpLogical = eLogicalOperator.And, ExpOperater = eConditionOperator.Equal }); ce11.ExpLogical = eLogicalOperator.And; ce1.ConditionList.Add(ce11); ConditionExpression ce12 = new ConditionExpression(); ce12.ConditionList.Add(new ConditionExpression() { ExpName = "State", ExpValue = (int)ApprovalState.Enabled, ExpOperater = eConditionOperator.NotEqual }); ce12.ExpLogical = eLogicalOperator.Or; ce1.ExpLogical = eLogicalOperator.And; ce1.ConditionList.Add(ce12); qc.ConditionList.Add(ce1); if (!string.IsNullOrEmpty(CurrentCompanyID)) { long companyId = Convert.ToInt64(CurrentCompanyID); var m = DataOperateBasic <Base_Company> .Get().GetList(t => t.Id == companyId).FirstOrDefault(); if (m.Type != "Owner") { if (!string.IsNullOrWhiteSpace(CurrentProjectIds)) { //3、查询列表数据时需根据登录用户负责项目进行筛选 ConditionExpression ce4 = new ConditionExpression(); ConditionExpression ce41 = new ConditionExpression(); ce41.ConditionList.Add(new ConditionExpression() { ExpName = "ProjectId", ExpValue = CurrentProjectIds, ExpOperater = eConditionOperator.In }); ce4.ConditionList.Add(ce41); ConditionExpression ce42 = new ConditionExpression(); ce42.ConditionList.Add(new ConditionExpression() { ExpName = "ProjectId", ExpValue = null, ExpOperater = eConditionOperator.Equal }); ce42.ExpLogical = eLogicalOperator.Or; ce4.ExpLogical = eLogicalOperator.And; ce4.ConditionList.Add(ce42); qc.ConditionList.Add(ce4); } } } //1、列表数据根据最后修改时间倒序 qc.SortList.Add(new SortExpression("OperateTime", eSortType.Desc)); #endregion Result <List <Epm_Contract> > result = new Result <List <Epm_Contract> >(); try { result = hc.Plat.Common.Service.DataOperate.QueryListSimple <Epm_Contract>(context, qc); var ids = result.Data.Select(t => t.ProjectId); var list = DataOperateBusiness <Epm_ProjectStateTrack> .Get().GetList(t => ids.Contains(t.ProjectId) && (t.StateTrackNo == "VisaNum" || t.StateTrackNo == "ChangeNum")).ToList(); foreach (Epm_Contract item in result.Data) { foreach (var track in list) { if (item.ProjectId == track.ProjectId) { if (track.StateTrackNo == "VisaNum") { item.VisaNum = track.Qty; } if (track.StateTrackNo == "ChangeNum") { item.ChangeNum = track.Qty; } } } } } catch (Exception ex) { result.Data = null; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(ex, "GetContractList"); } return(result); }
///<summary> ///删除: ///</summary> /// <param name="ids">要删除的Id集合</param> /// <returns>受影响的行数</returns> public Result <int> DeleteContractByIds(List <long> ids) { Result <int> result = new Result <int>(); try { var models = DataOperateBusiness <Epm_Contract> .Get().GetList(i => ids.Contains(i.Id)).ToList(); //if (models.Any(t => t.State != (int)ApprovalState.Discarded && t.State != (int)ApprovalState.Enabled)) //{ // throw new Exception("草稿,已废弃状态下,才可删除"); //} if (models.Any(t => t.ContractType.HasValue && t.ContractType == (int)ContractType.FrameContract)) { throw new Exception("框架合同不可以删除"); } foreach (var model in models) { model.OperateUserId = CurrentUserID.ToLongReq(); model.OperateUserName = CurrentUserName; model.OperateTime = DateTime.Now; model.DeleteTime = DateTime.Now; //处理待办 var temp = DataOperateBusiness <Epm_Approver> .Get().GetList(t => t.BusinessId == model.Id && t.IsApprover == false).FirstOrDefault(); if (temp != null) { ComplateApprover(temp.Id); } #region 消息 var waitSend = GetWaitSendMessageList(model.ProjectId.Value); foreach (var send in waitSend) { Epm_Massage modelMsg = new Epm_Massage(); modelMsg.ReadTime = null; modelMsg.RecId = send.Key; modelMsg.RecName = send.Value; modelMsg.RecTime = DateTime.Now; modelMsg.SendId = CurrentUserID.ToLongReq(); modelMsg.SendName = CurrentUserName; modelMsg.SendTime = DateTime.Now; modelMsg.Title = CurrentUserName + "上传的项目合同已删除"; modelMsg.Content = CurrentUserName + "上传的项目合同已删除"; modelMsg.Type = 2; modelMsg.IsRead = false; modelMsg.BussinessId = model.Id; modelMsg.BussinesType = BusinessType.Contract.ToString(); modelMsg.ProjectId = model.ProjectId; modelMsg.ProjectName = model.ProjectName; modelMsg = base.SetCurrentUser(modelMsg); modelMsg = base.SetCreateUser(modelMsg); DataOperateBusiness <Epm_Massage> .Get().Add(modelMsg); } #endregion } var rows = DataOperateBusiness <Epm_Contract> .Get().DeleteRange(models); result.Data = rows; result.Flag = EResultFlag.Success; WriteLog(BusinessType.Contract.GetText(), SystemRight.Delete.GetText(), "批量删除: " + rows); } catch (Exception ex) { result.Data = -1; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(ex, "DeleteContractByIds"); } return(result); }
///<summary> ///添加: ///</summary> /// <param name="model">要添加的model</param> /// <returns>受影响的行数</returns> public Result <int> AddContract(Epm_Contract model, List <Base_Files> fileList = null) { Result <int> result = new Result <int>(); try { base.SetCurrentUser(model); model.CrtCompanyId = CurrentCompanyID.ToLongReq(); model.CrtCompanyName = CurrentCompanyName; model.ProjectId = model.ProjectId ?? 0; //bool dConfig = DataOperateBusiness<Epm_Contract>.Get().Count(i => i.Name == model.Name) > 0; //if (dConfig) //{ // throw new Exception("该合同名称已经存在"); //} //dConfig = DataOperateBusiness<Epm_Contract>.Get().Count(i => i.Code == model.Code) > 0; //if (dConfig) //{ // throw new Exception("该合同编码已经存在"); //} var rows = DataOperateBusiness <Epm_Contract> .Get().Add(model); //新增附件 AddFilesByTable(model, fileList); result.Data = rows; result.Flag = EResultFlag.Success; WriteLog(BusinessType.Contract.GetText(), SystemRight.Add.GetText(), "新增: " + model.Id); if ((ApprovalState)Enum.ToObject(typeof(ApprovalState), model.State) == ApprovalState.WaitAppr) { bool isApprSuccess = false; //判断是否工程处提交,如果是直接通过 if (IsAgencyUser(CurrentUserID.ToLongReq())) { isApprSuccess = true; model.State = (int)ApprovalState.ApprSuccess; DataOperateBusiness <Epm_Contract> .Get().Update(model); } if (!isApprSuccess && model.ProjectId.Value != 0) { #region 生成待办 var project = DataOperateBusiness <Epm_Project> .Get().GetModel(model.ProjectId.Value); List <Epm_Approver> list = new List <Epm_Approver>(); Epm_Approver app = new Epm_Approver(); app.Title = CurrentUserName + "上传了项目合同,待审核"; app.Content = CurrentUserName + "上传了项目合同,待审核"; app.SendUserId = CurrentUserID.ToLongReq(); app.SendUserName = CurrentUserName; app.SendTime = DateTime.Now; app.LinkURL = string.Empty; app.BusinessTypeNo = BusinessType.Contract.ToString(); app.Action = SystemRight.Add.ToString(); app.BusinessTypeName = BusinessType.Contract.GetText(); app.BusinessState = (int)(ApprovalState.WaitAppr); app.BusinessId = model.Id; app.ApproverId = project.PMId; app.ApproverName = project.PMName; app.ProjectId = model.ProjectId; app.ProjectName = project.Name; list.Add(app); AddApproverBatch(list); WriteLog(BusinessType.Contract.GetText(), SystemRight.Add.GetText(), "提交合同生成待办: " + model.Id); #endregion #region 消息 var waitSend = GetWaitSendMessageList(model.ProjectId.Value); foreach (var send in waitSend) { Epm_Massage modelMsg = new Epm_Massage(); modelMsg.ReadTime = null; modelMsg.RecId = send.Key; modelMsg.RecName = send.Value; modelMsg.RecTime = DateTime.Now; modelMsg.SendId = CurrentUserID.ToLongReq(); modelMsg.SendName = CurrentUserName; modelMsg.SendTime = DateTime.Now; modelMsg.Title = CurrentUserName + "上传了项目合同,待审核"; modelMsg.Content = CurrentUserName + "上传了项目合同,待审核"; modelMsg.Type = 2; modelMsg.IsRead = false; modelMsg.BussinessId = model.Id; modelMsg.BussinesType = BusinessType.Contract.ToString(); modelMsg.ProjectId = model.ProjectId.Value; modelMsg.ProjectName = model.ProjectName; modelMsg = base.SetCurrentUser(modelMsg); modelMsg = base.SetCreateUser(modelMsg); DataOperateBusiness <Epm_Massage> .Get().Add(modelMsg); } #endregion #region 发送短信 //Dictionary<string, string> parameterSms = new Dictionary<string, string>(); //parameterSms.Add("UserName", CurrentUserName); //WriteSMS(project.PMId.Value, 0, MessageStep.ContractAdd, parameterSms); #endregion } } } catch (Exception ex) { result.Data = -1; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(ex, "AddContract"); } return(result); }
/// <summary> /// 新增延期申请 /// </summary> /// <param name="model"></param> /// <returns></returns> public Result <bool> AddPlanDelay(PlanDelayView model) { Result <bool> result = new Result <bool>(); try { if (model == null) { throw new Exception("请填写延期申请内容!"); } Epm_Plan plan = DataOperateBusiness <Epm_Plan> .Get().GetModel(model.PlanId); if (plan == null) { throw new Exception("所选计划信息不存在!"); } //if (!CurrentProjectIds.Contains(plan.ProjectId.ToString())) //{ // throw new Exception("你未负责该项目,无权对该项目下的计划进行延期申请!"); //} var listp = DataOperateBusiness <Epm_PlanDelay> .Get().GetList(t => (t.State == (int)ApprovalState.WaitAppr || t.State == (int)ApprovalState.Enabled) && t.ProjectId == model.ProjectId && t.PlanId == model.PlanId).ToList(); if (listp.Count > 0) { throw new Exception("你选择的工程节点已经存在待审核或者草稿状态的延期申请!"); } Epm_PlanDelay delay = new Epm_PlanDelay(); delay.Id = model.Id; delay.ProjectId = model.ProjectId; delay.ProjectName = model.ProjectName; delay.PlanId = model.PlanId; delay.PlanName = model.PlanName; delay.OldStartDate = plan.StartTime.Value; delay.OldEndDate = plan.EndTime.Value; delay.DelayDay = model.DelayDay; delay.Reason = model.Reason; delay.Remark = model.Remark; delay.State = model.State; delay.CreateDate = DateTime.Today; delay.ApplyCompanyId = CurrentUser.CompanyId; delay.ApplyCompanyName = CurrentCompanyName; delay.State = model.State; SetCreateUser(delay); SetCurrentUser(delay); if (!model.PlanDelayCompanys.Any()) { throw new Exception("请选择责任单位!"); } model.PlanDelayCompanys.ForEach(p => { p.DelayId = model.Id; p.ProjectId = model.ProjectId; p.ProjectName = model.ProjectName; p.State = delay.State; SetCreateUser(p); SetCurrentUser(p); }); DataOperateBusiness <Epm_PlanDelayCompany> .Get().AddRange(model.PlanDelayCompanys); DataOperateBusiness <Epm_PlanDelay> .Get().Add(delay); // todo: 如果是提交审核,添加消息推送 if (delay.State == (int)ApprovalState.WaitAppr) { #region 生成待办 var project = DataOperateBusiness <Epm_Project> .Get().GetModel(delay.ProjectId); List <Epm_Approver> list = new List <Epm_Approver>(); Epm_Approver app = new Epm_Approver(); app.Title = CurrentUserName + "提报了变更计划单,待审核"; app.Content = CurrentUserName + "提报了变更计划单,待审核"; app.SendUserId = CurrentUserID.ToLongReq(); app.SendUserName = CurrentUserName; app.SendTime = DateTime.Now; app.LinkURL = string.Empty; app.BusinessTypeNo = BusinessType.DelayApply.ToString(); app.Action = SystemRight.Add.ToString(); app.BusinessTypeName = BusinessType.DelayApply.GetText(); app.BusinessState = (int)(ApprovalState.WaitAppr); app.BusinessId = delay.Id; app.ApproverId = project.ContactUserId; app.ApproverName = project.ContactUserName; app.ProjectId = delay.ProjectId; app.ProjectName = project.Name; list.Add(app); AddApproverBatch(list); WriteLog(BusinessType.DelayApply.GetText(), SystemRight.Add.GetText(), "提交延期申请生成待办: " + delay.Id); #endregion #region 消息 var waitSend = GetWaitSendMessageList(model.ProjectId); foreach (var send in waitSend) { Epm_Massage modelMsg = new Epm_Massage(); modelMsg.ReadTime = null; modelMsg.RecId = send.Key; modelMsg.RecName = send.Value; modelMsg.RecTime = DateTime.Now; modelMsg.SendId = CurrentUserID.ToLongReq(); modelMsg.SendName = CurrentUserName; modelMsg.SendTime = DateTime.Now; modelMsg.Title = CurrentUserName + "提报了变更计划单,待审核"; modelMsg.Content = CurrentUserName + "提报了变更计划单,待审核"; modelMsg.Type = 2; modelMsg.IsRead = false; modelMsg.BussinessId = model.Id; modelMsg.BussinesType = BusinessType.DelayApply.ToString(); modelMsg.ProjectId = model.ProjectId; modelMsg.ProjectName = model.ProjectName; modelMsg = base.SetCurrentUser(modelMsg); modelMsg = base.SetCreateUser(modelMsg); DataOperateBusiness <Epm_Massage> .Get().Add(modelMsg); } #endregion #region 发送短信 //Dictionary<string, string> parameterssm = new Dictionary<string, string>(); //parameterssm.Add("UserName", CurrentUserName); //WriteSMS(project.ContactUserId.Value, project.CompanyId, MessageStep.DelayApplyAdd, parameterssm); #endregion } result.Data = true; result.Flag = EResultFlag.Success; // todo:写操作日志 } catch (Exception ex) { result.Flag = EResultFlag.Failure; result.Data = false; result.Exception = new ExceptionEx(ex, "AddPlanDelay"); } return(result); }
/// <summary> /// 删除延期申请 /// </summary> /// <param name="id">延期申请 ID</param> /// <returns></returns> public Result <bool> DeletePlanDelay(long id) { Result <bool> result = new Result <bool>(); try { Epm_PlanDelay delay = DataOperateBusiness <Epm_PlanDelay> .Get().GetModel(id); if (delay == null) { throw new Exception("所选延期申请不存在或已被删除!"); } if (delay.State != (int)ApprovalState.Enabled && delay.State != (int)ApprovalState.Discarded) { throw new Exception("只有未提交审核的延期可以删除!"); } //if (!CurrentProjectIds.Contains(delay.ProjectId.ToString())) //{ // throw new Exception("你未负责该项目,无权删除延期申请!"); //} //if (delay.CreateUserId != CurrentUserID.ToLongReq()) //{ // throw new Exception("只有创建人才可以删除!"); //} var list = DataOperateBusiness <Epm_PlanDelayCompany> .Get().GetList(p => p.DelayId == id).ToList(); DataOperateBusiness <Epm_PlanDelay> .Get().Delete(delay); //处理待办 var temp = DataOperateBusiness <Epm_Approver> .Get().GetList(t => t.BusinessId == delay.Id && t.IsApprover == false).FirstOrDefault(); if (temp != null) { ComplateApprover(temp.Id); } #region 消息 var waitSend = GetWaitSendMessageList(delay.ProjectId); foreach (var send in waitSend) { Epm_Massage modelMsg = new Epm_Massage(); modelMsg.ReadTime = null; modelMsg.RecId = send.Key; modelMsg.RecName = send.Value; modelMsg.RecTime = DateTime.Now; modelMsg.SendId = CurrentUserID.ToLongReq(); modelMsg.SendName = CurrentUserName; modelMsg.SendTime = DateTime.Now; modelMsg.Title = delay.CreateUserName + "发起的延期申请已删除"; modelMsg.Content = delay.CreateUserName + "发起的延期申请已删除"; modelMsg.Type = 2; modelMsg.IsRead = false; modelMsg.BussinessId = delay.Id; modelMsg.BussinesType = BusinessType.DelayApply.ToString(); modelMsg.ProjectId = delay.ProjectId; modelMsg.ProjectName = delay.ProjectName; modelMsg = base.SetCurrentUser(modelMsg); modelMsg = base.SetCreateUser(modelMsg); DataOperateBusiness <Epm_Massage> .Get().Add(modelMsg); } #endregion if (list.Any()) { foreach (var model in list) { model.OperateUserId = CurrentUserID.ToLongReq(); model.OperateUserName = CurrentUserName; model.OperateTime = DateTime.Now; model.DeleteTime = DateTime.Now; } DataOperateBusiness <Epm_PlanDelayCompany> .Get().DeleteRange(list); } result.Data = true; result.Flag = EResultFlag.Success; // todo:写操作日志 } catch (Exception ex) { result.Data = false; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(ex, "DeleteSupervisorlogById"); } return(result); }
/// <summary> /// 审核延期申请 /// </summary> /// <param name="model"></param> /// <returns></returns> public Result <int> AuditPlanDelay(Epm_PlanDelay model) { Result <int> result = new Result <int>(); try { if (model == null) { throw new Exception("请选择要审核的延期申请!"); } Epm_PlanDelay planDelay = DataOperateBusiness <Epm_PlanDelay> .Get().GetModel(model.Id); if (planDelay == null) { throw new Exception("要审核的延期申请不存在!"); } // todo: 判断延期申请的状态, 是否可以进行审核 var list = DataOperateBusiness <Epm_PlanDelayCompany> .Get().GetList(p => p.DelayId == model.Id).ToList(); planDelay.State = model.State; planDelay.AuditDate = DateTime.Today; planDelay.AuditUserId = CurrentUser.Id; planDelay.AuditUserName = CurrentUserName; planDelay.OrgId = CurrentUser.CompanyId; planDelay.OrgName = CurrentCompanyName; SetCurrentUser(planDelay); list.ForEach(p => { SetCurrentUser(p); p.State = planDelay.State; }); DataOperateBusiness <Epm_PlanDelay> .Get().Update(planDelay); DataOperateBusiness <Epm_PlanDelayCompany> .Get().UpdateRange(list); //处理待办 var tempApp = DataOperateBusiness <Epm_Approver> .Get().GetList(t => t.BusinessId == planDelay.Id && t.IsApprover == false).FirstOrDefault(); if (tempApp != null) { ComplateApprover(tempApp.Id); } string title = ""; if ((ApprovalState)Enum.ToObject(typeof(ApprovalState), model.State) == ApprovalState.ApprSuccess) { //更新计划里的延期计划完工时间 Epm_Plan plan = DataOperateBusiness <Epm_Plan> .Get().GetModel(planDelay.PlanId); plan.DelayTime = plan.EndTime.Value.AddDays(double.Parse(planDelay.DelayDay.ToString())); DateTime start = Convert.ToDateTime(plan.StartTime); DateTime end = Convert.ToDateTime(plan.DelayTime); TimeSpan sp = end.Subtract(start); int days = sp.Days + 1; plan.BuildDays = days > 0 ? days : 0; SetCurrentUser(plan); DataOperateBusiness <Epm_Plan> .Get().Update(plan); title = planDelay.CreateUserName + "提报的变更计划单,审核通过"; #region 生成待办 List <Epm_Approver> listApp = new List <Epm_Approver>(); Epm_Approver app = new Epm_Approver(); app.Title = planDelay.CreateUserName + "提报的变更计划单,审核通过"; app.Content = planDelay.CreateUserName + "提报的变更计划单,审核通过"; app.SendUserId = planDelay.CreateUserId; app.SendUserName = planDelay.CreateUserName; app.SendTime = planDelay.CreateTime; app.LinkURL = string.Empty; app.BusinessTypeNo = BusinessType.DelayApply.ToString(); app.Action = SystemRight.Check.ToString(); app.BusinessTypeName = BusinessType.DelayApply.GetText(); app.BusinessState = (int)(ApprovalState.ApprSuccess); app.BusinessId = planDelay.Id; app.ApproverId = planDelay.CreateUserId; app.ApproverName = planDelay.CreateUserName; app.ProjectId = planDelay.ProjectId; app.ProjectName = planDelay.ProjectName; listApp.Add(app); AddApproverBatch(listApp); WriteLog(BusinessType.DelayApply.GetText(), SystemRight.Check.GetText(), "审核通过延期申请生成待办: " + model.Id); #endregion } else if ((ApprovalState)Enum.ToObject(typeof(ApprovalState), model.State) == ApprovalState.ApprFailure) { title = planDelay.CreateUserName + "提报的变更计划单已被驳回,请处理"; #region 生成待办 List <Epm_Approver> listApp = new List <Epm_Approver>(); Epm_Approver app = new Epm_Approver(); app.Title = planDelay.CreateUserName + "提报的变更计划单已被驳回,请处理"; app.Content = planDelay.CreateUserName + "提报的变更计划单已被驳回,请处理"; app.SendUserId = planDelay.CreateUserId; app.SendUserName = planDelay.CreateUserName; app.SendTime = planDelay.CreateTime; app.LinkURL = string.Empty; app.BusinessTypeNo = BusinessType.DelayApply.ToString(); app.Action = SystemRight.UnCheck.ToString(); app.BusinessTypeName = BusinessType.DelayApply.GetText(); app.BusinessState = (int)(ApprovalState.ApprFailure); app.BusinessId = planDelay.Id; app.ApproverId = planDelay.CreateUserId; app.ApproverName = planDelay.CreateUserName; app.ProjectId = planDelay.ProjectId; app.ProjectName = planDelay.ProjectName; listApp.Add(app); AddApproverBatch(listApp); WriteLog(BusinessType.DelayApply.GetText(), SystemRight.UnCheck.GetText(), "驳回延期申请生成待办: " + model.Id); #endregion #region 发送短信 //WriteSMS(model.CreateUserId, 0, MessageStep.DelayApplyReject, null); #endregion } else if ((ApprovalState)Enum.ToObject(typeof(ApprovalState), model.State) == ApprovalState.Discarded) { title = planDelay.CreateUserName + "提报了变更计划单,已废弃"; #region 生成待办 var project = DataOperateBusiness <Epm_Project> .Get().GetModel(planDelay.ProjectId); List <Epm_Approver> listApp = new List <Epm_Approver>(); Epm_Approver app = new Epm_Approver(); app.Title = planDelay.CreateUserName + "提报了变更计划单,已废弃"; app.Content = planDelay.CreateUserName + "提报了变更计划单,已废弃"; app.SendUserId = CurrentUserID.ToLongReq(); app.SendUserName = CurrentUserName; app.SendTime = DateTime.Now; app.LinkURL = string.Empty; app.BusinessTypeNo = BusinessType.DelayApply.ToString(); app.Action = SystemRight.Invalid.ToString(); app.BusinessTypeName = BusinessType.DelayApply.GetText(); app.BusinessState = (int)(ApprovalState.Discarded); app.BusinessId = planDelay.Id; app.ApproverId = project.ContactUserId; app.ApproverName = project.ContactUserName; app.ProjectId = planDelay.ProjectId; app.ProjectName = project.Name; listApp.Add(app); AddApproverBatch(listApp); WriteLog(BusinessType.DelayApply.GetText(), SystemRight.Invalid.GetText(), "废弃延期申请生成待办: " + planDelay.Id); #endregion } #region 消息 var waitSend = GetWaitSendMessageList(planDelay.ProjectId); foreach (var send in waitSend) { Epm_Massage modelMsg = new Epm_Massage(); modelMsg.ReadTime = null; modelMsg.RecId = send.Key; modelMsg.RecName = send.Value; modelMsg.RecTime = DateTime.Now; modelMsg.SendId = CurrentUserID.ToLongReq(); modelMsg.SendName = CurrentUserName; modelMsg.SendTime = DateTime.Now; modelMsg.Title = title; modelMsg.Content = title; modelMsg.Type = 2; modelMsg.IsRead = false; modelMsg.BussinessId = planDelay.Id; modelMsg.BussinesType = BusinessType.DelayApply.ToString(); modelMsg.ProjectId = planDelay.ProjectId; modelMsg.ProjectName = planDelay.ProjectName; modelMsg = base.SetCurrentUser(modelMsg); modelMsg = base.SetCreateUser(modelMsg); DataOperateBusiness <Epm_Massage> .Get().Add(modelMsg); } #endregion result.Data = 1; result.Flag = EResultFlag.Success; // todo: 添加消息推送 // todo:写操作日志 } catch (Exception ex) { result.Data = -1; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(ex, "AuditPlanDelay"); } return(result); }
/// <summary> /// 新增检查单 /// </summary> /// <param name="type">1:暂存</param> /// <returns></returns> public Result <bool> AddRectificationNew(long projectId, DateTime time, List <checkItemesPer> dataList, int type = 0) { Result <bool> result = new Result <bool>(); if (dataList == null && dataList.Count == 0) { throw new Exception("请填写检查相关内容!"); } ///获取项目信息 var project = DataOperateBusiness <Epm_Project> .Get().GetModel(projectId); ///获取服务商信息 var companys = DataOperateBusiness <Epm_ProjectCompany> .Get().GetList(t => t.ProjectId == projectId).ToList(); #region 或者岗位角色roleType ///复查单位 long currentUserId = CurrentUserID.ToLongReq(); string roleType = ""; bool isAgency = IsAgencyUser(currentUserId); if (!isAgency) { bool isBranch = IsBranchCompanyUser(currentUserId); if (!isBranch) { bool isSupervisor = IsSupervisor(projectId, currentUserId); if (isSupervisor) { roleType = RoleTypeEnum.JL.GetText(); } else { roleType = RoleTypeEnum.ZJL.GetText(); } } else { roleType = RoleTypeEnum.FGS.GetText(); } } else { roleType = RoleTypeEnum.SGS.GetText(); } #endregion #region 检查单 ///获取检查配置数据 var checkItem = DataOperateBusiness <Epm_CheckItem> .Get().GetList(t => t.IsDelete == false).ToList(); ///复查数据 List <Epm_InspectItem> fhfcList = GetInspectItemByProjectId(projectId).Data; ///检查单对象 List <Epm_InspectItem> inspectItemList = new List <Epm_InspectItem>(); List <Epm_CheckItem> EpmCheckItemList = new List <Epm_CheckItem>(); Epm_CheckItem epmCheckItem = null; Epm_InspectItem inspectItem = null; List <Epm_InspectScore> scoreList = new List <Epm_InspectScore>(); Epm_InspectScore score = null; ///整改单对象 Dictionary <string, List <Epm_RectificationItem> > dic = new Dictionary <string, List <Epm_RectificationItem> >(); List <Epm_RectificationItem> rectifItemList = null; Epm_RectificationItem rectifItem2 = null; Epm_RectificationItem rectifItem3 = null; Dictionary <string, List <Epm_RectificationRecord> > recordList = new Dictionary <string, List <Epm_RectificationRecord> >(); List <Epm_RectificationRecord> rectifRecordList = null; Epm_RectificationRecord record = null; ///非常规作业 List <EPM_UnconventionalWork> unWorkList = new List <EPM_UnconventionalWork>(); EPM_UnconventionalWork work = null; ///一级名称 string name1 = string.Empty; foreach (var item1 in dataList) { ///保存检查单 Epm_Inspect inspect = new Epm_Inspect(); inspect.ProjectId = project.Id; inspect.ProjectName = project.Name; inspect.InspectName = "防渗改造项目施工检查表"; inspect.InspectAddress = project.Area + project.Address; inspect.InspectDate = time; inspect.InspectUserId = currentUserId; inspect.InspectUserName = CurrentUserName; inspect.IsDraft = type == 1 ? true : false; SetCreateUser(inspect); SetCurrentUser(inspect); foreach (var fenbu in item1.checkItems) { ///分步(一级) var fb = checkItem.Where(t => t.Id == fenbu.id.ToLongReq()).FirstOrDefault(); inspectItem = new Epm_InspectItem(); inspectItem.InspectId = inspect.Id; inspectItem.CheckId = fb.Id; inspectItem.CheckName = fb.Name; inspectItem.CheckParentId = fb.ParentId; inspectItem.CheckParentName = fb.ParentName; inspectItem.Level = fb.Level; inspectItem.Choice = true; SetCreateUser(inspectItem); SetCurrentUser(inspectItem); inspectItemList.Add(inspectItem); name1 = fb.Name; var fenxianglist = fenbu.children; if (fenxianglist.Count > 0) { foreach (var fenxiang in fenxianglist) { rectifItemList = new List <Epm_RectificationItem>(); rectifRecordList = new List <Epm_RectificationRecord>(); ///分项 var fx = checkItem.Where(t => t.Id == fenxiang.id.ToLongReq()).FirstOrDefault(); if (fx != null) { #region 检查单二级 inspectItem = new Epm_InspectItem(); inspectItem.InspectId = inspect.Id; inspectItem.CheckId = fx.Id; inspectItem.CheckName = fx.Name; inspectItem.CheckParentId = fx.ParentId; inspectItem.CheckParentName = fx.ParentName; inspectItem.Level = fx.Level; inspectItem.Choice = true; SetCreateUser(inspectItem); SetCurrentUser(inspectItem); inspectItemList.Add(inspectItem); #endregion #region 整改单,整改项2级数据准备 ///整改单,整改项2级数据准备 if (!inspect.IsDraft.Value && fenxiang.children.Count > 0) { rectifItem2 = new Epm_RectificationItem(); rectifItem2.CheckId = fx.Id; rectifItem2.CheckName = fx.Name; rectifItem2.CheckParentId = fx.ParentId; rectifItem2.CheckParentName = fx.ParentName; rectifItem2.Level = fx.Level; SetCreateUser(rectifItem2); SetCurrentUser(rectifItem2); record = new Epm_RectificationRecord(); record.RectficationItemId = rectifItem2.Id; record.RectficationDescption = string.Empty; record.State = (int)RectificationState.WaitRectification; SetCreateUser(record); SetCurrentUser(record); } #endregion } //三级 var itemlist = fenxiang.children; if (itemlist.Count > 0) { foreach (var item in itemlist) { long ids = 0; var check = new Epm_CheckItem(); //具体要求 if (item.id == "") { epmCheckItem = new Epm_CheckItem(); epmCheckItem.ParentId = fx.Id; epmCheckItem.ParentName = fx.ParentName; epmCheckItem.Level = 3; epmCheckItem.Remark = itemlist[0].name; epmCheckItem.CrtCompanyId = long.Parse("902414008118808576"); epmCheckItem.CrtCompanyName = "管理员企业"; epmCheckItem.IsDelete = false; epmCheckItem.RectificationManName = dataList[0].companies[0].personnelList[0].name; epmCheckItem.ScoreRange = itemlist[0].addScore; epmCheckItem.ScoreCompany = dataList[0].companies[0].id; epmCheckItem.ScorePerson = dataList[0].companies[0].personnelList[0].id; SetCreateUser(epmCheckItem); SetCurrentUser(epmCheckItem); EpmCheckItemList.Add(epmCheckItem); DataOperateBusiness <Epm_CheckItem> .Get().AddRange(EpmCheckItemList); check = epmCheckItem; } else { check = checkItem.Where(t => t.Id == item.id.ToLongReq()).FirstOrDefault(); } if (check != null) { inspectItem = new Epm_InspectItem(); inspectItem.InspectId = inspect.Id; inspectItem.CheckId = check.Id; inspectItem.CheckName = check.Remark; inspectItem.CheckParentId = check.ParentId; inspectItem.CheckParentName = check.ParentName; inspectItem.Level = check.Level; inspectItem.Choice = true; inspectItem.RectifRecordPersonKey = check.RectificationManName == null ? "" : check.RectificationManName; inspectItem.RectifRecordPerson = check.RectificationManName == null ? "" : check.RectificationManName; inspectItem.ScoreMax = check.ScoreRange.Split(',')[0] == null ? 0 : int.Parse(check.ScoreRange.Split(',')[0]); //inspectItem.Score = check.ScoreRange == null ? 0 : decimal.Parse(check.ScoreRange); inspectItem.Score = decimal.Parse(item.addScore); //inspectItem.State = item1.checkItems[0].selected.ToLower() == "false" ? 0 : (int)RectificationState.WaitRectification; inspectItem.State = check.State = false ? 0 : (int)RectificationState.WaitRectification; SetCreateUser(inspectItem); SetCurrentUser(inspectItem); inspectItemList.Add(inspectItem); #region 得失分单位、人员 //得失分单位、人员 var companylist = string.IsNullOrEmpty(check.ScoreCompany) ? null : check.ScoreCompany.Split(',').ToList(); var userlist = string.IsNullOrEmpty(check.ScorePerson) ? null : check.ScorePerson.Split(',').ToList(); var scoreCompanyUser = GetGainLoss(companylist, userlist, project, companys); if (scoreCompanyUser != null) { foreach (var cu in scoreCompanyUser) { var company = cu.Key.Split(','); if (string.IsNullOrEmpty(cu.Value)) { score = new Epm_InspectScore(); score.InspectId = inspect.Id; score.InspectItemId = inspectItem.Id; score.GainLossCompanyId = string.IsNullOrEmpty(company[0]) ? 0 : company[0].ToLongReq(); score.GainLossCompanyName = string.IsNullOrEmpty(company[1]) ? "" : company[1]; SetCreateUser(score); SetCurrentUser(score); scoreList.Add(score); } else { var list = cu.Value.Split(';').ToList(); foreach (var cv in list) { if (!string.IsNullOrEmpty(cv)) { score = new Epm_InspectScore(); score.InspectId = inspect.Id; score.InspectItemId = inspectItem.Id; score.GainLossCompanyId = string.IsNullOrEmpty(company[0]) ? 0 : company[0].ToLongReq(); score.GainLossCompanyName = string.IsNullOrEmpty(company[1]) ? "" : company[1]; var user = cv.Split(','); score.GainLossUserId = string.IsNullOrEmpty(user[0]) ? 0 : user[0].ToLongReq(); score.GainLossUserName = string.IsNullOrEmpty(user[1]) ? "" : user[1]; SetCreateUser(score); SetCurrentUser(score); scoreList.Add(score); } } } } } #endregion #region 整改单,整改项3级数据准备 if (!inspect.IsDraft.Value) { rectifItem3 = new Epm_RectificationItem(); rectifItem3.CheckId = check.Id; rectifItem3.CheckName = check.Remark; rectifItem3.CheckParentId = check.ParentId; rectifItem3.CheckParentName = check.ParentName; rectifItem3.Level = check.Level; SetCreateUser(rectifItem3); SetCurrentUser(rectifItem3); if (item1.companies[0].personnelList.Any()) { rectifItemList = new List <Epm_RectificationItem>(); rectifRecordList = new List <Epm_RectificationRecord>(); var materialLists = new List <checkItemesPer>(); if (!dic.Keys.Contains(item1.companies[0].personnelList[0].id)) { rectifItemList.Add(rectifItem2); rectifItemList.Add(rectifItem3); dic[item1.companies[0].personnelList[0].id] = rectifItemList; rectifRecordList.Add(record); recordList[item1.companies[0].personnelList[0].id] = rectifRecordList; } else { Epm_RectificationItem item2 = dic[item1.companies[0].personnelList[0].id].Where(t => t.Id == rectifItem2.Id).FirstOrDefault(); if (item2 != null) { dic[item1.companies[0].personnelList[0].id].Add(rectifItem3); } else { rectifItemList.Add(rectifItem2); rectifItemList.Add(rectifItem3); dic[item1.companies[0].personnelList[0].id].AddRange(rectifItemList); rectifRecordList.Add(record); recordList[item1.companies[0].personnelList[0].id].AddRange(rectifRecordList); } } } } #endregion } } } } } } //删除草稿数据 //var delInspect = DataOperateBusiness<Epm_Inspect>.Get().GetList(t => t.ProjectId == projectId && t.InspectUserId == currentUserId && t.IsDraft.Value).FirstOrDefault(); //if (delInspect != null) //{ // var delItems = DataOperateBusiness<Epm_InspectItem>.Get().GetList(t => t.InspectId == delInspect.Id); // var delScores = DataOperateBusiness<Epm_InspectScore>.Get().GetList(t => t.InspectId == delInspect.Id); // var unWorks = DataOperateBusiness<EPM_UnconventionalWork>.Get().GetList(t => t.InspectId == delInspect.Id); // DataOperateBusiness<Epm_Inspect>.Get().Delete(delInspect); // DataOperateBusiness<Epm_InspectItem>.Get().DeleteRange(delItems); // DataOperateBusiness<Epm_InspectScore>.Get().DeleteRange(delScores); // DataOperateBusiness<EPM_UnconventionalWork>.Get().DeleteRange(unWorks); //} ///保存检查单 DataOperateBusiness <Epm_Inspect> .Get().Add(inspect); DataOperateBusiness <Epm_InspectItem> .Get().AddRange(inspectItemList); DataOperateBusiness <Epm_InspectScore> .Get().AddRange(scoreList); DataOperateBusiness <EPM_UnconventionalWork> .Get().AddRange(unWorkList); #region 生成待办 Epm_Approver appInspect = new Epm_Approver(); appInspect.Title = CurrentUserName + "已完成本次现场检查"; appInspect.Content = CurrentUserName + "已完成本次现场检查"; appInspect.SendUserId = CurrentUser.Id; appInspect.SendUserName = CurrentUserName; appInspect.SendTime = DateTime.Now; appInspect.LinkURL = string.Empty; appInspect.BusinessTypeNo = BusinessType.SecurityCheck.ToString(); appInspect.Action = SystemRight.Add.ToString(); appInspect.BusinessTypeName = BusinessType.SecurityCheck.GetText(); appInspect.BusinessState = (int)(RectificationState.WorkFinish); appInspect.BusinessId = inspect.Id; appInspect.ApproverId = inspect.InspectUserId; appInspect.ApproverName = inspect.InspectUserName; appInspect.ProjectId = project.Id; appInspect.ProjectName = project.Name; AddApproverBatch(new List <Epm_Approver>() { appInspect }); WriteLog(BusinessType.Rectification.GetText(), SystemRight.Add.GetText(), "阶段检查生成检查待办: " + inspect.Id); #endregion #region 消息 var waitSend = GetWaitSendMessageList(inspect.ProjectId.Value); foreach (var send in waitSend) { Epm_Massage modelMsg = new Epm_Massage(); modelMsg.ReadTime = null; modelMsg.RecId = send.Key; modelMsg.RecName = send.Value; modelMsg.RecTime = DateTime.Now; modelMsg.SendId = currentUserId; modelMsg.SendName = CurrentUserName; modelMsg.SendTime = DateTime.Now; modelMsg.Title = CurrentUserName + "已完成本次现场检查"; modelMsg.Content = CurrentUserName + "已完成本次现场检查"; modelMsg.Type = 2; modelMsg.IsRead = false; modelMsg.BussinessId = inspect.Id; modelMsg.BussinesType = BusinessType.SecurityCheck.ToString(); modelMsg.ProjectId = inspect.ProjectId; modelMsg.ProjectName = inspect.ProjectName; modelMsg = base.SetCurrentUser(modelMsg); modelMsg = base.SetCreateUser(modelMsg); DataOperateBusiness <Epm_Massage> .Get().Add(modelMsg); } #endregion #endregion #region 整改单 foreach (var key in dic.Keys) { var rectifUser = GetRectif(key, project, companys); if (!string.IsNullOrEmpty(rectifUser)) { var rectif = new Epm_Rectification(); rectif.ProjectId = project.Id; rectif.ProjectName = project.Name; rectif.InsppectId = inspect.Id; rectif.RectificateTitle = "防渗改造项目施工检查表"; rectif.InspectAddress = project.Area + project.Address; rectif.InspectDate = time; rectif.InspectUserId = currentUserId; rectif.InspectUserName = CurrentUserName; if (rectifUser == null) { rectif.RectifRecordUserId = long.Parse("缺失"); rectif.RectifRecordUserName = "******"; } else { rectif.RectifRecordUserId = string.IsNullOrEmpty(rectifUser.Split(',')[0]) ? 0 : rectifUser.Split(',')[0].ToLongReq(); rectif.RectifRecordUserName = rectifUser.Split(',')[1]; } rectif.State = (int)RectificationState.WaitRectification; SetCreateUser(rectif); SetCurrentUser(rectif); DataOperateBusiness <Epm_Rectification> .Get().Add(rectif); var rectificateItem = dic[key]; foreach (var item in rectificateItem) { item.RectificationId = rectif.Id; item.State = (int)RectificationState.WaitRectification; } DataOperateBusiness <Epm_RectificationItem> .Get().AddRange(rectificateItem); var recordModel = recordList[key]; foreach (var item in recordModel) { item.RectficationId = rectif.Id; } DataOperateBusiness <Epm_RectificationRecord> .Get().AddRange(recordModel); var imagesList = item1.files; if (imagesList != null && imagesList.Count > 0) { foreach (var item in imagesList) { long id = item.id.ToLongReq(); Base_Files baseFiles = DataOperateBasic <Base_Files> .Get().GetModel(id); if (item.type == "0") { baseFiles.IsDelete = false; } else { baseFiles.IsDelete = true; } List <Base_Files> guidList = DataOperateBasic <Base_Files> .Get().GetList(t => t.GuidId == baseFiles.GuidId).ToList(); foreach (var temp in guidList) { temp.TableName = "Epm_RectificationRecord"; temp.TableId = rectif.Id; temp.IsDelete = baseFiles.IsDelete; } DataOperateBasic <Base_Files> .Get().UpdateRange(guidList); } } #region 生成待办 Epm_Approver app = new Epm_Approver(); app.Title = CurrentUserName + "进行现场检查发现问题,请处理"; app.Content = CurrentUserName + "进行现场检查发现问题,请处理"; app.SendUserId = CurrentUser.Id; app.SendUserName = CurrentUserName; app.SendTime = DateTime.Now; app.LinkURL = string.Empty; app.BusinessTypeNo = BusinessType.Rectification.ToString(); app.Action = SystemRight.Add.ToString(); app.BusinessTypeName = BusinessType.Rectification.GetText(); app.BusinessState = (int)(RectificationState.WaitRectification); app.BusinessId = rectif.Id; app.ApproverId = rectif.RectifRecordUserId; app.ApproverName = rectif.RectifRecordUserName; app.ProjectId = project.Id; app.ProjectName = project.Name; AddApproverBatch(new List <Epm_Approver>() { app }); WriteLog(BusinessType.Rectification.GetText(), SystemRight.Add.GetText(), "阶段检查生成整改待办: " + rectif.Id); #endregion } } } #endregion result.Data = true; result.Flag = EResultFlag.Success; return(result); }
/// <summary> /// 审核、驳回服务商PM和负责人 /// </summary> /// <param name="Id"></param> /// <param name="state"></param> /// <returns></returns> public Result <bool> AuditProjectCompanyPmAndLink(long Id, ApprovalState state) { Result <bool> result = new Result <bool>(); try { Epm_ProjectCompany pc = DataOperateBusiness <Epm_ProjectCompany> .Get().GetModel(Id); if (state == ApprovalState.ApprSuccess) { pc.PMId = pc.PMId_New; pc.PM = pc.PM_New; pc.PMPhone = pc.PMPhone_New; pc.LinkManId = pc.LinkManId_New; pc.LinkMan = pc.LinkMan_New; pc.LinkPhone = pc.LinkPhone_New; pc.SafeManId = pc.SafeManId_New; pc.SafeMan = pc.SafeMan_New; pc.SafePhone = pc.SafePhone_New; pc = base.FiterUpdate(pc, pc); } pc.State = (int)state; pc.LinkState = (int)state; DataOperateBusiness <Epm_ProjectCompany> .Get().Update(pc); #region 处理待办 var tempApp = DataOperateBusiness <Epm_Approver> .Get().GetList(t => t.BusinessId == pc.Id && t.IsApprover == false).FirstOrDefault(); if (tempApp != null) { ComplateApprover(tempApp.Id); } #endregion #region 消息 var waitSend = GetWaitSendMessageList(pc.ProjectId.Value); var model = DataOperateBusiness <Epm_Project> .Get().GetModel(pc.ProjectId.Value); foreach (var send in waitSend) { Epm_Massage modelMsg = new Epm_Massage(); modelMsg.ReadTime = null; modelMsg.RecId = send.Key; modelMsg.RecName = send.Value; modelMsg.RecTime = DateTime.Now; modelMsg.SendId = CurrentUserID.ToLongReq(); modelMsg.SendName = CurrentUserName; modelMsg.SendTime = DateTime.Now; if (state == ApprovalState.ApprSuccess) { modelMsg.Title = CurrentUserName + "审核通过了你提交的服务商用户修改信息"; modelMsg.Content = CurrentUserName + "审核通过了你提交的服务商用户修改信息"; } else if (state == ApprovalState.ApprFailure) { modelMsg.Title = CurrentUserName + "驳回了你提交的服务商用户修改信息"; modelMsg.Content = CurrentUserName + "驳回了你提交的服务商用户修改信息"; } modelMsg.Type = 2; modelMsg.IsRead = false; modelMsg.BussinessId = model.Id; modelMsg.BussinesType = BusinessType.Project.ToString(); modelMsg.BussinesChild = "ISP"; modelMsg.ProjectId = model.Id; modelMsg.ProjectName = model.Name; modelMsg = base.SetCurrentUser(modelMsg); modelMsg = base.SetCreateUser(modelMsg); DataOperateBusiness <Epm_Massage> .Get().Add(modelMsg); } #endregion result.Flag = EResultFlag.Success; result.Data = true; } catch (Exception ex) { result.Flag = EResultFlag.Failure; result.Data = false; result.Exception = new ExceptionEx(ex, "AuditProjectCompanyPmAndLink"); } return(result); }
///// <summary> ///// 新增工程内容要点 ///// </summary> ///// <param name="model"></param> ///// <returns></returns> //public Result<bool> AddProjectWorkPoint(Epm_ProjectWorkMainPoints model) //{ // Result<bool> result = new Result<bool>(); // try // { // var data = DataOperateBusiness<Epm_ProjectWorkMainPoints>.Get().Single(p => p.ProjectId == model.ProjectId && p.WorkMainPointsValue == model.WorkMainPointsValue); // if (data != null) // { // throw new Exception(string.Format("该项目下已存在同名【{0}】工程内容要点!", model.WorkMainPointsValue)); // } // SetCreateUser(model); // SetCurrentUser(model); // DataOperateBusiness<Epm_ProjectWorkMainPoints>.Get().Add(model); // result.Data = true; // result.Flag = EResultFlag.Success; // } // catch (Exception ex) // { // result.Data = false; // result.Flag = EResultFlag.Failure; // result.Exception = new ExceptionEx(ex, "AddProjectWorkPoint"); // } // return result; //} ///// <summary> ///// 根据 ID 修改工程内容要点 ///// </summary> ///// <param name="model"></param> ///// <returns></returns> //public Result<bool> UpdateProjectWorkPointById(Epm_ProjectWorkMainPoints model) //{ // Result<bool> result = new Result<bool>(); // try // { // var data = DataOperateBusiness<Epm_ProjectWorkMainPoints>.Get().GetModel(model.Id); // if (data == null) // { // throw new Exception("内容不存在或已被删除!"); // } // Epm_ProjectWorkMainPointsHistory historyModel = new Epm_ProjectWorkMainPointsHistory(); // //historyModel.Id = data.Id; // historyModel.ProjectId = data.ProjectId; // historyModel.WorkMainPointsKey = data.WorkMainPointsKey; // historyModel.WorkMainPointsValue = data.WorkMainPointsValue; // historyModel.IsCharging = data.IsCharging; // historyModel.CompanyId = data.CompanyId; // historyModel.CompanyName = data.CompanyName; // historyModel.Qty = data.Qty; // historyModel.Description = data.Description; // historyModel.Sort = data.Sort; // historyModel.CreateTime = data.CreateTime; // historyModel.CreateUserId = data.CreateUserId; // historyModel.CreateTime = data.CreateTime; // historyModel.OperateUserId = data.OperateUserId; // historyModel.OperateUserName = data.OperateUserName; // historyModel.OperateTime = data.OperateTime; // historyModel.IsDelete = false; // DataOperateBusiness<Epm_ProjectWorkMainPointsHistory>.Get().Add(historyModel); // data.ProjectId = model.ProjectId; // data.WorkMainPointsValue = model.WorkMainPointsValue; // data.CompanyName = model.CompanyName; // data.Qty = model.Qty; // data.Description = model.Description; // SetCurrentUser(data); // DataOperateBusiness<Epm_ProjectWorkMainPoints>.Get().Update(data); // #region 消息 // var project = DataOperateBusiness<Epm_Project>.Get().GetModel(data.ProjectId.Value); // var waitSend = GetWaitSendMessageList(project.Id); // foreach (var send in waitSend) // { // Epm_Massage modelMsg = new Epm_Massage(); // modelMsg.ReadTime = null; // modelMsg.RecId = send.Key; // modelMsg.RecName = send.Value; // modelMsg.RecTime = DateTime.Now; // modelMsg.SendId = CurrentUserID.ToLongReq(); // modelMsg.SendName = CurrentUserName; // modelMsg.SendTime = DateTime.Now; // modelMsg.Title = CurrentUserName + "更新工程内容要点信息"; // modelMsg.Content = CurrentUserName + "更新工程内容要点信息"; // modelMsg.Type = 2; // modelMsg.IsRead = false; // modelMsg.BussinessId = project.Id; // modelMsg.BussinesType = BusinessType.Project.ToString(); // modelMsg.BussinesChild = "WorkPoints"; // modelMsg.ProjectId = project.Id; // modelMsg.ProjectName = project.Name; // modelMsg = base.SetCurrentUser(modelMsg); // modelMsg = base.SetCreateUser(modelMsg); // DataOperateBusiness<Epm_Massage>.Get().Add(modelMsg); // } // #endregion // result.Data = true; // result.Flag = EResultFlag.Success; // } // catch (Exception ex) // { // result.Data = false; // result.Flag = EResultFlag.Failure; // result.Exception = new ExceptionEx(ex, "UpdateProjectWorkPointById"); // } // return result; //} /// <summary> /// 修改项目供应商负责人及项目经理 /// </summary> /// <param name="model"></param> /// <returns></returns> public Result <bool> UpdateProjectCompanyPmInfo(Epm_ProjectCompany projectCompany, long userId) { Result <bool> result = new Result <bool>(); int rows = -1; try { Epm_ProjectCompany pc = DataOperateBusiness <Epm_ProjectCompany> .Get().GetModel(projectCompany.Id); if (pc == null) { throw new Exception("供应商信息不存在或已被删除!"); } #region 更新项目经理信息 if (IsBranchCompanyUser(userId))//是否分公司 { //分公司修改不需要审核 pc.PMId_New = projectCompany.PMId_New; pc.PM_New = projectCompany.PM_New; pc.PMPhone_New = projectCompany.PMPhone_New; pc.PMId = projectCompany.PMId_New; pc.PM = projectCompany.PM_New; pc.PMPhone = projectCompany.PMPhone_New; pc.LinkManId_New = projectCompany.LinkManId_New; pc.LinkMan_New = projectCompany.LinkMan_New; pc.LinkPhone_New = projectCompany.LinkPhone_New; pc.LinkManId = projectCompany.LinkManId_New; pc.LinkMan = projectCompany.LinkMan_New; pc.LinkPhone = projectCompany.LinkPhone_New; pc.SafeManId = projectCompany.SafeManId_New; pc.SafeMan = projectCompany.SafeMan_New; pc.SafePhone = projectCompany.SafePhone_New; pc.SafeManId_New = projectCompany.SafeManId_New; pc.SafeMan_New = projectCompany.SafeMan_New; pc.SafePhone_New = projectCompany.SafePhone_New; pc.State = (int)ApprovalState.ApprSuccess; pc = base.FiterUpdate(pc, pc); pc.State = (int)ApprovalState.ApprSuccess; rows = DataOperateBusiness <Epm_ProjectCompany> .Get().Update(pc); } else { pc.PMId_New = projectCompany.PMId_New; pc.PM_New = projectCompany.PM_New; pc.PMPhone_New = projectCompany.PMPhone_New; pc.LinkManId_New = projectCompany.LinkManId_New; pc.LinkMan_New = projectCompany.LinkMan_New; pc.LinkPhone_New = projectCompany.LinkPhone_New; pc.SafeManId_New = projectCompany.SafeManId_New; pc.SafeMan_New = projectCompany.SafeMan_New; pc.SafePhone_New = projectCompany.SafePhone_New; pc.State = (int)ApprovalState.WaitAppr; pc = base.FiterUpdate(pc, pc); rows = DataOperateBusiness <Epm_ProjectCompany> .Get().Update(pc); #region 生成待办 List <Epm_Approver> list = new List <Epm_Approver>(); Epm_Approver app = new Epm_Approver(); app.Title = CurrentUserName + "更新了服务商用户信息,待审核"; app.Content = CurrentUserName + "更新了服务商用户信息,待审核"; app.SendUserId = CurrentUserID.ToLongReq(); app.SendUserName = CurrentUserName; app.SendTime = DateTime.Now; app.LinkURL = string.Empty; app.BusinessTypeNo = BusinessType.Project.ToString(); app.BussinesChild = "ISP"; app.Action = SystemRight.Modify.ToString(); app.BusinessTypeName = BusinessType.Project.GetText(); app.BusinessState = (int)(ApprovalState.WaitAppr); app.BusinessId = pc.Id; var project = DataOperateBusiness <Epm_Project> .Get().GetModel(pc.ProjectId.Value); app.ApproverId = project.ContactUserId; app.ApproverName = project.ContactUserName; app.ProjectId = pc.ProjectId; app.ProjectName = project.Name; list.Add(app); AddApproverBatch(list); WriteLog(BusinessType.Project.GetText(), SystemRight.Modify.GetText(), "服务商用户信息更新生成待办: " + pc.ProjectId); #endregion } #endregion result.Flag = EResultFlag.Success; result.Data = true; } catch (Exception ex) { result.Flag = EResultFlag.Failure; result.Data = false; result.Exception = new ExceptionEx(ex, "UpdateProjectCompanyPmInfo"); } return(result); }
/// <summary> /// 更新状态 /// </summary> /// <param name="id"></param> /// <param name="state"></param> /// <returns></returns> public Result <int> UpdateContractState(long id, string state) { Result <int> result = new Result <int>(); try { var model = DataOperateBusiness <Epm_Contract> .Get().GetModel(id); if (model != null) { model.OperateUserId = CurrentUserID.ToLongReq(); model.OperateUserName = CurrentUserName; model.OperateTime = DateTime.Now; model.State = (int)state.ToEnumReq <ApprovalState>(); var rows = DataOperateBusiness <Epm_Contract> .Get().Update(model); result.Data = rows; result.Flag = EResultFlag.Success; WriteLog(BusinessType.Contract.GetText(), SystemRight.Modify.GetText(), "更新状态: " + rows); } else { throw new Exception("该合同id不存在"); } //处理待办 var temp = DataOperateBusiness <Epm_Approver> .Get().GetList(t => t.BusinessId == model.Id && t.IsApprover == false).FirstOrDefault(); if (temp != null) { ComplateApprover(temp.Id); } string title = ""; if ((ApprovalState)Enum.ToObject(typeof(ApprovalState), model.State) == ApprovalState.ApprSuccess) { if (model.ProjectId.Value != 0) { title = model.CreateUserName + "上传的合同信息,审核通过"; #region 生成待办 List <Epm_Approver> list = new List <Epm_Approver>(); Epm_Approver app = new Epm_Approver(); app.Title = model.CreateUserName + "上传的合同信息,审核通过"; app.Content = model.CreateUserName + "上传的合同信息,审核通过"; app.SendUserId = model.CreateUserId; app.SendUserName = model.CreateUserName; app.SendTime = model.CreateTime; app.LinkURL = string.Empty; app.BusinessTypeNo = BusinessType.Contract.ToString(); app.Action = SystemRight.Check.ToString(); app.BusinessTypeName = BusinessType.Contract.GetText(); app.BusinessState = (int)(ApprovalState.ApprSuccess); app.BusinessId = model.Id; app.ApproverId = model.CreateUserId; app.ApproverName = model.CreateUserName; app.ProjectId = model.ProjectId; app.ProjectName = model.ProjectName; list.Add(app); AddApproverBatch(list); WriteLog(BusinessType.Contract.GetText(), SystemRight.Check.GetText(), "审核通过合同生成待办: " + model.Id); #endregion } } else if ((ApprovalState)Enum.ToObject(typeof(ApprovalState), model.State) == ApprovalState.ApprFailure) { if (model.ProjectId.Value != 0) { title = model.CreateUserName + "上传的合同信息已被驳回,请处理"; #region 生成待办 List <Epm_Approver> list = new List <Epm_Approver>(); Epm_Approver app = new Epm_Approver(); app.Title = model.CreateUserName + "上传的合同信息已被驳回,请处理"; app.Content = model.CreateUserName + "上传的合同信息已被驳回,请处理"; app.SendUserId = model.CreateUserId; app.SendUserName = model.CreateUserName; app.SendTime = model.CreateTime; app.LinkURL = string.Empty; app.BusinessTypeNo = BusinessType.Contract.ToString(); app.Action = SystemRight.UnCheck.ToString(); app.BusinessTypeName = BusinessType.Contract.GetText(); app.BusinessState = (int)(ApprovalState.ApprFailure); app.BusinessId = model.Id; app.ApproverId = model.CreateUserId; app.ApproverName = model.CreateUserName; app.ProjectId = model.ProjectId; app.ProjectName = model.ProjectName; list.Add(app); AddApproverBatch(list); WriteLog(BusinessType.Contract.GetText(), SystemRight.UnCheck.GetText(), "驳回合同生成待办: " + model.Id); #endregion #region 发送短信 //WriteSMS(model.CreateUserId, 0, MessageStep.ContractReject, null); #endregion } } if (model.ProjectId.Value != 0) { #region 消息 var waitSend = GetWaitSendMessageList(model.ProjectId.Value); foreach (var send in waitSend) { Epm_Massage modelMsg = new Epm_Massage(); modelMsg.ReadTime = null; modelMsg.RecId = send.Key; modelMsg.RecName = send.Value; modelMsg.RecTime = DateTime.Now; modelMsg.SendId = CurrentUserID.ToLongReq(); modelMsg.SendName = CurrentUserName; modelMsg.SendTime = DateTime.Now; modelMsg.Title = title; modelMsg.Content = title; modelMsg.Type = 2; modelMsg.IsRead = false; modelMsg.BussinessId = model.Id; modelMsg.BussinesType = BusinessType.Contract.ToString(); modelMsg.ProjectId = model.ProjectId.Value; modelMsg.ProjectName = model.ProjectName; modelMsg = base.SetCurrentUser(modelMsg); modelMsg = base.SetCreateUser(modelMsg); DataOperateBusiness <Epm_Massage> .Get().Add(modelMsg); } #endregion } } catch (Exception ex) { result.Data = -1; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(ex, "UpdateState"); } return(result); }
///<summary> ///删除: ///</summary> /// <param name="ids">要删除的Id集合</param> /// <returns>受影响的行数</returns> public Result <int> DeleteBimByIds(List <long> ids) { Result <int> result = new Result <int>(); try { var models = DataOperateBusiness <Epm_Bim> .Get().GetList(i => ids.Contains(i.Id)).ToList(); if (models.Count > 0) { foreach (var model in models) { model.OperateUserId = CurrentUserID.ToLongReq(); model.OperateUserName = CurrentUserName; model.OperateTime = DateTime.Now; model.DeleteTime = DateTime.Now; //处理待办 var temp = DataOperateBusiness <Epm_Approver> .Get().GetList(t => t.BusinessId == model.Id && t.IsApprover == false).FirstOrDefault(); if (temp != null) { ComplateApprover(temp.Id); } #region 消息 var waitSend = GetWaitSendMessageList(model.ProjectId.Value); foreach (var send in waitSend) { Epm_Massage modelMsg = new Epm_Massage(); modelMsg.ReadTime = null; modelMsg.RecId = send.Key; modelMsg.RecName = send.Value; modelMsg.RecTime = DateTime.Now; modelMsg.SendId = CurrentUserID.ToLongReq(); modelMsg.SendName = CurrentUserName; modelMsg.SendTime = DateTime.Now; modelMsg.Title = CurrentUserName + "上传的BIM模型已删除"; modelMsg.Content = CurrentUserName + "上传的BIM模型已删除"; modelMsg.Type = 2; modelMsg.IsRead = false; modelMsg.BussinessId = model.Id; modelMsg.BussinesType = BusinessType.Model.ToString(); modelMsg.ProjectId = model.ProjectId.Value; modelMsg.ProjectName = model.ProjectName; modelMsg = base.SetCurrentUser(modelMsg); modelMsg = base.SetCreateUser(modelMsg); DataOperateBusiness <Epm_Massage> .Get().Add(modelMsg); } #endregion } var rows = DataOperateBusiness <Epm_Bim> .Get().DeleteRange(models); result.Data = rows; result.Flag = EResultFlag.Success; WriteLog(BusinessType.Model.GetText(), SystemRight.Delete.GetText(), "批量删除: " + rows); } else { throw new Exception("要删除的模型不存在或已被删除!"); } } catch (Exception ex) { result.Data = -1; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(ex, "DeleteBimByIds"); } return(result); }
/// <summary> /// 更新状态 /// </summary> /// <param name="id"></param> /// <param name="state"></param> /// <returns></returns> public Result <int> UpdateMaterialState(long id, ConfirmState state) { Result <int> result = new Result <int>(); try { var model = DataOperateBusiness <Epm_Material> .Get().GetModel(id); model.State = (int)state; var rows = DataOperateBusiness <Epm_Material> .Get().Update(model); result.Data = rows; result.Flag = EResultFlag.Success; WriteLog(BusinessType.Equipment.GetText(), SystemRight.Modify.GetText(), "更新状态: " + rows); //处理待办 var tempApp = DataOperateBusiness <Epm_Approver> .Get().GetList(t => t.BusinessId == model.Id && t.IsApprover == false).FirstOrDefault(); if (tempApp != null) { ComplateApprover(tempApp.Id); } if (state == ConfirmState.Discarded) { #region 生成待办 var project = DataOperateBusiness <Epm_Project> .Get().GetModel(model.ProjectId.Value); List <Epm_Approver> list = new List <Epm_Approver>(); Epm_Approver app = new Epm_Approver(); app.Title = model.CreateUserName + "提报的工器具机械验收单,已废弃"; app.Content = model.CreateUserName + "提报的工器具机械验收单,已废弃"; app.SendUserId = CurrentUserID.ToLongReq(); app.SendUserName = CurrentUserName; app.SendTime = DateTime.Now; app.LinkURL = string.Empty; app.BusinessTypeNo = BusinessType.Equipment.ToString(); app.Action = SystemRight.Invalid.ToString(); app.BusinessTypeName = BusinessType.Equipment.GetText(); app.BusinessState = (int)(ConfirmState.Discarded); app.BusinessId = model.Id; app.ApproverId = project.ContactUserId; app.ApproverName = project.ContactUserName; app.ProjectId = model.ProjectId; app.ProjectName = project.Name; list.Add(app); AddApproverBatch(list); WriteLog(BusinessType.Equipment.GetText(), SystemRight.Invalid.GetText(), "废弃工器具机械验收生成待办: " + model.Id); #endregion #region 消息 Epm_Massage modelMsg = new Epm_Massage(); modelMsg.ReadTime = null; modelMsg.RecId = model.CreateUserId; modelMsg.RecName = model.CreateUserName; modelMsg.RecTime = DateTime.Now; modelMsg.SendId = CurrentUserID.ToLongReq(); modelMsg.SendName = CurrentUserName; modelMsg.SendTime = DateTime.Now; modelMsg.Title = model.CreateUserName + "提报的工器具机械验收单已被" + CurrentUserName + "废弃,请处理"; modelMsg.Content = model.CreateUserName + "提报的工器具机械验收单已被" + CurrentUserName + "废弃,请处理"; modelMsg.Type = 2; modelMsg.IsRead = false; modelMsg.BussinessId = model.Id; modelMsg.BussinesType = BusinessType.Equipment.ToString(); modelMsg.ProjectId = model.ProjectId.Value; modelMsg.ProjectName = model.ProjectName; modelMsg = base.SetCurrentUser(modelMsg); modelMsg = base.SetCreateUser(modelMsg); DataOperateBusiness <Epm_Massage> .Get().Add(modelMsg); #endregion } else if (state == ConfirmState.Confirm) { #region 生成待办 List <Epm_Approver> list = new List <Epm_Approver>(); Epm_Approver app = new Epm_Approver(); app.Title = model.CreateUserName + "提报的工器具机械验收单,审核通过"; app.Content = model.CreateUserName + "提报的工器具机械验收单,审核通过"; app.SendUserId = model.CreateUserId; app.SendUserName = model.CreateUserName; app.SendTime = model.CreateTime; app.LinkURL = string.Empty; app.BusinessTypeNo = BusinessType.Equipment.ToString(); app.Action = SystemRight.Check.ToString(); app.BusinessTypeName = BusinessType.Equipment.GetText(); app.BusinessState = (int)(ConfirmState.Confirm); app.BusinessId = model.Id; app.ApproverId = model.CreateUserId; app.ApproverName = model.CreateUserName; app.ProjectId = model.ProjectId; app.ProjectName = model.ProjectName; list.Add(app); AddApproverBatch(list); WriteLog(BusinessType.Equipment.GetText(), SystemRight.Check.GetText(), "驳回合同生成待办: " + model.Id); #endregion #region 消息 var waitSend = GetWaitSendMessageList(model.ProjectId.Value); foreach (var send in waitSend) { Epm_Massage modelMsg = new Epm_Massage(); modelMsg.ReadTime = null; modelMsg.RecId = send.Key; modelMsg.RecName = send.Value; modelMsg.RecTime = DateTime.Now; modelMsg.SendId = CurrentUserID.ToLongReq(); modelMsg.SendName = CurrentUserName; modelMsg.SendTime = DateTime.Now; modelMsg.Title = model.CreateUserName + "提报的工器具机械验收单," + CurrentUserName + "已审核通过"; modelMsg.Content = model.CreateUserName + "提报的工器具机械验收单," + CurrentUserName + "已审核通过"; modelMsg.Type = 2; modelMsg.IsRead = false; modelMsg.BussinessId = model.Id; modelMsg.BussinesType = BusinessType.Equipment.ToString(); modelMsg.ProjectId = model.ProjectId.Value; modelMsg.ProjectName = model.ProjectName; modelMsg = base.SetCurrentUser(modelMsg); modelMsg = base.SetCreateUser(modelMsg); DataOperateBusiness <Epm_Massage> .Get().Add(modelMsg); } #endregion } else if (state == ConfirmState.ConfirmFailure) { #region 生成待办 List <Epm_Approver> list = new List <Epm_Approver>(); Epm_Approver app = new Epm_Approver(); app.Title = model.CreateUserName + "提报的工器具机械验收单已被驳回,请处理"; app.Content = model.CreateUserName + "提报的工器具机械验收单已被驳回,请处理"; app.SendUserId = model.CreateUserId; app.SendUserName = model.CreateUserName; app.SendTime = model.CreateTime; app.LinkURL = string.Empty; app.BusinessTypeNo = BusinessType.Equipment.ToString(); app.Action = SystemRight.UnCheck.ToString(); app.BusinessTypeName = BusinessType.Equipment.GetText(); app.BusinessState = (int)(ConfirmState.ConfirmFailure); app.BusinessId = model.Id; app.ApproverId = model.CreateUserId; app.ApproverName = model.CreateUserName; app.ProjectId = model.ProjectId; app.ProjectName = model.ProjectName; list.Add(app); AddApproverBatch(list); WriteLog(BusinessType.Equipment.GetText(), SystemRight.UnCheck.GetText(), "驳回合同生成待办: " + model.Id); #endregion #region 消息 Epm_Massage modelMsg = new Epm_Massage(); modelMsg.ReadTime = null; modelMsg.RecId = model.CreateUserId; modelMsg.RecName = model.CreateUserName; modelMsg.RecTime = DateTime.Now; modelMsg.SendId = CurrentUserID.ToLongReq(); modelMsg.SendName = CurrentUserName; modelMsg.SendTime = DateTime.Now; modelMsg.Title = model.CreateUserName + "提报的工器具机械验收单已被" + CurrentUserName + "驳回,请处理"; modelMsg.Content = model.CreateUserName + "提报的工器具机械验收单已被" + CurrentUserName + "驳回,请处理"; modelMsg.Type = 2; modelMsg.IsRead = false; modelMsg.BussinessId = model.Id; modelMsg.BussinesType = BusinessType.Equipment.ToString(); modelMsg.ProjectId = model.ProjectId.Value; modelMsg.ProjectName = model.ProjectName; modelMsg = base.SetCurrentUser(modelMsg); modelMsg = base.SetCreateUser(modelMsg); DataOperateBusiness <Epm_Massage> .Get().Add(modelMsg); #endregion #region 发送短信 //WriteSMS(model.CreateUserId, 0, MessageStep.MaterialReject, null); #endregion } } catch (Exception ex) { result.Data = -1; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(ex, "UpdateMaterialState"); } return(result); }
///<summary> ///修改: ///</summary> /// <param name="model">要修改的model</param> /// <returns>受影响的行数</returns> public Result <int> UpdateMaterial(MaterialView model) { Result <int> result = new Result <int>(); try { var oldModel = DataOperateBusiness <Epm_Material> .Get().GetModel(model.Epm_Material.Id); if (oldModel == null) { throw new Exception("该材料设备验收不存在或已被删除"); } model.Epm_Material = FiterUpdate(oldModel, model.Epm_Material); model.Epm_Material.CompanyId = oldModel.CompanyId; model.Epm_Material.CompanyName = oldModel.CompanyName; var row = DataOperateBusiness <Epm_Material> .Get().Update(model.Epm_Material); if (model.MaterialDetails.Count > 0) { //先删除 var detaileList = DataOperateBusiness <Epm_MaterialDetails> .Get().GetList(p => p.MaterialCheckId == model.Epm_Material.Id); if (detaileList.Any()) { DataOperateBusiness <Epm_MaterialDetails> .Get().DeleteRange(detaileList); } model.MaterialDetails.ForEach(item => { item.MaterialCheckId = model.Epm_Material.Id; item.CrtCompanyId = CurrentCompanyID.ToLongReq(); item.CrtCompanyName = CurrentCompanyName; item.CreateUserId = CurrentUserID.ToLongReq(); item.CreateUserName = CurrentUserName; item.CreateTime = DateTime.Now; item.State = 0; item = SetCurrentUser(item); item = SetCreateUser(item); }); DataOperateBusiness <Epm_MaterialDetails> .Get().AddRange(model.MaterialDetails); } //上传模型 if (model.FileList != null) { //删除之前的附件 DeleteFilesByTable(model.GetType().Name, new List <long>() { model.Epm_Material.Id }); //新增附件 AddFilesByTable(model.Epm_Material, model.FileList); } result.Data = row; result.Flag = EResultFlag.Success; WriteLog(BusinessType.Equipment.GetText(), SystemRight.Add.GetText(), "修改: " + model.Epm_Material.Id); //处理待办 var tempApp = DataOperateBusiness <Epm_Approver> .Get().GetList(t => t.BusinessId == model.Epm_Material.Id && t.IsApprover == false).FirstOrDefault(); if (tempApp != null) { ComplateApprover(tempApp.Id); } if (model.Epm_Material.State == (int)ConfirmState.WaitConfirm) { #region 生成待办 var project = DataOperateBusiness <Epm_Project> .Get().GetModel(model.Epm_Material.ProjectId.Value); List <Epm_Approver> list = new List <Epm_Approver>(); Epm_Approver app = new Epm_Approver(); app.Title = CurrentUserName + "提报了工器具机械验收单,待审核"; app.Content = CurrentUserName + "提报了工器具机械验收单,待审核"; app.SendUserId = CurrentUserID.ToLongReq(); app.SendUserName = CurrentUserName; app.SendTime = DateTime.Now; app.LinkURL = string.Empty; app.BusinessTypeNo = BusinessType.Equipment.ToString(); app.Action = SystemRight.Add.ToString(); app.BusinessTypeName = BusinessType.Equipment.GetText(); app.BusinessState = (int)(ConfirmState.WaitConfirm); app.BusinessId = model.Epm_Material.Id; app.ApproverId = project.ContactUserId; app.ApproverName = project.ContactUserName; app.ProjectId = model.Epm_Material.ProjectId; app.ProjectName = project.Name; list.Add(app); AddApproverBatch(list); WriteLog(BusinessType.Equipment.GetText(), SystemRight.Add.GetText(), "提交工器具机械验收生成待办: " + model.Epm_Material.Id); #endregion #region 消息 Epm_Massage modelMsg = new Epm_Massage(); modelMsg.ReadTime = null; modelMsg.RecId = project.ContactUserId.Value; modelMsg.RecName = project.ContactUserName; modelMsg.RecTime = DateTime.Now; modelMsg.SendId = CurrentUserID.ToLongReq(); modelMsg.SendName = CurrentUserName; modelMsg.SendTime = DateTime.Now; modelMsg.Title = CurrentUserName + "提报了工器具机械验收单,待审核"; modelMsg.Content = CurrentUserName + "提报了工器具机械验收单,待审核"; modelMsg.Type = 2; modelMsg.IsRead = false; modelMsg.BussinessId = model.Epm_Material.Id; modelMsg.BussinesType = BusinessType.Equipment.ToString(); modelMsg.ProjectId = model.Epm_Material.ProjectId.Value; modelMsg.ProjectName = model.Epm_Material.ProjectName; modelMsg = base.SetCurrentUser(modelMsg); modelMsg = base.SetCreateUser(modelMsg); DataOperateBusiness <Epm_Massage> .Get().Add(modelMsg); #endregion #region 发送短信 //Dictionary<string, string> parameters = new Dictionary<string, string>(); //parameters.Add("UserName", CurrentUserName); //WriteSMS(project.ContactUserId.Value, project.CompanyId, MessageStep.MaterialAdd, parameters); #endregion } } catch (Exception e) { result.Data = -1; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(e, "UpdateMaterial"); } return(result); }
///<summary> ///添加: ///</summary> /// <param name="model">要添加的model</param> /// <returns>受影响的行数</returns> public Result <int> AddBim(Epm_Bim model, List <Base_Files> fileListFile) { Result <int> result = new Result <int>(); try { model = base.SetCurrentUser(model); model.CrtCompanyId = CurrentCompanyID.ToLongReq(); model.CrtCompanyName = CurrentCompanyName; //bool dConfig = DataOperateBusiness<Epm_Bim>.Get().Count(i => i.Name == model.Name) > 0; //if (dConfig) //{ // throw new Exception("该模型名称已经存在"); //} var rows = DataOperateBusiness <Epm_Bim> .Get().Add(model); //上传模型 if (fileListFile != null) { AddFilesByTable(model, fileListFile); } //生成代办消息 if ((ApprovalState)model.State == ApprovalState.WaitAppr) { #region 生成待办 var project = DataOperateBusiness <Epm_Project> .Get().GetModel(model.ProjectId.Value); List <Epm_Approver> list = new List <Epm_Approver>(); Epm_Approver app = new Epm_Approver(); app.Title = CurrentUserName + "上传了BIM模型,待审核"; app.Content = CurrentUserName + "上传了BIM模型,待审核"; app.SendUserId = CurrentUserID.ToLongReq(); app.SendUserName = CurrentUserName; app.SendTime = DateTime.Now; app.LinkURL = string.Empty; app.BusinessTypeNo = BusinessType.Model.ToString(); app.Action = SystemRight.Add.ToString(); app.BusinessTypeName = BusinessType.Model.GetText(); app.BusinessState = (int)(ApprovalState.WaitAppr); app.BusinessId = model.Id; app.ApproverId = project.ContactUserId; app.ApproverName = project.ContactUserName; app.ProjectId = model.ProjectId; app.ProjectName = project.Name; list.Add(app); AddApproverBatch(list); WriteLog(BusinessType.Model.GetText(), SystemRight.Add.GetText(), "提交模型生成待办: " + model.Id); #endregion #region 消息 var waitSend = GetWaitSendMessageList(model.ProjectId.Value); foreach (var send in waitSend) { Epm_Massage modelMsg = new Epm_Massage(); modelMsg.ReadTime = null; modelMsg.RecId = send.Key; modelMsg.RecName = send.Value; modelMsg.RecTime = DateTime.Now; modelMsg.SendId = CurrentUserID.ToLongReq(); modelMsg.SendName = CurrentUserName; modelMsg.SendTime = DateTime.Now; modelMsg.Title = CurrentUserName + "上传了BIM模型,待审核"; modelMsg.Content = CurrentUserName + "上传了BIM模型,待审核"; modelMsg.Type = 2; modelMsg.IsRead = false; modelMsg.BussinessId = model.Id; modelMsg.BussinesType = BusinessType.Model.ToString(); modelMsg.ProjectId = model.ProjectId.Value; modelMsg.ProjectName = model.ProjectName; modelMsg = base.SetCurrentUser(modelMsg); modelMsg = base.SetCreateUser(modelMsg); DataOperateBusiness <Epm_Massage> .Get().Add(modelMsg); } #endregion #region 发送短信 //Dictionary<string, string> parameterSms = new Dictionary<string, string>(); //parameterSms.Add("UserName", CurrentUserName); //WriteSMS(project.ContactUserId.Value, project.CompanyId, MessageStep.ModelAdd, parameterSms); #endregion } result.Data = rows; result.Flag = EResultFlag.Success; WriteLog(BusinessType.Model.GetText(), SystemRight.Add.GetText(), "新增: " + model.Id); } catch (Exception ex) { result.Data = -1; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(ex, "AddBim"); } return(result); }
/// <summary> /// 审核/驳回 /// </summary> /// <param name="id"></param> /// <param name="state"></param> /// <param name="reason"></param> /// <returns></returns> public Result <int> RejectBim(long id, string state, string reason) { Result <int> result = new Result <int>(); try { var drawState = state.ToEnumReq <ApprovalState>(); var model = DataOperateBusiness <Epm_Bim> .Get().GetModel(id); //处理待办 var temp = DataOperateBusiness <Epm_Approver> .Get().GetList(t => t.BusinessId == model.Id && t.IsApprover == false).FirstOrDefault(); if (temp != null) { ComplateApprover(temp.Id); } model.OperateUserId = CurrentUserID.ToLongReq(); model.OperateUserName = CurrentUserName; model.OperateTime = DateTime.Now; model.State = int.Parse(drawState.GetValue().ToString()); string title = ""; if ((ApprovalState)Enum.ToObject(typeof(ApprovalState), model.State) == ApprovalState.ApprSuccess) { //每一次审核通过都修改本次IsValidate的值为1,之前已经存在的IsValidate为1的状态修改为0; model.IsValidate = true; var list = DataOperateBusiness <Epm_Bim> .Get().GetList(t => t.ProjectId == model.ProjectId && t.Id != model.Id).ToList(); if (list.Count > 0) { foreach (var item in list) { item.IsValidate = false; } DataOperateBusiness <Epm_Bim> .Get().UpdateRange(list); } title = model.CreateUserName + "上传的BIM模型,审核通过"; #region 生成待办 List <Epm_Approver> listApp = new List <Epm_Approver>(); Epm_Approver app = new Epm_Approver(); app.Title = model.CreateUserName + "上传的BIM模型,审核通过"; app.Content = model.CreateUserName + "上传的BIM模型,审核通过"; app.SendUserId = model.CreateUserId; app.SendUserName = model.CreateUserName; app.SendTime = model.CreateTime; app.LinkURL = string.Empty; app.BusinessTypeNo = BusinessType.Model.ToString(); app.Action = SystemRight.Check.ToString(); app.BusinessTypeName = BusinessType.Model.GetText(); app.BusinessState = (int)(ApprovalState.ApprSuccess); app.BusinessId = model.Id; app.ApproverId = model.CreateUserId; app.ApproverName = model.CreateUserName; app.ProjectId = model.ProjectId; app.ProjectName = model.ProjectName; listApp.Add(app); AddApproverBatch(listApp); WriteLog(BusinessType.Model.GetText(), SystemRight.Check.GetText(), "审核通过模型生成待办: " + model.Id); #endregion } else if ((ApprovalState)Enum.ToObject(typeof(ApprovalState), model.State) == ApprovalState.ApprFailure) { title = model.CreateUserName + "上传的BIM模型已被驳回,请处理"; #region 生成待办 List <Epm_Approver> list = new List <Epm_Approver>(); Epm_Approver app = new Epm_Approver(); app.Title = model.CreateUserName + "上传的BIM模型已被驳回,请处理"; app.Content = model.CreateUserName + "上传的BIM模型已被驳回,请处理"; app.SendUserId = model.CreateUserId; app.SendUserName = model.CreateUserName; app.SendTime = model.CreateTime; app.LinkURL = string.Empty; app.BusinessTypeNo = BusinessType.Model.ToString(); app.Action = SystemRight.UnCheck.ToString(); app.BusinessTypeName = BusinessType.Model.GetText(); app.BusinessState = (int)(ApprovalState.ApprFailure); app.BusinessId = model.Id; app.ApproverId = model.CreateUserId; app.ApproverName = model.CreateUserName; app.ProjectId = model.ProjectId; app.ProjectName = model.ProjectName; list.Add(app); AddApproverBatch(list); WriteLog(BusinessType.Model.GetText(), SystemRight.UnCheck.GetText(), "驳回模型生成待办: " + model.Id); #endregion #region 发送短信 //WriteSMS(model.CreateUserId, 0, MessageStep.ModelReject, null); #endregion } var rows = DataOperateBusiness <Epm_Bim> .Get().Update(model); #region 消息 var waitSend = GetWaitSendMessageList(model.ProjectId.Value); foreach (var send in waitSend) { Epm_Massage modelMsg = new Epm_Massage(); modelMsg.ReadTime = null; modelMsg.RecId = send.Key; modelMsg.RecName = send.Value; modelMsg.RecTime = DateTime.Now; modelMsg.SendId = CurrentUserID.ToLongReq(); modelMsg.SendName = CurrentUserName; modelMsg.SendTime = DateTime.Now; modelMsg.Title = title; modelMsg.Content = title; modelMsg.Type = 2; modelMsg.IsRead = false; modelMsg.BussinessId = model.Id; modelMsg.BussinesType = BusinessType.Model.ToString(); modelMsg.ProjectId = model.ProjectId.Value; modelMsg.ProjectName = model.ProjectName; modelMsg = base.SetCurrentUser(modelMsg); modelMsg = base.SetCreateUser(modelMsg); DataOperateBusiness <Epm_Massage> .Get().Add(modelMsg); } #endregion result.Data = rows; result.Flag = EResultFlag.Success; } catch (Exception ex) { result.Data = -1; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(ex, "RejectBim"); } return(result); }