This commit is contained in:
2026-08-21 17:03:02 +08:00
commit f065129b20
2292 changed files with 666241 additions and 0 deletions
+338
View File
@@ -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
}
}