Example #1
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);
        }
Example #2
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);
        }
Example #3
0
        private void ViewToEmp(TrainView view, out Epm_Train model, out List <Epm_TrainCompany> companys)
        {
            model = new Epm_Train();
            model = SetCurrentUser(model);
            model.CrtCompanyId   = CurrentCompanyID.ToLongReq();
            model.CrtCompanyName = CurrentCompanyName;
            model.CompanyId      = CurrentCompanyID.ToLongReq();
            model.CompanyName    = CurrentCompanyName;

            model.Id        = view.Id;
            model.CompanyId = view.CompanyId;

            model.CompanyName = view.CompanyName;

            model.Content          = view.Content;
            model.CrtCompanyId     = view.CrtCompanyId;
            model.CrtCompanyName   = view.CrtCompanyName;
            model.ProjectId        = view.ProjectId;
            model.ProjectName      = view.ProjectName;
            model.Remark           = view.Remark;
            model.StartTime        = view.StartTime;
            model.State            = view.State;
            model.Title            = view.Title;
            model.TrainCompanyId   = view.TrainCompanyId;
            model.TrainCompanyName = view.TrainCompanyName;
            model.TrainTypeName    = view.TrainTypeName;
            model.TrainTypeNo      = view.TrainTypeNo;
            model.TrainUserId      = view.TrainUserId;
            model.TrainUserName    = view.TrainUserName;
            model.EndTime          = view.EndTime;
            model.CreateUserId     = view.CreateUserId;
            model.CreateUserName   = view.CreateUserName;
            model.CreateTime       = view.CreateTime;
            companys = new List <Epm_TrainCompany>();
            if (!string.IsNullOrWhiteSpace(view.CompanyIds))
            {
                var Ids  = view.CompanyIds.Split(',').ToLongList();
                var list = DataOperateBasic <Base_Company> .Get().GetList(t => Ids.Contains(t.Id));

                foreach (var item in list)
                {
                    var comany = new Epm_TrainCompany();
                    base.SetCurrentUser(comany);
                    comany.CrtCompanyId   = CurrentCompanyID.ToLongReq();
                    comany.CrtCompanyName = CurrentCompanyName;
                    comany.CompanyId      = item.Id;
                    comany.CompanyName    = item.Name;
                    comany.TrainId        = view.Id;
                    comany.CompanyCode    = item.Code;
                    comany.CompanyType    = item.Type;
                    companys.Add(comany);
                }
            }
        }
Example #4
0
        private void ViewToEmp(ChangeView view, out Epm_Change change, out List <Epm_ChangeCompany> companys)
        {
            change = new Epm_Change();
            base.SetCurrentUser(change);
            change.CrtCompanyId    = CurrentCompanyID.ToLongReq();
            change.CrtCompanyName  = CurrentCompanyName;
            change.Id              = view.Id;
            change.ChangeAmount    = view.ChangeAmount;
            change.ChangeContent   = view.ChangeContent;
            change.ChangeDays      = view.ChangeDays;
            change.ChangeEndTime   = view.ChangeEndTime;
            change.ChangeName      = view.ChangeName;
            change.ChangeNo        = view.ChangeNo;
            change.ChangeReason    = view.ChangeReason;
            change.ChangeStartTime = view.ChangeStartTime;
            change.ProjectId       = view.ProjectId;
            change.ProjectName     = view.ProjectName;
            change.Remark          = view.Remark;
            change.State           = view.State;
            change.SubmitUserId    = view.SubmitUserId;
            change.SubmitUserName  = view.SubmitUserName;
            change.CreateTime      = view.CreateTime;
            change.CrtCompanyName  = view.CrtCompanyName;
            change.AddAmount       = view.AddAmount;
            change.TotalAmount     = view.TotalAmount;
            change.ReduceAmount    = view.ReduceAmount;

            companys = new List <Epm_ChangeCompany>();
            if (view.Epm_ChangeCompany != null)
            {
                foreach (var item in view.Epm_ChangeCompany)
                {
                    var comany = new Epm_ChangeCompany();
                    base.SetCurrentUser(comany);
                    comany.CrtCompanyId   = CurrentCompanyID.ToLongReq();
                    comany.CrtCompanyName = CurrentCompanyName;
                    comany.CompanyId      = item.CompanyId;
                    comany.CompanyName    = item.CompanyName;
                    comany.ChangeId       = view.Id;
                    comany.CompanyType    = item.CompanyType;
                    companys.Add(comany);
                }
            }
        }
Example #5
0
        private void ViewToEmp(VisaView view, out Epm_Visa visa, out List<Epm_VisaCompany> companys)
        {
            visa = new Epm_Visa();
            base.SetCurrentUser(visa);
            visa.ChangeId = view.ChangeId ?? 0;
            visa.ChangeName = view.ChangeName ?? "";
            visa.CrtCompanyId = CurrentCompanyID.ToLongReq();
            visa.CrtCompanyName = CurrentCompanyName ?? "";
            visa.Id = view.Id;
            visa.VisaAmount = view.VisaAmount ?? 0;
            visa.VisaTitle = view.VisaTitle ?? "";
            visa.VisaContent = view.VisaContent ?? "";
            visa.VisaDays = view.VisaDays ?? 0;
            visa.VisaEndTime = view.VisaEndTime;
            visa.VisaNo = view.VisaNo ?? "";
            visa.VisaResean = view.VisaResean ?? "";
            visa.VisaStartTime = view.VisaStartTime;
            visa.ProjectId = view.ProjectId ?? 0;
            visa.ProjectName = view.ProjectName ?? "";
            visa.Remark = view.Remark ?? "";
            visa.State = view.State;
            visa.SubmitUserId = view.SubmitUserId;
            visa.SubmitUserName = view.SubmitUserName ?? "";
            visa.VisaTypeName = view.VisaTypeName ?? "";

            companys = new List<Epm_VisaCompany>();
            if (view.Epm_VisaCompany != null)
            {
                foreach (var item in view.Epm_VisaCompany)
                {
                    var comany = new Epm_VisaCompany();
                    base.SetCurrentUser(comany);
                    comany.CrtCompanyId = CurrentCompanyID.ToLongReq();
                    comany.CrtCompanyName = CurrentCompanyName;
                    comany.CompanyId = item.CompanyId;
                    comany.CompanyName = item.CompanyName;
                    comany.VisaId = view.Id;
                    comany.CompanyType = item.CompanyType;
                    companys.Add(comany);
                }
            }
        }
Example #6
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);
        }
Example #7
0
        public bool drawingToDraw(Epm_TzConDrawing model, List <Base_Files> fileListFile)
        {
            Epm_Draw ed = new Epm_Draw();

            SetCreateUser(ed);
            ed.ProjectId   = model.ProjectId;
            ed.ProjectName = model.ProjectName;
            // ed.Name = model.;
            //ed.Desciption = model.
            //ed.VersionOrder = model.Desciption;
            ed.VersionNo         = "FirstVersion";
            ed.VersionName       = "首版本";
            ed.SubmitUserId      = CurrentUser.Id;
            ed.SubmitUserName    = CurrentUser.UserName;
            ed.SubmitCompanyId   = CurrentCompanyID.ToLongReq();
            ed.SubmitCompanyName = CurrentCompanyName;
            ed.SubmitDate        = DateTime.Now;
            ed.DesignCompanyId   = model.CompanyId;
            ed.DesignCompanyName = model.CompanyName;
            ed.IsNew             = true;
            ed.State             = (int)ApprovalState.ApprSuccess; //设置状态为已审核
            ed.Remark            = model.Remark;
            ed.CrtCompanyId      = model.CompanyId;
            ed.CrtCompanyName    = model.CompanyName;
            ed.IsDelete          = false;
            ed.OperateTime       = DateTime.Now;
            ed.OperateUserId     = CurrentUser.Id;
            ed.OperateUserName   = CurrentUser.UserName;
            ed.IsValidate        = false;
            ed.CrtCompanyId      = CurrentCompanyID.ToLongReq();
            ed.CrtCompanyName    = CurrentCompanyName;

            var result = AddDraw(ed, fileListFile);//调用图纸管理新增服务-同步数据

            if (result.Data < 1)
            {
                return(false);
            }
            return(true);
        }
Example #8
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);
        }
Example #9
0
        ///<summary>
        ///添加:
        ///</summary>
        /// <param name="model">要添加的model</param>
        /// <returns>受影响的行数</returns>
        public Result <int> AddMaterial(MaterialView model)
        {
            Result <int> result = new Result <int>();

            try
            {
                model.Epm_Material             = SetCurrentUser(model.Epm_Material);
                model.Epm_Material             = SetCreateUser(model.Epm_Material);
                model.Epm_Material.CompanyId   = CurrentCompanyID.ToLongReq();
                model.Epm_Material.CompanyName = CurrentCompanyName;

                DataOperateBusiness <Epm_Material> .Get().Add(model.Epm_Material);

                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.Count > 0)
                {
                    AddFilesByTable(model.Epm_Material, model.FileList); //上传附件
                }

                result.Data = 1;
                result.Flag = EResultFlag.Success;

                WriteLog(BusinessType.Equipment.GetText(), SystemRight.Add.GetText(), "新增: " + model.Epm_Material.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 消息
                    var waitSend = GetWaitSendMessageList(model.Epm_Material.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.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> parameterSms = new Dictionary<string, string>();
                    //parameterSms.Add("UserName", CurrentUserName);
                    //WriteSMS(project.ContactUserId.Value, project.CompanyId, MessageStep.MaterialAdd, parameterSms);
                    #endregion
                }
            }
            catch (Exception e)
            {
                result.Data      = -1;
                result.Flag      = EResultFlag.Failure;
                result.Exception = new ExceptionEx(e, "AddMaterial");
            }
            return(result);
        }
Example #10
0
        ///<summary>
        ///添加:
        ///</summary>
        /// <param name="model">要添加的model</param>
        /// <returns>受影响的行数</returns>
        public Result <int> AddQuestion(QuestionView model)
        {
            Result <int> result = new Result <int>();

            try
            {
                List <int> statelist = new List <int>()
                {
                    (int)ApprovalState.WaitAppr, (int)ApprovalState.ApprSuccess
                };
                try
                {
                    var completion = DataOperateBusiness <Epm_CompletionAcceptance> .Get().GetList(t => t.ProjectId == model.ProjectId && statelist.Contains(t.State.Value)).FirstOrDefault();

                    if (completion != null)
                    {
                        throw new Exception("沟通项目已发起完工验收,不可操作!");
                    }
                    if (model == null)
                    {
                        throw new Exception("请填写问题相关内容!");
                    }
                    if (model.ProjectId <= 0)
                    {
                        throw new Exception("请选择问题项目名称!");
                    }
                }
                catch (Exception ex)
                {
                    WriteLog(BusinessType.Question.GetText(), SystemRight.Add.GetText(), "字符串截取位置1: " + model.ProjectId);
                }
                model.BusinessTypeNo = GetString(model.BusinessTypeNo);

                var BusinessTypeName = ((BusinessType)Enum.Parse(typeof(BusinessType), model.BusinessTypeNo)).GetText();

                Epm_Question question = new Epm_Question()
                {
                    ProjectId         = model.ProjectId,
                    ProjectName       = model.ProjectName,
                    Title             = model.Title,
                    Description       = model.Description,
                    Proposal          = model.Proposal,
                    IsAccident        = model.IsAccident,
                    BusinessTypeNo    = model.BusinessTypeNo,
                    BusinessTypeName  = BusinessTypeName,
                    BusinessId        = model.BusinessId,
                    SubmitUserId      = CurrentUserID.ToLongReq(),
                    SubmitUserName    = CurrentUserName,
                    SubmitCompanyId   = CurrentCompanyID.ToLongReq(),
                    SubmitCompanyName = CurrentCompanyName,
                    SubmitTime        = DateTime.Now,
                    RecCompanyId      = model.RecCompanyId,
                    RecCompanyName    = model.RecCompanyName,
                    RecUserId         = model.RecUserId,
                    RecUserName       = model.RecUserName,
                    State             = 1,
                    CrtCompanyId      = CurrentCompanyID.ToLongReq(),
                    CrtCompanyName    = CurrentCompanyName,
                    CreateTime        = DateTime.Now,
                    IsDelete          = false,
                    ProblemTypeName   = model.ProblemTypeName,
                    ProblemTypeNo     = model.ProblemTypeNo
                };
                question = SetCurrentUser(question);

                if (question == null)
                {
                    throw new Exception("问题沟通!");
                }
                #region 问题关联模型

                if (model.QuestionBims != null && model.QuestionBims.Any())
                {
                    model.QuestionBims.ForEach(p =>
                    {
                        p.Sort            = p.Sort ?? 0;
                        p.State           = p.State ?? 0;
                        p.CrtCompanyId    = question.CrtCompanyId;
                        p.CrtCompanyName  = question.CrtCompanyName;
                        p.CreateTime      = DateTime.Now;
                        p.CreateUserId    = question.CreateUserId;
                        p.CreateUserName  = question.CreateUserName;
                        p.OperateUserId   = question.OperateUserId;
                        p.OperateUserName = question.OperateUserName;
                        p.OperateTime     = DateTime.Now;
                        p.IsDelete        = false;
                    });
                }


                #endregion

                #region 问题协助人员

                if (model.QuestionUsers != null && model.QuestionUsers.Any())
                {
                    model.QuestionUsers.ForEach(p =>
                    {
                        p.State           = p.State ?? 0;
                        p.CrtCompanyId    = question.CrtCompanyId;
                        p.CrtCompanyName  = question.CrtCompanyName;
                        p.CreateTime      = DateTime.Now;
                        p.CreateUserId    = question.CreateUserId;
                        p.CreateUserName  = question.CreateUserName;
                        p.OperateUserId   = question.OperateUserId;
                        p.OperateUserName = question.OperateUserName;
                        p.OperateTime     = DateTime.Now;
                        p.IsDelete        = false;
                    });
                }

                #endregion
                try
                {
                    int rows = DataOperateBusiness <Epm_Question> .Get().Add(question);

                    if (model.QuestionBims != null && model.QuestionBims.Any())
                    {
                        try
                        {
                            model.QuestionBims.ForEach(p => { p.QuestionId = question.Id; p.BIMId = p.ComponentId.Split('_')[0].ToLongReq(); });

                            DataOperateBusiness <Epm_QuestionBIM> .Get().AddRange(model.QuestionBims);
                        }
                        catch (Exception ex)
                        {
                            WriteLog(BusinessType.Question.GetText(), SystemRight.Add.GetText(), "字符串截取位置2: " + model.QuestionBims[0].ComponentId.Split('_')[0].ToLongReq());
                        }
                    }
                    if (model.QuestionUsers != null && model.QuestionUsers.Any())
                    {
                        model.QuestionUsers.ForEach(p => p.QuestionId = question.Id);
                        DataOperateBusiness <Epm_QuestionUser> .Get().AddRange(model.QuestionUsers);
                    }

                    //transaction.Commit();

                    if (model.Attachs.Any())
                    {
                        AddFilesByTable(question, model.Attachs);
                    }

                    result.Data = rows;
                    result.Flag = EResultFlag.Success;
                    WriteLog(BusinessType.Question.GetText(), SystemRight.Add.GetText(), "新增: " + model.Id);


                    // TODO:需要处理替换消息模板以及消息类型
                    #region 生成待办
                    List <Epm_Approver> list = new List <Epm_Approver>();
                    Epm_Approver        app  = new Epm_Approver();
                    try
                    {
                        var recCompany = DataOperateBusiness <Epm_ProjectCompany> .Get().GetList(t => t.ProjectId == model.ProjectId && t.CompanyId == question.RecCompanyId).FirstOrDefault();

                        var project = DataOperateBusiness <Epm_Project> .Get().GetModel(model.ProjectId.Value);

                        if (recCompany == null)
                        {
                            if (project != null)
                            {
                                app.ApproverId   = project.ContactUserId;
                                app.ApproverName = project.ContactUserName;
                            }
                        }
                        else
                        {
                            if (recCompany != null && recCompany.LinkManId.HasValue)
                            {
                                app.ApproverId   = recCompany.LinkManId;
                                app.ApproverName = recCompany.LinkMan;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        WriteLog(BusinessType.Question.GetText(), SystemRight.Add.GetText(), "字符串截取位置3: " + model.ProjectId);
                    }

                    app.Title            = CurrentUserName + "对" + app.ApproverName + "发起了问题沟通";
                    app.Content          = CurrentUserName + "对" + app.ApproverName + "发起了问题沟通";
                    app.SendUserId       = CurrentUserID.ToLongReq();
                    app.SendUserName     = CurrentUserName;
                    app.SendTime         = DateTime.Now;
                    app.LinkURL          = string.Empty;
                    app.BusinessTypeNo   = BusinessType.Question.ToString();
                    app.Action           = SystemRight.Add.ToString();
                    app.BusinessTypeName = BusinessType.Question.GetText();
                    app.BusinessState    = (int)(EnumState.Normal);
                    app.BusinessId       = question.Id;
                    app.ProjectId        = question.ProjectId;
                    app.ProjectName      = question.ProjectName;
                    list.Add(app);
                    AddApproverBatch(list);
                    WriteLog(BusinessType.Question.GetText(), SystemRight.Add.GetText(), "提交问题生成待办: " + question.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 + "对" + app.ApproverName + "发起了问题沟通";
                        modelMsg.Content      = CurrentUserName + "对" + app.ApproverName + "发起了问题沟通";
                        modelMsg.Type         = 2;
                        modelMsg.IsRead       = false;
                        modelMsg.BussinessId  = question.Id;
                        modelMsg.BussinesType = BusinessType.Question.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 e)
                {
                    throw new Exception(e.Message);
                }
            }
            catch (Exception ex)
            {
                result.Data      = -1;
                result.Flag      = EResultFlag.Failure;
                result.Exception = new ExceptionEx(ex, "AddQuestion");
            }
            return(result);
        }
        ///<summary>
        ///添加:
        ///</summary>
        /// <param name="model">要添加的model</param>
        /// <returns>受影响的行数</returns>
        public Result <int> AddCompletionAcceptance(Epm_CompletionAcceptance model, List <Base_Files> fileListFile)
        {
            Result <int> result = new Result <int>();

            try
            {
                model = base.SetCurrentUser(model);
                model.CrtCompanyId   = CurrentCompanyID.ToLongReq();
                model.CrtCompanyName = CurrentCompanyName;

                var rows = DataOperateBusiness <Epm_CompletionAcceptance> .Get().Add(model);

                if (fileListFile != null)
                {
                    AddFilesByTable(model, fileListFile);
                }

                result.Data = rows;
                result.Flag = EResultFlag.Success;

                #region  竣工验收协同接口
                var XtWorkFlow = System.Configuration.ConfigurationManager.AppSettings.Get("XtWorkFlow");
                if (model.State == (int)PreProjectState.WaitApproval && XtWorkFlow == "1")
                {
                    XtCompletionAcceptanceView view = new XtCompletionAcceptanceView();
                    var project = DataOperateBusiness <Epm_Project> .Get().GetModel(model.ProjectId.Value);

                    var baseUser = DataOperateBasic <Base_User> .Get().GetModel(model.CreateUserId);

                    if (baseUser == null)
                    {
                        throw new Exception("未找到申请人相关信息!");
                    }
                    else
                    {
                        view.hr_sqr = baseUser.ObjeId;
                    }

                    view.Name               = model.ProjectName;
                    view.SubjectName        = project.SubjectName;
                    view.StartDate          = string.Format("{0:yyyy-MM-dd}", project.StartDate);
                    view.Remark             = project.Remark;
                    view.CompanyName        = project.CompanyName;
                    view.ProjectTypeName    = project.ProjectTypeName;
                    view.ProjectSubjectName = project.ProjectSubjectName;
                    view.ProjectNatureName  = project.ProjectNatureName;
                    view.PMName             = project.PMName;
                    view.EndDate            = string.Format("{0:yyyy-MM-dd}", project.EndDate);
                    view.Description        = project.Description;
                    view.CrtCompanyName     = project.CrtCompanyName;
                    view.ContactUserName    = project.ContactUserName;
                    view.Address            = project.Address;

                    ////上传附件
                    //if (model.TzAttachs != null && model.TzAttachs.Any())
                    //{
                    //    string baseFaleUrl = System.Configuration.ConfigurationManager.AppSettings.Get("XtDownloadUrl");
                    //    foreach (var item in model.TzAttachs)
                    //    {
                    //        string fileUrl = string.Format("{0}?fileId={1}&type={2}", baseFaleUrl, item.Id, item.TypeNo);
                    //        view.Temp_TzAttachs = fileUrl + '|' + view.Temp_TzAttachs;
                    //    }
                    //    if (view.Temp_TzAttachs != null)
                    //    {
                    //        view.Temp_TzAttachs = view.Temp_TzAttachs.Substring(0, view.Temp_TzAttachs.Length - 1);
                    //    }
                    //}

                    //model.WorkFlowId = XtWorkFlowService.CreateTzProjectProposalWorkFlow(view);
                }
                #endregion

                WriteLog(BusinessType.Completed.GetText(), SystemRight.Add.GetText(), "新增: " + model.Id);
            }
            catch (Exception ex)
            {
                result.Data      = -1;
                result.Flag      = EResultFlag.Failure;
                result.Exception = new ExceptionEx(ex, "AddCompletionAcceptance");
            }
            return(result);
        }
Example #12
0
        ///<summary>
        ///添加:
        ///</summary>
        /// <param name="model">要添加的model</param>
        /// <returns>受影响的行数</returns>
        public Result <int> AddMateriel(MaterielView model)
        {
            Result <int> result = new Result <int>();

            try
            {
                model.Epm_Materiel             = SetCurrentUser(model.Epm_Materiel);
                model.Epm_Materiel.CompanyId   = CurrentCompanyID.ToLongReq();
                model.Epm_Materiel.CompanyName = CurrentCompanyName;
                if (model.MaterielDetails.Count > 0)
                {
                    model.Epm_Materiel.SupplierName = model.MaterielDetails[0].Unit;

                    DataOperateBusiness <Epm_Materiel> .Get().Add(model.Epm_Materiel);

                    foreach (var item in model.MaterielDetails)
                    {
                        item.MaterielReceiveId = model.Epm_Materiel.Id;
                        item.UseSum            = Convert.ToInt32(item.Qty) - item.UseSum - item.StayUseSum;
                        item.SupMatApplyId     = model.Epm_Materiel.SupMatApplyId;
                        SetCreateUser(item);

                        //修改甲供物资申请详情数据
                        var tzSupMatApplyList = DataOperateBusiness <Epm_TzSupMatApplyList> .Get().GetModel(item.SupMatApplyListId.Value);

                        if (tzSupMatApplyList != null)
                        {
                            tzSupMatApplyList.UseSum     = tzSupMatApplyList.UseSum + item.UseSum;
                            tzSupMatApplyList.StayUseSum = item.StayUseSum;


                            if (tzSupMatApplyList.StayUseSum == 0)
                            {
                                tzSupMatApplyList.UseType = true;
                            }
                            DataOperateBusiness <Epm_TzSupMatApplyList> .Get().Update(tzSupMatApplyList);
                        }
                    }
                    DataOperateBusiness <Epm_MaterielDetails> .Get().AddRange(model.MaterielDetails);

                    var stayList = DataOperateBusiness <Epm_MaterielDetails> .Get().GetList(p => p.SupMatApplyId == model.Epm_Materiel.SupMatApplyId).ToList();

                    foreach (var temp in stayList)
                    {
                        var tzSupMatApply = DataOperateBusiness <Epm_TzSupMatApplyList> .Get().GetModel(temp.SupMatApplyListId.Value);

                        temp.StayUseSum = tzSupMatApply.StayUseSum;
                    }
                    DataOperateBusiness <Epm_MaterielDetails> .Get().UpdateRange(stayList);

                    //修改甲供物资申请验收状态
                    var tzSupplyMaterialApply = DataOperateBusiness <Epm_TzSupplyMaterialApply> .Get().GetModel(model.Epm_Materiel.SupMatApplyId.Value);

                    if (tzSupplyMaterialApply != null)
                    {
                        int count = DataOperateBusiness <Epm_TzSupMatApplyList> .Get().GetList(t => t.SupMatApplyId == tzSupplyMaterialApply.Id && t.UseType == false).Count();

                        if (count == 0)
                        {
                            tzSupplyMaterialApply.UseType = true;
                            DataOperateBusiness <Epm_TzSupplyMaterialApply> .Get().Update(tzSupplyMaterialApply);
                        }
                    }

                    if (model.FileList != null)
                    {
                        AddFilesByTable(model.Epm_Materiel, model.FileList);//上传附件
                    }

                    result.Data = 1;
                    result.Flag = EResultFlag.Success;

                    if (model.Epm_Materiel.State == (int)ConfirmState.WaitConfirm)
                    {
                        #region 生成待办
                        var project = DataOperateBusiness <Epm_Project> .Get().GetModel(model.Epm_Materiel.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.Track.ToString();
                        app.Action           = SystemRight.Add.ToString();
                        app.BusinessTypeName = BusinessType.Track.GetText();
                        app.BusinessState    = (int)(ConfirmState.WaitConfirm);
                        app.BusinessId       = model.Epm_Materiel.Id;
                        app.ApproverId       = project.ContactUserId;
                        app.ApproverName     = project.ContactUserName;
                        app.ProjectId        = model.Epm_Materiel.ProjectId;
                        app.ProjectName      = project.Name;
                        list.Add(app);
                        AddApproverBatch(list);
                        WriteLog(BusinessType.Track.GetText(), SystemRight.Add.GetText(), "提交物料验收生成待办: " + model.Epm_Materiel.Id);
                        #endregion

                        #region 消息
                        var waitSend = GetWaitSendMessageList(model.Epm_Materiel.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.Epm_Materiel.Id;
                            modelMsg.BussinesType = BusinessType.Track.ToString();
                            modelMsg.ProjectId    = model.Epm_Materiel.ProjectId;
                            modelMsg.ProjectName  = model.Epm_Materiel.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.MaterielAdd, parametersms);
                        #endregion
                    }
                }
            }
            catch (Exception e)
            {
                result.Data      = -1;
                result.Flag      = EResultFlag.Failure;
                result.Exception = new ExceptionEx(e, "AddMateriel");
            }
            return(result);
        }
        ///<summary>
        ///添加:
        ///</summary>
        /// <param name="model">要添加的model</param>
        /// <returns>受影响的行数</returns>
        public Result <int> AddDangerousWork(Epm_DangerousWork model, List <Base_Files> files)
        {
            Result <int> result = new Result <int>();

            try
            {
                model = SetCurrentUser(model);
                model.SubmitCompanyId   = CurrentCompanyID.ToLongReq();
                model.SubmitCompanyName = CurrentCompanyName;
                model.SubmitUserId      = CurrentUserID.ToLongReq();
                model.SubmitUserName    = CurrentUserName;
                model.CrtCompanyId      = CurrentCompanyID.ToLongReq();
                model.CrtCompanyName    = CurrentCompanyName;

                var rows = DataOperateBusiness <Epm_DangerousWork> .Get().Add(model);

                QueryCondition qc = new QueryCondition()
                {
                    PageInfo = new PageListInfo()
                    {
                        isAllowPage = false
                    }
                };
                qc.ConditionList.Add(new ConditionExpression()
                {
                    ExpName     = "ProjectId",
                    ExpValue    = model.ProjectId,
                    ExpOperater = eConditionOperator.Equal,
                    ExpLogical  = eLogicalOperator.And
                });
                qc.ConditionList.Add(new ConditionExpression()
                {
                    ExpName     = "UploadTime",
                    ExpValue    = DateTime.Today,
                    ExpOperater = eConditionOperator.Equal,
                    ExpLogical  = eLogicalOperator.And
                });

                // 关联危险作业实景
                var workRealScenenResult = GetWorkRealSceneList(qc);
                if (workRealScenenResult.Flag == EResultFlag.Success && workRealScenenResult.Data != null)
                {
                    List <Epm_SupervisorLogWork> workList = workRealScenenResult.Data.Select(p =>
                                                                                             new Epm_SupervisorLogWork
                    {
                        WorkId       = p.WorkId,
                        LogId        = model.Id,
                        WorkUploadId = p.Id,
                        State        = p.State
                    }).ToList();

                    workList.ForEach(p =>
                    {
                        SetCurrentUser(p);
                        SetCreateUser(p);
                    });

                    DataOperateBusiness <Epm_SupervisorLogWork> .Get().AddRange(workList);
                }

                AddFilesByTable(model, files);

                result.Data = rows;
                result.Flag = EResultFlag.Success;
                WriteLog(BusinessType.Dangerous.GetText(), SystemRight.Add.GetText(), "新增: " + model.Id);

                if (model.State == (int)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 + "提报了危险作业单,待审核";
                    app.Content          = CurrentUserName + "提报了危险作业单,待审核";
                    app.SendUserId       = CurrentUserID.ToLongReq();
                    app.SendUserName     = CurrentUserName;
                    app.SendTime         = DateTime.Now;
                    app.LinkURL          = string.Empty;
                    app.BusinessTypeNo   = BusinessType.Dangerous.ToString();
                    app.Action           = SystemRight.Add.ToString();
                    app.BusinessTypeName = BusinessType.Dangerous.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.Dangerous.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.Dangerous.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.WorkAdd, parameterSms);
                    #endregion
                }
            }
            catch (Exception ex)
            {
                result.Data      = -1;
                result.Flag      = EResultFlag.Failure;
                result.Exception = new ExceptionEx(ex, "AddDangerousWork");
            }
            return(result);
        }
Example #14
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);
        }
Example #15
0
        /// <summary>
        /// 获取当前登录用户待办事项
        /// </summary>
        /// <param name="qc"></param>
        /// <returns></returns>
        public Result <List <Epm_Approver> > GetCurrUserApproverList(QueryCondition qc)
        {
            var currCompanyId = CurrentCompanyID.ToLongReq();

            qc = AddDefault(qc);
            //qc.ConditionList.Add(new ConditionExpression()
            //{
            //    ExpName = "ApproverId",
            //    ExpValue = CurrentUser.Id,
            //    ExpOperater = eConditionOperator.Equal,
            //    ExpLogical = eLogicalOperator.And
            //});

            //qc.ConditionList.Add(new ConditionExpression()
            //{
            //    ExpName = "ApproverId",
            //    ExpValue = currCompanyId,
            //    ExpOperater = eConditionOperator.Equal,
            //    ExpLogical = eLogicalOperator.And
            //});

            ConditionExpression ce4  = new ConditionExpression();
            ConditionExpression ce41 = new ConditionExpression();

            ce41.ConditionList.Add(new ConditionExpression()
            {
                ExpName     = "ApproverId",
                ExpValue    = CurrentUserID,
                ExpOperater = eConditionOperator.Equal,
            });
            ce4.ConditionList.Add(ce41);

            ConditionExpression ce42 = new ConditionExpression();

            ce42.ConditionList.Add(new ConditionExpression()
            {
                ExpName     = "ApproverId",
                ExpValue    = currCompanyId,
                ExpOperater = eConditionOperator.Equal
            });
            ce42.ExpLogical = eLogicalOperator.Or;
            ce4.ExpLogical  = eLogicalOperator.And;
            ce4.ConditionList.Add(ce42);
            qc.ConditionList.Add(ce4);


            qc.ConditionList.Add(new ConditionExpression()
            {
                ExpName     = "IsApprover",
                ExpValue    = false,
                ExpOperater = eConditionOperator.Equal,
                ExpLogical  = eLogicalOperator.And
            });

            qc.SortList.Add(new SortExpression()
            {
                SortName = "SendTime",
                SortType = eSortType.Desc
            });

            Result <List <Epm_Approver> > result = new Result <List <Epm_Approver> >();

            try
            {
                result = hc.Plat.Common.Service.DataOperate.QueryListSimple <Epm_Approver>(context, qc);
            }
            catch (Exception ex)
            {
                result.Data      = null;
                result.Flag      = EResultFlag.Failure;
                result.Exception = new ExceptionEx(ex, "GetApproverList");
            }
            return(result);
        }
Example #16
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);
        }
        /// <summary>
        /// 新增完工验收
        /// </summary>
        /// <param name="view"></param>
        /// <returns></returns>
        public Result <int> AddCompletionAcceptanceNew(CompletionAcceptanceView view)
        {
            Result <int> result = new Result <int>();

            try
            {
                var completionAcceptance      = view.CompletionAcceptance;
                var completionRectifyCompanys = view.CompletionRectifyCompanys;
                completionAcceptance = base.SetCurrentUser(completionAcceptance);
                completionAcceptance.CrtCompanyId   = CurrentCompanyID.ToLongReq();
                completionAcceptance.CrtCompanyName = CurrentCompanyName;
                completionAcceptance.RecUserId      = CurrentUser.Id;
                completionAcceptance.RecUserName    = CurrentUserName;

                var rows = DataOperateBusiness <Epm_CompletionAcceptance> .Get().Add(completionAcceptance);

                if (completionRectifyCompanys != null && completionRectifyCompanys.Any())
                {
                    completionRectifyCompanys.ForEach(p =>
                    {
                        SetCreateUser(p);
                        SetCurrentUser(p);
                        p.AcceptanceId = completionAcceptance.Id;
                    });
                    DataOperateBusiness <Epm_CompletionRectifyCompany> .Get().AddRange(completionRectifyCompanys);
                }

                if (view.BaseFiles != null)
                {
                    AddFilesByTable(completionAcceptance, view.BaseFiles);
                }

                //生成代办消息
                if ((PreCompletionScceptanceState)completionAcceptance.State == PreCompletionScceptanceState.WaitApproval)
                {
                    #region 生成待办
                    var project = DataOperateBusiness <Epm_Project> .Get().GetModel(completionAcceptance.ProjectId.Value);

                    List <Epm_Approver> list = new List <Epm_Approver>();
                    Epm_Approver        app  = new Epm_Approver();
                    app.Title            = CurrentUserName + "提交了" + project.Name + "完工验收申请,待审核";
                    app.Content          = CurrentUserName + "提交了" + project.Name + "完工验收申请,待审核";
                    app.SendUserId       = CurrentUserID.ToLongReq();
                    app.SendUserName     = CurrentUserName;
                    app.SendTime         = DateTime.Now;
                    app.LinkURL          = string.Empty;
                    app.BusinessTypeNo   = BusinessType.Completed.ToString();
                    app.Action           = SystemRight.Add.ToString();
                    app.BusinessTypeName = BusinessType.Completed.GetText();
                    app.BusinessState    = (int)(PreCompletionScceptanceState.WaitApproval);
                    app.BusinessId       = completionAcceptance.Id;
                    app.ApproverId       = project.PMId;
                    app.ApproverName     = project.PMName;
                    app.ProjectId        = completionAcceptance.ProjectId;
                    app.ProjectName      = project.Name;
                    list.Add(app);
                    AddApproverBatch(list);
                    WriteLog(BusinessType.Completed.GetText(), SystemRight.Add.GetText(), "提交完工验收生成待办: " + completionAcceptance.Id);
                    #endregion

                    #region 消息
                    var waitSend = GetWaitSendMessageList(completionAcceptance.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 + "提交了" + project.Name + "完工验收申请,待审核";
                        modelMsg.Content      = CurrentUserName + "提交了" + project.Name + "完工验收申请,待审核";
                        modelMsg.Type         = 2;
                        modelMsg.IsRead       = false;
                        modelMsg.BussinessId  = completionAcceptance.Id;
                        modelMsg.BussinesType = BusinessType.Completed.ToString();
                        modelMsg.ProjectId    = completionAcceptance.ProjectId.Value;
                        modelMsg.ProjectName  = completionAcceptance.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.PMId.Value, 0, MessageStep.ComplationAdd, parameters);
                    #endregion
                }

                result.Data = rows;
                result.Flag = EResultFlag.Success;
                WriteLog(BusinessType.Completed.GetText(), SystemRight.Add.GetText(), "新增: " + completionAcceptance.Id);
            }
            catch (Exception ex)
            {
                result.Data      = -1;
                result.Flag      = EResultFlag.Failure;
                result.Exception = new ExceptionEx(ex, "AddCompletionAcceptanceNew");
            }
            return(result);
        }