Files
N_XLXSBJ----MX/JGCZBDR.aspx.cs
T
2026-08-21 17:03:02 +08:00

1549 lines
76 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_MISPRO.TableCache;
namespace GThinking.N_XLXSBJ
{
public partial class JGCZBDR : SingleCardBase
{
JGCZBDRB entity = new JGCZBDRB();
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860020;
this.UMName = "线缆销售报价结构尺重表";
base.CurMaster = Master;
base.CurEntity = entity;
this.PageHeight = 200;
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;
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;
if (!IsPostBack)
{
cbxDRNR.ClearItems();
if (CheckModuleInsert("102573000"))
{
cbxDRNR.Items.Add(new ListItem("报价产品(Km)=型号|规格|标准|电压等级|颜色|物料编码|外径|最小弯曲倍数|导体结构信息|定制项目|材料用量(Kg)", "YL_Km"));
cbxDRNR.Items.Add(new ListItem("报价产品(M)=型号|规格|标准|电压等级|颜色|物料编码|外径|最小弯曲倍数|导体结构信息|定制项目|材料用量(Kg)", "YL_M"));
lblSM.Text = "外径|最小弯曲倍数|导体结构信息|定制项目栏目可选";
lblSM.Visible = true;
}
else if (CheckModule("101421012"))
{
cbxDRNR.Items.Add(new ListItem("报价产品(Km)=型号|规格|标准|电压等级|颜色|物料编码|外径|最小弯曲倍数|导体结构信息|材料用量(Kg)", "YL_Km"));
cbxDRNR.Items.Add(new ListItem("报价产品(M)=型号|规格|标准|电压等级|颜色|物料编码|外径|最小弯曲倍数|导体结构信息|材料用量(Kg)", "YL_M"));
lblSM.Visible = true;
}
else
{
cbxDRNR.Items.Add(new ListItem("报价产品(Km)=型号|规格|标准|电压等级|材料用量(Kg)", "YL_Km"));
cbxDRNR.Items.Add(new ListItem("报价产品(M)=型号|规格|标准|电压等级|材料用量(Kg)", "YL_M"));
lblSM.Visible = false;
}
//2019/8/29 LF去除以下两选项
//cbxDRNR.Items.Add(new ListItem("报价产品(Km)=型号|规格|标准|电压等级|材料用量(Kg)|损耗系数(%)", "YLSH_Km"));
//cbxDRNR.Items.Add(new ListItem("报价产品( M)=型号|规格|标准|电压等级|材料用量(Kg)|损耗系数(%)", "YLSH_M"));
if (PageParam.GetRTrimString("CZBJLDW").Equals("1"))
cbxDRNR.SelectedValue = "YL_Km";
else
cbxDRNR.SelectedValue = "YL_M";
chkSheet.Checked = false;
cbxSheetList.Enabled = false;
}
}
#region 控件事件
protected void btnQD_Click(object sender, EventArgs e)
{
if (fupdPost.FileName.Equals(""))
{
ShowMessage("请选择需要导入的文件!");
return;
}
else
{
if (!txtLastPath.Value.Trim().Equals(""))
{
if ((fupdPost.FilePath != txtLastPath.Value) && !cbxSheetList.SelectedValue.Trim().Equals(""))
{
ShowMessage("导入文件已发生变化,请重新指定导入页面!");
chkSheet_CheckedChanged(null, null);
return;
}
}
}
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sSQL = new TSQL(dberp);
string sJGCZBID = PageParam.GetRTrimString("JGCZBID");
if (PageParam.GetRTrimString("JGCZBID").Equals(""))
{
Confirm.Register("IsQD", "当前未选择结构尺重表,是否自动生成尺重表?");
Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No;
if (Confirm.GetValue("IsQD").Trim().Equals(""))
{
Confirm.Ask("IsQD");
return;
}
else if (Confirm.GetValue("IsQD").Trim().Equals("N"))
{
//表示进行了提示并选择了取消,直接返回或其他处理
Confirm.Clear();
return;
}
else if (Confirm.GetValue("IsQD").Trim().Equals("Y"))
{
//表示进行了提示并选择了确认
Confirm.Clear();
sJGCZBID = GetNewID();
sSQL.Clear();
sSQL.Add(@" insert into XLJGCZBML(XLJGCZBML_JGCZBID,XLJGCZBML_JGCZBBBID,XLJGCZBML_JGCZBMC,XLJGCZBML_XLBZBN,XLJGCZBML_DYDJBN,
XLJGCZBML_WHRID,XLJGCZBML_WHR,XLJGCZBML_WHSJ,XLJGCZBML_GGHLX,XLJGCZBML_XLXHBN,XLJGCZBML_CPMLID,
XLJGCZBML_CZBJLDW,XLJGCZBML_CZBLX,XLJGCZBML_FZR,XLJGCZBML_XLGGDW )
values(:pJGCZBID,'1.0',:pJGCZBMC,'Y','Y',:pWHRID,:pWHR,:pWHSJ,'1','Y','ZZ','1','B' ,:pWHR,'mm2' )");
sSQL.ParamByName("pJGCZBID").Value=sJGCZBID;
sSQL.ParamByName("pJGCZBMC").Value = sJGCZBID + "|由系统自动生成";
sSQL.ParamByName("pWHRID").Value = tSession.UserId;
sSQL.ParamByName("pWHR").Value = tSession.UserName;
sSQL.ParamByName("pWHSJ").Value = DateTime.Now;
dberp.ExecSQL(sSQL);
}
}
//获取的导入类型
string sParamValue = PageParam.GetRTrimString("DRLX");
string sBJCLList = "";
//构造尺重表使用到的报价材料
//lstBJCL允许存储重复的报价材料名称
//使用下标存储对应的材料清单列
List<string> lstBJCL = new List<string>();
lstBJCL.Clear();
try
{
dberp.BeginTrans();
//CLQDL- BJCLMC -BJCLMCACT
Dictionary<string, string> dicCLMC = new Dictionary<string, string>();
if (sParamValue.Equals("CLQDL"))
{
for (int i = 1; i <= 80; i++)
{
string sCLQDL = "第" + i.ToString().PadLeft(2, '0') + "列";
dicCLMC.Add(sCLQDL, sCLQDL);
}
}
else if (sParamValue.Equals("BJCLMC"))
{
sSQL.Clear();
sSQL.Add("select XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC");
sSQL.Add(" from XLXSBJCL");
sSQL.Add(" where 1=1 and isnull(XLXSBJCL_TYBZ,'N') <> 'Y' ");
sSQL.Add(" order by isnull(XLXSBJCL_TYBZ,'N'),XLXSBJCL_BJCLID");
DataSet dsCL = dberp.OpenDataSet(sSQL);
if (dsCL.Tables[0].Rows.Count > 80)
{
for (int i = 0; i < 80; i++)
{
string sCLQDL = "第" + Convert.ToString(i + 1).PadLeft(2, '0') + "列";
dicCLMC.Add(sCLQDL, dsCL.Tables[0].Rows[i]["XLXSBJCL_BJCLMC"].ToString().Trim());
}
}
else
{
for (int i = 0; i < dsCL.Tables[0].Rows.Count; i++)
{
string sCLQDL = "第" + Convert.ToString(i + 1).PadLeft(2, '0') + "列";
dicCLMC.Add(sCLQDL, dsCL.Tables[0].Rows[i]["XLXSBJCL_BJCLMC"].ToString().Trim());
}
}
}
else if (sParamValue.Equals("BJCLMCACT"))
{
sSQL.Clear();
sSQL.Add("select XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC");
sSQL.Add(" from XLXSBJCL");
sSQL.Add(" where 1=1 and isnull(XLXSBJCL_TYBZ,'N') <> 'Y' ");
sSQL.Add(" order by isnull(XLXSBJCL_TYBZ,'N'),XLXSBJCL_BJCLID");
DataSet dsCL = dberp.OpenDataSet(sSQL);
if (dsCL.Tables[0].Rows.Count > 0)
{
for (int i = 0; i < dsCL.Tables[0].Rows.Count; i++)
{
if (!dicCLMC.ContainsKey(dsCL.Tables[0].Rows[i]["XLXSBJCL_BJCLMC"].ToString().Trim()))
{
dicCLMC.Add(dsCL.Tables[0].Rows[i]["XLXSBJCL_BJCLMC"].ToString().Trim(), dsCL.Tables[0].Rows[i]["XLXSBJCL_BJCLID"].ToString().Trim());
}
}
}
}
string sDRSJ = DateTime.Now.ToString();
if (cbxSheetList.SelectedValue.Trim().Equals(""))
{
DataSet aDataExcel = new DataSet();
if (AppRuntime.BitType == AppBitType.Bit32)
aDataExcel = XLBJDUtils.ReadFromExcelFile(fupdPost.FilePath, false, "");
else // AppBitType.Bit64
ReadWJ(fupdPost.FilePath, "", ref aDataExcel);
InsertXLXHID(dberp, sSQL, aDataExcel);
XLCPWH( dberp, sSQL, ref aDataExcel);
InsertBJCL(dberp, sSQL, aDataExcel, sParamValue, ref dicCLMC);
ExcelColumnValid(aDataExcel, dicCLMC, sParamValue, ref lstBJCL, ref sBJCLList);
ValidDRNR(sJGCZBID, aDataExcel);//引入涵盖范围的约束
string sFileName = fupdPost.FileName;
string sSheetName = GetDefaultSheetName(fupdPost.FilePath);
ExecDRSQL(dberp, sSQL, aDataExcel, dicCLMC, sJGCZBID, sDRSJ, sParamValue, lstBJCL, sBJCLList, sFileName, sSheetName);
}
else
{
string[] sSheetList = cbxSheetList.SelectedValue.Split(',');
for (int i = 0; i < sSheetList.Length; i++)
{
DataSet aDataExcel = new DataSet();
if (AppRuntime.BitType == AppBitType.Bit32)
aDataExcel = XLBJDUtils.ReadFromExcelFile(fupdPost.FilePath, false, sSheetList[i]);
else // AppBitType.Bit64
ReadWJ(fupdPost.FilePath, sSheetList[i], ref aDataExcel);
InsertXLXHID(dberp, sSQL, aDataExcel);
XLCPWH(dberp, sSQL, ref aDataExcel);
InsertBJCL(dberp, sSQL, aDataExcel, sParamValue,ref dicCLMC);
ExcelColumnValid(aDataExcel, dicCLMC, sParamValue, ref lstBJCL, ref sBJCLList);
ValidDRNR(sJGCZBID, aDataExcel);//引入涵盖范围的约束
string sFileName = fupdPost.FileName;
string sSheetName = sSheetList[i];
ExecDRSQL(dberp, sSQL, aDataExcel, dicCLMC, sJGCZBID, sDRSJ, sParamValue, lstBJCL, sBJCLList, sFileName, sSheetName);
}
}
dberp.CommitTrans();
DialogOperationScript dos = new DialogOperationScript(this);
dos.SetOwnerControlValue(PageParam.GetRTrimString("txtCallBackDRSJCID"), sDRSJ);
dos.SetOwnerControlValue(PageParam.GetRTrimString("txtCallBackFlagCID"), sParamValue);
if (PageParam.ContainsKey("txtCallBackJGCZBIDCID"))
dos.SetOwnerControlValue(PageParam.GetRTrimString("txtCallBackJGCZBIDCID"), sJGCZBID);
dos.CloseSelf();
dos.Execute();
}
catch (Exception ex)
{
dberp.RollbackTrans();
ShowMessage(ex.Message);
return;
}
}
protected void btnQX_Click(object sender, EventArgs e)
{
CloseWindow();
}
protected void chkSheet_CheckedChanged(object sender, EventArgs e)
{
if (chkSheet.Checked)
{
if (fupdPost.FileName.Equals(""))
{
ShowMessage("请选择需要导入的文件!");
chkSheet.Checked = false;
return;
}
cbxSheetList.Enabled = true;
cbxSheetList.ClearItems();
cbxSheetList.SelectedValue = "";
string connStr = GetConnString(fupdPost.FilePath);
OleDbConnection m_conn = new OleDbConnection(connStr);
m_conn.Open();
DataTable sheetNames = m_conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
if (sheetNames.Rows[0].Table.Rows.Count == 1)
{
string sSheetName = sheetNames.Rows[0].Table.Rows[0]["TABLE_NAME"].ToString().Trim();
if (sSheetName.StartsWith("'") && sSheetName.EndsWith("'"))
sSheetName = sSheetName.TrimStart('\'').TrimEnd('\'');
if (sSheetName.EndsWith("$"))
sSheetName = sSheetName.TrimEnd('$');
cbxSheetList.Items.Add(new ListItem(sSheetName, sSheetName));
cbxSheetList.SelectedValue = sSheetName;
}
else
{
bool bAutoSel = false;//需要自动选中sheet页
if (fupdPost.FileName.Equals(PageParam.GetRTrimString("EXCEL")))
bAutoSel = true;
for (int i = 0; i < sheetNames.Rows[0].Table.Rows.Count; i++)
{
string sSheetName = sheetNames.Rows[0].Table.Rows[i]["TABLE_NAME"].ToString().Trim();
if (sSheetName.StartsWith("'") && sSheetName.EndsWith("'"))
sSheetName = sSheetName.TrimStart('\'').TrimEnd('\'');
if (sSheetName.EndsWith("$"))
sSheetName = sSheetName.TrimEnd('$');
cbxSheetList.Items.Add(new ListItem(sSheetName, sSheetName));
if (bAutoSel)
{
if (sSheetName.Equals(PageParam.GetRTrimString("SHEET").Replace('.','#')))
cbxSheetList.SelectedValue = sSheetName;
}
}
}
if (m_conn.State == ConnectionState.Open)
{
m_conn.Dispose();
m_conn = null;
}
txtLastPath.Value = fupdPost.FilePath;
FormAreaUpdate();
}
else
{
cbxSheetList.ClearItems();
cbxSheetList.SelectedValue = "";
cbxSheetList.Enabled = false;
FormAreaUpdate();
}
}
// 根据32/64位运行时返回不同的连接字符串。
private string GetConnString(string sPath)
{
string conn;
if (AppRuntime.BitType == AppBitType.Bit32)
{
conn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + sPath + ";" + "Extended Properties=Excel 8.0;";
//conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sPath + @";Extended Properties=""Excel 8.0;IMEX=1;ImportMixedTypes=Text""";
}
else // AppBitType.Bit64
{
conn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + sPath + ";" + "Extended Properties=Excel 8.0;";
}
return conn;
}
#endregion
#region 自定义事件
private void ExecDRSQL(TDatabase dberp, TSQL sSQL, DataSet ds, Dictionary<string, string> dicCLMC, string sJGCZBID, string sDRSJ,
string sParamValue, List<string> lstBJCL, string sBJCLList, string sFileName, string sSheetName)
{
Mac.MacLog.TraceFormat("开始导入尺重表,工号:{0},时间:{1},行数:{2}", tSession.UserId, DateTime.Now, ds.Tables[0].Rows.Count);
//导入时间<-->版本号
string sJGCZBBBID = PageParam.GetRTrimString("JGCZBBBID");
if (sJGCZBBBID.Equals(""))
sJGCZBBBID = "1.0";
sSQL.Clear();
sSQL.Add("delete from XLJGCZBLM where XLJGCZBLM_JGCZBID=:pJGCZBID");
sSQL.ParamByName("pJGCZBID").Value = sJGCZBID;
dberp.ExecSQL(sSQL);
sSQL.Clear();
sSQL.Add("delete from XLJGCZBNR where XLJGCZBNR_JGCZBID=:pJGCZBID");
sSQL.ParamByName("pJGCZBID").Value = sJGCZBID;
dberp.ExecSQL(sSQL);
sSQL.Clear();
sSQL.Add("delete from XLXHJGCZBML where XLXHJGCZBML_JGCZBID=:pJGCZBID and XLXHJGCZBML_JGCZBXH>0");
sSQL.ParamByName("pJGCZBID").Value = sJGCZBID;
dberp.ExecSQL(sSQL);
sSQL.Clear();
sSQL.Add("delete from XLXHJGCZBNR where XLXHJGCZBNR_JGCZBID=:pJGCZBID");
sSQL.ParamByName("pJGCZBID").Value = sJGCZBID;
dberp.ExecSQL(sSQL);
Mac.MacLog.TraceFormat("清空已导入数据,工号:{0},时间:{1}", tSession.UserId, DateTime.Now);
#region 更新XLJGCZBML
sSQL.Clear();
sSQL.Add("update XLJGCZBML set ");
sSQL.Add("XLJGCZBML_EXCEL=:pEXCEL,");
sSQL.Add("XLJGCZBML_SHEET=:pSHEET,");
sSQL.Add("XLJGCZBML_LMHHS=1,");
sSQL.Add("XLJGCZBML_LMHHZ=1,");
sSQL.Add("XLJGCZBML_NRHHS=2,");
sSQL.Add("XLJGCZBML_NRHHZ=:pNRHHZ,");
sSQL.Add("XLJGCZBML_DRSJ=:pDRSJ");
sSQL.Add(" where XLJGCZBML_JGCZBID=:pJGCZBID");
sSQL.ParamByName("pEXCEL").Value = sFileName;
sSQL.ParamByName("pSHEET").Value = sSheetName;
sSQL.ParamByName("pNRHHZ").Value = ds.Tables[0].Rows.Count;
sSQL.ParamByName("pDRSJ").Value = sDRSJ;
sSQL.ParamByName("pJGCZBID").Value = sJGCZBID;
dberp.ExecSQL(sSQL);
Mac.MacLog.TraceFormat("更新XLJGCZBML,工号:{0},时间:{1}", tSession.UserId, DateTime.Now);
#endregion
#region 插入型号、规格、标准、电压等级栏目
//2005语法不支持value(),()
sSQL.Clear();
sSQL.Add("insert into XLJGCZBLM(");
sSQL.Add("XLJGCZBLM_JGCZBID,XLJGCZBLM_JGCZBBBID,XLJGCZBLM_CZBLMBH,XLJGCZBLM_CZBLMMC,");
sSQL.Add("XLJGCZBLM_HLMLX,XLJGCZBLM_ZDLMLX,XLJGCZBLM_CLQDL,XLJGCZBLM_BJCLID,");
sSQL.Add("XLJGCZBLM_WHRID,XLJGCZBLM_WHR,XLJGCZBLM_WHSJ) ");
sSQL.Add("values ");
sSQL.Add(string.Format("('{0}','{1}','{2}','{3}','{4}','{5}',null,null,'{6}','{7}','{8}') ", sJGCZBID, sJGCZBBBID, "01", "型号", "Z", "2", tSession.UserId, tSession.UserName, DateTime.Now));
dberp.ExecSQL(sSQL);
Mac.MacLog.TraceFormat("插入型号栏目,工号:{0},时间:{1}", tSession.UserId, DateTime.Now);
sSQL.Clear();
sSQL.Add("insert into XLJGCZBLM(");
sSQL.Add("XLJGCZBLM_JGCZBID,XLJGCZBLM_JGCZBBBID,XLJGCZBLM_CZBLMBH,XLJGCZBLM_CZBLMMC,");
sSQL.Add("XLJGCZBLM_HLMLX,XLJGCZBLM_ZDLMLX,XLJGCZBLM_CLQDL,XLJGCZBLM_BJCLID,");
sSQL.Add("XLJGCZBLM_WHRID,XLJGCZBLM_WHR,XLJGCZBLM_WHSJ) ");
sSQL.Add("values ");
sSQL.Add(string.Format("('{0}','{1}','{2}','{3}','{4}','{5}',null,null,'{6}','{7}','{8}') ", sJGCZBID, sJGCZBBBID, "02", "规格", "Z", "3", tSession.UserId, tSession.UserName, DateTime.Now));
dberp.ExecSQL(sSQL);
Mac.MacLog.TraceFormat("插入规格栏目,工号:{0},时间:{1}", tSession.UserId, DateTime.Now);
sSQL.Clear();
sSQL.Add("insert into XLJGCZBLM(");
sSQL.Add("XLJGCZBLM_JGCZBID,XLJGCZBLM_JGCZBBBID,XLJGCZBLM_CZBLMBH,XLJGCZBLM_CZBLMMC,");
sSQL.Add("XLJGCZBLM_HLMLX,XLJGCZBLM_ZDLMLX,XLJGCZBLM_CLQDL,XLJGCZBLM_BJCLID,");
sSQL.Add("XLJGCZBLM_WHRID,XLJGCZBLM_WHR,XLJGCZBLM_WHSJ) ");
sSQL.Add("values ");
sSQL.Add(string.Format("('{0}','{1}','{2}','{3}','{4}','{5}',null,null,'{6}','{7}','{8}') ", sJGCZBID, sJGCZBBBID, "03", "标准", "Z", "0", tSession.UserId, tSession.UserName, DateTime.Now));
dberp.ExecSQL(sSQL);
Mac.MacLog.TraceFormat("插入标准栏目,工号:{0},时间:{1}", tSession.UserId, DateTime.Now);
sSQL.Clear();
sSQL.Add("insert into XLJGCZBLM(");
sSQL.Add("XLJGCZBLM_JGCZBID,XLJGCZBLM_JGCZBBBID,XLJGCZBLM_CZBLMBH,XLJGCZBLM_CZBLMMC,");
sSQL.Add("XLJGCZBLM_HLMLX,XLJGCZBLM_ZDLMLX,XLJGCZBLM_CLQDL,XLJGCZBLM_BJCLID,");
sSQL.Add("XLJGCZBLM_WHRID,XLJGCZBLM_WHR,XLJGCZBLM_WHSJ) ");
sSQL.Add("values ");
sSQL.Add(string.Format("('{0}','{1}','{2}','{3}','{4}','{5}',null,null,'{6}','{7}','{8}') ", sJGCZBID, sJGCZBBBID, "04", "电压等级", "Z", "1", tSession.UserId, tSession.UserName, DateTime.Now));
dberp.ExecSQL(sSQL);
Mac.MacLog.TraceFormat("插入电压等级栏目,工号:{0},时间:{1}", tSession.UserId, DateTime.Now);
#endregion
#region 插入材料用量栏目
sSQL.Clear();
sSQL.Add("select XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC");
sSQL.Add(" from XLXSBJCL ");
sSQL.Add(" where 1=1 and isnull(XLXSBJCL_TYBZ,'N') <> 'Y' ");
//当可以导入部分报价材料时,结构尺重表的尺重表栏目应当根据报价材料,以报价材料编码顺序生成,
if (sParamValue.Equals("BJCLMCACT"))
{
sSQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJCL_BJCLID", sBJCLList));
}
sSQL.Add(" order by isnull(XLXSBJCL_TYBZ,'N'),XLXSBJCL_BJCLID");
DataSet dsCL = dberp.OpenDataSet(sSQL);
Mac.MacLog.TraceFormat("插入材料用量栏目-查询,工号:{0},时间:{1}", tSession.UserId, DateTime.Now);
if (dsCL.Tables[0].Rows.Count > 0)
{
sSQL.Clear();
sSQL.Add("insert into XLJGCZBLM(");
sSQL.Add("XLJGCZBLM_JGCZBID,XLJGCZBLM_JGCZBBBID,XLJGCZBLM_CZBLMBH,XLJGCZBLM_CZBLMMC,");
sSQL.Add("XLJGCZBLM_HLMLX,XLJGCZBLM_ZDLMLX,XLJGCZBLM_CLQDL,XLJGCZBLM_BJCLID,");
sSQL.Add("XLJGCZBLM_WHRID,XLJGCZBLM_WHR,XLJGCZBLM_WHSJ) ");
sSQL.Add("values ( ");
sSQL.Add(":XLJGCZBLM_JGCZBID,:XLJGCZBLM_JGCZBBBID,:XLJGCZBLM_CZBLMBH,:XLJGCZBLM_CZBLMMC,");
sSQL.Add(":XLJGCZBLM_HLMLX,:XLJGCZBLM_ZDLMLX,:XLJGCZBLM_CLQDL,:XLJGCZBLM_BJCLID,");
sSQL.Add(":XLJGCZBLM_WHRID,:XLJGCZBLM_WHR,:XLJGCZBLM_WHSJ ");
sSQL.Add(") ");
if (sParamValue.Equals("BJCLMCACT"))
{
for (int i = 0; i < dsCL.Tables[0].Rows.Count; i++)
{
//使用下标比遍历
for (int ai = 0; ai < lstBJCL.Count; ai++)
{
if (dsCL.Tables[0].Rows[i]["XLXSBJCL_BJCLID"].ToString().Trim().Equals(lstBJCL[ai]))
{
sSQL.Params.Clear();
sSQL.ParamByName("XLJGCZBLM_JGCZBID").Value = sJGCZBID;
sSQL.ParamByName("XLJGCZBLM_JGCZBBBID").Value = sJGCZBBBID;
sSQL.ParamByName("XLJGCZBLM_CZBLMBH").Value = (ai + 5).ToString().Trim().PadLeft(2, '0');
sSQL.ParamByName("XLJGCZBLM_CZBLMMC").Value = dsCL.Tables[0].Rows[i]["XLXSBJCL_BJCLMC"].ToString().Trim();
sSQL.ParamByName("XLJGCZBLM_HLMLX").Value = "Z";
sSQL.ParamByName("XLJGCZBLM_ZDLMLX").Value = "4";
sSQL.ParamByName("XLJGCZBLM_CLQDL").Value = "第" + (ai + 1).ToString().Trim().PadLeft(2, '0') + "列";
sSQL.ParamByName("XLJGCZBLM_BJCLID").Value = dsCL.Tables[0].Rows[i]["XLXSBJCL_BJCLID"].ToString().Trim();
sSQL.ParamByName("XLJGCZBLM_WHRID").Value = tSession.UserId;
sSQL.ParamByName("XLJGCZBLM_WHR").Value = tSession.UserName;
sSQL.ParamByName("XLJGCZBLM_WHSJ").Value = DateTime.Now;
dberp.ExecSQL(sSQL);
}
}
}
}
else
{
for (int i = 0; i < dsCL.Tables[0].Rows.Count; i++)
{
if (i < 80)
{
sSQL.Params.Clear();
sSQL.ParamByName("XLJGCZBLM_JGCZBID").Value = sJGCZBID;
sSQL.ParamByName("XLJGCZBLM_JGCZBBBID").Value = sJGCZBBBID;
sSQL.ParamByName("XLJGCZBLM_CZBLMBH").Value = Convert.ToString(i + 1 + 4).PadLeft(2, '0');
sSQL.ParamByName("XLJGCZBLM_CZBLMMC").Value = dsCL.Tables[0].Rows[i]["XLXSBJCL_BJCLMC"].ToString().Trim();
sSQL.ParamByName("XLJGCZBLM_HLMLX").Value = "Z";
sSQL.ParamByName("XLJGCZBLM_ZDLMLX").Value = "4";
sSQL.ParamByName("XLJGCZBLM_CLQDL").Value = "第" + Convert.ToString(i + 1).PadLeft(2, '0') + "列";
sSQL.ParamByName("XLJGCZBLM_BJCLID").Value = dsCL.Tables[0].Rows[i]["XLXSBJCL_BJCLID"].ToString().Trim();
sSQL.ParamByName("XLJGCZBLM_WHRID").Value = tSession.UserId;
sSQL.ParamByName("XLJGCZBLM_WHR").Value = tSession.UserName;
sSQL.ParamByName("XLJGCZBLM_WHSJ").Value = DateTime.Now;
dberp.ExecSQL(sSQL);
}
}
}
Mac.MacLog.TraceFormat("插入材料用量栏目-完成,工号:{0},时间:{1}", tSession.UserId, DateTime.Now);
}
#endregion
#region 读取sheet内容、自第二行始逐行插入XLJGCZBNR
Dictionary<int, string> dicCLQDL = new Dictionary<int, string>();
int iCLCol = 4;
int iDRHH = 2;//去除第1行栏目行,导入行号默认从2开始
string sXLXHID = "";
string sXLGGID = "";
string sXLBZID = "";
string sDYDJ = "";
double dSL = 0.0;
string sSL = "";
string sDefaultXLBZID = XLBJDUtils.GetDefaultXLBZID();
string sColumnName = "";
string NR = "";
//形成标准集合
Dictionary<string, string> dicDRMXBZ = new Dictionary<string, string>();
dicDRMXBZ.Clear();
sSQL.Clear();
sSQL.Add("select XLBZ_XLBZID,XLBZ_XLBZLXMC from XLBZ where 1 = 1 ");
DataSet dsXLBZ = dberp.OpenDataSet(sSQL);
if (dsXLBZ.Tables[0].Rows.Count > 0)
{
for (int i = 0; i < dsXLBZ.Tables[0].Rows.Count; i++)
{
dicDRMXBZ.Add(dsXLBZ.Tables[0].Rows[i]["XLBZ_XLBZID"].ToString().Trim(), dsXLBZ.Tables[0].Rows[i]["XLBZ_XLBZLXMC"].ToString().Trim());
}
}
//导入时保持excel形式
if (sParamValue.Equals("BJCLMCACT"))
{
foreach (DataRow Row in ds.Tables[0].Rows)
{
//数据集第一行为栏目行,跳过
if (Row.Equals(ds.Tables[0].Rows[0]))
continue;
sXLXHID = sGetCellTest(Row, 0);
if (sXLXHID.Length > 60)
sXLXHID = "ERROR:内容超长,最多60个字符";
sXLGGID = sGetCellTest(Row, 1);
if (sXLGGID.Length > 60)
sXLGGID = "ERROR:内容超长,最多60个字符";
sXLBZID = XLBJDUtils.GetBZXLZBZID(sGetCellTest(Row, 2), sDefaultXLBZID, dicDRMXBZ);
if (sXLBZID.Length > 60)
sXLBZID = "ERROR:内容超长,最多60个字符";
sDYDJ = sGetCellTest(Row, 3).Replace('K', 'k').Replace('v', 'V');
if (sDYDJ.Equals(""))
sDYDJ = " ";
if (sDYDJ.Length > 60)
sDYDJ = "ERROR:内容超长,最多60个字符";
//导入XLJGCZBNR
sSQL.Clear();
sSQL.Add(" insert into XLJGCZBNR(XLJGCZBNR_LMNR01,XLJGCZBNR_LMNR02,XLJGCZBNR_LMNR03,XLJGCZBNR_LMNR04, ");
sSQL.Add(" XLJGCZBNR_WHRID,XLJGCZBNR_WHR,XLJGCZBNR_WHSJ, ");
//根据lstBJCL记录数生成内容0X
for (int iIndexLM = 1; iIndexLM <= lstBJCL.Count; iIndexLM++)
{
//得到名称
sColumnName = ds.Tables[0].Rows[0][iIndexLM + 3].ToString().Trim();
//从1开始,只加4
NR = (iIndexLM + 4).ToString().Trim().PadLeft(2, '0');
sSQL.Add(string.Format("XLJGCZBNR_LMNR{0},", NR));
}
sSQL.Add("XLJGCZBNR_JGCZBID, XLJGCZBNR_JGCZBBBID, XLJGCZBNR_DRHH) ");
sSQL.Add(" values(:pXLXHID,:pXLGGID,:pXLBZID,:pDYDJID,");
sSQL.Add(":pWHRID,:pWHR,:pWHSJ,");
//单行中循环列-从数量列开始
//dicCLMC存储所有的 名称-ID
//dicBJCLID存储栏目行使用到的 ID-材料清单列 - 按照报价材料名称排序
for (int iIndexLM = 1; iIndexLM <= lstBJCL.Count; iIndexLM++)
{
//得到名称
sColumnName = ds.Tables[0].Rows[0][iIndexLM + 3].ToString().Trim();
dSL = CMISproConvert.StrToFloat(sGetCellTest(Row, iIndexLM + 3), 0);
NR = (iIndexLM + 4).ToString().Trim().PadLeft(2, '0');
/*
* 保持原Excel形式,此处不进行转换。
if (cbxDRNR.SelectedValue.Trim().Equals("YL_Km") && GetOption(100860002, "BJU003").Equals("M"))
{
dSL = dSL / 1000;
}
if (cbxDRNR.SelectedValue.Trim().Equals("YL_M") && GetOption(100860002, "BJU003").Equals("Km"))
{
dSL = dSL * 1000;
}
*/
sSQL.Add(string.Format(":XLJGCZBNR_LMNR{0},", NR));
sSL = dSL.ToString().Trim();
if (iIndexLM == 5)
{
if (sSL.Length > 60)
sSL = "ERROR:内容超长,最多60个字符";
}
else
{
if (sSL.Length > 30)
sSL = "ERROR:内容超长,最多30个字符";
}
sSQL.ParamByName(string.Format("XLJGCZBNR_LMNR{0}", NR)).Value = sSL;
}
sSQL.Add(" :XLJGCZBNR_JGCZBID, :XLJGCZBNR_JGCZBBBID, :XLJGCZBNR_DRHH)");
sSQL.ParamByName("pXLXHID").Value = sXLXHID;
sSQL.ParamByName("pXLGGID").Value = sXLGGID;
sSQL.ParamByName("pXLBZID").Value = sXLBZID;
sSQL.ParamByName("pDYDJID").Value = sDYDJ;
sSQL.ParamByName("pWHRID").Value = tSession.UserId;
sSQL.ParamByName("pWHR").Value = tSession.UserName;
sSQL.ParamByName("pWHSJ").Value = DateTime.Now;
sSQL.ParamByName("XLJGCZBNR_JGCZBID").Value = sJGCZBID;
sSQL.ParamByName("XLJGCZBNR_JGCZBBBID").Value = sJGCZBBBID;
sSQL.ParamByName("XLJGCZBNR_DRHH").Value = iDRHH;
string ss = sSQL.Text;
dberp.ExecSQL(sSQL);
iDRHH++;
}
}
//
else
{
foreach (string sCLQDL in dicCLMC.Keys)
{
dicCLQDL.Add(iCLCol, sCLQDL);
iCLCol = iCLCol + 1;
}
foreach (DataRow Row in ds.Tables[0].Rows)
{
//数据集第一行为栏目行,跳过
if (Row.Equals(ds.Tables[0].Rows[0]))
continue;
sXLXHID = sGetCellTest(Row, 0);
if (sXLXHID.Length > 60)
sXLXHID = "ERROR:内容超长,最多60个字符";
sXLGGID = sGetCellTest(Row, 1);
if (sXLGGID.Length > 60)
sXLGGID = "ERROR:内容超长,最多60个字符";
sXLBZID = XLBJDUtils.GetBZXLZBZID(sGetCellTest(Row, 2), sDefaultXLBZID, dicDRMXBZ);
if (sXLBZID.Length > 60)
sXLBZID = "ERROR:内容超长,最多60个字符";
sDYDJ = sGetCellTest(Row, 3).Replace('K', 'k').Replace('v', 'V');
if (sDYDJ.Equals(""))
sDYDJ = " ";
if (sDYDJ.Length > 60)
sDYDJ = "ERROR:内容超长,最多60个字符";
//导入XLJGCZBNR
sSQL.Clear();
sSQL.Add(" insert into XLJGCZBNR(XLJGCZBNR_LMNR01,XLJGCZBNR_LMNR02,XLJGCZBNR_LMNR03,XLJGCZBNR_LMNR04, ");
sSQL.Add(" XLJGCZBNR_WHRID,XLJGCZBNR_WHR,XLJGCZBNR_WHSJ, ");
int iIndexLM = 5;
foreach (int iColumnIndex in dicCLQDL.Keys)
{
string sCLQDL = dicCLQDL[iColumnIndex];
sSQL.Add(string.Format("XLJGCZBNR_LMNR{0},", iIndexLM.ToString().PadLeft(2, '0')));
iIndexLM++;
}
sSQL.Add("XLJGCZBNR_JGCZBID, XLJGCZBNR_JGCZBBBID, XLJGCZBNR_DRHH) ");
sSQL.Add(" values(:pXLXHID,:pXLGGID,:pXLBZID,:pDYDJID,");
sSQL.Add(":pWHRID,:pWHR,:pWHSJ,");
iIndexLM = 5;
foreach (int iColumnIndex in dicCLQDL.Keys)
{
string sCLQDL = dicCLQDL[iColumnIndex];
dSL = CMISproConvert.StrToFloat(sGetCellTest(Row, iColumnIndex), 0);
/*
* 保持原Excel形式,此处不进行转换。
if (cbxDRNR.SelectedValue.Trim().Equals("YL_Km") && GetOption(100860002, "BJU003").Equals("M"))
{
dSL = dSL / 1000;
}
if (cbxDRNR.SelectedValue.Trim().Equals("YL_M") && GetOption(100860002, "BJU003").Equals("Km"))
{
dSL = dSL * 1000;
}
*/
sSQL.Add(string.Format(":XLJGCZBNR_LMNR{0},", iIndexLM.ToString().PadLeft(2, '0')));
sSL = dSL.ToString().Trim();
if (iIndexLM == 5)
{
if (sSL.Length > 60)
sSL = "ERROR:内容超长,最多60个字符";
}
else
{
if (sSL.Length > 30)
sSL = "ERROR:内容超长,最多30个字符";
}
sSQL.ParamByName(string.Format("XLJGCZBNR_LMNR{0}", iIndexLM.ToString().PadLeft(2, '0'))).Value = sSL;
iIndexLM++;
}
sSQL.Add(" :XLJGCZBNR_JGCZBID, :XLJGCZBNR_JGCZBBBID, :XLJGCZBNR_DRHH)");
sSQL.ParamByName("pXLXHID").Value = sXLXHID;
sSQL.ParamByName("pXLGGID").Value = sXLGGID;
sSQL.ParamByName("pXLBZID").Value = sXLBZID;
sSQL.ParamByName("pDYDJID").Value = sDYDJ;
sSQL.ParamByName("pWHRID").Value = tSession.UserId;
sSQL.ParamByName("pWHR").Value = tSession.UserName;
sSQL.ParamByName("pWHSJ").Value = DateTime.Now;
sSQL.ParamByName("XLJGCZBNR_JGCZBID").Value = sJGCZBID;
sSQL.ParamByName("XLJGCZBNR_JGCZBBBID").Value = sJGCZBBBID;
sSQL.ParamByName("XLJGCZBNR_DRHH").Value = iDRHH;
dberp.ExecSQL(sSQL);
iDRHH++;
}
}
Mac.MacLog.TraceFormat("插入XLJGCZBNR,工号:{0},时间:{1}", tSession.UserId, DateTime.Now);
sSQL.Clear();
sSQL.Add("insert into XLXHJGCZBML(XLXHJGCZBML_JGCZBID,XLXHJGCZBML_JGCZBXH,XLXHJGCZBML_XLXHID,XLXHJGCZBML_DYDJID,XLXHJGCZBML_XLBZID,");
sSQL.Add(" XLXHJGCZBML_XLBZBH,XLXHJGCZBML_XYCXJS,XLXHJGCZBML_WHRID,XLXHJGCZBML_WHR,XLXHJGCZBML_WHSJ)");
sSQL.Add(" select JGCZBID,");
sSQL.Add(" row_number() over(partition by JGCZBID order by XLXHID,DYDJID,XLBZID) as JGCZBXH,");
sSQL.Add(" XLXHID,DYDJID,XLBZID,");
sSQL.Add(" ' ',' ',:pWHRID,:pWHR,:pWHSJ");
sSQL.Add(" from (select distinct XLJGCZBNR_JGCZBID as JGCZBID,XLJGCZBNR_LMNR01 as XLXHID,");
sSQL.Add(" XLJGCZBNR_LMNR04 as DYDJID,XLJGCZBNR_LMNR03 as XLBZID");
sSQL.Add(" from XLJGCZBNR");
sSQL.Add(" where XLJGCZBNR_JGCZBID=:pJGCZBID and XLJGCZBNR_JGCZBBBID=:pJGCZBBBID");
sSQL.Add(" ) a ");
sSQL.Add(" left join XLJGCZBML on XLJGCZBML_JGCZBID=JGCZBID");
sSQL.ParamByName("pJGCZBID").Value = sJGCZBID;
sSQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID;
sSQL.ParamByName("pWHRID").Value = tSession.UserId;
sSQL.ParamByName("pWHR").Value = tSession.UserName;
sSQL.ParamByName("pWHSJ").Value = DateTime.Now;
dberp.ExecSQL(sSQL);
Mac.MacLog.TraceFormat("插入XLXHJGCZBML,工号:{0},时间:{1}", tSession.UserId, DateTime.Now);
sSQL.Clear();
sSQL.Add("insert into XLXHJGCZBNR(XLXHJGCZBNR_JGCZBID,XLXHJGCZBNR_JGCZBBBID,XLXHJGCZBNR_JGCZBXH,XLXHJGCZBNR_DRHH,XLXHJGCZBNR_XLGGID,XLXHJGCZBNR_CLFLAG)");
sSQL.Add(" select XLJGCZBNR_JGCZBID,XLJGCZBNR_JGCZBBBID,XLXHJGCZBML_JGCZBXH,XLJGCZBNR_DRHH,XLJGCZBNR_LMNR02,'未处理'");
sSQL.Add(" from XLJGCZBNR");
sSQL.Add(" left join XLXHJGCZBML on XLXHJGCZBML_JGCZBID=XLJGCZBNR_JGCZBID and XLXHJGCZBML_XLXHID=XLJGCZBNR_LMNR01 and XLXHJGCZBML_DYDJID=XLJGCZBNR_LMNR04 and XLXHJGCZBML_XLBZID=XLJGCZBNR_LMNR03");
sSQL.Add(" where XLJGCZBNR_JGCZBID=:pJGCZBID and XLJGCZBNR_JGCZBBBID=:pJGCZBBBID");
sSQL.ParamByName("pJGCZBID").Value = sJGCZBID;
sSQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID;
dberp.ExecSQL(sSQL);
Mac.MacLog.TraceFormat("插入XLXHJGCZBNR,工号:{0},时间:{1}", tSession.UserId, DateTime.Now);
#endregion
Mac.MacLog.TraceFormat("导入尺重表完成,工号:{0},时间:{1}", tSession.UserId, DateTime.Now);
}
private void ExcelColumnValid(DataSet ds, Dictionary<string, string> dicCLMC, string sDRLX, ref List<string> lstBJCL, ref string sBJCLList)
{
//
int iKey = 1;
sBJCLList = "";
string sErrmsg = "";
lstBJCL.Clear();
if (sDRLX.Equals("BJCLMCACT"))
{
//直接根据获取的ds判定列
if (ds.Tables[0].Rows.Count > 0)//内容第一行为标题行
{
if (ds.Tables[0].Columns.Count > 84)
{
sErrmsg = string.Format("当前报价材料列已达{0}列,程序最多支持80列!", ds.Tables[0].Columns.Count.ToString().Trim());
throw new Exception(sErrmsg);
}
if (!ds.Tables[0].Rows[0][0].ToString().Trim().Equals("型号"))
{
throw new Exception(string.Format("(1)列标题错误,该列应为(型号)"));
}
if (!ds.Tables[0].Rows[0][1].ToString().Trim().Equals("规格"))
{
throw new Exception(string.Format("(2)列标题错误,该列应为(规格)"));
}
if (!ds.Tables[0].Rows[0][2].ToString().Trim().Equals("标准"))
{
throw new Exception(string.Format("(3)列标题错误,该列应为(标准)"));
}
if (!ds.Tables[0].Rows[0][3].ToString().Trim().Equals("电压等级"))
{
throw new Exception(string.Format("(4)列标题错误,该列应为(电压等级)"));
}
for (int i = 4; i < ds.Tables[0].Columns.Count; i++)
{
if (!dicCLMC.ContainsKey(ds.Tables[0].Rows[0][i].ToString().Trim()))//读取出来的列名,会将.号改为#号,加上原来列名中可能含有#号
{
sErrmsg = string.Format("({0})列标题错误,该列标题({1})在报价材料名称中不存在,请检查字母大小写,特殊字符等是否对应!", (i + 1).ToString().Trim(), ds.Tables[0].Rows[0][i].ToString().Trim());
throw new Exception(sErrmsg);
}
else
{
//存储对应关系
lstBJCL.Add(dicCLMC[ds.Tables[0].Rows[0][i].ToString().Trim()]);
sBJCLList = sBJCLList + dicCLMC[ds.Tables[0].Rows[0][i].ToString().Trim()] + ",";
}
}
sBJCLList = sBJCLList.TrimEnd(',');
}
}
//CLQDL BJCLMC
else
{
Dictionary<string, string> ColumnNames = new Dictionary<string, string>();
ColumnNames.Add("0", "型号");
ColumnNames.Add("1", "规格");
ColumnNames.Add("2", "标准");
ColumnNames.Add("3", "电压等级");
iKey = 4;
foreach (string sCLQDL in dicCLMC.Keys)
{
ColumnNames.Add(iKey.ToString(), dicCLMC[sCLQDL]);
iKey++;
}
for (int i = 0; i < ColumnNames.Count; i++)
{
if (ds.Tables[0].Columns.Count - 1 < i)
{
throw new Exception(string.Format("缺少({0})列!", ColumnNames[i.ToString()]));
}
else
{
if (ds.Tables[0].Rows.Count > 0)//内容第一行为标题行
{
if (!ds.Tables[0].Rows[0][i].ToString().Trim().Equals(ColumnNames[i.ToString()]))//读取出来的列名,会将.号改为#号,加上原来列名中可能含有#号
{
throw new Exception(string.Format("({0})列标题错误,该列应为({1})", ds.Tables[0].Rows[0][i].ToString().Trim(), ColumnNames[i.ToString()]));
}
}
}
}
}
}
//引入涵盖范围的约束
private void ValidDRNR(string sJGCZBID, DataSet ds)
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sql = new TSQL(dberp);
sql.Add("select XLXHJGCZBML_XLXHID,XLXHJGCZBML_DYDJID,XLXHJGCZBML_XLBZID");
sql.Add(" from XLXHJGCZBML");
sql.Add(" where XLXHJGCZBML_JGCZBID=:pJGCZBID and XLXHJGCZBML_JGCZBXH<0");
sql.Add(" and (isnull(XLXHJGCZBML_XLXHID,' ')<>' ' or isnull(XLXHJGCZBML_DYDJID,' ')<>' ' or isnull(XLXHJGCZBML_XLBZID,' ')<>' ')");
sql.Add(" order by XLXHJGCZBML_JGCZBXH");
sql.ParamByName("pJGCZBID").Value = sJGCZBID;
DataSet dsXHML = dberp.OpenDataSet(sql);
if (dsXHML.Tables[0].Rows.Count > 0)
{
int iDRHH = 2;//去除第1行栏目行,导入行号默认从2开始
string sDYDJ = "";
string sXLXHID = "";
string sXLBZID = "";
string sDRHHList = "";
foreach (DataRow Row in ds.Tables[0].Rows)
{
//数据集第一行为栏目行,跳过
if (Row.Equals(ds.Tables[0].Rows[0]))
continue;
sXLXHID = sGetCellTest(Row, 0);
sXLBZID = sGetCellTest(Row, 2);
sDYDJ = sGetCellTest(Row, 3).Replace('K', 'k').Replace('v', 'V');
bool bValid = false;//涵盖范围限制是否校验通过
for (int i = 0; i < dsXHML.Tables[0].Rows.Count; i++)
{
string tmpXLXHID = dsXHML.Tables[0].Rows[i]["XLXHJGCZBML_XLXHID"].ToString().Trim();
string tmpDYDJID = dsXHML.Tables[0].Rows[i]["XLXHJGCZBML_DYDJID"].ToString().Trim();
string tmpXLBZID = dsXHML.Tables[0].Rows[i]["XLXHJGCZBML_XLBZID"].ToString().Trim();
if (tmpXLXHID.Equals("") ||
(!tmpXLXHID.Equals("") && tmpXLXHID.Equals(sXLXHID))
)
{
if (tmpDYDJID.Equals("") ||
(!tmpDYDJID.Equals("") && tmpDYDJID.Equals(sDYDJ))
)
{
if (tmpXLBZID.Equals("") ||
(!tmpXLBZID.Equals("") && tmpXLBZID.Equals(sXLBZID))
)
{
bValid = true;
}
}
}
}
if (bValid == false)
{
sDRHHList += iDRHH.ToString() + ",";
}
iDRHH++;
}
if (!sDRHHList.Equals(""))
{
sDRHHList = sDRHHList.TrimEnd(',');
throw new Exception("导入文件中以下行号的型号、标准、电压等级不在规划的尺重表涵盖范围内,请和尺重表负责人联系!" + "\r\n" + sDRHHList);
}
}
}
private void ReadWJ(string sPath, string sSheetName, ref DataSet aDataExcel)
{
string sMessage = "";
aDataExcel = TExcelData.ReadExcel(sPath.Trim(), sSheetName, "", false, false, ref sMessage);
if (!sMessage.Trim().Equals(""))
{
throw new Exception("文件读取失败!失败原因:" + sMessage.Trim());
}
}
private string sGetCellTest(DataRow Row, int ColumnIndex)
{
return Row[ColumnIndex].ToString().Trim().Replace("\r\n", "").Replace("\n", "");
}
private string GetNewID()
{
string sNewID = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString().PadLeft(2, '0');
int iMaxXH = 0;
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add("select max(XLJGCZBML_JGCZBID) as MaxID from XLJGCZBML where 1 = 1 ");
SQL.Add(" and XLJGCZBML_JGCZBID like :pXLJGCZBML_JGCZBID ");
SQL.ParamByName("pXLJGCZBML_JGCZBID").Value = sNewID + "%";
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
if (!ds.Tables[0].Rows[0]["MaxID"].ToString().Trim().Equals(""))
{
iMaxXH = CMISproConvert.StrToInt(ds.Tables[0].Rows[0]["MaxID"].ToString().Trim().Substring(6, 4));
}
else
{
//iMaxXH = 0
}
}
iMaxXH++;
return sNewID + iMaxXH.ToString().PadLeft(4, '0');
}
private string GetDefaultSheetName(string sFilePath)
{
string connStr = GetConnString(sFilePath);
OleDbConnection m_conn = new OleDbConnection(connStr);
m_conn.Open();
DataTable sheetNames = m_conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
string sSheetName = "";
if (sheetNames.Rows[0].Table.Rows.Count > 0)
{
sSheetName = sheetNames.Rows[0].Table.Rows[0]["TABLE_NAME"].ToString().Trim();
if (sSheetName.StartsWith("'") && sSheetName.EndsWith("'"))
sSheetName = sSheetName.TrimStart('\'').TrimEnd('\'');
if (sSheetName.EndsWith("$"))
sSheetName = sSheetName.TrimEnd('$');
}
if (m_conn.State == ConnectionState.Open)
{
m_conn.Dispose();
m_conn = null;
}
return sSheetName;
}
//判断模块是否存在并且是否有权限
private bool CheckModule(string sUMID)
{
int iUMID = CMISproConvert.StrToInt(sUMID);
UserRight UR = OpRightUtils.GetUserRight(tSession.UserId, iUMID);
return (DSActiveModule.IsActiveModule(iUMID) && UR.Open);
}
private bool CheckModuleInsert(string sUMID)
{
int iUMID = CMISproConvert.StrToInt(sUMID);
UserRight UR = OpRightUtils.GetUserRight(tSession.UserId, iUMID);
return (DSActiveModule.IsActiveModule(iUMID) && UR.Insert);
}
private void DZBZPP(TDatabase dberp, TSQL sSQL, ref DataSet aDataExcel)
{
if (CheckModuleInsert("102573000"))
{
int StartIndex=4;
if (CheckModule("101421012"))
StartIndex = 9;
if (aDataExcel.Tables[0].Columns.Count > StartIndex+3)
{
if (StartIndex == 9)
{
if (!aDataExcel.Tables[0].Rows[0][StartIndex - 3].ToString().Trim().Equals("外径"))
{
throw new Exception(string.Format("{0}列标题错误,该列应为(外径)", StartIndex - 2));
}
if (!aDataExcel.Tables[0].Rows[0][StartIndex - 2].ToString().Trim().Equals("最小弯曲倍数"))
{
throw new Exception(string.Format("{0}列标题错误,该列应为(最小弯曲倍数)", StartIndex - 1));
}
if (!aDataExcel.Tables[0].Rows[0][StartIndex - 1].ToString().Trim().Equals("导体结构信息"))
{
throw new Exception(string.Format("{0}列标题错误,该列应为(导体结构信息)", StartIndex));
}
}
if (!aDataExcel.Tables[0].Rows[0][StartIndex].ToString().Trim().Equals("客户代码"))
{
throw new Exception(string.Format("{0}列标题错误,该列应为(客户代码)", StartIndex + 1));
}
if (!aDataExcel.Tables[0].Rows[0][StartIndex + 1].ToString().Trim().Equals("执行标准"))
{
throw new Exception(string.Format("{0}列标题错误,该列应为(执行标准)", StartIndex + 2));
}
if (!aDataExcel.Tables[0].Rows[0][StartIndex + 2].ToString().Trim().Equals("阻燃等级"))
{
throw new Exception(string.Format("{0}列标题错误,该列应为(阻燃等级)", StartIndex + 3));
}
if (!aDataExcel.Tables[0].Rows[0][StartIndex + 3].ToString().Trim().Equals("导体材料"))
{
throw new Exception(string.Format("{0}列标题错误,该列应为(导体材料)", (StartIndex + 4)));
}
for (int i = 1; i < aDataExcel.Tables[0].Rows.Count; i++)
{
DataRow Row = aDataExcel.Tables[0].Rows[i];
string sWJ = "";
string sCPJGXX = "";
if (StartIndex == 9)
{
sWJ = sGetCellTest(Row, StartIndex - 3).Trim();
sCPJGXX = sGetCellTest(Row, StartIndex - 1).Trim();
}
string sKHDM = sGetCellTest(Row, StartIndex).Trim();
string sZXBZ = sGetCellTest(Row, StartIndex+1).Trim();
string sZRDJ = sGetCellTest(Row, StartIndex+2).Trim();
string sDTCL = sGetCellTest(Row, StartIndex+3).Trim();
if (!sKHDM.Equals("") || !sZXBZ.Equals("") || !sZRDJ.Equals("") || !sDTCL.Equals("") || !sWJ.Equals("")||!sCPJGXX.Equals(""))
{
aDataExcel.Tables[0].Rows[i][2] = PPDZBZ(dberp, sSQL, sKHDM, sZXBZ, sZRDJ, sDTCL, sWJ,sCPJGXX);
}
}
aDataExcel.Tables[0].Columns.Remove(aDataExcel.Tables[0].Columns[StartIndex + 3]);
aDataExcel.Tables[0].Columns.Remove(aDataExcel.Tables[0].Columns[StartIndex + 2]);
aDataExcel.Tables[0].Columns.Remove(aDataExcel.Tables[0].Columns[StartIndex + 1]);
aDataExcel.Tables[0].Columns.Remove(aDataExcel.Tables[0].Columns[StartIndex]);
}
}
}
private void XLCPWH(TDatabase dberp, TSQL sSQL, ref DataSet aDataExcel)
{
DZBZPP(dberp, sSQL,ref aDataExcel);
if (CheckModule("101421012"))
{
DataSet dsXLCPWH = new DataSet();
if (aDataExcel.Tables[0].Columns.Count < 7)
return;
if (aDataExcel.Tables[0].Rows[0][6].ToString().Trim().Equals("外径"))
{
if (!aDataExcel.Tables[0].Rows[0][7].ToString().Trim().Equals("最小弯曲倍数") || !aDataExcel.Tables[0].Rows[0][8].ToString().Trim().Equals("导体结构信息"))
throw new Exception("导入栏目“外径”后必须依次为“最小弯曲倍数”、“导体结构信息”");
// 获取源表
DataTable sourceTable = aDataExcel.Tables[0];
DataTable destinationTable = sourceTable.Copy(); // 创建完整的副本
// 确保至少有八列
if (destinationTable.Columns.Count > 8)
{
// 从第七列开始移除所有列
for (int i = destinationTable.Columns.Count - 1; i > 8; i--)
{
destinationTable.Columns.RemoveAt(i);
}
}
// 将新表添加到目标DataSet
dsXLCPWH.Tables.Add(destinationTable);
//删除多余栏目信息
aDataExcel.Tables[0].Columns.Remove(aDataExcel.Tables[0].Columns[8]);
aDataExcel.Tables[0].Columns.Remove(aDataExcel.Tables[0].Columns[7]);
aDataExcel.Tables[0].Columns.Remove(aDataExcel.Tables[0].Columns[6]);
aDataExcel.Tables[0].Columns.Remove(aDataExcel.Tables[0].Columns[5]);
aDataExcel.Tables[0].Columns.Remove(aDataExcel.Tables[0].Columns[4]);
//校验前六行
if (!dsXLCPWH.Tables[0].Rows[0][0].ToString().Trim().Equals("型号"))
{
throw new Exception(string.Format("(1)列标题错误,该列应为(型号)"));
}
if (!dsXLCPWH.Tables[0].Rows[0][1].ToString().Trim().Equals("规格"))
{
throw new Exception(string.Format("(2)列标题错误,该列应为(规格)"));
}
if (!dsXLCPWH.Tables[0].Rows[0][2].ToString().Trim().Equals("标准"))
{
throw new Exception(string.Format("(3)列标题错误,该列应为(标准)"));
}
if (!dsXLCPWH.Tables[0].Rows[0][3].ToString().Trim().Equals("电压等级"))
{
throw new Exception(string.Format("(4)列标题错误,该列应为(电压等级)"));
}
if (!dsXLCPWH.Tables[0].Rows[0][4].ToString().Trim().Equals("颜色"))
{
throw new Exception(string.Format("(5)列标题错误,该列应为(颜色)"));
}
if (!dsXLCPWH.Tables[0].Rows[0][5].ToString().Trim().Equals("物料编码"))
{
throw new Exception(string.Format("(6)列标题错误,该列应为(物料编码)"));
}
for (int i = 1; i < dsXLCPWH.Tables[0].Rows.Count; i++)
{
DataRow Row = dsXLCPWH.Tables[0].Rows[i];
string sXH = sGetCellTest(Row, 0).Trim();
string sGG = sGetCellTest(Row, 1).Trim();
string sBZ = sGetCellTest(Row, 2).Trim();
string sDYDJ = sGetCellTest(Row, 3).Trim();
string sXLYSID = N_PUBLIC2.XLUtils.GetXLYSID(sGetCellTest(Row, 4).Trim());
string sWLID = sGetCellTest(Row, 5).Trim();
string sWJ = sGetCellTest(Row, 6).Trim();
string sZXWQBS = sGetCellTest(Row, 7).Trim();
string sDTJGXX = sGetCellTest(Row, 8).Trim();
if (sXH.Equals(""))
throw new Exception("第" + (i + 1) + "行型号为空,导入失败!");
if (sGG.Equals(""))
throw new Exception("第" + (i + 1) + "行规格为空,导入失败!");
if (sBZ.Equals(""))
throw new Exception("第" + (i + 1) + "行标准为空,导入失败!");
if (sDYDJ.Equals(""))
throw new Exception("第" + (i + 1) + "行电压等级为空,导入失败!");
if (!sGetCellTest(Row, 4).Trim().Equals("") && sXLYSID.Equals(""))
throw new Exception("第" + (i + 1) + "行颜色不存在,导入失败!");
if (sXLYSID.Equals("") && !sWLID.Equals(""))
throw new Exception("第" + (i + 1) + "行颜色、物料编码应该同时为空或同时不为空,导入失败!");
if (!sXLYSID.Equals("") && sWLID.Equals(""))
throw new Exception("第" + (i + 1) + "行颜色、物料编码应该同时为空或同时不为空,导入失败!");
//if (!XLXHIDValid(sXH))
// throw new Exception("第" + (i + 1) + "行型号不存在,导入失败!");
if (!XLBZIDValid(sBZ))
throw new Exception("第" + (i + 1) + "行标准不存在,导入失败!");
if (!DYDJIDValid(sDYDJ))
throw new Exception("第" + (i + 1) + "行电压等级不存在,导入失败!");
if (!sWLID.Equals("") && !CMISproDataBase.ExistsRecord("DBERP", "select 1 from WL where WL_WLID='" + sWLID + "'"))
throw new Exception("第" + (i + 1) + "行物料编码不存在,导入失败!");
}
if(dsXLCPWH.Tables[0].Rows.Count>0)
dsXLCPWH.Tables[0].Rows.RemoveAt(0);
N_PUBLIC2.XLUtils.InsXLXLBXX(dberp, sSQL, dsXLCPWH, DateTime.Now);
}
}
}
private bool XLXHIDValid(string sXLXHID)
{
if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLXHB where XLXHB_XLXHID='" + sXLXHID + "'"))
return true;
return false;
}
private void InsertXLXHID(TDatabase dberp, TSQL sSQL, DataSet aDataExcel)
{
for (int i = 1; i < aDataExcel.Tables[0].Rows.Count;i++)
{
DataRow Row = aDataExcel.Tables[0].Rows[i];
string sXH = sGetCellTest(Row, 0).Trim();
if (!XLXHIDValid(sXH)&&!sXH.Equals(""))
{
sSQL.Clear();
sSQL.Add(@" insert into XLXHB(XLXHB_XLXHID,XLXHB_QYRQ,XLXHB_TYBZ,XLXHB_WHR,XLXHB_WHRID,XLXHB_WHSJ,XLXHB_CPYT,XLXHB_XLGGJDGZ)
values(:pXLXHB_XLXHID,:pXLXHB_QYRQ,:pXLXHB_TYBZ,:pXLXHB_WHR,:pXLXHB_WHRID,:pXLXHB_WHSJ,'NNNN',:pXLXHB_XLGGJDGZ)");
sSQL.ParamByName("pXLXHB_XLXHID").Value=sXH;
sSQL.ParamByName("pXLXHB_QYRQ").Value = DateTime.Now;
sSQL.ParamByName("pXLXHB_TYBZ").Value = "N";
sSQL.ParamByName("pXLXHB_WHR").Value = tSession.UserName;
sSQL.ParamByName("pXLXHB_WHRID").Value = tSession.UserId;
sSQL.ParamByName("pXLXHB_WHSJ").Value = DateTime.Now;
sSQL.ParamByName("pXLXHB_XLGGJDGZ").Value = "0";
dberp.ExecSQL(sSQL);
}
}
}
private void InsertBJCL(TDatabase dberp, TSQL sSQL, DataSet aDataExcel, string sParamValue, ref Dictionary<string, string> dicCLMC)
{
if (sParamValue.Equals("BJCLMCACT"))
{
for (int i = 4; i < aDataExcel.Tables[0].Columns.Count; i++)
{
if (!dicCLMC.ContainsKey(aDataExcel.Tables[0].Rows[0][i].ToString().Trim()))//读取出来的列名,会将.号改为#号,加上原来列名中可能含有#号
{
if (!aDataExcel.Tables[0].Rows[0][i].ToString().Trim().Equals(""))
{
sSQL.Clear();
sSQL.Add(@"insert into XLXSBJCL(XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC,XLXSBJCL_BJHQ,XLXSBJCL_BJJZ,XLXSBJCL_JTZ,XLXSBJCL_JLZ,XLXSBJCL_CLHQFD,XLXSBJCL_SFQR,
XLXSBJCL_ZZSL,XLXSBJCL_QYRQ,XLXSBJCL_TYBZ,XLXSBJCL_WHR,XLXSBJCL_WHRID,XLXSBJCL_WHSJ)
values(:pXLXSBJCL_BJCLID,:pXLXSBJCL_BJCLMC,'1','Y','N','N','N','N',13,:pQYRQ,'N',:pXLXSBJCL_WHR,:pXLXSBJCL_WHRID,:pXLXSBJCL_WHSJ) ");
sSQL.ParamByName("pXLXSBJCL_BJCLID").Value = GetNewBJCLID();
sSQL.ParamByName("pXLXSBJCL_BJCLMC").Value = aDataExcel.Tables[0].Rows[0][i].ToString().Trim();
sSQL.ParamByName("pQYRQ").Value = DateTime.Now;
sSQL.ParamByName("pXLXSBJCL_WHR").Value = tSession.UserName;
sSQL.ParamByName("pXLXSBJCL_WHRID").Value = tSession.UserId;
sSQL.ParamByName("pXLXSBJCL_WHSJ").Value = DateTime.Now;
dberp.ExecSQL(sSQL);
dicCLMC.Add(aDataExcel.Tables[0].Rows[0][i].ToString().Trim(), GetNewBJCLID());
}
}
}
}
}
private string GetNewBJCLID()
{
string sPrefix = "BJCL00";
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Add("select max(XLXSBJCL_BJCLID) from XLXSBJCL where XLXSBJCL_BJCLID like :pPrefix");
SQL.ParamByName("pPrefix").Value = sPrefix + '%';
DataSet ds = dberp.OpenDataSet(SQL);
if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0][0].ToString().Trim()))
{
double dTemp = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString().Trim().Substring(6, 4));
return sPrefix + Convert.ToString(dTemp + 1).PadLeft(4, '0');
}
else
{
return sPrefix + "0000";
}
}
private bool XLBZIDValid(string sXLBZID)
{
if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLBZ where XLBZ_XLBZID='" + sXLBZID + "'"))
return true;
return false;
}
private bool DYDJIDValid(string sDYDJID)
{
if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLDYDJB where XLDYDJB_DYDJID='" + sDYDJID + "'"))
return true;
return false;
}
private string PPDZBZ(TDatabase dberp, TSQL sSQL, string sKHDM, string sZXBZ, string sZRDJ, string sDTCL,string sWJ,string sCPJGXX)
{
sSQL.Clear();
sSQL.Add(@" select XLBZ_XLBZID from XLBZ
left join XLDZBZ a on XLBZ_XLBZID=a.XLDZBZ_XLBZID and a.XLDZBZ_XH=1 and a.XLDZBZ_DZSCXM='客户代码'
left join XLDZBZ b on XLBZ_XLBZID=b.XLDZBZ_XLBZID and b.XLDZBZ_XH=2 and b.XLDZBZ_DZSCXM='执行标准'
left join XLDZBZ c on XLBZ_XLBZID=c.XLDZBZ_XLBZID and c.XLDZBZ_XH=3 and c.XLDZBZ_DZSCXM='阻燃等级'
left join XLDZBZ d on XLBZ_XLBZID=d.XLDZBZ_XLBZID and d.XLDZBZ_XH=4 and d.XLDZBZ_DZSCXM='导体材料'
left join XLDZBZ e on XLBZ_XLBZID=e.XLDZBZ_XLBZID and e.XLDZBZ_XH=5 and e.XLDZBZ_DZSCXM='外径'
left join XLDZBZ f on XLBZ_XLBZID=f.XLDZBZ_XLBZID and f.XLDZBZ_XH=6 and f.XLDZBZ_DZSCXM='产品结构信息'
where a.XLDZBZ_DZSCYQ=:pKHDM and b.XLDZBZ_DZSCYQ=:pZXBZ and c.XLDZBZ_DZSCYQ=:pZRDJ and d.XLDZBZ_DZSCYQ=:pDTCL and e.XLDZBZ_DZSCYQ=:pWJ and f.XLDZBZ_DZSCYQ=:pCPJGXX ");
sSQL.ParamByName("pKHDM").Value = sKHDM;
sSQL.ParamByName("pZXBZ").Value = sZXBZ;
sSQL.ParamByName("pZRDJ").Value = sZRDJ;
sSQL.ParamByName("pDTCL").Value = sDTCL;
sSQL.ParamByName("pWJ").Value = sWJ;
sSQL.ParamByName("pCPJGXX").Value = sCPJGXX;
DataSet ds = dberp.OpenDataSet(sSQL);
if (ds.Tables[0].Rows.Count > 0)
{
return ds.Tables[0].Rows[0][0].ToString().Trim();
}
else
{
string sMC = string.Empty;
if (!sKHDM.Equals(""))
{
sMC = sKHDM ;
}
if (!sZXBZ.Equals(""))
{
if(sMC.Equals(""))
sMC = sMC + sZXBZ;
else
sMC = sMC + " " + sZXBZ;
}
if (!sZRDJ.Equals(""))
{
if (sMC.Equals(""))
sMC = sMC + sZRDJ;
else
sMC = sMC + " " + sZRDJ;
}
if (!sDTCL.Equals(""))
{
if (sMC.Equals(""))
sMC = sMC + sDTCL;
else
sMC = sMC + " " + sDTCL;
}
if (!sWJ.Equals(""))
{
if (sMC.Equals(""))
sMC = sMC + "外径"+sWJ;
else
sMC = sMC + " " + "外径" + sWJ;
}
if (!sCPJGXX.Equals(""))
{
if (sMC.Equals(""))
sMC = sMC + sCPJGXX;
else
sMC = sMC + " " + sCPJGXX;
}
string sXLBZID = GetMaxBH();
sMC=XLBJDUtils.SubStringFunc(sMC, 60);
sSQL.Clear();
sSQL.Add(@"insert into XLBZ(XLBZ_XLBZID,XLBZ_XLBZLXMC,XLBZ_DZSC,XLBZ_WHR,XLBZ_WHRID,XLBZ_WHSJ)
values(:XLBZ_XLBZID,:XLBZ_XLBZLXMC,:XLBZ_DZSC,:XLBZ_WHR,:XLBZ_WHRID,:XLBZ_WHSJ) ");
sSQL.ParamByName("XLBZ_XLBZID").Value = sXLBZID;
sSQL.ParamByName("XLBZ_XLBZLXMC").Value = sMC;
sSQL.ParamByName("XLBZ_DZSC").Value = 'Y';
sSQL.ParamByName("XLBZ_WHR").Value = tSession.UserName;
sSQL.ParamByName("XLBZ_WHRID").Value = tSession.UserId;
sSQL.ParamByName("XLBZ_WHSJ").Value = DateTime.Now;
dberp.ExecSQL(sSQL);
sSQL.Clear();
sSQL.Add(@" insert into XLDZBZ(XLDZBZ_XLBZID,XLDZBZ_XH, XLDZBZ_DZSCXM, XLDZBZ_DZSCYQ, XLDZBZ_WHR, XLDZBZ_WHRID, XLDZBZ_WHSJ,XLDZBZ_MDID)
values( :XLDZBZ_XLBZID,:XLDZBZ_XH,:XLDZBZ_DZSCXM, :XLDZBZ_DZSCYQ, :XLDZBZ_WHR, :XLDZBZ_WHRID, :XLDZBZ_WHSJ,102573000) ");
sSQL.ParamByName("XLDZBZ_XLBZID").Value = sXLBZID;
sSQL.ParamByName("XLDZBZ_XH").Value = 1;
sSQL.ParamByName("XLDZBZ_DZSCXM").Value ="客户代码";
sSQL.ParamByName("XLDZBZ_DZSCYQ").Value = sKHDM;
sSQL.ParamByName("XLDZBZ_WHR").Value = tSession.UserName;
sSQL.ParamByName("XLDZBZ_WHRID").Value = tSession.UserId;
sSQL.ParamByName("XLDZBZ_WHSJ").Value = DateTime.Now;
dberp.ExecSQL(sSQL);
sSQL.Clear();
sSQL.Add(@" insert into XLDZBZ(XLDZBZ_XLBZID,XLDZBZ_XH, XLDZBZ_DZSCXM, XLDZBZ_DZSCYQ, XLDZBZ_WHR, XLDZBZ_WHRID, XLDZBZ_WHSJ,XLDZBZ_MDID)
values( :XLDZBZ_XLBZID,:XLDZBZ_XH,:XLDZBZ_DZSCXM, :XLDZBZ_DZSCYQ, :XLDZBZ_WHR, :XLDZBZ_WHRID, :XLDZBZ_WHSJ,102573000) ");
sSQL.ParamByName("XLDZBZ_XLBZID").Value = sXLBZID;
sSQL.ParamByName("XLDZBZ_XH").Value = 2;
sSQL.ParamByName("XLDZBZ_DZSCXM").Value = "执行标准";
sSQL.ParamByName("XLDZBZ_DZSCYQ").Value = sZXBZ;
sSQL.ParamByName("XLDZBZ_WHR").Value = tSession.UserName;
sSQL.ParamByName("XLDZBZ_WHRID").Value = tSession.UserId;
sSQL.ParamByName("XLDZBZ_WHSJ").Value = DateTime.Now;
dberp.ExecSQL(sSQL);
sSQL.Clear();
sSQL.Add(@" insert into XLDZBZ(XLDZBZ_XLBZID,XLDZBZ_XH, XLDZBZ_DZSCXM, XLDZBZ_DZSCYQ, XLDZBZ_WHR, XLDZBZ_WHRID, XLDZBZ_WHSJ,XLDZBZ_MDID)
values( :XLDZBZ_XLBZID,:XLDZBZ_XH,:XLDZBZ_DZSCXM, :XLDZBZ_DZSCYQ, :XLDZBZ_WHR, :XLDZBZ_WHRID, :XLDZBZ_WHSJ,102573000) ");
sSQL.ParamByName("XLDZBZ_XLBZID").Value = sXLBZID;
sSQL.ParamByName("XLDZBZ_XH").Value = 3;
sSQL.ParamByName("XLDZBZ_DZSCXM").Value = "阻燃等级";
sSQL.ParamByName("XLDZBZ_DZSCYQ").Value = sZRDJ;
sSQL.ParamByName("XLDZBZ_WHR").Value = tSession.UserName;
sSQL.ParamByName("XLDZBZ_WHRID").Value = tSession.UserId;
sSQL.ParamByName("XLDZBZ_WHSJ").Value = DateTime.Now;
dberp.ExecSQL(sSQL);
sSQL.Clear();
sSQL.Add(@" insert into XLDZBZ(XLDZBZ_XLBZID,XLDZBZ_XH, XLDZBZ_DZSCXM, XLDZBZ_DZSCYQ, XLDZBZ_WHR, XLDZBZ_WHRID, XLDZBZ_WHSJ,XLDZBZ_MDID)
values( :XLDZBZ_XLBZID,:XLDZBZ_XH,:XLDZBZ_DZSCXM, :XLDZBZ_DZSCYQ, :XLDZBZ_WHR, :XLDZBZ_WHRID, :XLDZBZ_WHSJ,102573000) ");
sSQL.ParamByName("XLDZBZ_XLBZID").Value = sXLBZID;
sSQL.ParamByName("XLDZBZ_XH").Value = 4;
sSQL.ParamByName("XLDZBZ_DZSCXM").Value = "导体材料";
sSQL.ParamByName("XLDZBZ_DZSCYQ").Value = sDTCL;
sSQL.ParamByName("XLDZBZ_WHR").Value = tSession.UserName;
sSQL.ParamByName("XLDZBZ_WHRID").Value = tSession.UserId;
sSQL.ParamByName("XLDZBZ_WHSJ").Value = DateTime.Now;
dberp.ExecSQL(sSQL);
sSQL.Clear();
sSQL.Add(@" insert into XLDZBZ(XLDZBZ_XLBZID,XLDZBZ_XH, XLDZBZ_DZSCXM, XLDZBZ_DZSCYQ, XLDZBZ_WHR, XLDZBZ_WHRID, XLDZBZ_WHSJ,XLDZBZ_MDID)
values( :XLDZBZ_XLBZID,:XLDZBZ_XH,:XLDZBZ_DZSCXM, :XLDZBZ_DZSCYQ, :XLDZBZ_WHR, :XLDZBZ_WHRID, :XLDZBZ_WHSJ,102573000) ");
sSQL.ParamByName("XLDZBZ_XLBZID").Value = sXLBZID;
sSQL.ParamByName("XLDZBZ_XH").Value = 5;
sSQL.ParamByName("XLDZBZ_DZSCXM").Value = "外径";
sSQL.ParamByName("XLDZBZ_DZSCYQ").Value = sWJ;
sSQL.ParamByName("XLDZBZ_WHR").Value = tSession.UserName;
sSQL.ParamByName("XLDZBZ_WHRID").Value = tSession.UserId;
sSQL.ParamByName("XLDZBZ_WHSJ").Value = DateTime.Now;
dberp.ExecSQL(sSQL);
sSQL.Clear();
sSQL.Add(@" insert into XLDZBZ(XLDZBZ_XLBZID,XLDZBZ_XH, XLDZBZ_DZSCXM, XLDZBZ_DZSCYQ, XLDZBZ_WHR, XLDZBZ_WHRID, XLDZBZ_WHSJ,XLDZBZ_MDID)
values( :XLDZBZ_XLBZID,:XLDZBZ_XH,:XLDZBZ_DZSCXM, :XLDZBZ_DZSCYQ, :XLDZBZ_WHR, :XLDZBZ_WHRID, :XLDZBZ_WHSJ,102573000) ");
sSQL.ParamByName("XLDZBZ_XLBZID").Value = sXLBZID;
sSQL.ParamByName("XLDZBZ_XH").Value = 6;
sSQL.ParamByName("XLDZBZ_DZSCXM").Value = "产品结构信息";
sSQL.ParamByName("XLDZBZ_DZSCYQ").Value = sCPJGXX;
sSQL.ParamByName("XLDZBZ_WHR").Value = tSession.UserName;
sSQL.ParamByName("XLDZBZ_WHRID").Value = tSession.UserId;
sSQL.ParamByName("XLDZBZ_WHSJ").Value = DateTime.Now;
dberp.ExecSQL(sSQL);
return sXLBZID;
}
}
private string GetMaxBH()
{
string sValue = "000000000";
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add(" select max(XLBZ_XLBZID) as MAXXH from XLBZ where len(XLBZ_XLBZID)=10 ");
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
string sTmp = ds.Tables[0].Rows[0][0].ToString().Trim();
if (!sTmp.Equals(""))
{
string sDZXLBZID = "";
TDatabase dberpDZBZ = TContextDatabases.GetDatabase("DBERP");
TSQL sSQL = new TSQL(dberpDZBZ);
sSQL.Clear();
sSQL.Add(" select XLBZ_XLBZID from XLBZ where XLBZ_DZSC ='Y' and len(XLBZ_XLBZID) <10 ");
DataSet dsDZBZ = dberpDZBZ.OpenDataSet(sSQL);
if (dsDZBZ.Tables[0].Rows.Count > 0)
{
sDZXLBZID = dsDZBZ.Tables[0].Rows[0][0].ToString().Trim();
}
if (sDZXLBZID.Trim().Length == 2)
{
double fTmp = CMISproConvert.StrToFloat(sTmp.Substring(2, sTmp.Length - 2)) + 1;
sValue = sTmp.Substring(0, 2) + fTmp.ToString().Trim().PadLeft(8, '0');
}
else
{
double fTmp = CMISproConvert.StrToFloat(sTmp.Substring(1, sTmp.Length - 1)) + 1;
sValue = sTmp.Substring(0, 1) + fTmp.ToString().Trim().PadLeft(9, '0');
}
}
}
if (sValue.Equals("") || sValue.Equals("000000000"))
{
SQL.Clear();
SQL.Add(" select XLBZ_XLBZID from XLBZ where XLBZ_DZSC ='Y' and len(XLBZ_XLBZID) <10 ");
ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
string sDZXLBZID = "";
sDZXLBZID = ds.Tables[0].Rows[0][0].ToString().Trim();
if (sDZXLBZID.Trim().Length == 2)
{
sValue = ds.Tables[0].Rows[0][0].ToString().Trim() + "00000001";
}
else
{
sValue = ds.Tables[0].Rows[0][0].ToString().Trim() + "000000001";
}
}
}
return sValue;
}
#endregion
}
}