예제 #1
0
        public static void Delete(string busiCode, string guid)
        {
            WFBusinessCode byId    = new WFBusinessCodeService().GetById(busiCode);
            string         cmdText = string.Format("SELECT TOP(1) {0} FROM {1} WHERE {2} = '{3}'", new object[] { byId.StateField, byId.LinkTable, byId.PrimaryField, guid });
            string         str2    = string.Format("DELETE FROM {0} WHERE {1} = '{2}'", byId.LinkTable, byId.PrimaryField, guid);
            string         str3    = string.Format("DELETE FROM WF_Instance_Main WHERE InstanceCode = '{0}'", guid);

            switch (DBHelper.GetInt(SqlHelper.ExecuteScalar(CommandType.Text, cmdText)))
            {
            case -1:
                SqlHelper.ExecuteNonQuery(CommandType.Text, str2);
                return;

            case 1:
                SelfEventAction.SuperDelete(guid, byId.LinkTable, byId.StateField);
                SqlHelper.ExecuteNonQuery(CommandType.Text, str3);
                SqlHelper.ExecuteNonQuery(CommandType.Text, str2);
                return;
            }
            SqlHelper.ExecuteNonQuery(CommandType.Text, str3);
            SqlHelper.ExecuteNonQuery(CommandType.Text, str2);
        }
예제 #2
0
파일: WorkFlow.cs 프로젝트: zxl881203/src
 public static void DeleteInvalid()
 {
     try
     {
         WFInstanceMainService source   = new WFInstanceMainService();
         WFBusinessCodeService service2 = new WFBusinessCodeService();
         List <WFInstanceMain> list     = source.ToList <WFInstanceMain>();
         for (int i = list.Count - 1; i > 0; i--)
         {
             WFInstanceMain item = list[i];
             WFBusinessCode byId = service2.GetById(item.BusinessCode);
             string         sql  = string.Concat(new object[] { "SELECT * FROM ", byId.LinkTable, " WHERE ", byId.KeyWord, "='", item.InstanceCode, "'" });
             if (source.ExcuteSql(sql).Count == 0)
             {
                 source.Delete(item);
             }
         }
     }
     catch
     {
     }
 }
예제 #3
0
    protected void BtnAdd_ClickWX(object sender, System.EventArgs e)
    {
        if (this.ddltTemplate.SelectedValue == "-1")
        {
            base.RegisterScript("alert('请选择流程模板')");
            return;
        }
        WFInstanceMainService wFInstanceMainService = new WFInstanceMainService();
        WFTemplateNodeService wFTemplateNodeService = new WFTemplateNodeService();

        if (wFTemplateNodeService.GetNodes(this.TemplateID).Count == 0)
        {
            wFInstanceMainService.UpdateBusinessData(this.RecordID.ToString(), this.BusinessCode, 1);
            WFBusinessCodeService wFBusinessCodeService = new WFBusinessCodeService();
            WFBusinessCode        byId = wFBusinessCodeService.GetById(this.BusinessCode);
            string path     = base.Server.MapPath("~/SelfEventInfo.xml");
            string typeName = SelfEventAction.GetTypeName(path, byId.LinkTable, byId.StateField);
            if (!string.IsNullOrEmpty(typeName))
            {
                ISelfEvent selfEvent = (ISelfEvent)System.Reflection.Assembly.Load("PmBusinessLogic").CreateInstance(typeName);
                if (selfEvent != null)
                {
                    System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(selfEvent.CommitEvent), this.RecordID.ToString());
                }
            }
            if (this.BusinessCode == "089")
            {
                PTPrjInfoZTB byId2 = this.ptInfoZTbSer.GetById(this.RecordID);
                this.ptInfoZTbSer.UpdatePrjState(byId2, new int?(2));
            }
            else
            {
                if (this.BusinessCode == "100")
                {
                    PrjMember.AddLimit(this.RecordID);
                }
                else
                {
                    if (this.BusinessCode == "107")
                    {
                        Progress.UpdateLatest(this.RecordID.ToString());
                    }
                    else
                    {
                        if (this.BusinessCode == "108")
                        {
                            cn.justwin.BLL.ProgressManagement.Version.UpdateLatest(this.RecordID.ToString());
                        }
                    }
                }
            }

            stringBuilder.Append("alert('审核通过');");
            stringBuilder.Append(" page_close();");
            stringBuilder.Append("window.parent.location.reload();");
            base.RegisterScript(stringBuilder.ToString());
            base.RegisterScript(stringBuilder.ToString());
            //base.RegisterScript("top.ui.winSuccess({parentName: '_StartWf'}); top.ui.show('审核通过'); ");

            return;
        }
        if (wFInstanceMainService.IsReSubmit(this.RecordID.ToString(), this.BusinessCode))
        {
            this.Page.ClientScript.RegisterStartupScript(base.GetType(), "", "alert('当前数据已经被提交,禁止二次提交');", true);
            return;
        }
        if (this.ddltTemplate.SelectedValue != "-1")
        {
            FlowChartAction.display_FlowChart(this.tbFlowChart, this.TemplateID);
            if (this.txtReceiver.Text != "")
            {
                if (this.TemplateID == 0)
                {
                    this.Page.ClientScript.RegisterStartupScript(base.GetType(), "", "alert('请选择流程模板');", true);
                    return;
                }
                string[] array = new string[3];
                this.TemplateID = System.Convert.ToInt32(this.hdnTemplateID.Value);
                if (this.TemplateCount > 1)
                {
                    array = FlowAuditAction.GetOffsetNodeFirst(this.TemplateID, this.BusinessClass, this.RecordID);
                    this.hdnNodeId.Value      = array[0].ToString();
                    this.hdnOrderNumber.Value = array[1].ToString();
                }
                else
                {
                    if (this.TemplateCount == 1)
                    {
                        if (this.OffsetCount > 1)
                        {
                            this.hdnNodeId.Value      = this.NodeID.ToString();
                            this.hdnOrderNumber.Value = "1";
                        }
                        else
                        {
                            array = FlowAuditAction.GetOffsetNodeFirst(this.TemplateID, this.BusinessClass, this.RecordID);
                            this.hdnNodeId.Value      = array[0].ToString();
                            this.hdnOrderNumber.Value = array[1].ToString();
                        }
                    }
                }
                int offsetorder = System.Convert.ToInt32(this.hdnOrderNumber.Value.ToString().Trim());
                this.NodeID = System.Convert.ToInt32(this.hdnNodeId.Value.ToString().Trim());
                if (this.hdnNodeId.Value.Trim() == "0")
                {
                    this.JS.Text = "alert('工作流程多分支模板未设置分支条件!');";
                    return;
                }
                if (this.Type.Value != "")
                {
                    FlowAuditAction.UpdateNode(this.hdnReceiver.Value, this.TemplateID);
                }
                if (FlowAuditAction.BeginFlow(this.BusinessClass, this.BusinessCode, this.RecordID, this.TemplateID, this.NodeID, offsetorder, this.ProjectCode, this.UserCode))
                {
                    try
                    {
                        if (ConfigHelper.Get("SMS") != "")
                        {
                            DataTable dataTable  = publicDbOpClass.DataTableQuary("select * from wf_templatenode where templateid=" + this.TemplateID + " and frontnode=0");
                            DataTable dataTable2 = publicDbOpClass.DataTableQuary(string.Concat(new string[]
                            {
                                "select businessclassname from wf_business_class where businesscode='",
                                this.BusinessCode,
                                "' and businessclass='",
                                this.BusinessClass,
                                "'"
                            }));
                            if (dataTable.Rows.Count > 0)
                            {
                                string text = dataTable2.Rows[0][0].ToString();
                                if (dataTable.Rows[0]["isselreceiver"].ToString() == "1")
                                {
                                    SMS    sMS  = new SMS();
                                    string mbNo = new PhoozyanHelpAction().RePhoneCode(this.hdnReceiver.Value);
                                    string msg  = string.Concat(new string[]
                                    {
                                        "公司短信:",
                                        this.txtReceiver.Text,
                                        "您好!",
                                        new CommunicationAction().BackUserName(this.UserCode),
                                        "已发起",
                                        text,
                                        "流程,请您查看审核!"
                                    });
                                    if (!(bool)sMS.Send("", mbNo, msg, "", "", "")[0])
                                    {
                                    }
                                }
                                else
                                {
                                    string arg = "";
                                    System.Collections.ArrayList arrayList  = new System.Collections.ArrayList();
                                    System.Collections.ArrayList arrayList2 = new System.Collections.ArrayList();
                                    string text2 = dataTable.Rows[0]["Operater"].ToString();
                                    if (text2.Contains(","))
                                    {
                                        string[] array2 = text2.Split(new char[]
                                        {
                                            ','
                                        });
                                        for (int i = 0; i < array2.Length - 1; i++)
                                        {
                                            new userManageDb().GetUserName(array2[i]);
                                            arrayList.Add(arrayList);
                                            string value = new PhoozyanHelpAction().RePhoneCode(array2[i]);
                                            arrayList2.Add(value);
                                        }
                                        for (int j = 0; j < arrayList.Count; j++)
                                        {
                                            if (!string.IsNullOrEmpty(arrayList2[j].ToString()))
                                            {
                                                string msg2 = string.Concat(new object[]
                                                {
                                                    "公司短信:",
                                                    arrayList[j],
                                                    "您好!",
                                                    new CommunicationAction().BackUserName(this.UserCode),
                                                    "已发起",
                                                    text,
                                                    "流程,请您查看审核!"
                                                });
                                                SMS sMS2 = new SMS();
                                                if (!(bool)sMS2.Send("", arrayList2[j].ToString(), msg2, "", "", "")[0])
                                                {
                                                    arg += arrayList[j];
                                                }
                                            }
                                            else
                                            {
                                                arg = arg + arrayList[j] + " ";
                                            }
                                        }
                                    }
                                    else
                                    {
                                        string    text3      = new CommunicationAction().BackUserName(dataTable.Rows[0][0].ToString());
                                        DataTable dataTable3 = publicDbOpClass.DataTableQuary("select mobilephonecode from pt_yhmc where v_yhdm='" + dataTable.Rows[0]["Operater"].ToString() + "'");
                                        if (dataTable3.Rows.Count > 0)
                                        {
                                            string mbNo2 = dataTable3.Rows[0][0].ToString();
                                            if (dataTable2.Rows.Count > 0)
                                            {
                                                string msg3 = string.Concat(new string[]
                                                {
                                                    "公司短信:",
                                                    text3,
                                                    "您好!",
                                                    new CommunicationAction().BackUserName(this.UserCode),
                                                    "已发起",
                                                    text,
                                                    "流程,请您查看审核!"
                                                });
                                                SMS  sMS3      = new SMS();
                                                bool arg_85F_0 = (bool)sMS3.Send("", mbNo2, msg3, "", "", "")[0];
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    catch
                    {
                    }

                    if (!string.IsNullOrEmpty(base.Request["purl"]))
                    {
                        //base.RegisterScript("top.ui.winSuccess({parentName: '_StartWf'}); top.ui.show('工作流程已成功启动'); ");
                        return;
                    }

                    stringBuilder.Append("alert('工作流程已成功启动');");
                    stringBuilder.Append(" page_close();");
                    stringBuilder.Append("window.parent.location.reload();");
                    base.RegisterScript(stringBuilder.ToString());
                    //base.RegisterScript("top.ui.winSuccess({parentName: '_StartWf'}); top.ui.show('工作流程已成功启动'); ");
                    return;
                }
                else
                {
                    base.ClientScript.RegisterStartupScript(base.GetType(), "myalert", "<script type='text/javascript'>alert('请找管理员设置 " + this.ddltTemplate.SelectedItem.Text.ToString() + " 流程的负责人。')</script>", false);
                }
            }
        }
    }
예제 #4
0
    private void save(string str)
    {
        try
        {
            if (this.isSecValidate == "1" && !FlowAuditAction.CheckAuditPwd(this.UserCode, this.txtAuditPwd.Text.Trim()))
            {
                this.JS.Text = "alert('审核密码不正确!');";
            }
            else
            {
                string auditInfo     = this.txtAuditInfo.Value.Trim();
                string value         = this.hdnType.Value;
                string insertAuditor = string.Empty;
                if (value == "前插")
                {
                    insertAuditor = this.hdnFrontPerson.Value;
                }
                if (value == "后插")
                {
                    insertAuditor = this.hdnAfterPerson.Value;
                }
                if (value == "前插" || value == "后插")
                {
                    if ((value == "前插" && this.txtFrontPerson.Text == "") || (value == "后插" && this.txtAfterPerson.Text == ""))
                    {
                        base.RegisterScript("alert('请选择" + value + "审核人');");
                    }
                    else
                    {
                        string value2 = this.txtAuditRemark.Value;
                        FlowAuditAction.InsertNode(this.InstanceID, this.UserCode, value, this.IsAllPass, insertAuditor, true, auditInfo, value2);
                        this.SendSMS(this.InstanceID);
                        System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder();
                        if (str == "pc")
                        {
                            stringBuilder.Append("top.ui.refreshDesktop(); \n");
                            stringBuilder.Append("top.ui.show('" + value + "节点成功!'); \n");
                            stringBuilder.Append("top.ui.closeTab();\n");
                        }
                        else
                        {
                            stringBuilder.Append("alert('添加成功');");
                            stringBuilder.Append("parent.location.reload();");
                        }

                        this.JS.Text = stringBuilder.ToString();
                    }
                }
                else
                {
                    int num = System.Convert.ToInt32(this.RBLRoleType.SelectedValue);
                    if (!FlowAuditAction.GetNextOperator(this.InstanceID) && this.txtnextperson.Text == "" && num == 1)
                    {
                        this.JS.Text = "alert('请选择流程下一个审核人');";
                    }
                    else
                    {
                        if (!FlowAuditAction.GetNextOperator(this.InstanceID) && this.txtnextperson.Text != "" && num == 1)
                        {
                            string project = FlowAuditAction.GetProject(this.BusinessCode, this.InstanceCode);
                            if (!FlowAuditAction.SelectNextOperate(this.InstanceID, this.hdnNextPerson.Value.Trim(), int.Parse(this.NodeType.Value), this.UserCode, project))
                            {
                                this.JS.Text = "alert('请找管理员设置" + this.txtnextperson.Text + "的流程负责人');";
                                return;
                            }
                        }
                        if (num == -3 || num == -2)
                        {
                            string[] allFront = FlowAuditAction.GetAllFront(this.InstanceID);
                            for (int i = 0; i < allFront.Length; i++)
                            {
                                this.AddMsg(allFront[i]);
                            }
                            this.DealAgent();
                        }
                        if (num == 1)
                        {
                            this.SendSMS(this.InstanceID);
                        }
                        this.RecieveMsgAdd();
                        FlowAuditAction.ProcessFlow(this.InstanceID, this.IsAllPass, this.UserCode, num, auditInfo);
                        string maxSing = FlowAuditAction.GetMaxSing(this.InstanceID);
                        WFBusinessCodeService wFBusinessCodeService = new WFBusinessCodeService();
                        WFBusinessCode        byId = wFBusinessCodeService.GetById(this.BusinessCode);
                        string path     = base.Server.MapPath("~/SelfEventInfo.xml");
                        string typeName = SelfEventAction.GetTypeName(path, byId.LinkTable, byId.StateField);
                        if (!string.IsNullOrWhiteSpace(typeName))
                        {
                            ISelfEvent selfEvent = (ISelfEvent)System.Reflection.Assembly.Load("PmBusinessLogic").CreateInstance(typeName);
                            if (selfEvent != null)
                            {
                                if (num == 1 && maxSing == "1")
                                {
                                    selfEvent.CommitEvent(this.InstanceCode.ToString());
                                }
                                if (num == -2)
                                {
                                    selfEvent.RefuseEvent(this.InstanceCode.ToString());
                                }
                                if (num == -3)
                                {
                                    selfEvent.RestatedEvent(this.InstanceCode.ToString());
                                }
                            }
                        }
                        if (this.BusinessCode == "089")
                        {
                            PTPrjInfoZTB byId2 = this.ptInfoZTbSer.GetById(this.InstanceCode);
                            if (maxSing == "1" && num == 1)
                            {
                                this.ptInfoZTbSer.UpdatePrjState(byId2, new int?(2));
                            }
                        }
                        else
                        {
                            if (this.BusinessCode == "100")
                            {
                                if (maxSing == "1" && num == 1)
                                {
                                    PrjMember.AddLimit(this.InstanceCode);
                                }
                            }
                            else
                            {
                                if (this.BusinessCode == "107")
                                {
                                    if (maxSing == "1" && num == 1)
                                    {
                                        Progress.UpdateLatest(this.InstanceCode.ToString());
                                    }
                                }
                                else
                                {
                                    if (this.BusinessCode == "108" && maxSing == "1" && num == 1)
                                    {
                                        cn.justwin.BLL.ProgressManagement.Version.UpdateLatest(this.InstanceCode.ToString());
                                    }
                                }
                            }
                        }
                        if (maxSing == "1")
                        {
                            this.MsgOrganiger();
                        }
                        this.Session.Remove("HumanCode");
                        this.Session.Remove("HumanName");
                        this.JS.Text = "auditSuccess();";
                    }
                }
            }
        }
        catch
        {
            base.RegisterScript("alert('系统提示:\\n\\n此审核数据已经失效!')");
        }
    }