339 lines
15 KiB
C#
339 lines
15 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Configuration;
|
|
using System.Collections;
|
|
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 GThinking.N_MODEL.Dialog;
|
|
using GThinking.N_PUBLIC;
|
|
using GThinking.N_PUBLIC2;
|
|
using GThinking.N_MISPRO.Utility;
|
|
using GThinking.N_CONTROL;
|
|
using System.IO;
|
|
using System.Data.OleDb;
|
|
using System.Data.Common;
|
|
|
|
using GThinking.N_MISPRO.Caching;
|
|
using GThinking.N_MISPRO.TableCache;
|
|
using GThinking.N_MISPROAS;
|
|
|
|
namespace GThinking.N_XLXSBJ
|
|
{
|
|
[TableMap(DB = "DBERP", DbTableName = "TJYZJDKCB", Umid = 100860130, IsWorkFlow = false, UseWhr = false)]
|
|
public class TJYZJDKCB_DREntity : EntityManager
|
|
{
|
|
|
|
}
|
|
public partial class TJYZJDKCBDRInfo : SingleCardBase
|
|
{
|
|
TJYZJDKCB_DREntity entity = new TJYZJDKCB_DREntity();
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
this.UMID = 100860130;
|
|
this.UMName = "调价因子加点扩充表";
|
|
base.CurMaster = Master;
|
|
this.CurEntity = entity;
|
|
this.PageHeight = 180;
|
|
this.PageWidth = 420;
|
|
|
|
this.Master.EnableAttachBtn = false;
|
|
this.Master.EnableCancelBtn = false;
|
|
this.Master.EnableCopyBtn = false;
|
|
this.Master.EnableDeleteBtn = false;
|
|
this.Master.EnableEditBtn = false;
|
|
this.Master.EnableInsertBtn = false;
|
|
this.Master.EnablePrintBtn = false;
|
|
this.Master.EnableRefreshBtn = false;
|
|
this.Master.EnableSaveBtn = false;
|
|
Server.ScriptTimeout = 3600;
|
|
fupdPost.FileSaveType = gtAsyncFileUpload.DFileSaveType.SaveToPath;
|
|
if (AppRuntime.BitType == AppBitType.Bit32)
|
|
fupdPost.Filter = "XLS";
|
|
else // AppBitType.Bit64
|
|
fupdPost.Filter = "XLS,XLSX";
|
|
base.InitPage();
|
|
Server.ScriptTimeout = 3600;
|
|
btnUn.Style["display"] = "none";
|
|
}
|
|
#region 控件事件
|
|
|
|
protected void btnQX_Click(object sender, EventArgs e)
|
|
{
|
|
CloseWindowNoQuery();
|
|
}
|
|
|
|
protected void btnUnDis_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
|
TSQL sSQL = new TSQL(dberp);
|
|
try
|
|
{
|
|
lblTitle.Text = "正在导入数据,请稍后...";
|
|
dberp.BeginTrans();
|
|
string sDRXXMessage = string.Empty;
|
|
DataSet aDataExcel = new DataSet();
|
|
if (AppRuntime.BitType == AppBitType.Bit32)
|
|
{
|
|
aDataExcel = XLBJDUtils.ReadFromExcelFile(fupdPost.FilePath, 0, "");
|
|
}
|
|
else // AppBitType.Bit64
|
|
{
|
|
ReadWJ(fupdPost.FilePath, ref aDataExcel);
|
|
}
|
|
string sJDfields = string.Empty;
|
|
bool hasZHJD = false;
|
|
int JSFSIndex = -1;
|
|
ExcelColumnValid(aDataExcel, ref sJDfields, ref hasZHJD, ref JSFSIndex);
|
|
InsertDRJL(dberp, sSQL, aDataExcel, sJDfields, ref sDRXXMessage, hasZHJD, JSFSIndex);
|
|
dberp.CommitTrans();
|
|
if (!sDRXXMessage.ToString().Trim().Equals(""))
|
|
{
|
|
ShowMessage("导入完成!\r\n存在如下数据未成功导入:\r\n" + sDRXXMessage.ToString());
|
|
}
|
|
else
|
|
{
|
|
ShowMessage("导入成功!");
|
|
}
|
|
DialogOperationScript dos = new DialogOperationScript(this);
|
|
dos.ClickOwnerButton(PageParam.GetRTrimString("btnRefreshCID"));
|
|
dos.CloseSelf();
|
|
dos.Execute();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
lblTitle.Text = "";
|
|
dberp.RollbackTrans();
|
|
ShowMessage(ex.Message);
|
|
}
|
|
finally
|
|
{
|
|
System.IO.File.Delete(fupdPost.FilePath.Trim());
|
|
}
|
|
CloseWindowNoQuery();
|
|
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 自定义函数
|
|
|
|
private void InsertDRJL(TDatabase dberp, TSQL SQL, DataSet ds, string sJDfields, ref string sDRXXMessage, bool hasZHJD, int JSFSIndex)
|
|
{
|
|
//SQL.Clear();
|
|
//SQL.Add(@" delete FROM TJYZJDKCB WHERE TJYZJDKCB_YZID=:TJYZJDKCB_YZID ");
|
|
|
|
//SQL.ParamByName("TJYZJDKCB_YZID").Value = PageParam.GetRTrimString("YZID");
|
|
//dberp.ExecSQL(SQL);
|
|
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
|
|
{
|
|
string sKCQXLXHID = ds.Tables[0].Rows[i][0].ToString().Trim();
|
|
string sKCHXLXHID = ds.Tables[0].Rows[i][1].ToString().Trim();
|
|
string sDYDJID = ds.Tables[0].Rows[i][2].ToString().Trim() == "" ? " " : ds.Tables[0].Rows[i][2].ToString().Trim();
|
|
string sXXJGID = ds.Tables[0].Rows[i][3].ToString().Trim() == "" ? " " : ds.Tables[0].Rows[i][3].ToString().Trim();
|
|
double dZXJMXX = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i][4].ToString().Trim(), 0);
|
|
double dZXJMSX = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i][5].ToString().Trim(), 0);
|
|
string sKCHDYDJID = ds.Tables[0].Rows[i][6].ToString().Trim() == "" ? " " : ds.Tables[0].Rows[i][6].ToString().Trim();
|
|
double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i][7].ToString().Trim(), 0);
|
|
|
|
#region 校验数据
|
|
|
|
if (string.IsNullOrEmpty(sKCQXLXHID))
|
|
{
|
|
sDRXXMessage += "第" + (i + 1) + "行数据未成功导入,原因:扩充前线缆型号不允许为空!。\r\n";
|
|
continue;
|
|
}
|
|
|
|
//if (!ExistedXHID(sKCQXLXHID))
|
|
//{
|
|
// sDRXXMessage += "第" + (i + 1) + "行数据未成功导入,原因:扩充前线缆型号【" + sKCQXLXHID + "】不存在或已停用!。\r\n";
|
|
// continue;
|
|
//}
|
|
|
|
if (string.IsNullOrEmpty(sKCHXLXHID))
|
|
{
|
|
sDRXXMessage += "第" + (i + 1) + "行数据未成功导入,原因:扩充后线缆型号不允许为空!。\r\n";
|
|
continue;
|
|
}
|
|
|
|
//if (!ExistedXHID(sKCHXLXHID))
|
|
//{
|
|
// sDRXXMessage += "第" + (i + 1) + "行数据未成功导入,原因:扩充后线缆型号【" + sKCHXLXHID + "】不存在或已停用!。\r\n";
|
|
// continue;
|
|
//}
|
|
|
|
if (dZXJMXX < 0)
|
|
{
|
|
sDRXXMessage += "第" + (i + 1) + "行数据未成功导入,原因:主芯截面下限--不允许为负数!。\r\n";
|
|
continue;
|
|
}
|
|
|
|
if (dZXJMSX < 0)
|
|
{
|
|
sDRXXMessage += "第" + (i + 1) + "行数据未成功导入,原因:主芯截面上限--不允许为负数!。\r\n";
|
|
continue;
|
|
}
|
|
|
|
if (dZXJMSX > 0 && dZXJMXX > dZXJMSX)
|
|
{
|
|
sDRXXMessage += "第" + (i + 1) + "行数据未成功导入,原因:主芯截面下限不允许超过主芯截面上限!。\r\n";
|
|
continue;
|
|
}
|
|
|
|
if (string.IsNullOrEmpty(sDYDJID.Trim()) && (!string.IsNullOrEmpty(sKCHDYDJID.Trim())))
|
|
{
|
|
sDRXXMessage += "第" + (i + 1) + "行数据未成功导入,原因:电压等级为空时,扩充后电压等级必须为空!。\r\n";
|
|
continue;
|
|
}
|
|
if ((!string.IsNullOrEmpty(sDYDJID.Trim())) && (!ExistedDYDJID(sDYDJID)))
|
|
{
|
|
sDRXXMessage += "第" + (i + 1) + "行数据未成功导入,原因:电压等级【" + sDYDJID + "】不存在或已停用!。\r\n";
|
|
continue;
|
|
}
|
|
if ((!string.IsNullOrEmpty(sKCHDYDJID.Trim())) && (!ExistedDYDJID(sKCHDYDJID)))
|
|
{
|
|
sDRXXMessage += "第" + (i + 1) + "行数据未成功导入,原因:扩充后电压等级【" + sKCHDYDJID + "】不存在或已停用!。\r\n";
|
|
continue;
|
|
}
|
|
if (string.IsNullOrEmpty(sKCHDYDJID.Trim()) || sKCHDYDJID.Trim().Equals(sDYDJID.Trim()))
|
|
{
|
|
if (sKCQXLXHID.Equals(sKCHXLXHID))
|
|
{
|
|
sDRXXMessage += "第" + (i + 1) + "行数据未成功导入,原因:扩充前线缆型号与扩充后线缆型号不允许一致!。\r\n";
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 插入语句
|
|
|
|
SQL.Clear();
|
|
SQL.Add("insert into TJYZJDKCB(TJYZJDKCB_KCQXLXHID,TJYZJDKCB_KCHXLXHID,TJYZJDKCB_ZXJMXX,TJYZJDKCB_ZXJMSX,TJYZJDKCB_DYDJID,TJYZJDKCB_KCHDYDJID,TJYZJDKCB_XXJGID,TJYZJDKCB_YZID,TJYZJDKCB_JDZ ");
|
|
SQL.Add(",TJYZJDKCB_WHR,TJYZJDKCB_WHRID,TJYZJDKCB_WHSJ) ");
|
|
SQL.Add(" values(:TJYZJDKCB_KCQXLXHID,:TJYZJDKCB_KCHXLXHID,:TJYZJDKCB_ZXJMXX,:TJYZJDKCB_ZXJMSX,:TJYZJDKCB_DYDJID,:TJYZJDKCB_KCHDYDJID,:TJYZJDKCB_XXJGID,:TJYZJDKCB_YZID,:TJYZJDKCB_JDZ");
|
|
SQL.Add(",:TJYZJDKCB_WHR,:TJYZJDKCB_WHRID,:TJYZJDKCB_WHSJ) ");
|
|
SQL.ParamByName("TJYZJDKCB_KCQXLXHID").Value = sKCQXLXHID;
|
|
SQL.ParamByName("TJYZJDKCB_KCHXLXHID").Value = sKCHXLXHID;
|
|
SQL.ParamByName("TJYZJDKCB_ZXJMXX").Value = dZXJMXX;
|
|
SQL.ParamByName("TJYZJDKCB_ZXJMSX").Value = dZXJMSX;
|
|
SQL.ParamByName("TJYZJDKCB_DYDJID").Value = sDYDJID;
|
|
SQL.ParamByName("TJYZJDKCB_KCHDYDJID").Value = sKCHDYDJID;
|
|
SQL.ParamByName("TJYZJDKCB_XXJGID").Value = sXXJGID;
|
|
SQL.ParamByName("TJYZJDKCB_YZID").Value = PageParam.GetRTrimString("YZID");
|
|
SQL.ParamByName("TJYZJDKCB_JDZ").Value = dYZZ;
|
|
SQL.ParamByName("TJYZJDKCB_WHR").Value = tSession.UserName;
|
|
SQL.ParamByName("TJYZJDKCB_WHRID").Value = tSession.UserId;
|
|
SQL.ParamByName("TJYZJDKCB_WHSJ").Value = DateTime.Now;
|
|
dberp.ExecSQL(SQL);
|
|
|
|
#endregion
|
|
|
|
}
|
|
SQL.Clear();
|
|
SQL.Add(@" SELECT TOP 1 TJYZJDKCB_KCQXLXHID,TJYZJDKCB_KCHXLXHID,TJYZJDKCB_XXJGID,TJYZJDKCB_DYDJID,TJYZJDKCB_ZXJMXX,TJYZJDKCB_ZXJMSX
|
|
FROM TJYZJDKCB A
|
|
WHERE EXISTS (
|
|
SELECT 1
|
|
FROM TJYZJDKCB B
|
|
WHERE
|
|
A.TJYZJDKCB_KCQXLXHID =B.TJYZJDKCB_KCQXLXHID
|
|
AND A.TJYZJDKCB_KCHXLXHID = B.TJYZJDKCB_KCHXLXHID
|
|
AND A.TJYZJDKCB_XXJGID = B.TJYZJDKCB_XXJGID
|
|
AND A.TJYZJDKCB_DYDJID=B.TJYZJDKCB_DYDJID
|
|
AND A.TJYZJDKCB_KCHDYDJID=B.TJYZJDKCB_KCHDYDJID AND A.TJYZJDKCB_YZID = B.TJYZJDKCB_YZID
|
|
AND (
|
|
(A.TJYZJDKCB_ZXJMXX BETWEEN B.TJYZJDKCB_ZXJMXX AND B.TJYZJDKCB_ZXJMSX)
|
|
OR (B.TJYZJDKCB_ZXJMXX BETWEEN A.TJYZJDKCB_ZXJMXX AND A.TJYZJDKCB_ZXJMSX)
|
|
OR (A.TJYZJDKCB_ZXJMSX = 0 AND B.TJYZJDKCB_ZXJMXX >= A.TJYZJDKCB_ZXJMXX)
|
|
OR (B.TJYZJDKCB_ZXJMSX = 0 AND A.TJYZJDKCB_ZXJMXX >= B.TJYZJDKCB_ZXJMXX)
|
|
)
|
|
AND (A.TJYZJDKCB_ZXJMXX <> B.TJYZJDKCB_ZXJMXX or A.TJYZJDKCB_ZXJMSX <> B.TJYZJDKCB_ZXJMSX)
|
|
) AND TJYZJDKCB_YZID=:pTJYZJDKCB_YZID ");
|
|
SQL.ParamByName("pTJYZJDKCB_YZID").Value = PageParam.GetRTrimString("YZID");
|
|
DataSet dsCF = dberp.OpenDataSet(SQL);
|
|
if (dsCF.Tables[0].Rows.Count > 0)
|
|
{
|
|
string sKCQXLXHID = dsCF.Tables[0].Rows[0]["TJYZJDKCB_KCQXLXHID"].ToString().Trim();
|
|
string sKCHXLXHID = dsCF.Tables[0].Rows[0]["TJYZJDKCB_KCHXLXHID"].ToString().Trim();
|
|
string sXXJGID = dsCF.Tables[0].Rows[0]["TJYZJDKCB_XXJGID"].ToString().Trim();
|
|
string sDYDJID = dsCF.Tables[0].Rows[0]["TJYZJDKCB_DYDJID"].ToString().Trim();
|
|
string sZXJMXX = dsCF.Tables[0].Rows[0]["TJYZJDKCB_ZXJMXX"].ToString().Trim();
|
|
string sZXJMSX = dsCF.Tables[0].Rows[0]["TJYZJDKCB_ZXJMSX"].ToString().Trim();
|
|
string sMSg = string.Format("导入后存在重叠数据{0} {1} {2} {3} {4},请检查!", sKCQXLXHID, sKCHXLXHID, sXXJGID, sDYDJID, "【" + sZXJMXX + "-" + sZXJMSX + "】");
|
|
throw new Exception(sMSg);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
private void ExcelColumnValid(DataSet ds, ref string sJDfields, ref bool hasZHJD, ref int JSFSIndex)
|
|
{
|
|
Dictionary<string, string> ColumnNames = new Dictionary<string, string>();
|
|
|
|
ColumnNames.Clear();
|
|
ColumnNames.Add("0", "扩充前线缆型号");
|
|
ColumnNames.Add("1", "扩充后线缆型号");
|
|
ColumnNames.Add("2", "电压等级");
|
|
ColumnNames.Add("3", "芯线结构");
|
|
ColumnNames.Add("4", "主芯截面 >= ");
|
|
ColumnNames.Add("5", "主芯截面 <=");
|
|
ColumnNames.Add("6", "扩充后电压等级");
|
|
ColumnNames.Add("7", "加点值");
|
|
|
|
foreach (KeyValuePair<string, string> kpv in ColumnNames)
|
|
{
|
|
if (!ds.Tables[0].Columns[CMISproConvert.StrToInt(kpv.Key.Trim())].ColumnName.Trim().Equals(kpv.Value.Trim()))
|
|
{
|
|
throw new Exception(string.Format("({0})列标题错误,该列为({1})", ds.Tables[0].Columns[CMISproConvert.StrToInt(kpv.Key.Trim())].ColumnName.Trim(), kpv.Value.Trim()));
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
private void ReadWJ(string sPath, ref DataSet aDataExcel)
|
|
{
|
|
string sMessage = "";
|
|
aDataExcel = TExcelData.ReadExcel(sPath.Trim(), "", "", false, ref sMessage);
|
|
if (!sMessage.Trim().Equals(""))
|
|
{
|
|
throw new Exception("文件读取失败!");
|
|
}
|
|
|
|
}
|
|
|
|
private bool ExistedXHID(string sXHID)
|
|
{
|
|
string sSQL = string.Format("select top 1 XLXHB_XLXHID from XLXHB where isnull(XLXHB_TYBZ,'N')<>'Y' and XLXHB_XLXHID ='{0}'", sXHID);
|
|
return CMISproDataBase.ExistsRecord("DBERP", sSQL);
|
|
}
|
|
|
|
private bool ExistedDYDJID(string sDYDJID)
|
|
{
|
|
string sSQL = string.Format("select top 1 XLDYDJB_DYDJID from XLDYDJB where isnull(XLDYDJB_TYBZ,'N')<>'Y' and XLDYDJB_DYDJID ='{0}'", sDYDJID);
|
|
return CMISproDataBase.ExistsRecord("DBERP", sSQL);
|
|
}
|
|
|
|
#endregion
|
|
|
|
}
|
|
}
|