/// <summary>
        /// 执行
        /// </summary>
        /// <returns>返回执行结果</returns>
        public override object Do()
        {
            /*查找一天预警1次的消息记录,并执行推送。*/
            string sql = "SELECT A.WorkID, A.Title, A.FlowName, A.TodoSta, B.FK_Emp, b.FK_EmpText, C.WAlertWay  FROM WF_GenerWorkFlow A, WF_GenerWorkerlist B, WF_Node C  ";

            sql += " WHERE A.WorkID=B.WorkID AND A.FK_Node=C.NodeID AND a.TodoSta=1 AND ( C.WAlertRole=1 OR C.WAlertRole=2 ) ";
            DataTable dt = DBAccess.RunSQLReturnTable(sql);

            foreach (DataRow dr in dt.Rows)
            {
                CHAlertWay way      = (CHAlertWay)int.Parse(dr["WAlertWay"].ToString()); //提醒方式.
                Int64      workid   = Int64.Parse(dr["WorkID"].ToString());
                string     title    = dr["Title"].ToString();
                string     flowName = dr["FlowName"].ToString();
                string     empNo    = dr["FK_Emp"].ToString();
                string     empName  = dr["FK_EmpText"].ToString();

                BP.WF.Port.WFEmp emp = new Port.WFEmp(empNo);

                if (way == CHAlertWay.ByEmail)
                {
                    string titleMail = "";
                    string docMail   = "";
                    //  BP.WF.Dev2Interface.Port_SendEmail(emp.Email, titleMail, "");
                }

                if (way == CHAlertWay.BySMS)
                {
                    string titleMail = "";
                    string docMail   = "";
                    //BP.WF.Dev2Interface.Port_SendMsg(emp.Email, titleMail, "");
                }
            }
            return("执行成功...");
        }
示例#2
0
        public string Default_Init()
        {
            Hashtable ht = new Hashtable();

            ht.Add("UserNo", WebUser.No);
            ht.Add("UserName", WebUser.Name);

            BP.Port.Emp emp = new Emp();
            emp.No = WebUser.No;
            emp.Retrieve();

            //部门名称.
            ht.Add("DeptName", emp.FK_DeptText);

            if (SystemConfig.OSModel == OSModel.OneMore)
            {
                BP.GPM.DeptEmpStations des = new BP.GPM.DeptEmpStations();
                des.Retrieve(BP.GPM.DeptEmpStationAttr.FK_Emp, WebUser.No);

                string depts = "";
                string stas  = "";

                foreach (BP.GPM.DeptEmpStation item in des)
                {
                    BP.Port.Dept dept = new Dept(item.FK_Dept);
                    depts += dept.Name + "、";


                    BP.Port.Station sta = new Station(item.FK_Station);
                    stas += sta.Name + "、";
                }

                ht.Add("Depts", depts);
                ht.Add("Stations", stas);
            }



            BP.WF.Port.WFEmp wfemp = new Port.WFEmp(WebUser.No);
            ht.Add("Tel", wfemp.Tel);
            ht.Add("Email", wfemp.Email);
            return(BP.Tools.Json.ToJson(ht));
        }
示例#3
0
        /// <summary>
        /// 提交选择的部门。
        /// </summary>
        /// <returns></returns>
        public string ChangeDept_Submit()
        {
            string deptNo = this.GetRequestVal("DeptNo");

            BP.GPM.Dept dept = new GPM.Dept(deptNo);

            BP.Web.WebUser.FK_Dept           = dept.No;
            BP.Web.WebUser.FK_DeptName       = dept.Name;
            BP.Web.WebUser.FK_DeptNameOfFull = dept.NameOfPath;

            //重新设置cookies.
            string strs = "";

            strs += "@No=" + WebUser.No;
            strs += "@Name=" + WebUser.Name;
            strs += "@FK_Dept=" + WebUser.FK_Dept;
            strs += "@FK_DeptName=" + WebUser.FK_DeptName;
            strs += "@FK_DeptNameOfFull=" + WebUser.FK_DeptNameOfFull;
            BP.Web.WebUser.SetValToCookie(strs);

            BP.WF.Port.WFEmp emp = new Port.WFEmp(WebUser.No);
            emp.StartFlows = "";
            emp.Update();

            try
            {
                string sql = "UPDATE Port_Emp Set fk_dept='" + deptNo + "' WHERE no='" + WebUser.No + "'";
                DBAccess.RunSQL(sql);
                BP.WF.Dev2Interface.Port_Login(WebUser.No);
            }
            catch (Exception ex)
            {
            }

            return("@执行成功,已经切换到{" + BP.Web.WebUser.FK_DeptName + "}部门上。");
        }
示例#4
0
        public string Default_Init()
        {
            Hashtable ht = new Hashtable();

            ht.Add("UserNo", WebUser.No);
            ht.Add("UserName", WebUser.Name);

            BP.Port.Emp emp = new Emp();
            emp.No = WebUser.No;
            emp.Retrieve();

            //部门名称.
            ht.Add("DeptName", emp.FK_DeptText);

            if (SystemConfig.OSModel == OSModel.OneMore)
            {
                BP.GPM.DeptEmpStations des = new BP.GPM.DeptEmpStations();
                des.Retrieve(BP.GPM.DeptEmpStationAttr.FK_Emp, WebUser.No);

                string depts = "";
                string stas  = "";

                foreach (BP.GPM.DeptEmpStation item in des)
                {
                    BP.Port.Dept dept = new Dept();
                    dept.No = item.FK_Dept;
                    int count = dept.RetrieveFromDBSources();
                    if (count != 0)
                    {
                        depts += dept.Name + "、";
                    }


                    if (DataType.IsNullOrEmpty(item.FK_Station) == true)
                    {
                        //    item.Delete();
                        continue;
                    }

                    if (DataType.IsNullOrEmpty(item.FK_Dept) == true)
                    {
                        //   item.Delete();
                        continue;
                    }

                    BP.Port.Station sta = new Station();
                    sta.No = item.FK_Station;
                    count  = sta.RetrieveFromDBSources();
                    if (count != 0)
                    {
                        stas += sta.Name + "、";
                    }
                }

                ht.Add("Depts", depts);
                ht.Add("Stations", stas);
            }



            BP.WF.Port.WFEmp wfemp = new Port.WFEmp(WebUser.No);
            ht.Add("Tel", wfemp.Tel);
            ht.Add("Email", wfemp.Email);
            return(BP.Tools.Json.ToJson(ht));
        }
        /// <summary>
        /// 执行
        /// </summary>
        /// <returns>返回执行结果</returns>
        public override object Do()
        {
            //系统期望的是,每一个人仅发一条信息.  “您有xx个预警工作,yy个预期工作,请及时处理。”

            DataTable dtEmps = new DataTable();

            dtEmps.Columns.Add("EmpNo", typeof(string));
            dtEmps.Columns.Add("WarningNum", typeof(int));
            dtEmps.Columns.Add("OverTimeNum", typeof(int));

            string timeDT = DateTime.Now.ToString("yyyy-MM-dd");
            string sql    = "";

            //查询出预警的工作.
            //sql = " SELECT DISTINCT FK_Emp,COUNT(FK_Emp) as Num , 0 as DBType FROM WF_GenerWorkerlist A WHERE a.DTOfWarning =< '" + timeDT + "' AND a.SDT <= '" + timeDT + "' AND A.IsPass=0  ";
            //sql += "  UNION ";
            //sql += "SELECT DISTINCT FK_Emp,COUNT(FK_Emp) as Num , 1 as DBType FROM WF_GenerWorkerlist A WHERE  a.SDT >'" + timeDT + "' AND A.IsPass=0 ";

            sql = "SELECT * FROM WF_GenerWorkerlist A WHERE a.DTOfWarning >'" + timeDT + "' AND a.SDT <'" + timeDT + "' AND A.IsPass=0 ORDER BY FK_Node,FK_Emp ";
            DataTable dt = DBAccess.RunSQLReturnTable(sql);

            #region 向预警人员发消息.
            // 向预警的人员发消息.
            Node             nd  = new Node();
            BP.WF.Port.WFEmp emp = new Port.WFEmp();
            foreach (DataRow dr in dt.Rows)
            {
                Int64  workid  = Int64.Parse(dr["WorkID"].ToString());
                int    fk_node = int.Parse(dr["FK_Node"].ToString());
                string fk_emp  = dr["FK_Emp"].ToString();

                if (nd.NodeID != fk_node)
                {
                    nd.NodeID = fk_node;
                    nd.Retrieve();
                }

                if (nd.HisCHWay != CHWay.ByTime)
                {
                    continue; //非按照时效考核.
                }
                if (nd.WAlertRole == CHAlertRole.None)
                {
                    continue;
                }

                //如果仅仅提醒一次.
                // if (nd.WAlertRole == CHAlertRole.OneDayOneTime && isPM == true)
                if (nd.WAlertRole == CHAlertRole.OneDayOneTime && 1 == 1)
                {
                }
                else
                {
                    continue;
                }

                if (emp.No != fk_emp)
                {
                    emp.No = fk_emp;
                    emp.Retrieve();
                }
            }
            #endregion 向预警人员发消息.

            if (dt.Rows.Count >= 1)
            {
                //更新预警状态.
                sql  = "UPDATE WF_GenerWorkFlow  SET TodoSta=1 ";
                sql += " WHERE WorkID IN (SELECT WorkID FROM WF_GenerWorkerlist A WHERE a.DTOfWarning >'" + timeDT + "' AND a.SDT <'" + timeDT + "' AND A.IsPass=0 ) ";
                sql += " AND WF_GenerWorkFlow.WFState!=3 ";
                sql += " AND WF_GenerWorkFlow.TodoSta=0 ";
                int i = BP.DA.DBAccess.RunSQL(sql);
            }

            //更新逾期期状态.
            sql  = "UPDATE WF_GenerWorkFlow  SET TodoSta=2 ";
            sql += " WHERE WorkID IN (SELECT WorkID FROM WF_GenerWorkerlist A WHERE a.DTOfWarning >'" + timeDT + "' AND a.SDT <'" + timeDT + "' AND A.IsPass=0 ) ";
            sql += " AND WF_GenerWorkFlow.WFState!=3 ";
            sql += " AND WF_GenerWorkFlow.TodoSta=1 ";
            BP.DA.DBAccess.RunSQL(sql);

            return("时间戳修改成功");
        }