using System; using System.Data; using System.Configuration; 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_CONTROL; using GThinking.N_MISPRO; using GThinking.N_MISPRO.Data; using GThinking.N_MISPRO.Utility; using GThinking.N_MODEL.Dialog; using GThinking.N_WORKFLOW; using GThinking.N_MISPRO.TableCache; using GThinking.N_MISPRO.MISPROAS; using System.Collections; using GThinking.N_MODEL.ModelBase; using System.Collections.Generic; using GThinking.N_PUBLIC; using System.Text.RegularExpressions; using System.Text; using GThinking.N_MISPROAS.SysData; namespace GThinking.N_XLXSBJ { public class XLBJBJBO : BOBase { #region 自定义方法 public List GetCPYTInfoList() { string sCPMLIDS = ""; string sAPPCJSXFS = GetAPPCJSXFS(ref sCPMLIDS); List rEntity = new List(); string sSQL = ""; if (sAPPCJSXFS.Equals("1")) { sSQL = " select distinct XLCPYT_XSSX,XLXHB_CPYT as XLCPYT_CPYT,XLCPYT_CPYTMC from XLXHB "; sSQL += " left join XLCPYT on XLCPYT_CPYT = XLXHB_CPYT "; sSQL += " where ISNULL(XLCPYT_CPYT,' ') <> ' ' order by XLCPYT_XSSX,XLXHB_CPYT "; } else { sSQL = " select distinct XLXSBJXHML_CPMLID as XLCPYT_CPYT,XLXSCPML_CPMLMC as XLCPYT_CPYTMC from XLXSBJXHML "; sSQL += " left join XLXSCPML on XLXSCPML_CPMLID = XLXSBJXHML_CPMLID "; sSQL += " where ISNULL(XLXSCPML_CPMLID,' ') <> ' ' "; if (!sCPMLIDS.Trim().Equals("")) { sSQL += " and " + CMISproDataBase.GetWhereEqual("XLXSCPML_CPMLID", sCPMLIDS); } else { sSQL += " and XLXSCPML_BJY = 'Y' "; } sSQL += " order by XLXSBJXHML_CPMLID "; } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(sSQL); DataSet ds = dberp.OpenDataSet(SQL); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { CPYTInfo info = new CPYTInfo(); info.GetType().GetProperty("XLCPYT_CPYT").SetValue(info, ds.Tables[0].Rows[i]["XLCPYT_CPYT"].ToString().Trim(), null); info.GetType().GetProperty("XLCPYT_CPYTMC").SetValue(info, ds.Tables[0].Rows[i]["XLCPYT_CPYTMC"].ToString().Trim(), null); info.GetType().GetProperty("APPCJSXFS").SetValue(info, sAPPCJSXFS, null); info.GetType().GetProperty("DJBJ").SetValue(info, "N", null); rEntity.Add(info); } return rEntity; } public List GetXLXHInfoList(string sCPYT, string sXLXHID, string isMHCX) { string sCPMLIDS = ""; string sAPPCJSXFS = GetAPPCJSXFS(ref sCPMLIDS); List rEntity = new List(); string sSQL = ""; if (sAPPCJSXFS.Equals("1")) { sSQL = "select XLXHB_XLXHID, ' ' as XLXSBJXHML_DYDJID,XLXHB_XLXHID as XLXHB_XLXHMC from XLXHB where 1=1 "; sSQL += " and XLXHB_CPYT='" + sCPYT + "'"; } else { sSQL = " select XLXHB_XLXHID,XLXSBJXHML_DYDJID, case when ISNULL(XLXSBJXHML_DYDJID,' ') = ' ' then XLXHB_XLXHID else rtrim(XLXHB_XLXHID)||'-'|| XLXSBJXHML_DYDJID end as XLXHB_XLXHMC "; sSQL += " from XLXHB,XLXSBJXHML where XLXSBJXHML_XLXHID=XLXHB_XLXHID and XLXSBJXHML_CPMLID='" + sCPYT + "' "; } if (!sXLXHID.Equals("")) { if (isMHCX.Equals("Y")) { sSQL += " and XLXHB_XLXHID like '%" + sXLXHID + "%'"; } else { sSQL += " and XLXHB_XLXHID = '" + sXLXHID + "'"; } } sSQL += " and isnull(XLXHB_TYBZ,'N') <> 'Y' "; sSQL += " order by XLXHB_XLXHID "; if (sAPPCJSXFS.Equals("2")) sSQL += " ,XLXSBJXHML_DYDJID "; TWorkflow wf = new TWorkflow(tSession, new System.Web.Caching.Cache()); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(sSQL); DataSet ds = dberp.OpenDataSet(SQL); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { XLXHInfo info = new XLXHInfo(); info.GetType().GetProperty("XLXHB_XLXHID").SetValue(info, ds.Tables[0].Rows[i]["XLXHB_XLXHID"].ToString().Trim(), null); info.GetType().GetProperty("XLXSBJXHML_DYDJID").SetValue(info, ds.Tables[0].Rows[i]["XLXSBJXHML_DYDJID"].ToString().Trim(), null); info.GetType().GetProperty("XLXHB_XLXHMC").SetValue(info, ds.Tables[0].Rows[i]["XLXHB_XLXHMC"].ToString().Trim(), null); rEntity.Add(info); } return rEntity; } public List GetXLGGInfoList(int iStart, int iNum, string sXLXHID, string sDYDJID, string sXLGGID, string sJGBID, string isMHCX, string sCPML, string sBJFLID, out int iRowCount) { int tmpXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002")); if (tmpXSWS < 0) tmpXSWS = 0; else if (tmpXSWS > 8) tmpXSWS = 8; if (sJGBID.Trim().Equals("DEFAULT")) { string[] dicBJFL = GetBJFLlist(); if (dicBJFL.Length > 0) { sBJFLID = dicBJFL[0].Split('|')[0]; Dictionary dicJGBID = XLBJDUtils.GetJGBIDByXSQYID("手机端价格表报价", sBJFLID, System.DateTime.Now.ToString(), ""); if (dicJGBID.Count > 0) { foreach (KeyValuePair kvp in dicJGBID) { sJGBID = kvp.Key; break; } } else sJGBID = ""; } else sJGBID = ""; } iRowCount = 0; List rEntity = new List(); if (sJGBID.Trim().Equals("")) return rEntity; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); string sCPMLIDS = ""; string sBJRQ = DateTime.Now.ToShortDateString().Trim(); string sJGFID = XLBJDUtils.GetJGFID(sBJRQ); string sAPPCJSXFS = GetAPPCJSXFS(ref sCPMLIDS); string sFields = @"JGBID,XLXHID,DYDJID,XLGGID,CPJJ,XLBZID,XLBZMC,XSTLJ,TBJCLID,LBJCLID,TJ,LJ,WGCP"; string sSQL = ""; int top = iStart + iNum; string sCunt = "select count(1) "; string sculom = "select top " + top.ToString().Trim() + " JGBID, XLXHID, DYDJID, XLGGID, CPJJ,XLBZID,XLBZMC,XSTLJ,TBJCLID,LBJCLID,TJ,LJ,WGCP "; string sOrder = ""; if (!XLBJDUtils.IsJGEJGB(sJGBID)) { sSQL += " from ( select XLXSJGBMX_JGBID as JGBID, XLXSJGBMX_XLXHID as XLXHID, XLXSJGBMX_DYDJID as DYDJID, XLXSJGBMX_XLGGID as XLGGID, RoundFix(XLXSJGBMX_HSBJ," + tmpXSWS + ") as CPJJ,XLXSJGBMX_XLBZID as XLBZID, XLBZ_XLBZLXMC as XLBZMC,'N' as XSTLJ,' ' as TBJCLID,' ' as LBJCLID,'0' as TJ,'0' as LJ,WGCP,XLXSJGBMX_XSXH,PX,XLGGB_XH as minXH "; sSQL += " from ( "; sSQL += " select XLXSJGBMX_JGBID,XLXSJGBMX_XH,XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJ,XLXSJGBMX_JLDW,XLXSJGBMX_XSXH,1 as PX,'Y' as WGCP "; sSQL += " from XLXSJGBMX left join XLXSBJXLGGTHB XLXSBJXLGGTHB_BJGB on XLXSBJXLGGTHB_BJGB.XLXSBJXLGGTHB_XLGGID = XLXSJGBMX_XLGGID where 1=1 and XLXSJGBMX_JGBID='" + sJGFID + "' "; sSQL += " union all "; sSQL += " select XLXSJGBMX_JGBID,XLXSJGBMX_XH,XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJ,XLXSJGBMX_JLDW,XLXSJGBMX_XSXH,2 as PX,'N' as WGCP "; sSQL += " from XLXSJGBMX left join XLXSBJXLGGTHB XLXSBJXLGGTHB_CJGB on XLXSBJXLGGTHB_CJGB.XLXSBJXLGGTHB_XLGGID = XLXSJGBMX_XLGGID where 1=1 "; SQL.Clear(); SQL.Add("select XLXSCPML_CPMLLX,XLXSJGB_JGCIDS,XLXSJGB_BJLY,XLXSJGB_YXQS,XLXSJGB_YXQZ,XLXSJGB_JGBMC "); SQL.Add("from XLXSJGB "); SQL.Add("left join XLXSCPML on XLXSCPML_CPMLID=XLXSJGB_CPMLID "); SQL.Add("where XLXSJGB_MXBH='JGB' and XLXSJGB_JGBID=:pJGBID "); SQL.ParamByName("pJGBID").Value = sJGBID; DataSet dsJGB = dberp.OpenDataSet(SQL); if (dsJGB.Tables[0].Rows.Count > 0) { //Y|组合产品目录、N|单一产品目录 string sCPMLLX = dsJGB.Tables[0].Rows[0]["XLXSCPML_CPMLLX"].ToString().Trim(); string sJGCIDS = dsJGB.Tables[0].Rows[0]["XLXSJGB_JGCIDS"].ToString().Trim(); if (sCPMLLX.Equals("Y"))//组合产品目录价格表 { sSQL += (" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGCIDS)); } else { sSQL += (" and XLXSJGBMX_JGBID='" + sJGBID + "'"); } } sSQL += " and not exists(select 1 from XLXSJGBMX B left join XLXSBJXLGGTHB XLXSBJXLGGTHB_BJGB on XLXSBJXLGGTHB_BJGB.XLXSBJXLGGTHB_XLGGID = B.XLXSJGBMX_XLGGID where B.XLXSJGBMX_JGBID='" + sJGFID + "' "; sSQL += " and B.XLXSJGBMX_XLXHID = XLXSJGBMX.XLXSJGBMX_XLXHID and XLXSBJXLGGTHB_BJGB.XLXSBJXLGGTHB_XLGGIDCH = XLXSBJXLGGTHB_CJGB.XLXSBJXLGGTHB_XLGGIDCH "; sSQL += " and B.XLXSJGBMX_XLBZID = XLXSJGBMX.XLXSJGBMX_XLBZID and B.XLXSJGBMX_DYDJID = XLXSJGBMX.XLXSJGBMX_DYDJID ) "; sSQL += " ) C "; sSQL += " left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID"; sSQL += " left join XLBZ on XLBZ_XLBZID = XLXSJGBMX_XLBZID "; sSQL += " left join XLXHB on XLXHB_XLXHID = XLXSCLQD_XLXHID "; sSQL += " left join XLXSBJXLGGTHB XLXSBJXLGGTHB_CLQD on XLXSBJXLGGTHB_CLQD.XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID "; sSQL += " left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_CLQD.XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "; if (sAPPCJSXFS.Equals("2")) { sSQL += " left join XLXSBJXHML a on a.XLXSBJXHML_XLXHID=XLXSJGBMX_XLXHID and isnull(a.XLXSBJXHML_DYDJID,' ')=' ' "; sSQL += " left join XLXSBJXHML b on b.XLXSBJXHML_XLXHID=XLXSJGBMX_XLXHID and isnull(b.XLXSBJXHML_DYDJID,' ') = isnull(XLXSJGBMX_DYDJID, ' ') "; } if (isMHCX.Equals("Y")) { sSQL += " where XLXSJGBMX_XLXHID like '%" + sXLXHID + "%' "; if (!sXLGGID.Equals("")) { sSQL += " and (XLXSJGBMX_XLGGID like '%" + sXLGGID + "%' or XLXSJGBMX_XLGGID like '%" + sXLGGID.Replace("*", "×") + "%' or XLXSJGBMX_XLGGID like '%" + sXLGGID.Replace("×", "*") + "%')"; } } else { sSQL += " where XLXSJGBMX_XLXHID = '" + sXLXHID + "' "; if (!sXLGGID.Equals("")) { sSQL += " and (XLXSJGBMX_XLGGID = '" + sXLGGID + "' or XLXSJGBMX_XLGGID = '" + sXLGGID.Replace("*", "×") + "' or XLXSJGBMX_XLGGID = '" + sXLGGID.Replace("×", "*") + "')"; } } if (sAPPCJSXFS.Equals("2")) { if (!sDYDJID.Trim().Equals("")) { sSQL += " and ISNULL(XLXSJGBMX_DYDJID,' ') = '" + sDYDJID + "' "; } if (!sCPML.Trim().Equals("")) { sSQL += " and (case when isnull(b.XLXSBJXHML_CPMLID,' ')<>' ' then b.XLXSBJXHML_CPMLID else isnull(a.XLXSBJXHML_CPMLID,' ') end) = '" + sCPML + "' "; } if (!sCPMLIDS.Trim().Equals("")) { sCPMLIDS = SetStr(sCPMLIDS); sSQL += " and (case when isnull(b.XLXSBJXHML_CPMLID,' ')<>' ' then b.XLXSBJXHML_CPMLID else isnull(a.XLXSBJXHML_CPMLID,' ') end) in " + sCPMLIDS + " "; } } } else { sSQL += "from ( select '" + sJGBID + "' as JGBID, XLXSCLQD_XLXHID as XLXHID, XLXSCLQD_DYDJID as DYDJID, XLXSCLQD_XLGGID as XLGGID, RoundFix(XLXSCLQD_HSBJ," + tmpXSWS + ") as CPJJ,XLXSCLQD_XLBZID as XLBZID, XLBZ_XLBZLXMC as XLBZMC,'Y' as XSTLJ,' ' as TBJCLID,' ' as LBJCLID,'0' as TJ,'0' as LJ,WGCP,PX,XLGGB_XH as minXH "; sSQL +=" from ( "; sSQL +=" select XLXSJGBMX_XH as XLXSCLQD_XH,XLXSJGBMX_XLXHID as XLXSCLQD_XLXHID,XLXSJGBMX_XLGGID as XLXSCLQD_XLGGID, "; sSQL +=" XLXSJGBMX_XLBZID as XLXSCLQD_XLBZID,XLXSJGBMX_DYDJID as XLXSCLQD_DYDJID, "; sSQL += " XLXSJGBMX_HSBJ as XLXSCLQD_HSBJ,XLXSJGBMX_WSBJ as XLXSCLQD_WSBJ,1 as PX,'Y' as WGCP "; sSQL +=" from XLXSJGBMX "; sSQL += " where 1=1 and XLXSJGBMX_JGBID='" + sJGFID + "' "; sSQL +=" union all "; sSQL += " select XLXSCLQD_XH,XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID, 0 as XLXSCLQD_HSBJ, 0 as XLXSCLQD_WSBJ,2 as PX,'N' as WGCP "; sSQL +=" from XLXSCLQD "; sSQL += " left join XLXSBJXLGGTHB XLXSBJXLGGTHB_CLQD on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID "; sSQL +=" where 1=1 and isnull(XLXSCLQD_WPID,'ZZZZ') = 'ZZZZ' "; sSQL += " and not exists(select 1 from XLXSJGBMX B left join XLXSBJXLGGTHB XLXSBJXLGGTHB_JGB on XLXSBJXLGGTHB_XLGGID = B.XLXSJGBMX_XLGGID where B.XLXSJGBMX_JGBID='" + sJGFID + "'"; sSQL += " and B.XLXSJGBMX_XLXHID = XLXSCLQD_XLXHID and XLXSBJXLGGTHB_JGB.XLXSBJXLGGTHB_XLGGIDCH = XLXSBJXLGGTHB_CLQD.XLXSBJXLGGTHB_XLGGIDCH "; sSQL +=" and B.XLXSJGBMX_XLBZID = XLXSCLQD_XLBZID and B.XLXSJGBMX_DYDJID = XLXSCLQD_DYDJID ) "; sSQL +=" ) C "; sSQL += " left join XLBZ on XLBZ_XLBZID = XLXSCLQD_XLBZID "; sSQL += " left join XLXHB on XLXHB_XLXHID = XLXSCLQD_XLXHID "; sSQL += " left join XLGGB on XLGGB_XLGGID = REPLACE( XLXSCLQD_XLGGID , '*','×') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "; if (sAPPCJSXFS.Equals("2")) { sSQL += " left join XLXSBJXHML a on a.XLXSBJXHML_XLXHID=XLXSCLQD_XLXHID and isnull(a.XLXSBJXHML_DYDJID,' ')=' ' "; sSQL += " left join XLXSBJXHML b on b.XLXSBJXHML_XLXHID=XLXSCLQD_XLXHID and isnull(b.XLXSBJXHML_DYDJID,' ') = isnull(XLXSCLQD_DYDJID, ' ') "; } sSQL += " where 1=1 "; if (isMHCX.Equals("Y")) { sSQL += " and XLXSCLQD_XLXHID like '%" + sXLXHID + "%' "; if (!sXLGGID.Equals("")) { sSQL += " and (XLXSCLQD_XLGGID like '%" + sXLGGID + "%' or XLXSCLQD_XLGGID like '%" + sXLGGID.Replace("*", "×") + "%' or XLXSCLQD_XLGGID like '%" + sXLGGID.Replace("×", "*") + "%')"; } } else { sSQL += " and XLXSCLQD_XLXHID = '" + sXLXHID + "' "; if (!sXLGGID.Equals("")) { sSQL += " and (XLXSCLQD_XLGGID = '" + sXLGGID + "' or XLXSCLQD_XLGGID = '" + sXLGGID.Replace("*", "×") + "' or XLXSCLQD_XLGGID = '" + sXLGGID.Replace("×", "*") + "')"; } } if (sAPPCJSXFS.Equals("2")) { if (!sDYDJID.Trim().Equals("")) { sSQL += " and ISNULL(XLXSCLQD_DYDJID,' ') = '" + sDYDJID + "' "; } if (!sCPML.Trim().Equals("")) { sSQL += " and (case when isnull(b.XLXSBJXHML_CPMLID,' ')<>' ' then b.XLXSBJXHML_CPMLID else isnull(a.XLXSBJXHML_CPMLID,' ') end) = '" + sCPML + "' "; } if (!sCPMLIDS.Trim().Equals("")) { sCPMLIDS = SetStr(sCPMLIDS); sSQL += " and (case when isnull(b.XLXSBJXHML_CPMLID,' ')<>' ' then b.XLXSBJXHML_CPMLID else isnull(a.XLXSBJXHML_CPMLID,' ') end) in " + sCPMLIDS + " "; } } } sSQL += ") D where 1=1 "; if (!XLBJDUtils.IsJGEJGB(sJGBID)) { sOrder += " order by PX,XLXSJGBMX_XSXH "; } else { sOrder += " order by PX,XLXHID,minXH,XLGGID,DYDJID "; } SQL.Clear(); SQL.Add(sculom + sSQL + sOrder); DataSet ds = dberp.OpenDataSet(SQL); TSQL SQLCOUNT = new TSQL(dberp); SQLCOUNT.Clear(); SQLCOUNT.Add(sCunt + sSQL); DataSet dsCount = dberp.OpenDataSet(SQLCOUNT); if (dsCount.Tables[0].Rows.Count > 0) { iRowCount = CMISproConvert.StrToInt(dsCount.Tables[0].Rows[0][0].ToString().Trim()); } string sXSTLJ = "N"; string sTBJCLID = ""; string sLBJCLID = ""; string sTJ = "0"; string sLJ = "0"; if (XLBJDUtils.IsJGEJGB(sJGBID)) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID); sTBJCLID = bjflxx.XLXSBJFL_TBJCLID; sLBJCLID = bjflxx.XLXSBJFL_LBJCLID; if (!sTBJCLID.Equals("") && !sLBJCLID.Equals("")) { sXSTLJ = "Y"; } else if (!sTBJCLID.Equals("")) { sXSTLJ = "T"; } else if (!sLBJCLID.Equals("")) { sXSTLJ = "L"; } Dictionary dicTLJG = XLBJDInfo.GetTLJByRQ(sBJRQ, sBJFLID, true); sTJ = dicTLJG["TJ"]; sLJ = dicTLJG["LJ"]; } int iMax = Math.Min(iStart + iNum, iRowCount); for (int i = iStart; i < iMax; i++) { XLGGInfo info = new XLGGInfo(); string[] aField = sFields.Split(','); foreach (string Field in aField) { if (Field.Equals("CPJJ")) { double dCPJJ = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i][Field.Trim()].ToString().Trim()), tmpXSWS); info.GetType().GetProperty(Field.Trim()).SetValue(info, XLBJDUtils.strPadRight(dCPJJ.ToString().Trim(), tmpXSWS), null); } else info.GetType().GetProperty(Field.Trim()).SetValue(info, ds.Tables[0].Rows[i][Field.Trim()].ToString().Trim(), null); if (XLBJDUtils.IsJGEJGB(sJGBID)) { if (Field.Equals("XSTLJ")) { info.GetType().GetProperty(Field.Trim()).SetValue(info, sXSTLJ, null); } if (Field.Equals("TBJCLID")) { info.GetType().GetProperty(Field.Trim()).SetValue(info, sTBJCLID, null); } if (Field.Equals("LBJCLID")) { info.GetType().GetProperty(Field.Trim()).SetValue(info, sLBJCLID, null); } if (Field.Equals("TJ")) { info.GetType().GetProperty(Field.Trim()).SetValue(info, sTJ, null); } if (Field.Equals("LJ")) { info.GetType().GetProperty(Field.Trim()).SetValue(info, sLJ, null); } } } rEntity.Add(info); } return rEntity; } private string GetAPPCJSXFS(ref string sCPMLIDS) { string sRstr = "1"; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860033); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_APPCJSXFS)) sRstr = pzxx.XLXSBJPZ_APPCJSXFS; if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_CPMLIDS)) sCPMLIDS = pzxx.XLXSBJPZ_CPMLIDS; return sRstr; } private string SetStr(string sCPMLIDS) { string Rstr = ""; if (!sCPMLIDS.Trim().Equals("")) { foreach (string str in sCPMLIDS.Split(',')) { if (!Rstr.Equals("")) Rstr += ","; Rstr += "'" + str.Trim() + "'"; } Rstr = "(" + Rstr + ")"; } return Rstr; } public List GetLSXLGGInfoList(string sXLXHGGlist, string sXLXHID, string sXLGGID, string sJGBID) { int tmpXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002")); if (tmpXSWS < 0) tmpXSWS = 0; else if (tmpXSWS > 8) tmpXSWS = 8; List rEntity = new List(); string sFields = @"XLXHID, DYDJID, XLGGID, CPJJ, XLBZID, XLBZMC"; string sSQL = "select XLXSJGBMX_XLXHID as XLXHID, XLXSJGBMX_DYDJID as DYDJID, XLXSJGBMX_XLGGID as XLGGID, RoundFix(XLXSJGBMX_HSBJ," + tmpXSWS + ") as CPJJ,XLXSJGBMX_XLBZID as XLBZID, XLBZ_XLBZLXMC as XLBZMC from XLXSJGBMX left join XLBZ on XLBZ_XLBZID = XLXSJGBMX_XLBZID where 1=1 "; if (!sXLXHGGlist.Equals("")) { sSQL += " and ("; string[] XLXHGGlist = sXLXHGGlist.Split(';'); for (int i = 0; i < XLXHGGlist.Length - 1; i++) { if (i == 0) sSQL += " (XLXSJGBMX_XLXHID = '" + XLXHGGlist[i].Split(',')[0] + "' and (XLXSJGBMX_XLGGID = '" + XLXHGGlist[i].Split(',')[1] + "' or XLXSJGBMX_XLGGID = '" + XLXHGGlist[i].Split(',')[1].Replace("*", "×") + "' or XLXSJGBMX_XLGGID = '" + XLXHGGlist[i].Split(',')[1].Replace("×", "*") + "')) "; else sSQL += " or (XLXSJGBMX_XLXHID = '" + XLXHGGlist[i].Split(',')[0] + "' and (XLXSJGBMX_XLGGID = '" + XLXHGGlist[i].Split(',')[1] + "' or XLXSJGBMX_XLGGID = '" + XLXHGGlist[i].Split(',')[1].Replace("*", "×") + "' or XLXSJGBMX_XLGGID = '" + XLXHGGlist[i].Split(',')[1].Replace("×", "*") + "')) "; } sSQL += " )"; } if (!sXLXHID.Equals("")) { sSQL += " and XLXSJGBMX_XLXHID = '" + sXLXHID + "' "; } if (!sXLGGID.Equals("")) { sSQL += " and (XLXSJGBMX_XLGGID = '" + sXLGGID + "' or XLXSJGBMX_XLGGID = '" + sXLGGID.Replace("*", "×") + "' or XLXSJGBMX_XLGGID = '" + sXLGGID.Replace("×", "*") + "')"; } sSQL += " and XLXSJGBMX_JGBID = '" + sJGBID + "'"; sSQL += " order by XLXSJGBMX_XH "; TWorkflow wf = new TWorkflow(tSession, new System.Web.Caching.Cache()); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(sSQL); DataSet ds = dberp.OpenDataSet(SQL); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { XLGGInfo info = new XLGGInfo(); string[] aField = sFields.Split(','); foreach (string Field in aField) { info.GetType().GetProperty(Field.Trim()).SetValue(info, ds.Tables[0].Rows[i][Field.Trim()].ToString().Trim(), null); } rEntity.Add(info); } return rEntity; } public List GetJGBInfoList(string sBJFLID) { List rEntity = new List(); Dictionary dicJGBID = XLBJDUtils.GetJGBIDByXSQYID("手机端价格表报价", sBJFLID, System.DateTime.Now.ToString(), ""); foreach (KeyValuePair kvp in dicJGBID) { JGBInfo info = new JGBInfo(); info.JGBID = kvp.Key; info.JGBMC = kvp.Value; rEntity.Add(info); } if (rEntity.Count == 0) { JGBInfo info = new JGBInfo(); rEntity.Add(info); } return rEntity; } public string[] GetBJFLlist() { string[] sBJFLlist; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); DataSet ds = null; //检查是否经销商报价 sql.Clear(); sql.Add("select JXSXX_KHID,JXSXX_XSQYID from JXSXX where JXSXX_GH=:pGH order by JXSXX_KHID"); sql.ParamByName("pGH").Value = tSession.UserId; ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { //根据找到的JXSXX_KHID匹配XLXSBJFL_KHIDS,得到报价分类可选项 sql.Clear(); sql.Add("select XLXSBJFL_BJFLID,XLXSBJFL_BJFLMC from XLXSBJFL where isnull(XLXSBJFL_TYBZ,' ')<>'Y'"); sql.Add(" and ( exists(select 1 from XLXSBJFLKH where XLXSBJFLKH_BJFLID=XLXSBJFL_BJFLID and XLXSBJFLKH_KHID=:pKHID) "); sql.Add(" or not exists(select 1 from XLXSBJFLKH where XLXSBJFLKH_BJFLID=XLXSBJFL_BJFLID) ) "); if (!GetOption("BJU012").Equals("")) sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJFL_BJFLID", GetOption("BJU012"))); sql.Add(" order by XLXSBJFL_XSXH,XLXSBJFL_BJFLID "); sql.ParamByName("pKHID").Value = ds.Tables[0].Rows[0]["JXSXX_KHID"].ToString().Trim(); ds = null; ds = dberp.OpenDataSet(sql); sBJFLlist = new string[ds.Tables[0].Rows.Count]; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sBJFLlist[i] = ds.Tables[0].Rows[i]["XLXSBJFL_BJFLID"].ToString().Trim() + "|" + ds.Tables[0].Rows[i]["XLXSBJFL_BJFLMC"].ToString().Trim(); } } else { sql.Clear(); sql.Add("select XLXSBJFL_BJFLID, XLXSBJFL_BJFLMC from XLXSBJFL where isnull(XLXSBJFL_TYBZ,'N')<>'Y' "); if (!GetOption("BJU012").Equals("")) sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJFL_BJFLID", GetOption("BJU012"))); sql.Add(" order by XLXSBJFL_XSXH,XLXSBJFL_BJFLID "); ds = null; ds = dberp.OpenDataSet(sql); sBJFLlist = new string[ds.Tables[0].Rows.Count]; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sBJFLlist[i] = ds.Tables[0].Rows[i]["XLXSBJFL_BJFLID"].ToString().Trim() + "|" + ds.Tables[0].Rows[i]["XLXSBJFL_BJFLMC"].ToString().Trim(); } } return sBJFLlist; } //数量、型号、规格、电压等级、报价分类、表价 public string GetYZZ(string cs_SL, string cs_XLXHID, string cs_XLGGID, string cs_DYDJID, string cs_XLBZID, string cs_WGCP, string cs_BJFLID, string cs_BJ, string cs_JGBID, string cs_TBJCLID, string cs_TJ, string cs_LBJCLID, string cs_LJ) { string result = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); string sBJU003 = tSession.GetOption(100860000, "BJU003"); //报价分类---------------------------------------------------------------------------------------------------------------------------------------------------------------- string sBJFLID = cs_BJFLID; int tmpXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002")); if (tmpXSWS < 0) tmpXSWS = 0; else if (tmpXSWS > 8) tmpXSWS = 8; if (cs_JGBID.Trim().Equals("DEFAULT")) { Dictionary dicJGBID = XLBJDUtils.GetJGBIDByXSQYID("手机端价格表报价", sBJFLID, System.DateTime.Now.ToString(), ""); if (dicJGBID.Count > 0) { foreach (KeyValuePair kvp in dicJGBID) { cs_JGBID = kvp.Key; break; } } else cs_JGBID = ""; } //数量、型号、规格 double dBJSL = CMISproConvert.StrToFloat(cs_SL); string sXLXHID = cs_XLXHID; string sXLGGID = cs_XLGGID; string sXLBZID = cs_XLBZID; string sDYDJID = cs_DYDJID; string sJGBID = cs_JGBID.Trim(); double dCPBJ = CMISproConvert.StrToFloat(cs_BJ, 0); string sBJRQ = DateTime.Now.ToShortDateString().Trim(); #region 如果是JGE价格表则重新计算表价 if (XLBJDUtils.IsJGEJGB(cs_JGBID)) { if (XLBJDUtils.IsJGFJGBMX(sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID)) { double dJGFJJ = 0; double dJGFBJ = 0; string sJGFJLDW = ""; XLBJDUtils.GetJGBJJ_JGF(sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID, true, "N", ref dJGFJJ, ref dJGFBJ, ref sJGFJLDW); cs_BJ = dJGFBJ.ToString().Trim(); } else { if (cs_TJ.Equals("")) cs_TJ = "0"; if (cs_LJ.Equals("")) cs_LJ = "0"; Dictionary dicJGE = XLBJDUtils.GetCLCB_JGE(DateTime.Now.ToShortDateString().Trim(), sXLXHID, sXLGGID, sXLBZID, sDYDJID, cs_TBJCLID, cs_LBJCLID, cs_TJ, cs_LJ, true, false, ""); bool JgIsZero = dicJGE["JgIsZero"] == 1 ? true : false; string sCLCB = dicJGE["CLCB"].ToString(); DataSet dsJGBYZ = new DataSet(); string sJGBTJYSS = ""; //计算公式以及因子的输出 Dictionary dicJGBTZYZGS_JGE = new Dictionary(); //记录价格表调价因素相关信息-线缆基本信息 Dictionary dicXLJBXX_JGE = new Dictionary(); XLBJDUtils.GetdsJGBYZ_JGE(sJGBID, ref dsJGBYZ); sJGBTJYSS = XLBJDUtils.GetJGBTJYSSByBJFLID(sBJFLID); dicXLJBXX_JGE.Clear(); dicXLJBXX_JGE.Add("XLXHID", sXLXHID); dicXLJBXX_JGE.Add("XLGGID", sXLGGID); dicXLJBXX_JGE.Add("XLBZID", sXLBZID); dicXLJBXX_JGE.Add("DYDJID", sDYDJID); dicXLJBXX_JGE.Add("BJDJLDWHSBL", "1");//材料清单计量单位与报价单计量单位一致,均为BJU003,所以换算倍率固定为1 dicJGBTZYZGS_JGE = XLBJDUtils.GetJGBTZYZ_JGE(sJGBID, "0", dsJGBYZ, dicXLJBXX_JGE); sCLCB = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB), tmpXSWS).ToString().Trim(); double dZBZ = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB), tmpXSWS); if (sJGBTJYSS.Equals("1")) { string sTmpGS = ""; string sJSGS = dicJGBTZYZGS_JGE["JSGS"].Trim(); if (sJSGS.Equals("")) { if (dicJGBTZYZGS_JGE["JJFirst"].Equals("1")) { sTmpGS = "(" + sCLCB + "+" + dicJGBTZYZGS_JGE["JJ"] + ")*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")"; } else { sTmpGS = sCLCB + "*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")+(" + dicJGBTZYZGS_JGE["JJ"] + ")"; } } else { sTmpGS = sJSGS.Replace("JGBJJ", sCLCB); } gtExpression exp = new gtExpression(); try { dZBZ = NumberUtils.RoundX(exp.Evaluate(sTmpGS), 15); } catch { dZBZ = 0; } } if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的表价、报价单行情料价改为负数显示 { cs_BJ = FloatToString(dZBZ * (-1), tmpXSWS); } else { cs_BJ = FloatToString(dZBZ, tmpXSWS); } } } dCPBJ = CMISproConvert.StrToFloat(cs_BJ, 0); #endregion if (!cs_SL.Equals("") && !cs_SL.Equals("0")) { Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); //---------------------------------------------------------------------------------------------------------------------------------------------------------------- string sXSQYID = ""; string fZXJM = dicXLGGB["ZXJM"]; string sXXJGID = dicXLGGB["XXJGID"]; Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(sBJFLID); string sTJYSList = dicBJDYZ["TJYSList"]; #region 获取报价单调价因子以及调整过程 //获取调价因素为空的因子值 Dictionary dicYZZ0 = XLBJDUtils.GetBJDYZZ0(sBJFLID, cs_WGCP.Equals("Y"), false, sBJU003, sBJU003,sXLXHID,sXLGGID,sXLBZID,sDYDJID); //重新获取按“1|付款方式”设置的调价因子值 Dictionary dicYZZ1 = new Dictionary(); if (sTJYSList.Contains(",1,")) { dicYZZ1 = XLBJDUtils.InitdicYZZ(sBJFLID, "1"); } //报价数量变化,重新获取按“2|导体材料&电压区间&报价数量区间”设置的调价因子值 Dictionary dicYZZ2 = new Dictionary(); if (sTJYSList.Contains(",2,")) { dicYZZ2 = XLBJDUtils.GetBJDYZZ2(sBJFLID, sDYDJID, dBJSL, sXLXHID, sBJU003, sBJU003, sXLGGID, sXLBZID); } //重新获取按“3|产品用途&电压等级分类&报价数量区间”设置的调价因子值 Dictionary dicYZZ3 = new Dictionary(); if (sTJYSList.Contains(",3,")) { dicYZZ3 = XLBJDUtils.GetBJDYZZ3(sBJFLID, dBJSL, sXLXHID, sXLGGID,sXLBZID, sDYDJID, sBJU003, sBJU003); } //重新获取按“E|型号&电压等级&主芯截面范围&报价数量区间”设置的调价因子值 Dictionary dicYZZE = new Dictionary(); if (sTJYSList.Contains(",E,")) { dicYZZE = XLBJDUtils.GetBJDYZZE(sBJFLID, sXLXHID, sDYDJID, CMISproConvert.StrToFloat(fZXJM), dBJSL, sBJU003, sBJU003, sXLGGID, sXLBZID); } Dictionary dicYZZG = new Dictionary(); if (sTJYSList.Contains(",G,")) { dicYZZG = XLBJDUtils.GetBJDYZZG(sBJFLID, sXLXHID, sDYDJID,sXXJGID, CMISproConvert.StrToFloat(fZXJM), dBJSL, sBJU003, sBJU003); } //重新获取按“F|电压等级&芯线结构&报价数量区间/报价数量”设置的调价因子值 Dictionary dicYZZF = new Dictionary(); if (sTJYSList.Contains(",F,")) { dicYZZF = XLBJDUtils.GetBJDYZZF(sBJFLID, sXLXHID, sDYDJID, sXXJGID, dBJSL, sBJU003, sBJU003); } Dictionary dicYZZH = new Dictionary(); if (sTJYSList.Contains(",H,")) { dicYZZH = XLBJDUtils.GetBJDYZZH(sBJFLID, sXLXHID, sDYDJID, XLBJDInfo.GetDefaultYSID(sXLXHID, sXLGGID), CMISproConvert.StrToFloat(fZXJM), dBJSL, sBJU003, sBJU003); } Dictionary dicYZZK = new Dictionary(); if (sTJYSList.Contains(",K,")) { dicYZZK = XLBJDUtils.GetBJDYZZK(sBJFLID, dBJSL, sBJU003, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); } //重新获取按“4|型号”设置的调价因子值 Dictionary dicYZZ4 = new Dictionary(); if (sTJYSList.Contains(",4,")) { dicYZZ4 = XLBJDUtils.GetBJDYZZ4(sBJFLID, sXLXHID, sBJU003, sBJU003, sXLGGID, sXLBZID, sDYDJID); } //重新获取按“5|销售区域&型号&标准&电压等级&主芯截面范围”设置的调价因子值 Dictionary dicYZZ5 = new Dictionary(); if (sTJYSList.Contains(",5,")) { dicYZZ5 = XLBJDUtils.GetBJDYZZ5(sBJFLID, sXSQYID, sXLXHID, sXLBZID, sDYDJID, CMISproConvert.StrToFloat(fZXJM), sBJU003, sBJU003, sXLGGID); } //重新获取按“6|报价数量区间调价米数/报价数量”设置的调价因子值 Dictionary dicYZZ6 = new Dictionary(); if (sTJYSList.Contains(",6,")) { dicYZZ6 = XLBJDUtils.GetBJDYZZ6(sBJFLID, dBJSL, sBJU003, sBJU003); } //重新获取按“7|型号&电压等级&芯线结构&主芯截面范围”设置的调价因子值 Dictionary dicYZZ7 = new Dictionary(); if (sTJYSList.Contains(",7,")) { dicYZZ7 = XLBJDUtils.GetBJDYZZ7(sBJFLID, sXLXHID, sDYDJID, sXXJGID, CMISproConvert.StrToFloat(fZXJM), sBJU003, sBJU003, sXLGGID, sXLBZID); } //重新获取按“8|付款期限”设置的调价因子值 Dictionary dicYZZ8 = new Dictionary(); if (sTJYSList.Contains(",8,")) { dicYZZ8 = XLBJDUtils.InitdicYZZ(sBJFLID, "8"); } //重新获取按“9|导体材料&产品用途&电压等级分类&产品特性”设置的调价因子值 Dictionary dicYZZ9 = new Dictionary(); if (sTJYSList.Contains(",9,")) { dicYZZ9 = XLBJDUtils.GetBJDYZZ9(sBJFLID, sXLXHID, sDYDJID, sBJU003, sBJU003, sXLGGID, sXLBZID); } //重新获取按“A|型号&规格&电压&标准”设置的调价因子值 Dictionary dicYZZA = new Dictionary(); if (sTJYSList.Contains(",A,")) { dicYZZA = XLBJDUtils.GetBJDYZZA(sBJFLID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJU003, sBJU003); } Dictionary dicYZZBZPF = new Dictionary(); if (sTJYSList.Contains(",BZPF,")) { //包装盘费 string sBZPFYZID = XLBJDUtils.GetBJFLSYBZPFYZID(sBJFLID); if (!sBZPFYZID.Equals("")) { sBZPFYZID = sBZPFYZID.Split('|')[0]; dicYZZBZPF = XLBJDUtils.GetBJDBZPFYZZ(sBZPFYZID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJU003, sBJU003); } } Dictionary dicYZZCPWJPF = new Dictionary(); if (sTJYSList.Contains(",CPWJPF,")) { //产品外径盘费 string sCPWJPFYZID = XLBJDUtils.GetBJFLSYCPWJPFYZID(sBJFLID); if (!sCPWJPFYZID.Equals("")) { sCPWJPFYZID = sCPWJPFYZID.Split('|')[0]; dicYZZCPWJPF = XLBJDUtils.GetBJDCPWJPFYZZ(sCPWJPFYZID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJU003, sBJU003,dBJSL); } } //重新获取按“B|销售单位”设置的调价因子值 Dictionary dicYZZB = new Dictionary(); if (sTJYSList.Contains(",B,")) { dicYZZB = XLBJDUtils.InitdicYZZ(sBJFLID, "B"); } //获取按“C|产品目录&主芯截面范围&产品特性”因子值 Dictionary dicYZZC = new Dictionary(); if (sTJYSList.Contains(",C,")) { dicYZZC = XLBJDUtils.GetBJDYZZC(" ", sBJFLID, sXLXHID, sDYDJID, CMISproConvert.StrToFloat(fZXJM), sBJU003, sBJU003, sXLGGID, sXLBZID); } //重新获取按“D|颜色”设置的调价因子值 Dictionary dicYZZD = new Dictionary(); if (sTJYSList.Contains(",D,")) { dicYZZD = XLBJDUtils.GetBJDYZZD(sBJFLID, XLBJDInfo.GetDefaultYSID(sXLXHID, sXLGGID), sBJU003, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); } string result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, resultA, resultB, resultC, resultD, resultE, resultF, resultG, resultH, resultBZPF, resultCPWJPF; result0 = result1 = result2 = result3 = result4 = result5 = result6 = result7 = result8 = result9 = resultA = resultB = resultC = resultD = resultE = resultF = resultG = resultH = resultBZPF = resultCPWJPF = ""; foreach (string sTJYZID in dicYZZBZPF.Keys) { resultBZPF += "TZYZ_" + sTJYZID + "=" + dicYZZBZPF[sTJYZID].ToString() + ";"; //e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString()); } foreach (string sTJYZID in dicYZZCPWJPF.Keys) { resultBZPF += "TZYZ_" + sTJYZID + "=" + dicYZZCPWJPF[sTJYZID].ToString() + ";"; //e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString()); } foreach (string sTJYZID in dicYZZ0.Keys) { if (resultBZPF.Contains("TZYZ_" + sTJYZID)) continue; if (resultCPWJPF.Contains("TZYZ_" + sTJYZID)) continue; result1 += "TZYZ_" + sTJYZID + "=" + dicYZZ0[sTJYZID].ToString() + ";"; //e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ0[sTJYZID].ToString()); } foreach (string sTJYZID in dicYZZ2.Keys) { result2 += "TZYZ_" + sTJYZID + "=" + dicYZZ2[sTJYZID].ToString() + ";"; //e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ2[sTJYZID].ToString()); } foreach (string sTJYZID in dicYZZ3.Keys) { result3 += "TZYZ_" + sTJYZID + "=" + dicYZZ3[sTJYZID].ToString() + ";"; //e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ3[sTJYZID].ToString()); } foreach (string sTJYZID in dicYZZ4.Keys) { result4 += "TZYZ_" + sTJYZID + "=" + dicYZZ4[sTJYZID].ToString() + ";"; //e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ4[sTJYZID].ToString()); } foreach (string sTJYZID in dicYZZ5.Keys) { result5 += "TZYZ_" + sTJYZID + "=" + dicYZZ5[sTJYZID].ToString() + ";"; //e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ5[sTJYZID].ToString()); } foreach (string sTJYZID in dicYZZ6.Keys) { result6 += "TZYZ_" + sTJYZID + "=" + dicYZZ6[sTJYZID].ToString() + ";"; //e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ6[sTJYZID].ToString()); } foreach (string sTJYZID in dicYZZ7.Keys) { result7 += "TZYZ_" + sTJYZID + "=" + dicYZZ7[sTJYZID].ToString() + ";"; //e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString()); } foreach (string sTJYZID in dicYZZ8.Keys) { result8 += "TZYZ_" + sTJYZID + "=" + dicYZZ8[sTJYZID].ToString() + ";"; //e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString()); } foreach (string sTJYZID in dicYZZ9.Keys) { result9 += "TZYZ_" + sTJYZID + "=" + dicYZZ9[sTJYZID].ToString() + ";"; //e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString()); } foreach (string sTJYZID in dicYZZA.Keys) { resultA += "TZYZ_" + sTJYZID + "=" + dicYZZA[sTJYZID].ToString() + ";"; //e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString()); } foreach (string sTJYZID in dicYZZB.Keys) { resultB += "TZYZ_" + sTJYZID + "=" + dicYZZB[sTJYZID].ToString() + ";"; //e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString()); } foreach (string sTJYZID in dicYZZC.Keys) { resultC += "TZYZ_" + sTJYZID + "=" + dicYZZC[sTJYZID].ToString() + ";"; //e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString()); } foreach (string sTJYZID in dicYZZD.Keys) { resultD += "TZYZ_" + sTJYZID + "=" + dicYZZD[sTJYZID].ToString() + ";"; //e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString()); } foreach (string sTJYZID in dicYZZE.Keys) { resultE += "TZYZ_" + sTJYZID + "=" + dicYZZE[sTJYZID].ToString() + ";"; //e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString()); } foreach (string sTJYZID in dicYZZK.Keys) { resultE += "TZYZ_" + sTJYZID + "=" + dicYZZK[sTJYZID].ToString() + ";"; //e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString()); } foreach (string sTJYZID in dicYZZG.Keys) { resultG += "TZYZ_" + sTJYZID + "=" + dicYZZG[sTJYZID].ToString() + ";"; //e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString()); } foreach (string sTJYZID in dicYZZF.Keys) { resultF += "TZYZ_" + sTJYZID + "=" + dicYZZF[sTJYZID].ToString() + ";"; //e.ResultPairs.Add("TZYZ_" + sTJYZID, dicYZZ7[sTJYZID].ToString()); } foreach (string sTJYZID in dicYZZH.Keys) { resultH += "TZYZ_" + sTJYZID + "=" + dicYZZH[sTJYZID].ToString() + ";"; } result += (result0 + result1 + result2 + result3 + result4 + result5 + result6 + result7 + result8 + result9 + resultA + resultB + resultC + resultD + resultE + resultF + resultG + resultH + resultBZPF + resultCPWJPF); //获取YZID对应的TJYZID Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD"); Dictionary dicTJYZIDValue = new Dictionary(); //获取YZID对应的TYZZYZID Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD"); Dictionary dicTYZZYZIDValue = new Dictionary(); string sBJDYZText = dicBJDYZ["BJDYZ"]; string[] sBJDYZ = sBJDYZText.Split(','); #region 初次将所“2|调因子值”因子纳入dicTYZZYZIDValue for (int i = 0; i < sBJDYZ.Length; i++) { string sFieldName = "TZYZ_" + sBJDYZ[i].Split('|')[0].Trim(); if (XLBJDInfo.dicValueContained(dicTYZZYZID, sFieldName.Substring(5))) { if (dicYZZBZPF.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZBZPF[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZBZPF[sFieldName.Substring(5)]; } else if (dicYZZCPWJPF.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZCPWJPF[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZCPWJPF[sFieldName.Substring(5)]; } else if (dicYZZ0.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ0[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ0[sFieldName.Substring(5)]; } else if (dicYZZ1.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ1[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ1[sFieldName.Substring(5)]; } else if (dicYZZ2.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ2[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ2[sFieldName.Substring(5)]; } else if (dicYZZ3.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ3[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ3[sFieldName.Substring(5)]; } else if (dicYZZE.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZE[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZE[sFieldName.Substring(5)]; } else if (dicYZZK.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZK[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZK[sFieldName.Substring(5)]; } else if (dicYZZG.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZG[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZG[sFieldName.Substring(5)]; } else if (dicYZZF.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZF[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZF[sFieldName.Substring(5)]; } else if (dicYZZH.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZH[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZH[sFieldName.Substring(5)]; } else if (dicYZZ4.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ4[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ4[sFieldName.Substring(5)]; } else if (dicYZZ5.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ5[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ5[sFieldName.Substring(5)]; } else if (dicYZZ6.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ6[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ6[sFieldName.Substring(5)]; } else if (dicYZZ7.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ7[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ7[sFieldName.Substring(5)]; } else if (dicYZZ8.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ8[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ8[sFieldName.Substring(5)]; } else if (dicYZZ9.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ9[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ9[sFieldName.Substring(5)]; } else if (dicYZZA.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZA[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZA[sFieldName.Substring(5)]; } else if (dicYZZB.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZB[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZB[sFieldName.Substring(5)]; } else if (dicYZZC.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZC[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZC[sFieldName.Substring(5)]; } else if (dicYZZD.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZD[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZD[sFieldName.Substring(5)]; } } } #endregion #region 初次将所有的因子纳入dicTJYZIDValue for (int i = 0; i < sBJDYZ.Length; i++) { string sFieldName = "TZYZ_" + sBJDYZ[i].Split('|')[0].Trim(); //string sColName = QueryGrid.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (dicTJYZID.ContainsKey(sFieldName.Substring(5))) { string tmpTJYZID = dicTJYZID[sFieldName.Substring(5)]; if (dicYZZBZPF.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZBZPF[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZCPWJPF.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZCPWJPF[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ0.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ0[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ1.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ1[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ2.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ2[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ3.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ3[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZE.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZE[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZK.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZK[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZG.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZG[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZF.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZF[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZH.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZH[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ4.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ4[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ5.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ5[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ6.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ6[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ7.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ7[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ8.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ8[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ9.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ9[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZA.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZA[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZB.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZB[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZC.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZC[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZD.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZD[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } } } #endregion #endregion BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID); string sCPBJMRXSWS = bjflxx.XLXSBJFL_CPBJMRXSWS; string sTZQCPBJGS = XLBJDUtils.GetTZQCPBJGS(sBJFLID); if (!sTZQCPBJGS.Equals("")) { sTZQCPBJGS = sTZQCPBJGS.Replace("JGBBJ", dCPBJ.ToString()); sTZQCPBJGS = sTZQCPBJGS.Replace(" ", "").Replace("×", "*");//Replace("100", "100.00")是因为数据库计算时1/100的结果是0需转换为1/100.00结果才是0.01,此处直接计算无需处理 for(int i = 1; i<=20;i++) { string BJDYZID = "BJ" + i.ToString().PadLeft(2, '0'); if (dicTJYZIDValue.ContainsKey(BJDYZID)) { sTZQCPBJGS = sTZQCPBJGS.Replace(BJDYZID,dicTJYZIDValue[BJDYZID].ToString()); } else { sTZQCPBJGS = sTZQCPBJGS.Replace(BJDYZID, "0"); } } sTZQCPBJGS = sTZQCPBJGS.Replace("TZZDXJ", "0"); gtExpression exp = new gtExpression(); try { dCPBJ = NumberUtils.RoundX(exp.Evaluate(sTZQCPBJGS), 15); } catch { dCPBJ = 0; } } else { if (dCPBJ != 0) { bool JJFirst = XLBJDUtils.JJFirst_BJDYZ(sBJFLID); double dTZYZ_JJ = 0; for (int i = 0; i < sBJDYZ.Length; i++) { string sFieldName = "TZYZ_" + sBJDYZ[i].Split('|')[0].Trim(); string sColName = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(DD)", "(%)").Replace("(JJ)", "(元)").Replace("(KD)", "(%)").Replace("(MD)", "(%)").Replace("(MP)", "(%)").Replace("(XX)", "(不参与调价)") .Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JJ)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dTZYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)]; } } if (JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } for (int i = 0; i < sBJDYZ.Length; i++) { string sFieldName = "TZYZ_" + sBJDYZ[i].Split('|')[0].Trim(); string sColName = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(DD)", "(%)").Replace("(JJ)", "(元)").Replace("(KD)", "(%)").Replace("(MD)", "(%)").Replace("(MP)", "(%)").Replace("(XX)", "(不参与调价)") .Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)] / 100); } //MX乘以/DX除以-系数 else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); } else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) { if (dicTJYZIDValue[sFieldName.Substring(5)] != 0) { dCPBJ = dCPBJ / (dicTJYZIDValue[sFieldName.Substring(5)]); } else { dCPBJ = dCPBJ * 0; } } } else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(SX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) { if (dicTJYZIDValue[sFieldName.Substring(5)] >= 0) { dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else { dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } } } } if (!JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } dCPBJ = NumberUtils.RoundX(dCPBJ, (CMISproConvert.StrToInt(sCPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : tmpXSWS));//保留精度高的 } } dCPBJ = XLBJDUtils.RoundSZ(dCPBJ, CMISproConvert.StrToInt(sCPBJMRXSWS)); result += "XLXSBJDMX_CPBJ = " + XLBJDUtils.strPadRight(dCPBJ.ToString(), (CMISproConvert.StrToInt(sCPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : tmpXSWS)) + ";";//显示精度高的 double dBJJE = NumberUtils.RoundX(dBJSL * dCPBJ, 2); result += "XLXSBJDMX_BJJE = " + XLBJDUtils.strPadRight(dBJJE.ToString(), 2) + ";"; result += "XLXSBJDMX_JGBBJ = " + cs_BJ + ";"; //e.ResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString()); } return result; } public String GetYZZbyTJYZ(string cs_XLXHID, string cs_XLGGID, string cs_XLBZID, string cs_DYDJID, string cs_WGCP, string cs_BJDFL, string cs_YZID, string cs_YZZ, string cs_sTJYZChangelist, string cs_BJ, string cs_SL, string cs_JGBID, string cs_TBJCLID, string cs_TJ, string cs_LBJCLID, string cs_LJ) { string result = ""; string sBJU003 = tSession.GetOption(100860000, "BJU003"); //报价分类---------------------------------------------------------------------------------------------------------------------------------------------------------------- string sBJFLID = cs_BJDFL; int tmpXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002")); if (tmpXSWS < 0) tmpXSWS = 0; else if (tmpXSWS > 8) tmpXSWS = 8; if (cs_JGBID.Trim().Equals("DEFAULT")) { Dictionary dicJGBID = XLBJDUtils.GetJGBIDByXSQYID("手机端价格表报价", sBJFLID, System.DateTime.Now.ToString(), ""); if (dicJGBID.Count > 0) { foreach (KeyValuePair kvp in dicJGBID) { cs_JGBID = kvp.Key; break; } } else cs_JGBID = ""; } //数量、型号、规格 double dBJSL = CMISproConvert.StrToFloat(cs_SL); string sXLXHID = cs_XLXHID; string sXLGGID = cs_XLGGID; string sXLBZID = cs_XLBZID; string sDYDJID = cs_DYDJID; string sJGBID = cs_JGBID.Trim(); double dCPBJ = CMISproConvert.StrToFloat(cs_BJ, 0); #region 如果是JGE价格表则重新计算表价 if (XLBJDUtils.IsJGEJGB(cs_JGBID)) { if (cs_TJ.Equals("")) cs_TJ = "0"; if (cs_LJ.Equals("")) cs_LJ = "0"; Dictionary dicJGE = XLBJDUtils.GetCLCB_JGE(DateTime.Now.ToShortDateString().Trim(), sXLXHID, sXLGGID, sXLBZID, sDYDJID, cs_TBJCLID, cs_LBJCLID, cs_TJ, cs_LJ, true, false, ""); bool JgIsZero = dicJGE["JgIsZero"] == 1 ? true : false; string sCLCB = dicJGE["CLCB"].ToString(); DataSet dsJGBYZ = new DataSet(); string sJGBTJYSS = ""; //计算公式以及因子的输出 Dictionary dicJGBTZYZGS_JGE = new Dictionary(); //记录价格表调价因素相关信息-线缆基本信息 Dictionary dicXLJBXX_JGE = new Dictionary(); XLBJDUtils.GetdsJGBYZ_JGE(sJGBID, ref dsJGBYZ); sJGBTJYSS = XLBJDUtils.GetJGBTJYSSByBJFLID(sBJFLID); dicXLJBXX_JGE.Clear(); dicXLJBXX_JGE.Add("XLXHID", sXLXHID); dicXLJBXX_JGE.Add("XLGGID", sXLGGID); dicXLJBXX_JGE.Add("XLBZID", sXLBZID); dicXLJBXX_JGE.Add("DYDJID", sDYDJID); dicXLJBXX_JGE.Add("BJDJLDWHSBL", "1");//材料清单计量单位与报价单计量单位一致,均为BJU003,所以换算倍率固定为1 dicJGBTZYZGS_JGE = XLBJDUtils.GetJGBTZYZ_JGE(sJGBID, "0", dsJGBYZ, dicXLJBXX_JGE); sCLCB = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB), tmpXSWS).ToString().Trim(); double dZBZ = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB), tmpXSWS); if (sJGBTJYSS.Equals("1")) { string sTmpGS = ""; string sJSGS = dicJGBTZYZGS_JGE["JSGS"].Trim(); if (sJSGS.Equals("")) { if (dicJGBTZYZGS_JGE["JJFirst"].Equals("1")) { sTmpGS = "(" + sCLCB + "+" + dicJGBTZYZGS_JGE["JJ"] + ")*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")"; } else { sTmpGS = sCLCB + "*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")+(" + dicJGBTZYZGS_JGE["JJ"] + ")"; } } else { sTmpGS = sJSGS.Replace("JGBJJ", sCLCB); } gtExpression exp = new gtExpression(); try { dZBZ = NumberUtils.RoundX(exp.Evaluate(sTmpGS), tmpXSWS); } catch { dZBZ = 0; } } if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的表价、报价单行情料价改为负数显示 { cs_BJ = FloatToString(dZBZ * (-1), tmpXSWS); } else { cs_BJ = FloatToString(dZBZ, tmpXSWS); } } dCPBJ = CMISproConvert.StrToFloat(cs_BJ, 0); #endregion if (!cs_SL.Equals("") && !cs_SL.Equals("0")) { Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); string fZXJM = dicXLGGB["ZXJM"]; string sXXJGID = dicXLGGB["XXJGID"]; //---------------------------------------------------------------------------------------------------------------------------------------------------------------- string sXSQYID = ""; Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(sBJFLID); //---------------------------------------------------------------------------------------------------------------------------------------------------------------- string sTJYSList = dicBJDYZ["TJYSList"]; #region 获取报价单调价因子以及调整过程 //获取调价因素为空的因子值 Dictionary dicYZZ0 = XLBJDUtils.GetBJDYZZ0(sBJFLID, cs_WGCP.Equals("Y"), false, sBJU003, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); //重新获取按“1|付款方式”设置的调价因子值 Dictionary dicYZZ1 = new Dictionary(); if (sTJYSList.Contains(",1,")) { dicYZZ1 = XLBJDUtils.InitdicYZZ(sBJFLID, "1"); } //报价数量变化,重新获取按“2|导体材料&电压区间&报价数量区间”设置的调价因子值 Dictionary dicYZZ2 = new Dictionary(); if (sTJYSList.Contains(",2,")) { dicYZZ2 = XLBJDUtils.GetBJDYZZ2(sBJFLID, sDYDJID, dBJSL, sXLXHID, sBJU003, sBJU003, sXLGGID, sXLBZID); } //重新获取按“3|产品用途&电压等级分类&报价数量区间”设置的调价因子值 Dictionary dicYZZ3 = new Dictionary(); if (sTJYSList.Contains(",3,")) { dicYZZ3 = XLBJDUtils.GetBJDYZZ3(sBJFLID, dBJSL, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJU003, sBJU003); } //重新获取按“E|型号&电压等级&主芯截面范围&报价数量区间”设置的调价因子值 Dictionary dicYZZE = new Dictionary(); if (sTJYSList.Contains(",E,")) { dicYZZE = XLBJDUtils.GetBJDYZZE(sBJFLID, sXLXHID, sDYDJID, CMISproConvert.StrToFloat(fZXJM), dBJSL, sBJU003, sBJU003, sXLGGID, sXLBZID); } Dictionary dicYZZK = new Dictionary(); if (sTJYSList.Contains(",K,")) { dicYZZK = XLBJDUtils.GetBJDYZZK(sBJFLID, dBJSL, sBJU003, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); } Dictionary dicYZZG = new Dictionary(); if (sTJYSList.Contains(",G,")) { dicYZZG = XLBJDUtils.GetBJDYZZG(sBJFLID, sXLXHID, sDYDJID,sXXJGID, CMISproConvert.StrToFloat(fZXJM), dBJSL, sBJU003, sBJU003); } //重新获取按“F|电压等级&芯线结构&报价数量区间/报价数量”设置的调价因子值 Dictionary dicYZZF = new Dictionary(); if (sTJYSList.Contains(",F,")) { dicYZZF = XLBJDUtils.GetBJDYZZF(sBJFLID, sXLXHID, sDYDJID, sXXJGID, dBJSL, sBJU003, sBJU003); } Dictionary dicYZZH = new Dictionary(); if (sTJYSList.Contains(",H,")) { dicYZZH = XLBJDUtils.GetBJDYZZH(sBJFLID, sXLXHID, sDYDJID, XLBJDInfo.GetDefaultYSID(sXLXHID, sXLGGID), CMISproConvert.StrToFloat(fZXJM), dBJSL, sBJU003, sBJU003); } //重新获取按“4|型号”设置的调价因子值 Dictionary dicYZZ4 = new Dictionary(); if (sTJYSList.Contains(",4,")) { dicYZZ4 = XLBJDUtils.GetBJDYZZ4(sBJFLID, sXLXHID, sBJU003, sBJU003, sXLGGID, sXLBZID, sDYDJID); } //重新获取按“5|销售区域&型号&标准&电压等级&主芯截面范围”设置的调价因子值 Dictionary dicYZZ5 = new Dictionary(); if (sTJYSList.Contains(",5,")) { dicYZZ5 = XLBJDUtils.GetBJDYZZ5(sBJFLID, sXSQYID, sXLXHID, sXLBZID, sDYDJID, CMISproConvert.StrToFloat(fZXJM), sBJU003, sBJU003, sXLGGID); } //重新获取按“6|报价数量区间调价米数/报价数量”设置的调价因子值 Dictionary dicYZZ6 = new Dictionary(); if (sTJYSList.Contains(",6,")) { dicYZZ6 = XLBJDUtils.GetBJDYZZ6(sBJFLID, dBJSL, sBJU003, sBJU003); } //重新获取按“7|型号&电压等级&芯线结构&主芯截面范围”设置的调价因子值 Dictionary dicYZZ7 = new Dictionary(); if (sTJYSList.Contains(",7,")) { dicYZZ7 = XLBJDUtils.GetBJDYZZ7(sBJFLID, sXLXHID, sDYDJID, sXXJGID, CMISproConvert.StrToFloat(fZXJM), sBJU003, sBJU003, sXLGGID, sXLBZID); } //重新获取按“8|付款期限”设置的调价因子值 Dictionary dicYZZ8 = new Dictionary(); if (sTJYSList.Contains(",8,")) { dicYZZ8 = XLBJDUtils.InitdicYZZ(sBJFLID, "8"); } //重新获取按“9|导体材料&产品用途&电压等级分类&产品特性”设置的调价因子值 Dictionary dicYZZ9 = new Dictionary(); if (sTJYSList.Contains(",9,")) { dicYZZ9 = XLBJDUtils.GetBJDYZZ9(sBJFLID, sXLXHID, sDYDJID, sBJU003, sBJU003, sXLGGID, sXLBZID); } //重新获取按“A|型号&规格&电压&标准”设置的调价因子值 Dictionary dicYZZA = new Dictionary(); if (sTJYSList.Contains(",A,")) { dicYZZA = XLBJDUtils.GetBJDYZZA(sBJFLID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJU003, sBJU003); } Dictionary dicYZZBZPF = new Dictionary(); if (sTJYSList.Contains(",BZPF,")) { //包装盘费 string sBZPFYZID = XLBJDUtils.GetBJFLSYBZPFYZID(sBJFLID); if (!sBZPFYZID.Equals("")) { sBZPFYZID = sBZPFYZID.Split('|')[0]; dicYZZBZPF = XLBJDUtils.GetBJDBZPFYZZ(sBZPFYZID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJU003, sBJU003); } } Dictionary dicYZZCPWJPF = new Dictionary(); if (sTJYSList.Contains(",CPWJPF,")) { //产品外径盘费 string sCPWJPFYZID = XLBJDUtils.GetBJFLSYCPWJPFYZID(sBJFLID); if (!sCPWJPFYZID.Equals("")) { sCPWJPFYZID = sCPWJPFYZID.Split('|')[0]; dicYZZCPWJPF = XLBJDUtils.GetBJDCPWJPFYZZ(sCPWJPFYZID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJU003, sBJU003,dBJSL); } } //重新获取按“B|销售单位”设置的调价因子值 Dictionary dicYZZB = new Dictionary(); if (sTJYSList.Contains(",B,")) { dicYZZB = XLBJDUtils.InitdicYZZ(sBJFLID, "B"); } //获取按“C|产品目录&主芯截面范围&产品特性”因子值 Dictionary dicYZZC = new Dictionary(); if (sTJYSList.Contains(",C,")) { dicYZZC = XLBJDUtils.GetBJDYZZC(" ", sBJFLID, sXLXHID, sDYDJID, CMISproConvert.StrToFloat(fZXJM), sBJU003, sBJU003, sXLGGID, sXLBZID); } //重新获取按“D|颜色”设置的调价因子值 Dictionary dicYZZD = new Dictionary(); if (sTJYSList.Contains(",D,")) { dicYZZD = XLBJDUtils.GetBJDYZZD(sBJFLID, XLBJDInfo.GetDefaultYSID(sXLXHID, sXLGGID), sBJU003, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); } double dcs_YZZ = 0;//如果是手动变更因子值触发重算,则用手动修改的因子值替换因子值 string ReChangeYZID = "";//维护因子时,是否自动change为其最小值 string sMinYZZ = ""; if (!cs_YZID.Equals("")) { string[] sTJYZChangelist = cs_sTJYZChangelist.TrimEnd(';').Split(';'); for (int j = 0; j < sTJYZChangelist.Length; j++) { string sChangedYZID = sTJYZChangelist[j].Split('=')[0]; string sChangedYZZ = sTJYZChangelist[j].Split('=')[1]; } double dHSBL = XLBJDUtils.GetHSBL(sBJU003, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); ; sMinYZZ = XLBJDUtils.GetMinYZZ(cs_YZID.Replace("TZYZ_", ""), dHSBL);//因子最小值 string sMaxYZZ = XLBJDUtils.GetMaxYZZ(cs_YZID.Replace("TZYZ_", ""), dHSBL);//因子最大值 if (!sMinYZZ.Equals(""))//若设置了最小值 { //小于最小值按最小值计算 if (CMISproConvert.StrToFloat(cs_YZZ) < CMISproConvert.StrToFloat(sMinYZZ, 0)) { cs_YZZ = sMinYZZ; ReChangeYZID = cs_YZID; sMinYZZ = cs_YZZ; } } if (!sMaxYZZ.Equals(""))//若设置了最值 { //大于最大值按最大值计算 if (CMISproConvert.StrToFloat(cs_YZZ) > CMISproConvert.StrToFloat(sMaxYZZ, 0)) { cs_YZZ = sMaxYZZ; ReChangeYZID = cs_YZID; sMinYZZ = cs_YZZ; } } } if (!cs_sTJYZChangelist.Equals("")) { string[] sTJYZChangelist = cs_sTJYZChangelist.TrimEnd(';').Split(';'); for (int j = 0; j < sTJYZChangelist.Length; j++) { string sChangedYZID = sTJYZChangelist[j].Split('=')[0].Replace("TZYZ_", ""); double dChangedYZZ = CMISproConvert.StrToFloat(sTJYZChangelist[j].Split('=')[1]); if (dicYZZ0.ContainsKey(sChangedYZID)) { dicYZZ0[sChangedYZID] = dChangedYZZ; } if (dicYZZ1.ContainsKey(sChangedYZID)) { dicYZZ1[sChangedYZID] = dChangedYZZ; } if (dicYZZ2.ContainsKey(sChangedYZID)) { dicYZZ2[sChangedYZID] = dChangedYZZ; } if (dicYZZ3.ContainsKey(sChangedYZID)) { dicYZZ3[sChangedYZID] = dChangedYZZ; } if (dicYZZE.ContainsKey(sChangedYZID)) { dicYZZE[sChangedYZID] = dChangedYZZ; } if (dicYZZK.ContainsKey(sChangedYZID)) { dicYZZK[sChangedYZID] = dChangedYZZ; } if (dicYZZG.ContainsKey(sChangedYZID)) { dicYZZG[sChangedYZID] = dChangedYZZ; } if (dicYZZF.ContainsKey(sChangedYZID)) { dicYZZF[sChangedYZID] = dChangedYZZ; } if (dicYZZH.ContainsKey(sChangedYZID)) { dicYZZH[sChangedYZID] = dChangedYZZ; } if (dicYZZ4.ContainsKey(sChangedYZID)) { dicYZZ4[sChangedYZID] = dChangedYZZ; } if (dicYZZ5.ContainsKey(sChangedYZID)) { dicYZZ5[sChangedYZID] = dChangedYZZ; } if (dicYZZ6.ContainsKey(sChangedYZID)) { dicYZZ6[sChangedYZID] = dChangedYZZ; } if (dicYZZ7.ContainsKey(sChangedYZID)) { dicYZZ7[sChangedYZID] = dChangedYZZ; } if (dicYZZ8.ContainsKey(sChangedYZID)) { dicYZZ8[sChangedYZID] = dChangedYZZ; } if (dicYZZ9.ContainsKey(sChangedYZID)) { dicYZZ9[sChangedYZID] = dChangedYZZ; } if (dicYZZA.ContainsKey(sChangedYZID)) { dicYZZA[sChangedYZID] = dChangedYZZ; } if (dicYZZBZPF.ContainsKey(sChangedYZID)) { dicYZZBZPF[sChangedYZID] = dChangedYZZ; } if (dicYZZCPWJPF.ContainsKey(sChangedYZID)) { dicYZZCPWJPF[sChangedYZID] = dChangedYZZ; } if (dicYZZB.ContainsKey(sChangedYZID)) { dicYZZB[sChangedYZID] = dChangedYZZ; } if (dicYZZC.ContainsKey(sChangedYZID)) { dicYZZC[sChangedYZID] = dChangedYZZ; } if (dicYZZD.ContainsKey(sChangedYZID)) { dicYZZD[sChangedYZID] = dChangedYZZ; } } } //获取YZID对应的TJYZID Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD"); Dictionary dicTJYZIDValue = new Dictionary(); //获取YZID对应的TYZZYZID Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD"); Dictionary dicTYZZYZIDValue = new Dictionary(); string sBJDYZText = dicBJDYZ["BJDYZ"]; string[] sBJDYZ = sBJDYZText.Split(','); #region 初次将所“2|调因子值”因子纳入dicTYZZYZIDValue for (int i = 0; i < sBJDYZ.Length; i++) { string sFieldName = "TZYZ_" + sBJDYZ[i].Split('|')[0].Trim(); if (XLBJDInfo.dicValueContained(dicTYZZYZID, sFieldName.Substring(5))) { if (dicYZZBZPF.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZBZPF[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZBZPF[sFieldName.Substring(5)]; } else if (dicYZZCPWJPF.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZCPWJPF[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZCPWJPF[sFieldName.Substring(5)]; } else if (dicYZZ0.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ0[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ0[sFieldName.Substring(5)]; } else if (dicYZZ1.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ1[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ1[sFieldName.Substring(5)]; } else if (dicYZZ2.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ2[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ2[sFieldName.Substring(5)]; } else if (dicYZZ3.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ3[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ3[sFieldName.Substring(5)]; } else if (dicYZZE.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZE[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZE[sFieldName.Substring(5)]; } else if (dicYZZK.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZK[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZK[sFieldName.Substring(5)]; } else if (dicYZZG.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZG[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZG[sFieldName.Substring(5)]; } else if (dicYZZF.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZF[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZF[sFieldName.Substring(5)]; } else if (dicYZZH.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZH[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZH[sFieldName.Substring(5)]; } else if (dicYZZ4.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ4[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ4[sFieldName.Substring(5)]; } else if (dicYZZ5.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ5[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ5[sFieldName.Substring(5)]; } else if (dicYZZ6.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ6[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ6[sFieldName.Substring(5)]; } else if (dicYZZ7.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ7[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ7[sFieldName.Substring(5)]; } else if (dicYZZ8.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ8[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ8[sFieldName.Substring(5)]; } else if (dicYZZ9.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZ9[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZ9[sFieldName.Substring(5)]; } else if (dicYZZA.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZA[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZA[sFieldName.Substring(5)]; } else if (dicYZZB.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZB[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZB[sFieldName.Substring(5)]; } else if (dicYZZC.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZC[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZC[sFieldName.Substring(5)]; } else if (dicYZZD.ContainsKey(sFieldName.Substring(5))) { if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) dicTYZZYZIDValue.Add(sFieldName.Substring(5), dicYZZD[sFieldName.Substring(5)]); else dicTYZZYZIDValue[sFieldName.Substring(5)] += dicYZZD[sFieldName.Substring(5)]; } } } #endregion #region 初次将所有的因子纳入dicTJYZIDValue for (int i = 0; i < sBJDYZ.Length; i++) { string sFieldName = "TZYZ_" + sBJDYZ[i].Split('|')[0].Trim(); //string sColName = QueryGrid.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (dicTJYZID.ContainsKey(sFieldName.Substring(5))) { string tmpTJYZID = dicTJYZID[sFieldName.Substring(5)]; if (dicYZZBZPF.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZBZPF[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZCPWJPF.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZCPWJPF[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ0.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ0[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ1.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ1[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ2.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ2[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ3.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ3[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZE.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZE[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZK.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZK[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZG.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZG[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZF.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZF[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZH.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZH[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ4.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ4[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ5.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ5[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ6.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ6[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ7.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ7[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ8.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ8[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZ9.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZ9[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZA.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZA[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZB.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZB[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZC.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZC[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } else if (dicYZZD.ContainsKey(sFieldName.Substring(5))) { double tmpYZZ = dicYZZD[sFieldName.Substring(5)]; string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; if (!tmpTYZZYZID.Equals("")) { tmpYZZ = XLBJDInfo.GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); } if (!XLBJDInfo.dicValueContained(dicTYZZYZID, tmpTJYZID)) { if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); else dicTJYZIDValue[tmpTJYZID] += tmpYZZ; } } } } #endregion #endregion BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID); string sCPBJMRXSWS = bjflxx.XLXSBJFL_CPBJMRXSWS; string sTZQCPBJGS = XLBJDUtils.GetTZQCPBJGS(sBJFLID); if (!sTZQCPBJGS.Equals("")) { sTZQCPBJGS = sTZQCPBJGS.Replace("JGBBJ", dCPBJ.ToString()); sTZQCPBJGS = sTZQCPBJGS.Replace(" ", "").Replace("×", "*");//Replace("100", "100.00")是因为数据库计算时1/100的结果是0需转换为1/100.00结果才是0.01,此处直接计算无需处理 for (int i = 1; i <= 20; i++) { string BJDYZID = "BJ" + i.ToString().PadLeft(2, '0'); if (dicTJYZIDValue.ContainsKey(BJDYZID)) { sTZQCPBJGS = sTZQCPBJGS.Replace(BJDYZID, dicTJYZIDValue[BJDYZID].ToString()); } else { sTZQCPBJGS = sTZQCPBJGS.Replace(BJDYZID, "0"); } } sTZQCPBJGS = sTZQCPBJGS.Replace("TZZDXJ", "0"); gtExpression exp = new gtExpression(); try { dCPBJ = NumberUtils.RoundX(exp.Evaluate(sTZQCPBJGS), 15); } catch { dCPBJ = 0; } } else { if (dCPBJ != 0) { bool JJFirst = XLBJDUtils.JJFirst_BJDYZ(sBJFLID); double dTZYZ_JJ = 0; for (int i = 0; i < sBJDYZ.Length; i++) { string sFieldName = "TZYZ_" + sBJDYZ[i].Split('|')[0].Trim(); string sColName = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(DD)", "(%)").Replace("(JJ)", "(元)").Replace("(KD)", "(%)").Replace("(MD)", "(%)").Replace("(MP)", "(%)").Replace("(XX)", "(不参与调价)").Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JJ)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dTZYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)]; } } if (JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } for (int i = 0; i < sBJDYZ.Length; i++) { string sFieldName = "TZYZ_" + sBJDYZ[i].Split('|')[0].Trim(); string sColName = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(DD)", "(%)").Replace("(JJ)", "(元)").Replace("(KD)", "(%)").Replace("(MD)", "(%)").Replace("(MP)", "(%)").Replace("(XX)", "(不参与调价)").Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)] / 100); } //MX乘以/DX除以-系数 else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); } else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) { if (dicTJYZIDValue[sFieldName.Substring(5)] != 0) { dCPBJ = dCPBJ / (dicTJYZIDValue[sFieldName.Substring(5)]); } else { dCPBJ = dCPBJ * 0; } } } else if (dicBJDYZ["BJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(SX)")) { if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) { if (dicTJYZIDValue[sFieldName.Substring(5)] >= 0) { dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); } else { dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); } } } } if (!JJFirst) { dCPBJ = dCPBJ + dTZYZ_JJ; } dCPBJ = NumberUtils.RoundX(dCPBJ, (CMISproConvert.StrToInt(sCPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : tmpXSWS));//保留精度高的 } } dCPBJ = XLBJDUtils.RoundSZ(dCPBJ, CMISproConvert.StrToInt(sCPBJMRXSWS)); result += "XLXSBJDMX_CPBJ = " + XLBJDUtils.strPadRight(dCPBJ.ToString(), (CMISproConvert.StrToInt(sCPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : tmpXSWS)) + ";";//显示精度高的 dBJSL = CMISproConvert.StrToFloat(cs_SL.Trim()); double dBJJE = NumberUtils.RoundX(dBJSL * dCPBJ, 2); result += "XLXSBJDMX_BJJE = " + dBJJE.ToString() + ";"; result += "XLXSBJDMX_JGBBJ = " + cs_BJ + ";"; if (!ReChangeYZID.Equals("")) result += "sMinYZZ =" + sMinYZZ.ToString().Trim() + ";"; } return result.TrimEnd(';'); } public ArrayList InitGrid(string sBJDFL) { ArrayList xsnrlist = new ArrayList(); int iXSWS = string.IsNullOrEmpty(GetOption("BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption("BJU002")); if (iXSWS < 0) iXSWS = 0; else if (iXSWS > 8) iXSWS = 8; Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(sBJDFL); string sBJDYZText = dicBJDYZ["BJDYZ"]; if (sBJDYZText.Equals("")) return xsnrlist; string[] sBJDYZ = sBJDYZText.Split(','); for (int i = 0; i < sBJDYZ.Length; i++) { string sMC = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(DD)", "(%)").Replace("(JJ)", "(元)").Replace("(KD)", "(%)").Replace("(MD)", "(%)").Replace("(XX)", "(不参与调价)"); string sID = "TZYZ_" + sBJDYZ[i].Split('|')[0].Trim(); string sVisible = "Y"; //_gtAjaxGridViewColumnTZYZ.EditType = TEditType.etNumber; //_gtAjaxGridViewColumnTZYZ.NumberDecimalPlace = 2; if (!sBJDYZ[i].Trim().EndsWith("()")) { sVisible = "Y"; } else { sVisible = "N"; } string[] xsnr = new string[3]; xsnr[0] = sID; xsnr[1] = sMC; xsnr[2] = sVisible; xsnrlist.Add(xsnr); } return xsnrlist; } private string FloatToString(double n, int iXSWS) { n = NumberUtils.RoundX(n,iXSWS); string sN = n.ToString().Trim(); string sZSBF = ""; string sXSBF = ""; if (sN.Contains(".")) { sZSBF = sN.Split('.')[0]; sXSBF = sN.Split('.')[1]; } else { sZSBF = sN; } sXSBF = sXSBF.PadRight(iXSWS, '0'); sN = sZSBF + "." + sXSBF; return sN; } #endregion } }