Exemple #1
0
        public UserInfo GetCurrentUser()
        {
            string loginName = HttpContext.Current.User.Identity.Name;

            if (string.IsNullOrEmpty(loginName))
            {
                //error
                ExceptionHander.GoToErrorPage();
            }
            BFEmployee employee = new BFEmployee();

            loginName = loginName.ToLower().Replace(@"founder\", "");
            EmployeeAdditional userInfo = employee.GetEmployeeAdditionalByLoginName(loginName); //"xupc"

            Employee em = employee.GetEmployeeByEmployeeCode(userInfo.EmployeeCode);            //get user info


            return(new UserInfo()
            {
                Id = em.EmployeeCode,
                LoginId = loginName,
                Name = em.EmployeeName,
                MainDeptId = em.DepartCode,
                DepIds = new List <string>()
                {
                    em.DepartCode
                },
                PWordUser = em
            });
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        string methodName = "Page_Load";

        Logger.Write(this.GetType(), EnumLogLevel.Info, className + ":" + methodName + ":" + Pkurg.PWorldBPM.Common.Log.MessageType.IN);
        if (!IsPostBack)
        {
            string currentUser = new IdentityUser().GetEmployee().LoginId;
            UploadAttachments1._BPMContext.LoginId = currentUser;

            ViewState["IsSubmit"] = false;

            ViewState["loginName"]     = currentUser.ToLower().Replace(@"k2:founder\", "").Replace(@"founder\", "");
            WorkflowHelper.CurrentUser = ViewState["loginName"].ToString();
            BFEmployee         bfEmployee      = new BFEmployee();
            EmployeeAdditional employeeaddInfo = bfEmployee.GetEmployeeAdditionalByLoginName(ViewState["loginName"].ToString());

            currentEmployee            = bfEmployee.GetEmployeeByEmployeeCode(employeeaddInfo.EmployeeCode);
            Session["CurrentEmployee"] = currentEmployee;

            if (!string.IsNullOrEmpty(Request.QueryString["sn"]))
            {
                sn.Value = Request.QueryString["sn"];
                WorklistItem listItem = WorkflowHelper.GetWorklistItemWithSN(sn.Value);
                taskID.Value   = listItem.ID.ToString();
                nodeID.Value   = listItem.ActivityInstanceDestination.ActID.ToString();
                nodeName.Value = listItem.ActivityInstanceDestination.Name;
                InitApproveOpinion(nodeName.Value);
            }



            if (!string.IsNullOrEmpty(Request.QueryString["id"]))
            {
                WorkFlowInstance info = new WF_WorkFlowInstance().GetWorkFlowInstanceById(Request.QueryString["id"]);
                ViewState["FormID"] = info.FormId;
                InintData();
            }
            else
            {
                ContractID          = BPMHelp.GetSerialNumber("SQ_");;
                tbNumber.Text       = ContractID;
                ViewState["FormID"] = ContractID;
            }
            //tbPerson.Text = CurrentEmployee.EmployeeName;
        }

        Countersign1.SimulateUser = ViewState["loginName"].ToString();
        FlowRelated1.SimulateUser = ViewState["loginName"].ToString();

        Logger.Write(this.GetType(), EnumLogLevel.Info, className + ":" + methodName + ":" + Pkurg.PWorldBPM.Common.Log.MessageType.OUT);

        ShowButton();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        //if (!IsPostBack)
        //{
        //    //get worklists
        //    Worklist li = WorkflowHelper.GetWorklistItem(Page.User.Identity.Name);

        //    foreach (WorklistItem lit in li)
        //    {
        //        //显示的单号
        //        //lit.ProcessInstance.Folio
        //    }
        //}

        string methodName  = "Page_Load";
        string currentUser = new IdentityUser().GetEmployee().LoginId;

        ViewState["loginName"] = currentUser;
        Logger.Write(this.GetType(), EnumLogLevel.Info, className + ":" + methodName + ":" + Pkurg.PWorldBPM.Common.Log.MessageType.IN);
        if (!IsPostBack)
        {
            UploadAttachments1._BPMContext.LoginId = currentUser;

            BFEmployee         bfEmployee      = new BFEmployee();
            EmployeeAdditional employeeaddInfo = bfEmployee.GetEmployeeAdditionalByLoginName(currentUser);

            currentEmployee            = bfEmployee.GetEmployeeByEmployeeCode(employeeaddInfo.EmployeeCode);
            WorkflowHelper.CurrentUser = currentUser;


            Session["CurrentEmployee"] = currentEmployee;
            if (!string.IsNullOrEmpty(Request.QueryString["id"]))
            {
                WorkFlowInstance info = new WF_WorkFlowInstance().GetWorkFlowInstanceById(Request.QueryString["id"]);
                ViewState["FormID"] = info.FormId;
                InintData();
            }
            else
            {
                ContractID                     = BPMHelp.GetSerialNumber("SQ_");
                tbNumber.Text                  = ContractID;
                ViewState["FormID"]            = ContractID;
                tbPerson.Text                  = CurrentEmployee.EmployeeName;
                tbDepartName.Text              = CurrentEmployee.DepartName;
                UpdatedTextBox.Value           = DateTime.Now.ToShortDateString();
                Countersign1.CounterSignDeptId = CurrentEmployee.DepartCode;
            }
            InintLeader();
        }
        //Countersign1.SimulateUser = ViewState["loginName"].ToString();
        //FlowRelated1.SimulateUser = ViewState["loginName"].ToString();

        Logger.Write(this.GetType(), EnumLogLevel.Info, className + ":" + methodName + ":" + Pkurg.PWorldBPM.Common.Log.MessageType.OUT);
    }
Exemple #4
0
        public PWorld.Entities.Employee GetCurrentPWordUser()
        {
            string loginName = HttpContext.Current.User.Identity.Name;

            if (string.IsNullOrEmpty(loginName))
            {
                //error
            }
            BFEmployee         employee = new BFEmployee();
            EmployeeAdditional userInfo = employee.GetEmployeeAdditionalByLoginName(loginName.ToLower().Replace(@"founder\", ""));

            Employee em = employee.GetEmployeeByEmployeeCode(userInfo.EmployeeCode);//get user info

            return(em);
        }
    protected void InitLeader()
    {
        #region 工作流参数
        //get users by role
        BFEmployee         employee    = new BFEmployee();
        string             currentUser = Page.User.Identity.Name.ToLower().Replace(@"founder\", "");
        EmployeeAdditional employeeadd = employee.GetEmployeeAdditionalByLoginName(currentUser);
        Employee           em          = employee.GetEmployeeByEmployeeCode(employeeadd.EmployeeCode);//get user info

        //get activity destination users
        BFPmsUserRoleDepartment bfurd = new BFPmsUserRoleDepartment();
        DataTable dtDept  = bfurd.GetSelectRoleUser(em.DepartCode, "部门负责人");
        DataTable dtCheck = bfurd.GetSelectRoleUser(em.CompanyCode, "流程审核人");
        DataTable dtlead  = bfurd.GetSelectRoleUser(em.DepartCode, "主管领导");
        DataTable dtCEO   = bfurd.GetSelectRoleUser(em.CompanyCode, "CEO");

        #endregion
    }
Exemple #6
0
        public static IList <ProcessTypeInfo> GetDeptListByEmployeeCode(string loginName)
        {
            List <ProcessTypeInfo> ptiList = new List <ProcessTypeInfo>();

            BFEmployee         bfemployee = new BFEmployee();
            EmployeeAdditional userInfo   = bfemployee.GetEmployeeAdditionalByLoginName(loginName);

            ProcessTypeBLL          bll = new ProcessTypeBLL();
            IList <ProcessTypeInfo> processTypeInfoList = bll.GetProcessType();

            foreach (var item in processTypeInfoList)
            {
                if (BFFunctionPermissions.IsDepartmentRightByEmployeeCode(userInfo.EmployeeCode, item.ID.Trim(), "公司流程筛选", "BPM", "无代码平台"))
                {
                    ptiList.Add(item);
                }
            }
            return(ptiList);
        }
    protected string SaveSelectedSignLeader()
    {
        XmlDocument xmldoc      = new XmlDocument();
        XmlElement  xmleLeaders = xmldoc.CreateElement("Leaders");

        xmldoc.AppendChild(xmleLeaders);

        //从“相关部门分管领导”到“集团董事长审批”中的步骤的所有参与审判的用户列表
        List <string> ApproverList    = new List <string>();
        string        LeaderTemp      = string.Empty;
        string        FinalLeaderTemp = string.Empty;

        BFEmployee         employee    = new BFEmployee();
        string             currentUser = Page.User.Identity.Name.ToLower().Replace(@"founder\", "");
        EmployeeAdditional employeeadd = employee.GetEmployeeAdditionalByLoginName(currentUser);
        Employee           em          = employee.GetEmployeeByEmployeeCode(employeeadd.EmployeeCode);//get user info

        //get activity destination users
        BFPmsUserRoleDepartment bfurd = new BFPmsUserRoleDepartment();
        DataTable dtDept = bfurd.GetSelectRoleUser(em.DepartCode, "部门负责人");

        //部门负责人
        if (chkDeptManager.Checked)
        {
            XmlElement xmleDeptManager = xmldoc.CreateElement("DeptManager");
            xmleLeaders.AppendChild(xmleDeptManager);

            LeaderTemp = dtDept.Rows[0]["LoginName"].ToString();
            if (LeaderTemp.Length > 0)
            {
                foreach (string L in LeaderTemp.Split(','))
                {
                    if (L != "")
                    {
                        ApproverList.Add(L);
                    }
                }
            }
            xmleDeptManager.SetAttribute("ID", LeaderTemp);
        }
        return(xmleLeaders.OuterXml);
    }
    protected string SaveSelectedSignLeader()
    {
        XmlDocument xmldoc      = new XmlDocument();
        XmlElement  xmleLeaders = xmldoc.CreateElement("Leaders");

        xmldoc.AppendChild(xmleLeaders);

        //从“相关部门分管领导”到“集团董事长审批”中的步骤的所有参与审批的用户列表
        List <string> ApproverList    = new List <string>();
        string        LeaderTemp      = string.Empty;
        string        FinalLeaderTemp = string.Empty;

        BFEmployee         employee    = new BFEmployee();
        string             currentUser = Page.User.Identity.Name.ToLower().Replace(@"founder\", "");
        EmployeeAdditional employeeadd = employee.GetEmployeeAdditionalByLoginName(currentUser);
        Employee           em          = employee.GetEmployeeByEmployeeCode(employeeadd.EmployeeCode);//get user info

        //get activity destination users
        BFPmsUserRoleDepartment bfurd = new BFPmsUserRoleDepartment();
        DataTable dtDept = bfurd.GetSelectRoleUser(em.DepartCode, "部门负责人");

        return(xmleLeaders.OuterXml);
    }
Exemple #9
0
        public UserInfo GetUserInfo(string loginName)
        {
            if (string.IsNullOrEmpty(loginName))
            {
                //error
                ExceptionHander.GoToErrorPage("域用户名为空", null);
            }
            BFEmployee employee = new BFEmployee();

            loginName = loginName.ToLower().Replace(@"k2:founder\", "");
            loginName = loginName.ToLower().Replace(@"founder\", "");

            EmployeeAdditional userInfo = employee.GetEmployeeAdditionalByLoginName(loginName);
            Employee           em       = employee.GetEmployeeByEmployeeCode(userInfo.EmployeeCode);//get user info

            if (em != null)
            {
                return(new UserInfo()
                {
                    Id = em.EmployeeCode,
                    LoginId = loginName,
                    FounderLoginId = "founder\\" + loginName,
                    Name = em.EmployeeName,
                    MainDeptId = em.DepartCode,
                    DepIds = new List <string>()
                    {
                        em.DepartCode
                    },
                    PWordUser = em
                });
            }
            else
            {
                return(null);
            }
        }
Exemple #10
0
    public bool CreateNewFormByInstanceIDAndEmployeeCodeWithStoredProcedure(string InstanceID, string EmployeeCode, string sp)
    {
        DataProvider dataProvider = new DataProvider();

        dataProvider.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["BPMConnectionString"].ConnectionString;


        BFEmployee          bfEmployee       = new BFEmployee();
        Employee            employeeInfo     = new Employee();
        WF_WorkFlowInstance wFlowInst        = new WF_WorkFlowInstance();
        BFApprovalRecord    bFApprovalRecord = new BFApprovalRecord();
        EmployeeAdditional  employeeAddition = bfEmployee.GetEmployeeAdditionalById(EmployeeCode);

        employeeInfo = bfEmployee.GetEmployeeByEmployeeCode(EmployeeCode);
        string EmployeeName = bfEmployee.GetEmployeeNameByEmployeeCode(EmployeeCode);

        WorkFlowInstance wFlowInstanceBefore = new WorkFlowInstance();

        wFlowInstanceBefore = wFlowInst.GetWorkFlowInstanceById(InstanceID);
        WorkFlowInstance newWorkFlowInstance = new WorkFlowInstance();

        {
            newWorkFlowInstance.InstanceId       = Guid.NewGuid().ToString();
            newWorkFlowInstance.AppId            = wFlowInstanceBefore.AppId;
            newWorkFlowInstance.FormId           = BPMHelp.GetSerialNumber("SQ_");
            newWorkFlowInstance.WfInstanceId     = wFlowInstanceBefore.WfInstanceId;
            newWorkFlowInstance.OrderNo          = wFlowInstanceBefore.OrderNo;
            newWorkFlowInstance.IsDel            = 0;
            newWorkFlowInstance.CreateByUserCode = EmployeeCode;
            newWorkFlowInstance.CreateByUserName = EmployeeName;
            newWorkFlowInstance.CreateAtTime     = System.DateTime.Now;
            newWorkFlowInstance.UpdateByUserCode = EmployeeCode;
            newWorkFlowInstance.UpdateByUserName = EmployeeName;
            newWorkFlowInstance.UpdateAtTime     = wFlowInstanceBefore.UpdateAtTime;
            newWorkFlowInstance.CreateDeptCode   = employeeInfo.DepartCode;
            newWorkFlowInstance.CreateDeptName   = employeeInfo.DepartName;
            newWorkFlowInstance.WorkItemCode     = wFlowInstanceBefore.WorkItemCode;
            newWorkFlowInstance.WorkItemName     = wFlowInstanceBefore.WorkItemName;
            newWorkFlowInstance.WfTaskId         = wFlowInstanceBefore.WfTaskId;
            newWorkFlowInstance.FinishedTime     = null;
            newWorkFlowInstance.Remark           = wFlowInstanceBefore.Remark;
            newWorkFlowInstance.FormTitle        = wFlowInstanceBefore.FormTitle;
            newWorkFlowInstance.WfStatus         = "0";
            newWorkFlowInstance.SumitTime        = null;
            newWorkFlowInstance.FormData         = wFlowInstanceBefore.FormData;
        }

        var newApprovalRecord = new Pkurg.PWorldBPM.Business.Sys.WF_Approval_Record();

        newApprovalRecord.ApprovalID        = Guid.NewGuid().ToString();
        newApprovalRecord.FormID            = newWorkFlowInstance.FormId;
        newApprovalRecord.InstanceID        = newWorkFlowInstance.InstanceId;
        newApprovalRecord.CreateByUserCode  = employeeInfo.EmployeeCode;
        newApprovalRecord.CreateByUserName  = employeeInfo.EmployeeName;
        newApprovalRecord.CreateAtTime      = System.DateTime.Now;
        newApprovalRecord.ApproveByUserCode = employeeInfo.EmployeeCode;
        newApprovalRecord.ApproveByUserName = employeeInfo.EmployeeName;
        newApprovalRecord.UpdateByUserCode  = employeeInfo.EmployeeCode;
        newApprovalRecord.UpdateByUserName  = employeeInfo.EmployeeName;
        newApprovalRecord.UpdateAtTime      = wFlowInstanceBefore.UpdateAtTime;
        newApprovalRecord.CurrentActiveName = "拟稿";



        Pkurg.BPM.Entities.FlowRelated relationInfo = new FlowRelated()
        {
            FlowId             = newWorkFlowInstance.InstanceId,
            CreatorName        = employeeInfo.EmployeeName,
            CreateTime         = System.DateTime.Now,
            CreatorId          = employeeInfo.EmployeeCode,
            RelatedFlowId      = wFlowInstanceBefore.InstanceId,
            RelatedFlowCreator = wFlowInstanceBefore.CreateByUserName,
            RelatedFlowEndTime = wFlowInstanceBefore.FinishedTime,
            RelatedFlowName    = wFlowInstanceBefore.FormTitle,
        };

        WF_Relation.AddRelatedFlowInfo(relationInfo);

        SqlParameter[] parameters = new SqlParameter[] {
            new SqlParameter("@FormID_Before", System.Data.SqlDbType.NVarChar, 100),
            new SqlParameter("@FormID_New", System.Data.SqlDbType.NVarChar, 100)
        };
        parameters[0].Value = wFlowInstanceBefore.FormId;
        parameters[1].Value = newWorkFlowInstance.FormId;
        dataProvider.ExecutedProcedure(sp, parameters);

        bool isSuccessForInstance       = wFlowInst.AddWorkFlowInstance(newWorkFlowInstance);
        bool isSuccessForApprovalRecord = bFApprovalRecord.AddApprovalRecord(newApprovalRecord);

        if (isSuccessForInstance && isSuccessForApprovalRecord)
        {
            return(true);
        }
        else
        {
            return(false);
        }
    }
    protected void Submit_Click(object sender, EventArgs e)
    {
        #region 工作流参数
        //get users by role
        BFEmployee         employee    = new BFEmployee();
        EmployeeAdditional employeeadd = employee.GetEmployeeAdditionalByLoginName("xupc");

        Employee em = employee.GetEmployeeByEmployeeCode(employeeadd.EmployeeCode);//get user info

        //get activity destination users
        BFPmsUserRoleDepartment bfurd = new BFPmsUserRoleDepartment();
        DataTable dtDept  = bfurd.GetSelectRoleUser(em.DepartCode, "部门负责人");
        DataTable dtCheck = bfurd.GetSelectRoleUser(em.CompanyCode, "流程审核人");
        //BFCountersignRoleDepartment CountersignRole= new BFCountersignRoleDepartment();
        //DataTable dtContri = CountersignRole.GetSelectCountersignDepartment(em.CompanyCode);
        DataTable dtlead = bfurd.GetSelectRoleUser(em.DepartCode, "主管总裁");
        DataTable dtCEO  = bfurd.GetSelectRoleUser(em.CompanyCode, "CEO");

        //add datafields
        NameValueCollection dataFields = new NameValueCollection();
        //部门负责人
        if (chkDeptManager.Checked)
        {
            dataFields.Add("DeptManager", "K2:Founder\\" + dtDept.Rows[0]["LoginName"].ToString());
        }
        else
        {
            dataFields.Add("DeptManager", "noapprovers");
        }
        //流程审核人
        dataFields.Add("WFM", "K2:Founder\\" + dtCheck.Rows[0]["LoginName"].ToString());
        //会签
        //dataFields.Add("CounterSignUsers", "K2:Founder\\" + dtContri.Rows[0]["LoginName"].ToString());
        //部门主管领导
        dataFields.Add("leaders", "K2:Founder\\" + dtlead.Rows[0]["LoginName"].ToString());
        //CEO
        dataFields.Add("CEO", "K2:Founder\\" + dtCEO.Rows[0]["LoginName"].ToString());
        //触发新流程
        if (cbIsReport.Checked)
        {
            dataFields.Add("NewFlow_SP", "wf_usp_CreateNewForm");
        }
        #endregion

        int    wfInstanceId = 0; //process instance id
        string id           = ViewState["FormID"].ToString();

        Countersign1.SaveData();//会签数据保存

        InstructionOfPkurg instructionOfPkurg = SaveInstructionOfPkurg(id, "02");
        if (instructionOfPkurg != null)
        {
            UploadAttachments1.SaveAttachment(id);
            Countersign1.SaveAndSubmit();//会签数据保存

            WorkflowHelper.StartProcess(@"K2Workflow\InstructionOfPKURG", id, dataFields, ref wfInstanceId);
            if (wfInstanceId > 0)
            {
                if (SaveWorkFlowInstance(instructionOfPkurg, "1", DateTime.Now, wfInstanceId.ToString()))
                {
                    if (wf_Instruction.UpdateStatus(id, "02", wfInstanceId.ToString()))
                    {
                        string           Opinion          = "";
                        string           ApproveResult    = "同意";
                        string           OpinionType      = "";
                        string           IsSign           = "0";
                        string           DelegateUserName = "";
                        string           DelegateUserCode = "";
                        WorkFlowInstance workFlowInstance = wf_WorkFlowInstance.GetWorkFlowInstanceByFormId(instructionOfPkurg.FormId);

                        var appRecord = new Pkurg.PWorldBPM.Business.Sys.WF_Approval_Record()
                        {
                            ApprovalID = Guid.NewGuid().ToString(),

                            FormID            = id,
                            InstanceID        = workFlowInstance.InstanceId,
                            Opinion           = Opinion,
                            ApproveAtTime     = DateTime.Now,
                            ApproveByUserCode = CurrentEmployee.EmployeeCode,
                            ApproveByUserName = CurrentEmployee.EmployeeName,
                            ApproveResult     = ApproveResult,
                            OpinionType       = OpinionType,
                            CurrentActiveName = "拟稿",
                            ISSign            = IsSign,

                            DelegateUserName = DelegateUserName,
                            DelegateUserCode = DelegateUserCode,
                            CreateAtTime     = DateTime.Now,
                            CreateByUserCode = CurrentEmployee.EmployeeCode,
                            CreateByUserName = CurrentEmployee.EmployeeName,
                            UpdateAtTime     = DateTime.Now,
                            UpdateByUserCode = CurrentEmployee.EmployeeCode,
                            UpdateByUserName = CurrentEmployee.EmployeeName,
                            FinishedTime     = DateTime.Now
                        };
                        BFApprovalRecord bfApproval = new BFApprovalRecord();
                        bfApproval.AddApprovalRecord(appRecord);

                        //WebCommon.Show(this, Resources.Message.SubmitSucess);
                        //Response.Redirect("~/Workflow/ToDoWorkList.aspx", false);
                    }
                }
            }
        }
        ScriptManager.RegisterClientScriptBlock(this, typeof(string), "1", "alert('提交成功'); window.close();", true);

        //WorkflowHelper.ApproveProcess
        //insert data to business object
    }