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