This commit is contained in:
2026-08-21 17:03:02 +08:00
commit f065129b20
2292 changed files with 666241 additions and 0 deletions
+702
View File
@@ -0,0 +1,702 @@
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;
namespace GThinking.N_XLXSBJ
{
public partial class XLJGB_DRInfo : SingleCardBase
{
XLJGB_DREntity entity = new XLJGB_DREntity();
//数据库插入
int sSucessIs = 0;
//数据库更新
int sSucessUp = 0;
//表格数据
int sSucessDr = 0;
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860001;
this.UMName = "线缆销售报价价格表";
base.CurMaster = Master;
base.CurEntity = entity;
this.PageHeight = 180;
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(PageParam.GetRTrimString("JJLY").Equals("D"))
{
lblLMNR2.Text = "一:型号、规格、标准、电压等级、计量单位、含税基价、无税基价";
if(PageParam.GetRTrimString("BJLY").Equals("D"))
lblLMNR2.Text = "一:型号、规格、标准、电压等级、计量单位、含税基价、无税基价、含税表价、无税表价";
lblLMNR3.Text = "二:型号、规格、标准、电压等级、计量单位、含税基价、无税基价、工艺卡号、备注";
if (PageParam.GetRTrimString("BJLY").Equals("D"))
lblLMNR3.Text = "二:型号、规格、标准、电压等级、计量单位、含税基价、无税基价、含税表价、无税表价、工艺卡号、备注";
}
else
{
lblLMNR2.Text = "一:型号、规格、标准、电压等级、计量单位、含税表价、无税表价";
lblLMNR3.Text = "二:型号、规格、标准、电压等级、计量单位、含税表价、无税表价、工艺卡号、备注";
}
if (!IsPostBack)
{
chkSheet.Checked = false;
cbxSheetList.Enabled = false;
}
}
#region 控件事件
protected void btnQD_Click(object sender, EventArgs e)
{
if (fupdPost.FilePath.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);
try
{
dberp.BeginTrans();
//当前价格表ID
string sJGBID = PageParam.GetRTrimString("XLXSJGBMX_JGBID");
string sJGBMC = PageParam.GetRTrimString("XLXSJGBMX_JGBMC");
sSucessDr = 0;
sSucessIs = 0;
sSucessUp = 0;
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 ds = dberp.OpenDataSet(sSQL);
if (ds.Tables[0].Rows.Count > 0)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
dicDRMXBZ.Add(ds.Tables[0].Rows[i]["XLBZ_XLBZID"].ToString().Trim(), ds.Tables[0].Rows[i]["XLBZ_XLBZLXMC"].ToString().Trim());
}
}
if (cbxSheetList.SelectedValue.Trim().Equals(""))
{
DataSet aDataExcel = new DataSet();
if (AppRuntime.BitType == AppBitType.Bit32)
aDataExcel = XLBJDUtils.ReadFromExcelFile(fupdPost.FilePath, 0, "");
else // AppBitType.Bit64
ReadWJ(fupdPost.FilePath, "", ref aDataExcel);
ExcelColumnName(aDataExcel);
//
string sFileName = fupdPost.FileName;
string sSheetName = GetDefaultSheetName(fupdPost.FilePath);
ExecDRSQL(dberp, sSQL, aDataExcel, sJGBID, dicDRMXBZ, sFileName, sSheetName);
ExecDRBZ(dberp, sSQL, aDataExcel, sJGBID, dicDRMXBZ, 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, 0, sSheetList[i]);
else // AppBitType.Bit64
ReadWJ(fupdPost.FilePath, sSheetList[i], ref aDataExcel);
ExcelColumnName(aDataExcel);
//
string sFileName = fupdPost.FileName;
string sSheetName = sSheetList[i];
ExecDRSQL(dberp, sSQL, aDataExcel, sJGBID, dicDRMXBZ, sFileName, sSheetName);
ExecDRBZ(dberp, sSQL, aDataExcel, sJGBID, dicDRMXBZ, sFileName, sSheetName);
}
}
dberp.CommitTrans();
ShowMessage(String.Format("已导入到价格表【{0}】中!\r\n成功导入数据:{1}条。\r\n", sJGBID + "|" + sJGBMC, sSucessDr));
DialogOperationScript dos = new DialogOperationScript(this);
dos.ClickOwnerButton(PageParam.GetRTrimString("btnRefreshCID"));
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)
{
string AllsSheetName = "";
if (fupdPost.FilePath.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
{
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('$');
AllsSheetName = AllsSheetName + "," + sSheetName;
AllsSheetName = AllsSheetName.TrimEnd(',');
cbxSheetList.Items.Add(new ListItem(sSheetName, sSheetName));
}
cbxSheetList.SelectedValue = AllsSheetName;
}
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, string sJGBID, Dictionary<string, string> dicDRMXBZ, string sFileName, string sSheetName)
{
#region 导入记录
string sXLXHID = "";
string sXLGGID = "";
string sXLBZID = "G";
string sXLDYDJ = "";
string sJLDW = "";
int iXH = 1;
//是否启用非长度计量单位
bool bQYFCDJLDW = XLBJDUtils.GetXLXSBJPZXX(100860018).QYFCDJLDW();
Dictionary<string, double> dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD();
//有效期
string sYXQS = PageParam.GetRTrimString("YXQS");
string sYXQZ = PageParam.GetRTrimString("YXQZ");
string sBJU003 = PageParam.GetRTrimString("BJU003");
string sDefaultXLBZID = PageParam.GetRTrimString("sDefaultXLBZID");
string sJJLY = PageParam.GetRTrimString("JJLY");
string sBJLY = PageParam.GetRTrimString("BJLY");
string sCLCB = "";
string sCPJJ = "";
string sWSCLCB = "";
string sWSCPJJ = "";
//A|× B|*
string sXLJGU007 = GetOption(102579000, "XLJGU007");
iXH = XLJGB_JGBMX.getMaxXH(sJGBID)-1;
Mac.MacLog.TraceFormat(String.Format("ExecDRSQL-Begin"));
//V_XSBJJSJGB_ID
int VnewID = CMISproDataBase.NewID("DBERP", "V_XSBJJSJGB");
//V表序号从1开始
int iVXH = 1;
#region 循环EXCEL插入V表
foreach (DataRow Row in ds.Tables[0].Rows)
{
sSucessDr++;
sXLXHID = sGetCellTest(Row, 0).Trim();
sXLGGID = sGetCellTest(Row, 1).Trim();
if (sXLJGU007.Equals("A"))
{
sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("*", "×");
}
else if (sXLJGU007.Equals("B"))
{
sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("×", "*");
}
sXLBZID = XLBJDUtils.GetBZXLZBZID(sGetCellTest(Row, 2).Trim(), sDefaultXLBZID, dicDRMXBZ);
if (sXLBZID.Equals(""))
sXLBZID = sGetCellTest(Row, 2).Trim();
sXLDYDJ = sGetCellTest(Row, 3).Trim().Replace('K', 'k').Replace('v', 'V'); ;
sJLDW = sGetCellTest(Row, 4).Trim();
if (!bQYFCDJLDW)
{
if (!sJLDW.ToUpper().Equals("KM") && !sJLDW.ToUpper().Equals("M") && !sJLDW.Equals("千米") && !sJLDW.Equals("米") && !dicLenJLDWTD.ContainsKey(sJLDW))
sJLDW = sBJU003;
else if (sJLDW.ToUpper().Equals("KM"))
sJLDW = "Km";
else if (sJLDW.ToUpper().Equals("M"))
sJLDW = "M";
}
else
{
if (sJLDW.Equals(""))
sJLDW = sBJU003;
else if (sJLDW.ToUpper().Equals("KM"))
sJLDW = "Km";
else if (sJLDW.ToUpper().Equals("M"))
sJLDW = "M";
}
sCLCB = sGetCellTest(Row, 5).Trim();
sCPJJ = sGetCellTest(Row, 5).Trim();
sWSCLCB = sGetCellTest(Row, 6).Trim();
sWSCPJJ = sGetCellTest(Row, 6).Trim();
if (sJJLY.Equals("D") && sBJLY.Equals("D"))
{
sCPJJ = sGetCellTest(Row, 7).Trim();
sWSCPJJ = sGetCellTest(Row, 8).Trim();
}
#region 插入V_XSBJJSJGB表 V_XSBJJSJGB_JGBJJ->含税基价 V_XSBJJSJGB_JGBBJ->无税基价,V_XSBJJSJGB_CLCB->含税表价,V_XSBJJSJGB_BJDHQCLCB->无税表价
sSQL.Clear();
sSQL.Add(@"insert into V_XSBJJSJGB (V_XSBJJSJGB_ID,V_XSBJJSJGB_BJDID,V_XSBJJSJGB_BJDXH,V_XSBJJSJGB_XLXHID,V_XSBJJSJGB_XLGGID,V_XSBJJSJGB_XLBZID,V_XSBJJSJGB_DYDJID,V_XSBJJSJGB_JGBJLDW,V_XSBJJSJGB_JGBJJ,V_XSBJJSJGB_JGBBJ,V_XSBJJSJGB_CLCB,V_XSBJJSJGB_BJDHQCLCB )
values(:pID,:pJGBID,:pXH,:pXLXHID,:pXLGGID,:pXLBZID,:pDYDJID,:pJGBJLDW,:pJGBJJ,:pJGBBJ,:pHSBJ,:pWSBJ)");
sSQL.ParamByName("pID").Value = VnewID;
sSQL.ParamByName("pJGBID").Value = sJGBID;
sSQL.ParamByName("pXH").Value = iVXH++;
sSQL.ParamByName("pXLXHID").Value = sXLXHID;
sSQL.ParamByName("pXLGGID").Value = sXLGGID;
sSQL.ParamByName("pXLBZID").Value = sXLBZID;
sSQL.ParamByName("pDYDJID").Value = sXLDYDJ;
sSQL.ParamByName("pJGBJLDW").Value = sJLDW;
sSQL.ParamByName("pJGBJJ").Value = CMISproConvert.StrToFloat(sCLCB, 0);
sSQL.ParamByName("pJGBBJ").Value = CMISproConvert.StrToFloat(sWSCLCB, 0);
sSQL.ParamByName("pHSBJ").Value = CMISproConvert.StrToFloat(sCPJJ, 0);
sSQL.ParamByName("pWSBJ").Value = CMISproConvert.StrToFloat(sWSCPJJ, 0);
dberp.ExecSQL(sSQL);
#endregion
}
#endregion
#region 存在相同报价产品不允许导入
sSQL.Clear();
sSQL.Add(" SELECT V_XSBJJSJGB_XLXHID,V_XSBJJSJGB_XLGGID,V_XSBJJSJGB_XLBZID,V_XSBJJSJGB_DYDJID ");
sSQL.Add(" FROM V_XSBJJSJGB where V_XSBJJSJGB_ID = :pID and V_XSBJJSJGB_BJDID=:pJGBID ");
sSQL.Add(" GROUP BY V_XSBJJSJGB_XLXHID,V_XSBJJSJGB_XLGGID,V_XSBJJSJGB_XLBZID,V_XSBJJSJGB_DYDJID HAVING COUNT(1) > 1 ");
sSQL.ParamByName("pID").Value = VnewID;
sSQL.ParamByName("pJGBID").Value = sJGBID;
DataSet dsV = dberp.OpenDataSet(sSQL);
if (dsV.Tables[0].Rows.Count > 0)
{
#region 删除V表
sSQL.Clear();
sSQL.Add("delete from V_XSBJJSJGB ");
sSQL.Add(" where V_XSBJJSJGB_ID=:pID");
sSQL.Add(" and V_XSBJJSJGB_BJDID=:pJGBID");
sSQL.ParamByName("pID").Value = VnewID;
sSQL.ParamByName("pJGBID").Value = sJGBID;
dberp.ExecSQL(sSQL);
#endregion
string sErrXLXHID = dsV.Tables[0].Rows[0]["V_XSBJJSJGB_XLXHID"].ToString().Trim();
string sErrXLGGID = dsV.Tables[0].Rows[0]["V_XSBJJSJGB_XLGGID"].ToString().Trim();
string sErrXLBZID = dsV.Tables[0].Rows[0]["V_XSBJJSJGB_XLBZID"].ToString().Trim();
string sErrDYDJID = dsV.Tables[0].Rows[0]["V_XSBJJSJGB_DYDJID"].ToString().Trim();
string sErrorMessage = "导入数据中存在相同报价产品[" + sErrXLXHID + " " + sErrXLGGID + " " + sErrXLBZID + " " + sErrDYDJID + "],导入失败!";
throw new Exception(sErrorMessage);
}
#endregion
#region 将V表插入XLXSJGBMX
sSQL.Clear();
sSQL.Add(@" merge into XLXSJGBMX tar
using ( select row_number() over( order by V_XSBJJSJGB_BJDXH )+:pMaxXH as XH,
V_XSBJJSJGB_XLXHID as XLXHID,
V_XSBJJSJGB_XLGGID as XLGGID,
V_XSBJJSJGB_XLBZID as XLBZID,
V_XSBJJSJGB_DYDJID as DYDJID,
V_XSBJJSJGB_JGBJLDW as JLDW,
V_XSBJJSJGB_JGBJJ as JGBJJ,
V_XSBJJSJGB_JGBBJ as JGBBJ,
V_XSBJJSJGB_CLCB as HSBJ,
V_XSBJJSJGB_BJDHQCLCB as WSBJ,
case when upper(V_XSBJJSJGB_JGBJLDW) in ('KM','千米') then 0.001 when upper(V_XSBJJSJGB_JGBJLDW) in ('M','米') then 1 else 0 end as dJQJGXS
from V_XSBJJSJGB
where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pJGBID
) sor
on (
tar.XLXSJGBMX_JGBID=:pJGBID
and tar.XLXSJGBMX_XLXHID =sor.XLXHID
and tar.XLXSJGBMX_XLGGID =sor.XLGGID
and tar.XLXSJGBMX_XLBZID =sor.XLBZID
and tar.XLXSJGBMX_DYDJID =sor.DYDJID
)
when matched then update set ");
sSQL.Add(" XLXSJGBMX_WSJJ = sor.JGBBJ ,XLXSJGBMX_HSJJ = sor.JGBJJ, ");
sSQL.Add(" XLXSJGBMX_HSBJ = sor.JGBJJ ,XLXSJGBMX_WSBJ=sor.JGBBJ,XLXSJGBMX_JLDW=sor.JLDW, ");
sSQL.Add(" XLXSJGBMX_HSJJM = RoundFix(sor.JGBJJ* sor.dJQJGXS,6),XLXSJGBMX_HSBJM=RoundFix(sor.JGBJJ* sor.dJQJGXS,6),XLXSJGBMX_WSJJM=RoundFix(sor.JGBBJ* sor.dJQJGXS,6),XLXSJGBMX_WSBJM=RoundFix(sor.JGBBJ* sor.dJQJGXS,6), ");
sSQL.Add(" XLXSJGBMX_WHR = :XLXSJGBMX_WHR, XLXSJGBMX_WHRID=:XLXSJGBMX_WHRID, XLXSJGBMX_WHSJ=:XLXSJGBMX_WHSJ ");
sSQL.Add(" when not matched then insert ( ");
sSQL.Add(" XLXSJGBMX_JGBID, XLXSJGBMX_XH,XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID,XLXSJGBMX_JLDW, ");
sSQL.Add(" XLXSJGBMX_YXQS,XLXSJGBMX_YXQZ,XLXSJGBMX_WSJJ,XLXSJGBMX_HSJJ,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJ,XLXSJGBMX_BZ,XLXSJGBMX_WHR,XLXSJGBMX_WHRID,XLXSJGBMX_WHSJ,");
sSQL.Add(" XLXSJGBMX_HSJJM,XLXSJGBMX_HSBJM,XLXSJGBMX_WSJJM,XLXSJGBMX_WSBJM )");
sSQL.Add(" values(");
sSQL.Add(" :pJGBID,sor.XH,sor.XLXHID,sor.XLGGID,sor.XLBZID,isnull(sor.DYDJID,' '),sor.JLDW, ");
sSQL.Add(" :XLXSJGBMX_YXQS,:XLXSJGBMX_YXQZ,sor.JGBBJ,sor.JGBJJ,sor.HSBJ,sor.WSBJ,:XLXSJGBMX_BZ,:XLXSJGBMX_WHR,:XLXSJGBMX_WHRID,:XLXSJGBMX_WHSJ, ");
sSQL.Add(" RoundFix(sor.JGBJJ* sor.dJQJGXS,6), RoundFix(sor.HSBJ* sor.dJQJGXS,6), RoundFix(sor.JGBBJ* sor.dJQJGXS,6),RoundFix(sor.WSBJ* sor.dJQJGXS,6) )");
sSQL.ParamByName("pMaxXH").Value = iXH;
sSQL.ParamByName("pID").Value = VnewID;
sSQL.ParamByName("pJGBID").Value = sJGBID;
sSQL.ParamByName("XLXSJGBMX_YXQS").Value = sYXQS;
sSQL.ParamByName("XLXSJGBMX_YXQZ").Value = sYXQZ.Equals("") ? null : sYXQZ;
sSQL.ParamByName("XLXSJGBMX_BZ").Value = "";
sSQL.ParamByName("XLXSJGBMX_WHR").Value = tSession.UserName;
sSQL.ParamByName("XLXSJGBMX_WHRID").Value = tSession.UserId;
sSQL.ParamByName("XLXSJGBMX_WHSJ").Value = CMISproConvert.ConvertTime(DateTime.Now);
dberp.ExecSQL(sSQL);
XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLXSJGBMX_Batch(dberp, tSession, sJGBID);
#endregion
#region 删除V表
sSQL.Clear();
sSQL.Add("delete from V_XSBJJSJGB ");
sSQL.Add(" where V_XSBJJSJGB_ID=:pID");
sSQL.Add(" and V_XSBJJSJGB_BJDID=:pJGBID");
sSQL.ParamByName("pID").Value = VnewID;
sSQL.ParamByName("pJGBID").Value = sJGBID;
dberp.ExecSQL(sSQL);
#endregion
Mac.MacLog.TraceFormat(String.Format("ExecDRSQL-End"));
//
if (sJJLY.Equals("D"))
{
Mac.MacLog.TraceFormat(String.Format("DoCPJJ-Begin"));
XLJGB_CLJGTZList.DoCPJJ(dberp, PageParam.GetRTrimString("MXBH"), sJGBID, true,
CMISproConvert.StrToInt(PageParam.GetRTrimString("iXSWS")), PageParam.GetRTrimString("JSBLFS"), tSession.UserId, tSession.UserName, sBJU003);
Mac.MacLog.TraceFormat(String.Format("DoCPJJ-End"));
}
JGBMLInfo.UpdateJGBMXXSXH(dberp, sJGBID, PageParam.GetRTrimString("MXBH"));
#endregion
}
private void ExecDRBZ(TDatabase dberp, TSQL sSQL, DataSet ds, string sJGBID, Dictionary<string, string> dicDRMXBZ, string sFileName, string sSheetName)
{
string sXLXHID = "";
string sXLGGID = "";
string sXLBZID = "G";
string sXLDYDJ = "";
string sGYKH = "";
string sBZ = "";
string sXLJGU007 = GetOption(102579000, "XLJGU007");
string sDefaultXLBZID = PageParam.GetRTrimString("sDefaultXLBZID");
string sJJLY = PageParam.GetRTrimString("JJLY");
string sBJLY = PageParam.GetRTrimString("BJLY");
foreach (DataRow Row in ds.Tables[0].Rows)
{
sXLXHID = sGetCellTest(Row, 0).Trim();
sXLGGID = sGetCellTest(Row, 1).Trim();
if (sXLJGU007.Equals("A"))
{
sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("*", "×");
}
else if (sXLJGU007.Equals("B"))
{
sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("×", "*");
}
sXLBZID = XLBJDUtils.GetBZXLZBZID(sGetCellTest(Row, 2).Trim(), sDefaultXLBZID, dicDRMXBZ);
if (sXLBZID.Equals(""))
sXLBZID = sGetCellTest(Row, 2).Trim();
sXLDYDJ = sGetCellTest(Row, 3).Trim().Replace('K', 'k').Replace('v', 'V'); ;
try
{
sGYKH = sGetCellTest(Row, 7).Trim();
sBZ = sGetCellTest(Row, 8).Trim();
if (sJJLY.Equals("D") && sBJLY.Equals("D"))
{
sGYKH = sGetCellTest(Row, 9).Trim();
sBZ = sGetCellTest(Row, 10).Trim();
}
}
catch
{
}
if (sGYKH.Equals("")) continue;
if (!dicDRMXBZ.ContainsKey(sXLBZID))
{
sSQL.Clear();
sSQL.Add("insert into XLBZ(XLBZ_XLBZID,XLBZ_XLBZLXMC,XLBZ_WHR,XLBZ_WHRID,XLBZ_WHSJ,XLBZ_DZSC,XLBZ_XLBZMS)");
sSQL.Add("values(:XLBZ_XLBZID,:XLBZ_XLBZLXMC,:XLBZ_WHR,:XLBZ_WHRID,:XLBZ_WHSJ,:XLBZ_DZSC,:XLBZ_XLBZMS)");
sSQL.ParamByName("XLBZ_XLBZID").Value = sXLBZID;
sSQL.ParamByName("XLBZ_XLBZLXMC").Value =sGYKH;
sSQL.ParamByName("XLBZ_WHR").Value = tSession.UserName;
sSQL.ParamByName("XLBZ_WHRID").Value = tSession.UserId;
sSQL.ParamByName("XLBZ_WHSJ").Value = DateTime.Now;
sSQL.ParamByName("XLBZ_DZSC").Value = "Y";
string sXLBZMS = sXLBZID+"/"+sGYKH + "/" + sBZ;
if (sXLBZMS.Length > 250)
sXLBZMS = sXLBZMS.Substring(0, 250);
sSQL.ParamByName("XLBZ_XLBZMS").Value =sXLBZMS;
dberp.ExecSQL(sSQL);
dicDRMXBZ.Add(sXLBZID, sGYKH);
}
//if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLBZGYKHDZB where XLBZGYKHDZB_XLBZID='{0}' and XLBZGYKHDZB_GYKH='{1}'", sXLBZID, sGYKH)))
//{
// sSQL.Clear();
// sSQL.Add("insert into XLBZGYKHDZB(XLBZGYKHDZB_XLBZID,XLBZGYKHDZB_GYKH,XLBZGYKHDZB_WHR,XLBZGYKHDZB_WHSJ,XLBZGYKHDZB_WHRID)");
// sSQL.Add("values(:XLBZGYKHDZB_XLBZID,:XLBZGYKHDZB_GYKH,:XLBZGYKHDZB_WHR,:XLBZGYKHDZB_WHSJ,:XLBZGYKHDZB_WHRID)");
// sSQL.ParamByName("XLBZGYKHDZB_XLBZID").Value = sXLBZID;
// sSQL.ParamByName("XLBZGYKHDZB_GYKH").Value = sGYKH;
// sSQL.ParamByName("XLBZGYKHDZB_WHR").Value = tSession.UserName;
// sSQL.ParamByName("XLBZGYKHDZB_WHRID").Value = tSession.UserId;
// sSQL.ParamByName("XLBZGYKHDZB_WHSJ").Value = DateTime.Now;
// dberp.ExecSQL(sSQL);
//}
//if (sBZ.Equals("")) continue;
//sSQL.Clear();
//sSQL.Add("update XLXSJGBMX set XLXSJGBMX_BZ=:pBZ ");
//sSQL.Add("where XLXSJGBMX_XLXHID=:pXLXHID and XLXSJGBMX_XLGGID=:pXLGGID and XLXSJGBMX_XLBZID=:pXLBZID and XLXSJGBMX_DYDJID=:pDYDJID ");
//sSQL.ParamByName("pXLXHID").Value = sXLXHID;
//sSQL.ParamByName("pXLGGID").Value = sXLGGID;
//sSQL.ParamByName("pXLBZID").Value = sXLBZID;
//sSQL.ParamByName("pDYDJID").Value = sXLDYDJ;
//sSQL.ParamByName("pBZ").Value = sBZ;
//dberp.ExecSQL(sSQL);
}
}
//检验栏目
private void ExcelColumnName(DataSet ds)
{
Mac.MacLog.TraceFormat(String.Format("ExcelColumnName-Begin"));
Dictionary<string, string> ColumnNames = new Dictionary<string, string>();
int iColumnCount = 7;
ColumnNames.Add("0", "型号");
ColumnNames.Add("1", "规格");
ColumnNames.Add("2", "标准");
ColumnNames.Add("3", "电压等级");
ColumnNames.Add("4", "计量单位");
if (PageParam.GetRTrimString("JJLY").Equals("D"))
{
ColumnNames.Add("5", "含税基价");
ColumnNames.Add("6", "无税基价");
if (PageParam.GetRTrimString("BJLY").Equals("D"))
{
ColumnNames.Add("7", "含税表价");
ColumnNames.Add("8", "无税表价");
iColumnCount = 9;
}
}
else
{
ColumnNames.Add("5", "含税表价");
ColumnNames.Add("6", "无税表价");
}
for (int i = 0; i < iColumnCount; i++)
{
try
{
if (!ds.Tables[0].Columns[i].ColumnName.Trim().Equals(ColumnNames[i.ToString()].Trim()))
{
throw new Exception("导入文件的栏目内容格式不正确,请按Excel栏目要求的内容格式调整导入文件!");
}
}
catch
{
throw new Exception("导入文件的栏目内容格式不正确,请按Excel栏目要求的内容格式调整导入文件!");
}
}
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
try
{
if (ds.Tables[0].Rows[i][0].ToString().Trim().Equals("")
|| ds.Tables[0].Rows[i][1].ToString().Trim().Equals("")
|| ds.Tables[0].Rows[i][2].ToString().Trim().Equals(""))
{
throw new Exception(String.Format("第{0}行型号、规格、标准存在空值,不允许导入!", (i + 2).ToString().Trim()));
}
}
catch
{
throw new Exception(String.Format("第{0}行型号、规格、标准存在空值,不允许导入!", (i + 2).ToString().Trim()));
}
}
Mac.MacLog.TraceFormat(String.Format("ExcelColumnName-End"));
}
private void ReadWJ(string sPath, string sSheetName, ref DataSet aDataExcel)
{
string sMessage = "";
aDataExcel = TExcelData.ReadExcel(sPath.Trim(), sSheetName, "", 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", "");
}
//取得默认的sheet名称
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;
}
#endregion
}
}