Files
U20261363_N_XLXSBJ/XLBJD_WBBJDXDRInfo.aspx.cs
T
2026-10-09 10:25:33 +08:00

282 lines
12 KiB
C#

using System;
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_MISPRO.Utility;
using GThinking.N_CONTROL;
using System.IO;
using System.Data.OleDb;
using System.Data.Common;
using GThinking.N_MISPROAS;
using System.Collections.Generic;
using GThinking.N_PUBLIC2;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace GThinking.U20261363_N_XLXSBJ
{
[TableMap(DB = "DBERP", DbTableName = "XLWBBJDNR", Umid = 100860174, IsWorkFlow = false, IsAttach = false, UseWhr = false)]
public class XLBJD_WBBJDNR : EntityManager
{
}
public partial class XLBJD_WBBJDXDRInfo : SingleCardBase
{
XLBJD_WBBJDNR entity = new XLBJD_WBBJDNR();
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860174;
this.UMName = "外部线缆产品导入";
base.CurMaster = Master;
base.CurEntity = entity;
//this.PageHeight = 600;
//this.PageWidth = 1000;
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;
Server.ScriptTimeout = 3600;
XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000);
string sCPML = pzxx.XLXSBJPZ_XSCPML;
string sXSPWQD = pzxx.XLXSBJPZ_XSPWQD;
string sXSYXJ = PageParam.GetRTrimString("XSYXJ");
string sXSYZ = PageParam.GetRTrimString("XSYZ");
string sXSYSCP = PageParam.GetRTrimString("XSYSCP");
string sXSBH = PageParam.GetRTrimString("XSBH");
string sXSCPBJXJ = PageParam.GetRTrimString("XSCPBJXJ");
bool bXsGWBM = false;
int col = 0;
string stitle = "";
stitle += "序号,";
col++;
Dictionary<string, string> dicGDLM = XLBJD_WBBJDDRList.GetGDLM();
Dictionary<string, string> dicDRLM = XLBJD_WBBJDDRList.GetDRLM(sXSYXJ, sXSYSCP, sXSYZ, sXSBH, sXSCPBJXJ, sCPML, sXSPWQD, bXsGWBM, PageParam.GetRTrimString("BJDID"));
BJFLXX bjflxx = XLBJDUtils.GetBJFLXXByBJDID(PageParam.GetRTrimString("BJDID"));
if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JMBGSBM.Trim()))
{
dicGDLM["O"] = bjflxx.XLXSBJFL_JMBGSBM.Trim();
}
Dictionary<string, string> dicYZGDLM = XLWBBJDUtils.GetWBBJDYZZGDLM(PageParam.GetRTrimString("BJDID"));
foreach (KeyValuePair<string, string> kvp in dicYZGDLM)
dicGDLM[kvp.Key] = kvp.Value;
foreach (string stDRLM in dicDRLM.Keys)
{
stitle += dicGDLM[stDRLM] + ",";
col++;
}
stitle.TrimEnd(',');
txtCols.Value = col.ToString();
txtTitle.Value = stitle;
base.InitPage();
}
#region 控件事件
protected void btnQD_Click(object sender, EventArgs e)
{
DataTable dt = ConvertJsonToDataTable(txttabledata.Value);
int Rcount = CMISproConvert.StrToInt(GetOption(100860043, "BJU069"));
//int col = dt.Columns.Count;
XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000);
string sCPML = pzxx.XLXSBJPZ_XSCPML;
string sXSPWQD = pzxx.XLXSBJPZ_XSPWQD;
string sBJDID = PageParam.GetRTrimString("BJDID");
string sXSYXJ = PageParam.GetRTrimString("XSYXJ");
string sXSYZ = PageParam.GetRTrimString("XSYZ");
string sXSYSCP = PageParam.GetRTrimString("XSYSCP");
string sXSBH = PageParam.GetRTrimString("XSBH");
string sXSCPBJXJ = PageParam.GetRTrimString("XSCPBJXJ");
bool bXsGWBM = false;
string sHTBH = PageParam.GetRTrimString("HTBH");
int cols = dt.Columns.Count;
if (sBJDID.Equals(""))
{
sBJDID = " ";
}
int LastRows = 0;
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
if (!dt.Rows[i][j].ToString().Trim().Equals(""))
{
LastRows = i + 1;
break;
}
}
}
bool Success = false;
string sWBBJDID = "";
double pCount = 0;
string sDateTime = PageParam.GetRTrimString("txtTimeSpan").Split('|')[1];
string sWBBJDIDList = "";
int iZFS = 1;
Dictionary<string, string> dicDRLM = XLBJD_WBBJDDRList.GetDRLM(sXSYXJ, sXSYSCP, sXSYZ, sXSBH, sXSCPBJXJ, sCPML, sXSPWQD, bXsGWBM, sBJDID);
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sSQL = new TSQL(dberp);
try
{
dberp.BeginTrans();
sSQL.Clear();
sSQL.Add("insert into XLWBBJDNR(");
sSQL.Add(" XLWBBJDNR_BJDID, XLWBBJDNR_WBBJDID, XLWBBJDNR_DRHH, ");
sSQL.Add(" XLWBBJDNR_LMNR01, XLWBBJDNR_LMNR02, XLWBBJDNR_LMNR03, XLWBBJDNR_LMNR04, XLWBBJDNR_LMNR05, XLWBBJDNR_LMNR06,");
sSQL.Add(" XLWBBJDNR_LMNR07, XLWBBJDNR_LMNR08, XLWBBJDNR_LMNR09,XLWBBJDNR_LMNR10,XLWBBJDNR_LMNR11,XLWBBJDNR_LMNR12,XLWBBJDNR_LMNR13,XLWBBJDNR_LMNR14,XLWBBJDNR_LMNR15,XLWBBJDNR_LMNR16,XLWBBJDNR_LMNR17,XLWBBJDNR_LMNR18,");
sSQL.Add(" XLWBBJDNR_LMNR19,XLWBBJDNR_LMNR20,XLWBBJDNR_LMNR21,XLWBBJDNR_LMNR22,XLWBBJDNR_LMNR23,XLWBBJDNR_LMNR24,XLWBBJDNR_LMNR25)");
sSQL.Add("values (:XLWBBJDNR_BJDID, :XLWBBJDNR_WBBJDID, :XLWBBJDNR_DRHH, ");
sSQL.Add(" isnull(:XLWBBJDNR_LMNR01,' '), isnull(:XLWBBJDNR_LMNR02,' '), isnull(:XLWBBJDNR_LMNR03,' '), isnull(:XLWBBJDNR_LMNR04,' '), isnull(:XLWBBJDNR_LMNR05,' '), isnull(:XLWBBJDNR_LMNR06,' '),");
sSQL.Add(" isnull(:XLWBBJDNR_LMNR07,' '), isnull(:XLWBBJDNR_LMNR08,' '), isnull(:XLWBBJDNR_LMNR09,' '), isnull(:XLWBBJDNR_LMNR10,' '), isnull(:XLWBBJDNR_LMNR11,' '), isnull(:XLWBBJDNR_LMNR12,' '),");
sSQL.Add(" isnull(:XLWBBJDNR_LMNR13,' '), isnull(:XLWBBJDNR_LMNR14,' '), isnull(:XLWBBJDNR_LMNR15,' '), isnull(:XLWBBJDNR_LMNR16,' '), isnull(:XLWBBJDNR_LMNR17,' '), isnull(:XLWBBJDNR_LMNR18,' '),");
sSQL.Add(" isnull(:XLWBBJDNR_LMNR19,' '), isnull(:XLWBBJDNR_LMNR20,' '), isnull(:XLWBBJDNR_LMNR21,' '), isnull(:XLWBBJDNR_LMNR22,' '), isnull(:XLWBBJDNR_LMNR23,' '), isnull(:XLWBBJDNR_LMNR24,' '),");
sSQL.Add(" isnull(:XLWBBJDNR_LMNR25,' '))");
for (int i = 0; i < LastRows; i++)
{
if (i == Rcount * iZFS)
{
iZFS++;
sWBBJDID = XLWBBJDUtils.GetNewWBBJDID();
sWBBJDIDList += "," + sWBBJDID;
XLBJD_WBBJDDRList.InsertWBBJDML(sBJDID, sWBBJDID, sHTBH, sDateTime, tSession);
}
if (!Success)
{
sWBBJDID = XLWBBJDUtils.GetNewWBBJDID();
sWBBJDIDList += "," + sWBBJDID;
XLBJD_WBBJDDRList.InsertWBBJDML(sBJDID, sWBBJDID, sHTBH, sDateTime, tSession);
}
sSQL.ParamByName("XLWBBJDNR_BJDID").Value = sBJDID;
sSQL.ParamByName("XLWBBJDNR_WBBJDID").Value = sWBBJDID;
sSQL.ParamByName("XLWBBJDNR_DRHH").Value = (i + 1).ToString();
int iLM = 1;
foreach (string sKey in dicDRLM.Keys)
{
if (sKey.Equals("5") || sKey.Equals("6") || sKey.Equals("B") || sKey.Equals("G") || sKey.Equals("H") || sKey.Equals("P") || XLWBBJDUtils.IsWBBJDYZZLM(sKey))
sSQL.ParamByName("XLWBBJDNR_LMNR" + iLM.ToString().PadLeft(2, '0')).Value = CMISproConvert.StrToFloat(dt.Rows[i][iLM - 1].ToString().Trim()).ToString().Trim();
else
sSQL.ParamByName("XLWBBJDNR_LMNR" + iLM.ToString().PadLeft(2, '0')).Value = dt.Rows[i][iLM - 1].ToString().Trim().Equals("") ? " " : dt.Rows[i][iLM - 1].ToString().Trim();
iLM++;
}
if (iLM < 26)
{
for (; iLM < 26; iLM++)
{
sSQL.ParamByName("XLWBBJDNR_LMNR" + iLM.ToString().PadLeft(2, '0')).Value = " ";
}
}
dberp.ExecSQL(sSQL);
pCount++;
Success = true;
}
if (Success)
{
string[] sWBBJDID_list = sWBBJDIDList.TrimStart(',').Split(',');
int iMLFZH = CMISproDataBase.GetMaxXH("DBERP", "XLWBBJDML", "XLWBBJDML_MLFZH", "") + 1;
for (int i = 0; i < sWBBJDID_list.Length; i++)
//插入默认数据
XLBJD_WBBJDDRList.ComplementXLWBBJDML(sWBBJDID_list[i], sBJDID, sDateTime, pCount.ToString().Trim(), i + 1, iZFS, iMLFZH, sXSYXJ, sXSYZ, sXSYSCP, sXSBH, sXSCPBJXJ, "Y", tSession);
//处理规格列
//XLBJD_WBBJDNRList.ConvertWBBJDMX_XLBZID(dberp, sSQL, sWBBJDID, sBJDID, sDateTime, tSession.UserId, XLBJDUtils.GetDefaultXLBZID());
}
dberp.CommitTrans();
DialogOperationScript dos = new DialogOperationScript(this);
//dos.SetOwnerControlValue(PageParam.GetRTrimString("txtOpen"), "CLOSE");
dos.CloseSelf();
dos.Execute();
}
catch (Exception ex)
{
Success = false;
dberp.RollbackTrans();
ShowMessage(ex.Message);
}
}
protected void btnQX_Click(object sender, EventArgs e)
{
CloseWindow();
}
#endregion
#region 自定义事件
public DataTable ConvertJsonToDataTable(string jsonData)
{
DataTable dataTable = new DataTable();
// 将JSON数据转换为JArray
JArray jsonArray = JArray.Parse(jsonData);
int index2 = 0;
// 创建表的列
if (jsonArray.Count > 0)
{
foreach (JToken token in jsonArray[0])
{
//第一列是标题,所以去掉
if (index2 > 0)
{
// 获取所有子元素
foreach (JToken child in token.Children())
{
dataTable.Columns.Add(child.ToString(), typeof(string));
break;
}
}
index2++;
}
}
int index = 0;
// 将JSON数据填充到DataTable中
foreach (JObject jsonObject in jsonArray)
{
//第一行是标题,所以去掉
if (index > 0)
{
index2 = 0;
DataRow row = dataTable.NewRow();
foreach (JProperty property in jsonObject.Properties())
{
//第一列是标题,所以去掉
if (index2 > 0)
{
row[property.Name] = property.Value.ToString();
}
index2++;
}
dataTable.Rows.Add(row);
}
index++;
}
return dataTable;
}
#endregion
}
}