Пример #1
0
        /// <summary>
        /// 向B库中保存A库的原油信息
        /// </summary>
        /// <returns></returns>
        public int SaveInfoB(ref OilInfoBEntity oilInfoB)
        {
            ReadDataFromUI();

            OilBll.InfoToInfoB(this._oilInfo, oilInfoB);

            oilInfoB.ID = OilBll.saveInfo(oilInfoB);

            if (oilInfoB.ID == -1)
            {
                OilInfoBAccess        access       = new OilInfoBAccess();
                string                sqlWhere     = "crudeIndex='" + oilInfoB.crudeIndex + "'";
                List <OilInfoBEntity> oilInfoBList = access.Get(sqlWhere).ToList();
                oilInfoB.ID = oilInfoBList[0].ID;
                access.Update(oilInfoB, oilInfoB.ID.ToString());
                OilDataBAccess oilDataAccess = new OilDataBAccess();
                oilDataAccess.Delete("labData='' and calData='' and oilInfoID=" + oilInfoB.ID); //删除空的数据
                return(oilInfoB.ID);
            }
            return(oilInfoB.ID);
        }
Пример #2
0
        /// <summary>
        /// 以Lib的形式导出B库
        /// </summary>
        /// <param name="fileName"></param>
        private void outLib(string fileName)
        {
            this.gridList.EndEdit();
            string strWhere  = "";  //获取选中的原油ID,用于在oilInfoB表中获取数据
            string strWhere2 = "";  //获取选中的原油ID,用于在oilDataB表中获取数据

            //string strWhereDataSearch = ""; //获取选中的原油ID,用于在oilDataSearch表中获取数据
            foreach (DataGridViewRow row in this.gridList.Rows)
            {
                if (bool.Parse(row.Cells["select"].Value.ToString()) == true)
                {
                    strWhere  += " or ID=" + int.Parse(row.Cells["ID"].Value.ToString());
                    strWhere2 += " or oilInfoID=" + int.Parse(row.Cells["ID"].Value.ToString());
                    //strWhereDataSearch += " or oilInfoID=" + int.Parse(row.Cells["ID"].Value.ToString());
                }
            }
            strWhere  = strWhere.Trim().Substring(2);
            strWhere2 = strWhere2.Trim().Substring(2);
            // strWhereDataSearch = strWhere2.Trim().Substring(2);

            #region "要导入的oilInfoB数据"
            OilInfoOutAccess  oilInfoOutAccess = new OilInfoOutAccess("OilInfoB"); //导出数据连接
            List <OilInfoOut> oilInfoOuts      = oilInfoOutAccess.Get(strWhere);   //oilInfoB表中获取数据
            #endregion

            #region "B库未切割的数据"
            OilDataBAccess        acess = new OilDataBAccess();
            List <OilDataBEntity> OilDataBEntityAlls = acess.Get(strWhere2);          //在OilDataB表中获取B库要的性质表,GC标准表数据
            List <OilDataBEntity> OilDataBEntityBs   = OilDataBEntityAlls.Where(c => c.OilTableRow.oilTableTypeID == (int)EnumTableType.Whole || c.OilTableRow.oilTableTypeID == (int)EnumTableType.GCLevel).ToList();


            List <OilDataOut> oilDataAlls = new List <OilDataOut>();
            foreach (OilDataBEntity OilDataBEntity in OilDataBEntityBs)  //把OilDataBEntity数据转为OilDataBOut数据
            {
                OilDataOut oilDataOut = new OilDataOut();
                oilDataOut.ID            = OilDataBEntity.ID;
                oilDataOut.oilInfoID     = OilDataBEntity.oilInfoID;
                oilDataOut.oilTableColID = OilDataBEntity.oilTableColID;
                oilDataOut.oilTableRowID = OilDataBEntity.oilTableRowID;
                oilDataOut.labData       = "";
                oilDataOut.calData       = OilDataBEntity.calData;
                oilDataAlls.Add(oilDataOut);
            }
            #endregion

            #region "B库切割后(查询库)的数据"
            OilDataSearchAccess        oilDataSearchAccess     = new OilDataSearchAccess();
            List <OilDataSearchEntity> oilDataSearchEntityList = oilDataSearchAccess.Get(strWhere2); //在oilDataSearch表中获取C库要数据
            List <OilDataSearchOut>    oilDataSearchAlls       = new List <OilDataSearchOut>();
            foreach (OilDataSearchEntity OilDataSearchEntity in oilDataSearchEntityList)             //把OilDataSearchEntity数据转为OilDataSearchOut数据
            {
                OilDataSearchOut oilDataSearchOut = new OilDataSearchOut();
                oilDataSearchOut.ID            = OilDataSearchEntity.ID;
                oilDataSearchOut.oilInfoID     = OilDataSearchEntity.oilInfoID;
                oilDataSearchOut.oilTableColID = OilDataSearchEntity.oilTableColID;
                oilDataSearchOut.oilTableRowID = OilDataSearchEntity.oilTableRowID;
                oilDataSearchOut.labData       = "";
                oilDataSearchOut.calData       = OilDataSearchEntity.calData;
                oilDataSearchAlls.Add(oilDataSearchOut);
            }
            #endregion

            #region "新建OutLib"
            OutLib outLib = new OutLib();
            OilTableRowOutAccess oilTableRowAccess = new OilTableRowOutAccess();
            OilTableColOutAccess oilTableColAccess = new OilTableColOutAccess();
            CurveTypeAccess      curveTypeAccess   = new CurveTypeAccess();   //添加曲线类别
            outLib.oilTableRows = oilTableRowAccess.Get("1=1");               //获取oilTableRow表中所有行
            outLib.oilTableCols = oilTableColAccess.Get("1=1");               //获取oilTableCol表中所有列
            outLib.curveTypes   = curveTypeAccess.Get("1=1");                 //添加曲线类别
            #endregion

            #region "根据选择原油编号来选择原油曲线类型"
            CurveAccess        curveAccess = new CurveAccess();
            CurveDataAccess    dataAccess  = new CurveDataAccess();
            List <CurveEntity> curvesAll   = new List <CurveEntity>();
            curvesAll = curveAccess.Get(strWhere2);            //获取选中原油的所有曲线
            #endregion

            #region "根据选择原油编号的选择原油曲线类型来选择曲线对应的数据"
            string strWherecurveID = "";//根据选中的原有的曲线ID来选择对应的曲线数据
            foreach (var curve in curvesAll)
            {
                strWherecurveID += " or curveID=" + curve.ID;
            }
            List <CurveDataEntity> curveDatasAll = new List <CurveDataEntity>();
            if (strWherecurveID.Length > 2)
            {
                strWherecurveID = strWherecurveID.Trim().Substring(2);
                curveDatasAll   = dataAccess.Get(strWherecurveID); //获取选中原油的所有曲线的所有曲线数据
            }
            #endregion


            foreach (OilInfoOut oilInfoOut in oilInfoOuts)                                                          //循环查看导出了多少条数据
            {
                oilInfoOut.oilDatas          = oilDataAlls.Where(c => c.oilInfoID == oilInfoOut.ID).ToList();       //添加oilDatas数据
                oilInfoOut.oilDataSearchOuts = oilDataSearchAlls.Where(c => c.oilInfoID == oilInfoOut.ID).ToList(); //添加oilDataSearchs数据
                oilInfoOut.curves            = curvesAll.Where(c => c.oilInfoID == oilInfoOut.ID).ToList();         //添加一条原油数据的曲线

                foreach (CurveEntity curve in oilInfoOut.curves)                                                    //添加一条原油数据的曲线的曲线点数据
                {
                    curve.curveDatas = new List <CurveDataEntity>();
                    curve.curveDatas = curveDatasAll.Where(c => c.curveID == curve.ID).ToList();
                }
                outLib.oilInfoOuts.Add(oilInfoOut);                 //构建一条一条的原油信息,形成原油列表
            }
            Serialize.Write <OutLib>(outLib, fileName);
        }