private void button1_Click(object sender, EventArgs e) { List <OilSimilarSearchEntity> list = new List <OilSimilarSearchEntity>(); /*添加第一个物性选项*/ OilSimilarSearchEntity item = new OilSimilarSearchEntity(); item.ItemName = textBox2.Text.Trim(); item.Fvalue = float.Parse(textBox3.Text.Trim()); list.Add(item); //添加第二个物性选项 item = new OilSimilarSearchEntity(); item.ItemName = textBox5.Text.Trim(); item.Fvalue = float.Parse(textBox6.Text.Trim()); list.Add(item); oilName _oilName = new oilName(); string crudeIndex = _oilName.GetOilName(list);//原油名称 if (crudeIndex == "") { //this.dataGridView1.ClearSelection(); MessageBox.Show("未查询到对应的原油", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } OilInfoBEntity _oil = new OilInfoBEntity(); //新建一条原油 OilApplyBll oilApplyBll = new OilApplyBll(); //_oil = oilApplyBll.GetCutResult(crudeIndex); //_oil = oilApplyBll.GetCutResult(crudeIndex); this.dataGridView1.DataSource = _oil.dataTable; //List<OilDataTableBEntity> OilDataTableBEntityList = _oil.OilDataTableBEntityList ;//返回类型 }
/// <summary> /// 获取C库的校正值 /// </summary> /// <param name="rangeSimilarEntity"></param> /// <param name="oilInfoID">oilInfoID</param> /// <param name="value">查询的物性是否为原油信息表(true代表是)</param> /// <returns></returns> private static string getCalValueFromOilDataSearch(OilSimilarSearchEntity rangeSimilarEntity, int oilInfoID) { string result = string.Empty; OilDataSearchAccess oilDataSearchAccess = new OilDataSearchAccess(); string sqlWhere = " oilInfoId ='" + oilInfoID.ToString() + "'" + "and oilTableRowID='" + rangeSimilarEntity.OilTableRowID.ToString() + "'" + " and oilTableColId='" + rangeSimilarEntity.OilTableColID + "'" + " and calData!=''"; List <OilDataSearchEntity> oilDataSearchEntityList = oilDataSearchAccess.Get(sqlWhere);//获取对应物性的校正值 if (oilDataSearchEntityList.Count != 0) { result = oilDataSearchEntityList.FirstOrDefault().calData; } return(result); }
/// <summary> /// 相似查找的确定按钮 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public override void btnSimilarSubmit_Click(object sender, EventArgs e) { if (this.similarListView.Items.Count <= 0) { return; } try { this.StartWaiting(); this._similarSearchList = new List <OilSimilarSearchEntity>(); #region "相似查找实体集合" OilDataSearchAccess oilDataSearchAccess = new OilDataSearchAccess(); foreach (ListViewItem item in this.similarListView.Items) { OilSimilarSearchEntity similarSearch = new OilSimilarSearchEntity(); similarSearch.ItemCode = item.Tag.ToString(); similarSearch.LeftParenthesis = item.SubItems[0].Tag.ToString(); similarSearch.OilTableColID = Convert.ToInt32(item.SubItems[1].Tag.ToString()); similarSearch.OilTableRowID = Convert.ToInt32(item.SubItems[3].Tag.ToString()); similarSearch.Fvalue = Convert.ToSingle(item.SubItems[5].Tag.ToString()); similarSearch.Weight = Convert.ToSingle(item.SubItems[7].Tag.ToString()); similarSearch.RightParenthesis = item.SubItems[8].Tag.ToString(); similarSearch.FracitonName = item.SubItems[1].Text; similarSearch.ItemName = item.SubItems[3].Text; string sqlWhere = "oilTableRowID='" + similarSearch.OilTableRowID.ToString() + "'" + " and oilTableColId='" + similarSearch.OilTableColID + "'" + " and calData!=''"; List <OilDataSearchEntity> oilDataSearchEntityList = oilDataSearchAccess.Get(sqlWhere);//获取对应物性的校正值 float?MaxValue = float.MinValue, MinValue = float.MaxValue; if (oilDataSearchEntityList.Count > 0) { MaxValue = oilDataSearchEntityList.Max(o => o.fCal); MinValue = oilDataSearchEntityList.Min(o => o.fCal); MaxValue = MaxValue > similarSearch.Fvalue ? MaxValue : similarSearch.Fvalue; //如果最大值比基础值要小,则最大值取基础值 MinValue = MinValue < similarSearch.Fvalue ? MinValue : similarSearch.Fvalue; //如果最小值比基础值要大,则最小值取基础值 } if (!MaxValue.Equals(float.MinValue) && !MinValue.Equals(float.MaxValue) && MaxValue != null && MinValue != null) { similarSearch.Diff = MaxValue.Value - MinValue.Value; } else { similarSearch.Diff = 0; } if (this.similarListView.Items.Count == 1) { similarSearch.IsAnd = true; } else { similarSearch.IsAnd = item.SubItems[9].Tag.ToString() == "And" ? true : false; } this._similarSearchList.Add(similarSearch); } #endregion #region "当前显示原油的集合" List <CrudeIndexIDAEntity> currentCrudeIndexIDList = new List <CrudeIndexIDAEntity>(); foreach (DataGridViewRow row in this.gridList.Rows) { CrudeIndexIDAEntity tempCrudeIndexIDAEntity = new CrudeIndexIDAEntity(); tempCrudeIndexIDAEntity.ID = Convert.ToInt32(row.Cells["ID"].Value.ToString()); tempCrudeIndexIDAEntity.crudeIndex = row.Cells["原油编号"].Value.ToString(); tempCrudeIndexIDAEntity.crudeName = row.Cells["原油名称"].Value.ToString(); currentCrudeIndexIDList.Add(tempCrudeIndexIDAEntity); } #endregion OilBll oilBll = new OilBll(); IDictionary <string, double> CrudeIndexSumDic = oilBll.GetOilSimInfoCrudeIndex(this._similarSearchList); //从C库获取满足条件的原油编号 GetSimSearchResult(CrudeIndexSumDic, currentCrudeIndexIDList); //绑定控件 } catch (Exception ex) { Log.Error("原油B库相似查找错误:" + ex.ToString()); return; } finally { this.StopWaiting(); } }
/// <summary> /// 接口方式三 /// </summary> /// <param name="oilPropertyAPIEntity">定制的获取性质</param> /// <param name="cutMotheds">定制切割方案</param> /// <returns>原油数据</returns> public OilInfoBEntity GetCutResultAPI(OilPropertyAPIEntity oilPropertyAPIEntity, List <CutMothedAPIEntity> cutMotheds) { List <CutMothedEntity> cutMothedList = new List <CutMothedEntity>(); for (int index = 0; index < cutMotheds.Count; index++) { CutMothedEntity cutMothed = new CutMothedEntity(); cutMothed.ICP = cutMotheds[index].ICP; cutMothed.ECP = cutMotheds[index].ECP; cutMothed.Name = cutMotheds[index].Name.GetDescription(); cutMothedList.Add(cutMothed); } OilDataSearchColAccess oilDataColAccess = new OilDataSearchColAccess(); List <OilDataSearchColEntity> OilDataCols = oilDataColAccess.Get("1=1"); OilDataSearchRowAccess oilDataRowAccess = new OilDataSearchRowAccess(); List <OilDataSearchRowEntity> OilDataRows = oilDataRowAccess.Get("1=1"); IList <OilSimilarSearchEntity> oilSimilarSearchList = new List <OilSimilarSearchEntity>(); OilDataSearchColEntity wholeCol = OilDataCols.Where(o => o.OilTableName.Contains("原油性质")).FirstOrDefault(); if (wholeCol != null) { #region "原油性质" OilDataSearchRowEntity D20SearchRow = OilDataRows.Where(o => o.OilTableRow.itemCode == "D20" && o.OilDataColID == wholeCol.ID).FirstOrDefault(); OilDataSearchRowEntity WAXSearchRow = OilDataRows.Where(o => o.OilTableRow.itemCode == "WAX" && o.OilDataColID == wholeCol.ID).FirstOrDefault(); OilDataSearchRowEntity SULSearchRow = OilDataRows.Where(o => o.OilTableRow.itemCode == "SUL" && o.OilDataColID == wholeCol.ID).FirstOrDefault(); OilDataSearchRowEntity N2SearchRow = OilDataRows.Where(o => o.OilTableRow.itemCode == "N2" && o.OilDataColID == wholeCol.ID).FirstOrDefault(); OilDataSearchRowEntity CCRSearchRow = OilDataRows.Where(o => o.OilTableRow.itemCode == "CCR" && o.OilDataColID == wholeCol.ID).FirstOrDefault(); if (D20SearchRow != null && !oilPropertyAPIEntity.D20.Equals(float.NaN)) { OilSimilarSearchEntity D20OilSimilarSearch = new OilSimilarSearchEntity(); oilSimilarSearchList.Add(D20OilSimilarSearch); D20OilSimilarSearch.Fvalue = oilPropertyAPIEntity.D20; D20OilSimilarSearch.Weight = 10; D20OilSimilarSearch.ItemCode = "D20"; D20OilSimilarSearch.OilTableColID = wholeCol.OilTableColID; D20OilSimilarSearch.OilTableRowID = D20SearchRow.OilTableRowID; } if (WAXSearchRow != null && !oilPropertyAPIEntity.WAX.Equals(float.NaN)) { OilSimilarSearchEntity WAXOilSimilarSearch = new OilSimilarSearchEntity(); oilSimilarSearchList.Add(WAXOilSimilarSearch); WAXOilSimilarSearch.Fvalue = oilPropertyAPIEntity.WAX; WAXOilSimilarSearch.Weight = 1; WAXOilSimilarSearch.ItemCode = "WAX"; WAXOilSimilarSearch.OilTableColID = wholeCol.OilTableColID; WAXOilSimilarSearch.OilTableRowID = WAXSearchRow.OilTableRowID; } if (SULSearchRow != null && !oilPropertyAPIEntity.SUL.Equals(float.NaN)) { OilSimilarSearchEntity SULOilSimilarSearch = new OilSimilarSearchEntity(); oilSimilarSearchList.Add(SULOilSimilarSearch); SULOilSimilarSearch.Fvalue = oilPropertyAPIEntity.SUL; SULOilSimilarSearch.Weight = 1; SULOilSimilarSearch.ItemCode = "SUL"; SULOilSimilarSearch.OilTableColID = wholeCol.OilTableColID; SULOilSimilarSearch.OilTableRowID = SULSearchRow.OilTableRowID; } if (N2SearchRow != null && !oilPropertyAPIEntity.N2.Equals(float.NaN)) { OilSimilarSearchEntity N2OilSimilarSearch = new OilSimilarSearchEntity(); oilSimilarSearchList.Add(N2OilSimilarSearch); N2OilSimilarSearch.Fvalue = oilPropertyAPIEntity.N2; N2OilSimilarSearch.Weight = 1; N2OilSimilarSearch.ItemCode = "N2"; N2OilSimilarSearch.OilTableColID = wholeCol.OilTableColID; N2OilSimilarSearch.OilTableRowID = N2SearchRow.OilTableRowID; } if (CCRSearchRow != null && !oilPropertyAPIEntity.CCR.Equals(float.NaN)) { OilSimilarSearchEntity CCROilSimilarSearch = new OilSimilarSearchEntity(); oilSimilarSearchList.Add(CCROilSimilarSearch); CCROilSimilarSearch.Fvalue = oilPropertyAPIEntity.CCR; CCROilSimilarSearch.Weight = 1; CCROilSimilarSearch.ItemCode = "CCR"; CCROilSimilarSearch.OilTableColID = wholeCol.OilTableColID; CCROilSimilarSearch.OilTableRowID = CCRSearchRow.OilTableRowID; } #endregion } OilDataSearchColEntity Col15_140 = OilDataCols.Where(o => o.ICP == 15 && o.ECP == 140).FirstOrDefault(); OilDataSearchColEntity Col15_180 = OilDataCols.Where(o => o.ICP == 15 && o.ECP == 180).FirstOrDefault(); OilDataSearchColEntity Col140_240 = OilDataCols.Where(o => o.ICP == 140 && o.ECP == 240).FirstOrDefault(); OilDataSearchColEntity Col240_350 = OilDataCols.Where(o => o.ICP == 240 && o.ECP == 350).FirstOrDefault(); #region "TWY" if (Col15_140 != null) { OilDataSearchRowEntity DSearchRow15_140 = OilDataRows.Where(o => o.OilTableRow.itemCode == "TWY" && o.OilDataColID == Col15_140.ID).FirstOrDefault(); if (DSearchRow15_140 != null && !oilPropertyAPIEntity.TWY140.Equals(float.NaN)) { OilSimilarSearchEntity TWY15_140OilSimilarSearch = new OilSimilarSearchEntity(); oilSimilarSearchList.Add(TWY15_140OilSimilarSearch); TWY15_140OilSimilarSearch.Fvalue = oilPropertyAPIEntity.TWY140; TWY15_140OilSimilarSearch.Weight = 1; TWY15_140OilSimilarSearch.ItemCode = "TWY15_140"; TWY15_140OilSimilarSearch.OilTableColID = Col15_140.OilTableColID; TWY15_140OilSimilarSearch.OilTableRowID = DSearchRow15_140.OilTableRowID; } } if (Col15_180 != null) { OilDataSearchRowEntity DSearchRow15_180 = OilDataRows.Where(o => o.OilTableRow.itemCode == "TWY" && o.OilDataColID == Col15_180.ID).FirstOrDefault(); if (DSearchRow15_180 != null && !oilPropertyAPIEntity.TWY180.Equals(float.NaN)) { OilSimilarSearchEntity TWY15_180OilSimilarSearch = new OilSimilarSearchEntity(); oilSimilarSearchList.Add(TWY15_180OilSimilarSearch); TWY15_180OilSimilarSearch.Fvalue = oilPropertyAPIEntity.TWY180; TWY15_180OilSimilarSearch.Weight = 1; TWY15_180OilSimilarSearch.ItemCode = "TWY15_180"; TWY15_180OilSimilarSearch.OilTableColID = Col15_180.OilTableColID; TWY15_180OilSimilarSearch.OilTableRowID = DSearchRow15_180.OilTableRowID; } } if (Col140_240 != null) { OilDataSearchRowEntity DSearchRow140_240 = OilDataRows.Where(o => o.OilTableRow.itemCode == "TWY" && o.OilDataColID == Col140_240.ID).FirstOrDefault(); if (DSearchRow140_240 != null && !oilPropertyAPIEntity.TWY240.Equals(float.NaN)) { OilSimilarSearchEntity TWY140_240OilSimilarSearch = new OilSimilarSearchEntity(); oilSimilarSearchList.Add(TWY140_240OilSimilarSearch); TWY140_240OilSimilarSearch.Fvalue = oilPropertyAPIEntity.TWY240; TWY140_240OilSimilarSearch.Weight = 1; TWY140_240OilSimilarSearch.ItemCode = "TWY140_240"; TWY140_240OilSimilarSearch.OilTableColID = Col140_240.OilTableColID; TWY140_240OilSimilarSearch.OilTableRowID = DSearchRow140_240.OilTableRowID; } } if (Col240_350 != null) { OilDataSearchRowEntity DSearchRow240_350 = OilDataRows.Where(o => o.OilTableRow.itemCode == "TWY" && o.OilDataColID == Col240_350.ID).FirstOrDefault(); if (DSearchRow240_350 != null && !oilPropertyAPIEntity.TWY350.Equals(float.NaN)) { OilSimilarSearchEntity TWY240_350OilSimilarSearch = new OilSimilarSearchEntity(); oilSimilarSearchList.Add(TWY240_350OilSimilarSearch); TWY240_350OilSimilarSearch.Fvalue = oilPropertyAPIEntity.TWY350; TWY240_350OilSimilarSearch.Weight = 1; TWY240_350OilSimilarSearch.ItemCode = "TWY240_350"; TWY240_350OilSimilarSearch.OilTableColID = Col240_350.OilTableColID; TWY240_350OilSimilarSearch.OilTableRowID = DSearchRow240_350.OilTableRowID; } } #endregion OilApplyBll oilApplyBll = new OilApplyBll(); OilInfoBEntity oilB = oilApplyBll.GetCutResult(oilSimilarSearchList, cutMothedList); List <OilDataTableBAPIEntity> OilDataTableBAPIEntityList = new List <OilDataTableBAPIEntity>(); if (oilB != null) { if (oilB.CutDataEntityList != null) { #region "数据格式转换" foreach (CutDataEntity cutData in oilB.CutDataEntityList) { string strCal = cutData.CutData != null?cutData.CutData.ToString() : string.Empty; float fData = 0; if (strCal != string.Empty && float.TryParse(strCal, out fData)) { OilDataTableBAPIEntity oilDataTable = new OilDataTableBAPIEntity(); OilDataTableBAPIEntityList.Add(oilDataTable); oilDataTable.CalData = fData; oilDataTable.ItemCode = cutData.YItemCode; #region "CutTableName" CutTableName cutName = CutTableName.ChaiYou; string strName = cutData.CutName; if (strName == CutTableName.ChaiYou.GetDescription()) { cutName = CutTableName.ChaiYou; } else if (strName == CutTableName.LaYou.GetDescription()) { cutName = CutTableName.LaYou; } else if (strName == CutTableName.MeiYou.GetDescription()) { cutName = CutTableName.MeiYou; } else if (strName == CutTableName.ShiNaoYou.GetDescription()) { cutName = CutTableName.ShiNaoYou; } else if (strName == CutTableName.YuanYouXingZhi.GetDescription()) { cutName = CutTableName.YuanYouXingZhi; } else if (strName == CutTableName.ZhaYou.GetDescription()) { cutName = CutTableName.ZhaYou; } #endregion oilDataTable.cutTableName = cutName; } } #endregion } oilB.OilDataTableBAPIEntityList = OilDataTableBAPIEntityList; } return(oilB); }