Пример #1
0
        public ActionResult SaveWorkFile(long id)
        {
            //上传附件
            string            fileDataJsonFile = Request.Form["fileDataJsonFile"];                                     //获取上传文件json字符串
            List <Base_Files> files            = JsonConvert.DeserializeObject <List <Base_Files> >(fileDataJsonFile); //将文件信息json字符

            Result <int> result = new Result <int>();

            using (ClientSiteClientProxy proxy = new ClientSiteClientProxy(ProxyEx(Request)))
            {
                Epm_DangerousWork work = proxy.GetDangerousWorkModel(id).Data;

                Epm_WorkUploadRealScene model = new Epm_WorkUploadRealScene();
                model.WorkId     = work.Id;
                model.WorkName   = work.TaskName;
                model.ProjectId  = work.ProjectId;
                model.UploadTime = DateTime.Now;
                model.State      = (int)ApprovalState.WaitAppr;
                model.Remark     = "";

                proxy.AddWorkRealScenen(model, files);
            }
            return(Json(result.ToResultView()));
        }
Пример #2
0
        ///<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);
        }
Пример #3
0
        ///<summary>
        ///修改:
        ///</summary>
        /// <param name="model">要修改的model</param>
        /// <returns>受影响的行数</returns>
        public Result <int> UpdateDangerousWork(Epm_DangerousWork model, List <Base_Files> files)
        {
            Result <int> result = new Result <int>();

            try
            {
                var oldModel = DataOperateBusiness <Epm_DangerousWork> .Get().GetModel(model.Id);

                model = FiterUpdate(oldModel, model);
                model.SubmitCompanyId   = oldModel.SubmitCompanyId;
                model.SubmitCompanyName = oldModel.SubmitCompanyName;
                model.SubmitUserId      = oldModel.SubmitUserId;
                model.SubmitUserName    = oldModel.SubmitUserName;
                model.CrtCompanyId      = oldModel.CrtCompanyId;
                model.CrtCompanyName    = oldModel.CrtCompanyName;

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

                //AddFilesByTable(model, files);

                //删除之前的附件
                DeleteFilesByTable(model.GetType().Name, new List <long>()
                {
                    model.Id
                });
                //新增附件
                AddFilesByTable(model, files);

                //处理待办
                var tempApp = DataOperateBusiness <Epm_Approver> .Get().GetList(t => t.BusinessId == model.Id && t.IsApprover == false).FirstOrDefault();

                if (tempApp != null)
                {
                    ComplateApprover(tempApp.Id);
                }

                result.Data = rows;
                result.Flag = EResultFlag.Success;
                WriteLog(BusinessType.Dangerous.GetText(), SystemRight.Modify.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, "UpdateDangerousWork");
            }
            return(result);
        }
Пример #4
0
        public ActionResult Edit(Epm_DangerousWork model)
        {
            ResultView <int> view = new ResultView <int>();

            //表单校验
            if (!model.ProjectId.HasValue || model.ProjectId.Value == 0 || string.IsNullOrWhiteSpace(model.ProjectName))
            {
                view.Flag    = false;
                view.Message = "项目名称不能为空";
                return(Json(view));
            }
            //if (string.IsNullOrEmpty(model.TaskName))
            //{
            //    view.Flag = false;
            //    view.Message = "作业名称不能为空";
            //    return Json(view);
            //}
            if (!model.StartTime.HasValue || model.StartTime.Value == DateTime.MinValue)
            {
                view.Flag    = false;
                view.Message = "开始时间不能为空";
                return(Json(view));
            }
            //if (!model.EndTime.HasValue || model.EndTime.Value == DateTime.MinValue)
            //{
            //    view.Flag = false;
            //    view.Message = "结束时间不能为空";
            //    return Json(view);
            //}
            //if (model.StartTime.Value > model.EndTime.Value)
            //{
            //    view.Flag = false;
            //    view.Message = "开始时间不能大于结束时间";
            //    return Json(view);
            //}
            //if (model.StartTime.Value > model.EndTime.Value)
            //{
            //    view.Flag = false;
            //    view.Message = "开始时间不能大于结束时间";
            //    return Json(view);
            //}
            if (string.IsNullOrEmpty(model.TaskTypeNo) || string.IsNullOrEmpty(model.TaskTypeName))
            {
                view.Flag    = false;
                view.Message = "作业分类不能为空";
                return(Json(view));
            }
            if (string.IsNullOrEmpty(model.TaskContent))
            {
                view.Flag    = false;
                view.Message = "作业内容不能为空";
                return(Json(view));
            }

            //上传附件
            string            fileDataJsonFile = Request.Form["fileDataJsonFile"];                                     //获取上传文件json字符串
            List <Base_Files> files            = JsonConvert.DeserializeObject <List <Base_Files> >(fileDataJsonFile); //将文件信息json字符

            Result <int> result = new Result <int>();

            using (ClientSiteClientProxy proxy = new ClientSiteClientProxy(ProxyEx(Request)))
            {
                result = proxy.UpdateDangerousWork(model, files);
            }
            return(Json(result.ToResultView()));
        }
        /// <summary>
        /// 根据projectId获取危险作业信息
        /// </summary>
        /// <param name="projectId"></param>
        /// <returns></returns>
        public ActionResult GetWorkInfo(long projectId, string submitTime)
        {
            DateTime stime = Convert.ToDateTime(Convert.ToDateTime(submitTime).ToString("yyyy-MM-dd"));
            DateTime etime = Convert.ToDateTime(Convert.ToDateTime(submitTime).ToString("yyyy-MM-dd") + "  23:59:59");

            #region 查询条件 在作业时间内
            QueryCondition      qc2 = new QueryCondition();
            ConditionExpression ce2 = null;
            qc2.PageInfo.isAllowPage = false;
            qc2.SortList.Add(new SortExpression("CreateTime", eSortType.Desc));
            if (projectId != 0)
            {
                ce2             = new ConditionExpression();
                ce2.ExpName     = "ProjectId";
                ce2.ExpValue    = projectId;
                ce2.ExpOperater = eConditionOperator.Equal;
                ce2.ExpLogical  = eLogicalOperator.And;
                qc2.ConditionList.Add(ce2);
            }
            qc2.ConditionList.Add(new ConditionExpression()
            {
                ExpName     = "StartTime",
                ExpValue    = etime,
                ExpLogical  = eLogicalOperator.And,
                ExpOperater = eConditionOperator.LessThanOrEqual
            });

            qc2.ConditionList.Add(new ConditionExpression()
            {
                ExpName     = "EndTime",
                ExpValue    = stime,
                ExpLogical  = eLogicalOperator.And,
                ExpOperater = eConditionOperator.GreaterThanOrEqual
            });

            ConditionExpression ce3 = new ConditionExpression();
            ce3.ExpLogical = eLogicalOperator.And;
            ce3.ConditionList.Add(new ConditionExpression()
            {
                ExpName     = "State",
                ExpValue    = (int)ApprovalState.WorkPartAppr,
                ExpOperater = eConditionOperator.Equal
            });
            ce3.ConditionList.Add(new ConditionExpression()
            {
                ExpName     = "State",
                ExpValue    = (int)ApprovalState.ApprSuccess,
                ExpLogical  = eLogicalOperator.Or,
                ExpOperater = eConditionOperator.Equal
            });
            qc2.ConditionList.Add(ce3);
            #endregion

            #region 查询条件 等于提交时间
            QueryCondition      qc = new QueryCondition();
            ConditionExpression ce = null;
            qc.PageInfo.isAllowPage = false;
            qc.SortList.Add(new SortExpression("CreateTime", eSortType.Desc));
            if (projectId != 0)
            {
                ce             = new ConditionExpression();
                ce.ExpName     = "ProjectId";
                ce.ExpValue    = projectId;
                ce.ExpOperater = eConditionOperator.Equal;
                ce.ExpLogical  = eLogicalOperator.And;
                qc.ConditionList.Add(ce);
            }
            qc.ConditionList.Add(new ConditionExpression()
            {
                ExpName     = "CreateTime",
                ExpValue    = stime,
                ExpLogical  = eLogicalOperator.And,
                ExpOperater = eConditionOperator.GreaterThanOrEqual
            });

            qc.ConditionList.Add(new ConditionExpression()
            {
                ExpName     = "CreateTime",
                ExpValue    = etime,
                ExpLogical  = eLogicalOperator.And,
                ExpOperater = eConditionOperator.LessThanOrEqual
            });

            ConditionExpression ce4 = new ConditionExpression();
            ce4.ExpLogical = eLogicalOperator.And;
            ce4.ConditionList.Add(new ConditionExpression()
            {
                ExpName     = "State",
                ExpValue    = (int)ApprovalState.WaitAppr,
                ExpOperater = eConditionOperator.Equal
            });
            ce4.ConditionList.Add(new ConditionExpression()
            {
                ExpName     = "State",
                ExpValue    = (int)ApprovalState.ApprSuccess,
                ExpLogical  = eLogicalOperator.Or,
                ExpOperater = eConditionOperator.Equal
            });
            qc.ConditionList.Add(ce4);
            #endregion

            Epm_DangerousWork result = new Epm_DangerousWork();
            using (ClientSiteClientProxy proxy = new ClientSiteClientProxy(ProxyEx(Request)))
            {
                QueryCondition      qcWorkReal   = new QueryCondition();
                ConditionExpression ceqcWorkReal = null;
                qcWorkReal.PageInfo.isAllowPage = false;
                qcWorkReal.SortList.Add(new SortExpression("CreateTime", eSortType.Desc));
                result = proxy.GetDangerousWorkList(qc).Data.FirstOrDefault();
                if (result != null)
                {
                    ceqcWorkReal             = new ConditionExpression();
                    ceqcWorkReal.ExpName     = "WorkId";
                    ceqcWorkReal.ExpValue    = result.Id;
                    ceqcWorkReal.ExpOperater = eConditionOperator.Equal;
                    ceqcWorkReal.ExpLogical  = eLogicalOperator.And;
                    qcWorkReal.ConditionList.Add(ceqcWorkReal);
                    var WorkRealSceneModel = proxy.GetWorkRealSceneList(qcWorkReal).Data.FirstOrDefault();
                    var data = (new
                    {
                        WorkId = result.Id.ToString(),
                        TaskName = result.TaskName,
                        WorkStartTime = result.StartTime,
                        WorkEndTime = result.EndTime,
                        WorkContent = result.TaskContent,
                        //1:待审核 2:审核通过 3:作业待审核
                        Flag = (result.State == (int)ApprovalState.WaitAppr ? 1 : (result.State == (int)ApprovalState.ApprSuccess ? 2 : (result.State == (int)ApprovalState.WorkPartAppr ? 3 : 0))),
                        Type = 1,//日志提报时间等于危险作业提交时间
                        WorkRealSceneState = WorkRealSceneModel != null ? WorkRealSceneModel.State : 0,
                        WorkRealSceneID = WorkRealSceneModel != null ? WorkRealSceneModel.Id.ToString() : "0"
                    });

                    return(Json(data));
                }
                else
                {
                    result = proxy.GetDangerousWorkList(qc2).Data.FirstOrDefault();
                    if (result != null)
                    {
                        ceqcWorkReal             = new ConditionExpression();
                        ceqcWorkReal.ExpName     = "WorkId";
                        ceqcWorkReal.ExpValue    = result.Id;
                        ceqcWorkReal.ExpOperater = eConditionOperator.Equal;
                        ceqcWorkReal.ExpLogical  = eLogicalOperator.And;
                        qcWorkReal.ConditionList.Add(ceqcWorkReal);
                        var WorkRealSceneModel = proxy.GetWorkRealSceneList(qcWorkReal).Data.FirstOrDefault();
                        var data = (new
                        {
                            WorkId = result.Id.ToString(),
                            TaskName = result.TaskName,
                            WorkStartTime = result.StartTime,
                            WorkEndTime = result.EndTime,
                            WorkContent = result.TaskContent,
                            //1:待审核 2:审核通过 3:作业待审核 4:作业审核不通过
                            Flag = (result.State == (int)ApprovalState.WaitAppr ? 1 : (result.State == (int)ApprovalState.ApprSuccess ? 2 : (result.State == (int)ApprovalState.WorkPartAppr ? 3 : 0))),
                            Type = 2, //日志提报时间再作业时间内容
                            WorkRealSceneState = WorkRealSceneModel != null ? WorkRealSceneModel.State : 0,
                            WorkRealSceneID = WorkRealSceneModel != null ? WorkRealSceneModel.Id.ToString() : "0"
                        });

                        return(Json(data));
                    }
                }

                return(Json(new { Flag = 0 }));
            }
        }