Exemple #1
0
        /// <summary>
        /// 获取实体数据
        /// </summary>
        /// <returns></returns>
        public DataTable GetData(string entityName, string[] columns = null, string where = null, string pkName = null, string pkValue = null, string order = null, bool sortDesc = false)
        {
            FE_GetDataParam getDataParam = new FE_GetDataParam();

            getDataParam.Sources = entityName;
            if (columns != null)
            {
                getDataParam.Columns.AddRange(columns);
            }
            getDataParam.AddWhere(where);
            getDataParam.PrimaryKey      = pkName;
            getDataParam.PrimaryKeyValue = pkValue;
            if (order != null)
            {
                getDataParam.OrderByConditons.Add(new OrderByCondition(order, sortDesc));
            }

            DataSet ds = GetData(getDataParam);

            if (TmoShare.DataSetIsEmpty(ds))
            {
                return(null);
            }
            return(ds.Tables.Contains("tmo_data") ? ds.Tables["tmo_data"] : ds.Tables[0]);
        }
Exemple #2
0
        /// <summary>
        /// 获取分页实体数据
        /// </summary>
        /// <returns></returns>
        public DataSet GetPageData(string entityName, int pageSize, int pageIndex, string[] columns = null, string where = null, string order = null, bool sortDesc = false, JoinCondition[] joinConditions = null)
        {
            FE_GetDataParam getDataParam = new FE_GetDataParam();

            getDataParam.PageIndex = pageIndex;
            getDataParam.PageSize  = pageSize;
            getDataParam.Sources   = entityName;
            if (columns != null)
            {
                getDataParam.Columns.AddRange(columns);
            }
            getDataParam.AddWhere(where);
            if (order != null)
            {
                getDataParam.OrderByConditons.Add(new OrderByCondition()
                {
                    Col = order, IsDesc = sortDesc
                });
            }
            if (joinConditions != null)
            {
                getDataParam.JoinConditions.AddRange(joinConditions);
            }
            return(GetData(getDataParam));
        }
Exemple #3
0
        /// <summary>
        /// 获得数据
        /// </summary>
        protected virtual DataSet GetDataMethod(FE_GetDataParam getDataParam)
        {
            //string getpagedataStr = TmoShare.GetPageDataEntityParams(tableName, PageSize, PageIndex, columns, string.Format("{0} and {1}", fixwhere, where), order);
            //DataSet ds = Tmo_FakeEntityClient.Instance.GetPageDataWithParams(getpagedataStr);
            DataSet ds = Tmo_FakeEntityClient.Instance.GetData(getDataParam);

            return(ds);
        }
        protected override DataSet GetDataMethod(FE_GetDataParam getDataParam)
        {
            string  user_id    = Userinfo == null ? "" : Userinfo.user_id;
            int     user_times = Userinfo == null ? 0 : Userinfo.user_times;
            DataSet ds         = TmoServiceClient.InvokeServerMethodT <DataSet>(funCode.GetProResult, user_id, user_times, "");

            if (ds != null && ds.Tables.Count > 0)
            {
                ds.Tables[0].TableName = "tmo_data";
            }
            return(ds);
        }
Exemple #5
0
        private void ComboBoxBind()
        {
            try
            {
                DataTable wzds = TmoServiceClient.InvokeServerMethodT <DataSet>(funCode.GetPublicList, "tmo_product_type", "is_del='1' ").Tables[0];

                if (TmoShare.DataTableIsNotEmpty(wzds))
                {
                    this.BindDataTable(productType, wzds, "type_name", "type_id");
                }

                DataTable ztdt = TmoServiceClient.InvokeServerMethodT <DataSet>(funCode.GetPublicList, "tmo_product_list", " is_del='1' ").Tables[0];

                if (TmoShare.DataTableIsNotEmpty(ztdt))
                {
                    this.BindDataTable(productName, ztdt, "product_name", "product_id");
                }

                DataTable ysdt = Tmo_FakeEntityClient.Instance.GetData("tmo_sell_list", new[] { "distinct(doc_code) as doc_code" }, "is_del='1'");
                if (TmoShare.DataTableIsNotEmpty(ysdt))
                {
                    this.BindDataTable(docName, ysdt, "doc_code", "doc_code");
                }

                var param = new FE_GetDataParam()
                {
                    Columns        = { "distinct(tmo_sell_list.identity)", "name" },
                    Sources        = "tmo_sell_list",
                    JoinConditions = { new JoinCondition()
                                       {
                                           JoinType = EmJoinType.LeftJoin, Table = "tmo_userinfo", OnCol = "identity"
                                       } }
                };
                param.AddWhere("tmo_sell_list.is_del='1'");

                DataSet ds = Tmo_FakeEntityClient.Instance.GetData(param);
                if (TmoShare.DataSetIsNotEmpty(ds))
                {
                    if (ds.Tables.Contains("tmo_data"))
                    {
                        DataTable yhdt = ds.Tables["tmo_data"];
                        if (TmoShare.DataTableIsNotEmpty(yhdt))
                        {
                            this.BindDataTable(receiveCode, yhdt, "name", "identity");
                        }
                    }
                }
            }
            catch (Exception)
            {
            }
        }
Exemple #6
0
        /// <summary>
        /// 获取实体数据
        /// </summary>
        /// <returns></returns>
        public DataTable GetData(string entityName, string[] columns, string where = null, string pkName = null, string pkValue = null, string order = null, bool sortDesc = false, int pageSize = -1)
        {
            FE_GetDataParam getDataParam = new FE_GetDataParam();

            getDataParam.Sources = entityName;
            if (columns != null && columns.Length > 0)
            {
                getDataParam.Columns.AddRange(columns);
            }
            getDataParam.AddWhere(where);
            getDataParam.PrimaryKey      = pkName;
            getDataParam.PrimaryKeyValue = pkValue;
            if (order != null)
            {
                getDataParam.OrderByConditons.Add(new OrderByCondition()
                {
                    Col = order, IsDesc = sortDesc
                });
            }
            if (pageSize != -1)
            {
                getDataParam.PageIndex = 1;
                getDataParam.PageSize  = pageSize;
            }

            DataSet ds = GetData(getDataParam);

            if (TmoShare.DataSetIsEmpty(ds))
            {
                return(null);
            }
            if (ds.Tables.Contains("tmo_data"))
            {
                return(ds.Tables["tmo_data"]);
            }
            else
            {
                DataTable dt = ds.Tables[0];
                if (dt.TableName == "tmo_count")
                {
                    return(null);
                }
                return(dt);
            }
        }
        protected override bool BeforeSubmitData(Dictionary <string, object> dicData)
        {
            if (userNum.Visible)
            {
                dicData[nameof(dev_sn)] = dicData[nameof(dev_sn)] + userNum.EditValue.ToString();
            }
            FE_GetDataParam param = new FE_GetDataParam()
            {
                Columns        = { "tmo_userinfo.user_id,tmo_userinfo.name,tmo_userinfo.is_del" },
                Sources        = TableName,
                JoinConditions = { new JoinCondition()
                                   {
                                       JoinType = EmJoinType.LeftJoin, Table = "tmo_userinfo", OnCol = "user_id", MainCol = "dev_userid"
                                   } }
            };

            param.DicWhere.Add(PrimaryKey, dicData[PrimaryKey].ToString());
            param.DicWhere.Add(dev_type.Name, dicData[dev_type.Name].ToString());

            DataSet ds = Tmo_FakeEntityClient.Instance.GetData(param);

            if (TmoShare.DataSetIsNotEmpty(ds))
            {
                if (_user_id == ds.Tables[0].Rows[0]["user_id"].ToString())
                {
                    DXMessageBox.ShowWarning("设备已绑定,请勿重复绑定!");
                    return(false);
                }
                DXMessageBox.ShowWarning(string.Format("设备已经被用户【{0}】绑定!\n[{1}]", ds.Tables[0].Rows[0]["name"], ds.Tables[0].Rows[0]["user_id"]));
                return(false);
            }

            bool same = Tmo_FakeEntityClient.Instance.ExistSameValue(TableName, PrimaryKey, dicData[PrimaryKey].ToString(), dev_type.Name + "=" + dicData[dev_type.Name]);

            if (same)
            {
                DbOperaType     = DBOperateType.Update;
                PrimaryKeyValue = dicData[PrimaryKey].ToString();
            }
            dicData.Add("dev_userid", _user_id);
            dicData.Add("doc_name", TmoComm.login_docInfo.doc_name);
            dicData.Add("dev_bindtime", DateTime.Now);
            return(true);
        }
Exemple #8
0
 /// <summary>
 /// 获得实体数据
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public DataSet GetData(FE_GetDataParam param)
 {
     return(dal.GetData(param));
 }
        private DateTime lastMianTime   = DateTime.MinValue; //面访上次提醒日期

        /// <summary>
        /// 定时执行干预任务
        /// </summary>
        /// <param name="state"></param>
        private void ExecIntervene(object state)
        {
            FE_GetDataParam param = new FE_GetDataParam()
            {
                Sources        = "tmo_intervene",
                PrimaryKey     = "inte_id",
                Columns        = { "tmo_userinfo.name", "tmo_userinfo.gender", "tmo_userinfo.age", "tmo_userinfo.phone", "tmo_intervene.*" },
                JoinConditions = { new JoinCondition()
                                   {
                                       JoinType = EmJoinType.LeftJoin, Table = "tmo_userinfo", OnCol = "user_id"
                                   } }
            };

            param.AddWhere("inte_status in (1,2)");

            var ds = Tmo_FakeEntityManager.Instance.GetData(param); //获取未执行的干预

            if (TmoShare.DataSetIsNotEmpty(ds))
            {
                bool canNotice = (DateTime.Now - lastNoticeTime).TotalSeconds >= 30;
                var  dt        = ds.Tables["tmo_data"];
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    var    dr      = dt.Rows[i];
                    string inte_id = dr.GetDataRowStringValue("inte_id");
                    try
                    {
                        string   inte_content  = dr.GetDataRowStringValue("inte_content");
                        int      inte_way      = dr.GetDataRowIntValue("inte_way"); //干预方式 1-邮件 2-短信  3-电话 4-面访
                        int      doc_id        = dr.GetDataRowIntValue("doc_id");
                        string   inte_addr     = dr.GetDataRowStringValue("inte_addr");
                        DateTime inte_plantime = dr.GetDataRowDateTimeValue("inte_plantime");
                        TimeSpan diffSpan      = DateTime.Now - inte_plantime; //现在时间距离计划时间的时间差
                        int      failMin       = 30;                           //过期时间 单位:分钟
                        if (Debugger.IsAttached)
                        {
                            failMin = 60 * 24 * 3;
                        }
                        if (inte_way == 3)
                        {
                            failMin = 60 * 12;                //电话12小时过期
                        }
                        if (inte_way == 4)
                        {
                            failMin = 60 * 24;                                                 //面访24小时过期
                            if (diffSpan.TotalMinutes > -failMin && diffSpan.TotalMinutes < 0) //提前24小时提醒
                            {
                                if ((DateTime.Now - lastMianTime).TotalMinutes >= 30)
                                {
                                    string str =
                                        string.Format("面访任务提醒\n时间 [{0}]\n客户信息 [{1},{2},{3}岁]\n手机号码 {4}\n面访地址 {5}\n请提前做好准备!",
                                                      inte_plantime.ToString("yyyy年MM月dd日HH点mm分"), dr.GetDataRowStringValue("name"),
                                                      dr.GetDataRowIntValue("gender") == 1 ? "男" : "女",
                                                      dr.GetDataRowStringValue("age"), dr.GetDataRowStringValue("phone"), inte_addr);
                                    bool sendsuc = PushInvoke.SendDocInvoke(doc_id.ToString(), 0, str);
                                    if (sendsuc)
                                    {
                                        lastMianTime = DateTime.Now;
                                    }
                                }

                                continue;
                            }
                        }

                        if (diffSpan.Ticks < 0)
                        {
                            continue;                        //未到执行时间
                        }
                        if (diffSpan.TotalMinutes > failMin) //干预过期
                        {
                            tmo_interveneManager.Instance.SetInterveneFailed(inte_id, "干预过期");
                            continue;
                        }

                        int inte_status = dr.GetDataRowIntValue("inte_status"); //更改执行状态
                        if (inte_status == 1)
                        {
                            tmo_interveneManager.Instance.SetInterveneExecing(inte_id);
                            continue;
                        }

                        PushType pushtype = PushType.doc_wechat; //默认类型 此类型无效
                        switch (inte_way)
                        {
                        case 1:
                            pushtype = PushType.user_mail;
                            break;

                        case 2:
                            pushtype = PushType.user_sms;
                            break;

                        case 3:     //电话干预
                            if (canNotice)
                            {
                                string title = "请执行电话干预";
                                string msg   = string.Format("有一个电话干预需要执行:\n时间 [{0}]\n客户信息 [{1},{2},{3}岁]\n电话号码 [{4}]\n点击查看详情并填写执行结果!",
                                                             inte_plantime.ToString("yyyy年MM月dd日HH点mm分"), dr.GetDataRowStringValue("name"),
                                                             dr.GetDataRowIntValue("gender") == 1 ? "男" : "女",
                                                             dr.GetDataRowStringValue("age"), inte_addr);
                                string sendStr = title + ";" + msg + ";" + inte_id;
                                bool   sendsuc = PushInvoke.SendDocInvoke(doc_id.ToString(), 100, sendStr);
                                if (sendsuc)
                                {
                                    lastNoticeTime = DateTime.Now;
                                }
                            }

                            break;

                        case 4:     //面访干预
                            if (canNotice)
                            {
                                string title = "请执行面访干预";
                                string msg   = string.Format("有一个面访干预需要执行:\n时间 [{0}]\n客户信息 [{1},{2},{3}岁]\n手机号码 [{4}]\n面访地址 {5}\n点击查看详情并填写执行结果!",
                                                             inte_plantime.ToString("yyyy年MM月dd日HH点mm分"), dr.GetDataRowStringValue("name"),
                                                             dr.GetDataRowIntValue("gender") == 1 ? "男" : "女",
                                                             dr.GetDataRowStringValue("age"), dr.GetDataRowStringValue("phone"), inte_addr);
                                string sendStr = title + ";" + msg + ";" + inte_id;
                                bool   sendsuc = PushInvoke.SendDocInvoke(doc_id.ToString(), 101, sendStr);
                                if (sendsuc)
                                {
                                    lastNoticeTime = DateTime.Now;
                                }
                            }

                            break;

                        default:
                            throw new Exception("干预方式参数无效");
                        }

                        if (pushtype == PushType.doc_wechat || pushtype == PushType.None)
                        {
                            continue;                                                               //未知方式取消推送
                        }
                        string inte_reason = dr.GetDataRowStringValue("inte_reason");
                        if (inte_reason == "sending")
                        {
                            continue;                           //发送中跳过
                        }
                        string inte_title = dr.GetDataRowStringValue("inte_title");
                        if (string.IsNullOrWhiteSpace(inte_title))
                        {
                            inte_title = "健康干预";
                        }
                        string user_id = dr.GetDataRowStringValue("user_id");

                        Dictionary <string, object> dicVals = new Dictionary <string, object>();
                        dicVals.Add("push_id", inte_id);
                        dicVals.Add("user_code", user_id);
                        dicVals.Add("push_type", (int)pushtype);
                        dicVals.Add("push_address", inte_addr);
                        dicVals.Add("content_type", "1");
                        dicVals.Add("content_title", inte_title);
                        dicVals.Add("content_value", inte_content);
                        dicVals.Add("push_status", 1);
                        dicVals.Add("doc_code", doc_id);

                        bool suc = tmo_push_listManager.Instance.AddToPushList(dicVals);
                        if (suc)
                        {
                            dicVals.Clear();
                            dicVals.Add("inte_reason", "sending");
                            Tmo_FakeEntityManager.Instance.SubmitData(DBOperateType.Update, "tmo_intervene", "inte_id", inte_id, dicVals);
                        }
                    }
                    catch (Exception ex)
                    {
                        LogHelper.Log.Error("干预任务解析失败!", ex);
                        tmo_interveneManager.Instance.SetInterveneFailed(inte_id, "干预任务解析失败:" + ex.Message);
                    }
                }
            }

            ((ManualResetEvent)((object[])state)[0]).Set();
        }
        /// <summary>
        /// 获得实体数据
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public DataSet GetData(FE_GetDataParam param)
        {
            if (param == null)
            {
                return(null);
            }
            if (string.IsNullOrWhiteSpace(param.Sources))
            {
                return(null);
            }
            DataSet ds = new DataSet("tmo_entity");

            string columnsStr;

            //列筛选条件处理
            if (param.Columns.Any())
            {
                columnsStr = string.Join(",", param.Columns);
            }
            else
            {
                columnsStr = "*";
            }

            //Where特殊情况处理
            if (param.Where.ToString().TrimEnd().EndsWith("and", StringComparison.CurrentCultureIgnoreCase)) //包含and字符
            {
                param.Where.Append(" 1=1 ");
            }

            //假删除条件附加
            if (!param.Where.ToString().ToLower().Contains("is_del"))
            {
                if (MySQLHelper.IsFalseDelete(param.Sources))
                {
                    param.Where.AppendFormat(" and ({0}.is_del!='1' or {0}.is_del is null) ", param.Sources);
                }
            }

            //DicWhere条件处理
            if (param.DicWhere.Any())
            {
                foreach (var item in param.DicWhere)
                {
                    string col = item.Key;
                    string val = item.Value;
                    if (string.IsNullOrWhiteSpace(col) || string.IsNullOrWhiteSpace(val))
                    {
                        continue;                                                                   //筛选无效值
                    }
                    val = val.StartsWith(",")
                        ? string.Format("{0} {1}", col, val.TrimStart(','))
                        : string.Format("{0}='{1}'", col, val);

                    param.Where.AppendFormat(" and {0} ", val);
                }
            }

            //主键条件附加
            if (!string.IsNullOrWhiteSpace(param.PrimaryKey) && !string.IsNullOrWhiteSpace(param.PrimaryKeyValue))
            {
                param.Where.AppendFormat(" and {0}='{1}'", param.PrimaryKey, param.PrimaryKeyValue);
            }

            //join条件处理
            if (param.JoinConditions.Any())
            {
                foreach (var jc in param.JoinConditions)
                {
                    if (string.IsNullOrWhiteSpace(jc.Table) || string.IsNullOrWhiteSpace(jc.OnCol))
                    {
                        continue;                                                                             //忽略无效的连接条件
                    }
                    if (string.IsNullOrWhiteSpace(jc.MainTable))
                    {
                        jc.MainTable = param.Sources;
                    }
                    if (string.IsNullOrWhiteSpace(jc.MainCol))
                    {
                        jc.MainCol = jc.OnCol;
                    }
                    param.Sources += " " + TmoShare.GetDescription(jc.JoinType);
                    if (string.IsNullOrWhiteSpace(jc.TableAsName))
                    {
                        param.Sources += string.Format(" {0} on {0}.{1}={2}.{3}", jc.Table, jc.OnCol, jc.MainTable, jc.MainCol);
                    }
                    else
                    {
                        param.Sources += string.Format(" {0} {4} on {4}.{1}={2}.{3}", jc.Table, jc.OnCol, jc.MainTable, jc.MainCol, jc.TableAsName);
                    }
                }
            }

            StringBuilder sbSql      = new StringBuilder();
            StringBuilder sbSqlCount = new StringBuilder();

            sbSql.AppendFormat("select {0} from {1}", columnsStr, param.Sources);
            sbSqlCount.AppendFormat("select count(*) from {0}", param.Sources);
            if (param.Where.Length > 0)
            {
                sbSql.AppendFormat(" where {0}", param.Where);
                sbSqlCount.AppendFormat(" where {0}", param.Where);
            }

            //排序条件附加
            if (param.OrderByConditons.Any())
            {
                string orderCols = null;
                foreach (OrderByCondition o in param.OrderByConditons)
                {
                    if (string.IsNullOrWhiteSpace(o.Col))
                    {
                        continue;
                    }
                    orderCols += string.Format(" {0} {1},", o.Col, o.IsDesc ? "desc" : "asc");
                }

                if (!string.IsNullOrWhiteSpace(orderCols))
                {
                    sbSql.AppendFormat(" order by {0}", orderCols.TrimEnd(','));
                }
            }

            if (param.PageSize != -1 || param.PageIndex != -1)
            {
                //分页模式
                if (param.PageSize < 1)
                {
                    param.PageSize = 100;                     //错误页码过滤
                }
                if (param.PageIndex < 1)
                {
                    param.PageIndex = 1;
                }
                int count     = 0;
                int pageCount = 1;

                DataTable dtCount = new DataTable("tmo_count");
                dtCount.Columns.AddRange(new DataColumn[]
                {
                    new DataColumn("count"), new DataColumn("pageCount"),
                    new DataColumn("pageIndex"), new DataColumn("pageSize")
                });
                DataRow drCount  = dtCount.NewRow();
                object  objCount = MySQLHelper.GetSingle(sbSqlCount.ToString());
                if (objCount != null)
                {
                    count = Convert.ToInt32(objCount);
                }
                drCount["count"]     = count;
                pageCount            = (int)Math.Ceiling((double)count / param.PageSize);
                drCount["pageCount"] = pageCount;
                if (param.PageIndex > pageCount)
                {
                    param.PageIndex = pageCount;
                }
                drCount["pageIndex"] = param.PageIndex;
                drCount["pageSize"]  = param.PageSize;
                dtCount.Rows.Add(drCount);

                if (count != 0)
                {
                    sbSql.AppendFormat(" limit {0},{1}", (param.PageIndex - 1) * param.PageSize, param.PageSize);
                    DataTable dt = MySQLHelper.QueryTable(sbSql.ToString());
                    if (dt != null)
                    {
                        dt.TableName = "tmo_data";
                        ds.Tables.Add(dt);
                    }
                }

                ds.Tables.Add(dtCount);
            }
            else
            {
                //无需分页
                DataTable dt = MySQLHelper.QueryTable(sbSql.ToString());
                if (dt != null)
                {
                    dt.TableName = "tmo_data";
                    ds.Tables.Add(dt);
                }
            }

            return(ds);
        }
Exemple #11
0
 /// <summary>
 /// 获取实体数据
 /// </summary>
 /// <param name="getDataParam"></param>
 /// <returns></returns>
 public DataSet GetData(FE_GetDataParam getDataParam)
 {
     return(TmoServiceClient.InvokeServerMethodT <DataSet>(funCode.FakeEntity_GetDataNew, getDataParam));
 }