Files
SGGL_SHJ/SGGL/FineUIPro.Web/CLGL/OutPlanMasterHistoryImport.aspx.cs
T
lpf c48972cc60 feat(clgl): 支持历史出库数据导入
历史出库数据需要批量补录并同步形成出库申请单、出库单和库存扣减。
新增出库申请历史导入入口,按仓库、材料编码、炉号、批号、数量、
出库时间和领用单位校验模板数据,并按材料单位拆分管段/管件单据。
2026-06-10 10:44:13 +08:00

138 lines
4.4 KiB
C#

using BLL;
using MiniExcelLibs;
using Model;
using System;
using System.Data;
using System.IO;
using System.Text;
using System.Web;
namespace FineUIPro.Web.CLGL
{
public partial class OutPlanMasterHistoryImport : PageBase
{
private readonly string initPath = Const.ExcelUrl;
/// <summary>
/// 单位工程主键
/// </summary>
public string UnitWorkId
{
get
{
return (string)ViewState["UnitWorkId"];
}
set
{
ViewState["UnitWorkId"] = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
UnitWorkId = Request.Params["UnitWorkId"];
hdFileName.Text = string.Empty;
}
}
protected void btnImport_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(UnitWorkId))
{
ShowNotify("请选择单位工程!", MessageBoxIcon.Warning);
return;
}
if (fuAttachUrl.HasFile == false)
{
ShowNotify("请选择Excel文件!", MessageBoxIcon.Warning);
return;
}
string isXls = Path.GetExtension(fuAttachUrl.FileName).Trim().ToLower();
if (isXls != ".xlsx")
{
ShowNotify("只能选择xlsx格式Excel文件!", MessageBoxIcon.Warning);
return;
}
string rootPath = Server.MapPath("~/");
string initFullPath = rootPath + initPath;
if (!Directory.Exists(initFullPath))
{
Directory.CreateDirectory(initFullPath);
}
hdFileName.Text = Funs.GetNewFileName() + isXls;
string filePath = initFullPath + hdFileName.Text;
fuAttachUrl.PostedFile.SaveAs(filePath);
ResponeData responeData = TwInOutplanmasterService.ImportOutHistoryData(
fuAttachUrl.FileName,
filePath,
this.CurrUser.LoginProjectId,
this.CurrUser.PersonId,
UnitWorkId);
if (responeData.code == 1)
{
DeleteTempFile(filePath);
ShowNotify(responeData.message, MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
}
else
{
Alert alert = new Alert
{
Message = responeData.message,
MessageBoxIcon = MessageBoxIcon.Error
};
alert.Show();
}
}
protected void btnDownLoad_Click(object sender, EventArgs e)
{
string rootPath = Server.MapPath("~/");
string tempDirectory = rootPath + @"File\Excel\Temp\";
if (!Directory.Exists(tempDirectory))
{
Directory.CreateDirectory(tempDirectory);
}
string tempPath = tempDirectory + "历史出库数据导入模板" + string.Format("{0:yyyyMMddHHmmss}", DateTime.Now) + ".xlsx";
DataTable template = new DataTable();
template.Columns.Add("仓库");
template.Columns.Add("材料编码");
template.Columns.Add("炉号");
template.Columns.Add("批号");
template.Columns.Add("数量");
template.Columns.Add("出库时间");
template.Columns.Add("领用单位");
MiniExcel.SaveAs(tempPath, template);
FileInfo info = new FileInfo(tempPath);
long fileSize = info.Length;
Response.ClearContent();
Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("历史出库数据导入模板.xlsx", Encoding.UTF8));
Response.ContentType = "excel/plain";
Response.ContentEncoding = Encoding.UTF8;
Response.AddHeader("Content-Length", fileSize.ToString().Trim());
Response.TransmitFile(tempPath, 0, fileSize);
Response.Flush();
Response.Close();
DeleteTempFile(tempPath);
}
private void DeleteTempFile(string filePath)
{
if (!string.IsNullOrEmpty(filePath) && File.Exists(filePath))
{
File.Delete(filePath);
}
}
}
}