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
 | |
| 
 | |
|     }
 | |
| } |