2026821
This commit is contained in:
@@ -0,0 +1,338 @@
|
||||
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
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user