259 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			259 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			C#
		
	
	
	
| 
								 | 
							
								using BLL;
							 | 
						|||
| 
								 | 
							
								using System;
							 | 
						|||
| 
								 | 
							
								using System.Collections.Generic;
							 | 
						|||
| 
								 | 
							
								using System.Data;
							 | 
						|||
| 
								 | 
							
								using System.IO;
							 | 
						|||
| 
								 | 
							
								using System.Linq;
							 | 
						|||
| 
								 | 
							
								using System.Text;
							 | 
						|||
| 
								 | 
							
								using System.Web;
							 | 
						|||
| 
								 | 
							
								using System.Web.UI;
							 | 
						|||
| 
								 | 
							
								using System.Web.UI.WebControls;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								namespace FineUIPro.Web.TestRun.DriverSub
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    public partial class DriverSubContactorIn : PageBase
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        public string ContractId
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            get
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                return (string)ViewState["ContractId"];
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            set
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                ViewState["ContractId"] = value;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #region 定义项
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        ///     上传预设的虚拟路径
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        private readonly string initPath = Const.ExcelUrl; //"File\\Excel\\DataIn\\";
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        ///     错误集合
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        public static string errorInfos = string.Empty;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								        protected void Page_Load(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (!IsPostBack)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                ContractId = Request.Params["ContractId"];
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        protected void btnImport_Click(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {  
							 | 
						|||
| 
								 | 
							
								            errorInfos = string.Empty;
							 | 
						|||
| 
								 | 
							
								            if (fuAttachUrl.HasFile == false)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                ShowNotify("请选择Excel文件!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                return;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            var IsXls = Path.GetExtension(fuAttachUrl.FileName).Trim().ToLower();
							 | 
						|||
| 
								 | 
							
								            if (IsXls != ".xlsx")
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                ShowNotify("只能选择Excel文件!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                return;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            if (!string.IsNullOrEmpty(errorInfos)) errorInfos = string.Empty;
							 | 
						|||
| 
								 | 
							
								            var rootPath = Server.MapPath("~/");
							 | 
						|||
| 
								 | 
							
								            var initFullPath = rootPath + initPath;
							 | 
						|||
| 
								 | 
							
								            if (!Directory.Exists(initFullPath)) Directory.CreateDirectory(initFullPath);
							 | 
						|||
| 
								 | 
							
								            //指定上传文件名称
							 | 
						|||
| 
								 | 
							
								            hdFileName.Text = Funs.GetNewFileName() + IsXls;
							 | 
						|||
| 
								 | 
							
								            //上传文件路径
							 | 
						|||
| 
								 | 
							
								            var filePath = initFullPath + hdFileName.Text;
							 | 
						|||
| 
								 | 
							
								            //文件上传服务器
							 | 
						|||
| 
								 | 
							
								            fuAttachUrl.PostedFile.SaveAs(filePath);
							 | 
						|||
| 
								 | 
							
								            //文件上传服务器后的名称
							 | 
						|||
| 
								 | 
							
								            var fileName = rootPath + initPath + hdFileName.Text;
							 | 
						|||
| 
								 | 
							
								            //读取Excel
							 | 
						|||
| 
								 | 
							
								            DataSet ds = NPOIHelper.ExcelToDataSet(fileName, out string message, false);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            File.Delete(fileName);
							 | 
						|||
| 
								 | 
							
								            //将ds数据转换成 List<Model.DriverSub_DriverSubContractors>
							 | 
						|||
| 
								 | 
							
								            var list = new List<Model.DriverSub_DriverSubContractors>();
							 | 
						|||
| 
								 | 
							
								           
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            if (ds == null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                this.fuAttachUrl.Reset();
							 | 
						|||
| 
								 | 
							
								                ShowNotify("模板错误,请从系统下载正确的模板!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                return;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            if (!string.IsNullOrWhiteSpace(message))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                ShowNotify(message, MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                return;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            if (ds.Tables[0].Rows.Count > 1)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var fileVerify = VerifyFile(ds);
							 | 
						|||
| 
								 | 
							
								                if (!fileVerify)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    this.fuAttachUrl.Reset();
							 | 
						|||
| 
								 | 
							
								                    ShowNotify("请获取正确模板!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                    return;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                
							 | 
						|||
| 
								 | 
							
								                for (var i = 1; i < ds.Tables[0].Rows.Count; i++)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    if (string.IsNullOrEmpty(ds.Tables[0].Rows[i][1].ToString()) ||
							 | 
						|||
| 
								 | 
							
								                        string.IsNullOrEmpty(ds.Tables[0].Rows[i][2].ToString()) ||
							 | 
						|||
| 
								 | 
							
								                        string.IsNullOrEmpty(ds.Tables[0].Rows[i][3].ToString()) ||
							 | 
						|||
| 
								 | 
							
								                        string.IsNullOrEmpty(ds.Tables[0].Rows[i][4].ToString()) ||
							 | 
						|||
| 
								 | 
							
								                        string.IsNullOrEmpty(ds.Tables[0].Rows[i][5].ToString()) ||
							 | 
						|||
| 
								 | 
							
								                        string.IsNullOrEmpty(ds.Tables[0].Rows[i][6].ToString()) ||
							 | 
						|||
| 
								 | 
							
								                        string.IsNullOrEmpty(ds.Tables[0].Rows[i][7].ToString()) ||
							 | 
						|||
| 
								 | 
							
								                        string.IsNullOrEmpty(ds.Tables[0].Rows[i][8].ToString()) ||
							 | 
						|||
| 
								 | 
							
								                        string.IsNullOrEmpty(ds.Tables[0].Rows[i][9].ToString()) ||
							 | 
						|||
| 
								 | 
							
								                        string.IsNullOrEmpty(ds.Tables[0].Rows[i][10].ToString()) )
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        errorInfos += "第" + (i + 1) + "行数据不完整,请检查!";
							 | 
						|||
| 
								 | 
							
								                        continue;  
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    var model = new Model.DriverSub_DriverSubContractors();
							 | 
						|||
| 
								 | 
							
								                    model.DriverSubContractorsId = Guid.NewGuid().ToString();
							 | 
						|||
| 
								 | 
							
								                    model.SubUnitName = ds.Tables[0].Rows[i][1].ToString();
							 | 
						|||
| 
								 | 
							
								                    model.EnterpriseNature = ds.Tables[0].Rows[i][2].ToString();
							 | 
						|||
| 
								 | 
							
								                    model.SubcontractingType = ds.Tables[0].Rows[i][3].ToString();
							 | 
						|||
| 
								 | 
							
								                    model.CollCropCode = ds.Tables[0].Rows[i][4].ToString();
							 | 
						|||
| 
								 | 
							
								                    model.SafetyProductionLicense = ds.Tables[0].Rows[i][5].ToString();
							 | 
						|||
| 
								 | 
							
								                    model.QualificationCertificateNumber = ds.Tables[0].Rows[i][6].ToString();
							 | 
						|||
| 
								 | 
							
								                    model.QualificationType = ds.Tables[0].Rows[i][7].ToString();
							 | 
						|||
| 
								 | 
							
								                    model.QualificationLevel = ds.Tables[0].Rows[i][8].ToString();
							 | 
						|||
| 
								 | 
							
								                    model.Province = ds.Tables[0].Rows[i][9].ToString();
							 | 
						|||
| 
								 | 
							
								                    model.City = ds.Tables[0].Rows[i][10].ToString();
							 | 
						|||
| 
								 | 
							
								                    model.IsUse = true;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    var subcontractingType = model.SubcontractingType; 
							 | 
						|||
| 
								 | 
							
								                    var subcontractingTypeList = BLL.DropListService.drpDriverSubNameList();
							 | 
						|||
| 
								 | 
							
								                    var typemodel=  subcontractingTypeList.Where(x => x.Text == subcontractingType).FirstOrDefault();
							 | 
						|||
| 
								 | 
							
								                    if (typemodel==null)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        errorInfos += "第" + (i + 1) + "行分包类别不存在,请检查!";
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        model.SubcontractingType= typemodel.Value;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                     
							 | 
						|||
| 
								 | 
							
								                    list.Add(model);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (string.IsNullOrEmpty(errorInfos))
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    DriversubcontractorsService.UpdateDriverSub_DriverSubContractorsIsUse();
							 | 
						|||
| 
								 | 
							
								                    AddOrUpdate(list);
							 | 
						|||
| 
								 | 
							
								                    PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    ShowNotify(errorInfos, MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 插入或更新数据
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="list"></param>
							 | 
						|||
| 
								 | 
							
								        private void AddOrUpdate(List<Model.DriverSub_DriverSubContractors> list)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            foreach (var item in list)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var model = BLL.DriversubcontractorsService.GetDriverSubContractorsByCollCropCode(item.CollCropCode);
							 | 
						|||
| 
								 | 
							
								                if (model != null)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    model.SubUnitName = item.SubUnitName;
							 | 
						|||
| 
								 | 
							
								                    model.EnterpriseNature = item.EnterpriseNature;
							 | 
						|||
| 
								 | 
							
								                    model.SubcontractingType = item.SubcontractingType;
							 | 
						|||
| 
								 | 
							
								                    model.CollCropCode = item.CollCropCode;
							 | 
						|||
| 
								 | 
							
								                    model.SafetyProductionLicense = item.SafetyProductionLicense;
							 | 
						|||
| 
								 | 
							
								                    model.QualificationCertificateNumber = item.QualificationCertificateNumber;
							 | 
						|||
| 
								 | 
							
								                    model.QualificationType = item.QualificationType;
							 | 
						|||
| 
								 | 
							
								                    model.QualificationLevel = item.QualificationLevel;
							 | 
						|||
| 
								 | 
							
								                    model.Province = item.Province;
							 | 
						|||
| 
								 | 
							
								                    model.City = item.City;
							 | 
						|||
| 
								 | 
							
								                    model.IsUse = item.IsUse;
							 | 
						|||
| 
								 | 
							
								                    BLL.DriversubcontractorsService.UpdateDriverSub_DriverSubContractors(model);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    BLL.DriversubcontractorsService.AddDriverSub_DriverSubContractors(item);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private bool VerifyFile(DataSet ds)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            var result = true;
							 | 
						|||
| 
								 | 
							
								            if (ds.Tables[0].Rows[1][0].ToString().Contains("序号")) result = false;
							 | 
						|||
| 
								 | 
							
								            if (ds.Tables[0].Rows[1][1].ToString().Contains("企业名称")) result = false;
							 | 
						|||
| 
								 | 
							
								            if (ds.Tables[0].Rows[1][2].ToString().Contains("企业性质")) result = false;
							 | 
						|||
| 
								 | 
							
								            if (ds.Tables[0].Rows[1][3].ToString().Contains("分包类别")) result = false;
							 | 
						|||
| 
								 | 
							
								            if (ds.Tables[0].Rows[1][4].ToString().Contains("统一社会信用代码")) result = false;
							 | 
						|||
| 
								 | 
							
								            if (ds.Tables[0].Rows[1][5].ToString().Contains("安全生产许可证")) result = false;
							 | 
						|||
| 
								 | 
							
								            if (ds.Tables[0].Rows[1][6].ToString().Contains("资质证书编号")) result = false;
							 | 
						|||
| 
								 | 
							
								            if (ds.Tables[0].Rows[1][7].ToString().Contains("资质类别")) result = false;
							 | 
						|||
| 
								 | 
							
								            if (ds.Tables[0].Rows[1][8].ToString().Contains("资质等级")) result = false;
							 | 
						|||
| 
								 | 
							
								            if (ds.Tables[0].Rows[1][9].ToString().Contains("省份")) result = false;
							 | 
						|||
| 
								 | 
							
								            if (ds.Tables[0].Rows[1][10].ToString().Contains("城市")) result = false;
							 | 
						|||
| 
								 | 
							
								            return result;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #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")
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var rootPath = Server.MapPath("~/");
							 | 
						|||
| 
								 | 
							
								                var uploadfilepath = rootPath + Const.DriverSubContactTemplateUrl;
							 | 
						|||
| 
								 | 
							
								                var filePath = Const.DriverSubContactTemplateUrl;
							 | 
						|||
| 
								 | 
							
								                var fileName = Path.GetFileName(filePath);
							 | 
						|||
| 
								 | 
							
								                var info = new FileInfo(uploadfilepath);
							 | 
						|||
| 
								 | 
							
								                var fileSize = info.Length;
							 | 
						|||
| 
								 | 
							
								                Response.ClearContent();
							 | 
						|||
| 
								 | 
							
								                Response.AddHeader("Content-Disposition",
							 | 
						|||
| 
								 | 
							
								                    "attachment;filename=" + HttpUtility.UrlEncode(fileName, Encoding.UTF8));
							 | 
						|||
| 
								 | 
							
								                Response.ContentType = "excel/plain";
							 | 
						|||
| 
								 | 
							
								                Response.ContentEncoding = Encoding.UTF8;
							 | 
						|||
| 
								 | 
							
								                Response.AddHeader("Content-Length", fileSize.ToString().Trim());
							 | 
						|||
| 
								 | 
							
								                Response.TransmitFile(uploadfilepath, 0, fileSize);
							 | 
						|||
| 
								 | 
							
								                Response.End();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |