提交说明10/13
This commit is contained in:
@@ -0,0 +1,216 @@
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Configuration;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.WebControls.WebParts;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using GThinking.N_MISPRO;
|
||||
using GThinking.N_MISPRO.Data;
|
||||
using GThinking.N_MODEL.Page;
|
||||
using GThinking.N_WORKFLOW;
|
||||
using System.Data.Common;
|
||||
using GThinking.N_MODEL.Dialog;
|
||||
using GThinking.N_PUBLIC;
|
||||
using GThinking.N_PUBLIC2;
|
||||
using GThinking.N_MISPRO.Utility;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using GThinking.N_CONTROL;
|
||||
using System.Data.OleDb;
|
||||
using GThinking.N_MISPRO.MISPROAS;
|
||||
namespace GThinking.U20261363_N_XLXSBJ
|
||||
{
|
||||
public partial class XLBJD_WBBJDMX_MRDYWHDRInfo : SingleCardBase
|
||||
{
|
||||
XLBJD_WBBJDMX_MRDYWHDR entity = new XLBJD_WBBJDMX_MRDYWHDR();
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
this.UMID = 100860174;
|
||||
this.UMName = "外部线缆产品导入";
|
||||
base.CurMaster = Master;
|
||||
base.CurEntity = entity;
|
||||
this.PageHeight = 180;
|
||||
this.PageWidth = 420;
|
||||
|
||||
Master.EnableAttachBtn = false;
|
||||
Master.EnableCancelBtn = false;
|
||||
Master.EnableCopyBtn = false;
|
||||
Master.EnableDeleteBtn = false;
|
||||
Master.EnableEditBtn = false;
|
||||
Master.EnableInsertBtn = false;
|
||||
Master.EnablePrintBtn = false;
|
||||
Master.EnableRefreshBtn = false;
|
||||
Master.EnableSaveBtn = false;
|
||||
|
||||
fupdPost.FileSaveType = gtAsyncFileUpload.DFileSaveType.SaveToPath;
|
||||
fupdPost.Filter = "XLS";
|
||||
|
||||
base.InitPage();
|
||||
}
|
||||
|
||||
protected void btnQD_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (string.IsNullOrEmpty(fupdPost.FilePath.Trim()) || fupdPost.FilePath.Trim().EndsWith("\\"))
|
||||
{
|
||||
ShowMessage("请选择需要导入的文件!");
|
||||
return;
|
||||
}
|
||||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||||
TSQL sSQL = new TSQL(dberp);
|
||||
try
|
||||
{
|
||||
lblTitle.Text = "正在导入数据,请稍后...";
|
||||
dberp.BeginTrans();
|
||||
string sPath = fupdPost.FilePath;
|
||||
string sColumns = "型号,主芯截面始,主芯截面止,电压等级";
|
||||
string sMessage = "";
|
||||
DataSet aDataExcel = TExcelData.ReadExcel(sPath.Trim(), "sheet1", sColumns, false, ref sMessage);
|
||||
if (!sMessage.Trim().Equals(""))
|
||||
{
|
||||
throw new Exception("导入文件的内容格式不正确,请按帮助文档中要求的内容格式调整导入文件!");
|
||||
}
|
||||
|
||||
//记录本次导入文件中已存在的型号截面范围,用于校验文件内部的范围交集
|
||||
Dictionary<string, List<double[]>> dicImported = new Dictionary<string, List<double[]>>();
|
||||
|
||||
for (int i = 0; i < aDataExcel.Tables[0].Rows.Count; i++)
|
||||
{
|
||||
string sXLXHID = aDataExcel.Tables[0].Rows[i][0].ToString().Trim();
|
||||
string sZXJMS = aDataExcel.Tables[0].Rows[i][1].ToString().Trim();
|
||||
string sZXJMZ = aDataExcel.Tables[0].Rows[i][2].ToString().Trim();
|
||||
string sDYDJID = aDataExcel.Tables[0].Rows[i][3].ToString().Trim();
|
||||
int iXLSRow = i + 2;//excel中的行号(含标题行)
|
||||
if (sXLXHID.Equals(""))
|
||||
{
|
||||
string ErrorMessage = "第" + iXLSRow + "行型号不允许为空!";
|
||||
throw new Exception(ErrorMessage);
|
||||
}
|
||||
double dZXJMS = 0;
|
||||
double dZXJMZ = 0;
|
||||
if (!double.TryParse(sZXJMS, out dZXJMS))
|
||||
{
|
||||
throw new Exception("第" + iXLSRow + "行主芯截面始[" + sZXJMS + "]不是合法的数字!");
|
||||
}
|
||||
if (!double.TryParse(sZXJMZ, out dZXJMZ))
|
||||
{
|
||||
throw new Exception("第" + iXLSRow + "行主芯截面止[" + sZXJMZ + "]不是合法的数字!");
|
||||
}
|
||||
if (dZXJMZ < 0)
|
||||
{
|
||||
throw new Exception("第" + iXLSRow + "行主芯截面止不允许为负数!");
|
||||
}
|
||||
if (dZXJMS < 0)
|
||||
{
|
||||
throw new Exception("第" + iXLSRow + "行主芯截面始不允许为负数!");
|
||||
}
|
||||
if (dZXJMS > dZXJMZ)
|
||||
{
|
||||
throw new Exception("第" + iXLSRow + "行主芯截面始不允许大于主芯截面止!");
|
||||
}
|
||||
|
||||
//与本次导入文件中已出现的范围校验交集
|
||||
if (dicImported.ContainsKey(sXLXHID))
|
||||
{
|
||||
bool bSame = false;
|
||||
bool bOverLap = false;
|
||||
double dExistS = 0;
|
||||
double dExistZ = 0;
|
||||
foreach (double[] dRange in dicImported[sXLXHID])
|
||||
{
|
||||
if (dRange[0] == dZXJMS && dRange[1] == dZXJMZ)
|
||||
{
|
||||
bSame = true;
|
||||
break;
|
||||
}
|
||||
if (!(dRange[1] < dZXJMS || dRange[0] > dZXJMZ))
|
||||
{
|
||||
bOverLap = true;
|
||||
dExistS = dRange[0];
|
||||
dExistZ = dRange[1];
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (bSame)
|
||||
continue;
|
||||
if (bOverLap)
|
||||
{
|
||||
throw new Exception("第" + iXLSRow + "行型号[" + sXLXHID + "]与文件中的主芯截面范围[" + dExistS + "~" + dExistZ + "]存在交集,相同型号的主芯截面范围不允许有交集!");
|
||||
}
|
||||
}
|
||||
|
||||
string sSql = string.Format(@"select top 1 XLXHID from MRDYWH
|
||||
where XLXHID='{0}' and ZXJMS={1} and ZXJMZ={2} ",
|
||||
sXLXHID.Replace("'", "''"), dZXJMS, dZXJMZ);
|
||||
|
||||
if (!CMISproDataBase.ExistsRecord("DBERP", sSql))
|
||||
{
|
||||
//校验相同型号的主芯截面范围没有交集
|
||||
string sJJSJl = string.Format(@"select top 1 ZXJMS,ZXJMZ from MRDYWH
|
||||
where XLXHID='{0}' and not (ZXJMZ < {1} or ZXJMS > {2}) ",
|
||||
sXLXHID.Replace("'", "''"), dZXJMS, dZXJMZ);
|
||||
TSQL sSQLJJSJ = new TSQL(dberp);
|
||||
sSQLJJSJ.Clear();
|
||||
sSQLJJSJ.Add(sJJSJl);
|
||||
DataSet dsJJSJ = dberp.OpenDataSet(sSQLJJSJ);
|
||||
if (dsJJSJ.Tables[0].Rows.Count > 0)
|
||||
{
|
||||
throw new Exception("第" + iXLSRow + "行型号[" + sXLXHID + "]与系统中的主芯截面范围["
|
||||
+ dsJJSJ.Tables[0].Rows[0]["ZXJMS"].ToString().Trim() + "~"
|
||||
+ dsJJSJ.Tables[0].Rows[0]["ZXJMZ"].ToString().Trim() + "]存在交集,相同型号的主芯截面范围不允许有交集!");
|
||||
}
|
||||
|
||||
sSQL.Clear();
|
||||
sSQL.Add("insert into MRDYWH(XLXHID, ZXJMS, ZXJMZ, DYDJID)");
|
||||
sSQL.Add(" values(:XLXHID, :ZXJMS, :ZXJMZ, isnull(:DYDJID,' '))");
|
||||
sSQL.ParamByName("XLXHID").Value = sXLXHID;
|
||||
sSQL.ParamByName("ZXJMS").Value = dZXJMS;
|
||||
sSQL.ParamByName("ZXJMZ").Value = dZXJMZ;
|
||||
sSQL.ParamByName("DYDJID").Value = sDYDJID;
|
||||
dberp.ExecSQL(sSQL);
|
||||
|
||||
if (!dicImported.ContainsKey(sXLXHID))
|
||||
dicImported.Add(sXLXHID, new List<double[]>());
|
||||
dicImported[sXLXHID].Add(new double[] { dZXJMS, dZXJMZ });
|
||||
}
|
||||
else
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
dberp.CommitTrans();
|
||||
ShowMessage("导入成功!");
|
||||
|
||||
DialogOperationScript dos = new DialogOperationScript(this);
|
||||
dos.ClickOwnerButton(PageParam.GetRTrimString("ClientExportFileURL"));
|
||||
dos.CloseSelf();
|
||||
dos.Execute();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
lblTitle.Text = "";
|
||||
dberp.RollbackTrans();
|
||||
ShowMessage("导入失败,错误信息:" + ex.Message);
|
||||
return;
|
||||
}
|
||||
finally
|
||||
{
|
||||
System.IO.File.Delete(fupdPost.FilePath.Trim());
|
||||
}
|
||||
|
||||
CloseWindowNoQuery();
|
||||
}
|
||||
|
||||
protected void btnQX_Click(object sender, EventArgs e)
|
||||
{
|
||||
CloseWindowNoQuery();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user