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_MODEL.Page;
using GThinking.N_MISPRO.Data;
using System.Text;
namespace GThinking.N_XLXSBJ
{
[EntityType(Db = "DBERP", Table = "XLXSBJDCLHQ", IsWf = false, IsWhr = true, IsAttach = false)]
public class XLBJD_CLHQTZ : EntityObject
{
public string sBJDID = "";
public string sVID = "";
public string sRYID = "";
public string sBJRQ = "";
public string sBJFLID = "";
public string sJGBID = "";
public string sJGBIDS = "";
public string sBJDHQLY = "";
public bool bHSBZ = true;
public string sTBJCLID = "";
public string sLBJCLID = "";
public string sTJ = "";
public string sLJ = "";
public string sBJU057 = "N";
public override TSQL SetQuerySql()
{
TSQL SQL = base.SetQuerySql();
if (!XLBJDUtils.IsJGEJGB(sJGBID))//表价实时计算价格表
{
if (sBJDHQLY.Equals("1"))
{
if (!sJGBIDS.Equals(""))
{
SQL.Add(GetBJDHQ_VSql(sJGBIDS).ToString());
if (sBJU057.Trim().Equals("Y"))
{
SQL.Add(" where isnull(BJCL_PX.XLJGCZBLM_BJCLID,' ') <> ' ' ");
}
SQL.Add(" order by px0,px,px1,isnull(XLXSBJCL_TYBZ,'N'),XLXSBJCL_BJCLID");
SQL.ParamByName("pJGBIDS").Value = sJGBIDS;
}
else
{
SQL.Add(GetBJDHQ_VSql().ToString());
if (sBJU057.Trim().Equals("Y"))
{
SQL.Add(" where isnull(BJCL_PX.XLJGCZBLM_BJCLID,' ') <> ' ' ");
}
SQL.Add(" order by px0,px,isnull(XLXSBJCL_TYBZ,'N'),XLXSBJCL_BJCLID");
}
SQL.ParamByName("pBJDID").Value = sBJDID;
SQL.ParamByName("pVID").Value = sVID;
SQL.ParamByName("pRYID").Value = sRYID;
SQL.ParamByName("pBJRQ").Value = sBJRQ;
SQL.ParamByName("pBJFLID").Value = sBJFLID;
SQL.ParamByName("pJGBID").Value = sJGBID;
}
else
{
SQL.Add(GetBJRHQ_VSql().ToString());
if (sBJU057.Trim().Equals("Y"))
{
SQL.Add(" where isnull(BJCL_PX.XLJGCZBLM_BJCLID,' ') <> ' ' ");
}
SQL.Add(" order by px0,px,isnull(XLXSBJCL_TYBZ,'N'),XLXSBJCL_BJCLID");
SQL.ParamByName("pBJDID").Value = sBJDID;
SQL.ParamByName("pVID").Value = sVID;
SQL.ParamByName("pRYID").Value = sRYID;
SQL.ParamByName("pBJRQ").Value = sBJRQ;
}
}
else
{
SQL.Add(GetJGEHQ_VSql(bHSBZ, sTBJCLID, sLBJCLID, sTJ, sLJ).ToString());
if (sBJU057.Trim().Equals("Y"))
{
SQL.Add(" where isnull(BJCL_PX.XLJGCZBLM_BJCLID,' ') <> ' ' ");
}
SQL.Add(" order by px0,px,isnull(XLXSBJCL_TYBZ,'N'),XLXSBJCL_BJCLID");
SQL.ParamByName("pBJDID").Value = sBJDID;
SQL.ParamByName("pVID").Value = sVID;
SQL.ParamByName("pRYID").Value = sRYID;
SQL.ParamByName("pBJRQ").Value = sBJRQ;
}
return SQL;
}
public override bool Querying(TSQL sql)
{
Entites.Columns.Clear();
Entites.Clear();
return base.Querying(sql);
}
///
/// XLXSBJDCLHQ数据可能还没有的情况下,构建报价单行情sql
///
///
public static StringBuilder GetBJDHQSql()
{
StringBuilder strSQL = new StringBuilder();
strSQL.AppendLine("select case when BJCL_PX.XLJGCZBLM_BJCLID is null THEN 1 ELSE 0 end as px, case when BJCL_PX.XLJGCZBLM_BJCLID is null THEN 'N' ELSE 'Y' end as SYF, ");
strSQL.AppendLine(" XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC || case when isnull(XLXSBJCL_TYBZ,'N')= 'Y' then '(停用)' else ' ' end as XLXSBJCL_BJCLMC,XLXSBJCL_BJHQ,");
strSQL.AppendLine("case when XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_WSJG else XLXSBJDCLHQ_WSJG end as CLJG,");
strSQL.AppendLine("XLXSBJCL_ZZSL,");
strSQL.AppendLine("case when XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_HSJG else XLXSBJDCLHQ_HSJG end as HSJG,");
strSQL.AppendLine("case when XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_WSJGF else XLXSBJDCLHQ_WSJGF end as WSJGF,");
strSQL.AppendLine("case when XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_HSJGF else XLXSBJDCLHQ_HSJGF end as HSJGF,");
strSQL.AppendLine(" 0 as SYJGB_HSJG, 0 as px1, ");
strSQL.AppendLine("case when isnull(JGYLID, ' ') = ' ' then 1 else 0 end as px0, ");
strSQL.AppendLine("XLXSBJDCLHQ_WHR,XLXSBJDCLHQ_WHRID,XLXSBJDCLHQ_WHSJ, ");
strSQL.AppendLine(" (select top 1 XLXSBJCL_BJCLID from XLXSBJCL a where (a.XLXSBJCL_JGYBJCLID =XLXSBJCL.XLXSBJCL_BJCLID or (a.XLXSBJCL_JGYBJCLID=XLXSBJCL.XLXSBJCL_JGYBJCLID and isnull(XLXSBJCL.XLXSBJCL_JGYBJCLID,' ') <> ' '))) as XLXSBJCL_JGYBJCLID ");
strSQL.AppendLine(" from XLXSBJCL");
strSQL.AppendLine(" left join (select distinct XLXSBJCL_JGYBJCLID as JGYLID from XLXSBJCL where isnull(XLXSBJCL_JGYBJCLID,' ') <> ' ') JGYL on JGYL.JGYLID = XLXSBJCL_BJCLID ");
strSQL.AppendLine(" left join XLXSBJDCLHQ on XLXSBJDCLHQ_BJDID=:pBJDID and XLXSBJDCLHQ_BJCLID=XLXSBJCL_BJCLID");
///---------------------------------------------------------------------------
strSQL.AppendLine(" left join ");
strSQL.AppendLine(" (");
//报价单报价日之材料行情
strSQL.AppendLine(" select BJCLID,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF ");
strSQL.AppendLine(" from XLXSCLHQ,");
strSQL.AppendLine(" (");
strSQL.AppendLine(" select XLXSCLHQ_BJCLID as BJCLID,");
strSQL.AppendLine(" max(XLXSCLHQ_YXQS)as maxYXQS");
strSQL.AppendLine(" from XLXSCLHQ,XLXSBJCL");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_YXQS<=:pBJRQ");
strSQL.AppendLine(" and (XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)");
strSQL.AppendLine(" and XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID");
strSQL.AppendLine(" and exists(select 1 from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID=:pBJFLID and XLXSBJFLBJRHQCL_BJCLID=XLXSBJCL_BJCLID)");//报价日行情之报价材料
strSQL.AppendLine(" group by XLXSCLHQ_BJCLID");
strSQL.AppendLine(" ) x");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_BJCLID=BJCLID");
strSQL.AppendLine(" and XLXSCLHQ_YXQS=maxYXQS");
strSQL.AppendLine(" union all ");
//报价单非报价日之材料行情
strSQL.AppendLine(" select XLXSCLHQ_BJCLID as BJCLID,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF ");
strSQL.AppendLine(" from XLXSCLHQ,XLXSBJCL");
strSQL.AppendLine(" where XLXSCLHQ_JGBID<>'ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_JGBID=:pJGBID");
strSQL.AppendLine(" and XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID");
strSQL.AppendLine(" and not exists(select 1 from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID=:pBJFLID and XLXSBJFLBJRHQCL_BJCLID=XLXSBJCL_BJCLID)");//非报价日行情的报价材料
strSQL.AppendLine(" ) bjdclhq on bjdclhq.BJCLID=XLXSBJCL_BJCLID");
///---------------------------------------------------------------------------
//关联使用的材料,提上显示
strSQL.AppendLine(" LEFT JOIN");
strSQL.AppendLine(" (");
strSQL.AppendLine(" SELECT DISTINCT XLJGCZBLM_BJCLID FROM XLXSBJDMX");
strSQL.AppendLine(" LEFT JOIN XLXSCLQD ON XLXSCLQD_XLXHID = XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND isnull(XLXSCLQD_DYDJID,' ') = isnull(XLXSBJDMX_DYDJID,' ') ");
//利用版本限制
strSQL.AppendLine(" LEFT JOIN XLJGCZBLM ON XLJGCZBLM_JGCZBID = XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID = XLXSCLQD_JGCZBBBID ");
strSQL.AppendLine(" WHERE XLXSBJDMX_BJDID = :pBJDID and isnull(XLJGCZBLM_CLQDL,' ')<>' ' and XLXSCLQD_WPID = 'ZZZZ'");
strSQL.AppendLine(" ) BJCL_PX ON BJCL_PX.XLJGCZBLM_BJCLID = XLXSBJCL_BJCLID ");
//strSQL.AppendLine(" order by px,XLXSBJCL_BJCLID");
return strSQL;
}
public static StringBuilder GetBJDHQ_VSql()
{
return GetBJDHQ_VSql("");
}
public static StringBuilder GetBJDHQ_VSql(string sJGBIDS)
{
StringBuilder strSQL = new StringBuilder();
strSQL.AppendLine("select case when BJCL_PX.XLJGCZBLM_BJCLID is null THEN 1 ELSE 0 end as px, case when BJCL_PX.XLJGCZBLM_BJCLID is null THEN 'N' ELSE 'Y' end as SYF, ");
strSQL.AppendLine(" XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC || case when isnull(XLXSBJCL_TYBZ,'N')= 'Y' then '(停用)' else ' ' end as XLXSBJCL_BJCLMC,XLXSBJCL_BJHQ,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_WSJG else V_XLXSBJDCLHQ_WSJG end as CLJG,");
strSQL.AppendLine("XLXSBJCL_ZZSL,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_HSJG else V_XLXSBJDCLHQ_HSJG end as HSJG,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_WSJGF else V_XLXSBJDCLHQ_WSJGF end as WSJGF,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_HSJGF else V_XLXSBJDCLHQ_HSJGF end as HSJGF,");
if (!sJGBIDS.Equals(""))
{
strSQL.AppendLine(" isnull(e.XLXSCLHQ_HSJG,0.0) as SYJGB_HSJG, case when isnull(bjdclhq.XLXSCLHQ_HSJG,0.0) <> isnull(e.XLXSCLHQ_HSJG,0.0) then 0 else 1 end as px1, ");
}
else
{
strSQL.AppendLine(" 0 as SYJGB_HSJG, 0 as px1, ");
}
strSQL.AppendLine("case when isnull(JGYLID, ' ') = ' ' then 1 else 0 end as px0, ");
strSQL.AppendLine("isnull(V_XLXSBJDCLHQ_JGYBJCLID1,' ') as V_XLXSBJDCLHQ_JGYBJCLID1, isnull(V_XLXSBJDCLHQ_JGBL1,0.0) as V_XLXSBJDCLHQ_JGBL1, ");
strSQL.AppendLine("V_XLXSBJDCLHQ_WHR,V_XLXSBJDCLHQ_WHRID,V_XLXSBJDCLHQ_WHSJ, ");
strSQL.AppendLine(" (select top 1 XLXSBJCL_BJCLID from XLXSBJCL a where (a.XLXSBJCL_JGYBJCLID =XLXSBJCL.XLXSBJCL_BJCLID or (a.XLXSBJCL_JGYBJCLID=XLXSBJCL.XLXSBJCL_JGYBJCLID and isnull(XLXSBJCL.XLXSBJCL_JGYBJCLID,' ') <> ' '))) as XLXSBJCL_JGYBJCLID ");
strSQL.AppendLine(" from XLXSBJCL");
strSQL.AppendLine(" left join (select distinct XLXSBJCL_JGYBJCLID as JGYLID from XLXSBJCL where isnull(XLXSBJCL_JGYBJCLID,' ') <> ' ') JGYL on JGYL.JGYLID = XLXSBJCL_BJCLID ");
strSQL.AppendLine(" left join V_XLXSBJDCLHQ on V_XLXSBJDCLHQ_BJDID=:pBJDID and V_XLXSBJDCLHQ_ID=:pVID and V_XLXSBJDCLHQ_TZRYID=:pRYID and V_XLXSBJDCLHQ_BJCLID=XLXSBJCL_BJCLID ");
///---------------------------------------------------------------------------
strSQL.AppendLine(" left join ");
strSQL.AppendLine(" (");
//报价单报价日之材料行情
strSQL.AppendLine(" select BJCLID,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF ");
strSQL.AppendLine(" from XLXSCLHQ,");
strSQL.AppendLine(" (");
strSQL.AppendLine(" select XLXSCLHQ_BJCLID as BJCLID,");
strSQL.AppendLine(" max(XLXSCLHQ_YXQS)as maxYXQS");
strSQL.AppendLine(" from XLXSCLHQ,XLXSBJCL");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_YXQS<=:pBJRQ");
strSQL.AppendLine(" and (XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)");
strSQL.AppendLine(" and XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID");
strSQL.AppendLine(" and exists(select 1 from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID=:pBJFLID and XLXSBJFLBJRHQCL_BJCLID=XLXSBJCL_BJCLID)");//报价日行情之报价材料
strSQL.AppendLine(" group by XLXSCLHQ_BJCLID");
strSQL.AppendLine(" ) x");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_BJCLID=BJCLID");
strSQL.AppendLine(" and XLXSCLHQ_YXQS=maxYXQS");
strSQL.AppendLine(" union all ");
//报价单非报价日之材料行情
strSQL.AppendLine(" select XLXSCLHQ_BJCLID as BJCLID,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF ");
strSQL.AppendLine(" from XLXSCLHQ,XLXSBJCL");
strSQL.AppendLine(" where XLXSCLHQ_JGBID<>'ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_JGBID=:pJGBID");
strSQL.AppendLine(" and XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID");
strSQL.AppendLine(" and not exists(select 1 from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID=:pBJFLID and XLXSBJFLBJRHQCL_BJCLID=XLXSBJCL_BJCLID)");//非报价日行情的报价材料
strSQL.AppendLine(" ) bjdclhq on bjdclhq.BJCLID=XLXSBJCL_BJCLID");
if (!sJGBIDS.Equals(""))
{
///---------------------------------------------------------------------------因素为1,'',''
strSQL.AppendLine(" left join ");
strSQL.AppendLine(" (");
//报价单报价日之材料行情
strSQL.AppendLine(" select BJCLID,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF ");
strSQL.AppendLine(" from XLXSCLHQ,");
strSQL.AppendLine(" (");
strSQL.AppendLine(" select XLXSCLHQ_BJCLID as BJCLID,");
strSQL.AppendLine(" max(XLXSCLHQ_YXQS)as maxYXQS");
strSQL.AppendLine(" from XLXSCLHQ,XLXSBJCL");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_YXQS<=:pBJRQ");
strSQL.AppendLine(" and (XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)");
strSQL.AppendLine(" and XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID");
strSQL.AppendLine(" and exists(select 1 from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID=:pBJFLID and XLXSBJFLBJRHQCL_BJCLID=XLXSBJCL_BJCLID)");//报价日行情之报价材料
strSQL.AppendLine(" group by XLXSCLHQ_BJCLID");
strSQL.AppendLine(" ) x");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_BJCLID=BJCLID");
strSQL.AppendLine(" and XLXSCLHQ_YXQS=maxYXQS");
strSQL.AppendLine(" union all ");
//报价单非报价日之材料行情
strSQL.AppendLine(" select XLXSCLHQ_BJCLID as BJCLID,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF ");
strSQL.AppendLine(" from XLXSCLHQ,XLXSBJCL");
strSQL.AppendLine(" where XLXSCLHQ_JGBID<>'ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_JGBID=:pJGBIDS");
strSQL.AppendLine(" and XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID");
strSQL.AppendLine(" and not exists(select 1 from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID=:pBJFLID and XLXSBJFLBJRHQCL_BJCLID=XLXSBJCL_BJCLID)");//非报价日行情的报价材料
strSQL.AppendLine(" ) e on e.BJCLID=XLXSBJCL_BJCLID");
}
///---------------------------------------------------------------------------
//关联使用的材料,提上显示
strSQL.AppendLine(" LEFT JOIN");
strSQL.AppendLine(" (");
strSQL.AppendLine(" SELECT DISTINCT XLJGCZBLM_BJCLID FROM XLXSBJDMX");
strSQL.AppendLine(" LEFT JOIN XLXSCLQD ON XLXSCLQD_XLXHID = XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND isnull(XLXSCLQD_DYDJID,' ') = isnull(XLXSBJDMX_DYDJID,' ') ");
//利用版本限制
strSQL.AppendLine(" LEFT JOIN XLJGCZBLM ON XLJGCZBLM_JGCZBID = XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID = XLXSCLQD_JGCZBBBID ");
strSQL.AppendLine(" WHERE XLXSBJDMX_BJDID = :pBJDID and isnull(XLJGCZBLM_CLQDL,' ')<>' ' and XLXSCLQD_WPID = 'ZZZZ'");
strSQL.AppendLine(" ) BJCL_PX ON BJCL_PX.XLJGCZBLM_BJCLID = XLXSBJCL_BJCLID ");
//strSQL.AppendLine(" order by px,XLXSBJCL_BJCLID");
return strSQL;
}
public static StringBuilder GetBJRHQSql()
{
StringBuilder strSQL = new StringBuilder();
strSQL.AppendLine("select case when BJCL_PX.XLJGCZBLM_BJCLID is null THEN 1 ELSE 0 end as px, case when BJCL_PX.XLJGCZBLM_BJCLID is null THEN 'N' ELSE 'Y' end as SYF, ");
strSQL.AppendLine(" XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC || case when isnull(XLXSBJCL_TYBZ,'N')= 'Y' then '(停用)' else ' ' end as XLXSBJCL_BJCLMC,XLXSBJCL_BJHQ,");
strSQL.AppendLine("case when XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_WSJG else XLXSBJDCLHQ_WSJG end as CLJG,");
strSQL.AppendLine("XLXSBJCL_ZZSL,");
strSQL.AppendLine("case when XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_HSJG else XLXSBJDCLHQ_HSJG end as HSJG,");
strSQL.AppendLine("case when XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_WSJGF else XLXSBJDCLHQ_WSJGF end as WSJGF,");
strSQL.AppendLine("case when XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_HSJGF else XLXSBJDCLHQ_HSJGF end as HSJGF,");
strSQL.AppendLine("0 as SYJGB_HSJG, 0 as px1,");
strSQL.AppendLine("case when isnull(JGYLID, ' ') = ' ' then 1 else 0 end as px0, ");
strSQL.AppendLine("XLXSBJDCLHQ_WHR,XLXSBJDCLHQ_WHRID,XLXSBJDCLHQ_WHSJ, ");
strSQL.AppendLine(" (select top 1 XLXSBJCL_BJCLID from XLXSBJCL a where (a.XLXSBJCL_JGYBJCLID =XLXSBJCL.XLXSBJCL_BJCLID or (a.XLXSBJCL_JGYBJCLID=XLXSBJCL.XLXSBJCL_JGYBJCLID and isnull(XLXSBJCL.XLXSBJCL_JGYBJCLID,' ') <> ' '))) as XLXSBJCL_JGYBJCLID ");
strSQL.AppendLine(" from XLXSBJCL");
strSQL.AppendLine(" left join (select distinct XLXSBJCL_JGYBJCLID as JGYLID from XLXSBJCL where isnull(XLXSBJCL_JGYBJCLID,' ') <> ' ') JGYL on JGYL.JGYLID = XLXSBJCL_BJCLID ");
strSQL.AppendLine(" left join XLXSBJDCLHQ on XLXSBJDCLHQ_BJDID=:pBJDID and XLXSBJDCLHQ_BJCLID=XLXSBJCL_BJCLID");
strSQL.AppendLine(" left join ");
strSQL.AppendLine(" (");
strSQL.AppendLine("select BJCLID,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF");
strSQL.AppendLine(" from XLXSCLHQ,");
strSQL.AppendLine(" (");
strSQL.AppendLine(" select XLXSCLHQ_BJCLID as BJCLID,");
strSQL.AppendLine(" max(XLXSCLHQ_YXQS)as maxYXQS");
strSQL.AppendLine(" from XLXSCLHQ,XLXSBJCL");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_YXQS<=:pBJRQ");
strSQL.AppendLine(" and (XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)");
strSQL.AppendLine(" and XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID");
strSQL.AppendLine(" group by XLXSCLHQ_BJCLID");
strSQL.AppendLine(" ) x");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_BJCLID=BJCLID");
strSQL.AppendLine(" and XLXSCLHQ_YXQS=maxYXQS");
strSQL.AppendLine(" ) bjdclhq on bjdclhq.BJCLID=XLXSBJCL_BJCLID");
//关联使用的材料,提上显示
strSQL.AppendLine(" LEFT JOIN");
strSQL.AppendLine(" (");
strSQL.AppendLine(" SELECT DISTINCT XLJGCZBLM_BJCLID FROM XLXSBJDMX");
strSQL.AppendLine(" LEFT JOIN XLXSCLQD ON XLXSCLQD_XLXHID = XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND isnull(XLXSCLQD_DYDJID,' ') = isnull(XLXSBJDMX_DYDJID,' ') ");
strSQL.AppendLine(" LEFT JOIN XLJGCZBLM ON XLJGCZBLM_JGCZBID = XLXSCLQD_JGCZBID and XLXSCLQD_JGCZBBBID = XLJGCZBLM_JGCZBBBID ");
strSQL.AppendLine(" WHERE XLXSBJDMX_BJDID = :pBJDID and isnull(XLJGCZBLM_CLQDL,' ')<>' ' and XLXSCLQD_WPID = 'ZZZZ'");
strSQL.AppendLine(" ) BJCL_PX ON BJCL_PX.XLJGCZBLM_BJCLID = XLXSBJCL_BJCLID ");
//strSQL.AppendLine(" order by px,XLXSBJCL_BJCLID");
return strSQL;
}
public static StringBuilder GetBJRHQ_VSql()
{
StringBuilder strSQL = new StringBuilder();
strSQL.AppendLine("select case when BJCL_PX.XLJGCZBLM_BJCLID is null THEN 1 ELSE 0 end as px, case when BJCL_PX.XLJGCZBLM_BJCLID is null THEN 'N' ELSE 'Y' end as SYF, ");
strSQL.AppendLine(" XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC || case when isnull(XLXSBJCL_TYBZ,'N')= 'Y' then '(停用)' else ' ' end as XLXSBJCL_BJCLMC,XLXSBJCL_BJHQ,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_WSJG else V_XLXSBJDCLHQ_WSJG end as CLJG,");
strSQL.AppendLine("XLXSBJCL_ZZSL,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_HSJG else V_XLXSBJDCLHQ_HSJG end as HSJG,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_WSJGF else V_XLXSBJDCLHQ_WSJGF end as WSJGF,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_HSJGF else V_XLXSBJDCLHQ_HSJGF end as HSJGF,");
strSQL.AppendLine("0 as SYJGB_HSJG, 0 as px1,");
strSQL.AppendLine("case when isnull(JGYLID, ' ') = ' ' then 1 else 0 end as px0, ");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_JGYBJCLID1 else isnull(V_XLXSBJDCLHQ_JGYBJCLID1,' ') end as V_XLXSBJDCLHQ_JGYBJCLID1,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_JGBL1 else isnull(V_XLXSBJDCLHQ_JGBL1,0.0) end as V_XLXSBJDCLHQ_JGBL1,");
//strSQL.AppendLine("isnull(V_XLXSBJDCLHQ_JGYBJCLID1,' ') as V_XLXSBJDCLHQ_JGYBJCLID1, isnull(V_XLXSBJDCLHQ_JGBL1,0.0) as V_XLXSBJDCLHQ_JGBL1, ");
strSQL.AppendLine("V_XLXSBJDCLHQ_WHR,V_XLXSBJDCLHQ_WHRID,V_XLXSBJDCLHQ_WHSJ, ");
strSQL.AppendLine(" (select top 1 XLXSBJCL_BJCLID from XLXSBJCL a where (a.XLXSBJCL_JGYBJCLID =XLXSBJCL.XLXSBJCL_BJCLID or (a.XLXSBJCL_JGYBJCLID=XLXSBJCL.XLXSBJCL_JGYBJCLID and isnull(XLXSBJCL.XLXSBJCL_JGYBJCLID,' ') <> ' '))) as XLXSBJCL_JGYBJCLID ");
strSQL.AppendLine(" from XLXSBJCL");
strSQL.AppendLine(" left join (select distinct XLXSBJCL_JGYBJCLID as JGYLID from XLXSBJCL where isnull(XLXSBJCL_JGYBJCLID,' ') <> ' ') JGYL on JGYL.JGYLID = XLXSBJCL_BJCLID ");
strSQL.AppendLine(" left join V_XLXSBJDCLHQ on V_XLXSBJDCLHQ_BJDID=:pBJDID and V_XLXSBJDCLHQ_ID=:pVID and V_XLXSBJDCLHQ_TZRYID=:pRYID and V_XLXSBJDCLHQ_BJCLID=XLXSBJCL_BJCLID ");
strSQL.AppendLine(" left join ");
strSQL.AppendLine(" (");
strSQL.AppendLine("select BJCLID,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF,XLXSCLHQ_JGYBJCLID1,XLXSCLHQ_JGBL1 ");
strSQL.AppendLine(" from XLXSCLHQ,");
strSQL.AppendLine(" (");
strSQL.AppendLine(" select XLXSCLHQ_BJCLID as BJCLID,");
strSQL.AppendLine(" max(XLXSCLHQ_YXQS)as maxYXQS");
strSQL.AppendLine(" from XLXSCLHQ,XLXSBJCL");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_YXQS<=:pBJRQ");
strSQL.AppendLine(" and (XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)");
strSQL.AppendLine(" and XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID");
strSQL.AppendLine(" group by XLXSCLHQ_BJCLID");
strSQL.AppendLine(" ) x");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_BJCLID=BJCLID");
strSQL.AppendLine(" and XLXSCLHQ_YXQS=maxYXQS");
strSQL.AppendLine(" ) bjdclhq on bjdclhq.BJCLID=XLXSBJCL_BJCLID");
//关联使用的材料,提上显示
strSQL.AppendLine(" LEFT JOIN");
strSQL.AppendLine(" (");
strSQL.AppendLine(" SELECT DISTINCT XLJGCZBLM_BJCLID FROM XLXSBJDMX");
strSQL.AppendLine(" LEFT JOIN XLXSCLQD ON XLXSCLQD_XLXHID = XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND isnull(XLXSCLQD_DYDJID,' ') = isnull(XLXSBJDMX_DYDJID,' ') ");
strSQL.AppendLine(" LEFT JOIN XLJGCZBLM ON XLJGCZBLM_JGCZBID = XLXSCLQD_JGCZBID and XLXSCLQD_JGCZBBBID = XLJGCZBLM_JGCZBBBID ");
strSQL.AppendLine(" WHERE XLXSBJDMX_BJDID = :pBJDID and isnull(XLJGCZBLM_CLQDL,' ')<>' ' and XLXSCLQD_WPID = 'ZZZZ'");
strSQL.AppendLine(" ) BJCL_PX ON BJCL_PX.XLJGCZBLM_BJCLID = XLXSBJCL_BJCLID ");
//strSQL.AppendLine(" order by px,XLXSBJCL_BJCLID");
return strSQL;
}
public static StringBuilder GetJGEHQSql(bool bHSBZ, string sTBJCLID, string sLBJCLID, string sTJ, string sLJ)
{
StringBuilder strSQL = new StringBuilder();
strSQL.AppendLine("select case when BJCL_PX.XLJGCZBLM_BJCLID is null THEN 1 ELSE 0 end as px,case when BJCL_PX.XLJGCZBLM_BJCLID is null THEN 'N' ELSE 'Y' end as SYF,");
strSQL.AppendLine("XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC || case when isnull(XLXSBJCL_TYBZ,'N')= 'Y' then '(停用)' else ' ' end as XLXSBJCL_BJCLMC,XLXSBJCL_BJHQ,");
strSQL.AppendLine("case when XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_WSJG else XLXSBJDCLHQ_WSJG end as CLJG,");
strSQL.AppendLine("XLXSBJCL_ZZSL,");
strSQL.AppendLine("case when XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_HSJG else XLXSBJDCLHQ_HSJG end as HSJG,");
strSQL.AppendLine("case when XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_WSJGF else XLXSBJDCLHQ_WSJGF end as WSJGF,");
strSQL.AppendLine("case when XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_HSJGF else XLXSBJDCLHQ_HSJGF end as HSJGF,");
strSQL.AppendLine("0 as SYJGB_HSJG, 0 as px1,");
strSQL.AppendLine("case when isnull(JGYLID, ' ') = ' ' then 1 else 0 end as px0, ");
strSQL.AppendLine("XLXSBJDCLHQ_WHR,XLXSBJDCLHQ_WHRID,XLXSBJDCLHQ_WHSJ, ");
strSQL.AppendLine(" (select top 1 XLXSBJCL_BJCLID from XLXSBJCL a where (a.XLXSBJCL_JGYBJCLID =XLXSBJCL.XLXSBJCL_BJCLID or (a.XLXSBJCL_JGYBJCLID=XLXSBJCL.XLXSBJCL_JGYBJCLID and isnull(XLXSBJCL.XLXSBJCL_JGYBJCLID,' ') <> ' '))) as XLXSBJCL_JGYBJCLID ");
strSQL.AppendLine(" from XLXSBJCL");
strSQL.AppendLine(" left join (select distinct XLXSBJCL_JGYBJCLID as JGYLID from XLXSBJCL where isnull(XLXSBJCL_JGYBJCLID,' ') <> ' ') JGYL on JGYL.JGYLID = XLXSBJCL_BJCLID ");
strSQL.AppendLine(" left join XLXSBJDCLHQ on XLXSBJDCLHQ_BJDID=:pBJDID and XLXSBJDCLHQ_BJCLID=XLXSBJCL_BJCLID");
strSQL.AppendLine(" left join ");
strSQL.AppendLine(" (");
strSQL.AppendLine("select BJCLID,");
if (bHSBZ)
{
strSQL.AppendLine(string.Format("case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}+XLXSCLHQ_HSJGF", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}+XLXSCLHQ_HSJGF", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(" else XLXSCLHQ_HSJG end as XLXSCLHQ_HSJG, ");
strSQL.AppendLine(string.Format("case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}/(1+ZZSL/100.0)", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}/(1+ZZSL/100.0)", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}/(1+ZZSL/100.0)+XLXSCLHQ_WSJGF", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}/(1+ZZSL/100.0)+XLXSCLHQ_WSJGF", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(" else XLXSCLHQ_WSJG end as XLXSCLHQ_WSJG, ");
strSQL.AppendLine(" XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF ");
}
else
{
strSQL.AppendLine(string.Format("case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}+XLXSCLHQ_WSJGF", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}+XLXSCLHQ_WSJGF", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(" else XLXSCLHQ_WSJG end as XLXSCLHQ_WSJG, ");
strSQL.AppendLine(string.Format("case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}*(1+ZZSL/100.0)", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}*(1+ZZSL/100.0)", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}*(1+ZZSL/100.0)+XLXSCLHQ_HSJGF", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}*(1+ZZSL/100.0)+XLXSCLHQ_HSJGF", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(" else XLXSCLHQ_HSJG end as XLXSCLHQ_HSJG, ");
strSQL.AppendLine(" XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF ");
}
strSQL.AppendLine(" from XLXSCLHQ,");
strSQL.AppendLine(" (");
strSQL.AppendLine(" select XLXSCLHQ_BJCLID as BJCLID,XLXSBJCL_JGYBJCLID as JGYBJCLID,XLXSBJCL_ZZSL as ZZSL,");
strSQL.AppendLine(" max(XLXSCLHQ_YXQS)as maxYXQS");
strSQL.AppendLine(" from XLXSCLHQ,XLXSBJCL");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_YXQS<=:pBJRQ");
strSQL.AppendLine(" and (XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)");
strSQL.AppendLine(" and XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID");
strSQL.AppendLine(" group by XLXSCLHQ_BJCLID,XLXSBJCL_JGYBJCLID,XLXSBJCL_ZZSL");
strSQL.AppendLine(" ) x");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_BJCLID=BJCLID");
strSQL.AppendLine(" and XLXSCLHQ_YXQS=maxYXQS");
strSQL.AppendLine(" ) bjdclhq on bjdclhq.BJCLID=XLXSBJCL_BJCLID");
//关联使用的材料,提上显示
strSQL.AppendLine(" LEFT JOIN");
strSQL.AppendLine(" (");
strSQL.AppendLine(" SELECT DISTINCT XLJGCZBLM_BJCLID FROM XLXSBJDMX");
strSQL.AppendLine(" LEFT JOIN XLXSCLQD ON XLXSCLQD_XLXHID = XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND isnull(XLXSCLQD_DYDJID,' ') = isnull(XLXSBJDMX_DYDJID,' ') ");
strSQL.AppendLine(" LEFT JOIN XLJGCZBLM ON XLJGCZBLM_JGCZBID = XLXSCLQD_JGCZBID and XLXSCLQD_JGCZBBBID = XLJGCZBLM_JGCZBBBID ");
strSQL.AppendLine(" WHERE XLXSBJDMX_BJDID = :pBJDID and isnull(XLJGCZBLM_CLQDL,' ')<>' ' and XLXSCLQD_WPID = 'ZZZZ'");
strSQL.AppendLine(" ) BJCL_PX ON BJCL_PX.XLJGCZBLM_BJCLID = XLXSBJCL_BJCLID ");
//strSQL.AppendLine(" order by px,XLXSBJCL_BJCLID");
return strSQL;
}
public static StringBuilder GetJGEHQ_VSql(bool bHSBZ, string sTBJCLID, string sLBJCLID, string sTJ, string sLJ)
{
StringBuilder strSQL = new StringBuilder();
strSQL.AppendLine("select case when BJCL_PX.XLJGCZBLM_BJCLID is null THEN 1 ELSE 0 end as px,case when BJCL_PX.XLJGCZBLM_BJCLID is null THEN 'N' ELSE 'Y' end as SYF,");
strSQL.AppendLine("XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC || case when isnull(XLXSBJCL_TYBZ,'N')= 'Y' then '(停用)' else ' ' end as XLXSBJCL_BJCLMC,XLXSBJCL_BJHQ,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_WSJG else V_XLXSBJDCLHQ_WSJG end as CLJG,");
strSQL.AppendLine("XLXSBJCL_ZZSL,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_HSJG else V_XLXSBJDCLHQ_HSJG end as HSJG,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_WSJGF else V_XLXSBJDCLHQ_WSJGF end as WSJGF,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_HSJGF else V_XLXSBJDCLHQ_HSJGF end as HSJGF,");
strSQL.AppendLine("0 as SYJGB_HSJG, 0 as px1,");
strSQL.AppendLine("case when isnull(JGYLID, ' ') = ' ' then 1 else 0 end as px0, ");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_JGYBJCLID1 else isnull(V_XLXSBJDCLHQ_JGYBJCLID1,' ') end as V_XLXSBJDCLHQ_JGYBJCLID1,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_JGBL1 else isnull(V_XLXSBJDCLHQ_JGBL1,0.0) end as V_XLXSBJDCLHQ_JGBL1,");
//strSQL.AppendLine("isnull(V_XLXSBJDCLHQ_JGYBJCLID1,' ') as V_XLXSBJDCLHQ_JGYBJCLID1, isnull(V_XLXSBJDCLHQ_JGBL1,0.0) as V_XLXSBJDCLHQ_JGBL1, ");
strSQL.AppendLine("V_XLXSBJDCLHQ_WHR,V_XLXSBJDCLHQ_WHRID,V_XLXSBJDCLHQ_WHSJ, ");
strSQL.AppendLine(" (select top 1 XLXSBJCL_BJCLID from XLXSBJCL a where (a.XLXSBJCL_JGYBJCLID =XLXSBJCL.XLXSBJCL_BJCLID or (a.XLXSBJCL_JGYBJCLID=XLXSBJCL.XLXSBJCL_JGYBJCLID and isnull(XLXSBJCL.XLXSBJCL_JGYBJCLID,' ') <> ' '))) as XLXSBJCL_JGYBJCLID ");
strSQL.AppendLine(" from XLXSBJCL");
strSQL.AppendLine(" left join (select distinct XLXSBJCL_JGYBJCLID as JGYLID from XLXSBJCL where isnull(XLXSBJCL_JGYBJCLID,' ') <> ' ') JGYL on JGYL.JGYLID = XLXSBJCL_BJCLID ");
strSQL.AppendLine(" left join V_XLXSBJDCLHQ on V_XLXSBJDCLHQ_BJDID=:pBJDID and V_XLXSBJDCLHQ_ID=:pVID and V_XLXSBJDCLHQ_TZRYID=:pRYID and V_XLXSBJDCLHQ_BJCLID=XLXSBJCL_BJCLID ");
strSQL.AppendLine(" left join ");
strSQL.AppendLine(" (");
strSQL.AppendLine("select BJCLID,XLXSCLHQ_JGYBJCLID1,XLXSCLHQ_JGBL1,");
if (bHSBZ)
{
strSQL.AppendLine(string.Format("case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}+XLXSCLHQ_HSJGF", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}+XLXSCLHQ_HSJGF", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(" else XLXSCLHQ_HSJG end as XLXSCLHQ_HSJG, ");
strSQL.AppendLine(string.Format("case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}/(1+ZZSL/100.0)", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}/(1+ZZSL/100.0)", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}/(1+ZZSL/100.0)+XLXSCLHQ_WSJGF", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}/(1+ZZSL/100.0)+XLXSCLHQ_WSJGF", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(" else XLXSCLHQ_WSJG end as XLXSCLHQ_WSJG, ");
strSQL.AppendLine(" XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF ");
}
else
{
strSQL.AppendLine(string.Format("case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}+XLXSCLHQ_WSJGF", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}+XLXSCLHQ_WSJGF", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(" else XLXSCLHQ_WSJG end as XLXSCLHQ_WSJG, ");
strSQL.AppendLine(string.Format("case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}*(1+ZZSL/100.0)", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}*(1+ZZSL/100.0)", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}*(1+ZZSL/100.0)+XLXSCLHQ_HSJGF", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}*(1+ZZSL/100.0)+XLXSCLHQ_HSJGF", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(" else XLXSCLHQ_HSJG end as XLXSCLHQ_HSJG, ");
strSQL.AppendLine(" XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF ");
}
strSQL.AppendLine(" from XLXSCLHQ,");
strSQL.AppendLine(" (");
strSQL.AppendLine(" select XLXSCLHQ_BJCLID as BJCLID,XLXSBJCL_JGYBJCLID as JGYBJCLID,XLXSBJCL_ZZSL as ZZSL,");
strSQL.AppendLine(" max(XLXSCLHQ_YXQS)as maxYXQS");
strSQL.AppendLine(" from XLXSCLHQ,XLXSBJCL");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_YXQS<=:pBJRQ");
strSQL.AppendLine(" and (XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)");
strSQL.AppendLine(" and XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID");
strSQL.AppendLine(" group by XLXSCLHQ_BJCLID,XLXSBJCL_JGYBJCLID,XLXSBJCL_ZZSL");
strSQL.AppendLine(" ) x");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_BJCLID=BJCLID");
strSQL.AppendLine(" and XLXSCLHQ_YXQS=maxYXQS");
strSQL.AppendLine(" ) bjdclhq on bjdclhq.BJCLID=XLXSBJCL_BJCLID");
//关联使用的材料,提上显示
strSQL.AppendLine(" LEFT JOIN");
strSQL.AppendLine(" (");
strSQL.AppendLine(" SELECT DISTINCT XLJGCZBLM_BJCLID FROM XLXSBJDMX");
strSQL.AppendLine(" LEFT JOIN XLXSCLQD ON XLXSCLQD_XLXHID = XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND isnull(XLXSCLQD_DYDJID,' ') = isnull(XLXSBJDMX_DYDJID,' ') ");
strSQL.AppendLine(" LEFT JOIN XLJGCZBLM ON XLJGCZBLM_JGCZBID = XLXSCLQD_JGCZBID and XLXSCLQD_JGCZBBBID = XLJGCZBLM_JGCZBBBID ");
strSQL.AppendLine(" WHERE XLXSBJDMX_BJDID = :pBJDID and isnull(XLJGCZBLM_CLQDL,' ')<>' ' and XLXSCLQD_WPID = 'ZZZZ'");
strSQL.AppendLine(" ) BJCL_PX ON BJCL_PX.XLJGCZBLM_BJCLID = XLXSBJCL_BJCLID ");
//strSQL.AppendLine(" order by px,XLXSBJCL_BJCLID");
return strSQL;
}
}
}