示例#1
0
 /// <summary>
 /// 更新
 /// </summary>
 /// <param name="flowTaskModel">任务实体</param>
 /// <returns></returns>
 public int Update(Model.FlowTask flowTaskModel)
 {
     using (var db = new DataContext())
     {
         db.Update(flowTaskModel);
         return(db.SaveChanges());
     }
 }
示例#2
0
 /// <summary>
 /// 添加一个任务
 /// </summary>
 /// <param name="flowTask">任务实体</param>
 /// <returns></returns>
 public int Add(Model.FlowTask flowTask)
 {
     using (var db = new DataContext())
     {
         db.Add(flowTask);
         return(db.SaveChanges());
     }
 }
示例#3
0
        /// <summary>
        /// 发送待办消息
        /// </summary>
        /// <param name="flowTask"></param>
        /// <returns></returns>
        public static string SendWaitTaskMessage(Model.FlowTask flowTask)
        {
            if (!Config.WeiXin_IsUse)
            {
                return(string.Empty);
            }
            if (null == flowTask || flowTask.ReceiveId.IsEmptyGuid())
            {
                return(string.Empty);
            }
            var userModel = new User().Get(flowTask.ReceiveId);

            if (null == userModel || userModel.WeiXinOpenId.IsNullOrWhiteSpace())
            {
                return(string.Empty);
            }

            var    httpContext  = Tools.HttpContext;
            string appopenmodel = null == httpContext ? "0" : httpContext.Request.Querys("rf_appopenmodel");
            string linkUrl      = Config.WeiXin_WebUrl + string.Format("/RoadFlowCore/FlowRun/{0}?flowid={1}&stepid={2}&taskid={3}&groupid={4}&instanceid={5}&appid={6}&tabid={7}&rf_appopenmodel={8}&ismobile=1",
                                                                       "Index", flowTask.FlowId, flowTask.StepId, flowTask.Id, flowTask.GroupId, flowTask.InstanceId,
                                                                       null == httpContext ? "" : httpContext.Request.Querys("appid"), null == httpContext ? "" : httpContext.Request.Querys("tabid"),
                                                                       appopenmodel);

            string  token   = Common.GetAccessToken();
            string  url     = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + token;
            JObject jObject = new JObject
            {
                ["touser"]      = userModel.WeiXinOpenId,
                ["template_id"] = "1wFmd0moKTb8HIw1ZIqUGIbo7h253R5IjOQAW5_UkcQ",
                ["url"]         = linkUrl
            };
            JObject data  = new JObject();
            JObject first = new JObject
            {
                ["value"] = flowTask.Title,
                ["color"] = ""
            };

            data["first"] = first;

            JObject key1 = new JObject
            {
                ["value"] = flowTask.SenderName
            };

            data["keyword1"] = key1;

            JObject key2 = new JObject
            {
                ["value"] = flowTask.ReceiveTime.ToShortDateTimeString()
            };

            data["keyword2"] = key2;

            JObject remark = new JObject
            {
                ["value"] = flowTask.CompletedTime.HasValue ? "要求完成时间:" + flowTask.CompletedTime.Value.ToShortDateTimeString() : ""
            };

            data["remark"] = remark;

            jObject["data"] = data;
            string  msg        = HttpHelper.HttpPost(url, jObject.ToString(Newtonsoft.Json.Formatting.None));
            JObject returnJson = JObject.Parse(msg);

            if (returnJson.Value <string>("errcode").Equals("0"))
            {
                //Log.Add("Send template message", msg);
                return("1");
            }
            else
            {
                Log.Add("发送公众号模板消息错误", msg);
                return(string.Empty);
            }
        }
        public string QueryInstance()
        {
            string appid     = Request.Querys("appid");
            string tabid     = Request.Querys("tabid");
            string FlowID    = Request.Forms("FlowID");
            string Title     = Request.Forms("Title");
            string ReceiveID = Request.Forms("ReceiveID");
            string Date1     = Request.Forms("Date1");
            string Date2     = Request.Forms("Date2");
            string sidx      = Request.Forms("sidx");
            string sord      = Request.Forms("sord");
            string order     = (sidx.IsNullOrEmpty() ? "ReceiveTime" : sidx) + " " + (sord.IsNullOrEmpty() ? "DESC" : sord);
            int    size      = Tools.GetPageSize();
            int    number    = Tools.GetPageNumber();

            Business.FlowTask flowTask = new Business.FlowTask();
            Guid userId = new Business.User().GetUserId(ReceiveID);

            if (FlowID.IsNullOrWhiteSpace())
            {
                FlowID = new Business.Flow().GetManageInstanceFlowIds(Current.UserId).JoinSqlIn();
            }
            DataTable dataTable = flowTask.GetInstanceList(size, number, FlowID, Title, userId.IsEmptyGuid() ? "" : userId.ToString(), Date1, Date2, order, out int count);

            Newtonsoft.Json.Linq.JArray jArray = new Newtonsoft.Json.Linq.JArray();
            foreach (DataRow dr in dataTable.Rows)
            {
                var            groupTasks = flowTask.GetListByGroupId(dr["GroupId"].ToString().ToGuid());
                Model.FlowTask taskModel  = null;
                if (!Title.IsNullOrWhiteSpace())
                {
                    taskModel = groupTasks.Where(p => p.Title.ContainsIgnoreCase(Title)).OrderByDescending(p => p.Sort).ThenBy(p => p.Status).First();
                }
                if (null == taskModel)
                {
                    taskModel = groupTasks.OrderByDescending(p => p.Sort).ThenBy(p => p.Status).First();
                }
                int    openModel = 0, width = 0, height = 0;
                string opation = "<a class=\"list\" href=\"javascript:void(0);\" onclick=\"manage('" + taskModel.Id.ToString() + "', '" + taskModel.GroupId.ToString() + "');\"><i class=\"fa fa-check-square-o\"></i>管理</a>";
                //if (taskModel.ExecuteType.In(-1, 0, 1))
                //{
                opation += "<a class=\"list\" href=\"javascript:void(0);\" onclick=\"delete1('" + taskModel.Id.ToString() + "', '" + taskModel.GroupId.ToString() + "');\"><i class=\"fa fa-trash-o\"></i>删除</a>";
                //}

                string status    = flowTask.GetExecuteTypeTitle(taskModel.ExecuteType);
                string taskTitle = "<a href=\"javascript:void(0);\" class=\"list\" onclick=\"openTask('" + Url.Content("~/RoadFlowCore/FlowRun/Index") + "?" + string.Format("flowid={0}&stepid={1}&instanceid={2}&taskid={3}&groupid={4}&appid={5}&display=1",
                                                                                                                                                                             taskModel.FlowId.ToString(), taskModel.StepId.ToString(), taskModel.InstanceId, taskModel.Id.ToString(), taskModel.GroupId.ToString(), appid
                                                                                                                                                                             ) + "','" + taskModel.Title.TrimAll() + "','" + taskModel.Id.ToString() + "'," + openModel + "," + width + "," + height + ");return false;\">" + taskModel.Title + "</a>";
                Newtonsoft.Json.Linq.JObject jObject = new Newtonsoft.Json.Linq.JObject
                {
                    { "id", taskModel.Id.ToString() },
                    { "Title", taskTitle },
                    { "FlowName", taskModel.FlowName },
                    { "StepName", taskModel.StepName },
                    { "ReceiveName", taskModel.ReceiveName },
                    { "ReceiveTime", taskModel.ReceiveTime.ToDateTimeString() },
                    { "StatusTitle", status },
                    { "Opation", opation }
                };
                jArray.Add(jObject);
            }
            return("{\"userdata\":{\"total\":" + count + ",\"pagesize\":" + size + ",\"pagenumber\":" + number + "},\"rows\":" + jArray.ToString() + "}");
        }