定时器
//定义一个定时器类(类名格式:自定义功能名 + _Timer),且继承H3.SmartForm.Timer类 public class MyTest_Timer: H3.SmartForm.Timer { //构造方法,跟类名保持一致,里面不必书写代码,但是必须存在 public MyTest_Timer() { } //重写定时器引擎执行的方法,必须存在,且方法名必须为OnWork protected override void OnWork(H3.IEngine engine) { //此方法每隔4小时调用一次 Execute_1(engine); }
定时提醒消息,测试版(4小时提醒)
using System; using System.Collections.Generic; using System.Text; using H3; using System.Data; public class D002033374297a54cd74616a92878498743df9a: H3.SmartForm.SmartFormController { public D002033374297a54cd74616a92878498743df9a(H3.SmartForm.SmartFormRequest request): base(request) { } protected override void OnLoad(H3.SmartForm.LoadSmartFormResponse response) { MyTest_Timer1 timer = new MyTest_Timer1(); timer.DoTask(this.Engine); base.OnLoad(response); } protected override void OnSubmit(string actionName, H3.SmartForm.SmartFormPostValue postValue, H3.SmartForm.SubmitSmartFormResponse response) { base.OnSubmit(actionName, postValue, response); } } public class MyTest_Timer1: H3.SmartForm.Timer { //构造方法,跟类名保持一致,里面不必书写代码,但是必须存在 public MyTest_Timer1() { } //重写定时器引擎执行的方法,必须存在,且方法名必须为OnWork protected override void OnWork(H3.IEngine engine) {
//4小时提醒取消注释 // string sql = "select * from I_D002033924d22d0dbd243ce808548bc6528367d where F0000003<now() and F0000002>0"; // DataTable Dt = engine.Query.QueryTable(sql, null); // if(Dt != null && Dt.Rows.Count > 0) // { // foreach(DataRow item in Dt.Rows) // { // H3.DataModel.BizObject biz = H3.DataModel.BizObject.Load(H3.Organization.User.SystemUserId, engine, "D002033924d22d0dbd243ce808548bc6528367d", item["ObjectId"] + string.Empty, false); // SendMessage(engine, biz); // } // } DoTask(engine); } //独立出来在提交事件中调用 //点击提醒 public void DoTask(H3.IEngine engine) { string sql = "select * from I_D002033924d22d0dbd243ce808548bc6528367d where F0000003<now() and F0000002>0"; DataTable Dt = engine.Query.QueryTable(sql, null); if(Dt != null && Dt.Rows.Count > 0) { foreach(DataRow item in Dt.Rows) { H3.DataModel.BizObject biz = H3.DataModel.BizObject.Load(H3.Organization.User.SystemUserId, engine, "D002033924d22d0dbd243ce808548bc6528367d", item["ObjectId"] + string.Empty, false); SendMessage(engine, biz); } } } public void SendMessage(H3.IEngine engine, H3.DataModel.BizObject biz) { H3.Task.UserTask task = new H3.Task.UserTask(); task.ObjectId = Guid.NewGuid().ToString();//Guid码 //select * from H_user where name like '%%' and state=0 //查询用户名ididu8im task.Sender = H3.Organization.User.SystemUserId;//任务的发起人id task.UserId = "8b9de57e-2ebc-4d75-82cf-d891b0b7e09b"; //任务的接收人id task.AppCode = "D002033lingtest";//应用编码(appcode) task.TaskType = H3.Task.TaskType.Reminder; //任务类型为提醒 task.SchemaCode = "D002033924d22d0dbd243ce808548bc6528367d"; //表单编码 task.TargetType = H3.LinkTargetType.BizObject; //关联类型 task.TargetId = biz.ObjectId; //关联业务对象的ID task.TargetName = biz.Name; //关联业务对象的数据标题 task.Name = "您的客户跟进日期快要到了,请尽快跟进!"; //提醒标题 task.Summary = "您的客户跟进日期快要到了,请尽快跟进!"; //提醒的内容 task.AlertTime = DateTime.Now; // 提醒时间 task.ReminderType = H3.Task.ReminderType.Once; //提醒类型 task.StartTime = DateTime.Now; //开始时间 task.EndTime = DateTime.Now; //截止时间 task.TaskState = H3.Task.TaskState.Unfinished; //任务状态 task.AlertState = H3.Task.AlertState.Waiting; //提醒的状态 engine.Request.Engine.TaskManager.AddTask(task);//添加任务 } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术