Beispiel #1
0
        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);
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
        /// <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);
        }
Beispiel #4
0
        /// <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);
        }
Beispiel #5
0
        /// <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);
        }
Beispiel #6
0
        ///<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;
        }
Beispiel #7
0
        ///<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);
        }
Beispiel #8
0
        /// <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);
        }
Beispiel #10
0
        ///<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);
        }
Beispiel #11
0
        /// <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);
        }
Beispiel #12
0
        /// <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);
        }
Beispiel #13
0
        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);
        }
Beispiel #14
0
        /// <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);
        }
Beispiel #15
0
        /// <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);
        }
Beispiel #16
0
        ///<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);
        }
Beispiel #17
0
        ///<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);
        }
Beispiel #18
0
        ///<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);
        }
Beispiel #19
0
        /// <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);
        }
Beispiel #20
0
        /// <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);
        }
Beispiel #21
0
        /// <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);
        }
Beispiel #23
0
        /// <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);
        }
Beispiel #24
0
        ///// <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);
        }
Beispiel #25
0
        /// <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);
        }
Beispiel #26
0
        ///<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);
        }
Beispiel #27
0
        /// <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);
        }
Beispiel #28
0
        ///<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);
        }
Beispiel #29
0
        ///<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);
        }
Beispiel #30
0
        /// <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);
        }