示例#1
0
        //校审问题类型(质量问题分类)
        public void CreateBaseMistakeTypeQueue()
        {
            //URL地址
            var saveUrl   = this.BaseServerUrl + "quality/add";
            var removeUrl = this.BaseServerUrl + "quality/delete";
            var enumKey   = "Project.MistakeLevel";

            var sourceSql = @"select d.ModifyTime,i.* from S_M_EnumDef d
                                            left join S_M_EnumItem i on i.EnumDefID = d.id
                                            where d.code='" + enumKey + "' ";

            //取最近的同步记录时间,到当前时间的差异数据
            var synData     = this.SQLHelperInterface.ExecuteList <S_A_BaseEnum>("select * from S_A_BaseEnum where type='" + enumKey + "'");
            var lastSynTime = synData.Max(a => a.SynTime);

            if (lastSynTime != null)
            {
                //判断同步增量数据 还是 所有数据
                var startDate = Convert.ToDateTime(lastSynTime).ToString();
                var endDate   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                sourceSql += " and ModifyTime >='" + startDate + "' and ModifyTime <='" + endDate + "'";
            }

            var saveSb   = new StringBuilder();
            var sourceDt = this.SQLHelpeBase.ExecuteDataTable(sourceSql);
            var removeSb = new StringBuilder();

            foreach (DataRow row in sourceDt.Rows)
            {
                var dic = DataHelper.DataRowToDic(row);

                //设置参数
                var param = new BaseEnumRequestData();
                param.id = dic.GetValue("ID");
                var exist = synData.FirstOrDefault(a => a.ID == param.id);
                if (exist != null && !string.IsNullOrEmpty(exist.SynID))
                {
                    param.id = exist.SynID;
                }
                param.name = dic.GetValue("Name");
                param.code = dic.GetValue("Code");
                var queueSql = string.Format(this.SaveQueueSqlTmp, SynType.Save.ToString(), "S_A_BaseEnum", param.id, enumKey
                                             , DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), JsonHelper.ToJson <BaseEnumRequestData>(param).Replace("'", "''"), saveUrl);
                saveSb.AppendLine(queueSql);
            }

            var alldt  = this.SQLHelpeBase.ExecuteDataTable(@"select i.ID from S_M_EnumDef d
                                            left join S_M_EnumItem i on i.EnumDefID = d.id
                                            where d.code='" + enumKey + "' ");
            var allIDs = new List <string>();

            foreach (DataRow item in alldt.Rows)
            {
                allIDs.Add(item["ID"].ToString());
            }
            var removeList = synData.Where(a => !allIDs.Contains(a.ID) && a.State == DataState.Normal.ToString()).ToList();

            foreach (var item in removeList)
            {
                var delID = item.ID;
                var exist = synData.FirstOrDefault(a => a.ID == delID);
                if (exist != null && !string.IsNullOrEmpty(exist.SynID))
                {
                    delID = exist.SynID;
                }
                var queueSql = string.Format(this.SaveQueueSqlTmp, SynType.Remove.ToString(), "S_A_BaseEnum", delID, enumKey
                                             , DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), JsonHelper.ToJson <DeleteRequestData>(new DeleteRequestData()
                {
                    id = delID
                }), removeUrl);
                removeSb.AppendLine(queueSql);
            }

            if (removeSb.Length > 0)
            {
                this.SQLHelperInterface.ExecuteNonQuery(removeSb.ToString());
            }

            if (saveSb.Length > 0)
            {
                this.SQLHelperInterface.ExecuteNonQuery(saveSb.ToString());
            }
        }
示例#2
0
        //阶段专业枚举
        public void CreateBaseMajorPhaseQueue()
        {
            //URL地址
            var saveUrl   = this.BaseServerUrl + "{0}/add";
            var removeUrl = this.BaseServerUrl + "{0}/delete";
            var enumKey   = "'Major','Phase'";

            var sourceSql = @"select * from S_D_WBSAttrDefine where type in (" + enumKey + ")";

            //根据配置的同步时间间隔同步数据
            var synData     = this.SQLHelperInterface.ExecuteList <S_A_BaseEnum>("select * from S_A_BaseEnum where type in (" + enumKey + ")");
            var lastSynTime = synData.Max(a => a.SynTime);

            if (lastSynTime != null)
            {
                var interval      = ConfigurationManager.AppSettings["BaseMajorPhaseSynInterval"];
                var intervalValue = 0d;
                if (!string.IsNullOrEmpty(interval))
                {
                    intervalValue = Convert.ToDouble(interval);
                }
                if (DateTime.Now < lastSynTime.Value.AddMinutes(intervalValue))
                {
                    return;
                }
            }

            var saveSb   = new StringBuilder();
            var sourceDt = this.SQLHelpeProjectConfig.ExecuteDataTable(sourceSql);
            var removeSb = new StringBuilder();

            foreach (DataRow row in sourceDt.Rows)
            {
                var dic = DataHelper.DataRowToDic(row);

                //设置参数
                var param = new BaseEnumRequestData();
                param.id = dic.GetValue("ID");
                var exist = synData.FirstOrDefault(a => a.ID == param.id);
                if (exist != null && !string.IsNullOrEmpty(exist.SynID))
                {
                    param.id = exist.SynID;
                }
                param.name = dic.GetValue("Name");
                param.code = dic.GetValue("Code");
                var queueSql = string.Format(SaveQueueSqlTmp, SynType.Save.ToString(), "S_A_BaseEnum", param.id, dic.GetValue("Type")
                                             , DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), JsonHelper.ToJson <BaseEnumRequestData>(param).Replace("'", "''"), string.Format(saveUrl, dic.GetValue("Type") == "Phase" ? "Phase" : "specialty"));
                saveSb.AppendLine(queueSql);
            }

            var alldt  = this.SQLHelpeProjectConfig.ExecuteDataTable(@"select ID from S_D_WBSAttrDefine where type in (" + enumKey + ")");
            var allIDs = new List <string>();

            foreach (DataRow item in alldt.Rows)
            {
                allIDs.Add(item["ID"].ToString());
            }
            var removeList = synData.Where(a => !allIDs.Contains(a.ID) && a.State == DataState.Normal.ToString()).ToList();

            foreach (var item in removeList)
            {
                var delID = item.ID;
                var exist = synData.FirstOrDefault(a => a.ID == delID);
                if (exist != null && !string.IsNullOrEmpty(exist.SynID))
                {
                    delID = exist.SynID;
                }
                var queueSql = string.Format(SaveQueueSqlTmp, SynType.Remove.ToString(), "S_A_BaseEnum", delID, item.Type
                                             , DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), JsonHelper.ToJson <DeleteRequestData>(new DeleteRequestData()
                {
                    id = delID
                }), string.Format(removeUrl, item.Type == "Phase" ? "Phase" : "specialty"));
                removeSb.AppendLine(queueSql);
            }

            if (removeSb.Length > 0)
            {
                this.SQLHelperInterface.ExecuteNonQuery(removeSb.ToString());
            }

            if (saveSb.Length > 0)
            {
                this.SQLHelperInterface.ExecuteNonQuery(saveSb.ToString());
            }
        }