public void 水泥高性能StadiumConfig() { StadiumConfig config = new StadiumConfig() { fZJRQ = new StadiumColumnInfo() { TableName = "[biz_norm_水泥试验委托单]", ColumnName = "col_norm_H25" }, fBGBH = new StadiumColumnInfo() { TableName = "[biz_norm_水泥试验报告(高性能)]", ColumnName = "col_norm_L5" }, fPH = new StadiumColumnInfo() { TableName = "[biz_norm_水泥试验委托单]", ColumnName = "col_norm_H9" }, fWTBH = new StadiumColumnInfo() { TableName = "[biz_norm_水泥试验委托单]", ColumnName = "col_norm_H5" }, fSJBH = null, fSJSize = null, fAdded = new StadiumColumnInfo() { TableName = "[biz_norm_水泥试验委托单]", ColumnName = "col_norm_C11" } }; config.DayList.Add(new StadiumDay() { Days = 3, IsParameterDays = false, PDays = null, ItemName = "水泥抗压3天", ItemID = "63", ValidInfo = new StadiumColumnInfo() { TableName = "[biz_norm_水泥试验报告(高性能)]", ColumnName = "col_norm_P30" } }); config.DayList.Add(new StadiumDay() { Days = 28, IsParameterDays = false, PDays = null, ItemName = "水泥抗压28天", ItemID = "64", ValidInfo = new StadiumColumnInfo() { TableName = "[biz_norm_水泥试验报告(高性能)]", ColumnName = "col_norm_P31" } }); String json = Newtonsoft.Json.JsonConvert.SerializeObject(config); Assert.AreEqual("", json); }
public void 混凝土1天StadiumConfig() { StadiumConfig config = new StadiumConfig() { fZJRQ = new StadiumColumnInfo() { TableName = "[biz_norm_混凝土试验任务委托单]", ColumnName = "col_norm_C21" }, fBGBH = new StadiumColumnInfo() { TableName = "[biz_norm_1d混凝土检查试件抗压强度试验报告]", ColumnName = "col_norm_R5" }, fPH = null, fWTBH = new StadiumColumnInfo() { TableName = "[biz_norm_混凝土试验任务委托单]", ColumnName = "col_norm_H5" }, fSJBH = new StadiumColumnInfo() { TableName = "[biz_norm_混凝土试验任务委托单]", ColumnName = "col_norm_C8" }, fSJSize = new StadiumColumnInfo() { TableName = "[biz_norm_混凝土试验任务委托单]", ColumnName = "col_norm_C11" }, fAdded = new StadiumColumnInfo() { TableName = "[biz_norm_混凝土试验任务委托单]", ColumnName = "col_norm_C9" } }; config.DayList.Add(new StadiumDay() { Days = 1, IsParameterDays = false, PDays = null, ItemName = "混凝土抗压1天", ItemID = "1", ValidInfo = null }); String json = Newtonsoft.Json.JsonConvert.SerializeObject(config); Assert.AreEqual("", json); }
private void Execute(object paremeter) { ThreadParameter p = paremeter as ThreadParameter; DataSet dataset = p.Data; String modelIndex = p.ModelIndex; if (dataset == null) { return; } try { DataTable stadiumInfo = GetStadiumInfoByModelIndex(modelIndex); // 检查是否是设置龄期的模板 if (stadiumInfo != null && stadiumInfo.Rows.Count > 0) { StadiumConfig config = Newtonsoft.Json.JsonConvert.DeserializeObject <StadiumConfig>(stadiumInfo.Rows[0]["StadiumConfig"].ToString()); if (config != null) { DataTable tb = dataset.Tables["[biz_norm_extent_" + modelIndex + "]"]; if (tb != null && tb.Rows.Count > 0) { String dataID = tb.Rows[0]["ID"].ToString(); //DataTable stadiumData = GetStadiumDataByDataID(dataID); ////检查是否该资料已经进入龄期提醒表,不考虑龄期中是否已经完成;如果已经存在,需要考虑更新是否完成; //if (stadiumData == null || stadiumData.Rows.Count == 0) //{ // SaveStadiumData(dataset, config, modelIndex);//保存龄期 //} //else //{ // //如果数据已经存在于龄期表,检查制件日期是否变更,并根据配置更新是否完成的字段 // UpdateStadiumData(dataset, config, modelIndex, stadiumData); //} } } } } catch (Exception ex) { logger.Error("龄期提醒:error" + ex.Message); } }
private void SaveStadiumData(DataSet dataset, StadiumConfig config, String modelIndex) { DataTable extTable = dataset.Tables["[biz_norm_extent_" + modelIndex + "]"]; String dataID = extTable.Rows[0]["ID"].ToString(); String modelCode = extTable.Rows[0]["SCPT"].ToString(); String fName = extTable.Rows[0]["DataName"].ToString(); String fPH = config.fPH == null ? "" : dataset.Tables[config.fPH.TableName].Rows[0][config.fPH.ColumnName].ToString().Replace("'", "''"); String fZJRQ = config.fZJRQ == null ? "" : dataset.Tables[config.fZJRQ.TableName].Rows[0][config.fZJRQ.ColumnName].ToString(); String fSJBH = config.fSJBH == null ? "" : dataset.Tables[config.fSJBH.TableName].Rows[0][config.fSJBH.ColumnName].ToString().Replace("'", "''"); String fSJSize = config.fSJSize == null ? "" : dataset.Tables[config.fSJSize.TableName].Rows[0][config.fSJSize.ColumnName].ToString(); String fAdded = config.fAdded == null ? "" : dataset.Tables[config.fAdded.TableName].Rows[0][config.fAdded.ColumnName].ToString(); String fBGBH = config.fBGBH == null ? "" : dataset.Tables[config.fBGBH.TableName].Rows[0][config.fBGBH.ColumnName].ToString(); String fWTBH = config.fWTBH == null ? "" : dataset.Tables[config.fWTBH.TableName].Rows[0][config.fWTBH.ColumnName].ToString(); if (String.IsNullOrEmpty(fZJRQ)) { //无制件日期则不保存 //logger.Error("无制件日期,无法保存龄期提醒数据: id=" + dataID + "; fName=" + fName + "; fBGBH=" + fBGBH); return; } DateTime zjrq; if (!DateTime.TryParse(fZJRQ, out zjrq)) { logger.Error("制件日期格式不对 " + fZJRQ); return; } foreach (var item in config.DayList) { Int32 days = item.Days; if (item.IsParameterDays) { String pDays = dataset.Tables[item.PDays.TableName].Rows[0][item.PDays.ColumnName].ToString().ToLower(); if (!int.TryParse(pDays.Replace("d", ""), out days)) { continue; } //混凝土三级配特殊处理 switch (days) { case 1: item.ItemID = "1"; item.ItemName = "混凝土抗压1天"; break; case 3: item.ItemID = "92"; item.ItemName = "混凝土抗压3天"; break; case 7: item.ItemID = "93"; item.ItemName = "混凝土抗压7天"; break; case 28: item.ItemID = "94"; item.ItemName = "混凝土抗压28天"; break; case 56: item.ItemID = "95"; item.ItemName = "混凝土抗压56天"; break; default: break; } } //if ((DateTime.Now - zjrq).Days > days) //{//提醒的时间已经过了 // logger.Error("提醒的时间已经过了 zjrq=" + zjrq + ", days=" + days); // continue; //} String insertSql = String.Format(@"INSERT INTO dbo.sys_biz_reminder_stadiumData ( DataID , Scts , ModelCode , ModelIndex , DateSpan , F_Name , F_ItemId , F_PH , F_ZJRQ , F_SJBH , F_SJSize , F_SYXM , F_BGBH , F_WTBH, F_Added ) VALUES ( '{0}' , '{1}' ,'{2}' ,'{3}' ,'{4}' ,'{5}' ,'{6}' ,'{7}' , '{8}' , '{9}' , '{10}' , '{11}' , '{12}' , '{13}','{14}' )", dataID, DateTime.Now.ToString(), modelCode, modelIndex, days, fName, item.ItemID, fPH, fZJRQ, fSJBH, fSJSize, item.ItemName, fBGBH, fWTBH, fAdded); //logger.Error("插入龄期提醒: " + insertSql); ExcuteCommand(insertSql); } }
/// <summary> /// 为西成线11标中心,删除219条资料的28d数据,并生成1条56d数据 /// </summary> public void SpStadiumData() { ModuleManager Manager = new ModuleManager(); TableDefineInfoManager TableManager = new TableDefineInfoManager(); ModelDataManager DataManager = new ModelDataManager(); String modelIndex = "05d0d71b-def3-42ee-a16a-79b34de97e9b"; DataTable dataTb = GetDataTable("select * from [biz_norm_extent_" + modelIndex + "] WHERE scpt LIKE '0001001700010001%' "); DataTable stadiumInfo = GetStadiumInfoByModelIndex(modelIndex); StadiumConfig config = Newtonsoft.Json.JsonConvert.DeserializeObject <StadiumConfig>(stadiumInfo.Rows[0]["StadiumConfig"].ToString()); if (dataTb != null) { foreach (DataRow dataRow in dataTb.Rows) { try { DataTable dt = GetDataTable("SELECT * FROM sys_biz_reminder_stadiumData WHERE DataID='" + dataRow["ID"].ToString() + "' AND DateSpan = 56"); if (dt.Rows.Count == 0) { List <IndexDescriptionPair> Sheets = Manager.InitModuleInfo(modelIndex); List <TableDefineInfo> TableSchemas = new List <TableDefineInfo>(); foreach (IndexDescriptionPair pair in Sheets) { TableDefineInfo Info = TableManager.GetTableDefineInfo(pair.Index, pair.DataTable); TableSchemas.Add(Info); } String extentTable = "biz_norm_extent_" + modelIndex; TableDefineInfo ExtentTableSchema = TableManager.GetTableDefineInfo("1", extentTable); DataSet dataset = DataManager.GetData(TableSchemas, ExtentTableSchema, dataRow["ID"].ToString(), dataRow["scpt"].ToString()); DataTable extTable = dataset.Tables["[biz_norm_extent_" + modelIndex + "]"]; String dataID = extTable.Rows[0]["ID"].ToString(); String modelCode = extTable.Rows[0]["SCPT"].ToString(); String fName = extTable.Rows[0]["DataName"].ToString(); String fPH = config.fPH == null ? "" : dataset.Tables[config.fPH.TableName].Rows[0][config.fPH.ColumnName].ToString().Replace("'", "''"); String fZJRQ = config.fZJRQ == null ? "" : dataset.Tables[config.fZJRQ.TableName].Rows[0][config.fZJRQ.ColumnName].ToString(); String fSJBH = config.fSJBH == null ? "" : dataset.Tables[config.fSJBH.TableName].Rows[0][config.fSJBH.ColumnName].ToString().Replace("'", "''"); String fSJSize = config.fSJSize == null ? "" : dataset.Tables[config.fSJSize.TableName].Rows[0][config.fSJSize.ColumnName].ToString(); String fAdded = config.fAdded == null ? "" : dataset.Tables[config.fAdded.TableName].Rows[0][config.fAdded.ColumnName].ToString(); String fBGBH = config.fBGBH == null ? "" : dataset.Tables[config.fBGBH.TableName].Rows[0][config.fBGBH.ColumnName].ToString(); String fWTBH = config.fWTBH == null ? "" : dataset.Tables[config.fWTBH.TableName].Rows[0][config.fWTBH.ColumnName].ToString(); String insertSql = String.Format(@"INSERT INTO dbo.sys_biz_reminder_stadiumData ( DataID , Scts , ModelCode , ModelIndex , DateSpan , F_Name , F_ItemId , F_PH , F_ZJRQ , F_SJBH , F_SJSize , F_SYXM , F_BGBH , F_WTBH, F_Added ) VALUES ( '{0}' , '{1}' ,'{2}' ,'{3}' ,'{4}' ,'{5}' ,'{6}' ,'{7}' , '{8}' , '{9}' , '{10}' , '{11}' , '{12}' , '{13}','{14}' )", dataID, DateTime.Now.ToString(), modelCode, modelIndex, 56, fName, "95", fPH, fZJRQ, fSJBH, fSJSize, "混凝土抗压56天", fBGBH, fWTBH, fAdded); ExcuteCommand(insertSql); } } catch (Exception ex) { logger.Error("SP Old Data Error: " + ex.Message + "; ModelIndex=" + modelIndex + "; DataID=" + dataRow["ID"].ToString()); } } } }
private void UpdateStadiumData(DataSet dataset, StadiumConfig config, String modelIndex, DataTable stadiumData) { DataTable extTable = dataset.Tables["[biz_norm_extent_" + modelIndex + "]"]; String dataID = extTable.Rows[0]["ID"].ToString(); String modelCode = extTable.Rows[0]["SCPT"].ToString(); String fName = extTable.Rows[0]["DataName"].ToString(); String fPH = config.fPH == null ? "" : dataset.Tables[config.fPH.TableName].Rows[0][config.fPH.ColumnName].ToString().Replace("'", "''"); String fZJRQ = config.fZJRQ == null ? "" : dataset.Tables[config.fZJRQ.TableName].Rows[0][config.fZJRQ.ColumnName].ToString(); String fSJBH = config.fSJBH == null ? "" : dataset.Tables[config.fSJBH.TableName].Rows[0][config.fSJBH.ColumnName].ToString().Replace("'", "''"); String fSJSize = config.fSJSize == null ? "" : dataset.Tables[config.fSJSize.TableName].Rows[0][config.fSJSize.ColumnName].ToString(); String fAdded = config.fAdded == null ? "" : dataset.Tables[config.fAdded.TableName].Rows[0][config.fAdded.ColumnName].ToString(); String fBGBH = config.fBGBH == null ? "" : dataset.Tables[config.fBGBH.TableName].Rows[0][config.fBGBH.ColumnName].ToString(); String fWTBH = config.fWTBH == null ? "" : dataset.Tables[config.fWTBH.TableName].Rows[0][config.fWTBH.ColumnName].ToString(); DateTime zjrq; if (!DateTime.TryParse(fZJRQ, out zjrq)) { //制件日期格式不对 logger.Error("制件日期格式不对 " + fZJRQ); return; } foreach (DataRow row in stadiumData.Rows) { if (row["F_IsDone"] != DBNull.Value && row["F_IsDone"].ToString() == "1") { //取龄期提醒的数据,可能是多条,过滤已经完成的。 logger.Error("取龄期提醒的数据,可能是多条,过滤已经完成的 F_IsDone=" + row["F_IsDone"].ToString()); continue; } foreach (var item in config.DayList) { Int32 days = item.Days; if (item.IsParameterDays) { String pDays = dataset.Tables[item.PDays.TableName].Rows[0][item.PDays.ColumnName].ToString().ToLower(); if (!int.TryParse(pDays.Replace("d", ""), out days)) { continue; } //混凝土三级配特殊处理 switch (days) { case 1: item.ItemID = "1"; item.ItemName = "混凝土抗压1天"; break; case 3: item.ItemID = "92"; item.ItemName = "混凝土抗压3天"; break; case 7: item.ItemID = "93"; item.ItemName = "混凝土抗压7天"; break; case 28: item.ItemID = "94"; item.ItemName = "混凝土抗压28天"; break; case 56: item.ItemID = "95"; item.ItemName = "混凝土抗压56天"; break; default: break; } } String updateSql = ""; if (item.IsParameterDays && config.DayList.Count == 1) { //三级配 DataTable dt2 = GetDataTable(String.Format("Select ID from dbo.sys_biz_reminder_stadiumData WHERE DataID='{0}' ", dataID)); if (dt2 != null && dt2.Rows.Count > 0) { updateSql = String.Format(@"UPDATE dbo.sys_biz_reminder_stadiumData SET F_BGBH='{0}'{1},F_Name='{2}',F_PH='{3}',F_SJBH='{4}',F_ItemId='{11}', F_SYXM='{12}', F_SJSize='{5}',F_WTBH='{6}',F_ZJRQ='{7}',Scts=GETDATE(),DateSpan={9}, F_Added='{10}' WHERE DataID='{8}'", fBGBH, "", fName, fPH, fSJBH, fSJSize, fWTBH, fZJRQ, dataID, days, fAdded, item.ItemID, item.ItemName); ExcuteCommand(updateSql); } else { SaveStadiumData(dataset, config, modelIndex); } } else { DataTable dt = GetDataTable(String.Format("Select ID from dbo.sys_biz_reminder_stadiumData WHERE DataID='{0}' AND DateSpan='{1}' ", dataID, days)); if ((dt == null || dt.Rows.Count == 0)) { SaveStadiumData(dataset, config, modelIndex); } else { if (item.ValidInfo == null) { updateSql = String.Format(@"UPDATE dbo.sys_biz_reminder_stadiumData SET F_BGBH='{0}'{1},F_Name='{2}',F_PH='{3}',F_SJBH='{4}',F_ItemId='{11}', F_SYXM='{12}', F_SJSize='{5}',F_WTBH='{6}',F_ZJRQ='{7}',Scts=GETDATE(), F_Added='{10}' WHERE DataID='{8}' AND DateSpan='{9}'", fBGBH, "", fName, fPH, fSJBH, fSJSize, fWTBH, fZJRQ, dataID, days, fAdded, item.ItemID, item.ItemName); } else { String isDone = "null"; String validValue = dataset.Tables[item.ValidInfo.TableName].Rows[0][item.ValidInfo.ColumnName] == DBNull.Value ? "" : dataset.Tables[item.ValidInfo.TableName].Rows[0][item.ValidInfo.ColumnName].ToString().Trim(); if (validValue != "" && validValue != "/") { isDone = "1"; } updateSql = String.Format(@"UPDATE dbo.sys_biz_reminder_stadiumData SET F_BGBH='{0}',F_IsDone={1},F_Name='{2}',F_PH='{3}',F_SJBH='{4}', F_ItemId='{11}', F_SYXM='{12}', F_SJSize='{5}',F_WTBH='{6}',F_ZJRQ='{7}',Scts=GETDATE(), F_Added='{10}' WHERE DataID='{8}' AND DateSpan='{9}'", fBGBH, isDone, fName, fPH, fSJBH, fSJSize, fWTBH, fZJRQ, dataID, days, fAdded, item.ItemID, item.ItemName); } //logger.Error("更新龄期提醒: " + updateSql); ExcuteCommand(updateSql); } } } } }