566 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			566 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			C#
		
	
	
	
| 
								 | 
							
								using BLL;
							 | 
						|||
| 
								 | 
							
								using System;
							 | 
						|||
| 
								 | 
							
								using System.Collections.Generic;
							 | 
						|||
| 
								 | 
							
								using System.Data;
							 | 
						|||
| 
								 | 
							
								using System.Data.OleDb;
							 | 
						|||
| 
								 | 
							
								using System.IO;
							 | 
						|||
| 
								 | 
							
								using System.Linq;
							 | 
						|||
| 
								 | 
							
								using System.Web;
							 | 
						|||
| 
								 | 
							
								using System.Web.UI;
							 | 
						|||
| 
								 | 
							
								using System.Web.UI.WebControls;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								namespace FineUIPro.Web.CQMS.Comprehensive
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    public partial class InspectionMachineDataIn : PageBase
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        #region 定义变量
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 上传预设的虚拟路径
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        private string initPath = Const.ExcelUrl;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 错误集合
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        public static List<Model.ErrorInfo> errorInfos = new List<Model.ErrorInfo>();
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 加载
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 加载页面
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sender"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="e"></param>
							 | 
						|||
| 
								 | 
							
								        protected void Page_Load(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (!IsPostBack)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                this.hdCheckResult.Text = string.Empty;
							 | 
						|||
| 
								 | 
							
								                this.hdFileName.Text = string.Empty;
							 | 
						|||
| 
								 | 
							
								                if (errorInfos != null)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    errorInfos.Clear();
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 审核
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 审核
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sender"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="e"></param>
							 | 
						|||
| 
								 | 
							
								        protected void btnAudit_Click(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            try
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                if (this.fuAttachUrl.HasFile == false)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    ShowNotify("请您选择Excel文件!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                    return;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                string IsXls = Path.GetExtension(this.fuAttachUrl.FileName).ToString().Trim().ToLower();
							 | 
						|||
| 
								 | 
							
								                if (IsXls != ".xls")
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    ShowNotify("只可以选择Excel文件!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                    return;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                if (errorInfos != null)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    errorInfos.Clear();
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                string rootPath = Server.MapPath("~/");
							 | 
						|||
| 
								 | 
							
								                string initFullPath = rootPath + initPath;
							 | 
						|||
| 
								 | 
							
								                if (!Directory.Exists(initFullPath))
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    Directory.CreateDirectory(initFullPath);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                this.hdFileName.Text = BLL.Funs.GetNewFileName() + IsXls;
							 | 
						|||
| 
								 | 
							
								                string filePath = initFullPath + this.hdFileName.Text;
							 | 
						|||
| 
								 | 
							
								                this.fuAttachUrl.PostedFile.SaveAs(filePath);
							 | 
						|||
| 
								 | 
							
								                ImportXlsToData(rootPath + initPath + this.hdFileName.Text);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            catch (Exception ex)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                ShowNotify("'" + ex.Message + "'", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 读Excel提取数据
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 从Excel提取数据--》Dataset
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="filename">Excel文件路径名</param>
							 | 
						|||
| 
								 | 
							
								        private void ImportXlsToData(string fileName)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            //支持.xls和.xlsx,即包括office2010等版本的   HDR=Yes代表第一行是标题,不是数据;
							 | 
						|||
| 
								 | 
							
								            string cmdText = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'";
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            //建立连接
							 | 
						|||
| 
								 | 
							
								            OleDbConnection conn = new OleDbConnection(string.Format(cmdText, fileName));
							 | 
						|||
| 
								 | 
							
								            try
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                //打开连接
							 | 
						|||
| 
								 | 
							
								                if (conn.State == ConnectionState.Broken || conn.State == ConnectionState.Closed)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    conn.Open();
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                OleDbDataAdapter oleAdMaster = null;
							 | 
						|||
| 
								 | 
							
								                DataTable m_tableName = new DataTable();
							 | 
						|||
| 
								 | 
							
								                DataSet ds = new DataSet();
							 | 
						|||
| 
								 | 
							
								                m_tableName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (m_tableName != null && m_tableName.Rows.Count > 0)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    m_tableName.TableName = m_tableName.Rows[0]["TABLE_NAME"].ToString().Trim();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                string sqlMaster;
							 | 
						|||
| 
								 | 
							
								                sqlMaster = " SELECT *  FROM [" + m_tableName.TableName + "]";
							 | 
						|||
| 
								 | 
							
								                oleAdMaster = new OleDbDataAdapter(sqlMaster, conn);
							 | 
						|||
| 
								 | 
							
								                oleAdMaster.Fill(ds, "m_tableName");
							 | 
						|||
| 
								 | 
							
								                oleAdMaster.Dispose();
							 | 
						|||
| 
								 | 
							
								                conn.Close();
							 | 
						|||
| 
								 | 
							
								                conn.Dispose();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                AddDatasetToSQL(ds.Tables[0], 13);
							 | 
						|||
| 
								 | 
							
								                hdCheckResult.Text = "1";
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            catch (Exception exc)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Response.Write(exc);
							 | 
						|||
| 
								 | 
							
								                //return null;
							 | 
						|||
| 
								 | 
							
								                // return dt;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            finally
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                conn.Close();
							 | 
						|||
| 
								 | 
							
								                conn.Dispose();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 将Dataset的数据导入数据库
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 将Dataset的数据导入数据库
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="pds">数据集</param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="Cols">数据集行数</param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        private bool AddDatasetToSQL(DataTable pds, int Cols)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            string result = string.Empty;
							 | 
						|||
| 
								 | 
							
								            int ic, ir;
							 | 
						|||
| 
								 | 
							
								            ic = pds.Columns.Count;
							 | 
						|||
| 
								 | 
							
								            if (ic < Cols)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                ShowNotify("导入Excel格式错误!Excel只有" + ic.ToString().Trim() + "列", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                return false;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            ir = pds.Rows.Count;
							 | 
						|||
| 
								 | 
							
								            if (pds != null && ir > 0)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var oldViewInfos = from x in Funs.DB.Comprehensive_InspectionMachine
							 | 
						|||
| 
								 | 
							
								                                   where x.ProjectId == this.CurrUser.LoginProjectId
							 | 
						|||
| 
								 | 
							
								                                   select x;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                var units = from x in Funs.DB.Base_Unit
							 | 
						|||
| 
								 | 
							
								                            join y in Funs.DB.Project_ProjectUnit on x.UnitId equals y.UnitId
							 | 
						|||
| 
								 | 
							
								                            where y.ProjectId == this.CurrUser.LoginProjectId
							 | 
						|||
| 
								 | 
							
								                            select x;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                var cns = from x in Funs.DB.Base_CNProfessional select x;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                for (int i = 0; i < ir; i++)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    Model.Comprehensive_InspectionMachine oldViewInfo = new Model.Comprehensive_InspectionMachine();
							 | 
						|||
| 
								 | 
							
								                    string row0 = pds.Rows[i][0].ToString().Trim();
							 | 
						|||
| 
								 | 
							
								                    var unitInfo = units.Where(y => y.UnitName == row0).FirstOrDefault();
							 | 
						|||
| 
								 | 
							
								                    if (unitInfo != null && !string.IsNullOrEmpty(row0))
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        oldViewInfo = oldViewInfos.Where(x => x.UnitId == unitInfo.UnitId
							 | 
						|||
| 
								 | 
							
								                                                           && x.InspectionMachineCode == pds.Rows[i][1].ToString().Trim()
							 | 
						|||
| 
								 | 
							
								                                                         ).FirstOrDefault();
							 | 
						|||
| 
								 | 
							
								                        if (oldViewInfo == null)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            string row1 = pds.Rows[i][1].ToString();
							 | 
						|||
| 
								 | 
							
								                            if (string.IsNullOrEmpty(row1))
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                result += (i + 2).ToString() + "," + "报验编号" + "," + "此项为必填项!" + "|";
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            string row2 = pds.Rows[i][2].ToString();
							 | 
						|||
| 
								 | 
							
								                            if (string.IsNullOrEmpty(row2))
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                result += (i + 2).ToString() + "," + "机具名称" + "," + "此项为必填项!" + "|";
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            string row3 = pds.Rows[i][3].ToString();
							 | 
						|||
| 
								 | 
							
								                            if (!string.IsNullOrEmpty(row3))
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                var cn = cns.Where(x => x.ProfessionalName == row3.Trim()).FirstOrDefault();
							 | 
						|||
| 
								 | 
							
								                                if (cn == null)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    result += (i + 2).ToString() + "," + "专业名称" + "," + "[" + row3 + "]不存在!" + "|";
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            string row4 = pds.Rows[i][4].ToString();
							 | 
						|||
| 
								 | 
							
								                            if (!string.IsNullOrEmpty(row4))
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                if (row4 != "施工" && row4 != "计量")
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    result += (i + 2).ToString() + "," + "类型" + "," + "[" + row4 + "]错误!" + "|";
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            string row6 = pds.Rows[i][6].ToString();
							 | 
						|||
| 
								 | 
							
								                            if (!string.IsNullOrEmpty(row6))
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                try
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    DateTime date = Convert.ToDateTime(row6.Trim());
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                catch (Exception)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    result += (i + 2).ToString() + "," + "下次检验日期" + "," + "[" + row6 + "]错误!" + "|";
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            string row8 = pds.Rows[i][8].ToString().Trim();
							 | 
						|||
| 
								 | 
							
								                            if (!string.IsNullOrEmpty(row8))
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                if (row8 != "是" && row8 != "否")
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    result += (i + 2).ToString() + "," + "是否在校验期内" + "," + "[" + row8 + "]错误!" + "|";
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            string row9 = pds.Rows[i][9].ToString();
							 | 
						|||
| 
								 | 
							
								                            if (!string.IsNullOrEmpty(row9))
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                try
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    DateTime date = Convert.ToDateTime(row9.Trim());
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                catch (Exception)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    result += (i + 2).ToString() + "," + "报验日期" + "," + "[" + row9 + "]错误!" + "|";
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            string row10 = pds.Rows[i][10].ToString();
							 | 
						|||
| 
								 | 
							
								                            if (!string.IsNullOrEmpty(row10))
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                if (row10 != "是" && row10 != "否")
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    result += (i + 2).ToString() + "," + "是否在场" + "," + "[" + row10 + "]错误!" + "|";
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            string row11 = pds.Rows[i][11].ToString();
							 | 
						|||
| 
								 | 
							
								                            if (!string.IsNullOrEmpty(row11))
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                try
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    int unitsCount = Convert.ToInt32(row11);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                catch (Exception)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    result += (i + 2).ToString() + "," + "台数" + "," + "[" + row11 + "]错误!" + "|";
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            string row12 = pds.Rows[i][12].ToString();
							 | 
						|||
| 
								 | 
							
								                            if (!string.IsNullOrEmpty(row12))
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                try
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    DateTime leaveDate = Convert.ToDateTime(row12);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                catch (Exception)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    result += (i + 2).ToString() + "," + "离场时间" + "," + "[" + row12 + "]错误!" + "|";
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            result += (i + 2).ToString() + "," + "报验编号" + "," + "该单位机具报验编号已存在!" + "|";
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        result += (i + 2).ToString() + "," + "单位名称" + "," + "[" + row0 + "]不存在!" + "|";
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                if (!string.IsNullOrEmpty(result))
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    result = result.Substring(0, result.LastIndexOf("|"));
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                errorInfos.Clear();
							 | 
						|||
| 
								 | 
							
								                if (!string.IsNullOrEmpty(result))
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    string results = result;
							 | 
						|||
| 
								 | 
							
								                    List<string> errorInfoList = results.Split('|').ToList();
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in errorInfoList)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        string[] errors = item.Split(',');
							 | 
						|||
| 
								 | 
							
								                        Model.ErrorInfo errorInfo = new Model.ErrorInfo();
							 | 
						|||
| 
								 | 
							
								                        errorInfo.Row = errors[0];
							 | 
						|||
| 
								 | 
							
								                        errorInfo.Column = errors[1];
							 | 
						|||
| 
								 | 
							
								                        errorInfo.Reason = errors[2];
							 | 
						|||
| 
								 | 
							
								                        errorInfos.Add(errorInfo);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    if (errorInfos.Count > 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        this.gvErrorInfo.DataSource = errorInfos;
							 | 
						|||
| 
								 | 
							
								                        this.gvErrorInfo.DataBind();
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    ShowNotify("审核完成,请点击导入!", MessageBoxIcon.Success);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                ShowNotify("导入数据为空!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            return true;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 导入
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 导入
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sender"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="e"></param>
							 | 
						|||
| 
								 | 
							
								        protected void btnImport_Click(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (!string.IsNullOrEmpty(hdCheckResult.Text))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                if (errorInfos.Count <= 0)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    string rootPath = Server.MapPath("~/");
							 | 
						|||
| 
								 | 
							
								                    ImportXlsToData2(rootPath + initPath + this.hdFileName.Text);
							 | 
						|||
| 
								 | 
							
								                    hdCheckResult.Text = string.Empty;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    ShowNotify("请先将错误数据修正,再重新导入提交!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                ShowNotify("请先审核要导入的文件!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region Excel提取数据
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 从Excel提取数据--》Dataset
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="filename">Excel文件路径名</param>
							 | 
						|||
| 
								 | 
							
								        private void ImportXlsToData2(string fileName)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            //支持.xls和.xlsx,即包括office2010等版本的   HDR=Yes代表第一行是标题,不是数据;
							 | 
						|||
| 
								 | 
							
								            string cmdText = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'";
							 | 
						|||
| 
								 | 
							
								            //建立连接
							 | 
						|||
| 
								 | 
							
								            OleDbConnection conn = new OleDbConnection(string.Format(cmdText, fileName));
							 | 
						|||
| 
								 | 
							
								            try
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                //打开连接
							 | 
						|||
| 
								 | 
							
								                if (conn.State == ConnectionState.Broken || conn.State == ConnectionState.Closed)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    conn.Open();
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                OleDbDataAdapter oleAdMaster = null;
							 | 
						|||
| 
								 | 
							
								                DataTable m_tableName = new DataTable();
							 | 
						|||
| 
								 | 
							
								                DataSet ds = new DataSet();
							 | 
						|||
| 
								 | 
							
								                m_tableName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (m_tableName != null && m_tableName.Rows.Count > 0)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    m_tableName.TableName = m_tableName.Rows[0]["TABLE_NAME"].ToString().Trim();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                string sqlMaster;
							 | 
						|||
| 
								 | 
							
								                sqlMaster = " SELECT *  FROM [" + m_tableName.TableName + "]";
							 | 
						|||
| 
								 | 
							
								                oleAdMaster = new OleDbDataAdapter(sqlMaster, conn);
							 | 
						|||
| 
								 | 
							
								                oleAdMaster.Fill(ds, "m_tableName");
							 | 
						|||
| 
								 | 
							
								                oleAdMaster.Dispose();
							 | 
						|||
| 
								 | 
							
								                conn.Close();
							 | 
						|||
| 
								 | 
							
								                conn.Dispose();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                AddDatasetToSQL2(ds.Tables[0], 13);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            catch (Exception ex)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                throw ex;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 将Dataset的数据导入数据库
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 将Dataset的数据导入数据库
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="pds">数据集</param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="Cols">数据集列数</param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        private bool AddDatasetToSQL2(DataTable pds, int Cols)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            int ic, ir;
							 | 
						|||
| 
								 | 
							
								            ic = pds.Columns.Count;
							 | 
						|||
| 
								 | 
							
								            if (ic < Cols)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                ShowNotify("导入Excel格式错误!Excel只有" + ic.ToString().Trim() + "列", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            string result = string.Empty;
							 | 
						|||
| 
								 | 
							
								            ir = pds.Rows.Count;
							 | 
						|||
| 
								 | 
							
								            if (pds != null && ir > 0)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var oldViewInfos = from x in Funs.DB.Comprehensive_InspectionMachine
							 | 
						|||
| 
								 | 
							
								                                   where x.ProjectId == this.CurrUser.LoginProjectId
							 | 
						|||
| 
								 | 
							
								                                   select x;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                var units = from x in Funs.DB.Base_Unit
							 | 
						|||
| 
								 | 
							
								                            join y in Funs.DB.Project_ProjectUnit on x.UnitId equals y.UnitId
							 | 
						|||
| 
								 | 
							
								                            where y.ProjectId == this.CurrUser.LoginProjectId
							 | 
						|||
| 
								 | 
							
								                            select x;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                var cns = from x in Funs.DB.Base_CNProfessional select x;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                for (int i = 0; i < ir; i++)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    Model.Comprehensive_InspectionMachine oldViewInfo = new Model.Comprehensive_InspectionMachine();
							 | 
						|||
| 
								 | 
							
								                    string row0 = pds.Rows[i][0].ToString().Trim();
							 | 
						|||
| 
								 | 
							
								                    var unitInfo = units.Where(y => y.UnitName == row0).FirstOrDefault();
							 | 
						|||
| 
								 | 
							
								                    if (unitInfo != null && !string.IsNullOrEmpty(row0))
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        oldViewInfo = oldViewInfos.Where(x => x.UnitId == unitInfo.UnitId
							 | 
						|||
| 
								 | 
							
								                                                           && x.InspectionMachineCode == pds.Rows[i][1].ToString().Trim() && x.InspectionMachineName == pds.Rows[i][2].ToString().Trim()
							 | 
						|||
| 
								 | 
							
								                                                         ).FirstOrDefault();
							 | 
						|||
| 
								 | 
							
								                        if (oldViewInfo == null)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            Model.Comprehensive_InspectionMachine Ins = new Model.Comprehensive_InspectionMachine();
							 | 
						|||
| 
								 | 
							
								                            Ins.ProjectId = this.CurrUser.LoginProjectId;
							 | 
						|||
| 
								 | 
							
								                            Ins.UnitId = unitInfo.UnitId;
							 | 
						|||
| 
								 | 
							
								                            Ins.InspectionMachineCode = pds.Rows[i][1].ToString().Trim();
							 | 
						|||
| 
								 | 
							
								                            Ins.InspectionMachineName = pds.Rows[i][2].ToString().Trim();
							 | 
						|||
| 
								 | 
							
								                            if (!string.IsNullOrEmpty(pds.Rows[i][3].ToString().Trim()))
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                Ins.CNProfessionalId = Funs.DB.Base_CNProfessional.First(e => e.ProfessionalName == pds.Rows[i][3].ToString().Trim()).CNProfessionalId;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            if (!string.IsNullOrEmpty(pds.Rows[i][4].ToString().Trim()))
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                Ins.InspectionType = pds.Rows[i][4].ToString().Trim();
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            else
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                Ins.InspectionType = "施工";
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            Ins.SpecificationModel = pds.Rows[i][5].ToString().Trim();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            if (!string.IsNullOrEmpty(pds.Rows[i][6].ToString().Trim()))
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                Ins.NextTestDate = Convert.ToDateTime(pds.Rows[i][6].ToString().Trim());
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            Ins.TestCycle = pds.Rows[i][7].ToString().Trim();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            Ins.IsOnSite = pds.Rows[i][8].ToString().Trim() == "是" ? true : false;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            if (!string.IsNullOrEmpty(pds.Rows[i][9].ToString().Trim()))
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                Ins.InspectionDate = Convert.ToDateTime(pds.Rows[i][9].ToString().Trim());
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            Ins.IsOnSite = pds.Rows[i][10].ToString().Trim() == "是" ? true : false;
							 | 
						|||
| 
								 | 
							
								                            if (!string.IsNullOrEmpty(pds.Rows[i][10].ToString().Trim()))
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                Ins.UnitsCount = Convert.ToInt32(pds.Rows[i][10].ToString().Trim());
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            if (!string.IsNullOrEmpty(pds.Rows[i][11].ToString().Trim()))
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                Ins.LeaveDate = Convert.ToDateTime(pds.Rows[i][11].ToString().Trim());
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            Ins.InspectionMachineId = SQLHelper.GetNewID(typeof(Model.Comprehensive_InspectionMachine));
							 | 
						|||
| 
								 | 
							
								                            Ins.CompileMan = this.CurrUser.UserId;
							 | 
						|||
| 
								 | 
							
								                            Ins.CompileDate = DateTime.Now.Date;
							 | 
						|||
| 
								 | 
							
								                            BLL.InspectionMachineService.AddInspectionMachine(Ins);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            result += (i + 2).ToString() + "," + "报验编号" + "," + "该单位报验编号已存在!" + "|";
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        result += (i + 2).ToString() + "," + "单位名称" + "," + "[" + row0 + "]不存在!" + "|";
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                ShowNotify("导入数据为空!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            return true;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 下载模板
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 下载模板按钮
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sender"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="e"></param>
							 | 
						|||
| 
								 | 
							
								        protected void btnDownLoad_Click(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            PageContext.RegisterStartupScript(Confirm.GetShowReference("确定下载导入模板吗?", String.Empty, MessageBoxIcon.Question, PageManager1.GetCustomEventReference(false, "Confirm_OK"), PageManager1.GetCustomEventReference("Confirm_Cancel")));
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 下载导入模板
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sender"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="e"></param>
							 | 
						|||
| 
								 | 
							
								        protected void PageManager1_CustomEvent(object sender, CustomEventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (e.EventArgument == "Confirm_OK")
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                string rootPath = Server.MapPath("~/");
							 | 
						|||
| 
								 | 
							
								                string uploadfilepath = rootPath + Const.InspectionMachineDataInUrl;
							 | 
						|||
| 
								 | 
							
								                string filePath = Const.InspectionMachineDataInUrl;
							 | 
						|||
| 
								 | 
							
								                string fileName = Path.GetFileName(filePath);
							 | 
						|||
| 
								 | 
							
								                FileInfo info = new FileInfo(uploadfilepath);
							 | 
						|||
| 
								 | 
							
								                long fileSize = info.Length;
							 | 
						|||
| 
								 | 
							
								                Response.ClearContent();
							 | 
						|||
| 
								 | 
							
								                Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
							 | 
						|||
| 
								 | 
							
								                Response.ContentType = "excel/plain";
							 | 
						|||
| 
								 | 
							
								                Response.ContentEncoding = System.Text.Encoding.UTF8;
							 | 
						|||
| 
								 | 
							
								                Response.AddHeader("Content-Length", fileSize.ToString().Trim());
							 | 
						|||
| 
								 | 
							
								                Response.TransmitFile(uploadfilepath, 0, fileSize);
							 | 
						|||
| 
								 | 
							
								                Response.End();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |