/// <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("执行成功..."); }
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)); }
/// <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 + "}部门上。"); }
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("时间戳修改成功"); }