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.ModelBase; using GThinking.N_MISPRO.Utility; using GThinking.N_WORKFLOW; using GThinking.N_MISPRO; using GThinking.N_MISPRO.Data; using System.Collections.Generic; using System.Text; using GThinking.N_MISPRO.TableCache; using GThinking.N_MISPROAS; using GThinking.N_MODEL.Dialog; using GThinking.N_COMPRESS; using System.IO; using GThinking.N_MISPROAS.MISproAS; using System.Reflection; using GThinking.N_PUBLIC; namespace GThinking.N_XLXSBJ { public class XSYBJSPModel : ModelBase { #region 字段属性 private string _XLXSBJD_BJDID = string.Empty; public string XLXSBJD_BJDID { get { return _XLXSBJD_BJDID; } set { _XLXSBJD_BJDID = value; } } private string _XLXSBJD_BJFLID = string.Empty; public string XLXSBJD_BJFLID { get { return _XLXSBJD_BJFLID; } set { _XLXSBJD_BJFLID = value; } } private string _BJFL = string.Empty; public string BJFL { get { return _BJFL; } set { _BJFL = value; } } private string _XLXSBJD_JGBID = string.Empty; public string XLXSBJD_JGBID { get { return _XLXSBJD_JGBID; } set { _XLXSBJD_JGBID = value; } } private string _XLXSBJD_CLHQJGBID = string.Empty; public string XLXSBJD_CLHQJGBID { get { return _XLXSBJD_CLHQJGBID; } set { _XLXSBJD_CLHQJGBID = value; } } private string _XLXSBJD_BJRQ = string.Empty; public string XLXSBJD_BJRQ { get { return _XLXSBJD_BJRQ; } set { _XLXSBJD_BJRQ = value; } } private string _XLXSBJD_SYDWID = string.Empty; public string XLXSBJD_SYDWID { get { return _XLXSBJD_SYDWID; } set { _XLXSBJD_SYDWID = value; } } private string _XSDWMC = string.Empty; public string XSDWMC { get { return _XSDWMC; } set { _XSDWMC = value; } } private string _XLXSBJD_XSBMID = string.Empty; public string XLXSBJD_XSBMID { get { return _XLXSBJD_XSBMID; } set { _XLXSBJD_XSBMID = value; } } private string _BJGSBMMC = string.Empty; public string BJGSBMMC { get { return _BJGSBMMC; } set { _BJGSBMMC = value; } } private string _XLXSBJD_KH = string.Empty; public string XLXSBJD_KH { get { return _XLXSBJD_KH; } set { _XLXSBJD_KH = value; } } private string _XLXSBJD_XMMC = string.Empty; public string XLXSBJD_XMMC { get { return _XLXSBJD_XMMC; } set { _XLXSBJD_XMMC = value; } } private string _XLXSBJD_XXDZ = string.Empty; public string XLXSBJD_XXDZ { get { return _XLXSBJD_XXDZ; } set { _XLXSBJD_XXDZ = value; } } private string _XLXSBJD_SQR = string.Empty; public string XLXSBJD_SQR { get { return _XLXSBJD_SQR; } set { _XLXSBJD_SQR = value; } } private string _XLXSBJD_FKSM = string.Empty; public string XLXSBJD_FKSM { get { return _XLXSBJD_FKSM; } set { _XLXSBJD_FKSM = value; } } private string _XLXSBJD_BZ = string.Empty; public string XLXSBJD_BZ { get { return _XLXSBJD_BZ; } set { _XLXSBJD_BZ = value; } } private string _XLXSBJD_CZJSXY = string.Empty; public string XLXSBJD_CZJSXY { get { return _XLXSBJD_CZJSXY; } set { _XLXSBJD_CZJSXY = value; } } private string _XLXSBJD_TXY = string.Empty; public string XLXSBJD_TXY { get { return _XLXSBJD_TXY; } set { _XLXSBJD_TXY = value; } } private string _XLXSBJD_BJZJE = string.Empty; public string XLXSBJD_BJZJE { get { return _XLXSBJD_BJZJE; } set { _XLXSBJD_BJZJE = value; } } private string _XLXSBJD_ZDXJZJE = string.Empty; public string XLXSBJD_ZDXJZJE { get { return _XLXSBJD_ZDXJZJE; } set { _XLXSBJD_ZDXJZJE = value; } } private string _XLXSBJD_ZDXJJCL = string.Empty; public string XLXSBJD_ZDXJJCL { get { return _XLXSBJD_ZDXJJCL; } set { _XLXSBJD_ZDXJJCL = value; } } private string _XLXSBJD_CPJJJE = string.Empty; public string XLXSBJD_CPJJJE { get { return _XLXSBJD_CPJJJE; } set { _XLXSBJD_CPJJJE = value; } } private string _XLXSBJD_BJJCL = string.Empty; public string XLXSBJD_BJJCL { get { return _XLXSBJD_BJJCL; } set { _XLXSBJD_BJJCL = value; } } private string _XLXSBJD_FKQXNR = string.Empty; public string XLXSBJD_FKQXNR { get { return _XLXSBJD_FKQXNR; } set { _XLXSBJD_FKQXNR = value; } } private string _QYBJDJC = string.Empty; public string QYBJDJC { get { return _QYBJDJC; } set { _QYBJDJC = value; } } private string _BJBM = string.Empty; public string BJBM { get { return _BJBM; } set { _BJBM = value; } } private string _XSZJE = string.Empty; public string XSZJE { get { return _XSZJE; } set { _XSZJE = value; } } private string _XSZDXJ = string.Empty; public string XSZDXJ { get { return _XSZDXJ; } set { _XSZDXJ = value; } } private string _XSZDXJJCL = string.Empty; public string XSZDXJJCL { get { return _XSZDXJJCL; } set { _XSZDXJJCL = value; } } private string _JGBBJBM = string.Empty; public string JGBBJBM { get { return _JGBBJBM; } set { _JGBBJBM = value; } } private string _XSJGBBJ = string.Empty; public string XSJGBBJ { get { return _XSJGBBJ; } set { _XSJGBBJ = value; } } private string _XSBJJCL = string.Empty; public string XSBJJCL { get { return _XSBJJCL; } set { _XSBJJCL = value; } } private string _XSDCPDF = string.Empty; public string XSDCPDF { get { return _XSDCPDF; } set { _XSDCPDF = value; } } private string _XSYZJM = string.Empty; public string XSYZJM { get { return _XSYZJM; } set { _XSYZJM = value; } } private string _XSYGSBM = string.Empty; public string XSYGSBM { get { return _XSYGSBM; } set { _XSYGSBM = value; } } private string _XSYLXFS = string.Empty; public string XSYLXFS { get { return _XSYLXFS; } set { _XSYLXFS = value; } } private string _BJMXSL = string.Empty; public string BJMXSL { get { return _BJMXSL; } set { _BJMXSL = value; } } private string _KHLY = string.Empty; public string KHLY { get { return _KHLY; } set { _KHLY = value; } } private string _XMLY = string.Empty; public string XMLY { get { return _XMLY; } set { _XMLY = value; } } //是否启用行政区域 private string _QYXZQY = string.Empty; public string QYXZQY { get { return _QYXZQY; } set { _QYXZQY = value; } } //行政区域是否控制编号 private string _XZQYBH = string.Empty; public string XZQYBH { get { return _XZQYBH; } set { _XZQYBH = value; } } private string _XLXSBJD_XZQHID = string.Empty; public string XLXSBJD_XZQHID { get { return _XLXSBJD_XZQHID; } set { _XLXSBJD_XZQHID = value; } } //省份ID private string _SFID = string.Empty; public string SFID { get { return _SFID; } set { _SFID = value; } } //省份名称 private string _SFMC = string.Empty; public string SFMC { get { return _SFMC; } set { _SFMC = value; } } //城市ID private string _CSID = string.Empty; public string CSID { get { return _CSID; } set { _CSID = value; } } private string _CSMC = string.Empty; public string CSMC { get { return _CSMC; } set { _CSMC = value; } } private string _XLXSBJYLZD_SQSJ = string.Empty; public string XLXSBJYLZD_SQSJ { get { return _XLXSBJYLZD_SQSJ; } set { _XLXSBJYLZD_SQSJ = value; } } private string _XLXSBJYLZD_WCSJ = string.Empty; public string XLXSBJYLZD_WCSJ { get { return _XLXSBJYLZD_WCSJ; } set { _XLXSBJYLZD_WCSJ = value; } } private string _YLDZ = string.Empty; public string YLDZ { get { return _YLDZ; } set { _YLDZ = value; } } private string _YLZDLC = string.Empty; public string YLZDLC { get { return _YLZDLC; } set { _YLZDLC = value; } } private string _QYXSHT = string.Empty; public string QYXSHT { get { return _QYXSHT; } set { _QYXSHT = value; } } private string _FJSCLX = string.Empty; public string FJSCLX { get { return _FJSCLX; } set { _FJSCLX = value; } } private string _XLXSBJD_JZBJHS = string.Empty; public string XLXSBJD_JZBJHS { get { return _XLXSBJD_JZBJHS; } set { _XLXSBJD_JZBJHS = value; } } private string _XSTLJ = string.Empty; public string XSTLJ { get { return _XSTLJ; } set { _XSTLJ = value; } } private string _TJ = string.Empty; public string TJ { get { return _TJ; } set { _TJ = value; } } private string _LJ = string.Empty; public string LJ { get { return _LJ; } set { _LJ = value; } } private string _TZL = string.Empty; public string TZL { get { return _TZL; } set { _TZL = value; } } private string _LZL = string.Empty; public string LZL { get { return _LZL; } set { _LZL = value; } } private string _MRDYYS = string.Empty; public string MRDYYS { get { return _MRDYYS; } set { _MRDYYS = value; } } private string _XLXSBJD_LBXSFJXX = string.Empty; public string XLXSBJD_LBXSFJXX { get { return _XLXSBJD_LBXSFJXX; } set { _XLXSBJD_LBXSFJXX = value; } } private bool _CanDispatch = true; public bool CanDispatch { get { return _CanDispatch; } set { _CanDispatch = value; } } private bool _CanDeliver = true; public bool CanDeliver { get { return _CanDeliver; } set { _CanDeliver = value; } } //附加信息标签名称 private string _ExistFJXX = string.Empty; public string ExistFJXX { get { return _ExistFJXX; } set { _ExistFJXX = value; } } private string _KZZF01 = string.Empty; public string KZZF01 { get { return _KZZF01; } set { _KZZF01 = value; } } private string _KZZF02 = string.Empty; public string KZZF02 { get { return _KZZF02; } set { _KZZF02 = value; } } private string _KZZF03 = string.Empty; public string KZZF03 { get { return _KZZF03; } set { _KZZF03 = value; } } private string _KZZF04 = string.Empty; public string KZZF04 { get { return _KZZF04; } set { _KZZF04 = value; } } private string _KZZF05 = string.Empty; public string KZZF05 { get { return _KZZF05; } set { _KZZF05 = value; } } private string _KZZF06 = string.Empty; public string KZZF06 { get { return _KZZF06; } set { _KZZF06 = value; } } private string _KZZF07 = string.Empty; public string KZZF07 { get { return _KZZF07; } set { _KZZF07 = value; } } private string _KZZF08 = string.Empty; public string KZZF08 { get { return _KZZF08; } set { _KZZF08 = value; } } private string _KZZF09 = string.Empty; public string KZZF09 { get { return _KZZF09; } set { _KZZF09 = value; } } private string _KZZF10 = string.Empty; public string KZZF10 { get { return _KZZF10; } set { _KZZF10 = value; } } private double _KZSZ01 = 0; public double KZSZ01 { get { return _KZSZ01; } set { _KZSZ01 = value; } } private double _KZSZ02 = 0; public double KZSZ02 { get { return _KZSZ02; } set { _KZSZ02 = value; } } private double _KZSZ03 = 0; public double KZSZ03 { get { return _KZSZ03; } set { _KZSZ03 = value; } } private double _KZSZ04 = 0; public double KZSZ04 { get { return _KZSZ04; } set { _KZSZ04 = value; } } private double _KZSZ05 = 0; public double KZSZ05 { get { return _KZSZ05; } set { _KZSZ05 = value; } } private string _KZRQ01 = string.Empty; public string KZRQ01 { get { return _KZRQ01; } set { _KZRQ01 = value; } } private string _KZRQ02 = string.Empty; public string KZRQ02 { get { return _KZRQ02; } set { _KZRQ02 = value; } } private string _KZRQ03 = string.Empty; public string KZRQ03 { get { return _KZRQ03; } set { _KZRQ03 = value; } } private string _KZRQ04 = string.Empty; public string KZRQ04 { get { return _KZRQ04; } set { _KZRQ04 = value; } } private string _KZRQ05 = string.Empty; public string KZRQ05 { get { return _KZRQ05; } set { _KZRQ05 = value; } } private string _KZWB01 = string.Empty; public string KZWB01 { get { return _KZWB01; } set { _KZWB01 = value; } } private string _KZWB02 = string.Empty; public string KZWB02 { get { return _KZWB02; } set { _KZWB02 = value; } } private string _KZWB03 = string.Empty; public string KZWB03 { get { return _KZWB03; } set { _KZWB03 = value; } } private string _KZWB04 = string.Empty; public string KZWB04 { get { return _KZWB04; } set { _KZWB04 = value; } } private string _KZWB05 = string.Empty; public string KZWB05 { get { return _KZWB05; } set { _KZWB05 = value; } } #endregion public XSYBJSPModel() { } public XSYBJSPModel(string sWFID, double dWFINST) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); sSQL.Clear(); sSQL.Add("select XLXSBJD_BJDID,XLXSBJD_BJFLID, XLXSBJD_JGBID,XLXSBJD_CLHQJGBID, XLXSBJD_BJRQ,XLXSBJD_SYDWID,XLXSBJD_XSBMID,XLXSBJD_KH,XLXSBJD_XMMC,XLXSBJD_XXDZ,XLXSBJD_SQR,XLXSBJD_FKSM,XLXSBJD_BZ,XLXSBJD_CZJSXY,XLXSBJD_TXY, "); sSQL.Add(" XLXSBJFL_BJFLMC as BJFL,GS_GSMC as XSDWMC, B.BM_MC as BJGSBMMC,XSY_ZJM as XSYZJM, A.BM_MC as XSYGSBM,XSY_SJ as XSYLXFS,(select count(XLXSBJDMX_BJDID) as SL from XLXSBJDMX where 1 = 1 and XLXSBJDMX_BJDID =XLXSBJD_BJDID) as BJMXSL, "); sSQL.Add(" XLXSBJD_WHRID as WHRID, XLXSBJD_WHR as WHR, XLXSBJD_WHSJ as WHSJ, XLXSBJD_DOCGRPID as DOCGRPID, convert(float,XLXSBJD_FJS) as FJS, "); sSQL.Add(" XLXSBJD_WFID as WFID, XLXSBJD_WPID, XLXSBJD_WFINST as WFINST, XLXSBJD_WFAWAITER as WFAWAITER, XLXSBJD_WFHANDLER as WFHANDLER, XLXSBJD_ACTNAME as ACTNAME "); sSQL.Add(" from XLXSBJD "); sSQL.Add(" left join XLXSBJFL on XLXSBJFL_BJFLID = XLXSBJD_BJFLID"); sSQL.Add(" left join XSY on XSY_TXY = XLXSBJD_TXY"); sSQL.Add(" left join BM A on A.BM_BMID = XSY_BMID"); sSQL.Add(" left join BM B on B.BM_BMID = XLXSBJD_XSBMID"); sSQL.Add(" left join GS on GS_SYDWID = XLXSBJD_SYDWID"); sSQL.Add(" where XLXSBJD_WFID = :pWFID and XLXSBJD_WFINST = :pWFINST"); sSQL.ParamByName("pWFID").Value = sWFID; sSQL.ParamByName("pWFINST").Value = dWFINST; DataSet dsXLXSBJD = dberp.OpenDataSet(sSQL); if (dsXLXSBJD.Tables[0].Rows.Count > 0) { _XLXSBJD_BJDID = dsXLXSBJD.Tables[0].Rows[0]["XLXSBJD_BJDID"].ToString().Trim(); _XLXSBJD_BJFLID = dsXLXSBJD.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim(); _XLXSBJD_JGBID = dsXLXSBJD.Tables[0].Rows[0]["XLXSBJD_JGBID"].ToString().Trim(); _XLXSBJD_CLHQJGBID = dsXLXSBJD.Tables[0].Rows[0]["XLXSBJD_CLHQJGBID"].ToString().Trim(); _XLXSBJD_BJRQ = dsXLXSBJD.Tables[0].Rows[0]["XLXSBJD_BJRQ"].ToString().Trim(); _XLXSBJD_SYDWID = dsXLXSBJD.Tables[0].Rows[0]["XLXSBJD_SYDWID"].ToString().Trim(); _XLXSBJD_XSBMID = dsXLXSBJD.Tables[0].Rows[0]["XLXSBJD_XSBMID"].ToString().Trim(); _XLXSBJD_KH = dsXLXSBJD.Tables[0].Rows[0]["XLXSBJD_KH"].ToString().Trim(); _XLXSBJD_XMMC = dsXLXSBJD.Tables[0].Rows[0]["XLXSBJD_XMMC"].ToString().Trim(); _XLXSBJD_XXDZ = dsXLXSBJD.Tables[0].Rows[0]["XLXSBJD_XXDZ"].ToString().Trim(); _XLXSBJD_SQR = dsXLXSBJD.Tables[0].Rows[0]["XLXSBJD_SQR"].ToString().Trim(); _XLXSBJD_FKSM = dsXLXSBJD.Tables[0].Rows[0]["XLXSBJD_FKSM"].ToString().Trim(); _XLXSBJD_BZ = dsXLXSBJD.Tables[0].Rows[0]["XLXSBJD_BZ"].ToString().Trim(); _XLXSBJD_CZJSXY = dsXLXSBJD.Tables[0].Rows[0]["XLXSBJD_CZJSXY"].ToString().Trim(); _XLXSBJD_TXY = dsXLXSBJD.Tables[0].Rows[0]["XLXSBJD_TXY"].ToString().Trim(); _BJFL = dsXLXSBJD.Tables[0].Rows[0]["BJFL"].ToString().Trim(); _XSDWMC = dsXLXSBJD.Tables[0].Rows[0]["XSDWMC"].ToString().Trim(); _BJGSBMMC = dsXLXSBJD.Tables[0].Rows[0]["BJGSBMMC"].ToString().Trim(); _XSYZJM = dsXLXSBJD.Tables[0].Rows[0]["XSYZJM"].ToString().Trim(); _XSYGSBM = dsXLXSBJD.Tables[0].Rows[0]["XSYGSBM"].ToString().Trim(); _XSYLXFS = dsXLXSBJD.Tables[0].Rows[0]["XSYLXFS"].ToString().Trim(); WPID = dsXLXSBJD.Tables[0].Rows[0]["XLXSBJD_WPID"].ToString().Trim(); } WFID = sWFID; WFINST = dWFINST; } } public class CodeInfo { private string _CodeID = string.Empty; public string CodeID { get { return _CodeID; } set { _CodeID = value; } } private string _CodeMC = string.Empty; public string CodeMC { get { return _CodeMC; } set { _CodeMC = value; } } } public class XSYXX { private string _BGBZ = string.Empty; public string BGBZ { get { return _BGBZ; } set { _BGBZ = value; } } private string _TXY = string.Empty; public string TXY { get { return _TXY; } set { _TXY = value; } } private string _XSYZJM = string.Empty; public string XSYZJM { get { return _XSYZJM; } set { _XSYZJM = value; } } private string _LXFS = string.Empty; public string LXFS { get { return _LXFS; } set { _LXFS = value; } } private string _XSYGSBM = string.Empty; public string XSYGSBM { get { return _XSYGSBM; } set { _XSYGSBM = value; } } } public class MNamedQuery { //查询方案名 private string _NQNAME = string.Empty; public string NQNAME { get { return _NQNAME; } set { _NQNAME = value; } } //价差汇总方式 private string _JCHZFS = string.Empty; public string JCHZFS { get { return _JCHZFS; } set { _JCHZFS = value; } } //价差汇总方式名称 private string _JCHZFSMC = string.Empty; public string JCHZFSMC { get { return _JCHZFSMC; } set { _JCHZFSMC = value; } } //显示价差明细 private string _XSJCMX = string.Empty; public string XSJCMX { get { return _XSJCMX; } set { _XSJCMX = value; } } //显示价差小计 private string _XSJCXJ = string.Empty; public string XSJCXJ { get { return _XSJCXJ; } set { _XSJCXJ = value; } } } public class XSYBJSPMXInfo : ModelBase { private string _XLXSBJDMX_BJDID = string.Empty; public string XLXSBJDMX_BJDID { get { return _XLXSBJDMX_BJDID; } set { _XLXSBJDMX_BJDID = value; } } private string _XLXSBJDMX_XH = string.Empty; public string XLXSBJDMX_XH { get { return _XLXSBJDMX_XH; } set { _XLXSBJDMX_XH = value; } } private string _XLXSBJDMX_BJCP = string.Empty; public string XLXSBJDMX_BJCP { get { return _XLXSBJDMX_BJCP; } set { _XLXSBJDMX_BJCP = value; } } private string _XLXSBJDMX_BJSL = string.Empty; public string XLXSBJDMX_BJSL { get { return _XLXSBJDMX_BJSL; } set { _XLXSBJDMX_BJSL = value; } } private string _XLXSBJDMX_CPBJ = string.Empty; public string XLXSBJDMX_CPBJ { get { return _XLXSBJDMX_CPBJ; } set { _XLXSBJDMX_CPBJ = value; } } private string _XLXSBJDMX_TZQBJJE = string.Empty; public string XLXSBJDMX_TZQBJJE { get { return _XLXSBJDMX_TZQBJJE; } set { _XLXSBJDMX_TZQBJJE = value; } } private string _XLXSBJDMX_BZ = string.Empty; public string XLXSBJDMX_BZ { get { return _XLXSBJDMX_BZ; } set { _XLXSBJDMX_BZ = value; } } } public class XSYBJSPJCLInfo : ModelBase { private string _XLXSBJDMX_BJDID = string.Empty; public string XLXSBJDMX_BJDID { get { return _XLXSBJDMX_BJDID; } set { _XLXSBJDMX_BJDID = value; } } private string _XLXSBJDMX_XH = string.Empty; public string XLXSBJDMX_XH { get { return _XLXSBJDMX_XH; } set { _XLXSBJDMX_XH = value; } } private string _HZFS = string.Empty; public string HZFS { get { return _HZFS; } set { _HZFS = value; } } private string _XLXSBJDMX_BJCP = string.Empty; public string XLXSBJDMX_BJCP { get { return _XLXSBJDMX_BJCP; } set { _XLXSBJDMX_BJCP = value; } } private string _XLXSBJDMX_BJSL = string.Empty; public string XLXSBJDMX_BJSL { get { return _XLXSBJDMX_BJSL; } set { _XLXSBJDMX_BJSL = value; } } private string _XLXSBJDMX_CPBJ = string.Empty; public string XLXSBJDMX_CPBJ { get { return _XLXSBJDMX_CPBJ; } set { _XLXSBJDMX_CPBJ = value; } } private string _XLXSBJDMX_BJJE = string.Empty; public string XLXSBJDMX_BJJE { get { return _XLXSBJDMX_BJJE; } set { _XLXSBJDMX_BJJE = value; } } private string _XLXSBJDMX_BZ = string.Empty; public string XLXSBJDMX_BZ { get { return _XLXSBJDMX_BZ; } set { _XLXSBJDMX_BZ = value; } } private string _XLXSBJDMX_JCL = string.Empty; public string XLXSBJDMX_JCL { get { return _XLXSBJDMX_JCL; } set { _XLXSBJDMX_JCL = value; } } } public class XSYBJSPBO : BOBase { DataSet dsFJXXSZ = new DataSet(); public override ModelBase GetModel() { return CurMO; } public override void SetModel(ModelBase Model) { CurMO = (XSYBJSPModel)Model; } public List GetWXSYBJSPList(int iStart, int iNum, string BJRQS, string BJRQZ, string BJZJES, string BJZJEZ, string KH, string XM, string BJDID, out int iRowCount) { return GetWXSYBJSPList(iStart, iNum, BJRQS, BJRQZ, BJZJES, BJZJEZ, KH, XM, BJDID, out iRowCount, null); } public List GetWXSYBJSPList(int iStart, int iNum, string BJRQS, string BJRQZ, string BJZJES, string BJZJEZ, string KH, string XM, string BJDID, out int iRowCount, string SQR) { Mac.MacLog.TraceFormat(String.Format("GetWXSYBJSPList-begin")); List moList = new List(); CurNameQuery = new XLBJD_M(); CurNameQuery.FieldByName("SW").Value = "W"; CurNameQuery.FieldByName("BJRQS").Value = BJRQS; CurNameQuery.FieldByName("BJRQZ").Value = BJRQZ; CurNameQuery.FieldByName("KH").Value = KH; CurNameQuery.FieldByName("XM").Value = XM; CurNameQuery.FieldByName("BJDID").Value = BJDID; CurNameQuery.FieldByName("SQR").Value = SQR ?? ""; string sCondition = ""; if (!BJZJES.Trim().Equals("") && !BJZJES.Trim().Equals("0")) { sCondition += " and XLXSBJD_ZJE >= " + BJZJES; } if (!BJZJEZ.Trim().Equals("") && !BJZJEZ.Trim().Equals("0")) { sCondition += " and XLXSBJD_ZJE <= " + BJZJEZ; } Mac.MacLog.TraceFormat(String.Format("PreQuerySQL-before")); PreQuerySQL(iStart + iNum, sCondition); Mac.MacLog.TraceFormat(String.Format("PreQuerySQL-after")); iRowCount = OpenQueryCountSQL(); Mac.MacLog.TraceFormat(String.Format("iRowCount-after")); DataSet ds = OpenQueryFunctionSQL(); Mac.MacLog.TraceFormat(String.Format("ds-count:{0}", ds.Tables[0].Rows.ToString().Trim())); SetmoList(ds, iStart, iNum, iRowCount, ref moList); Mac.MacLog.TraceFormat(String.Format("SetmoList-after")); return moList; } public List GetHXSYBJSPList(int iStart, int iNum, string BJRQS, string BJRQZ, string BJZJES, string BJZJEZ, string KH, string XM, string BJDID, out int iRowCount) { return GetHXSYBJSPList(iStart, iNum, BJRQS, BJRQZ, BJZJES, BJZJEZ, KH, XM, BJDID, out iRowCount, null); } public List GetHXSYBJSPList(int iStart, int iNum, string BJRQS, string BJRQZ, string BJZJES, string BJZJEZ, string KH, string XM, string BJDID, out int iRowCount, string SQR) { List moList = new List(); CurNameQuery = new XLBJD_M(); CurNameQuery.FieldByName("SW").Value = "H"; CurNameQuery.FieldByName("BJRQS").Value = BJRQS; CurNameQuery.FieldByName("BJRQZ").Value = BJRQZ; CurNameQuery.FieldByName("KH").Value = KH; CurNameQuery.FieldByName("XM").Value = XM; CurNameQuery.FieldByName("BJDID").Value = BJDID; CurNameQuery.FieldByName("SQR").Value = SQR ?? ""; string sCondition = ""; if (!BJZJES.Trim().Equals("") && !BJZJES.Trim().Equals("0")) { sCondition += " and XLXSBJD_ZJE >= " + BJZJES; } if (!BJZJEZ.Trim().Equals("") && !BJZJEZ.Trim().Equals("0")) { sCondition += " and XLXSBJD_ZJE <= " + BJZJEZ; } PreQuerySQL(iStart + iNum, sCondition); iRowCount = OpenQueryCountSQL(); DataSet ds = OpenQueryFunctionSQL(); SetmoList(ds, iStart, iNum, iRowCount, ref moList); return moList; } public List GetAXSYBJSPList(int iStart, int iNum, string BJRQS, string BJRQZ, string BJZJES, string BJZJEZ, string KH, string XM, string BJDID, out int iRowCount) { return GetAXSYBJSPList(iStart, iNum, BJRQS, BJRQZ, BJZJES, BJZJEZ, KH, XM, BJDID, out iRowCount, null); } public List GetAXSYBJSPList(int iStart, int iNum, string BJRQS, string BJRQZ, string BJZJES, string BJZJEZ, string KH, string XM, string BJDID, out int iRowCount, string SQR) { List moList = new List(); CurNameQuery = new XLBJD_M(); CurNameQuery.FieldByName("SW").Value = "A"; CurNameQuery.FieldByName("BJRQS").Value = BJRQS; CurNameQuery.FieldByName("BJRQZ").Value = BJRQZ; CurNameQuery.FieldByName("KH").Value = KH; CurNameQuery.FieldByName("XM").Value = XM; CurNameQuery.FieldByName("BJDID").Value = BJDID; CurNameQuery.FieldByName("SQR").Value = SQR ?? ""; string sCondition = ""; if (!BJZJES.Trim().Equals("") && !BJZJES.Trim().Equals("0")) { sCondition += " and XLXSBJD_ZJE >= " + BJZJES; } if (!BJZJEZ.Trim().Equals("") && !BJZJEZ.Trim().Equals("0")) { sCondition += " and XLXSBJD_ZJE <= " + BJZJEZ; } PreQuerySQL(iStart + iNum, sCondition); iRowCount = OpenQueryCountSQL(); DataSet ds = OpenQueryFunctionSQL(); SetmoList(ds, iStart, iNum, iRowCount, ref moList); return moList; } public List GetXSYBJSPListByFA(int iStart, int iNum, int iMDID, string sNQNAME, string sNQCLASSNAME, out int iRowCount) { List moList = new List(); CurNameQuery = new XLBJD_M(); CurNameQuery.SetValueFromScheme(tSession.UserId, iMDID, sNQNAME, sNQCLASSNAME); PreQuerySQL(iStart + iNum, ""); DataSet ds = OpenQueryFunctionSQL(); iRowCount = OpenQueryCountSQL(); SetmoList(ds, iStart, iNum, iRowCount, ref moList); return moList; } public override ModelBase GetSingleModel(string Key) { dsFJXXSZ = LoadFJXXSZ(); XSYBJSPModel MO = new XSYBJSPModel(); CurNameQuery = new XLBJD_M(); PreQuerySQL(1, " and XLXSBJD_BJDID = :pKey "); Param.Add("pKey", Key); ReplaceParams(); DataSet ds = dbBO.OpenDataSet(QueryFunctionSQL); if (ds.Tables[0].Rows.Count > 0) { string sKHLY = ""; string sXMLY = ""; string sQYXZQY = ""; string sXZQYBH = ""; string sBJFLTZM = ""; string sQYBJDJC = ""; string sQYXSHT = ""; string sFJSCLX = ""; if (DSActiveModule.IsActiveModule(100956005)) sQYXZQY = "Y"; else sQYXZQY = "N"; if (CheckModule("100860008")) sQYBJDJC = "Y"; else sQYBJDJC = "N"; SetKHXMLY(ref sKHLY, ref sXMLY, ref sXZQYBH, ref sBJFLTZM, ref sFJSCLX); ds.Tables[0].Rows[0]["KHLY"] = sKHLY; ds.Tables[0].Rows[0]["XMLY"] = sXMLY; ds.Tables[0].Rows[0]["QYXZQY"] = sQYXZQY; ds.Tables[0].Rows[0]["XZQYBH"] = sXZQYBH; ds.Tables[0].Rows[0]["QYBJDJC"] = sQYBJDJC; ds.Tables[0].Rows[0]["FJSCLX"] = sFJSCLX; ds.Tables[0].Rows[0]["MRDYYS"] = GetMRDYYS(); if (ds.Tables[0].Rows[0]["YLDZ"].ToString().Trim().Equals("Y")) { string sYLDZWPNAME = getYLDZWPNAME(ds.Tables[0].Rows[0]["XLXSBJD_BJDID"].ToString().Trim()); ds.Tables[0].Rows[0]["YLZDLC"] = sYLDZWPNAME; } string sZDXJZJE = ""; string sJGBZJE = ""; string sBJZJE = ds.Tables[0].Rows[0]["XLXSBJD_ZJE"].ToString().Trim(); string sZDXJJCL = ds.Tables[0].Rows[0]["ZDXJJCL"].ToString().Trim(); string sBJJCL = ds.Tables[0].Rows[0]["XLXSBJD_LRL"].ToString().Trim(); string sBJDID = ds.Tables[0].Rows[0]["XLXSBJD_BJDID"].ToString().Trim(); if (CheckXSHT(sBJDID)) sQYXSHT = "Y"; else sQYXSHT = "N"; ds.Tables[0].Rows[0]["QYXSHT"] = sQYXSHT; CXZJE(sBJDID, ref sZDXJZJE, ref sJGBZJE); ds.Tables[0].Rows[0]["XLXSBJD_BJZJE"] = CMISproConvert.StrToFloat(sBJZJE, 0) == 0 ? "" : strPadRight(Convert.ToString(NumberUtils.RoundX(CMISproConvert.StrToFloat(sBJZJE, 0), 2)), 2); ds.Tables[0].Rows[0]["XLXSBJD_ZDXJJCL"] = CMISproConvert.StrToFloat(sZDXJJCL, 0) == 0 ? "" : strPadRight(Convert.ToString(NumberUtils.RoundX(CMISproConvert.StrToFloat(sZDXJJCL, 0), 2)), 2) + "%"; ds.Tables[0].Rows[0]["XLXSBJD_BJJCL"] = CMISproConvert.StrToFloat(sBJJCL, 0) == 0 ? "" : strPadRight(Convert.ToString(NumberUtils.RoundX(CMISproConvert.StrToFloat(sBJJCL, 0), 2)), 2) + "%"; ds.Tables[0].Rows[0]["XLXSBJD_ZDXJZJE"] = CMISproConvert.StrToFloat(sZDXJZJE, 0) == 0 ? "" : strPadRight(Convert.ToString(NumberUtils.RoundX(CMISproConvert.StrToFloat(sZDXJZJE, 0), 2)), 2); ds.Tables[0].Rows[0]["XLXSBJD_CPJJJE"] = CMISproConvert.StrToFloat(sJGBZJE, 0) == 0 ? "" : strPadRight(Convert.ToString(NumberUtils.RoundX(CMISproConvert.StrToFloat(sJGBZJE, 0), 2)), 2); string sBJFLID = ds.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim(); string sXSTLJ = ""; BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID); string sIsXJY = "N"; string sIsSJY = "N"; string sIsHJY = "N"; SetRYJS(tSession.UserId, ref sIsXJY, ref sIsSJY, ref sIsHJY); string sHidJSLMList = XLBJDUtils.GetHidJSLMList(sBJFLID, sIsXJY.Equals("Y"), sIsSJY.Equals("Y"), sIsHJY.Equals("Y")); #region 按角色隐藏栏目 string sBJBM = bjflxx.XLXSBJFL_BJBM; string sXSZJE = "Y"; string sXSZDXJ = "N"; string sXSZDXJJCL = "N"; if (bjflxx.XSZDXJ()) { sXSZDXJ = "Y"; sXSZDXJJCL = "Y"; } string sJGBBJBM = bjflxx.XLXSBJFL_JGBBJBM; string sXSJGBBJ = "Y"; string sXSBJJCL = "N"; if (bjflxx.XSJCL()) sXSBJJCL = "Y"; string sXSDCPDF = "Y"; if (!sHidJSLMList.Trim().Equals("")) { string[] sHidJSLMs = sHidJSLMList.Split(','); for (int i = 0; i < sHidJSLMs.Length; i++) { string sLMID = sHidJSLMs[i].Trim(); switch (sLMID) { case "XLXSBJDMX_BJJE": sXSZJE = "N"; break; case "XLXSBJDMX_ZDXJ": if (sXSZDXJ.Equals("Y")) sXSZDXJ = "N"; break; case "XLXSBJDMX_ZDXJJCL": if (sXSZDXJJCL.Equals("Y")) sXSZDXJJCL = "N"; break; case "XLXSBJDMX_JGBBJ": if (sXSJGBBJ.Equals("Y")) sXSJGBBJ = "N"; break; case "XLXSBJDMX_JGBBJJCL": if (sXSBJJCL.Equals("Y")) sXSBJJCL = "N"; break; case "btnAPPDCPDF": if (sXSDCPDF.Equals("Y")) sXSDCPDF = "N"; break; } } } ds.Tables[0].Rows[0]["BJBM"] = sBJBM; ds.Tables[0].Rows[0]["XSZJE"] = sXSZJE; ds.Tables[0].Rows[0]["XSZDXJ"] = sXSZDXJ; ds.Tables[0].Rows[0]["XSZDXJJCL"] = sXSZDXJJCL; ds.Tables[0].Rows[0]["JGBBJBM"] = sJGBBJBM; ds.Tables[0].Rows[0]["XSJGBBJ"] = sXSJGBBJ; ds.Tables[0].Rows[0]["XSBJJCL"] = sXSBJJCL; ds.Tables[0].Rows[0]["XSDCPDF"] = sXSDCPDF; #endregion if (!bjflxx.XLXSBJFL_TBJCLID.Equals("") && !bjflxx.XLXSBJFL_LBJCLID.Equals("")) sXSTLJ = "TLJ"; else if (!bjflxx.XLXSBJFL_TBJCLID.Equals("") && bjflxx.XLXSBJFL_LBJCLID.Equals("")) sXSTLJ = "TJ"; else if (bjflxx.XLXSBJFL_TBJCLID.Equals("") && !bjflxx.XLXSBJFL_LBJCLID.Equals("")) sXSTLJ = "LJ"; if (!sXSTLJ.Equals("")) { ds.Tables[0].Rows[0]["XSTLJ"] = sXSTLJ; string sTJ = ds.Tables[0].Rows[0]["XLXSBJD_TJ"].ToString().Trim(); string sLJ = ds.Tables[0].Rows[0]["XLXSBJD_LJ"].ToString().Trim(); if (CMISproConvert.StrToFloat(sTJ, 0) == 0 && CMISproConvert.StrToFloat(sLJ, 0) == 0) { string sBJRQ = ds.Tables[0].Rows[0]["XLXSBJD_BJRQ"].ToString().Trim(); string sJZBJHS = ds.Tables[0].Rows[0]["XLXSBJD_JZBJHS"].ToString().Trim(); Dictionary dicTLJG = XLBJDInfo.GetTLJByRQ(sBJRQ, sBJFLID, sJZBJHS.Equals("Y")); sTJ = dicTLJG["TJ"]; sLJ = dicTLJG["LJ"]; } ds.Tables[0].Rows[0]["TJ"] = CMISproConvert.StrToFloat(sTJ, 0) == 0 ? "" : strPadRight(Convert.ToString(NumberUtils.RoundX(CMISproConvert.StrToFloat(sTJ, 0), XLBJDUtils.BJCLPriceDecimal)), XLBJDUtils.BJCLPriceDecimal); ds.Tables[0].Rows[0]["LJ"] = CMISproConvert.StrToFloat(sLJ, 0) == 0 ? "" : strPadRight(Convert.ToString(NumberUtils.RoundX(CMISproConvert.StrToFloat(sLJ, 0), XLBJDUtils.BJCLPriceDecimal)), XLBJDUtils.BJCLPriceDecimal); } SetMO(ds.Tables[0].Rows[0], MO); } else MO = null; return MO; } public override ModelBase GetSingleModel(string sWFID, double dWFINST) { dsFJXXSZ = LoadFJXXSZ(); XSYBJSPModel MO = new XSYBJSPModel(); CurNameQuery = new XLBJD_M(); PreQuerySQL(1, " and XLXSBJD_WFID = :pWFID and XLXSBJD_WFINST = :pWFINST "); Param.Add("pWFID", sWFID); Param.Add("pWFINST", dWFINST); ReplaceParams(); DataSet ds = dbBO.OpenDataSet(QueryFunctionSQL); if (ds.Tables[0].Rows.Count > 0) { string sKHLY = ""; string sXMLY = ""; string sQYXZQY = ""; string sXZQYBH = ""; string sBJFLTZM = ""; string sQYBJDJC = ""; string sQYXSHT = ""; string sFJSCLX = ""; if (DSActiveModule.IsActiveModule(100956005)) sQYXZQY = "Y"; else sQYXZQY = "N"; if (CheckModule("100860008")) sQYBJDJC = "Y"; else sQYBJDJC = "N"; SetKHXMLY(ref sKHLY, ref sXMLY, ref sXZQYBH, ref sBJFLTZM, ref sFJSCLX); ds.Tables[0].Rows[0]["KHLY"] = sKHLY; ds.Tables[0].Rows[0]["XMLY"] = sXMLY; ds.Tables[0].Rows[0]["QYXZQY"] = sQYXZQY; ds.Tables[0].Rows[0]["XZQYBH"] = sXZQYBH; ds.Tables[0].Rows[0]["QYBJDJC"] = sQYBJDJC; ds.Tables[0].Rows[0]["FJSCLX"] = sFJSCLX; ds.Tables[0].Rows[0]["MRDYYS"] = GetMRDYYS(); if (ds.Tables[0].Rows[0]["YLDZ"].ToString().Trim().Equals("Y")) { string sYLDZWPNAME = getYLDZWPNAME(ds.Tables[0].Rows[0]["XLXSBJD_BJDID"].ToString().Trim()); ds.Tables[0].Rows[0]["YLZDLC"] = sYLDZWPNAME; } string sZDXJZJE = ""; string sJGBZJE = ""; string sBJZJE = ds.Tables[0].Rows[0]["XLXSBJD_ZJE"].ToString().Trim(); string sZDXJJCL = ds.Tables[0].Rows[0]["ZDXJJCL"].ToString().Trim(); string sBJJCL = ds.Tables[0].Rows[0]["XLXSBJD_LRL"].ToString().Trim(); string sBJDID = ds.Tables[0].Rows[0]["XLXSBJD_BJDID"].ToString().Trim(); if (CheckXSHT(sBJDID)) sQYXSHT = "Y"; else sQYXSHT = "N"; ds.Tables[0].Rows[0]["QYXSHT"] = sQYXSHT; CXZJE(sBJDID, ref sZDXJZJE, ref sJGBZJE); ds.Tables[0].Rows[0]["XLXSBJD_BJZJE"] = CMISproConvert.StrToFloat(sBJZJE, 0) == 0 ? "" : strPadRight(Convert.ToString(NumberUtils.RoundX(CMISproConvert.StrToFloat(sBJZJE, 0), 2)), 2); ds.Tables[0].Rows[0]["XLXSBJD_ZDXJJCL"] = CMISproConvert.StrToFloat(sZDXJJCL, 0) == 0 ? "" : strPadRight(Convert.ToString(NumberUtils.RoundX(CMISproConvert.StrToFloat(sZDXJJCL, 0), 2)), 2) + "%"; ds.Tables[0].Rows[0]["XLXSBJD_BJJCL"] = CMISproConvert.StrToFloat(sBJJCL, 0) == 0 ? "" : strPadRight(Convert.ToString(NumberUtils.RoundX(CMISproConvert.StrToFloat(sBJJCL, 0), 2)), 2) + "%"; ds.Tables[0].Rows[0]["XLXSBJD_ZDXJZJE"] = CMISproConvert.StrToFloat(sZDXJZJE, 0) == 0 ? "" : strPadRight(Convert.ToString(NumberUtils.RoundX(CMISproConvert.StrToFloat(sZDXJZJE, 0), 2)), 2); ds.Tables[0].Rows[0]["XLXSBJD_CPJJJE"] = CMISproConvert.StrToFloat(sJGBZJE, 0) == 0 ? "" : strPadRight(Convert.ToString(NumberUtils.RoundX(CMISproConvert.StrToFloat(sJGBZJE, 0), 2)), 2); string sBJFLID = ds.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim(); string sXSTLJ = ""; BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID); string sIsXJY = "N"; string sIsSJY = "N"; string sIsHJY = "N"; SetRYJS(tSession.UserId, ref sIsXJY, ref sIsSJY, ref sIsHJY); string sHidJSLMList = XLBJDUtils.GetHidJSLMList(sBJFLID, sIsXJY.Equals("Y"), sIsSJY.Equals("Y"), sIsHJY.Equals("Y")); #region 按角色隐藏栏目 string sBJBM = bjflxx.XLXSBJFL_BJBM; string sXSZJE = "Y"; string sXSZDXJ = "N"; string sXSZDXJJCL = "N"; if (bjflxx.XSZDXJ()) { sXSZDXJ = "Y"; sXSZDXJJCL = "Y"; } string sJGBBJBM = bjflxx.XLXSBJFL_JGBBJBM; string sXSJGBBJ = "Y"; string sXSBJJCL = "N"; if (bjflxx.XSJCL()) sXSBJJCL = "Y"; string sXSDCPDF = "Y"; if (!sHidJSLMList.Trim().Equals("")) { string[] sHidJSLMs = sHidJSLMList.Split(','); for (int i = 0; i < sHidJSLMs.Length; i++) { string sLMID = sHidJSLMs[i].Trim(); switch (sLMID) { case "XLXSBJDMX_BJJE": sXSZJE = "N"; break; case "XLXSBJDMX_ZDXJ": if (sXSZDXJ.Equals("Y")) sXSZDXJ = "N"; break; case "XLXSBJDMX_ZDXJJCL": if (sXSZDXJJCL.Equals("Y")) sXSZDXJJCL = "N"; break; case "XLXSBJDMX_JGBBJ": if (sXSJGBBJ.Equals("Y")) sXSJGBBJ = "N"; break; case "XLXSBJDMX_JGBBJJCL": if (sXSBJJCL.Equals("Y")) sXSBJJCL = "N"; break; case "btnAPPDCPDF": if (sXSDCPDF.Equals("Y")) sXSDCPDF = "N"; break; } } } ds.Tables[0].Rows[0]["BJBM"] = sBJBM; ds.Tables[0].Rows[0]["XSZJE"] = sXSZJE; ds.Tables[0].Rows[0]["XSZDXJ"] = sXSZDXJ; ds.Tables[0].Rows[0]["XSZDXJJCL"] = sXSZDXJJCL; ds.Tables[0].Rows[0]["JGBBJBM"] = sJGBBJBM; ds.Tables[0].Rows[0]["XSJGBBJ"] = sXSJGBBJ; ds.Tables[0].Rows[0]["XSBJJCL"] = sXSBJJCL; ds.Tables[0].Rows[0]["XSDCPDF"] = sXSDCPDF; #endregion if (!bjflxx.XLXSBJFL_TBJCLID.Equals("") && !bjflxx.XLXSBJFL_LBJCLID.Equals("")) sXSTLJ = "TLJ"; else if (!bjflxx.XLXSBJFL_TBJCLID.Equals("") && bjflxx.XLXSBJFL_LBJCLID.Equals("")) sXSTLJ = "TJ"; else if (bjflxx.XLXSBJFL_TBJCLID.Equals("") && !bjflxx.XLXSBJFL_LBJCLID.Equals("")) sXSTLJ = "LJ"; if (!sXSTLJ.Equals("")) { ds.Tables[0].Rows[0]["XSTLJ"] = sXSTLJ; string sTJ = ds.Tables[0].Rows[0]["XLXSBJD_TJ"].ToString().Trim(); string sLJ = ds.Tables[0].Rows[0]["XLXSBJD_LJ"].ToString().Trim(); if (CMISproConvert.StrToFloat(sTJ, 0) == 0 && CMISproConvert.StrToFloat(sLJ, 0) == 0) { string sBJRQ = ds.Tables[0].Rows[0]["XLXSBJD_BJRQ"].ToString().Trim(); string sJZBJHS = ds.Tables[0].Rows[0]["XLXSBJD_JZBJHS"].ToString().Trim(); Dictionary dicTLJG = XLBJDInfo.GetTLJByRQ(sBJRQ, sBJFLID, sJZBJHS.Equals("Y")); sTJ = dicTLJG["TJ"]; sLJ = dicTLJG["LJ"]; } ds.Tables[0].Rows[0]["TJ"] = CMISproConvert.StrToFloat(sTJ, 0) == 0 ? "" : strPadRight(Convert.ToString(NumberUtils.RoundX(CMISproConvert.StrToFloat(sTJ, 0), XLBJDUtils.BJCLPriceDecimal)), XLBJDUtils.BJCLPriceDecimal); ds.Tables[0].Rows[0]["LJ"] = CMISproConvert.StrToFloat(sLJ, 0) == 0 ? "" : strPadRight(Convert.ToString(NumberUtils.RoundX(CMISproConvert.StrToFloat(sLJ, 0), XLBJDUtils.BJCLPriceDecimal)), XLBJDUtils.BJCLPriceDecimal); } SetMO(ds.Tables[0].Rows[0], MO); } else MO = null; return MO; } protected override void WFAfterActionEvent(TWorkflow Sender, TWFAction Action, bool ActionIsDone) { string Key = (CurMO as XSYBJSPModel).XLXSBJD_BJDID; _curWorkFlow.dbe.ExecSQL(string.Format("update XLXSBJD set XLXSBJD_WFID='{0}', XLXSBJD_WPID='{1}', XLXSBJD_WFINST={2}, XLXSBJD_WFAWAITER='{3}', XLXSBJD_WFHANDLER='{4}', XLXSBJD_ACTNAME='{5}' where XLXSBJD_BJDID='{6}' ", _curWorkFlow.WFID, _curWorkFlow.WPID, _curWorkFlow.WFInst.ToString().Trim(), _curWorkFlow.Awaiter, _curWorkFlow.Handler, _curWorkFlow.GetWFActionName(Action), Key)); CurMO.WFID = Sender.WFID; CurMO.WFINST = Sender.WFInst; CurMO.WFAWAITER = Sender.Awaiter; CurMO.WFHANDLER = Sender.Handler; CurMO.WPID = Sender.WPID; CurMO.WPNAME = _curWorkFlow.GetWPName(CurMO.WFID, CurMO.WPID); TSQL SQL = new TSQL(Sender.dbe); string sCurZT = TWorkflow.Utils.WFGetBZSWID(Sender.WFID, Sender.WPID); if (sCurZT == "ZZZZ") { string sPSDH = ""; bool bINS = false; XLBJD_BDOBill.InsBJPS(SQL, Sender.dbe, Sender, Action, Key, tSession, "100860061", ref sPSDH, ref bINS); if (bINS) { XLBJD_BDOBill.DispatchtoZZZZ(sPSDH, tSession); } } if (Sender.WPID.Equals("ZZZZ")) XLBJDUtils.UpdateBJWCSJ(Key); } protected override void PreQuerySQL(int maxRecords, string sCondition) { base.PreQuerySQL(maxRecords, sCondition); QueryFunctionSQL.Add(" XLXSBJD_BJDID,XLXSBJD_BJFLID, XLXSBJD_JGBID,XLXSBJD_CLHQJGBID, XLXSBJD_BJRQ,XLXSBJD_SYDWID,XLXSBJD_XSBMID,XLXSBJD_KH,XLXSBJD_XMMC,XLXSBJD_XXDZ,XLXSBJD_SQR,XLXSBJD_FKSM,XLXSBJD_BZ,XLXSBJD_CZJSXY,XLXSBJD_TXY, "); QueryFunctionSQL.Add(" XLXSBJFL_BJFLMC as BJFL,GS_GSMC as XSDWMC, B.BM_MC as BJGSBMMC,XSY_ZJM as XSYZJM,case when ISNULL(A.BM_MC,' ') = ' ' then '' else rtrim(A.BM_BMID) || '|' || A.BM_MC end as XSYGSBM,case when isnull(XSY_SJ,' ') <> ' ' then isnull(XSY_SJ,' ') else isnull(XSY_DH,' ') end as XSYLXFS, "); QueryFunctionSQL.Add(" (select count(XLXSBJDMX_BJDID) as SL from XLXSBJDMX where 1 = 1 and XLXSBJDMX_BJDID =XLXSBJD_BJDID) as BJMXSL,'' as KHLY,'' as XMLY,'' as QYXSHT,'' as FJSCLX,"); QueryFunctionSQL.Add(" case when isnull(XLXSBJYLZD_SQSJ,convert(datetime,'1900-01-01 00:00:00')) = convert(datetime,'1900-01-01 00:00:00') then 'N' else 'Y' end as YLDZ ,XLXSBJYLZD_SQSJ,XLXSBJYLZD_WCSJ,'结束' as YLZDLC,XLXSBJD_XZQHID,"); QueryFunctionSQL.Add(" case rtrim(ISNULL(D.XZQH_XZQHID,' ')) when '86' then C.XZQH_XZQHID else D.XZQH_XZQHID end as SFID,case rtrim(ISNULL(D.XZQH_XZQHID,' ')) when '86' then ' ' else C.XZQH_XZQHID end as CSID,"); QueryFunctionSQL.Add(" case rtrim(ISNULL(D.XZQH_XZQHID,' ')) when '86' then C.XZQH_PROVINCE else D.XZQH_PROVINCE end as SFMC,case rtrim(ISNULL(D.XZQH_XZQHID,' ')) when '86' then ' ' else C.XZQH_CITY end as CSMC,'N' as QYXZQY,'N' as XZQYBH,XLXSBJD_LBXSFJXX,"); QueryFunctionSQL.Add(" XLXSBJD_ZJE, ' ' as XLXSBJD_BJZJE, ' ' as XLXSBJD_ZDXJZJE ,XLXSBJD_ZDXJJCL as ZDXJJCL,' ' as XLXSBJD_ZDXJJCL,' ' as XLXSBJD_CPJJJE,XLXSBJD_LRL, ' ' as XLXSBJD_BJJCL,XLXSBJD_FKQXNR,'N' as QYBJDJC,XLXSBJD_JZBJHS,' ' as XSTLJ,' ' as TJ,' ' as LJ,' ' as TZL,' ' as LZL,XLXSBJD_TJ,XLXSBJD_LJ,"); QueryFunctionSQL.Add(" 'N' as MRDYYS,XLXSBJD_WHRID as WHRID, XLXSBJD_WHR as WHR, XLXSBJD_WHSJ as WHSJ, XLXSBJD_DOCGRPID as DOCGRPID, convert(float,XLXSBJD_FJS) as FJS, "); QueryFunctionSQL.Add(" XLXSBJD_WFID as WFID, XLXSBJD_WPID as WPID, XLXSBJD_WFINST as WFINST, XLXSBJD_WFAWAITER as WFAWAITER, XLXSBJD_WFHANDLER as WFHANDLER, XLXSBJD_ACTNAME as ACTNAME,'N' as ExistFJXX, "); QueryFunctionSQL.Add(" ' ' as BJBM,'Y' as XSZJE,'N' as XSZDXJ,'N' as XSZDXJJCL,' ' as JGBBJBM,'Y' as XSJGBBJ,'N' as XSBJJCL,'Y' as XSDCPDF, "); QueryFunctionSQL.Add(" XLXSBJKZXX_KZZF01 as KZZF01, XLXSBJKZXX_KZZF02 as KZZF02, XLXSBJKZXX_KZZF03 as KZZF03, XLXSBJKZXX_KZZF04 as KZZF04, XLXSBJKZXX_KZZF05 as KZZF05, "); QueryFunctionSQL.Add(" XLXSBJKZXX_KZZF06 as KZZF06, XLXSBJKZXX_KZZF07 as KZZF07, XLXSBJKZXX_KZZF08 as KZZF08, XLXSBJKZXX_KZZF09 as KZZF09, XLXSBJKZXX_KZZF10 as KZZF10, "); QueryFunctionSQL.Add(" XLXSBJKZXX_KZSZ01 as KZSZ01, XLXSBJKZXX_KZSZ02 as KZSZ02, XLXSBJKZXX_KZSZ03 as KZSZ03, XLXSBJKZXX_KZSZ04 as KZSZ04, XLXSBJKZXX_KZSZ05 as KZSZ05,"); QueryFunctionSQL.Add(" XLXSBJKZXX_KZRQ01 as KZRQ01, XLXSBJKZXX_KZRQ02 as KZRQ02, XLXSBJKZXX_KZRQ03 as KZRQ03, XLXSBJKZXX_KZRQ04 as KZRQ04, XLXSBJKZXX_KZRQ05 as KZRQ05,"); QueryFunctionSQL.Add(" XLXSBJKZXX_KZWB01 as KZWB01, XLXSBJKZXX_KZWB02 as KZWB02, XLXSBJKZXX_KZWB03 as KZWB03, XLXSBJKZXX_KZWB04 as KZWB04, XLXSBJKZXX_KZWB05 as KZWB05 "); QueryFunctionSQL.Add(" from XLXSBJD "); QueryFunctionSQL.Add(" left join XLXSBJFL on XLXSBJFL_BJFLID = XLXSBJD_BJFLID"); QueryFunctionSQL.Add(" left join XSY on XSY_TXY = XLXSBJD_TXY"); QueryFunctionSQL.Add(" left join BM A on A.BM_BMID = XSY_BMID"); QueryFunctionSQL.Add(" left join BM B on B.BM_BMID = XLXSBJD_XSBMID"); QueryFunctionSQL.Add(" left join GS on GS_SYDWID = XLXSBJD_SYDWID"); QueryFunctionSQL.Add(" left join (select min(XLXSBJYLZD_SQDH) as YLZDSQDH,XLXSBJYLZD_BJDID from XLXSBJYLZD where 1=1 group by XLXSBJYLZD_BJDID ) YLZDSQ "); QueryFunctionSQL.Add(" on XLXSBJYLZD_BJDID = XLXSBJD_BJDID "); QueryFunctionSQL.Add(" left join XLXSBJYLZD on XLXSBJYLZD_SQDH = YLZDSQDH "); QueryFunctionSQL.Add(" left join XZQH C on C.XZQH_XZQHID = XLXSBJD_XZQHID "); QueryFunctionSQL.Add(" left join XZQH D on D.XZQH_XZQHID = C.XZQH_FID "); QueryFunctionSQL.Add(" left join XLXSBJKZXX on XLXSBJKZXX_BJDID = XLXSBJD_BJDID "); QueryFunctionSQL.Add(" left join (select WFLOG_WFID, WFLOG_WFINST, max(WFLOG_AEND) as WFLOG_MAX_AEND from WFLOG group by WFLOG_WFID, WFLOG_WFINST) WFLOG_AEND_M "); QueryFunctionSQL.Add(" on WFLOG_AEND_M.WFLOG_WFID = XLXSBJD_WFID and WFLOG_AEND_M.WFLOG_WFINST = XLXSBJD_WFINST "); QueryFunctionSQL.Add(" where 1=1 and isnull(XLXSBJD_YWLX,' ') = ' '"); QueryFunctionSQL.Add(sCondition); StringBuilder sSQL = new StringBuilder(); if (maxRecords > 1) { switch (CurNameQuery.FieldByName("SW").Value.Trim()) { case "W": sSQL.AppendLine("\r\n and " + _curWorkFlow.GetWhereAgent("XLXSBJ_BJD", tSession.UserId, "XLXSBJD_WFAWAITER", "XLXSBJD_WFID", "XLXSBJD_WPID")); break; case "H": sSQL.AppendLine("\r\n and XLXSBJD_WFHANDLER LIKE :XLXSBJD_WFHANDLER "); Param.Add("XLXSBJD_WFHANDLER", "%," + tSession.UserId + ",%"); break; case "A": break; } string sGTMAF001 = GetOption("GTMAF001"); if (!sGTMAF001.Trim().Equals("")) sSQL.AppendLine(" and " + CMISproDataBase.GetWhereEqual("XLXSBJD_WFID", sGTMAF001)); if (!string.IsNullOrEmpty(CurNameQuery.FieldByName("WFAWAITER").Value.Trim())) { sSQL.AppendLine(" \r\n and XLXSBJD_WFAWAITER like :pWFAWITER "); Param.Add("pWFAWITER", string.Format("%,{0},%", CurNameQuery.FieldByName("WFAWAITER").Value.Trim())); } if (!string.IsNullOrEmpty(CurNameQuery.FieldByName("STATE").Value.Trim())) { sSQL.AppendLine("\r\n and " + CMISproDataBase.GetWhereEqual("XLXSBJD_WPID", CurNameQuery.FieldByName("STATE").Value.Trim())); } if (!CurNameQuery.FieldByName("XHDW").Value.Trim().Equals("")) { sSQL.AppendLine("\r\n and (GS_GSMC like :pXHDW or KH_MC like :pXHDW) "); Param.Add("pXHDW", "%" + CurNameQuery.FieldByName("XHDW").Value.Trim() + "%"); } if (!CurNameQuery.FieldByName("TXY").Value.Trim().Equals("")) { sSQL.AppendLine("\r\n and (XLXSBJD_TXY = :pTXY) "); Param.Add("pTXY", CurNameQuery.FieldByName("TXY").Value.Trim()); } if (!CurNameQuery.FieldByName("KH").Value.Trim().Equals("")) { sSQL.AppendLine("\r\n and (XLXSBJD_KH like :pKH) "); Param.Add("pKH", "%" + CurNameQuery.FieldByName("KH").Value.Trim() + "%"); } if (!CurNameQuery.FieldByName("XM").Value.Trim().Equals("")) { sSQL.AppendLine("\r\n and (XLXSBJD_XMMC like :pXM) "); Param.Add("pXM", "%" + CurNameQuery.FieldByName("XM").Value.Trim() + "%"); } if (!CurNameQuery.FieldByName("BJDID").Value.Trim().Equals("")) { sSQL.AppendLine("\r\n and XLXSBJD_BJDID like :pBJDID "); Param.Add("pBJDID", "%" + CurNameQuery.FieldByName("BJDID").Value.Trim() + "%"); } if (!CurNameQuery.FieldByName("SQR").Value.Trim().Equals("")) { sSQL.AppendLine("\r\n and (isnull(XLXSBJD_SQR,' ') like :pSQRXM or isnull(XLXSBJD_SQRGH,' ') like :pSQRGH) "); string sSQRKey = "%" + CurNameQuery.FieldByName("SQR").Value.Trim() + "%"; Param.Add("pSQRXM", sSQRKey); Param.Add("pSQRGH", sSQRKey); } if (!CurNameQuery.FieldByName("BJFLID").Value.Trim().Equals("")) { sSQL.AppendLine("\r\n and XLXSBJD_BJFLID = :pBJFLID "); Param.Add("pBJFLID", CurNameQuery.FieldByName("BJFLID").Value.Trim()); } sSQL.AppendLine(CMISproDataBase.GetTimeConditionSQL("XLXSBJD_BJRQ", CurNameQuery.FieldByName("BJRQS").Value.ToString().Trim(), CurNameQuery.FieldByName("BJRQZ").Value.ToString().Trim(), DateTimeType.dtDate, DateTimeType.dtDate)); string sBJU012 = GetOption("BJU012"); if (!sBJU012.Equals("")) { sSQL.AppendLine("\r\n and ( " + CMISproDataBase.GetWhereEqual("XLXSBJD_BJFLID", sBJU012)); sSQL.AppendLine(" or isnull(XLXSBJD_BJFLID, ' ') = ' ')"); } string sKZZXU003 = GetOption("KZZXU003"); if (!sKZZXU003.Equals("")) { sSQL.AppendLine("\r\n and ( " + CMISproDataBase.GetWhereEqual("XLXSBJD_SYDWID", sKZZXU003)); sSQL.AppendLine(" or isnull(XLXSBJD_SYDWID, ' ') = ' ')"); } string sHJU006 = GetOption("HJU006"); if (!sHJU006.Equals("")) { sSQL.AppendLine("\r\n and ( " + CMISproDataBase.GetWhereEqual("XLXSBJD_XSBMID", sHJU006)); sSQL.AppendLine(" or isnull(XLXSBJD_XSBMID, ' ') = ' ')"); } } string sOrders = ""; if (CurNameQuery.FieldByName("PXFS").Value.Trim().Equals("报价单号")) { sOrders += " order by XLXSBJD_BJDID "; } else { sOrders += " order by isnull(WFLOG_MAX_AEND, convert(datetime,'1900-01-01 00:00:00')) DESC, XLXSBJD_BJDID "; } QueryFunctionSQL.Add(sSQL.ToString()); QueryFunctionSQL.Add(sOrders); if (maxRecords > 1) { QueryCountSQL.Add(" from XLXSBJD "); QueryCountSQL.Add(" left join XLXSBJFL on XLXSBJFL_BJFLID = XLXSBJD_BJFLID"); QueryCountSQL.Add(" left join XSY on XSY_TXY = XLXSBJD_TXY"); QueryCountSQL.Add(" left join BM A on A.BM_BMID = XSY_BMID"); QueryCountSQL.Add(" left join BM B on B.BM_BMID = XLXSBJD_XSBMID"); QueryCountSQL.Add(" left join GS on GS_SYDWID = XLXSBJD_SYDWID"); QueryCountSQL.Add(" where 1=1 and isnull(XLXSBJD_YWLX,' ') = ' ' "); QueryCountSQL.Add(sCondition); QueryCountSQL.Add(sSQL.ToString()); } aField = new string[] { "XLXSBJD_BJDID","XLXSBJD_BJFLID","XLXSBJD_JGBID","XLXSBJD_CLHQJGBID","XLXSBJD_BJRQ","XLXSBJD_SYDWID","XLXSBJD_XSBMID","XLXSBJD_KH", "XLXSBJD_XMMC","XLXSBJD_XXDZ","XLXSBJD_SQR","XLXSBJD_FKSM","XLXSBJD_BZ","XLXSBJD_CZJSXY","XLXSBJD_TXY","BJFL","XSDWMC","BJGSBMMC","XSYZJM","XSYGSBM","XSYLXFS","BJMXSL","KHLY","XMLY","", "YLDZ","XLXSBJYLZD_SQSJ","XLXSBJYLZD_WCSJ","YLZDLC","XLXSBJD_XZQHID","SFID","SFMC","CSID","CSMC","QYXZQY","XZQYBH","XLXSBJD_LBXSFJXX", "XLXSBJD_BJZJE","XLXSBJD_ZDXJZJE","XLXSBJD_ZDXJJCL","XLXSBJD_CPJJJE","XLXSBJD_BJJCL","XLXSBJD_FKQXNR","QYBJDJC","QYXSHT","FJSCLX","XLXSBJD_JZBJHS","XSTLJ","TJ","LJ","TZL","LZL","MRDYYS", "DOCGRPID","FJS","WHRID","WHR","WHSJ","WFID","WFINST","WPID","WFAWAITER","WFHANDLER","ACTNAME","ExistFJXX", "BJBM","XSZJE","XSZDXJ","XSZDXJJCL","JGBBJBM","XSJGBBJ","XSBJJCL","XSDCPDF", "KZZF01","KZZF02","KZZF03","KZZF04","KZZF05","KZZF06","KZZF07","KZZF08","KZZF09","KZZF10", "KZSZ01","KZSZ02","KZSZ03","KZSZ04","KZSZ05","KZRQ01","KZRQ02","KZRQ03","KZRQ04","KZRQ05", "KZWB01","KZWB02","KZWB03","KZWB04","KZWB05"}; } protected override void PreInsertSQL() { base.PreInsertSQL(); string InsertSql = "INSERT INTO XLXSBJD(XLXSBJD_BJDID,XLXSBJD_BJFLID, XLXSBJD_JGBID,XLXSBJD_CLHQJGBID, XLXSBJD_BJRQ,XLXSBJD_SYDWID,XLXSBJD_XSBMID,XLXSBJD_KH,XLXSBJD_XMMC,XLXSBJD_XXDZ,XLXSBJD_FKSM,XLXSBJD_BZ,XLXSBJD_CZJSXY,XLXSBJD_TXY,XLXSBJD_XZQHID, \r\n" + " XLXSBJD_WHRID, XLXSBJD_WHR, XLXSBJD_WHSJ, XLXSBJD_DOCGRPID, XLXSBJD_FJS) \r\n" + "VALUES(:XLXSBJD_BJDID,:XLXSBJD_BJFLID, :XLXSBJD_JGBID,:XLXSBJD_CLHQJGBID, :XLXSBJD_BJRQ,:XLXSBJD_SYDWID,:XLXSBJD_XSBMID,:XLXSBJD_KH,:XLXSBJD_XMMC,:XLXSBJD_XXDZ,:XLXSBJD_FKSM,:XLXSBJD_BZ,:XLXSBJD_CZJSXY,:XLXSBJD_TXY,:XLXSBJD_XZQHID, \r\n" + " :WHRID, :WHR, :WHSJ, :DOCGRPID, :FJS) \r\n"; InsertSQL.Add(InsertSql); } protected override void PreUpdateSQL() { base.PreUpdateSQL(); string UpdateSql = ""; UpdateSql = "UPDATE XLXSBJD " + "SET XLXSBJD_BJDID=:XLXSBJD_BJDID,XLXSBJD_BJFLID=:XLXSBJD_BJFLID, XLXSBJD_JGBID=:XLXSBJD_JGBID,XLXSBJD_CLHQJGBID=:XLXSBJD_CLHQJGBID, XLXSBJD_BJRQ=:XLXSBJD_BJRQ,XLXSBJD_XZQHID=:XLXSBJD_XZQHID, \r\n" + " XLXSBJD_SYDWID=:XLXSBJD_SYDWID,XLXSBJD_XSBMID=:XLXSBJD_XSBMID,XLXSBJD_KH=:XLXSBJD_KH,XLXSBJD_XMMC=:XLXSBJD_XMMC,XLXSBJD_XXDZ=:XLXSBJD_XXDZ,XLXSBJD_FKSM=:XLXSBJD_FKSM, \r\n" + " XLXSBJD_BZ=:XLXSBJD_BZ,XLXSBJD_CZJSXY=:XLXSBJD_CZJSXY,XLXSBJD_TXY=:XLXSBJD_TXY, \r\n" + " XLXSBJD_WHRID=:WHRID, XLXSBJD_WHR=:WHR, XLXSBJD_WHSJ=:WHSJ, XLXSBJD_DOCGRPID=:DOCGRPID, XLXSBJD_FJS=:FJS \r\n" + "WHERE XLXSBJD_BJDID = :XLXSBJD_BJDID \r\n"; UpdateSQL.Add(UpdateSql); } protected override bool BeforeSaveAction() { CurMO.WHR = tSession.UserName; CurMO.WHRID = tSession.UserId; CurMO.WHSJ = DateTime.Now.ToString(); //项目所在地---如果只维护了省、没有选择市,则XLXSBJD_XZQHID应记录下省的区划代码 if (!(CurMO as XSYBJSPModel).CSID.Trim().Equals("")) (CurMO as XSYBJSPModel).XLXSBJD_XZQHID = (CurMO as XSYBJSPModel).CSID; else if (!(CurMO as XSYBJSPModel).SFID.Trim().Equals("")) (CurMO as XSYBJSPModel).XLXSBJD_XZQHID = (CurMO as XSYBJSPModel).SFID; else (CurMO as XSYBJSPModel).XLXSBJD_XZQHID = ""; if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy) { TLogicContext lgc = TLogicContext.Current; _curWorkFlow.UMID = lgc.RefUmId; CurMO.WFID = _curWorkFlow.GetWFID("XLXSBJ_BJD"); string sXZQHID = string.Empty; string sBJFLID = string.Empty; string sSYDWID = string.Empty; if ((CurMO as XSYBJSPModel).XZQYBH.Equals("Y")) { sXZQHID = (CurMO as XSYBJSPModel).XLXSBJD_XZQHID; } if (getBJFLBMYS().Equals("Y")) { sBJFLID = (CurMO as XSYBJSPModel).XLXSBJD_BJFLID; } sSYDWID = (CurMO as XSYBJSPModel).XLXSBJD_SYDWID; string sError = string.Empty; string sBJDID = string.Empty; XLBJDUtils.GetBJDID(sXZQHID, sBJFLID, sSYDWID, 100860061, ref sBJDID, ref sError); if (!string.IsNullOrEmpty(sError)) { StateMessage.Message = sError; return false; } (CurMO as XSYBJSPModel).XLXSBJD_BJDID = sBJDID; } if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJFLBJRHQCL_BJCLID from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID='{0}'", (CurMO as XSYBJSPModel).XLXSBJD_BJFLID))) { (CurMO as XSYBJSPModel).XLXSBJD_CLHQJGBID = "ZZZZZZZZ"; } else { (CurMO as XSYBJSPModel).XLXSBJD_CLHQJGBID = (CurMO as XSYBJSPModel).XLXSBJD_JGBID; } return base.BeforeSaveAction(); } protected override bool AfterSaveAction() { XSYBJSPModel MO = CurMO as XSYBJSPModel; string sBJDID = MO.XLXSBJD_BJDID; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select 1 from XLXSBJD where XLXSBJD_BJDID =:pBJDID and isnull(XLXSBJD_SQRID,' ') = ' ' "); SQL.ParamByName("pBJDID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { SQL.Clear(); SQL.Add("update XLXSBJD set XLXSBJD_SQR =:XLXSBJD_SQR,XLXSBJD_SQRID=:XLXSBJD_SQRID,XLXSBJD_SQRGH=:XLXSBJD_SQRGH,XLXSBJD_SQRQ=:XLXSBJD_SQRQ where XLXSBJD_BJDID =:pBJDID"); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("XLXSBJD_SQR").Value = tSession.UserName; SQL.ParamByName("XLXSBJD_SQRID").Value = tSession.RYID; SQL.ParamByName("XLXSBJD_SQRGH").Value = tSession.UserId; SQL.ParamByName("XLXSBJD_SQRQ").Value = DateTime.Now.ToString().Trim(); dberp.ExecSQL(SQL); } if (MO.ExistFJXX.Equals("Y")) { SQL.Clear(); SQL.Add("select 1 from XLXSBJKZXX where XLXSBJKZXX_BJDID = :pBJDID "); SQL.ParamByName("pBJDID").Value = sBJDID; DataSet dsKZXX = dberp.OpenDataSet(SQL); if (dsKZXX.Tables[0].Rows.Count > 0) { dsFJXXSZ = LoadFJXXSZ(); string sWPID = MO.WPID; if (dsFJXXSZ.Tables[0].Rows.Count > 0) { SQL.Clear(); SQL.Add(" update XLXSBJKZXX set XLXSBJKZXX_WHRID = :pWHRID, XLXSBJKZXX_WHR = :pWHR, XLXSBJKZXX_WHSJ = :pWHSJ "); for (int i = 0; i < dsFJXXSZ.Tables[0].Rows.Count; i++) { string sXSBZ = dsFJXXSZ.Tables[0].Rows[i]["XSBZ"].ToString().Trim(); string sXSBZC = "," + sXSBZ + ","; if (!sXSBZ.Equals("") && !sXSBZC.Contains("," + sWPID + ",")) continue; string sDYZD = dsFJXXSZ.Tables[0].Rows[i]["DYZD"].ToString().Trim(); if (sDYZD.Equals("KZSZ01")) { SQL.Add(" ,XLXSBJKZXX_KZSZ01 = :XLXSBJKZXX_KZSZ01 "); SQL.ParamByName("XLXSBJKZXX_KZSZ01").Value = MO.KZSZ01; } if (sDYZD.Equals("KZSZ02")) { SQL.Add(" ,XLXSBJKZXX_KZSZ02 = :XLXSBJKZXX_KZSZ02 "); SQL.ParamByName("XLXSBJKZXX_KZSZ02").Value = MO.KZSZ02; } if (sDYZD.Equals("KZSZ03")) { SQL.Add(" ,XLXSBJKZXX_KZSZ03 = :XLXSBJKZXX_KZSZ03 "); SQL.ParamByName("XLXSBJKZXX_KZSZ03").Value = MO.KZSZ03; } if (sDYZD.Equals("KZSZ04")) { SQL.Add(" ,XLXSBJKZXX_KZSZ04 = :XLXSBJKZXX_KZSZ04 "); SQL.ParamByName("XLXSBJKZXX_KZSZ04").Value = MO.KZSZ04; } if (sDYZD.Equals("KZSZ05")) { SQL.Add(" ,XLXSBJKZXX_KZSZ05 = :XLXSBJKZXX_KZSZ05 "); SQL.ParamByName("XLXSBJKZXX_KZSZ05").Value = MO.KZSZ05; } if (sDYZD.Equals("KZRQ01")) { SQL.Add(" ,XLXSBJKZXX_KZRQ01 = :XLXSBJKZXX_KZRQ01 "); if (string.IsNullOrEmpty(MO.KZRQ01)) SQL.ParamByName("XLXSBJKZXX_KZRQ01").Value = null; else SQL.ParamByName("XLXSBJKZXX_KZRQ01").Value = MO.KZRQ01; } if (sDYZD.Equals("KZRQ02")) { SQL.Add(" ,XLXSBJKZXX_KZRQ02 = :XLXSBJKZXX_KZRQ02 "); if (string.IsNullOrEmpty(MO.KZRQ02)) SQL.ParamByName("XLXSBJKZXX_KZRQ02").Value = null; else SQL.ParamByName("XLXSBJKZXX_KZRQ02").Value = MO.KZRQ02; } if (sDYZD.Equals("KZRQ03")) { SQL.Add(" ,XLXSBJKZXX_KZRQ03 = :XLXSBJKZXX_KZRQ03 "); if (string.IsNullOrEmpty(MO.KZRQ03)) SQL.ParamByName("XLXSBJKZXX_KZRQ03").Value = null; else SQL.ParamByName("XLXSBJKZXX_KZRQ03").Value = MO.KZRQ03; } if (sDYZD.Equals("KZRQ04")) { SQL.Add(" ,XLXSBJKZXX_KZRQ04 = :XLXSBJKZXX_KZRQ04 "); if (string.IsNullOrEmpty(MO.KZRQ04)) SQL.ParamByName("XLXSBJKZXX_KZRQ04").Value = null; else SQL.ParamByName("XLXSBJKZXX_KZRQ04").Value = MO.KZRQ04; } if (sDYZD.Equals("KZRQ05")) { SQL.Add(" ,XLXSBJKZXX_KZRQ05 = :XLXSBJKZXX_KZRQ05 "); if (string.IsNullOrEmpty(MO.KZRQ05)) SQL.ParamByName("XLXSBJKZXX_KZRQ05").Value = null; else SQL.ParamByName("XLXSBJKZXX_KZRQ05").Value = MO.KZRQ05; } if (sDYZD.Equals("KZZF01")) { SQL.Add(" ,XLXSBJKZXX_KZZF01 = :XLXSBJKZXX_KZZF01 "); SQL.ParamByName("XLXSBJKZXX_KZZF01").Value = MO.KZZF01; } if (sDYZD.Equals("KZZF02")) { SQL.Add(" ,XLXSBJKZXX_KZZF02 = :XLXSBJKZXX_KZZF02 "); SQL.ParamByName("XLXSBJKZXX_KZZF02").Value = MO.KZZF02; } if (sDYZD.Equals("KZZF03")) { SQL.Add(" ,XLXSBJKZXX_KZZF03 = :XLXSBJKZXX_KZZF03 "); SQL.ParamByName("XLXSBJKZXX_KZZF03").Value = MO.KZZF03; } if (sDYZD.Equals("KZZF04")) { SQL.Add(" ,XLXSBJKZXX_KZZF04 = :XLXSBJKZXX_KZZF04 "); SQL.ParamByName("XLXSBJKZXX_KZZF04").Value = MO.KZZF04; } if (sDYZD.Equals("KZZF05")) { SQL.Add(" ,XLXSBJKZXX_KZZF05 = :XLXSBJKZXX_KZZF05 "); SQL.ParamByName("XLXSBJKZXX_KZZF05").Value = MO.KZZF05; } if (sDYZD.Equals("KZZF06")) { SQL.Add(" ,XLXSBJKZXX_KZZF06 = :XLXSBJKZXX_KZZF06 "); SQL.ParamByName("XLXSBJKZXX_KZZF06").Value = MO.KZZF06; } if (sDYZD.Equals("KZZF07")) { SQL.Add(" ,XLXSBJKZXX_KZZF07 = :XLXSBJKZXX_KZZF07 "); SQL.ParamByName("XLXSBJKZXX_KZZF07").Value = MO.KZZF07; } if (sDYZD.Equals("KZZF08")) { SQL.Add(" ,XLXSBJKZXX_KZZF08 = :XLXSBJKZXX_KZZF08 "); SQL.ParamByName("XLXSBJKZXX_KZZF08").Value = MO.KZZF08; } if (sDYZD.Equals("KZZF09")) { SQL.Add(" ,XLXSBJKZXX_KZZF09 = :XLXSBJKZXX_KZZF09 "); SQL.ParamByName("XLXSBJKZXX_KZZF09").Value = MO.KZZF09; } if (sDYZD.Equals("KZZF10")) { SQL.Add(" ,XLXSBJKZXX_KZZF10 = :XLXSBJKZXX_KZZF10 "); SQL.ParamByName("XLXSBJKZXX_KZZF10").Value = MO.KZZF10; } if (sDYZD.Equals("KZWB01")) { SQL.Add(" ,XLXSBJKZXX_KZWB01 = :XLXSBJKZXX_KZWB01 "); SQL.ParamByName("XLXSBJKZXX_KZWB01").Value = MO.KZWB01; } if (sDYZD.Equals("KZWB02")) { SQL.Add(" ,XLXSBJKZXX_KZWB02 = :XLXSBJKZXX_KZWB02 "); SQL.ParamByName("XLXSBJKZXX_KZWB02").Value = MO.KZWB02; } if (sDYZD.Equals("KZWB03")) { SQL.Add(" ,XLXSBJKZXX_KZWB03 = :XLXSBJKZXX_KZWB03 "); SQL.ParamByName("XLXSBJKZXX_KZWB03").Value = MO.KZWB03; } if (sDYZD.Equals("KZWB04")) { SQL.Add(" ,XLXSBJKZXX_KZWB04 = :XLXSBJKZXX_KZWB04 "); SQL.ParamByName("XLXSBJKZXX_KZWB04").Value = MO.KZWB04; } if (sDYZD.Equals("KZWB05")) { SQL.Add(" ,XLXSBJKZXX_KZWB05 = :XLXSBJKZXX_KZWB05 "); SQL.ParamByName("XLXSBJKZXX_KZWB05").Value = MO.KZWB05; } } SQL.Add(" where XLXSBJKZXX_BJDID = :pBJDID "); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pWHRID").Value = tSession.UserId; ; SQL.ParamByName("pWHR").Value = tSession.UserName; SQL.ParamByName("pWHSJ").Value = CMISproConvert.ConvertTime(DateTime.Now); ; dberp.ExecSQL(SQL); } } else { SQL.Clear(); SQL.Add("insert into XLXSBJKZXX"); SQL.Add("(XLXSBJKZXX_BJDID,"); SQL.Add(" XLXSBJKZXX_KZSZ01, XLXSBJKZXX_KZSZ02, XLXSBJKZXX_KZSZ03, XLXSBJKZXX_KZSZ04, XLXSBJKZXX_KZSZ05,"); if (!string.IsNullOrEmpty(MO.KZRQ01)) SQL.Add(" XLXSBJKZXX_KZRQ01,"); if (!string.IsNullOrEmpty(MO.KZRQ02)) SQL.Add(" XLXSBJKZXX_KZRQ02,"); if (!string.IsNullOrEmpty(MO.KZRQ03)) SQL.Add(" XLXSBJKZXX_KZRQ03,"); if (!string.IsNullOrEmpty(MO.KZRQ04)) SQL.Add(" XLXSBJKZXX_KZRQ04,"); if (!string.IsNullOrEmpty(MO.KZRQ05)) SQL.Add(" XLXSBJKZXX_KZRQ05,"); SQL.Add(" XLXSBJKZXX_KZZF01, XLXSBJKZXX_KZZF02, XLXSBJKZXX_KZZF03, XLXSBJKZXX_KZZF04, XLXSBJKZXX_KZZF05,"); SQL.Add(" XLXSBJKZXX_KZZF06, XLXSBJKZXX_KZZF07, XLXSBJKZXX_KZZF08, XLXSBJKZXX_KZZF09, XLXSBJKZXX_KZZF10,"); SQL.Add(" XLXSBJKZXX_KZWB01, XLXSBJKZXX_KZWB02, XLXSBJKZXX_KZWB03, XLXSBJKZXX_KZWB04, XLXSBJKZXX_KZWB05,"); SQL.Add(" XLXSBJKZXX_WHRID, XLXSBJKZXX_WHR, XLXSBJKZXX_WHSJ)"); SQL.Add("values"); SQL.Add("(:XLXSBJKZXX_BJDID,"); SQL.Add(" :XLXSBJKZXX_KZSZ01, :XLXSBJKZXX_KZSZ02, :XLXSBJKZXX_KZSZ03, :XLXSBJKZXX_KZSZ04, :XLXSBJKZXX_KZSZ05,"); if (!string.IsNullOrEmpty(MO.KZRQ01)) { SQL.Add(" :XLXSBJKZXX_KZRQ01,"); SQL.ParamByName("XLXSBJKZXX_KZRQ01").Value = MO.KZRQ01; } if (!string.IsNullOrEmpty(MO.KZRQ02)) { SQL.Add(" :XLXSBJKZXX_KZRQ02,"); SQL.ParamByName("XLXSBJKZXX_KZRQ02").Value = MO.KZRQ02; } if (!string.IsNullOrEmpty(MO.KZRQ03)) { SQL.Add(" :XLXSBJKZXX_KZRQ03,"); SQL.ParamByName("XLXSBJKZXX_KZRQ03").Value = MO.KZRQ03; } if (!string.IsNullOrEmpty(MO.KZRQ04)) { SQL.Add(" :XLXSBJKZXX_KZRQ04,"); SQL.ParamByName("XLXSBJKZXX_KZRQ04").Value = MO.KZRQ04; } if (!string.IsNullOrEmpty(MO.KZRQ05)) { SQL.Add(" :XLXSBJKZXX_KZRQ05,"); SQL.ParamByName("XLXSBJKZXX_KZRQ05").Value = MO.KZRQ05; } SQL.Add(" :XLXSBJKZXX_KZZF01, :XLXSBJKZXX_KZZF02, :XLXSBJKZXX_KZZF03, :XLXSBJKZXX_KZZF04, :XLXSBJKZXX_KZZF05,"); SQL.Add(" :XLXSBJKZXX_KZZF06, :XLXSBJKZXX_KZZF07, :XLXSBJKZXX_KZZF08, :XLXSBJKZXX_KZZF09, :XLXSBJKZXX_KZZF10,"); SQL.Add(" :XLXSBJKZXX_KZWB01, :XLXSBJKZXX_KZWB02, :XLXSBJKZXX_KZWB03, :XLXSBJKZXX_KZWB04, :XLXSBJKZXX_KZWB05,"); SQL.Add(" :XLXSBJKZXX_WHRID, :XLXSBJKZXX_WHR, :XLXSBJKZXX_WHSJ)"); SQL.ParamByName("XLXSBJKZXX_KZSZ01").Value = MO.KZSZ01; SQL.ParamByName("XLXSBJKZXX_KZSZ02").Value = MO.KZSZ02; SQL.ParamByName("XLXSBJKZXX_KZSZ03").Value = MO.KZSZ03; SQL.ParamByName("XLXSBJKZXX_KZSZ04").Value = MO.KZSZ04; SQL.ParamByName("XLXSBJKZXX_KZSZ05").Value = MO.KZSZ05; SQL.ParamByName("XLXSBJKZXX_KZZF01").Value = MO.KZZF01; SQL.ParamByName("XLXSBJKZXX_KZZF02").Value = MO.KZZF02; SQL.ParamByName("XLXSBJKZXX_KZZF03").Value = MO.KZZF03; SQL.ParamByName("XLXSBJKZXX_KZZF04").Value = MO.KZZF04; SQL.ParamByName("XLXSBJKZXX_KZZF05").Value = MO.KZZF05; SQL.ParamByName("XLXSBJKZXX_KZZF06").Value = MO.KZZF06; SQL.ParamByName("XLXSBJKZXX_KZZF07").Value = MO.KZZF07; SQL.ParamByName("XLXSBJKZXX_KZZF08").Value = MO.KZZF08; SQL.ParamByName("XLXSBJKZXX_KZZF09").Value = MO.KZZF09; SQL.ParamByName("XLXSBJKZXX_KZZF10").Value = MO.KZZF10; SQL.ParamByName("XLXSBJKZXX_KZWB01").Value = MO.KZWB01; SQL.ParamByName("XLXSBJKZXX_KZWB02").Value = MO.KZWB02; SQL.ParamByName("XLXSBJKZXX_KZWB03").Value = MO.KZWB03; SQL.ParamByName("XLXSBJKZXX_KZWB04").Value = MO.KZWB04; SQL.ParamByName("XLXSBJKZXX_KZWB05").Value = MO.KZWB05; SQL.ParamByName("XLXSBJKZXX_BJDID").Value = sBJDID; SQL.ParamByName("XLXSBJKZXX_WHRID").Value = tSession.UserId; SQL.ParamByName("XLXSBJKZXX_WHR").Value = tSession.UserName; SQL.ParamByName("XLXSBJKZXX_WHSJ").Value = CMISproConvert.ConvertTime(DateTime.Now); dberp.ExecSQL(SQL); } } XLXSBJFJXX.UpdateLBXSFJXX(sBJDID); if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(MO.XLXSBJD_BJFLID); if (XLBJDUtils.IsJGEJGB(MO.XLXSBJD_JGBID)) { XLBJDUtils.InsertXLXSBJDCLHQ_WLHQ(dberp, SQL, bjflxx.XLXSBJFL_BJDHQLY, sBJDID, MO.XLXSBJD_BJRQ, MO.XLXSBJD_JZBJHS.Equals("Y"), bjflxx.XLXSBJFL_TBJCLID, bjflxx.XLXSBJFL_LBJCLID, CMISproConvert.StrToFloat(MO.TJ), CMISproConvert.StrToFloat(MO.LJ), tSession.UserName, tSession.UserId, MO.XLXSBJD_JGBID); } else { //JGB价格表判断是否勾选记录报价单行情 if (bjflxx.JLBJDHQChecked()) { XLBJDUtils.InsertXLXSBJDCLHQ_WLHQ_WithJGBHQ(dberp, SQL, bjflxx.XLXSBJFL_BJDHQLY, sBJDID, MO.XLXSBJD_BJRQ, tSession.UserName, tSession.UserId, MO.XLXSBJD_JGBID); XLBJDUtils.UpdateBJDHQByTLJ(dberp, SQL, sBJDID, bjflxx.XLXSBJFL_TBJCLID, bjflxx.XLXSBJFL_LBJCLID, CMISproConvert.StrToFloat(MO.TJ), CMISproConvert.StrToFloat(MO.LJ), MO.XLXSBJD_JZBJHS.Equals("Y"), tSession.UserId, tSession.UserName); } } } return base.AfterSaveAction(); } protected override void PreDeleteSQL() { base.PreDeleteSQL(); DeleteSQL.Add("delete from XLXSBJD where XLXSBJD_BJDID = :XLXSBJD_BJDID "); } protected override void AfterDelete(TDatabase db, ref bool ActionIsDone) { base.AfterDelete(db, ref ActionIsDone); string sBJDID = (CurMO as XSYBJSPModel).XLXSBJD_BJDID; TSQL tSQL = new TSQL(db); XLBJDUtils.AfterDeleteBJD(db, tSQL, sBJDID); } protected override bool BeforeDeleteAction() { string sBJDID = (CurMO as XSYBJSPModel).XLXSBJD_BJDID; string sSQL = string.Format("select top 1 XLXSBJYLZD_BJDID from XLXSBJYLZD where XLXSBJYLZD_BJDID='{0}'", sBJDID); if (CMISproDataBase.ExistsRecord("DBERP", sSQL)) { StateMessage.Message = "已申请材料用量制定,不允许删除!"; return false; } sSQL = string.Format("select 1 from BJD where BJD_BJDID='{0}'", sBJDID); if (CMISproDataBase.ExistsRecord("DBERP", sSQL)) { StateMessage.Message = "报价单已反馈,不允许删除!"; return false; } XLBJDUtils.UpdateTJBZ(sBJDID, "Delete"); return base.BeforeDeleteAction(); } protected override bool DataLogicValid() { XSYBJSPModel MO = CurMO as XSYBJSPModel; if (MO.XLXSBJD_BJFLID.Trim().Equals("")) { StateMessage.Message = "报价分类不允许为空!"; return false; } if (MO.XLXSBJD_BJRQ.Trim().Equals("")) { StateMessage.Message = "报价日期不允许为空!"; return false; } //if (MO.XLXSBJD_SYDWID.Trim().Equals("")) //{ // StateMessage.Message = "销售单位不允许为空!"; // return false; //} if (MO.XLXSBJD_XSBMID.Trim().Equals("")) { StateMessage.Message = "销售部门不允许为空!"; return false; } //if (MO.XLXSBJD_TXY.Trim().Equals("")) //{ // StateMessage.Message = "销售员不允许为空!"; // return false; //} XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860061); if (pzxx.XLXSBJPZ_KHBT == "Y") { if (MO.XLXSBJD_KH.Trim().Equals("")) { StateMessage.Message = "客户不允许为空!"; return false; } } if (pzxx.XLXSBJPZ_XMBT == "Y") { if (MO.XLXSBJD_XMMC.Trim().Equals("")) { StateMessage.Message = "项目不允许为空!"; return false; } } if (!MO.XLXSBJD_KH.Trim().Equals("") && pzxx.XLXSBJPZ_XZKHYQ == "Q") { if (pzxx.XLXSBJPZ_KHJSLY == "KH") { if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from KH where KH_MC='{0}' and ISNULL(KH_TYBZ,'N') <> 'Y' ", MO.XLXSBJD_KH.Trim()))) { StateMessage.Message = "客户不存在或已停用!"; return false; } } else if (pzxx.XLXSBJPZ_KHJSLY == "KHXX") { if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from KHXX where KHXX_MC = '{0}' ", MO.XLXSBJD_KH.Trim()))) { StateMessage.Message = "客户不存在!"; return false; } } } if (!MO.XLXSBJD_XMMC.Trim().Equals("") && pzxx.XLXSBJPZ_XZXMYQ == "Q") { if (pzxx.XLXSBJPZ_XMJSLY == "YXXM") { if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from YXXM where YXXM_MC='{0}' ", MO.XLXSBJD_XMMC.Trim()))) { StateMessage.Message = "项目不存在!"; return false; } if (!MO.XLXSBJD_KH.Trim().Equals("") && pzxx.XLXSBJPZ_KHJSLY == "KHXX") { if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from YXXM left join KHXX on KHXX_CRMKHID = YXXM_CRMKHID where YXXM_MC = '{0}' and KHXX_MC ='{1}' ", MO.XLXSBJD_XMMC.Trim(), MO.XLXSBJD_KH.Trim()))) { StateMessage.Message = "项目不属于当前客户!"; return false; } } } } TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); string sWPID = MO.WPID.Equals("") ? "0010" : MO.WPID; string sBJFLID = MO.XLXSBJD_BJFLID.Trim(); SQL.Clear(); SQL.Add("select XLXSBJKZXXSZ_MC, XLXSBJKZXXSZ_SJLX, XLXSBJKZXXSZ_DYZD,XLXSBJKZXXSZ_XSBZ as XSBZ,XLXSBJKZXXSZ_WHBZ as WHBZ,XLXSBJKZXXSZ_SYBJFLID "); SQL.Add("from XLXSBJKZXXSZ "); SQL.Add("where isnull(XLXSBJKZXXSZ_BT,'N') = 'Y' "); SQL.Add("order by XLXSBJKZXXSZ_BJSX, XLXSBJKZXXSZ_BH "); SQL.ParamByName("pBJDID").Value = MO.XLXSBJD_BJDID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { string sSZJYXX = ""; Dictionary dicBTXX = new Dictionary(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sXSBZ = ds.Tables[0].Rows[i]["XSBZ"].ToString().Trim(); string sXSBZC = "," + sXSBZ + ","; if (!sXSBZ.Equals("") && !sXSBZC.Contains("," + sWPID + ",")) continue; string sSYBJFLID = ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SYBJFLID"].ToString().Trim(); string sSYBJFLIDC = "," + sSYBJFLID + ","; if (!sSYBJFLID.Equals("") && !sSYBJFLIDC.Contains("," + sBJFLID + ",")) continue; string sWHBZ = ds.Tables[0].Rows[i]["WHBZ"].ToString().Trim(); string sWHBZC = "," + sWHBZ + ","; if (!sWHBZ.Equals("") && !sWHBZC.Contains("," + sWPID + ",")) continue; string sDYZD = ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_DYZD"].ToString().Trim(); if (!dicBTXX.ContainsKey(sDYZD)) dicBTXX.Add(sDYZD, i); } Type T = MO.GetType(); PropertyInfo[] PropertyList = T.GetProperties(); foreach (PropertyInfo item in PropertyList) { string sName = item.Name; if (dicBTXX.ContainsKey(sName)) { string sSJLX = ds.Tables[0].Rows[dicBTXX[sName]]["XLXSBJKZXXSZ_SJLX"].ToString().Trim(); if (sSJLX.Equals("A")) { double dValue = (double)item.GetValue(MO, null); if (dValue == 0) { if (!sSZJYXX.Equals("")) sSZJYXX += "、"; sSZJYXX += ds.Tables[0].Rows[dicBTXX[sName]]["XLXSBJKZXXSZ_MC"].ToString().Trim(); } } else { string sValue = (string)item.GetValue(MO, null); if (sValue.Equals("")) { string ssMC = ds.Tables[0].Rows[dicBTXX[sName]]["XLXSBJKZXXSZ_MC"].ToString().Trim(); StateMessage.Message = ssMC + "不允许为空!"; return false; } } } } if (!sSZJYXX.Equals("")) StateMessage.Message = sSZJYXX + "存入0值!"; } return true; } public XSYBJSPModel OnNewRecorder() { XSYBJSPModel newXSYBJSP = new XSYBJSPModel(); string sKHLY = ""; string sXMLY = ""; string sQYXZQY = ""; string sXZQYBH = ""; string sBJFLTZM = ""; string sQYBJDJC = ""; string sFJSCLX = ""; string sBJU012 = GetOption("BJU012"); string sKZZXU003 = GetOption("KZZXU003"); string sHJU006 = GetOption("HJU006"); if (DSActiveModule.IsActiveModule(100956005)) sQYXZQY = "Y"; else sQYXZQY = "N"; if (CheckModule("100860008")) sQYBJDJC = "Y"; else sQYBJDJC = "N"; SetKHXMLY(ref sKHLY, ref sXMLY, ref sXZQYBH, ref sBJFLTZM, ref sFJSCLX); newXSYBJSP.KHLY = sKHLY; newXSYBJSP.XMLY = sXMLY; newXSYBJSP.QYXZQY = sQYXZQY; newXSYBJSP.XZQYBH = sXZQYBH; newXSYBJSP.QYBJDJC = sQYBJDJC; newXSYBJSP.FJSCLX = sFJSCLX; newXSYBJSP.MRDYYS = GetMRDYYS(); newXSYBJSP.XLXSBJD_LBXSFJXX = ""; newXSYBJSP.QYXSHT = "N"; newXSYBJSP.XLXSBJD_BJRQ = DateTime.Now.ToShortDateString().Trim(); newXSYBJSP.XLXSBJD_JZBJHS = "Y"; List rEntity = GetBJFLList(); if (rEntity.Count > 0) { newXSYBJSP.XLXSBJD_BJFLID = rEntity[0].CodeID; newXSYBJSP.BJFL = rEntity[0].CodeMC; string sXSTLJ = ""; BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(newXSYBJSP.XLXSBJD_BJFLID); string sIsXJY = "N"; string sIsSJY = "N"; string sIsHJY = "N"; SetRYJS(tSession.UserId, ref sIsXJY, ref sIsSJY, ref sIsHJY); string sHidJSLMList = XLBJDUtils.GetHidJSLMList(newXSYBJSP.XLXSBJD_BJFLID, sIsXJY.Equals("Y"), sIsSJY.Equals("Y"), sIsHJY.Equals("Y")); #region 按角色隐藏栏目 string sBJBM = bjflxx.XLXSBJFL_BJBM; string sXSZJE = "Y"; string sXSZDXJ = "N"; string sXSZDXJJCL = "N"; if (bjflxx.XSZDXJ()) { sXSZDXJ = "Y"; sXSZDXJJCL = "Y"; } string sJGBBJBM = bjflxx.XLXSBJFL_JGBBJBM; string sXSJGBBJ = "Y"; string sXSBJJCL = "N"; if (bjflxx.XSJCL()) sXSBJJCL = "Y"; string sXSDCPDF = "Y"; if (!sHidJSLMList.Trim().Equals("")) { string[] sHidJSLMs = sHidJSLMList.Split(','); for (int i = 0; i < sHidJSLMs.Length; i++) { string sLMID = sHidJSLMs[i].Trim(); switch (sLMID) { case "XLXSBJDMX_BJJE": sXSZJE = "N"; break; case "XLXSBJDMX_ZDXJ": if (sXSZDXJ.Equals("Y")) sXSZDXJ = "N"; break; case "XLXSBJDMX_ZDXJJCL": if (sXSZDXJJCL.Equals("Y")) sXSZDXJJCL = "N"; break; case "XLXSBJDMX_JGBBJ": if (sXSJGBBJ.Equals("Y")) sXSJGBBJ = "N"; break; case "XLXSBJDMX_JGBBJJCL": if (sXSBJJCL.Equals("Y")) sXSBJJCL = "N"; break; case "btnAPPDCPDF": if (sXSDCPDF.Equals("Y")) sXSDCPDF = "N"; break; } } } newXSYBJSP.BJBM = sBJBM; newXSYBJSP.XSZJE = sXSZJE; newXSYBJSP.XSZDXJ = sXSZDXJ; newXSYBJSP.XSZDXJJCL = sXSZDXJJCL; newXSYBJSP.JGBBJBM = sJGBBJBM; newXSYBJSP.XSJGBBJ = sXSJGBBJ; newXSYBJSP.XSBJJCL = sXSBJJCL; newXSYBJSP.XSDCPDF = sXSDCPDF; #endregion if (!bjflxx.XLXSBJFL_TBJCLID.Equals("") && !bjflxx.XLXSBJFL_LBJCLID.Equals("")) sXSTLJ = "TLJ"; else if (!bjflxx.XLXSBJFL_TBJCLID.Equals("") && bjflxx.XLXSBJFL_LBJCLID.Equals("")) sXSTLJ = "TJ"; else if (bjflxx.XLXSBJFL_TBJCLID.Equals("") && !bjflxx.XLXSBJFL_LBJCLID.Equals("")) sXSTLJ = "LJ"; if (!sXSTLJ.Equals("")) { newXSYBJSP.XSTLJ = sXSTLJ; Dictionary dicTLJG = XLBJDInfo.GetTLJByRQ(newXSYBJSP.XLXSBJD_BJRQ, newXSYBJSP.XLXSBJD_BJFLID, true); string sTJ = dicTLJG["TJ"]; string sLJ = dicTLJG["LJ"]; newXSYBJSP.TJ = CMISproConvert.StrToFloat(sTJ, 0) == 0 ? "" : strPadRight(Convert.ToString(NumberUtils.RoundX(CMISproConvert.StrToFloat(sTJ, 0), XLBJDUtils.BJCLPriceDecimal)), XLBJDUtils.BJCLPriceDecimal); newXSYBJSP.LJ = CMISproConvert.StrToFloat(sLJ, 0) == 0 ? "" : strPadRight(Convert.ToString(NumberUtils.RoundX(CMISproConvert.StrToFloat(sLJ, 0), XLBJDUtils.BJCLPriceDecimal)), XLBJDUtils.BJCLPriceDecimal); } } newXSYBJSP.XLXSBJD_JGBID = GetJGBID(newXSYBJSP.XLXSBJD_BJFLID, newXSYBJSP.XLXSBJD_BJRQ); string sXSYXX = GetXSYXX(); if (sXSYXX.Split(',').Length > 4) { newXSYBJSP.XLXSBJD_TXY = sXSYXX.Split(',')[0]; newXSYBJSP.XSYZJM = sXSYXX.Split(',')[1]; newXSYBJSP.XSYLXFS = sXSYXX.Split(',')[2]; newXSYBJSP.XSYGSBM = sXSYXX.Split(',')[3]; newXSYBJSP.XLXSBJD_SYDWID = sXSYXX.Split(',')[4]; newXSYBJSP.XSDWMC = sXSYXX.Split(',')[5]; if (!sKZZXU003.Equals("")) { if (!("," + sKZZXU003 + ",").Contains("," + newXSYBJSP.XLXSBJD_SYDWID + ",")) { newXSYBJSP.XLXSBJD_SYDWID = ""; newXSYBJSP.XSDWMC = ""; } } newXSYBJSP.XLXSBJD_XSBMID = sXSYXX.Split(',')[3].Split('|')[0]; if (sXSYXX.Split(',')[3].Split('|').Length > 1) newXSYBJSP.BJGSBMMC = sXSYXX.Split(',')[3].Split('|')[1]; if (!sHJU006.Equals("")) { if (!("," + sHJU006 + ",").Contains("," + newXSYBJSP.XLXSBJD_XSBMID + ",")) { newXSYBJSP.XLXSBJD_XSBMID = ""; newXSYBJSP.BJGSBMMC = ""; } } } dsFJXXSZ = LoadFJXXSZ(); string sExistFJXX = "N"; if (dsFJXXSZ.Tables[0].Rows.Count > 0) { string sWPID = "0010"; for (int i = 0; i < dsFJXXSZ.Tables[0].Rows.Count; i++) { bool bXSFJXX = true; string sXSBZ = dsFJXXSZ.Tables[0].Rows[i]["XSBZ"].ToString().Trim(); string sXSBZC = "," + sXSBZ + ","; if (!sXSBZ.Equals("") && !sXSBZC.Contains("," + sWPID + ",")) bXSFJXX = false; string sSYBJFL = dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_SYBJFLID"].ToString().Trim(); string sSYBJFLC = "," + sSYBJFL + ","; if (!sSYBJFL.Equals("") && !sSYBJFLC.Contains("," + newXSYBJSP.XLXSBJD_BJFLID + ",")) bXSFJXX = false; if (sExistFJXX.Equals("N") && bXSFJXX) sExistFJXX = "Y"; } } newXSYBJSP.ExistFJXX = sExistFJXX; TLogicContext lgc = TLogicContext.Current; _curWorkFlow.UMID = lgc.RefUmId; newXSYBJSP.WFID = _curWorkFlow.GetWFID("XLXSBJ_BJD"); newXSYBJSP.FJS = 0; newXSYBJSP.DOCGRPID = 0; newXSYBJSP.WHR = tSession.UserName; newXSYBJSP.WHRID = tSession.UserId; newXSYBJSP.WHSJ = CMISproConvert.ConvertTime(DateTime.Now); return newXSYBJSP; } private void SetmoList(DataSet ds, int iStart, int iNum, int iRowCount, ref List moList) { Mac.MacLog.TraceFormat(String.Format("SetmoList-begin")); dsFJXXSZ = LoadFJXXSZ(); Mac.MacLog.TraceFormat(String.Format("dsFJXXSZ-after")); int iMax = Math.Min(iStart + iNum, iRowCount); string sKHLY = ""; string sXMLY = ""; string sQYXZQY = ""; string sXZQYBH = ""; string sBJFLTZM = ""; string sQYBJDJC = ""; string sQYXSHT = ""; string sFJSCLX = ""; if (DSActiveModule.IsActiveModule(100956005)) sQYXZQY = "Y"; else sQYXZQY = "N"; Mac.MacLog.TraceFormat(String.Format("IsActiveModule(100956005)-after")); if (CheckModule("100860008")) sQYBJDJC = "Y"; else sQYBJDJC = "N"; Mac.MacLog.TraceFormat(String.Format("CheckModule(100860008)-after")); SetKHXMLY(ref sKHLY, ref sXMLY, ref sXZQYBH, ref sBJFLTZM, ref sFJSCLX); string sIsXJY = "N"; string sIsSJY = "N"; string sIsHJY = "N"; SetRYJS(tSession.UserId, ref sIsXJY, ref sIsSJY, ref sIsHJY); Mac.MacLog.TraceFormat(String.Format("SetKHXMLY-after")); for (int i = iStart; i < iMax; i++) { if (ds.Tables[0].Rows[i]["YLDZ"].ToString().Trim().Equals("Y")) { string sYLDZWPNAME = getYLDZWPNAME(ds.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim()); ds.Tables[0].Rows[i]["YLZDLC"] = sYLDZWPNAME; Mac.MacLog.TraceFormat(String.Format("sYLDZWPNAME-after{0}", i.ToString().Trim())); } ds.Tables[0].Rows[i]["KHLY"] = sKHLY; ds.Tables[0].Rows[i]["XMLY"] = sXMLY; ds.Tables[0].Rows[i]["QYXZQY"] = sQYXZQY; ds.Tables[0].Rows[i]["XZQYBH"] = sXZQYBH; ds.Tables[0].Rows[i]["QYBJDJC"] = sQYBJDJC; ds.Tables[0].Rows[i]["FJSCLX"] = sFJSCLX; ds.Tables[0].Rows[i]["MRDYYS"] = GetMRDYYS(); Mac.MacLog.TraceFormat(String.Format("XSYBJSPModel-before")); XSYBJSPModel MO = new XSYBJSPModel(); Mac.MacLog.TraceFormat(String.Format("XSYBJSPModel-after")); string sZDXJZJE = ""; string sJGBZJE = ""; string sBJZJE = ds.Tables[0].Rows[i]["XLXSBJD_ZJE"].ToString().Trim(); string sZDXJJCL = ds.Tables[0].Rows[i]["ZDXJJCL"].ToString().Trim(); string sBJJCL = ds.Tables[0].Rows[i]["XLXSBJD_LRL"].ToString().Trim(); string sBJDID = ds.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim(); if (CheckXSHT(sBJDID)) sQYXSHT = "Y"; else sQYXSHT = "N"; Mac.MacLog.TraceFormat(String.Format("CheckXSHT-after")); ds.Tables[0].Rows[i]["QYXSHT"] = sQYXSHT; CXZJE(sBJDID, ref sZDXJZJE, ref sJGBZJE); Mac.MacLog.TraceFormat(String.Format("CXZJE-after")); ds.Tables[0].Rows[i]["XLXSBJD_BJZJE"] = CMISproConvert.StrToFloat(sBJZJE, 0) == 0 ? "" : strPadRight(Convert.ToString(NumberUtils.RoundX(CMISproConvert.StrToFloat(sBJZJE, 0), 2)), 2); ds.Tables[0].Rows[i]["XLXSBJD_ZDXJJCL"] = CMISproConvert.StrToFloat(sZDXJJCL, 0) == 0 ? "" : strPadRight(Convert.ToString(NumberUtils.RoundX(CMISproConvert.StrToFloat(sZDXJJCL, 0), 2)), 2) + "%"; ds.Tables[0].Rows[i]["XLXSBJD_BJJCL"] = CMISproConvert.StrToFloat(sBJJCL, 0) == 0 ? "" : strPadRight(Convert.ToString(NumberUtils.RoundX(CMISproConvert.StrToFloat(sBJJCL, 0), 2)), 2) + "%"; ds.Tables[0].Rows[i]["XLXSBJD_ZDXJZJE"] = CMISproConvert.StrToFloat(sZDXJZJE, 0) == 0 ? "" : strPadRight(Convert.ToString(NumberUtils.RoundX(CMISproConvert.StrToFloat(sZDXJZJE, 0), 2)), 2); ds.Tables[0].Rows[i]["XLXSBJD_CPJJJE"] = CMISproConvert.StrToFloat(sJGBZJE, 0) == 0 ? "" : strPadRight(Convert.ToString(NumberUtils.RoundX(CMISproConvert.StrToFloat(sJGBZJE, 0), 2)), 2); string sBJFLID = ds.Tables[0].Rows[i]["XLXSBJD_BJFLID"].ToString().Trim(); string sXSTLJ = ""; BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID); string sHidJSLMList = XLBJDUtils.GetHidJSLMList(sBJFLID, sIsXJY.Equals("Y"), sIsSJY.Equals("Y"), sIsHJY.Equals("Y")); #region 按角色隐藏栏目 string sBJBM = bjflxx.XLXSBJFL_BJBM; string sXSZJE = "Y"; string sXSZDXJ = "N"; string sXSZDXJJCL = "N"; if (bjflxx.XSZDXJ()) { sXSZDXJ = "Y"; sXSZDXJJCL = "Y"; } string sJGBBJBM = bjflxx.XLXSBJFL_JGBBJBM; string sXSJGBBJ = "Y"; string sXSBJJCL = "N"; if (bjflxx.XSJCL()) sXSBJJCL = "Y"; string sXSDCPDF = "Y"; if (!sHidJSLMList.Trim().Equals("")) { string[] sHidJSLMs = sHidJSLMList.Split(','); for (int j = 0; j < sHidJSLMs.Length; j++) { string sLMID = sHidJSLMs[j].Trim(); switch (sLMID) { case "XLXSBJDMX_BJJE": sXSZJE = "N"; break; case "XLXSBJDMX_ZDXJ": if (sXSZDXJ.Equals("Y")) sXSZDXJ = "N"; break; case "XLXSBJDMX_ZDXJJCL": if (sXSZDXJJCL.Equals("Y")) sXSZDXJJCL = "N"; break; case "XLXSBJDMX_JGBBJ": if (sXSJGBBJ.Equals("Y")) sXSJGBBJ = "N"; break; case "XLXSBJDMX_JGBBJJCL": if (sXSBJJCL.Equals("Y")) sXSBJJCL = "N"; break; case "btnAPPDCPDF": if (sXSDCPDF.Equals("Y")) sXSDCPDF = "N"; break; } } } ds.Tables[0].Rows[i]["BJBM"] = sBJBM; ds.Tables[0].Rows[i]["XSZJE"] = sXSZJE; ds.Tables[0].Rows[i]["XSZDXJ"] = sXSZDXJ; ds.Tables[0].Rows[i]["XSZDXJJCL"] = sXSZDXJJCL; ds.Tables[0].Rows[i]["JGBBJBM"] = sJGBBJBM; ds.Tables[0].Rows[i]["XSJGBBJ"] = sXSJGBBJ; ds.Tables[0].Rows[i]["XSBJJCL"] = sXSBJJCL; ds.Tables[0].Rows[i]["XSDCPDF"] = sXSDCPDF; #endregion Mac.MacLog.TraceFormat(String.Format("GetBJFLXX-after")); if (!bjflxx.XLXSBJFL_TBJCLID.Equals("") && !bjflxx.XLXSBJFL_LBJCLID.Equals("")) sXSTLJ = "TLJ"; else if (!bjflxx.XLXSBJFL_TBJCLID.Equals("") && bjflxx.XLXSBJFL_LBJCLID.Equals("")) sXSTLJ = "TJ"; else if (bjflxx.XLXSBJFL_TBJCLID.Equals("") && !bjflxx.XLXSBJFL_LBJCLID.Equals("")) sXSTLJ = "LJ"; if (!sXSTLJ.Equals("")) { ds.Tables[0].Rows[i]["XSTLJ"] = sXSTLJ; string sTJ = ds.Tables[0].Rows[i]["XLXSBJD_TJ"].ToString().Trim(); string sLJ = ds.Tables[0].Rows[i]["XLXSBJD_LJ"].ToString().Trim(); if (CMISproConvert.StrToFloat(sTJ, 0) == 0 && CMISproConvert.StrToFloat(sLJ, 0) == 0) { string sBJRQ = ds.Tables[0].Rows[i]["XLXSBJD_BJRQ"].ToString().Trim(); string sJZBJHS = ds.Tables[0].Rows[i]["XLXSBJD_JZBJHS"].ToString().Trim(); Dictionary dicTLJG = XLBJDInfo.GetTLJByRQ(sBJRQ, sBJFLID, sJZBJHS.Equals("Y")); Mac.MacLog.TraceFormat(String.Format("GetTLJByRQ-after")); sTJ = dicTLJG["TJ"]; sLJ = dicTLJG["LJ"]; } ds.Tables[0].Rows[i]["TJ"] = CMISproConvert.StrToFloat(sTJ, 0) == 0 ? "" : strPadRight(Convert.ToString(NumberUtils.RoundX(CMISproConvert.StrToFloat(sTJ, 0), XLBJDUtils.BJCLPriceDecimal)), XLBJDUtils.BJCLPriceDecimal); ds.Tables[0].Rows[i]["LJ"] = CMISproConvert.StrToFloat(sLJ, 0) == 0 ? "" : strPadRight(Convert.ToString(NumberUtils.RoundX(CMISproConvert.StrToFloat(sLJ, 0), XLBJDUtils.BJCLPriceDecimal)), XLBJDUtils.BJCLPriceDecimal); } Mac.MacLog.TraceFormat(String.Format("SetMO-before")); SetMO(ds.Tables[0].Rows[i], MO); Mac.MacLog.TraceFormat(String.Format("SetMO-after")); moList.Add(MO); Mac.MacLog.TraceFormat(String.Format("moList.Add(MO);-after")); } } protected override void SetMO(DataRow dr, ModelBase MO) { base.SetMO(dr, MO); string sBJDID = dr["XLXSBJD_BJDID"].ToString().Trim(); string sWPID = dr["WPID"].ToString().Trim(); string sBJFLID = dr["XLXSBJD_BJFLID"].ToString().Trim(); string sExistFJXX = "N"; if (dsFJXXSZ.Tables[0].Rows.Count > 0) { for (int i = 0; i < dsFJXXSZ.Tables[0].Rows.Count; i++) { bool bXSFJXX = true; string sXSBZ = dsFJXXSZ.Tables[0].Rows[i]["XSBZ"].ToString().Trim(); string sXSBZC = "," + sXSBZ + ","; if (!sXSBZ.Equals("") && !sXSBZC.Contains("," + sWPID + ",")) bXSFJXX = false; string sSYBJFL = dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_SYBJFLID"].ToString().Trim(); string sSYBJFLC = "," + sSYBJFL + ","; if (!sSYBJFL.Equals("") && !sSYBJFLC.Contains("," + sBJFLID + ",")) bXSFJXX = false; if (dsFJXXSZ.Tables[0].Rows[i]["SJLX"].ToString().Trim().Equals("A"))//数值 { for (int k = 1; k <= 5; k++) { if (dsFJXXSZ.Tables[0].Rows[i]["DYZD"].ToString().Trim().IndexOf("KZSZ" + k.ToString().PadLeft(2, '0').Trim()) >= 0) { if (!bXSFJXX) MO.GetType().GetProperty("KZSZ" + k.ToString().PadLeft(2, '0').Trim()).SetValue(MO, 0, null); } } } else if (dsFJXXSZ.Tables[0].Rows[i]["SJLX"].ToString().Trim().Equals("B"))//字符 { for (int k = 1; k <= 10; k++) { if (dsFJXXSZ.Tables[0].Rows[i]["DYZD"].ToString().Trim().IndexOf("KZZF" + k.ToString().PadLeft(2, '0').Trim()) >= 0) { if (!bXSFJXX) MO.GetType().GetProperty("KZZF" + k.ToString().PadLeft(2, '0').Trim()).SetValue(MO, "", null); } } } else if (dsFJXXSZ.Tables[0].Rows[i]["SJLX"].ToString().Trim().Equals("C"))//日期 { for (int k = 1; k <= 5; k++) { if (dsFJXXSZ.Tables[0].Rows[i]["DYZD"].ToString().Trim().IndexOf("KZRQ" + k.ToString().PadLeft(2, '0').Trim()) >= 0) { if (!bXSFJXX) MO.GetType().GetProperty("KZRQ" + k.ToString().PadLeft(2, '0').Trim()).SetValue(MO, "", null); } } } else if (dsFJXXSZ.Tables[0].Rows[i]["SJLX"].ToString().Trim().Equals("D"))//文本 { for (int k = 1; k <= 5; k++) { if (dsFJXXSZ.Tables[0].Rows[i]["DYZD"].ToString().Trim().IndexOf("KZWB" + k.ToString().PadLeft(2, '0').Trim()) >= 0) { if (!bXSFJXX) MO.GetType().GetProperty("KZWB" + k.ToString().PadLeft(2, '0').Trim()).SetValue(MO, "", null); } } } if (sExistFJXX.Equals("N") && bXSFJXX) sExistFJXX = "Y"; } } MO.GetType().GetProperty("ExistFJXX").SetValue(MO, sExistFJXX, null); string sTZL = "0"; string sLZL = "0"; CXTLLWeight(sBJDID, ref sTZL, ref sLZL); MO.GetType().GetProperty("TZL").SetValue(MO, sTZL, null); MO.GetType().GetProperty("LZL").SetValue(MO, sLZL, null); } public static string FJXXBTJY(string sBJDID) { string sMessage = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); string sWPID = ""; string sBJFLID = ""; SQL.Clear(); SQL.Add(" select XLXSBJD_WPID,XLXSBJD_BJFLID from XLXSBJD where XLXSBJD_BJDID = :pBJDID "); SQL.ParamByName("pBJDID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { sWPID = ds.Tables[0].Rows[0]["XLXSBJD_WPID"].ToString().Trim(); sBJFLID = ds.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim(); } SQL.Clear(); SQL.Add(" select XLXSBJKZXXSZ_DYZD,XLXSBJKZXXSZ_MC,XLXSBJKZXXSZ_SJLX,XLXSBJKZXXSZ_XSBZ as XSBZ,XLXSBJKZXXSZ_WHBZ as WHBZ,XLXSBJKZXXSZ_SYBJFLID from XLXSBJKZXXSZ where isnull(XLXSBJKZXXSZ_BT,'N') = 'Y' order by XLXSBJKZXXSZ_BJSX "); ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { SQL.Clear(); SQL.Add(" select XLXSBJKZXX_BJDID"); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { SQL.Add(",XLXSBJKZXX_" + ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_DYZD"].ToString().Trim()); } SQL.Add(" from XLXSBJKZXX where XLXSBJKZXX_BJDID = :pBJDID "); SQL.ParamByName("pBJDID").Value = sBJDID; DataSet dsKZXX = dberp.OpenDataSet(SQL); for (int j = 0; j < ds.Tables[0].Rows.Count; j++) { string sXSBZ = ds.Tables[0].Rows[j]["XSBZ"].ToString().Trim(); string sXSBZC = "," + sXSBZ + ","; if (!sXSBZ.Equals("") && !sXSBZC.Contains("," + sWPID + ",")) continue; string sSYBJFL = ds.Tables[0].Rows[j]["XLXSBJKZXXSZ_SYBJFLID"].ToString().Trim(); string sSYBJFLC = "," + sSYBJFL + ","; if (!sSYBJFL.Equals("") && !sSYBJFLC.Contains("," + sBJFLID + ",")) continue; string sMC = ds.Tables[0].Rows[j]["XLXSBJKZXXSZ_MC"].ToString().Trim(); string sSJLX = ds.Tables[0].Rows[j]["XLXSBJKZXXSZ_SJLX"].ToString().Trim(); if (dsKZXX.Tables[0].Rows.Count > 0) { string sValue = dsKZXX.Tables[0].Rows[0][j + 1].ToString().Trim(); if (sSJLX.Equals("A"))//数值型 { double dValue = CMISproConvert.StrToFloat(sValue); if (dValue == 0) { sMessage = sMC + "不允许为0!"; return sMessage; } } else { if (sValue.Equals("")) { sMessage = sMC + "不允许为空!"; return sMessage; } } } else { if (sSJLX.Equals("A"))//数值型 { sMessage = sMC + "不允许为0!"; return sMessage; } else { sMessage = sMC + "不允许为空!"; return sMessage; } } } } return sMessage; } private string getYLDZWPNAME(string sBJDID) { string sYLDZWPNAME = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); sSQL.Clear(); sSQL.Add(" select XLXSBJYLZD_WPID,XLXSBJYLZD_WFID,XLXSBJYLZD_WFAWAITER from XLXSBJD "); sSQL.Add(" left join (select min(XLXSBJYLZD_SQDH) as YLZDSQDH,XLXSBJYLZD_BJDID from XLXSBJYLZD where 1=1 group by XLXSBJYLZD_BJDID ) YLZDSQ "); sSQL.Add(" on XLXSBJYLZD_BJDID = XLXSBJD_BJDID "); sSQL.Add(" left join XLXSBJYLZD on XLXSBJYLZD_SQDH = YLZDSQDH "); sSQL.Add(" where XLXSBJD_BJDID = :pBJDID "); sSQL.ParamByName("pBJDID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(sSQL); if (ds.Tables[0].Rows.Count > 0) { string sWPID = ds.Tables[0].Rows[0]["XLXSBJYLZD_WPID"].ToString().Trim(); string sWFID = ds.Tables[0].Rows[0]["XLXSBJYLZD_WFID"].ToString().Trim(); string sWFAWAITER = ds.Tables[0].Rows[0]["XLXSBJYLZD_WFAWAITER"].ToString().Trim(); if (sWPID.Equals("ZZZZ") || sWPID.Equals("ZZZY")) sYLDZWPNAME = _curWorkFlow.GetWPName(sWFID, sWPID); else sYLDZWPNAME = "待【" + _curWorkFlow.UserInfo.GetUserNames(sWFAWAITER) + "】" + _curWorkFlow.GetWPName(sWFID, sWPID); } return sYLDZWPNAME; } private string strPadRight(string s, int x) { string str = s; if (str.Split('.').Length == 2) { str = str.Split('.')[0] + "." + str.Split('.')[1].PadRight(x, '0'); } else { string tmp = "0"; if (x > 0) { tmp = tmp.PadRight(x, '0'); str = str + "." + tmp; } } return str; } private void CXZJE(string sBJDID, ref string sZDXJZJE, ref string sJGBZJE) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); sql.Add("select sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) as CPJJJE,sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) as ZDXJZJE "); sql.Add("from XLXSBJDMX "); sql.Add("where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID "); sql.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { sJGBZJE = ds.Tables[0].Rows[0]["CPJJJE"].ToString().Trim(); sZDXJZJE = ds.Tables[0].Rows[0]["ZDXJZJE"].ToString().Trim(); } } //客户项目来源,报价单编码要素,附件上传类型 private void SetKHXMLY(ref string sKHLY, ref string sXMLY, ref string sXZQYBH, ref string sBJFLTZM, ref string sFJSCLX) { XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860061); sKHLY = pzxx.XLXSBJPZ_KHJSLY; sXMLY = pzxx.XLXSBJPZ_XMJSLY; sXZQYBH = pzxx.XLXSBJPZ_BMYSLIST.Contains("XZQHID") ? "Y" : "N"; sBJFLTZM = pzxx.XLXSBJPZ_BMYSLIST.Contains("BJFLTZM") ? "Y" : "N"; sFJSCLX = pzxx.XLXSBJPZ_FJSCGS; } private void SetRYJS(string sGH, ref string sIsXJY, ref string sIsSJY, ref string sIsHJY) { TYGXX tRYXX = TRYXX.GetRYXXByGH(sGH); string sXJYROLEID = string.Empty; string sSJYROLEID = string.Empty; string sHJYROLEID = string.Empty; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_XJYROLEID)) sXJYROLEID = pzxx.XLXSBJPZ_XJYROLEID; if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_SJYROLEID)) sSJYROLEID = pzxx.XLXSBJPZ_SJYROLEID; if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_HJYROLEID)) sHJYROLEID = pzxx.XLXSBJPZ_HJYROLEID; if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from USERROLE where URUSERID='{0}' and " + CMISproDataBase.GetWhereEqual("URROLEID", sXJYROLEID), tRYXX.RYID))) { sIsXJY = "Y"; } if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from USERROLE where URUSERID='{0}' and " + CMISproDataBase.GetWhereEqual("URROLEID", sSJYROLEID), tRYXX.RYID))) { sIsSJY = "Y"; } if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from USERROLE where URUSERID='{0}' and " + CMISproDataBase.GetWhereEqual("URROLEID", sHJYROLEID), tRYXX.RYID))) { sIsHJY = "Y"; } } private string getBJFLBMYS() { string sBJFLBMYS = "N"; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860061); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_BMYSLIST)) { sBJFLBMYS = pzxx.XLXSBJPZ_BMYSLIST.Contains("BJFLTZM") ? "Y" : "N"; } return sBJFLBMYS; } //报价分类名称 private string getBJFLMC(string sBJFLID) { string sResult = string.Empty; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); DataSet ds = dberp.OpenDataSet(string.Format("select XLXSBJFL_BJFLMC from XLXSBJFL where XLXSBJFL_BJFLID = '{0}'", sBJFLID)); if (ds.Tables[0].Rows.Count > 0) { sResult = ds.Tables[0].Rows[0][0].ToString().Trim(); } return sResult; } //获取销售员信息 public string GetXSYXX() { string sRstr = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); sSQL.Add(" select XSY_TXY,XSY_ZJM,XSY_SJ,XSY_DH,XSY_BMID,BM_MC,isnull(BM_SYDWID,'ZZZZ') as BM_SYDWID,GS_GSMC from XSY "); sSQL.Add(" left join BM on BM_BMID = XSY_BMID "); sSQL.Add(" left join GS on GS_SYDWID = BM_SYDWID "); sSQL.Add(" where 1=1 and ISNULL(XSY_TYBZ,'N') <> 'Y' and XSY_GH ='" + tSession.UserId + "'"); sSQL.Add(" order by BM_SYDWID "); DataSet ds = dberp.OpenDataSet(sSQL); if (ds.Tables[0].Rows.Count > 0) { sRstr = ds.Tables[0].Rows[0]["XSY_TXY"].ToString().Trim() + "," + ds.Tables[0].Rows[0]["XSY_ZJM"].ToString().Trim(); if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["XSY_SJ"].ToString().Trim())) sRstr += "," + ds.Tables[0].Rows[0]["XSY_SJ"].ToString().Trim() + ","; else if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["XSY_DH"].ToString().Trim())) sRstr += "," + ds.Tables[0].Rows[0]["XSY_DH"].ToString().Trim() + ","; else sRstr += ",,"; if (string.IsNullOrEmpty(ds.Tables[0].Rows[0]["XSY_BMID"].ToString().Trim())) sRstr += ","; else sRstr += ds.Tables[0].Rows[0]["XSY_BMID"].ToString().Trim() + "|" + ds.Tables[0].Rows[0]["BM_MC"].ToString().Trim() + ","; if (string.IsNullOrEmpty(ds.Tables[0].Rows[0]["BM_SYDWID"].ToString().Trim()) || ds.Tables[0].Rows[0]["BM_SYDWID"].ToString().Trim().Equals("ZZZZ")) sRstr += ","; else sRstr += ds.Tables[0].Rows[0]["BM_SYDWID"].ToString().Trim() + "," + ds.Tables[0].Rows[0]["GS_GSMC"].ToString().Trim(); } return sRstr; } //通过报价分类获取价格表ID public string GetJGBID(string sBJFLID, string sBJRQ) { string rstr = ""; Dictionary myDiction = XLBJDUtils.GetJGBIDByXSQYID("", sBJFLID, sBJRQ, ""); foreach (string item in myDiction.Keys) { rstr = item; break; } return rstr; } public string BJFLCHanged(string sBJFLID, string sBJRQ, string sJZBJHS) { string rstr = ""; Dictionary myDiction = XLBJDUtils.GetJGBIDByXSQYID("", sBJFLID, sBJRQ, ""); foreach (string item in myDiction.Keys) { rstr = item; break; } string sXSTLJ = ""; BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID); if (!bjflxx.XLXSBJFL_TBJCLID.Equals("") && !bjflxx.XLXSBJFL_LBJCLID.Equals("")) sXSTLJ = "TLJ"; else if (!bjflxx.XLXSBJFL_TBJCLID.Equals("") && bjflxx.XLXSBJFL_LBJCLID.Equals("")) sXSTLJ = "TJ"; else if (bjflxx.XLXSBJFL_TBJCLID.Equals("") && !bjflxx.XLXSBJFL_LBJCLID.Equals("")) sXSTLJ = "LJ"; if (!sXSTLJ.Equals("")) { if (rstr.Trim().Equals("")) { rstr += "XXX," + sXSTLJ; } else rstr += "," + sXSTLJ; Dictionary dicTLJG = XLBJDInfo.GetTLJByRQ(sBJRQ, sBJFLID, sJZBJHS.Equals("Y")); string sTJ = CMISproConvert.StrToFloat(dicTLJG["TJ"], 0) == 0 ? "" : strPadRight(Convert.ToString(NumberUtils.RoundX(CMISproConvert.StrToFloat(dicTLJG["TJ"], 0), XLBJDUtils.BJCLPriceDecimal)), XLBJDUtils.BJCLPriceDecimal); string sLJ = CMISproConvert.StrToFloat(dicTLJG["LJ"], 0) == 0 ? "" : strPadRight(Convert.ToString(NumberUtils.RoundX(CMISproConvert.StrToFloat(dicTLJG["LJ"], 0), XLBJDUtils.BJCLPriceDecimal)), XLBJDUtils.BJCLPriceDecimal); rstr += "," + sTJ + "," + sLJ; } return rstr; } //销售报价审批明细 public InfoList GetXSBJSPMXInfoList(string sBJDID) { InfoList bjspmxList = new InfoList(); string sSQL = "select XLXSBJDMX_BJDID, XLXSBJDMX_XH, XLXSBJDMX_BJCP, XLXSBJDMX_BJSL, XLXSBJDMX_CPBJ,XLXSBJDMX_TZQBJJE,XLXSBJDMX_JLDW,XLXSBJDMX_BZ " + "from XLXSBJDMX " + "where XLXSBJDMX_BJDID ='" + sBJDID + "'" + "order by XLXSBJDMX_XSSX,XLXSBJDMX_XH"; string sFields = @"XLXSBJDMX_BJDID,XLXSBJDMX_XH,XLXSBJDMX_BJCP,XLXSBJDMX_BJSL,XLXSBJDMX_CPBJ,XLXSBJDMX_TZQBJJE,XLXSBJDMX_BZ"; 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++) { XSYBJSPMXInfo bjspmxinfo = new XSYBJSPMXInfo(); string[] aField = sFields.Split(','); foreach (string Field in aField) { string sJLDW = ds.Tables[0].Rows[i]["XLXSBJDMX_JLDW"].ToString().Trim(); string FieidValues = ds.Tables[0].Rows[i][Field.Trim()].ToString().Trim(); if (Field.Trim().Equals("XLXSBJDMX_BJSL")) { FieidValues = Mround(FieidValues, 3) + sJLDW; } else if (Field.Trim().Equals("XLXSBJDMX_CPBJ")) { FieidValues = Mround(FieidValues, 4); } else if (Field.Trim().Equals("XLXSBJDMX_TZQBJJE")) { FieidValues = Mround(FieidValues, 2); } bjspmxinfo.GetType().GetProperty(Field.Trim()).SetValue(bjspmxinfo, FieidValues, null); } bjspmxList.Infos.Add(bjspmxinfo); } return bjspmxList; } //销售报价审批价差率 public InfoList GetXSBJSPJCLInfoList(string sBJDID, string sBJFL, string sHZFS, string sXSMX, string sXSXJ) { BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFL); string sIsXJY = "N"; string sIsSJY = "N"; string sIsHJY = "N"; SetRYJS(tSession.UserId, ref sIsXJY, ref sIsSJY, ref sIsHJY); string sHidJSLMList = XLBJDUtils.GetHidJSLMList(sBJFL, sIsXJY.Equals("Y"), sIsSJY.Equals("Y"), sIsHJY.Equals("Y")); string sJGBBJBM = bjflxx.XLXSBJFL_JGBBJBM; string sLJBM = bjflxx.XLXSBJFL_BJDHQLJBM; string sXSJCL = "N"; if (bjflxx.XSJCL()) sXSJCL = "Y"; string sJCLLX = bjflxx.XLXSBJFL_BJJCLLX; string sXSLJJCL = "N"; if (bjflxx.XSLJJCL()) sXSLJJCL = "Y"; string sLJJCLLX = bjflxx.XLXSBJFL_LJJCLLX; string sBJLJJCLLX = bjflxx.XLXSBJFL_BJLJJCLLX; string sXSZDXJ = "N"; if (bjflxx.XSZDXJ()) sXSZDXJ = "Y"; string sZDXJJCLLX = bjflxx.XLXSBJFL_ZDXJJCLLX; if (!sHidJSLMList.Trim().Equals("")) { string[] sHidJSLMs = sHidJSLMList.Split(','); for (int i = 0; i < sHidJSLMs.Length; i++) { string sLMID = sHidJSLMs[i].Trim(); switch (sLMID) { case "XLXSBJDMX_ZDXJJCL": if (sXSZDXJ.Equals("Y")) sXSZDXJ = "N"; break; case "XLXSBJDMX_JGBBJJCL": if (sXSJCL.Equals("Y")) sXSJCL = "N"; break; case "XLXSBJDMX_CLCBJCL": if (sXSLJJCL.Equals("Y")) sXSLJJCL = "N"; break; } } } InfoList bjspjclList = new InfoList(); string sFields = @"XLXSBJDMX_BJDID,XLXSBJDMX_XH,HZFS,XLXSBJDMX_BJCP,XLXSBJDMX_BJSL,XLXSBJDMX_CPBJ,XLXSBJDMX_BJJE,XLXSBJDMX_BZ"; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); #region 产品目录汇总 if (sHZFS.Equals("1")) { SQL.Add("select 0 as px0, 0 as px1,XLXSBJDMX_BZ, rtrim(XLXSCLQD_CPMLID) || '|' || rtrim(XLXSCPML_CPMLMC) as HZFS,"); SQL.Add(" XLXSBJDMX_BJDID,XLXSBJDMX_XH, XLXSBJDMX_XH as OLD_XLXSBJDMX_XH, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, rtrim(XLXSBJDMX_XLBZID)||'|'||rtrim(XLBZ_XLBZLXMC) as XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID, "); SQL.Add(" rtrim(XLXSBJDMX_XLYSID)||'|'||rtrim(XLYSB_XLYSMC) as XLXSBJDMX_XLYSID,XLXSBJDMX_BJCP,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,"); SQL.Add(" XLXSBJDMX_JGBBJ, XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ as CPJJJE,XLXSBJDMX_CPBJ,XLXSBJDMX_BJJE, "); SQL.Add(" XLXSBJDMX_CLCB,XLXSBJDMX_BJSL*XLXSBJDMX_CLCB as CLCBJE, XLXSBJDMX_BJDHQCLCB, XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB as BJDHQCLCBJE, XLXSBJDMX_JGBBJJCL, XLXSBJDMX_JGBBJJCE,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_ZDXJ,XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ as XLXSBJDMX_ZDXJZJE,XLXSBJDMX_ZDXJJCL "); SQL.Add(" from XLXSBJDMX "); SQL.Add(" left join XLBZ on XLBZ_XLBZID = XLXSBJDMX_XLBZID "); SQL.Add(" left join XLYSB on XLYSB_XLYSID = XLXSBJDMX_XLYSID "); SQL.Add(" LEFT JOIN XLXSCLQD on XLXSCLQD_XLXHID =XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND XLXSCLQD_DYDJID = XLXSBJDMX_DYDJID "); SQL.Add(" LEFT JOIN XLXSCPML ON XLXSCPML_CPMLID = XLXSCLQD_CPMLID "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID "); if (!sXSMX.Equals("Y")) { SQL.Add(" and 1 <> 1 "); } SQL.Add(" union all "); SQL.Add(" select 0 as px0, 1 as px1,' ' AS XLXSBJDMX_BZ,rtrim(isnull(XLXSCLQD_CPMLID,' ')) || '|' || rtrim(isnull(XLXSCPML_CPMLMC,' ')) ||'(小计)' as HZFS,' ' as XLXSBJDMX_BJDID, 99999 as XLXSBJDMX_XH, 99999 as OLD_XLXSBJDMX_XH, ' ' as XLXSBJDMX_XLXHID, ' ' as XLXSBJDMX_XLGGID, ' ' as XLXSBJDMX_XLBZID,' ' as XLXSBJDMX_DYDJID, "); SQL.Add(" ' ' as XLXSBJDMX_XLYSID,' ' as XLXSBJDMX_BJCP,' ' as XLXSBJDMX_JLDW, sum(XLXSBJDMX_BJSL) as XLXSBJDMX_BJSL, "); SQL.Add(" sum(XLXSBJDMX_JGBBJ) as XLXSBJDMX_JGBBJ, "); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) as CPJJJE, "); SQL.Add(" sum(XLXSBJDMX_CPBJ) as XLXSBJDMX_CPBJ, "); SQL.Add(" sum(XLXSBJDMX_BJJE) as XLXSBJDMX_BJJE, "); SQL.Add(" sum(XLXSBJDMX_CLCB) as XLXSBJDMX_CLCB, "); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB) as CLCBJE, "); SQL.Add(" sum(XLXSBJDMX_BJDHQCLCB) as XLXSBJDMX_BJDHQCLCB, "); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) as BJDHQCLCBJE, "); if (sJCLLX.Equals("1")) { SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXSCLQD b on XLXSCLQD_XLXHID =XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND XLXSCLQD_DYDJID = XLXSBJDMX_DYDJID "); SQL.Add(" LEFT JOIN XLXSCPML ON XLXSCPML_CPMLID = XLXSCLQD_CPMLID "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCLQD_CPMLID,' ') = ISNULL(b.XLXSCLQD_CPMLID,' ') "); SQL.Add(" ) as XLXSBJDMX_JGBBJJCL, "); SQL.Add(" sum(XLXSBJDMX_JGBBJJCE) as XLXSBJDMX_JGBBJJCE, "); } else if (sJCLLX.Equals("2") || sJCLLX.Equals("4")) { SQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXSCLQD b on XLXSCLQD_XLXHID =XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND XLXSCLQD_DYDJID = XLXSBJDMX_DYDJID "); SQL.Add(" LEFT JOIN XLXSCPML ON XLXSCPML_CPMLID = XLXSCLQD_CPMLID "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCLQD_CPMLID,' ') = ISNULL(b.XLXSCLQD_CPMLID,' ') "); SQL.Add(" ) as XLXSBJDMX_JGBBJJCL, "); SQL.Add(" sum(XLXSBJDMX_JGBBJJCE) as XLXSBJDMX_JGBBJJCE, "); } else { SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXSCLQD b on XLXSCLQD_XLXHID =XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND XLXSCLQD_DYDJID = XLXSBJDMX_DYDJID "); SQL.Add(" LEFT JOIN XLXSCPML ON XLXSCPML_CPMLID = XLXSCLQD_CPMLID "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCLQD_CPMLID,' ') = ISNULL(b.XLXSCLQD_CPMLID,' ') "); SQL.Add(" ) as XLXSBJDMX_JGBBJJCL, "); SQL.Add(" 0 as XLXSBJDMX_JGBBJJCE, "); } if (sLJJCLLX.Equals("1")) { SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXSCLQD c on XLXSCLQD_XLXHID =XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND XLXSCLQD_DYDJID = XLXSBJDMX_DYDJID "); SQL.Add(" LEFT JOIN XLXSCPML ON XLXSCPML_CPMLID = XLXSCLQD_CPMLID "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCLQD_CPMLID,' ') = ISNULL(c.XLXSCLQD_CPMLID,' ') "); SQL.Add(" ) as XLXSBJDMX_CLCBJCL, "); } else if (sLJJCLLX.Equals("2")) { SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXSCLQD c on XLXSCLQD_XLXHID =XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND XLXSCLQD_DYDJID = XLXSBJDMX_DYDJID "); SQL.Add(" LEFT JOIN XLXSCPML ON XLXSCPML_CPMLID = XLXSCLQD_CPMLID "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCLQD_CPMLID,' ') = ISNULL(c.XLXSCLQD_CPMLID,' ') "); SQL.Add(" ) as XLXSBJDMX_CLCBJCL, "); } else if (sLJJCLLX.Equals("4")) { SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXSCLQD c on XLXSCLQD_XLXHID =XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND XLXSCLQD_DYDJID = XLXSBJDMX_DYDJID "); SQL.Add(" LEFT JOIN XLXSCPML ON XLXSCPML_CPMLID = XLXSCLQD_CPMLID "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCLQD_CPMLID,' ') = ISNULL(c.XLXSCLQD_CPMLID,' ') "); SQL.Add(" ) as XLXSBJDMX_CLCBJCL, "); } else { SQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJJE) / sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB),4) *100 - 100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXSCLQD c on XLXSCLQD_XLXHID =XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND XLXSCLQD_DYDJID = XLXSBJDMX_DYDJID "); SQL.Add(" LEFT JOIN XLXSCPML ON XLXSCPML_CPMLID = XLXSCLQD_CPMLID "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCLQD_CPMLID,' ') = ISNULL(c.XLXSCLQD_CPMLID,' ') "); SQL.Add(" ) as XLXSBJDMX_CLCBJCL, "); } if (sBJLJJCLLX.Equals("1")) { SQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0 then 0 else RoundFix((sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) - sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB))/ sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) * 100,2) end as XLXSBJDMX_JGBBJLJJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXSCLQD c on XLXSCLQD_XLXHID =XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND XLXSCLQD_DYDJID = XLXSBJDMX_DYDJID "); SQL.Add(" LEFT JOIN XLXSCPML ON XLXSCPML_CPMLID = XLXSCLQD_CPMLID "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and ISNULL(a.XLXSCLQD_CPMLID,' ') = ISNULL(c.XLXSCLQD_CPMLID,' ') "); SQL.Add(" ) as XLXSBJDMX_JGBBJLJJCL, "); } else { SQL.Add(" 0 as XLXSBJDMX_JGBBJLJJCL, "); } SQL.Add(" sum(XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJ,sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJZJE, "); if (sZDXJJCLLX.Equals("1")) { SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXSCLQD c on XLXSCLQD_XLXHID =XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND XLXSCLQD_DYDJID = XLXSBJDMX_DYDJID "); SQL.Add(" LEFT JOIN XLXSCPML ON XLXSCPML_CPMLID = XLXSCLQD_CPMLID "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCLQD_CPMLID,' ') = ISNULL(c.XLXSCLQD_CPMLID,' ') "); SQL.Add(" ) as XLXSBJDMX_ZDXJJCL "); } else if (sZDXJJCLLX.Equals("2")) { SQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJJE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100 - 100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXSCLQD c on XLXSCLQD_XLXHID =XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND XLXSCLQD_DYDJID = XLXSBJDMX_DYDJID "); SQL.Add(" LEFT JOIN XLXSCPML ON XLXSCPML_CPMLID = XLXSCLQD_CPMLID "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCLQD_CPMLID,' ') = ISNULL(c.XLXSCLQD_CPMLID,' ') "); SQL.Add(" ) as XLXSBJDMX_ZDXJJCL "); } else if (sZDXJJCLLX.Equals("3"))//SQL语句自测:刘青棚 2025/03/31 11:00:00 { SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXSCLQD c on XLXSCLQD_XLXHID =XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND XLXSCLQD_DYDJID = XLXSBJDMX_DYDJID "); SQL.Add(" LEFT JOIN XLXSCPML ON XLXSCPML_CPMLID = XLXSCLQD_CPMLID "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCLQD_CPMLID,' ') = ISNULL(c.XLXSCLQD_CPMLID,' ') "); SQL.Add(" ) as XLXSBJDMX_ZDXJJCL "); } else if (sZDXJJCLLX.Equals("4")) { SQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else 100 - RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXSCLQD c on XLXSCLQD_XLXHID =XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND XLXSCLQD_DYDJID = XLXSBJDMX_DYDJID "); SQL.Add(" LEFT JOIN XLXSCPML ON XLXSCPML_CPMLID = XLXSCLQD_CPMLID "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCLQD_CPMLID,' ') = ISNULL(c.XLXSCLQD_CPMLID,' ') "); SQL.Add(" ) as XLXSBJDMX_ZDXJJCL "); } else if (sZDXJJCLLX.Equals("5")) { SQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ") when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ")),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXSCLQD c on XLXSCLQD_XLXHID =XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND XLXSCLQD_DYDJID = XLXSBJDMX_DYDJID "); SQL.Add(" LEFT JOIN XLXSCPML ON XLXSCPML_CPMLID = XLXSCLQD_CPMLID "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCLQD_CPMLID,' ') = ISNULL(c.XLXSCLQD_CPMLID,' ') "); SQL.Add(" ) as XLXSBJDMX_ZDXJJCL "); } else SQL.Add(" 0 as XLXSBJDMX_ZDXJJCL "); SQL.Add(" from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXSCLQD a on XLXSCLQD_XLXHID =XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND XLXSCLQD_DYDJID = XLXSBJDMX_DYDJID "); SQL.Add(" LEFT JOIN XLXSCPML ON XLXSCPML_CPMLID = XLXSCLQD_CPMLID "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID "); if (!sXSXJ.Equals("Y")) { SQL.Add(" and 1 <> 1 "); } SQL.Add(" group by XLXSCLQD_CPMLID,XLXSCPML_CPMLMC"); SQL.Add(" union all "); SQL.Add(" select 1 as px0, 1 as px1,' ' AS XLXSBJDMX_BZ,'合计:' as HZFS,' ' as XLXSBJDMX_BJDID, 99999 as XLXSBJDMX_XH, 99999 as OLD_XLXSBJDMX_XH, ' ' as XLXSBJDMX_XLXHID, ' ' as XLXSBJDMX_XLGGID, ' ' as XLXSBJDMX_XLBZID,' ' as XLXSBJDMX_DYDJID, "); SQL.Add(" ' ' as XLXSBJDMX_XLYSID,' ' as XLXSBJDMX_BJCP,' ' as XLXSBJDMX_JLDW, sum(XLXSBJDMX_BJSL) as XLXSBJDMX_BJSL, "); SQL.Add(" sum(XLXSBJDMX_JGBBJ) as XLXSBJDMX_JGBBJ, "); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) as CPJJJE, "); SQL.Add(" sum(XLXSBJDMX_CPBJ) as XLXSBJDMX_CPBJ, "); SQL.Add(" sum(XLXSBJDMX_BJJE) as XLXSBJDMX_BJJE, "); SQL.Add(" sum(XLXSBJDMX_CLCB) as XLXSBJDMX_CLCB, "); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB) as CLCBJE, "); SQL.Add(" sum(XLXSBJDMX_BJDHQCLCB) as XLXSBJDMX_BJDHQCLCB, "); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) as BJDHQCLCBJE, "); if (sJCLLX.Equals("1")) { SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_JGBBJJCL, "); SQL.Add(" sum(XLXSBJDMX_JGBBJJCE) as XLXSBJDMX_JGBBJJCE, "); } else if (sJCLLX.Equals("2") || sJCLLX.Equals("4")) { SQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 ) as XLXSBJDMX_JGBBJJCL, "); SQL.Add(" sum(XLXSBJDMX_JGBBJJCE) as XLXSBJDMX_JGBBJJCE, "); } else { SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_JGBBJJCL, "); SQL.Add(" 0 as XLXSBJDMX_JGBBJJCE, "); } if (sLJJCLLX.Equals("1")) SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_CLCBJCL, "); else if (sLJJCLLX.Equals("2")) { SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 ) as XLXSBJDMX_CLCBJCL, "); } else if (sLJJCLLX.Equals("4")) { SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 ) as XLXSBJDMX_CLCBJCL, "); } else { SQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJJE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB),4) *100 - 100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 ) as XLXSBJDMX_CLCBJCL, "); } if (sBJLJJCLLX.Equals("1")) SQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0 then 0 else RoundFix((sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) - sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB))/ sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) * 100,2) end as XLXSBJDMX_JGBBJLJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID) as XLXSBJDMX_JGBBJLJJCL, "); else { SQL.Add(" 0 as XLXSBJDMX_JGBBJLJJCL, "); } SQL.Add(" sum(XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJ,sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJZJE, "); if (sZDXJJCLLX.Equals("1")) SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_ZDXJJCL "); else if (sZDXJJCLLX.Equals("2")) SQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJJE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100 -100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_ZDXJJCL "); else if (sZDXJJCLLX.Equals("3"))//SQL语句自测:刘青棚 2025/03/27 18:00:00 SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_ZDXJJCL "); else if (sZDXJJCLLX.Equals("4")) SQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else 100 - RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_ZDXJJCL "); else if (sZDXJJCLLX.Equals("5")) SQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ") when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ")),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_ZDXJJCL "); else SQL.Add(" 0 as XLXSBJDMX_ZDXJJCL "); SQL.Add(" from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXSCLQD on XLXSCLQD_XLXHID =XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND XLXSCLQD_DYDJID = XLXSBJDMX_DYDJID "); SQL.Add(" LEFT JOIN XLXSCPML ON XLXSCPML_CPMLID = XLXSCLQD_CPMLID "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID "); SQL.Add(" order by px0,HZFS, px1, XLXSBJDMX_XH "); } #endregion #region 产品用途汇总 else { SQL.Add("select 0 as px0, 0 as px1,XLXSBJDMX_BZ, rtrim(XLCPYT_CPYT) || '|' || rtrim(XLCPYT_CPYTMC) as HZFS,"); SQL.Add(" XLXSBJDMX_BJDID,XLXSBJDMX_XH, XLXSBJDMX_XH as OLD_XLXSBJDMX_XH, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, rtrim(XLXSBJDMX_XLBZID)||'|'||rtrim(XLBZ_XLBZLXMC) as XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID, "); SQL.Add(" rtrim(XLXSBJDMX_XLYSID)||'|'||rtrim(XLYSB_XLYSMC) as XLXSBJDMX_XLYSID,XLXSBJDMX_BJCP,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,"); SQL.Add(" XLXSBJDMX_JGBBJ, XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ as CPJJJE,XLXSBJDMX_CPBJ,XLXSBJDMX_BJJE, "); SQL.Add(" XLXSBJDMX_CLCB,XLXSBJDMX_BJSL*XLXSBJDMX_CLCB as CLCBJE, XLXSBJDMX_BJDHQCLCB, XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB as BJDHQCLCBJE, XLXSBJDMX_JGBBJJCL, XLXSBJDMX_JGBBJJCE,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_ZDXJ,XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ as XLXSBJDMX_ZDXJZJE,XLXSBJDMX_ZDXJJCL "); SQL.Add(" from XLXSBJDMX "); SQL.Add(" left join XLBZ on XLBZ_XLBZID = XLXSBJDMX_XLBZID "); SQL.Add(" left join XLYSB on XLYSB_XLYSID = XLXSBJDMX_XLYSID "); SQL.Add(" LEFT JOIN XLXHB on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); SQL.Add(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID "); if (!sXSMX.Equals("Y")) { SQL.Add(" and 1 <> 1 "); } SQL.Add(" union all "); SQL.Add(" select 0 as px0, 1 as px1,' ' AS XLXSBJDMX_BZ,rtrim(isnull(XLXHB_CPYT,' ')) || '|' || rtrim(isnull(XLCPYT_CPYTMC,' ')) ||'(小计)' as HZFS,' ' as XLXSBJDMX_BJDID, 99999 as XLXSBJDMX_XH, 99999 as OLD_XLXSBJDMX_XH, ' ' as XLXSBJDMX_XLXHID, ' ' as XLXSBJDMX_XLGGID, ' ' as XLXSBJDMX_XLBZID,' ' as XLXSBJDMX_DYDJID, "); SQL.Add(" ' ' as XLXSBJDMX_XLYSID,' ' as XLXSBJDMX_BJCP,' ' as XLXSBJDMX_JLDW, sum(XLXSBJDMX_BJSL) as XLXSBJDMX_BJSL, "); SQL.Add(" sum(XLXSBJDMX_JGBBJ) as XLXSBJDMX_JGBBJ, "); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) as CPJJJE, "); SQL.Add(" sum(XLXSBJDMX_CPBJ) as XLXSBJDMX_CPBJ, "); SQL.Add(" sum(XLXSBJDMX_BJJE) as XLXSBJDMX_BJJE, "); SQL.Add(" sum(XLXSBJDMX_CLCB) as XLXSBJDMX_CLCB, "); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB) as CLCBJE, "); SQL.Add(" sum(XLXSBJDMX_BJDHQCLCB) as XLXSBJDMX_BJDHQCLCB, "); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) as BJDHQCLCBJE, "); if (sJCLLX.Equals("1")) { SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXHB b on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); SQL.Add(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXHB_CPYT,' ') = ISNULL(b.XLXHB_CPYT,' ') "); SQL.Add(" ) as XLXSBJDMX_JGBBJJCL, "); SQL.Add(" sum(XLXSBJDMX_JGBBJJCE) as XLXSBJDMX_JGBBJJCE, "); } else if (sJCLLX.Equals("2") || sJCLLX.Equals("4")) { SQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXHB b on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); SQL.Add(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXHB_CPYT,' ') = ISNULL(b.XLXHB_CPYT,' ') "); SQL.Add(" ) as XLXSBJDMX_JGBBJJCL, "); SQL.Add(" sum(XLXSBJDMX_JGBBJJCE) as XLXSBJDMX_JGBBJJCE, "); } else { SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXHB b on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); SQL.Add(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXHB_CPYT,' ') = ISNULL(b.XLXHB_CPYT,' ') "); SQL.Add(" ) as XLXSBJDMX_JGBBJJCL, "); SQL.Add(" 0 as XLXSBJDMX_JGBBJJCE, "); } if (sLJJCLLX.Equals("1")) { SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXHB c on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); SQL.Add(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXHB_CPYT,' ') = ISNULL(c.XLXHB_CPYT,' ') "); SQL.Add(" ) as XLXSBJDMX_CLCBJCL, "); } else if (sLJJCLLX.Equals("2")) { SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXHB c on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); SQL.Add(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXHB_CPYT,' ') = ISNULL(c.XLXHB_CPYT,' ') "); SQL.Add(" ) as XLXSBJDMX_CLCBJCL, "); } else if (sLJJCLLX.Equals("4")) { SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXHB c on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); SQL.Add(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXHB_CPYT,' ') = ISNULL(c.XLXHB_CPYT,' ') "); SQL.Add(" ) as XLXSBJDMX_CLCBJCL, "); } else { SQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJJE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB),4) *100-100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXHB c on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); SQL.Add(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXHB_CPYT,' ') = ISNULL(c.XLXHB_CPYT,' ') "); SQL.Add(" ) as XLXSBJDMX_CLCBJCL, "); } if (sBJLJJCLLX.Equals("1")) { SQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0 then 0 else RoundFix((sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) - sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB))/ sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) * 100,2) end as XLXSBJDMX_JGBBJLJJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXHB c on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); SQL.Add(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and ISNULL(a.XLXHB_CPYT,' ') = ISNULL(c.XLXHB_CPYT,' ') "); SQL.Add(" ) as XLXSBJDMX_JGBBJLJJCL, "); } else { SQL.Add(" 0 as XLXSBJDMX_JGBBJLJJCL, "); } SQL.Add(" sum(XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJ,sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJZJE, "); if (sZDXJJCLLX.Equals("1")) { SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXHB c on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); SQL.Add(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXHB_CPYT,' ') = ISNULL(c.XLXHB_CPYT,' ') "); SQL.Add(" ) as XLXSBJDMX_ZDXJJCL "); } else if (sZDXJJCLLX.Equals("2")) { SQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJJE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100 -100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXHB c on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); SQL.Add(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXHB_CPYT,' ') = ISNULL(c.XLXHB_CPYT,' ') "); SQL.Add(" ) as XLXSBJDMX_ZDXJJCL "); } else if (sZDXJJCLLX.Equals("3"))//SQL语句自测:刘青棚 2025/03/27 18:00:00 { SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXHB c on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); SQL.Add(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXHB_CPYT,' ') = ISNULL(c.XLXHB_CPYT,' ') "); SQL.Add(" ) as XLXSBJDMX_ZDXJJCL "); } else if (sZDXJJCLLX.Equals("4")) { SQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else 100 - RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXHB c on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); SQL.Add(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXHB_CPYT,' ') = ISNULL(c.XLXHB_CPYT,' ') "); SQL.Add(" ) as XLXSBJDMX_ZDXJJCL "); } else if (sZDXJJCLLX.Equals("5")) { SQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ") when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ")),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXHB c on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); SQL.Add(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXHB_CPYT,' ') = ISNULL(c.XLXHB_CPYT,' ') "); SQL.Add(" ) as XLXSBJDMX_ZDXJJCL "); } else SQL.Add(" 0 as XLXSBJDMX_ZDXJJCL "); SQL.Add(" from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXHB a on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); SQL.Add(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID "); if (!sXSXJ.Equals("Y")) { SQL.Add(" and 1 <> 1 "); } SQL.Add(" group by XLXHB_CPYT,XLCPYT_CPYTMC"); SQL.Add(" union all "); SQL.Add(" select 1 as px0, 1 as px1,' ' AS XLXSBJDMX_BZ,'合计:' as HZFS,' ' as XLXSBJDMX_BJDID, 99999 as XLXSBJDMX_XH, 99999 as OLD_XLXSBJDMX_XH, ' ' as XLXSBJDMX_XLXHID, ' ' as XLXSBJDMX_XLGGID, ' ' as XLXSBJDMX_XLBZID,' ' as XLXSBJDMX_DYDJID, "); SQL.Add(" ' ' as XLXSBJDMX_XLYSID,' ' as XLXSBJDMX_BJCP,' ' as XLXSBJDMX_JLDW, sum(XLXSBJDMX_BJSL) as XLXSBJDMX_BJSL, "); SQL.Add(" sum(XLXSBJDMX_JGBBJ) as XLXSBJDMX_JGBBJ, "); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) as CPJJJE, "); SQL.Add(" sum(XLXSBJDMX_CPBJ) as XLXSBJDMX_CPBJ, "); SQL.Add(" sum(XLXSBJDMX_BJJE) as XLXSBJDMX_BJJE, "); SQL.Add(" sum(XLXSBJDMX_CLCB) as XLXSBJDMX_CLCB, "); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB) as CLCBJE, "); SQL.Add(" sum(XLXSBJDMX_BJDHQCLCB) as XLXSBJDMX_BJDHQCLCB, "); SQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) as BJDHQCLCBJE, "); if (sJCLLX.Equals("1")) { SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_JGBBJJCL, "); SQL.Add(" sum(XLXSBJDMX_JGBBJJCE) as XLXSBJDMX_JGBBJJCE, "); } else if (sJCLLX.Equals("2") || sJCLLX.Equals("4")) { SQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 ) as XLXSBJDMX_JGBBJJCL, "); SQL.Add(" sum(XLXSBJDMX_JGBBJJCE) as XLXSBJDMX_JGBBJJCE, "); } else { SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_JGBBJJCL, "); SQL.Add(" 0 as XLXSBJDMX_JGBBJJCE, "); } if (sLJJCLLX.Equals("1")) { SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_CLCBJCL, "); } else if (sLJJCLLX.Equals("2")) { SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 ) as XLXSBJDMX_CLCBJCL, "); } else if (sLJJCLLX.Equals("4")) { SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 ) as XLXSBJDMX_CLCBJCL, "); } else { SQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJJE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB),4) *100 - 100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 ) as XLXSBJDMX_CLCBJCL, "); } if (sBJLJJCLLX.Equals("1")) SQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0 then 0 else RoundFix((sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) - sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB))/ sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) * 100,2) end as XLXSBJDMX_JGBBJLJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID ) as XLXSBJDMX_JGBBJLJJCL, "); else { SQL.Add(" 0 as XLXSBJDMX_JGBBJLJJCL, "); } SQL.Add(" sum(XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJ,sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJZJE, "); if (sZDXJJCLLX.Equals("1")) SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_ZDXJJCL "); else if (sZDXJJCLLX.Equals("2")) SQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJJE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100 -100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_ZDXJJCL "); else if (sZDXJJCLLX.Equals("3"))//SQL语句自测:刘青棚 2025/03/31 11:00:00 SQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100 -100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_ZDXJJCL "); else if (sZDXJJCLLX.Equals("4")) SQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else 100 - RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_ZDXJJCL "); else if (sZDXJJCLLX.Equals("5")) SQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ") when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ")),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_ZDXJJCL "); else SQL.Add(" 0 as XLXSBJDMX_ZDXJJCL "); SQL.Add(" from XLXSBJDMX "); SQL.Add(" LEFT JOIN XLXHB on XLXHB_XLXHID =XLXSBJDMX_XLXHID "); SQL.Add(" LEFT JOIN XLCPYT ON XLCPYT_CPYT = XLXHB_CPYT "); SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID "); SQL.Add(" order by px0,HZFS, px1, XLXSBJDMX_XH "); } #endregion SQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(SQL); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { XSYBJSPJCLInfo bjspjclinfo = new XSYBJSPJCLInfo(); string[] aField = sFields.Split(','); foreach (string Field in aField) { string sJLDW = ds.Tables[0].Rows[i]["XLXSBJDMX_JLDW"].ToString().Trim(); string FieidValues = ds.Tables[0].Rows[i][Field.Trim()].ToString().Trim(); if (Field.Trim().Equals("XLXSBJDMX_BJSL")) { FieidValues = Mround(FieidValues, 3) + sJLDW; } else if (Field.Trim().Equals("XLXSBJDMX_CPBJ")) { if (ds.Tables[0].Rows[i]["HZFS"].ToString().Trim().Contains("小计") || ds.Tables[0].Rows[i]["HZFS"].ToString().Trim().Contains("合计")) { FieidValues = ""; } else { FieidValues = Mround(FieidValues, 4); } } else if (Field.Trim().Equals("XLXSBJDMX_BJJE")) { FieidValues = Mround(FieidValues, 2); } bjspjclinfo.GetType().GetProperty(Field.Trim()).SetValue(bjspjclinfo, FieidValues, null); } string sJCL = ""; if (sXSJCL.Equals("Y")) { string sJCLBT = "表价价差率:"; if (!sJGBBJBM.Equals("")) sJCLBT = sJCLBT.Replace("表价", sJGBBJBM); sJCL += sJCLBT + ds.Tables[0].Rows[i]["XLXSBJDMX_JGBBJJCL"].ToString().Trim(); } if (sXSLJJCL.Equals("Y")) { string sLJJCLBT = "料价价差率:"; if (!sLJBM.Equals("")) sLJJCLBT = sLJJCLBT.Replace("料价", sLJBM); if (!sJCL.Equals("")) sJCL += " "; sJCL += sLJJCLBT + ds.Tables[0].Rows[i]["XLXSBJDMX_CLCBJCL"].ToString().Trim(); } if (sXSZDXJ.Equals("Y")) { if (!sJCL.Equals("")) sJCL += " "; sJCL += "限价价差率:" + ds.Tables[0].Rows[i]["XLXSBJDMX_ZDXJJCL"].ToString().Trim(); } bjspjclinfo.GetType().GetProperty("XLXSBJDMX_JCL").SetValue(bjspjclinfo, sJCL, null); bjspjclList.Infos.Add(bjspjclinfo); } return bjspjclList; } //获取默认查询条件 public MNamedQuery GetMNamedQuery(int NMDID, string sNQCLASSNAME) { MNamedQuery DefaultQR = new MNamedQuery(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select NQNAME,NQCONDITION,case when ISNULL(NQPUBLIC,'N') = 'Y' then 2 else 1 end as PX,case when ISNULL(NQDEFAULT,'N') = 'Y' then 1 else 2 end as MR,NQXH "); SQL.Add(" from NAMEDQUERY "); SQL.Add(" where (NQUSRID = :pUSERID or ISNULL(NQPUBLIC,'N') = 'Y' ) "); SQL.Add(" and NQMDID = :pMDID "); SQL.Add(" and NQCLASSNAME = :pClassName "); SQL.Add(" union all "); SQL.Add(" select NAMEDQUERY.NQNAME,NQCONDITION,case when ISNULL(NAMEDQUERY.NQPUBLIC,'N') = 'Y' then 2 else 1 end as PX,case when ISNULL(NAMEDQUERY.NQDEFAULT,'N') = 'Y' then 1 else 2 end as MR,NQXH "); SQL.Add(" from NAMEDQUERY,NAMEDQUERYMX,USERROLE "); SQL.Add(" where NAMEDQUERY.NQCLASSNAME = NAMEDQUERYMX.NQCLASSNAME and NAMEDQUERY.NQMDID = NAMEDQUERYMX.NQMDID and NAMEDQUERY.NQNAME =NAMEDQUERYMX.NQNAME and URROLEID = ROID "); SQL.Add(" and URUSERID = :pRYID "); SQL.Add(" and NAMEDQUERY.NQMDID = :pMDID "); SQL.Add(" and NAMEDQUERY.NQCLASSNAME = :pClassName "); SQL.Add(" order by MR,PX,NQXH "); SQL.ParamByName("pUSERID").Value = tSession.UserId.Trim(); SQL.ParamByName("pMDID").Value = NMDID; SQL.ParamByName("pClassName").Value = sNQCLASSNAME; SQL.ParamByName("pRYID").Value = tSession.RYID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0]["MR"].ToString().Trim().Equals("1")) { DefaultQR.NQNAME = ds.Tables[0].Rows[0]["NQNAME"].ToString().Trim(); string sNQCONDITION = ds.Tables[0].Rows[0]["NQCONDITION"].ToString().Trim(); if (sNQCONDITION.Contains("HZFS=1^产品目录")) { DefaultQR.JCHZFS = "1"; DefaultQR.JCHZFSMC = "产品目录"; } else if (sNQCONDITION.Contains("HZFS=2^产品用途")) { DefaultQR.JCHZFS = "2"; DefaultQR.JCHZFSMC = "产品用途"; } else { DefaultQR.JCHZFS = "1"; DefaultQR.JCHZFSMC = "产品目录"; } if (sNQCONDITION.Contains("XSMX=False^N")) DefaultQR.XSJCMX = "N"; else if (sNQCONDITION.Contains("XSMX=True^Y")) DefaultQR.XSJCMX = "Y"; else DefaultQR.XSJCMX = "Y"; if (sNQCONDITION.Contains("XSXJ=False^N")) DefaultQR.XSJCXJ = "N"; else if (sNQCONDITION.Contains("XSXJ=True^Y")) DefaultQR.XSJCXJ = "Y"; else DefaultQR.XSJCXJ = "Y"; } else { DefaultQR.NQNAME = ""; DefaultQR.JCHZFS = "1"; DefaultQR.JCHZFSMC = "产品目录"; DefaultQR.XSJCMX = "Y"; DefaultQR.XSJCXJ = "Y"; } } else { DefaultQR.NQNAME = ""; DefaultQR.JCHZFS = "1"; DefaultQR.JCHZFSMC = "产品目录"; DefaultQR.XSJCMX = "Y"; DefaultQR.XSJCXJ = "Y"; } return DefaultQR; } public MNamedQuery GetMNamedQueryByNQNAME(int NMDID, string sNQCLASSNAME, string sNQNAME) { MNamedQuery DefaultQR = new MNamedQuery(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select NQNAME,NQCONDITION,case when ISNULL(NQPUBLIC,'N') = 'Y' then 2 else 1 end as PX,case when ISNULL(NQDEFAULT,'N') = 'Y' then 1 else 2 end as MR,NQXH "); SQL.Add(" from NAMEDQUERY "); SQL.Add(" where (NQUSRID = :pUSERID or ISNULL(NQPUBLIC,'N') = 'Y' ) "); SQL.Add(" and NQMDID = :pMDID "); SQL.Add(" and NQCLASSNAME = :pClassName "); SQL.Add(" and NQNAME = :pNQNAME "); SQL.Add(" union all "); SQL.Add(" select NAMEDQUERY.NQNAME,NQCONDITION,case when ISNULL(NAMEDQUERY.NQPUBLIC,'N') = 'Y' then 2 else 1 end as PX,case when ISNULL(NAMEDQUERY.NQDEFAULT,'N') = 'Y' then 1 else 2 end as MR,NQXH "); SQL.Add(" from NAMEDQUERY,NAMEDQUERYMX,USERROLE "); SQL.Add(" where NAMEDQUERY.NQCLASSNAME = NAMEDQUERYMX.NQCLASSNAME and NAMEDQUERY.NQMDID = NAMEDQUERYMX.NQMDID and NAMEDQUERY.NQNAME =NAMEDQUERYMX.NQNAME and URROLEID = ROID "); SQL.Add(" and URUSERID = :pRYID "); SQL.Add(" and NAMEDQUERY.NQMDID = :pMDID "); SQL.Add(" and NAMEDQUERY.NQCLASSNAME = :pClassName "); SQL.Add(" and NAMEDQUERY.NQNAME = :pNQNAME "); SQL.Add(" order by MR,PX,NQXH "); SQL.ParamByName("pUSERID").Value = tSession.UserId.Trim(); SQL.ParamByName("pMDID").Value = NMDID; SQL.ParamByName("pClassName").Value = sNQCLASSNAME; SQL.ParamByName("pNQNAME").Value = sNQNAME; SQL.ParamByName("pRYID").Value = tSession.RYID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { DefaultQR.NQNAME = ds.Tables[0].Rows[0]["NQNAME"].ToString().Trim(); string sNQCONDITION = ds.Tables[0].Rows[0]["NQCONDITION"].ToString().Trim(); if (sNQCONDITION.Contains("HZFS=1^产品目录")) { DefaultQR.JCHZFS = "1"; DefaultQR.JCHZFSMC = "产品目录"; } else if (sNQCONDITION.Contains("HZFS=2^产品用途")) { DefaultQR.JCHZFS = "2"; DefaultQR.JCHZFSMC = "产品用途"; } else { DefaultQR.JCHZFS = "1"; DefaultQR.JCHZFSMC = "产品目录"; } if (sNQCONDITION.Contains("XSMX=False^N")) DefaultQR.XSJCMX = "N"; else if (sNQCONDITION.Contains("XSMX=True^Y")) DefaultQR.XSJCMX = "Y"; else DefaultQR.XSJCMX = "Y"; if (sNQCONDITION.Contains("XSXJ=False^N")) DefaultQR.XSJCXJ = "N"; else if (sNQCONDITION.Contains("XSXJ=True^Y")) DefaultQR.XSJCXJ = "Y"; else DefaultQR.XSJCXJ = "Y"; } else { DefaultQR.NQNAME = ""; DefaultQR.JCHZFS = "1"; DefaultQR.JCHZFSMC = "产品目录"; DefaultQR.XSJCMX = "Y"; DefaultQR.XSJCXJ = "Y"; } return DefaultQR; } private string Mround(string str, int lenth) { double num = CMISproConvert.StrToFloat(str); num = NumberUtils.RoundX(num, lenth); string rstr = num.ToString().Trim(); int index = 1; string str1 = ""; string str2 = ""; foreach (string tempstr in rstr.Split('.')) { if (index == 1) str1 = tempstr; else str2 = tempstr; index++; } str2 = str2.PadRight(lenth, '0'); rstr = str1 + "." + str2; return rstr; } //获取报价分类 public List GetBJFLList() { List codeList = new List(); string sSQL = "select rtrim(XLXSBJFL_BJFLID) as CodeID ,rtrim(XLXSBJFL_BJFLMC) as CodeMC from XLXSBJFL where 1=1 and isnull(XLXSBJFL_TYBZ,'N') <> 'Y' "; sSQL += " and not exists(select 1 from XLXSBJFLKH where XLXSBJFLKH_BJFLID=XLXSBJFL_BJFLID) "; string sBJU012 = GetOption("BJU012"); if (!sBJU012.Equals("")) { sSQL += "and " + CMISproDataBase.GetWhereEqual("XLXSBJFL_BJFLID", sBJU012); } sSQL += "order by XLXSBJFL_XSXH,XLXSBJFL_BJFLID "; setCodeList(sSQL, ref codeList); return codeList; } //获取销售单位 public List GetXSDWList() { List codeList = new List(); string sSQL = "select rtrim(GS_SYDWID) as CodeID,rtrim(GS_GSMC) as CodeMC from GS where 1=1 and isnull(GS_TYBZ,'N')<>'Y' "; string sKZZXU003 = GetOption("KZZXU003"); if (!sKZZXU003.Equals("")) { sSQL += "and " + CMISproDataBase.GetWhereEqual("GS_SYDWID", sKZZXU003); } sSQL += "order by GS_SYDWID "; setCodeList(sSQL, ref codeList); return codeList; } //获取报价归属部门 public List GetBJGSBMList(string sSYDWID) { List codeList = new List(); string sSQL = "select distinct rtrim(BM_BMID) as CodeID, BM_MC as CodeMC from BM "; sSQL += " where 1=1 and isnull(BM_TYBZ,'N')<>'Y' "; string sHJU006 = GetOption("HJU006"); if (!sHJU006.Equals("")) { sSQL += "and " + CMISproDataBase.GetWhereEqual("BM_BMID", sHJU006); } if (!string.IsNullOrEmpty(sSYDWID)) sSQL += " and BM_SYDWID = '" + sSYDWID.Trim() + "'"; sSQL += " order by rtrim(BM_BMID) "; setCodeList(sSQL, ref codeList); return codeList; } //获取客户 public List GetKHList(string sKH, string sKHLY) { string sFW = GetOption("HJU038").Trim(); List codeList = new List(); string sSQL = ""; if (sKHLY.Equals("KHXX")) { sSQL = "select rtrim(KHXX_CRMKHID) as CodeID , KHXX_MC as CodeMC from KHXX "; sSQL += " where 1=1 "; if (sFW.Trim().Equals("ZJ")) { sSQL += string.Format(" and KHXX_FZR='{0}'", tSession.UserName.Trim()); } else if (sFW.Trim().Equals("BM")) { sSQL += string.Format(" and KHXX_FZR in (select XSY_TXY from XSY where XSY_BMID='{0}')", UserUtils.GetUser(tSession.UserId).RzBmId); } if (!sKH.Equals("")) { sSQL += "and KHXX_MC like '%" + sKH + "%' "; } sSQL += " order by KHXX_CRMKHID "; } else { sSQL = "select rtrim(KH_KHID) as CodeID , KH_MC as CodeMC from KH "; sSQL += " where 1=1 and isnull(KH_TYBZ,'N') <> 'Y' "; if (sFW.Trim().Equals("ZJ")) { sSQL += string.Format(" and KH_TXY='{0}'", tSession.UserName.Trim()); } else if (sFW.Trim().Equals("BM")) { sSQL += string.Format(" and KH_TXY in (select XSY_TXY from XSY where XSY_BMID='{0}')", UserUtils.GetUser(tSession.UserId).RzBmId); } if (!sKH.Equals("")) { sSQL += "and KH_MC like '%" + sKH + "%' "; } sSQL += " order by KH_KHID "; } setCodeList(sSQL, ref codeList); return codeList; } //获取项目 public List GetXMList(string sXM, string sXMLY) { List codeList = new List(); string sSQL = ""; if (sXMLY.Equals("YXXM")) { sSQL = "select rtrim(YXXM_XMID) as CodeID , YXXM_MC as CodeMC from YXXM "; sSQL += " where 1=1 "; if (!sXM.Equals("")) { sSQL += "and YXXM_MC like '%" + sXM + "%' "; } sSQL += " order by YXXM_XMID "; } setCodeList(sSQL, ref codeList); return codeList; } //获取项目所在地省份 public List GetXMSZDSFList() { List codeList = new List(); string sSQL = "select rtrim(XZQH_XZQHID) as CodeID ,rtrim(XZQH_PROVINCE) as CodeMC from XZQH where 1=1 and XZQH_FID = '86' "; sSQL += "order by rtrim(XZQH_XZQHID)"; CodeInfo emptycdinfo = new CodeInfo(); codeList.Add(emptycdinfo); setCodeList(sSQL, ref codeList); return codeList; } //获取项目所在地城市 public List GetXMSZDCSList(string sFID) { List codeList = new List(); if (!sFID.Trim().Equals("")) { string sSQL = "select rtrim(XZQH_XZQHID) as CodeID ,rtrim(XZQH_CITY) as CodeMC from XZQH where 1=1 and XZQH_FID = '" + sFID + "' "; sSQL += "order by rtrim(XZQH_XZQHID)"; CodeInfo emptycdinfo = new CodeInfo(); codeList.Add(emptycdinfo); setCodeList(sSQL, ref codeList); } return codeList; } //获取默认项目所在地城市 public CodeInfo GetMRXMSZCS(string sFID) { CodeInfo newCodeInfo = new CodeInfo(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); sSQL.Add("select rtrim(XZQH_XZQHID) as CodeID ,rtrim(XZQH_CITY) as CodeMC from XZQH where 1=1 and XZQH_FID = '" + sFID + "' "); DataSet ds = dberp.OpenDataSet(sSQL); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows.Count == 1) { newCodeInfo.CodeID = ds.Tables[0].Rows[0]["CodeID"].ToString().Trim(); newCodeInfo.CodeMC = ds.Tables[0].Rows[0]["CodeMC"].ToString().Trim(); } } return newCodeInfo; } //获取销售员 public List GetXSYList() { List codeList = new List(); string sSQL = "select XSY_ZJM as CodeID ,XSY_TXY as CodeMC from XSY left join BM on BM_BMID = XSY_BMID left join GS on GS_SYDWID = BM_SYDWID "; sSQL += " where 1=1 and ISNULL(XSY_TYBZ,'N') <> 'Y' and XSY_GH ='" + tSession.UserId + "'"; sSQL += " order by rtrim(BM_BMID) "; setCodeList(sSQL, ref codeList); return codeList; } //依据客户自动变更销售员 public XSYXX GetXSYXXbyKH(string sKH, string sOldKH, string sTXY) { XSYXX XSY = new XSYXX(); XSY.BGBZ = "N"; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); string sKHJSLY = ""; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860061); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_KHJSLY)) sKHJSLY = pzxx.XLXSBJPZ_KHJSLY; string sFW = GetOption("HJU038").Trim(); if (sKHJSLY.Equals("KHXX")) { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from KHXX where KHXX_FZR = '{0}' and KHXX_MC = '{1}' ", sTXY, sOldKH)) || sOldKH.Equals("")) { sSQL.Clear(); sSQL.Add(" select KHXX_FZR as KH_TXY,XSY_ZJM from KHXX "); sSQL.Add(" left join XSY on XSY_TXY = KHXX_FZR "); sSQL.Add(" where KHXX_MC = :pKHMC "); if (sFW.Trim().Equals("ZJ")) { sSQL.Add(string.Format(" and KHXX_FZR='{0}'", tSession.UserName.Trim())); } else if (sFW.Trim().Equals("BM")) { sSQL.Add(string.Format(" and KHXX_FZR in (select XSY_TXY from XSY where XSY_BMID='{0}')", UserUtils.GetUser(tSession.UserId).RzBmId)); } sSQL.Add(" order by ISNULL(XSY_TYBZ,'N'),KHXX_CRMKHID "); sSQL.ParamByName("pKHMC").Value = sKH; DataSet ds = dberp.OpenDataSet(sSQL); if (ds.Tables[0].Rows.Count > 0) { string sKHTXY = ds.Tables[0].Rows[0]["KH_TXY"].ToString().Trim(); string sZJM = ds.Tables[0].Rows[0]["XSY_ZJM"].ToString().Trim(); XSY.TXY = sKHTXY; XSY.XSYZJM = sZJM; if (!sKHTXY.Equals("")) { XSY.BGBZ = "Y"; CodeInfo newCodeInfo = GetXSYBMLXFS(sKHTXY); XSY.LXFS = newCodeInfo.CodeID; XSY.XSYGSBM = newCodeInfo.CodeMC; } } } } else { if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from KH where KH_TXY = '{0}' and KH_MC = '{1}' ", sTXY, sOldKH)) || sOldKH.Equals("")) { sSQL.Clear(); sSQL.Add(" select KH_TXY,XSY_ZJM from KH "); sSQL.Add(" left join XSY on XSY_TXY = KH_TXY "); sSQL.Add(" where KH_MC=:pKHMC and isnull(KH_TYBZ,'N') <> 'Y' "); if (sFW.Trim().Equals("ZJ")) { sSQL.Add(string.Format(" and KH_TXY='{0}'", tSession.UserName.Trim())); } else if (sFW.Trim().Equals("BM")) { sSQL.Add(string.Format(" and KH_TXY in (select XSY_TXY from XSY where XSY_BMID='{0}')", UserUtils.GetUser(tSession.UserId).RzBmId)); } sSQL.Add(" order by ISNULL(XSY_TYBZ,'N') "); sSQL.ParamByName("pKHMC").Value = sKH; DataSet ds = dberp.OpenDataSet(sSQL); if (ds.Tables[0].Rows.Count > 0) { string sKHTXY = ds.Tables[0].Rows[0]["KH_TXY"].ToString().Trim(); string sZJM = ds.Tables[0].Rows[0]["XSY_ZJM"].ToString().Trim(); XSY.TXY = sKHTXY; XSY.XSYZJM = sZJM; if (!sKHTXY.Equals("")) { XSY.BGBZ = "Y"; CodeInfo newCodeInfo = GetXSYBMLXFS(sKHTXY); XSY.LXFS = newCodeInfo.CodeID; XSY.XSYGSBM = newCodeInfo.CodeMC; } } } } return XSY; } //获取销售员归属部门和联系方式 public CodeInfo GetXSYBMLXFS(string sTXY) { CodeInfo newCodeInfo = new CodeInfo(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); sSQL.Add(" select XSY_SJ,XSY_DH,XSY_BMID,BM_MC from XSY "); sSQL.Add(" left join BM on BM_BMID = XSY_BMID "); sSQL.Add(" where 1=1 and ISNULL(XSY_TYBZ,'N') <> 'Y' and XSY_TXY ='" + sTXY + "'"); sSQL.Add(" order by BM_SYDWID "); DataSet ds = dberp.OpenDataSet(sSQL); if (ds.Tables[0].Rows.Count > 0) { if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["XSY_SJ"].ToString().Trim())) newCodeInfo.CodeID = ds.Tables[0].Rows[0]["XSY_SJ"].ToString().Trim(); else if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["XSY_DH"].ToString().Trim())) newCodeInfo.CodeID = ds.Tables[0].Rows[0]["XSY_DH"].ToString().Trim(); else newCodeInfo.CodeID = ""; if (string.IsNullOrEmpty(ds.Tables[0].Rows[0]["XSY_BMID"].ToString().Trim())) newCodeInfo.CodeMC = ""; else newCodeInfo.CodeMC = ds.Tables[0].Rows[0]["XSY_BMID"].ToString().Trim() + "|" + ds.Tables[0].Rows[0]["BM_MC"].ToString().Trim(); } return newCodeInfo; } private void setCodeList(string sSQL, ref List codeList) { string sFields = @"CodeID, CodeMC "; 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++) { CodeInfo cdinfo = new CodeInfo(); string[] aField = sFields.Split(','); foreach (string Field in aField) { cdinfo.GetType().GetProperty(Field.Trim()).SetValue(cdinfo, ds.Tables[0].Rows[i][Field.Trim()].ToString().Trim(), null); } codeList.Add(cdinfo); } } //判断模块是否存在并且是否有权限 private bool CheckModule(string sUMID) { int iUMID = CMISproConvert.StrToInt(sUMID); UserRight UR = OpRightUtils.GetUserRight(tSession.UserId, iUMID); return (DSActiveModule.IsActiveModule(iUMID) && UR.Open); } //判断模块是否存在并且是否有新增权限 private bool CheckModuleNew(string sUMID) { int iUMID = CMISproConvert.StrToInt(sUMID); UserRight UR = OpRightUtils.GetUserRight(tSession.UserId, iUMID); return (DSActiveModule.IsActiveModule(iUMID) && UR.Insert); } //判断能否派生销售合同登记 private bool CheckXSHT(string sBJDID) { bool Rb = false; string sHTBJDKZ = GetHTBJDKZ(sBJDID); if (sHTBJDKZ.Equals("1")) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select BJD_BJDID from BJD where exists(select 1 from TBBJFK where TBBJFK_BJDID=BJD_BJDID) and BJD_BJDID = :pBJID"); SQL.ParamByName("pBJID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { if (CheckModuleNew("101008001")) { Rb = true; } } } else if (sHTBJDKZ.Equals("2")) Rb = true; else Rb = false; return Rb; } //线缆销售报价单再次报价 public string CopyXLBJD(string BJDID) { string sNewBJDID = ""; string sYBJDID = XLBJDUtils.GetYBJDID(BJDID); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Add("select max(XLXSBJD_BJDID) from XLXSBJD where XLXSBJD_BJDID like :pBJDID"); sql.ParamByName("pBJDID").Value = sYBJDID + "-%"; DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { string maxBJDID = ds.Tables[0].Rows[0][0].ToString().Trim(); if (maxBJDID.Equals("")) sNewBJDID = sYBJDID + "-01"; else sNewBJDID = sYBJDID + "-" + Convert.ToString(CMISproConvert.StrToFloat(maxBJDID.Substring(maxBJDID.LastIndexOf('-') + 1)) + 1).PadLeft(2, '0'); } else { sNewBJDID = sYBJDID + "-01"; } //根据BJDID获取BJFLID sql.Clear(); string BJFLID = ""; sql.Add("select XLXSBJD_BJFLID from XLXSBJD where XLXSBJD_BJDID =:pBJD"); sql.ParamByName("pBJD").Value = BJDID; DataSet dsFL = dberp.OpenDataSet(sql); if (dsFL.Tables[0].Rows.Count > 0) { BJFLID = dsFL.Tables[0].Rows[0][0].ToString().Trim(); } BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(BJFLID); string rstr = sNewBJDID; try { dberp.BeginTrans(); #region 复制主表 sql.Clear(); sql.Add(" merge into XLXSBJD TAG "); sql.Add(" using ( "); sql.Add(" select XLXSBJD_BJDID, XLXSBJD_JGBID,XLXSBJD_CLHQJGBID, XLXSBJD_BJFLID, XLXSBJD_KHID, XLXSBJD_XSQYID, XLXSBJD_SYDWID, XLXSBJD_BJRQ, XLXSBJD_XSJLMC, "); sql.Add(" XLXSBJD_TXY, XLXSBJD_XSBMID, XLXSBJD_KH, XLXSBJD_KHLXR,XLXSBJD_LXDH,XLXSBJD_CZ, XLXSBJD_PJLX, XLXSBJD_JZBJHS, XLXSBJD_XMMC, XLXSBJD_XXDZ, XLXSBJD_FKSM, XLXSBJD_BZ, "); sql.Add(" XLXSBJD_ZJE,XLXSBJD_ZZL,XLXSBJD_LRL,XLXSBJD_ZDXJJCL,XLXSBJD_CLCBJCL,XLXSBJD_FKQXNR,XLXSBJD_BJSM,XLXSBJD_TJ,XLXSBJD_LJ,XLXSBJD_CZJSXY,XLXSBJD_KHDH, "); sql.Add(" XLXSBJD_XZQHID,XLXSBJD_ZDQRRGH,XLXSBJD_ZDQRSJ,XLXSBJD_XMID,XLXSBJD_YSJDID,XLXSBJD_GYSID,XLXSBJD_YSFY,XLXSBJD_JGBBJLJJCL,XLXSBJD_WHR, XLXSBJD_WHRID, XLXSBJD_WHSJ, XLXSBJD_DOCGRPID, XLXSBJD_FJS "); sql.Add(" from XLXSBJD where XLXSBJD_BJDID = :pBJDID "); sql.Add(" ) SOR "); sql.Add(" on ( TAG.XLXSBJD_BJDID = :pNBJDID ) "); sql.Add(" when not matched then insert ( "); sql.Add(" XLXSBJD_BJDID, XLXSBJD_JGBID,XLXSBJD_CLHQJGBID, XLXSBJD_BJFLID, XLXSBJD_KHID, XLXSBJD_XSQYID, XLXSBJD_SYDWID, XLXSBJD_BJRQ, XLXSBJD_XSJLMC,XLXSBJD_SQR,XLXSBJD_SQRID,XLXSBJD_SQRGH,XLXSBJD_SQRQ, "); sql.Add(" XLXSBJD_TXY, XLXSBJD_XSBMID, XLXSBJD_KH, XLXSBJD_KHLXR,XLXSBJD_LXDH,XLXSBJD_CZ, XLXSBJD_PJLX, XLXSBJD_JZBJHS, XLXSBJD_XMMC, XLXSBJD_XXDZ, XLXSBJD_FKSM, XLXSBJD_BZ, "); sql.Add(" XLXSBJD_ZJE,XLXSBJD_ZZL,XLXSBJD_LRL,XLXSBJD_ZDXJJCL,XLXSBJD_CLCBJCL,XLXSBJD_FKQXNR,XLXSBJD_BJSM,XLXSBJD_TJ,XLXSBJD_LJ,XLXSBJD_CZJSXY,XLXSBJD_KHDH,XLXSBJD_YBJDIDS,XLXSBJD_ZT, "); sql.Add(" XLXSBJD_XZQHID,XLXSBJD_ZDQRRGH,XLXSBJD_ZDQRSJ,XLXSBJD_XMID,XLXSBJD_YSJDID,XLXSBJD_GYSID,XLXSBJD_YSFY,XLXSBJD_JGBBJLJJCL,XLXSBJD_WHR, XLXSBJD_WHRID, XLXSBJD_WHSJ, XLXSBJD_DOCGRPID, XLXSBJD_FJS "); sql.Add(" ) "); sql.Add(" values ( "); sql.Add(" :pNBJDID, SOR.XLXSBJD_JGBID,SOR.XLXSBJD_CLHQJGBID, SOR.XLXSBJD_BJFLID, SOR.XLXSBJD_KHID, SOR.XLXSBJD_XSQYID, SOR.XLXSBJD_SYDWID, :XLXSBJD_BJRQ, SOR.XLXSBJD_XSJLMC,:XLXSBJD_SQR,:XLXSBJD_SQRID,:XLXSBJD_SQRGH,:XLXSBJD_SQRQ, "); sql.Add(" SOR.XLXSBJD_TXY, SOR.XLXSBJD_XSBMID, SOR.XLXSBJD_KH, SOR.XLXSBJD_KHLXR,SOR.XLXSBJD_LXDH,SOR.XLXSBJD_CZ, SOR.XLXSBJD_PJLX, SOR.XLXSBJD_JZBJHS, SOR.XLXSBJD_XMMC, SOR.XLXSBJD_XXDZ, SOR.XLXSBJD_FKSM, SOR.XLXSBJD_BZ, "); sql.Add(" SOR.XLXSBJD_ZJE,SOR.XLXSBJD_ZZL,SOR.XLXSBJD_LRL,SOR.XLXSBJD_ZDXJJCL,SOR.XLXSBJD_CLCBJCL,SOR.XLXSBJD_FKQXNR,SOR.XLXSBJD_BJSM,SOR.XLXSBJD_TJ,SOR.XLXSBJD_LJ,SOR.XLXSBJD_CZJSXY,SOR.XLXSBJD_KHDH,:pYBJDID,'Z', "); sql.Add(" SOR.XLXSBJD_XZQHID,SOR.XLXSBJD_ZDQRRGH,SOR.XLXSBJD_ZDQRSJ,SOR.XLXSBJD_XMID,SOR.XLXSBJD_YSJDID,SOR.XLXSBJD_GYSID,SOR.XLXSBJD_YSFY,SOR.XLXSBJD_JGBBJLJJCL,:pWHR, :pWHRID, :pWHSJ, 0, 0 "); sql.Add(" )"); sql.ParamByName("pBJDID").Value = BJDID; sql.ParamByName("pNBJDID").Value = sNewBJDID; sql.ParamByName("pYBJDID").Value = sYBJDID; sql.ParamByName("XLXSBJD_BJRQ").Value = DateTime.Now.ToShortDateString().Trim(); sql.ParamByName("pWHR").Value = tSession.UserName; sql.ParamByName("pWHRID").Value = tSession.UserId; sql.ParamByName("pWHSJ").Value = DateTime.Now; sql.ParamByName("XLXSBJD_SQR").Value = tSession.UserName; sql.ParamByName("XLXSBJD_SQRID").Value = tSession.RYID; sql.ParamByName("XLXSBJD_SQRGH").Value = tSession.UserId; sql.ParamByName("XLXSBJD_SQRQ").Value = DateTime.Now.ToString().Trim(); dberp.ExecSQL(sql); TLogicContext lgc = TLogicContext.Current; TWorkflow wf = new TWorkflow(tSession, new System.Web.Caching.Cache()); wf.Enabled = true; wf.UMID = lgc.RefUmId; wf.WFNewInst(wf.GetWFID("XLXSBJ_BJD"), tSession.UserId); dberp.ExecSQL(string.Format(@"update XLXSBJD set XLXSBJD_WPID='{0}', XLXSBJD_WFAWAITER='{1}', XLXSBJD_WFHANDLER='{2}', XLXSBJD_WFINST='{3}',XLXSBJD_WFID='{4}',XLXSBJD_ACTNAME='{5}' where XLXSBJD_BJDID = '{6}' ", wf.WPID, wf.Awaiter, wf.Handler, wf.WFInst, wf.WFID, wf.GetWFActionName(TWFAction.wfaNewInst), sNewBJDID)); #endregion #region 复制明细表 sql.Clear(); sql.Add(" merge into XLXSBJDMX TAG "); sql.Add(" using( "); sql.Add(" select XLXSBJDMX_BJDID, XLXSBJDMX_XH,XLXSBJDMX_XSSX,XLXSBJDMX_XLXHID,XLXSBJDMX_XDXLXHID, XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_XDXLBZID,XLXSBJDMX_DYDJID,XLXSBJDMX_XLYSID,XLXSBJDMX_BJCP, "); sql.Add(" XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLCB,XLXSBJDMX_JGBJJ,XLXSBJDMX_JGBBJ,XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ,XLXSBJDMX_GYKH, "); sql.Add(" XLXSBJDMX_TZQBJJE,XLXSBJDMX_TZBJJE,XLXSBJDMX_BJJE,XLXSBJDMX_CLZL,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_ZDXJ,XLXSBJDMX_ZDXJJCL, "); sql.Add(" XLXSBJDMX_BZ,XLXSBJDMX_BJSDBZ,XLXSBJDMX_CLCBJCLSDBZ,XLXSBJDMX_WHRID,XLXSBJDMX_WHR,XLXSBJDMX_WHSJ,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_WLID,XLXSBJDMX_BJCPSD,XLXSBJDMX_CPMLMC,XLXSBJDMX_WGCPBZ,XLXSBJDMX_JGBBJGXSJ, "); sql.Add(" XLXSBJDMX_JMBGS,XLXSBJDMX_YXJG,XLXSBJDMX_BJDHQCLCBTZ,XLXSBJDMX_JGBBJTZ,XLXSBJDMX_ZDXJBJDID,XLXSBJDMX_ZDXJBJDXH "); sql.Add(" from XLXSBJDMX where XLXSBJDMX_BJDID = :pBJDID "); sql.Add(" ) SOR "); sql.Add(" on ( TAG.XLXSBJDMX_BJDID = :pNBJDID and TAG.XLXSBJDMX_XH = SOR.XLXSBJDMX_XH ) "); sql.Add(" when not matched then insert ( "); sql.Add(" XLXSBJDMX_BJDID,XLXSBJDMX_XH,XLXSBJDMX_XSSX,XLXSBJDMX_XLXHID,XLXSBJDMX_XDXLXHID, XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_XDXLBZID,XLXSBJDMX_DYDJID,XLXSBJDMX_XLYSID,XLXSBJDMX_BJCP, "); sql.Add(" XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLCB,XLXSBJDMX_JGBJJ,XLXSBJDMX_JGBBJ,XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ,XLXSBJDMX_GYKH, "); sql.Add(" XLXSBJDMX_TZQBJJE,XLXSBJDMX_TZBJJE,XLXSBJDMX_BJJE,XLXSBJDMX_CLZL,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_ZDXJ,XLXSBJDMX_ZDXJJCL, "); sql.Add(" XLXSBJDMX_BZ,XLXSBJDMX_BJSDBZ,XLXSBJDMX_CLCBJCLSDBZ,XLXSBJDMX_WHRID,XLXSBJDMX_WHR,XLXSBJDMX_WHSJ,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_WLID,XLXSBJDMX_BJCPSD,XLXSBJDMX_CPMLMC,XLXSBJDMX_WGCPBZ,XLXSBJDMX_JGBBJGXSJ, "); sql.Add(" XLXSBJDMX_JMBGS,XLXSBJDMX_YXJG,XLXSBJDMX_BJDHQCLCBTZ,XLXSBJDMX_JGBBJTZ,XLXSBJDMX_ZDXJBJDID,XLXSBJDMX_ZDXJBJDXH "); sql.Add(" ) "); sql.Add(" values( "); sql.Add(" :pNBJDID,SOR.XLXSBJDMX_XH,SOR.XLXSBJDMX_XSSX,SOR.XLXSBJDMX_XLXHID,SOR.XLXSBJDMX_XDXLXHID,SOR.XLXSBJDMX_XLGGID,SOR.XLXSBJDMX_XLBZID,SOR.XLXSBJDMX_XDXLBZID,SOR.XLXSBJDMX_DYDJID,SOR.XLXSBJDMX_XLYSID,SOR.XLXSBJDMX_BJCP, "); sql.Add(" SOR.XLXSBJDMX_JLDW,SOR.XLXSBJDMX_BJSL,SOR.XLXSBJDMX_BJDHQCLCB,SOR.XLXSBJDMX_CLCB,SOR.XLXSBJDMX_JGBJJ,SOR.XLXSBJDMX_JGBBJ,SOR.XLXSBJDMX_TZQCPBJ,SOR.XLXSBJDMX_TZCPBJ,SOR.XLXSBJDMX_CPBJ,SOR.XLXSBJDMX_GYKH, "); sql.Add(" SOR.XLXSBJDMX_TZQBJJE,SOR.XLXSBJDMX_TZBJJE,SOR.XLXSBJDMX_BJJE,SOR.XLXSBJDMX_CLZL,SOR.XLXSBJDMX_CLCBJCL,SOR.XLXSBJDMX_JGBBJJCL,SOR.XLXSBJDMX_JGBBJJCE,SOR.XLXSBJDMX_ZDXJ,SOR.XLXSBJDMX_ZDXJJCL, "); sql.Add(" SOR.XLXSBJDMX_BZ,SOR.XLXSBJDMX_BJSDBZ,SOR.XLXSBJDMX_CLCBJCLSDBZ,:pWHRID,:pWHR,:pWHSJ,SOR.XLXSBJDMX_JGBBJLJJCL,SOR.XLXSBJDMX_WLID,SOR.XLXSBJDMX_BJCPSD,SOR.XLXSBJDMX_CPMLMC,SOR.XLXSBJDMX_WGCPBZ,SOR.XLXSBJDMX_JGBBJGXSJ, "); sql.Add(" SOR.XLXSBJDMX_JMBGS,SOR.XLXSBJDMX_YXJG,SOR.XLXSBJDMX_BJDHQCLCBTZ,SOR.XLXSBJDMX_JGBBJTZ,SOR.XLXSBJDMX_ZDXJBJDID,SOR.XLXSBJDMX_ZDXJBJDXH "); sql.Add(" ) "); sql.ParamByName("pBJDID").Value = BJDID; sql.ParamByName("pNBJDID").Value = sNewBJDID; sql.ParamByName("pWHR").Value = tSession.UserName; sql.ParamByName("pWHRID").Value = tSession.UserId; sql.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(sql); #endregion #region 复制报价单因子值 sql.Clear(); sql.Add(" merge into XLXSBJDYZZ0 TAG "); sql.Add(" using( "); sql.Add(" select XLXSBJDYZZ0_BJDID,XLXSBJDYZZ0_XH,XLXSBJDYZZ0_YZZ01,XLXSBJDYZZ0_YZZ02,XLXSBJDYZZ0_YZZ03,XLXSBJDYZZ0_YZZ04,XLXSBJDYZZ0_YZZ05, "); sql.Add(" XLXSBJDYZZ0_YZZ06,XLXSBJDYZZ0_YZZ07,XLXSBJDYZZ0_YZZ08,XLXSBJDYZZ0_YZZ09,XLXSBJDYZZ0_YZZ10, "); sql.Add(" XLXSBJDYZZ0_YZZ11,XLXSBJDYZZ0_YZZ12,XLXSBJDYZZ0_YZZ13,XLXSBJDYZZ0_YZZ14,XLXSBJDYZZ0_YZZ15, "); sql.Add(" XLXSBJDYZZ0_YZZ16,XLXSBJDYZZ0_YZZ17,XLXSBJDYZZ0_YZZ18,XLXSBJDYZZ0_YZZ19,XLXSBJDYZZ0_YZZ20 "); sql.Add(" from XLXSBJDYZZ0 where XLXSBJDYZZ0_BJDID = :pBJDID "); sql.Add(" ) SOR "); sql.Add(" on ( TAG.XLXSBJDYZZ0_BJDID = :pNBJDID and TAG.XLXSBJDYZZ0_XH = SOR.XLXSBJDYZZ0_XH ) "); sql.Add(" when not matched then insert ( "); sql.Add(" XLXSBJDYZZ0_BJDID,XLXSBJDYZZ0_XH,XLXSBJDYZZ0_YZZ01,XLXSBJDYZZ0_YZZ02,XLXSBJDYZZ0_YZZ03,XLXSBJDYZZ0_YZZ04,XLXSBJDYZZ0_YZZ05, "); sql.Add(" XLXSBJDYZZ0_YZZ06,XLXSBJDYZZ0_YZZ07,XLXSBJDYZZ0_YZZ08,XLXSBJDYZZ0_YZZ09,XLXSBJDYZZ0_YZZ10, "); sql.Add(" XLXSBJDYZZ0_YZZ11,XLXSBJDYZZ0_YZZ12,XLXSBJDYZZ0_YZZ13,XLXSBJDYZZ0_YZZ14,XLXSBJDYZZ0_YZZ15, "); sql.Add(" XLXSBJDYZZ0_YZZ16,XLXSBJDYZZ0_YZZ17,XLXSBJDYZZ0_YZZ18,XLXSBJDYZZ0_YZZ19,XLXSBJDYZZ0_YZZ20 "); sql.Add(" ) "); sql.Add(" values( "); sql.Add(" :pNBJDID,SOR.XLXSBJDYZZ0_XH,SOR.XLXSBJDYZZ0_YZZ01,SOR.XLXSBJDYZZ0_YZZ02,SOR.XLXSBJDYZZ0_YZZ03,SOR.XLXSBJDYZZ0_YZZ04,SOR.XLXSBJDYZZ0_YZZ05, "); sql.Add(" SOR.XLXSBJDYZZ0_YZZ06,SOR.XLXSBJDYZZ0_YZZ07,SOR.XLXSBJDYZZ0_YZZ08,SOR.XLXSBJDYZZ0_YZZ09,SOR.XLXSBJDYZZ0_YZZ10, "); sql.Add(" SOR.XLXSBJDYZZ0_YZZ11,SOR.XLXSBJDYZZ0_YZZ12,SOR.XLXSBJDYZZ0_YZZ13,SOR.XLXSBJDYZZ0_YZZ14,SOR.XLXSBJDYZZ0_YZZ15, "); sql.Add(" SOR.XLXSBJDYZZ0_YZZ16,SOR.XLXSBJDYZZ0_YZZ17,SOR.XLXSBJDYZZ0_YZZ18,SOR.XLXSBJDYZZ0_YZZ19,SOR.XLXSBJDYZZ0_YZZ20 "); sql.Add(" ) "); sql.ParamByName("pBJDID").Value = BJDID; sql.ParamByName("pNBJDID").Value = sNewBJDID; dberp.ExecSQL(sql); #endregion #region 复制报价单材料成本 sql.Clear(); sql.Add(" merge into XLXSBJDCLCB TAG "); sql.Add(" using( "); sql.Add(" select XLXSBJDCLCB_BJDID,XLXSBJDCLCB_XH,XLXSBJDCLCB_BJCP,XLXSBJDCLCB_JLDW,XLXSBJDCLCB_BJSL, "); sql.Add(" XLXSBJDCLCB_CLSL01,XLXSBJDCLCB_CLSL02,XLXSBJDCLCB_CLSL03,XLXSBJDCLCB_CLSL04,XLXSBJDCLCB_CLSL05,XLXSBJDCLCB_CLSL06,XLXSBJDCLCB_CLSL07,XLXSBJDCLCB_CLSL08,XLXSBJDCLCB_CLSL09,XLXSBJDCLCB_CLSL10,"); sql.Add(" XLXSBJDCLCB_CLSL11,XLXSBJDCLCB_CLSL12,XLXSBJDCLCB_CLSL13,XLXSBJDCLCB_CLSL14,XLXSBJDCLCB_CLSL15,XLXSBJDCLCB_CLSL16,XLXSBJDCLCB_CLSL17,XLXSBJDCLCB_CLSL18,XLXSBJDCLCB_CLSL19,XLXSBJDCLCB_CLSL20,"); sql.Add(" XLXSBJDCLCB_CLSL21,XLXSBJDCLCB_CLSL22,XLXSBJDCLCB_CLSL23,XLXSBJDCLCB_CLSL24,XLXSBJDCLCB_CLSL25,XLXSBJDCLCB_CLSL26,XLXSBJDCLCB_CLSL27,XLXSBJDCLCB_CLSL28,XLXSBJDCLCB_CLSL29,XLXSBJDCLCB_CLSL30,"); sql.Add(" XLXSBJDCLCB_CLSL31,XLXSBJDCLCB_CLSL32,XLXSBJDCLCB_CLSL33,XLXSBJDCLCB_CLSL34,XLXSBJDCLCB_CLSL35,XLXSBJDCLCB_CLSL36,XLXSBJDCLCB_CLSL37,XLXSBJDCLCB_CLSL38,XLXSBJDCLCB_CLSL39,XLXSBJDCLCB_CLSL40,"); sql.Add(" XLXSBJDCLCB_CLSL41,XLXSBJDCLCB_CLSL42,XLXSBJDCLCB_CLSL43,XLXSBJDCLCB_CLSL44,XLXSBJDCLCB_CLSL45,XLXSBJDCLCB_CLSL46,XLXSBJDCLCB_CLSL47,XLXSBJDCLCB_CLSL48,XLXSBJDCLCB_CLSL49,XLXSBJDCLCB_CLSL50,"); sql.Add(" XLXSBJDCLCB_CLSL51,XLXSBJDCLCB_CLSL52,XLXSBJDCLCB_CLSL53,XLXSBJDCLCB_CLSL54,XLXSBJDCLCB_CLSL55,XLXSBJDCLCB_CLSL56,XLXSBJDCLCB_CLSL57,XLXSBJDCLCB_CLSL58,XLXSBJDCLCB_CLSL59,XLXSBJDCLCB_CLSL60,"); sql.Add(" XLXSBJDCLCB_CLSL61,XLXSBJDCLCB_CLSL62,XLXSBJDCLCB_CLSL63,XLXSBJDCLCB_CLSL64,XLXSBJDCLCB_CLSL65,XLXSBJDCLCB_CLSL66,XLXSBJDCLCB_CLSL67,XLXSBJDCLCB_CLSL68,XLXSBJDCLCB_CLSL69,XLXSBJDCLCB_CLSL70,"); sql.Add(" XLXSBJDCLCB_CLSL71,XLXSBJDCLCB_CLSL72,XLXSBJDCLCB_CLSL73,XLXSBJDCLCB_CLSL74,XLXSBJDCLCB_CLSL75,XLXSBJDCLCB_CLSL76,XLXSBJDCLCB_CLSL77,XLXSBJDCLCB_CLSL78,XLXSBJDCLCB_CLSL79,XLXSBJDCLCB_CLSL80,"); sql.Add(" XLXSBJDCLCB_CLDJ01,XLXSBJDCLCB_CLDJ02,XLXSBJDCLCB_CLDJ03,XLXSBJDCLCB_CLDJ04,XLXSBJDCLCB_CLDJ05,XLXSBJDCLCB_CLDJ06,XLXSBJDCLCB_CLDJ07,XLXSBJDCLCB_CLDJ08,XLXSBJDCLCB_CLDJ09,XLXSBJDCLCB_CLDJ10,"); sql.Add(" XLXSBJDCLCB_CLDJ11,XLXSBJDCLCB_CLDJ12,XLXSBJDCLCB_CLDJ13,XLXSBJDCLCB_CLDJ14,XLXSBJDCLCB_CLDJ15,XLXSBJDCLCB_CLDJ16,XLXSBJDCLCB_CLDJ17,XLXSBJDCLCB_CLDJ18,XLXSBJDCLCB_CLDJ19,XLXSBJDCLCB_CLDJ20,"); sql.Add(" XLXSBJDCLCB_CLDJ21,XLXSBJDCLCB_CLDJ22,XLXSBJDCLCB_CLDJ23,XLXSBJDCLCB_CLDJ24,XLXSBJDCLCB_CLDJ25,XLXSBJDCLCB_CLDJ26,XLXSBJDCLCB_CLDJ27,XLXSBJDCLCB_CLDJ28,XLXSBJDCLCB_CLDJ29,XLXSBJDCLCB_CLDJ30,"); sql.Add(" XLXSBJDCLCB_CLDJ31,XLXSBJDCLCB_CLDJ32,XLXSBJDCLCB_CLDJ33,XLXSBJDCLCB_CLDJ34,XLXSBJDCLCB_CLDJ35,XLXSBJDCLCB_CLDJ36,XLXSBJDCLCB_CLDJ37,XLXSBJDCLCB_CLDJ38,XLXSBJDCLCB_CLDJ39,XLXSBJDCLCB_CLDJ40,"); sql.Add(" XLXSBJDCLCB_CLDJ41,XLXSBJDCLCB_CLDJ42,XLXSBJDCLCB_CLDJ43,XLXSBJDCLCB_CLDJ44,XLXSBJDCLCB_CLDJ45,XLXSBJDCLCB_CLDJ46,XLXSBJDCLCB_CLDJ47,XLXSBJDCLCB_CLDJ48,XLXSBJDCLCB_CLDJ49,XLXSBJDCLCB_CLDJ50,"); sql.Add(" XLXSBJDCLCB_CLDJ51,XLXSBJDCLCB_CLDJ52,XLXSBJDCLCB_CLDJ53,XLXSBJDCLCB_CLDJ54,XLXSBJDCLCB_CLDJ55,XLXSBJDCLCB_CLDJ56,XLXSBJDCLCB_CLDJ57,XLXSBJDCLCB_CLDJ58,XLXSBJDCLCB_CLDJ59,XLXSBJDCLCB_CLDJ60,"); sql.Add(" XLXSBJDCLCB_CLDJ61,XLXSBJDCLCB_CLDJ62,XLXSBJDCLCB_CLDJ63,XLXSBJDCLCB_CLDJ64,XLXSBJDCLCB_CLDJ65,XLXSBJDCLCB_CLDJ66,XLXSBJDCLCB_CLDJ67,XLXSBJDCLCB_CLDJ68,XLXSBJDCLCB_CLDJ69,XLXSBJDCLCB_CLDJ70,"); sql.Add(" XLXSBJDCLCB_CLDJ71,XLXSBJDCLCB_CLDJ72,XLXSBJDCLCB_CLDJ73,XLXSBJDCLCB_CLDJ74,XLXSBJDCLCB_CLDJ75,XLXSBJDCLCB_CLDJ76,XLXSBJDCLCB_CLDJ77,XLXSBJDCLCB_CLDJ78,XLXSBJDCLCB_CLDJ79,XLXSBJDCLCB_CLDJ80,"); sql.Add(" XLXSBJDCLCB_CLID01,XLXSBJDCLCB_CLID02,XLXSBJDCLCB_CLID03,XLXSBJDCLCB_CLID04,XLXSBJDCLCB_CLID05,XLXSBJDCLCB_CLID06,XLXSBJDCLCB_CLID07,XLXSBJDCLCB_CLID08,XLXSBJDCLCB_CLID09,XLXSBJDCLCB_CLID10,"); sql.Add(" XLXSBJDCLCB_CLID11,XLXSBJDCLCB_CLID12,XLXSBJDCLCB_CLID13,XLXSBJDCLCB_CLID14,XLXSBJDCLCB_CLID15,XLXSBJDCLCB_CLID16,XLXSBJDCLCB_CLID17,XLXSBJDCLCB_CLID18,XLXSBJDCLCB_CLID19,XLXSBJDCLCB_CLID20,"); sql.Add(" XLXSBJDCLCB_CLID21,XLXSBJDCLCB_CLID22,XLXSBJDCLCB_CLID23,XLXSBJDCLCB_CLID24,XLXSBJDCLCB_CLID25,XLXSBJDCLCB_CLID26,XLXSBJDCLCB_CLID27,XLXSBJDCLCB_CLID28,XLXSBJDCLCB_CLID29,XLXSBJDCLCB_CLID30,"); sql.Add(" XLXSBJDCLCB_CLID31,XLXSBJDCLCB_CLID32,XLXSBJDCLCB_CLID33,XLXSBJDCLCB_CLID34,XLXSBJDCLCB_CLID35,XLXSBJDCLCB_CLID36,XLXSBJDCLCB_CLID37,XLXSBJDCLCB_CLID38,XLXSBJDCLCB_CLID39,XLXSBJDCLCB_CLID40,"); sql.Add(" XLXSBJDCLCB_CLID41,XLXSBJDCLCB_CLID42,XLXSBJDCLCB_CLID43,XLXSBJDCLCB_CLID44,XLXSBJDCLCB_CLID45,XLXSBJDCLCB_CLID46,XLXSBJDCLCB_CLID47,XLXSBJDCLCB_CLID48,XLXSBJDCLCB_CLID49,XLXSBJDCLCB_CLID50,"); sql.Add(" XLXSBJDCLCB_CLID51,XLXSBJDCLCB_CLID52,XLXSBJDCLCB_CLID53,XLXSBJDCLCB_CLID54,XLXSBJDCLCB_CLID55,XLXSBJDCLCB_CLID56,XLXSBJDCLCB_CLID57,XLXSBJDCLCB_CLID58,XLXSBJDCLCB_CLID59,XLXSBJDCLCB_CLID60,"); sql.Add(" XLXSBJDCLCB_CLID61,XLXSBJDCLCB_CLID62,XLXSBJDCLCB_CLID63,XLXSBJDCLCB_CLID64,XLXSBJDCLCB_CLID65,XLXSBJDCLCB_CLID66,XLXSBJDCLCB_CLID67,XLXSBJDCLCB_CLID68,XLXSBJDCLCB_CLID69,XLXSBJDCLCB_CLID70,"); sql.Add(" XLXSBJDCLCB_CLID71,XLXSBJDCLCB_CLID72,XLXSBJDCLCB_CLID73,XLXSBJDCLCB_CLID74,XLXSBJDCLCB_CLID75,XLXSBJDCLCB_CLID76,XLXSBJDCLCB_CLID77,XLXSBJDCLCB_CLID78,XLXSBJDCLCB_CLID79,XLXSBJDCLCB_CLID80,"); sql.Add(" XLXSBJDCLCB_XLXHID,XLXSBJDCLCB_XLGGID,XLXSBJDCLCB_XLBZID,XLXSBJDCLCB_DYDJID,XLXSBJDCLCB_XLYSID,XLXSBJDCLCB_BZ,XLXSBJDCLCB_HSJGBBJ,XLXSBJDCLCB_WSJGBBJ,XLXSBJDCLCB_HSJGBJJ,XLXSBJDCLCB_WSJGBJJ,"); sql.Add(" XLXSBJDCLCB_JGBBJGXSJ,XLXSBJDCLCB_WHR,XLXSBJDCLCB_WHRID,XLXSBJDCLCB_WHSJ "); sql.Add(" from XLXSBJDCLCB where XLXSBJDCLCB_BJDID = :pBJDID "); sql.Add(" ) SOR "); sql.Add(" on ( TAG.XLXSBJDCLCB_BJDID = :pNBJDID and TAG.XLXSBJDCLCB_XH = SOR.XLXSBJDCLCB_XH ) "); sql.Add(" when not matched then insert ( "); sql.Add(" XLXSBJDCLCB_BJDID,XLXSBJDCLCB_XH,XLXSBJDCLCB_BJCP,XLXSBJDCLCB_JLDW,XLXSBJDCLCB_BJSL, "); sql.Add(" XLXSBJDCLCB_CLSL01,XLXSBJDCLCB_CLSL02,XLXSBJDCLCB_CLSL03,XLXSBJDCLCB_CLSL04,XLXSBJDCLCB_CLSL05,XLXSBJDCLCB_CLSL06,XLXSBJDCLCB_CLSL07,XLXSBJDCLCB_CLSL08,XLXSBJDCLCB_CLSL09,XLXSBJDCLCB_CLSL10,"); sql.Add(" XLXSBJDCLCB_CLSL11,XLXSBJDCLCB_CLSL12,XLXSBJDCLCB_CLSL13,XLXSBJDCLCB_CLSL14,XLXSBJDCLCB_CLSL15,XLXSBJDCLCB_CLSL16,XLXSBJDCLCB_CLSL17,XLXSBJDCLCB_CLSL18,XLXSBJDCLCB_CLSL19,XLXSBJDCLCB_CLSL20,"); sql.Add(" XLXSBJDCLCB_CLSL21,XLXSBJDCLCB_CLSL22,XLXSBJDCLCB_CLSL23,XLXSBJDCLCB_CLSL24,XLXSBJDCLCB_CLSL25,XLXSBJDCLCB_CLSL26,XLXSBJDCLCB_CLSL27,XLXSBJDCLCB_CLSL28,XLXSBJDCLCB_CLSL29,XLXSBJDCLCB_CLSL30,"); sql.Add(" XLXSBJDCLCB_CLSL31,XLXSBJDCLCB_CLSL32,XLXSBJDCLCB_CLSL33,XLXSBJDCLCB_CLSL34,XLXSBJDCLCB_CLSL35,XLXSBJDCLCB_CLSL36,XLXSBJDCLCB_CLSL37,XLXSBJDCLCB_CLSL38,XLXSBJDCLCB_CLSL39,XLXSBJDCLCB_CLSL40,"); sql.Add(" XLXSBJDCLCB_CLSL41,XLXSBJDCLCB_CLSL42,XLXSBJDCLCB_CLSL43,XLXSBJDCLCB_CLSL44,XLXSBJDCLCB_CLSL45,XLXSBJDCLCB_CLSL46,XLXSBJDCLCB_CLSL47,XLXSBJDCLCB_CLSL48,XLXSBJDCLCB_CLSL49,XLXSBJDCLCB_CLSL50,"); sql.Add(" XLXSBJDCLCB_CLSL51,XLXSBJDCLCB_CLSL52,XLXSBJDCLCB_CLSL53,XLXSBJDCLCB_CLSL54,XLXSBJDCLCB_CLSL55,XLXSBJDCLCB_CLSL56,XLXSBJDCLCB_CLSL57,XLXSBJDCLCB_CLSL58,XLXSBJDCLCB_CLSL59,XLXSBJDCLCB_CLSL60,"); sql.Add(" XLXSBJDCLCB_CLSL61,XLXSBJDCLCB_CLSL62,XLXSBJDCLCB_CLSL63,XLXSBJDCLCB_CLSL64,XLXSBJDCLCB_CLSL65,XLXSBJDCLCB_CLSL66,XLXSBJDCLCB_CLSL67,XLXSBJDCLCB_CLSL68,XLXSBJDCLCB_CLSL69,XLXSBJDCLCB_CLSL70,"); sql.Add(" XLXSBJDCLCB_CLSL71,XLXSBJDCLCB_CLSL72,XLXSBJDCLCB_CLSL73,XLXSBJDCLCB_CLSL74,XLXSBJDCLCB_CLSL75,XLXSBJDCLCB_CLSL76,XLXSBJDCLCB_CLSL77,XLXSBJDCLCB_CLSL78,XLXSBJDCLCB_CLSL79,XLXSBJDCLCB_CLSL80,"); sql.Add(" XLXSBJDCLCB_CLDJ01,XLXSBJDCLCB_CLDJ02,XLXSBJDCLCB_CLDJ03,XLXSBJDCLCB_CLDJ04,XLXSBJDCLCB_CLDJ05,XLXSBJDCLCB_CLDJ06,XLXSBJDCLCB_CLDJ07,XLXSBJDCLCB_CLDJ08,XLXSBJDCLCB_CLDJ09,XLXSBJDCLCB_CLDJ10,"); sql.Add(" XLXSBJDCLCB_CLDJ11,XLXSBJDCLCB_CLDJ12,XLXSBJDCLCB_CLDJ13,XLXSBJDCLCB_CLDJ14,XLXSBJDCLCB_CLDJ15,XLXSBJDCLCB_CLDJ16,XLXSBJDCLCB_CLDJ17,XLXSBJDCLCB_CLDJ18,XLXSBJDCLCB_CLDJ19,XLXSBJDCLCB_CLDJ20,"); sql.Add(" XLXSBJDCLCB_CLDJ21,XLXSBJDCLCB_CLDJ22,XLXSBJDCLCB_CLDJ23,XLXSBJDCLCB_CLDJ24,XLXSBJDCLCB_CLDJ25,XLXSBJDCLCB_CLDJ26,XLXSBJDCLCB_CLDJ27,XLXSBJDCLCB_CLDJ28,XLXSBJDCLCB_CLDJ29,XLXSBJDCLCB_CLDJ30,"); sql.Add(" XLXSBJDCLCB_CLDJ31,XLXSBJDCLCB_CLDJ32,XLXSBJDCLCB_CLDJ33,XLXSBJDCLCB_CLDJ34,XLXSBJDCLCB_CLDJ35,XLXSBJDCLCB_CLDJ36,XLXSBJDCLCB_CLDJ37,XLXSBJDCLCB_CLDJ38,XLXSBJDCLCB_CLDJ39,XLXSBJDCLCB_CLDJ40,"); sql.Add(" XLXSBJDCLCB_CLDJ41,XLXSBJDCLCB_CLDJ42,XLXSBJDCLCB_CLDJ43,XLXSBJDCLCB_CLDJ44,XLXSBJDCLCB_CLDJ45,XLXSBJDCLCB_CLDJ46,XLXSBJDCLCB_CLDJ47,XLXSBJDCLCB_CLDJ48,XLXSBJDCLCB_CLDJ49,XLXSBJDCLCB_CLDJ50,"); sql.Add(" XLXSBJDCLCB_CLDJ51,XLXSBJDCLCB_CLDJ52,XLXSBJDCLCB_CLDJ53,XLXSBJDCLCB_CLDJ54,XLXSBJDCLCB_CLDJ55,XLXSBJDCLCB_CLDJ56,XLXSBJDCLCB_CLDJ57,XLXSBJDCLCB_CLDJ58,XLXSBJDCLCB_CLDJ59,XLXSBJDCLCB_CLDJ60,"); sql.Add(" XLXSBJDCLCB_CLDJ61,XLXSBJDCLCB_CLDJ62,XLXSBJDCLCB_CLDJ63,XLXSBJDCLCB_CLDJ64,XLXSBJDCLCB_CLDJ65,XLXSBJDCLCB_CLDJ66,XLXSBJDCLCB_CLDJ67,XLXSBJDCLCB_CLDJ68,XLXSBJDCLCB_CLDJ69,XLXSBJDCLCB_CLDJ70,"); sql.Add(" XLXSBJDCLCB_CLDJ71,XLXSBJDCLCB_CLDJ72,XLXSBJDCLCB_CLDJ73,XLXSBJDCLCB_CLDJ74,XLXSBJDCLCB_CLDJ75,XLXSBJDCLCB_CLDJ76,XLXSBJDCLCB_CLDJ77,XLXSBJDCLCB_CLDJ78,XLXSBJDCLCB_CLDJ79,XLXSBJDCLCB_CLDJ80,"); sql.Add(" XLXSBJDCLCB_CLID01,XLXSBJDCLCB_CLID02,XLXSBJDCLCB_CLID03,XLXSBJDCLCB_CLID04,XLXSBJDCLCB_CLID05,XLXSBJDCLCB_CLID06,XLXSBJDCLCB_CLID07,XLXSBJDCLCB_CLID08,XLXSBJDCLCB_CLID09,XLXSBJDCLCB_CLID10,"); sql.Add(" XLXSBJDCLCB_CLID11,XLXSBJDCLCB_CLID12,XLXSBJDCLCB_CLID13,XLXSBJDCLCB_CLID14,XLXSBJDCLCB_CLID15,XLXSBJDCLCB_CLID16,XLXSBJDCLCB_CLID17,XLXSBJDCLCB_CLID18,XLXSBJDCLCB_CLID19,XLXSBJDCLCB_CLID20,"); sql.Add(" XLXSBJDCLCB_CLID21,XLXSBJDCLCB_CLID22,XLXSBJDCLCB_CLID23,XLXSBJDCLCB_CLID24,XLXSBJDCLCB_CLID25,XLXSBJDCLCB_CLID26,XLXSBJDCLCB_CLID27,XLXSBJDCLCB_CLID28,XLXSBJDCLCB_CLID29,XLXSBJDCLCB_CLID30,"); sql.Add(" XLXSBJDCLCB_CLID31,XLXSBJDCLCB_CLID32,XLXSBJDCLCB_CLID33,XLXSBJDCLCB_CLID34,XLXSBJDCLCB_CLID35,XLXSBJDCLCB_CLID36,XLXSBJDCLCB_CLID37,XLXSBJDCLCB_CLID38,XLXSBJDCLCB_CLID39,XLXSBJDCLCB_CLID40,"); sql.Add(" XLXSBJDCLCB_CLID41,XLXSBJDCLCB_CLID42,XLXSBJDCLCB_CLID43,XLXSBJDCLCB_CLID44,XLXSBJDCLCB_CLID45,XLXSBJDCLCB_CLID46,XLXSBJDCLCB_CLID47,XLXSBJDCLCB_CLID48,XLXSBJDCLCB_CLID49,XLXSBJDCLCB_CLID50,"); sql.Add(" XLXSBJDCLCB_CLID51,XLXSBJDCLCB_CLID52,XLXSBJDCLCB_CLID53,XLXSBJDCLCB_CLID54,XLXSBJDCLCB_CLID55,XLXSBJDCLCB_CLID56,XLXSBJDCLCB_CLID57,XLXSBJDCLCB_CLID58,XLXSBJDCLCB_CLID59,XLXSBJDCLCB_CLID60,"); sql.Add(" XLXSBJDCLCB_CLID61,XLXSBJDCLCB_CLID62,XLXSBJDCLCB_CLID63,XLXSBJDCLCB_CLID64,XLXSBJDCLCB_CLID65,XLXSBJDCLCB_CLID66,XLXSBJDCLCB_CLID67,XLXSBJDCLCB_CLID68,XLXSBJDCLCB_CLID69,XLXSBJDCLCB_CLID70,"); sql.Add(" XLXSBJDCLCB_CLID71,XLXSBJDCLCB_CLID72,XLXSBJDCLCB_CLID73,XLXSBJDCLCB_CLID74,XLXSBJDCLCB_CLID75,XLXSBJDCLCB_CLID76,XLXSBJDCLCB_CLID77,XLXSBJDCLCB_CLID78,XLXSBJDCLCB_CLID79,XLXSBJDCLCB_CLID80,"); sql.Add(" XLXSBJDCLCB_XLXHID,XLXSBJDCLCB_XLGGID,XLXSBJDCLCB_XLBZID,XLXSBJDCLCB_DYDJID,XLXSBJDCLCB_XLYSID,XLXSBJDCLCB_BZ,XLXSBJDCLCB_HSJGBBJ,XLXSBJDCLCB_WSJGBBJ,XLXSBJDCLCB_HSJGBJJ,XLXSBJDCLCB_WSJGBJJ,"); sql.Add(" XLXSBJDCLCB_JGBBJGXSJ,XLXSBJDCLCB_WHR,XLXSBJDCLCB_WHRID,XLXSBJDCLCB_WHSJ "); sql.Add(" ) "); sql.Add(" values( "); sql.Add(" :pNBJDID,SOR.XLXSBJDCLCB_XH,SOR.XLXSBJDCLCB_BJCP,SOR.XLXSBJDCLCB_JLDW,SOR.XLXSBJDCLCB_BJSL, "); sql.Add(" SOR.XLXSBJDCLCB_CLSL01,SOR.XLXSBJDCLCB_CLSL02,SOR.XLXSBJDCLCB_CLSL03,SOR.XLXSBJDCLCB_CLSL04,SOR.XLXSBJDCLCB_CLSL05,SOR.XLXSBJDCLCB_CLSL06,SOR.XLXSBJDCLCB_CLSL07,SOR.XLXSBJDCLCB_CLSL08,SOR.XLXSBJDCLCB_CLSL09,SOR.XLXSBJDCLCB_CLSL10,"); sql.Add(" SOR.XLXSBJDCLCB_CLSL11,SOR.XLXSBJDCLCB_CLSL12,SOR.XLXSBJDCLCB_CLSL13,SOR.XLXSBJDCLCB_CLSL14,SOR.XLXSBJDCLCB_CLSL15,SOR.XLXSBJDCLCB_CLSL16,SOR.XLXSBJDCLCB_CLSL17,SOR.XLXSBJDCLCB_CLSL18,SOR.XLXSBJDCLCB_CLSL19,SOR.XLXSBJDCLCB_CLSL20,"); sql.Add(" SOR.XLXSBJDCLCB_CLSL21,SOR.XLXSBJDCLCB_CLSL22,SOR.XLXSBJDCLCB_CLSL23,SOR.XLXSBJDCLCB_CLSL24,SOR.XLXSBJDCLCB_CLSL25,SOR.XLXSBJDCLCB_CLSL26,SOR.XLXSBJDCLCB_CLSL27,SOR.XLXSBJDCLCB_CLSL28,SOR.XLXSBJDCLCB_CLSL29,SOR.XLXSBJDCLCB_CLSL30,"); sql.Add(" SOR.XLXSBJDCLCB_CLSL31,SOR.XLXSBJDCLCB_CLSL32,SOR.XLXSBJDCLCB_CLSL33,SOR.XLXSBJDCLCB_CLSL34,SOR.XLXSBJDCLCB_CLSL35,SOR.XLXSBJDCLCB_CLSL36,SOR.XLXSBJDCLCB_CLSL37,SOR.XLXSBJDCLCB_CLSL38,SOR.XLXSBJDCLCB_CLSL39,SOR.XLXSBJDCLCB_CLSL40,"); sql.Add(" SOR.XLXSBJDCLCB_CLSL41,SOR.XLXSBJDCLCB_CLSL42,SOR.XLXSBJDCLCB_CLSL43,SOR.XLXSBJDCLCB_CLSL44,SOR.XLXSBJDCLCB_CLSL45,SOR.XLXSBJDCLCB_CLSL46,SOR.XLXSBJDCLCB_CLSL47,SOR.XLXSBJDCLCB_CLSL48,SOR.XLXSBJDCLCB_CLSL49,SOR.XLXSBJDCLCB_CLSL50,"); sql.Add(" SOR.XLXSBJDCLCB_CLSL51,SOR.XLXSBJDCLCB_CLSL52,SOR.XLXSBJDCLCB_CLSL53,SOR.XLXSBJDCLCB_CLSL54,SOR.XLXSBJDCLCB_CLSL55,SOR.XLXSBJDCLCB_CLSL56,SOR.XLXSBJDCLCB_CLSL57,SOR.XLXSBJDCLCB_CLSL58,SOR.XLXSBJDCLCB_CLSL59,SOR.XLXSBJDCLCB_CLSL60,"); sql.Add(" SOR.XLXSBJDCLCB_CLSL61,SOR.XLXSBJDCLCB_CLSL62,SOR.XLXSBJDCLCB_CLSL63,SOR.XLXSBJDCLCB_CLSL64,SOR.XLXSBJDCLCB_CLSL65,SOR.XLXSBJDCLCB_CLSL66,SOR.XLXSBJDCLCB_CLSL67,SOR.XLXSBJDCLCB_CLSL68,SOR.XLXSBJDCLCB_CLSL69,SOR.XLXSBJDCLCB_CLSL70,"); sql.Add(" SOR.XLXSBJDCLCB_CLSL71,SOR.XLXSBJDCLCB_CLSL72,SOR.XLXSBJDCLCB_CLSL73,SOR.XLXSBJDCLCB_CLSL74,SOR.XLXSBJDCLCB_CLSL75,SOR.XLXSBJDCLCB_CLSL76,SOR.XLXSBJDCLCB_CLSL77,SOR.XLXSBJDCLCB_CLSL78,SOR.XLXSBJDCLCB_CLSL79,SOR.XLXSBJDCLCB_CLSL80,"); sql.Add(" SOR.XLXSBJDCLCB_CLDJ01,SOR.XLXSBJDCLCB_CLDJ02,SOR.XLXSBJDCLCB_CLDJ03,SOR.XLXSBJDCLCB_CLDJ04,SOR.XLXSBJDCLCB_CLDJ05,SOR.XLXSBJDCLCB_CLDJ06,SOR.XLXSBJDCLCB_CLDJ07,SOR.XLXSBJDCLCB_CLDJ08,SOR.XLXSBJDCLCB_CLDJ09,SOR.XLXSBJDCLCB_CLDJ10,"); sql.Add(" SOR.XLXSBJDCLCB_CLDJ11,SOR.XLXSBJDCLCB_CLDJ12,SOR.XLXSBJDCLCB_CLDJ13,SOR.XLXSBJDCLCB_CLDJ14,SOR.XLXSBJDCLCB_CLDJ15,SOR.XLXSBJDCLCB_CLDJ16,SOR.XLXSBJDCLCB_CLDJ17,SOR.XLXSBJDCLCB_CLDJ18,SOR.XLXSBJDCLCB_CLDJ19,SOR.XLXSBJDCLCB_CLDJ20,"); sql.Add(" SOR.XLXSBJDCLCB_CLDJ21,SOR.XLXSBJDCLCB_CLDJ22,SOR.XLXSBJDCLCB_CLDJ23,SOR.XLXSBJDCLCB_CLDJ24,SOR.XLXSBJDCLCB_CLDJ25,SOR.XLXSBJDCLCB_CLDJ26,SOR.XLXSBJDCLCB_CLDJ27,SOR.XLXSBJDCLCB_CLDJ28,SOR.XLXSBJDCLCB_CLDJ29,SOR.XLXSBJDCLCB_CLDJ30,"); sql.Add(" SOR.XLXSBJDCLCB_CLDJ31,SOR.XLXSBJDCLCB_CLDJ32,SOR.XLXSBJDCLCB_CLDJ33,SOR.XLXSBJDCLCB_CLDJ34,SOR.XLXSBJDCLCB_CLDJ35,SOR.XLXSBJDCLCB_CLDJ36,SOR.XLXSBJDCLCB_CLDJ37,SOR.XLXSBJDCLCB_CLDJ38,SOR.XLXSBJDCLCB_CLDJ39,SOR.XLXSBJDCLCB_CLDJ40,"); sql.Add(" SOR.XLXSBJDCLCB_CLDJ41,SOR.XLXSBJDCLCB_CLDJ42,SOR.XLXSBJDCLCB_CLDJ43,SOR.XLXSBJDCLCB_CLDJ44,SOR.XLXSBJDCLCB_CLDJ45,SOR.XLXSBJDCLCB_CLDJ46,SOR.XLXSBJDCLCB_CLDJ47,SOR.XLXSBJDCLCB_CLDJ48,SOR.XLXSBJDCLCB_CLDJ49,SOR.XLXSBJDCLCB_CLDJ50,"); sql.Add(" SOR.XLXSBJDCLCB_CLDJ51,SOR.XLXSBJDCLCB_CLDJ52,SOR.XLXSBJDCLCB_CLDJ53,SOR.XLXSBJDCLCB_CLDJ54,SOR.XLXSBJDCLCB_CLDJ55,SOR.XLXSBJDCLCB_CLDJ56,SOR.XLXSBJDCLCB_CLDJ57,SOR.XLXSBJDCLCB_CLDJ58,SOR.XLXSBJDCLCB_CLDJ59,SOR.XLXSBJDCLCB_CLDJ60,"); sql.Add(" SOR.XLXSBJDCLCB_CLDJ61,SOR.XLXSBJDCLCB_CLDJ62,SOR.XLXSBJDCLCB_CLDJ63,SOR.XLXSBJDCLCB_CLDJ64,SOR.XLXSBJDCLCB_CLDJ65,SOR.XLXSBJDCLCB_CLDJ66,SOR.XLXSBJDCLCB_CLDJ67,SOR.XLXSBJDCLCB_CLDJ68,SOR.XLXSBJDCLCB_CLDJ69,SOR.XLXSBJDCLCB_CLDJ70,"); sql.Add(" SOR.XLXSBJDCLCB_CLDJ71,SOR.XLXSBJDCLCB_CLDJ72,SOR.XLXSBJDCLCB_CLDJ73,SOR.XLXSBJDCLCB_CLDJ74,SOR.XLXSBJDCLCB_CLDJ75,SOR.XLXSBJDCLCB_CLDJ76,SOR.XLXSBJDCLCB_CLDJ77,SOR.XLXSBJDCLCB_CLDJ78,SOR.XLXSBJDCLCB_CLDJ79,SOR.XLXSBJDCLCB_CLDJ80,"); sql.Add(" SOR.XLXSBJDCLCB_CLID01,SOR.XLXSBJDCLCB_CLID02,SOR.XLXSBJDCLCB_CLID03,SOR.XLXSBJDCLCB_CLID04,SOR.XLXSBJDCLCB_CLID05,SOR.XLXSBJDCLCB_CLID06,SOR.XLXSBJDCLCB_CLID07,SOR.XLXSBJDCLCB_CLID08,SOR.XLXSBJDCLCB_CLID09,SOR.XLXSBJDCLCB_CLID10,"); sql.Add(" SOR.XLXSBJDCLCB_CLID11,SOR.XLXSBJDCLCB_CLID12,SOR.XLXSBJDCLCB_CLID13,SOR.XLXSBJDCLCB_CLID14,SOR.XLXSBJDCLCB_CLID15,SOR.XLXSBJDCLCB_CLID16,SOR.XLXSBJDCLCB_CLID17,SOR.XLXSBJDCLCB_CLID18,SOR.XLXSBJDCLCB_CLID19,SOR.XLXSBJDCLCB_CLID20,"); sql.Add(" SOR.XLXSBJDCLCB_CLID21,SOR.XLXSBJDCLCB_CLID22,SOR.XLXSBJDCLCB_CLID23,SOR.XLXSBJDCLCB_CLID24,SOR.XLXSBJDCLCB_CLID25,SOR.XLXSBJDCLCB_CLID26,SOR.XLXSBJDCLCB_CLID27,SOR.XLXSBJDCLCB_CLID28,SOR.XLXSBJDCLCB_CLID29,SOR.XLXSBJDCLCB_CLID30,"); sql.Add(" SOR.XLXSBJDCLCB_CLID31,SOR.XLXSBJDCLCB_CLID32,SOR.XLXSBJDCLCB_CLID33,SOR.XLXSBJDCLCB_CLID34,SOR.XLXSBJDCLCB_CLID35,SOR.XLXSBJDCLCB_CLID36,SOR.XLXSBJDCLCB_CLID37,SOR.XLXSBJDCLCB_CLID38,SOR.XLXSBJDCLCB_CLID39,SOR.XLXSBJDCLCB_CLID40,"); sql.Add(" SOR.XLXSBJDCLCB_CLID41,SOR.XLXSBJDCLCB_CLID42,SOR.XLXSBJDCLCB_CLID43,SOR.XLXSBJDCLCB_CLID44,SOR.XLXSBJDCLCB_CLID45,SOR.XLXSBJDCLCB_CLID46,SOR.XLXSBJDCLCB_CLID47,SOR.XLXSBJDCLCB_CLID48,SOR.XLXSBJDCLCB_CLID49,SOR.XLXSBJDCLCB_CLID50,"); sql.Add(" SOR.XLXSBJDCLCB_CLID51,SOR.XLXSBJDCLCB_CLID52,SOR.XLXSBJDCLCB_CLID53,SOR.XLXSBJDCLCB_CLID54,SOR.XLXSBJDCLCB_CLID55,SOR.XLXSBJDCLCB_CLID56,SOR.XLXSBJDCLCB_CLID57,SOR.XLXSBJDCLCB_CLID58,SOR.XLXSBJDCLCB_CLID59,SOR.XLXSBJDCLCB_CLID60,"); sql.Add(" SOR.XLXSBJDCLCB_CLID61,SOR.XLXSBJDCLCB_CLID62,SOR.XLXSBJDCLCB_CLID63,SOR.XLXSBJDCLCB_CLID64,SOR.XLXSBJDCLCB_CLID65,SOR.XLXSBJDCLCB_CLID66,SOR.XLXSBJDCLCB_CLID67,SOR.XLXSBJDCLCB_CLID68,SOR.XLXSBJDCLCB_CLID69,SOR.XLXSBJDCLCB_CLID70,"); sql.Add(" SOR.XLXSBJDCLCB_CLID71,SOR.XLXSBJDCLCB_CLID72,SOR.XLXSBJDCLCB_CLID73,SOR.XLXSBJDCLCB_CLID74,SOR.XLXSBJDCLCB_CLID75,SOR.XLXSBJDCLCB_CLID76,SOR.XLXSBJDCLCB_CLID77,SOR.XLXSBJDCLCB_CLID78,SOR.XLXSBJDCLCB_CLID79,SOR.XLXSBJDCLCB_CLID80,"); sql.Add(" SOR.XLXSBJDCLCB_XLXHID,SOR.XLXSBJDCLCB_XLGGID,SOR.XLXSBJDCLCB_XLBZID,SOR.XLXSBJDCLCB_DYDJID,SOR.XLXSBJDCLCB_XLYSID,SOR.XLXSBJDCLCB_BZ,SOR.XLXSBJDCLCB_HSJGBBJ,SOR.XLXSBJDCLCB_WSJGBBJ,SOR.XLXSBJDCLCB_HSJGBJJ,SOR.XLXSBJDCLCB_WSJGBJJ,"); sql.Add(" SOR.XLXSBJDCLCB_JGBBJGXSJ,:pWHR,:pWHRID,:pWHSJ "); sql.Add(" ) "); sql.ParamByName("pBJDID").Value = BJDID; sql.ParamByName("pNBJDID").Value = sNewBJDID; sql.ParamByName("pWHR").Value = tSession.UserName; sql.ParamByName("pWHRID").Value = tSession.UserId; sql.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(sql); #endregion #region 复制BJDCLYLBL if (bjflxx.XLXSBJFL_TZYLBL.Equals("Y")) { sql.Clear(); sql.Add(" insert into BJDCLYLBL( "); sql.Add(" BJDCLYLBL_BJDID,BJDCLYLBL_XH,BJDCLYLBL_BBID,BJDCLYLBL_XLXHID,BJDCLYLBL_XLGGID, "); sql.Add(" BJDCLYLBL_XLBZID,BJDCLYLBL_DYDJID,BJDCLYLBL_XLYSID,BJDCLYLBL_YLBL01,"); sql.Add(" BJDCLYLBL_YLBL02,BJDCLYLBL_YLBL03,BJDCLYLBL_YLBL04,BJDCLYLBL_YLBL05,BJDCLYLBL_YLBL06,BJDCLYLBL_YLBL07,BJDCLYLBL_YLBL08,BJDCLYLBL_YLBL09,BJDCLYLBL_YLBL10,BJDCLYLBL_YLBL11,"); sql.Add(" BJDCLYLBL_YLBL12,BJDCLYLBL_YLBL13,BJDCLYLBL_YLBL14,BJDCLYLBL_YLBL15,BJDCLYLBL_YLBL16,BJDCLYLBL_YLBL17,BJDCLYLBL_YLBL18,BJDCLYLBL_YLBL19,BJDCLYLBL_YLBL20,BJDCLYLBL_YLBL21,"); sql.Add(" BJDCLYLBL_YLBL22,BJDCLYLBL_YLBL23,BJDCLYLBL_YLBL24,BJDCLYLBL_YLBL25,BJDCLYLBL_YLBL26,BJDCLYLBL_YLBL27,BJDCLYLBL_YLBL28,BJDCLYLBL_YLBL29,BJDCLYLBL_YLBL30,BJDCLYLBL_YLBL31,"); sql.Add(" BJDCLYLBL_YLBL32,BJDCLYLBL_YLBL33,BJDCLYLBL_YLBL34,BJDCLYLBL_YLBL35,BJDCLYLBL_YLBL36,BJDCLYLBL_YLBL37,BJDCLYLBL_YLBL38,BJDCLYLBL_YLBL39,BJDCLYLBL_YLBL40,BJDCLYLBL_YLBL41,"); sql.Add(" BJDCLYLBL_YLBL42,BJDCLYLBL_YLBL43,BJDCLYLBL_YLBL44,BJDCLYLBL_YLBL45,BJDCLYLBL_YLBL46,BJDCLYLBL_YLBL47,BJDCLYLBL_YLBL48,BJDCLYLBL_YLBL49,BJDCLYLBL_YLBL50,BJDCLYLBL_YLBL51,"); sql.Add(" BJDCLYLBL_YLBL52,BJDCLYLBL_YLBL53,BJDCLYLBL_YLBL54,BJDCLYLBL_YLBL55,BJDCLYLBL_YLBL56,BJDCLYLBL_YLBL57,BJDCLYLBL_YLBL58,BJDCLYLBL_YLBL59,BJDCLYLBL_YLBL60,BJDCLYLBL_YLBL61,"); sql.Add(" BJDCLYLBL_YLBL62,BJDCLYLBL_YLBL63,BJDCLYLBL_YLBL64,BJDCLYLBL_YLBL65,BJDCLYLBL_YLBL66,BJDCLYLBL_YLBL67,BJDCLYLBL_YLBL68,BJDCLYLBL_YLBL69,BJDCLYLBL_YLBL70,BJDCLYLBL_YLBL71,"); sql.Add(" BJDCLYLBL_YLBL72,BJDCLYLBL_YLBL73,BJDCLYLBL_YLBL74,BJDCLYLBL_YLBL75,BJDCLYLBL_YLBL76,BJDCLYLBL_YLBL77,BJDCLYLBL_YLBL78,BJDCLYLBL_YLBL79,BJDCLYLBL_YLBL80"); sql.Add(" ) "); sql.Add(" select :pBJDID,BJDCLYLBL_XH,BJDCLYLBL_BBID,BJDCLYLBL_XLXHID,BJDCLYLBL_XLGGID, "); sql.Add(" BJDCLYLBL_XLBZID,BJDCLYLBL_DYDJID,BJDCLYLBL_XLYSID,BJDCLYLBL_YLBL01,"); sql.Add(" BJDCLYLBL_YLBL02,BJDCLYLBL_YLBL03,BJDCLYLBL_YLBL04,BJDCLYLBL_YLBL05,BJDCLYLBL_YLBL06,BJDCLYLBL_YLBL07,BJDCLYLBL_YLBL08,BJDCLYLBL_YLBL09,BJDCLYLBL_YLBL10,BJDCLYLBL_YLBL11,"); sql.Add(" BJDCLYLBL_YLBL12,BJDCLYLBL_YLBL13,BJDCLYLBL_YLBL14,BJDCLYLBL_YLBL15,BJDCLYLBL_YLBL16,BJDCLYLBL_YLBL17,BJDCLYLBL_YLBL18,BJDCLYLBL_YLBL19,BJDCLYLBL_YLBL20,BJDCLYLBL_YLBL21,"); sql.Add(" BJDCLYLBL_YLBL22,BJDCLYLBL_YLBL23,BJDCLYLBL_YLBL24,BJDCLYLBL_YLBL25,BJDCLYLBL_YLBL26,BJDCLYLBL_YLBL27,BJDCLYLBL_YLBL28,BJDCLYLBL_YLBL29,BJDCLYLBL_YLBL30,BJDCLYLBL_YLBL31,"); sql.Add(" BJDCLYLBL_YLBL32,BJDCLYLBL_YLBL33,BJDCLYLBL_YLBL34,BJDCLYLBL_YLBL35,BJDCLYLBL_YLBL36,BJDCLYLBL_YLBL37,BJDCLYLBL_YLBL38,BJDCLYLBL_YLBL39,BJDCLYLBL_YLBL40,BJDCLYLBL_YLBL41,"); sql.Add(" BJDCLYLBL_YLBL42,BJDCLYLBL_YLBL43,BJDCLYLBL_YLBL44,BJDCLYLBL_YLBL45,BJDCLYLBL_YLBL46,BJDCLYLBL_YLBL47,BJDCLYLBL_YLBL48,BJDCLYLBL_YLBL49,BJDCLYLBL_YLBL50,BJDCLYLBL_YLBL51,"); sql.Add(" BJDCLYLBL_YLBL52,BJDCLYLBL_YLBL53,BJDCLYLBL_YLBL54,BJDCLYLBL_YLBL55,BJDCLYLBL_YLBL56,BJDCLYLBL_YLBL57,BJDCLYLBL_YLBL58,BJDCLYLBL_YLBL59,BJDCLYLBL_YLBL60,BJDCLYLBL_YLBL61,"); sql.Add(" BJDCLYLBL_YLBL62,BJDCLYLBL_YLBL63,BJDCLYLBL_YLBL64,BJDCLYLBL_YLBL65,BJDCLYLBL_YLBL66,BJDCLYLBL_YLBL67,BJDCLYLBL_YLBL68,BJDCLYLBL_YLBL69,BJDCLYLBL_YLBL70,BJDCLYLBL_YLBL71,"); sql.Add(" BJDCLYLBL_YLBL72,BJDCLYLBL_YLBL73,BJDCLYLBL_YLBL74,BJDCLYLBL_YLBL75,BJDCLYLBL_YLBL76,BJDCLYLBL_YLBL77,BJDCLYLBL_YLBL78,BJDCLYLBL_YLBL79,BJDCLYLBL_YLBL80"); sql.Add(" from BJDCLYLBL"); sql.Add(" where BJDCLYLBL_BJDID=:pOLDBJDID"); sql.ParamByName("pBJDID").Value = sNewBJDID; sql.ParamByName("pOLDBJDID").Value = BJDID; dberp.ExecSQL(sql); } #endregion #region 复制报价单基价因子值 sql.Clear(); sql.Add(" merge into XLXSBJDJJYZ TAG "); sql.Add(" using( "); sql.Add(" select XLXSBJDJJYZ_BJDID,XLXSBJDJJYZ_XH,XLXSBJDJJYZ_YZZ01,XLXSBJDJJYZ_YZZ02,XLXSBJDJJYZ_YZZ03,XLXSBJDJJYZ_YZZ04,XLXSBJDJJYZ_YZZ05, "); sql.Add(" XLXSBJDJJYZ_YZZ06,XLXSBJDJJYZ_YZZ07,XLXSBJDJJYZ_YZZ08,XLXSBJDJJYZ_YZZ09,XLXSBJDJJYZ_YZZ10,XLXSBJDJJYZ_YSJDZ "); sql.Add(" from XLXSBJDJJYZ where XLXSBJDJJYZ_BJDID = :pBJDID "); sql.Add(" ) SOR "); sql.Add(" on ( TAG.XLXSBJDJJYZ_BJDID = :pNBJDID and TAG.XLXSBJDJJYZ_XH = SOR.XLXSBJDJJYZ_XH ) "); sql.Add(" when not matched then insert ( "); sql.Add(" XLXSBJDJJYZ_BJDID,XLXSBJDJJYZ_XH,XLXSBJDJJYZ_YZZ01,XLXSBJDJJYZ_YZZ02,XLXSBJDJJYZ_YZZ03,XLXSBJDJJYZ_YZZ04,XLXSBJDJJYZ_YZZ05, "); sql.Add(" XLXSBJDJJYZ_YZZ06,XLXSBJDJJYZ_YZZ07,XLXSBJDJJYZ_YZZ08,XLXSBJDJJYZ_YZZ09,XLXSBJDJJYZ_YZZ10,XLXSBJDJJYZ_YSJDZ "); sql.Add(" ) "); sql.Add(" values( "); sql.Add(" :pNBJDID,SOR.XLXSBJDJJYZ_XH,SOR.XLXSBJDJJYZ_YZZ01,SOR.XLXSBJDJJYZ_YZZ02,SOR.XLXSBJDJJYZ_YZZ03,SOR.XLXSBJDJJYZ_YZZ04,SOR.XLXSBJDJJYZ_YZZ05, "); sql.Add(" SOR.XLXSBJDJJYZ_YZZ06,SOR.XLXSBJDJJYZ_YZZ07,SOR.XLXSBJDJJYZ_YZZ08,SOR.XLXSBJDJJYZ_YZZ09,SOR.XLXSBJDJJYZ_YZZ10,SOR.XLXSBJDJJYZ_YSJDZ "); sql.Add(" ) "); sql.ParamByName("pBJDID").Value = BJDID; sql.ParamByName("pNBJDID").Value = sNewBJDID; dberp.ExecSQL(sql); #endregion #region 复制报价单材料行情 sql.Clear(); sql.Add(" merge into XLXSBJDCLHQ TAG "); sql.Add(" using( "); sql.Add(" select XLXSBJDCLHQ_BJDID,XLXSBJDCLHQ_BJCLID,XLXSBJDCLHQ_HSJG,XLXSBJDCLHQ_HSJGF,XLXSBJDCLHQ_WSJG,XLXSBJDCLHQ_WSJGF, "); sql.Add(" XLXSBJDCLHQ_WHR,XLXSBJDCLHQ_WHRID,XLXSBJDCLHQ_WHSJ,XLXSBJDCLHQ_JGYBJCLID1,XLXSBJDCLHQ_HSJG1,XLXSBJDCLHQ_WSJG1,XLXSBJDCLHQ_JGBL1 "); sql.Add(" from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID = :pBJDID "); sql.Add(" ) SOR "); sql.Add(" on ( TAG.XLXSBJDCLHQ_BJDID = :pNBJDID and TAG.XLXSBJDCLHQ_BJCLID = SOR.XLXSBJDCLHQ_BJCLID ) "); sql.Add(" when not matched then insert ( "); sql.Add(" XLXSBJDCLHQ_BJDID,XLXSBJDCLHQ_BJCLID,XLXSBJDCLHQ_HSJG,XLXSBJDCLHQ_HSJGF,XLXSBJDCLHQ_WSJG,XLXSBJDCLHQ_WSJGF, "); sql.Add(" XLXSBJDCLHQ_WHR,XLXSBJDCLHQ_WHRID,XLXSBJDCLHQ_WHSJ,XLXSBJDCLHQ_JGYBJCLID1,XLXSBJDCLHQ_HSJG1,XLXSBJDCLHQ_WSJG1,XLXSBJDCLHQ_JGBL1 "); sql.Add(" ) "); sql.Add(" values( "); sql.Add(" :pNBJDID,SOR.XLXSBJDCLHQ_BJCLID,SOR.XLXSBJDCLHQ_HSJG,SOR.XLXSBJDCLHQ_HSJGF,SOR.XLXSBJDCLHQ_WSJG,SOR.XLXSBJDCLHQ_WSJGF, "); sql.Add(" :pWHR,:pWHRID,:pWHSJ,SOR.XLXSBJDCLHQ_JGYBJCLID1,SOR.XLXSBJDCLHQ_HSJG1,SOR.XLXSBJDCLHQ_WSJG1,SOR.XLXSBJDCLHQ_JGBL1 "); sql.Add(" ) "); sql.ParamByName("pBJDID").Value = BJDID; sql.ParamByName("pNBJDID").Value = sNewBJDID; sql.ParamByName("pWHR").Value = tSession.UserName; sql.ParamByName("pWHRID").Value = tSession.UserId; sql.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(sql); #endregion #region 复制报价单物料行情 sql.Clear(); sql.Add(" merge into XLXSBJDWLHQ TAG "); sql.Add(" using( "); sql.Add(" select XLXSBJDWLHQ_BJDID,XLXSBJDWLHQ_WLID,XLXSBJDWLHQ_WSJG,XLXSBJDWLHQ_HSJG,XLXSBJDWLHQ_WSJGF,XLXSBJDWLHQ_HSJGF, "); sql.Add(" XLXSBJDWLHQ_WHR,XLXSBJDWLHQ_WHRID,XLXSBJDWLHQ_WHSJ,XLXSBJDWLHQ_JGYBJCLID1,XLXSBJDWLHQ_HSJG1,XLXSBJDWLHQ_WSJG1,XLXSBJDWLHQ_JGBL1 "); sql.Add(" from XLXSBJDWLHQ where XLXSBJDWLHQ_BJDID = :pBJDID "); sql.Add(" ) SOR "); sql.Add(" on ( TAG.XLXSBJDWLHQ_BJDID = :pNBJDID and TAG.XLXSBJDWLHQ_WLID = SOR.XLXSBJDWLHQ_WLID ) "); sql.Add(" when not matched then insert ( "); sql.Add(" XLXSBJDWLHQ_BJDID,XLXSBJDWLHQ_WLID,XLXSBJDWLHQ_WSJG,XLXSBJDWLHQ_HSJG,XLXSBJDWLHQ_WSJGF,XLXSBJDWLHQ_HSJGF, "); sql.Add(" XLXSBJDWLHQ_WHR,XLXSBJDWLHQ_WHRID,XLXSBJDWLHQ_WHSJ,XLXSBJDWLHQ_JGYBJCLID1,XLXSBJDWLHQ_HSJG1,XLXSBJDWLHQ_WSJG1,XLXSBJDWLHQ_JGBL1 "); sql.Add(" ) "); sql.Add(" values( "); sql.Add(" :pNBJDID,SOR.XLXSBJDWLHQ_WLID,SOR.XLXSBJDWLHQ_WSJG,SOR.XLXSBJDWLHQ_HSJG,SOR.XLXSBJDWLHQ_WSJGF,SOR.XLXSBJDWLHQ_HSJGF, "); sql.Add(" :pWHR,:pWHRID,:pWHSJ,SOR.XLXSBJDWLHQ_JGYBJCLID1,SOR.XLXSBJDWLHQ_HSJG1,SOR.XLXSBJDWLHQ_WSJG1,SOR.XLXSBJDWLHQ_JGBL1 "); sql.Add(" ) "); sql.ParamByName("pBJDID").Value = BJDID; sql.ParamByName("pNBJDID").Value = sNewBJDID; sql.ParamByName("pWHR").Value = tSession.UserName; sql.ParamByName("pWHRID").Value = tSession.UserId; sql.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(sql); #endregion XLBJDUtils.UpdateTJBZ(dberp, sNewBJDID, "Insert"); dberp.CommitTrans(); } catch (Exception ex) { rstr = "Error###" + ex.Message; dberp.RollbackTrans(); } return rstr; } //获取签约合同登记单号 public string GetBJQYJJDID(string sBJDID) { string sJJDID = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select HT_JJDID from HT,(select max(HT_JJDID)as maxJJDID from HT where HT_WPID<>'ZZZY' group by ISNULL(HT_HTBH, ' '))A "); SQL.Add(" where maxJJDID=HT_JJDID and ((HT_BGQBJDID=:pBJDID and ISNULL(HT_WPID,'ZZZZ')<>'ZZZZ') or (HT_BJDID=:pBJDID) ) "); SQL.ParamByName("pBJDID").Value = sBJDID.Trim(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { sJJDID = ds.Tables[0].Rows[0]["HT_JJDID"].ToString().Trim(); } else { SQL.Clear(); SQL.Add(" select XSHTFL_XSHTFLID,XSHTFL_XSHTFLMC from XSHTFL where 1=1 order by XSHTFL_XSHTFLID "); DataSet dsHTFL = dberp.OpenDataSet(SQL); if (dsHTFL.Tables[0].Rows.Count > 0) { //New BJFL#分别为需要新增销售合同登记的标志和默认报价分类标志 sJJDID = "NewBJFL#" + dsHTFL.Tables[0].Rows[0]["XSHTFL_XSHTFLID"].ToString().Trim() + "," + dsHTFL.Tables[0].Rows[0]["XSHTFL_XSHTFLMC"].ToString().Trim(); } else { sJJDID = "New"; } } return sJJDID; } //获取销售合同分类 public List GetXSHTFL() { List codeList = new List(); string sSQL = "select rtrim(XSHTFL_XSHTFLID)as CodeID, rtrim(XSHTFL_XSHTFLMC) as CodeMC from XSHTFL where 1=1 order by XSHTFL_XSHTFLID"; CodeInfo emptycdinfo = new CodeInfo(); setCodeList(sSQL, ref codeList); return codeList; } private string GetKHMC(string sKHID) { string sKHMC = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select KH_MC from KH where KH_KHID=:pKHID order by isnull(KH_TYBZ,'N'),KH_KHID"); SQL.ParamByName("pKHID").Value = sKHID; DataSet dsKH = dberp.OpenDataSet(SQL); if (dsKH.Tables[0].Rows.Count > 0) { sKHMC = dsKH.Tables[0].Rows[0]["KH_MC"].ToString().Trim(); } return sKHMC; } private string GetKHID(string sKHMC) { string sKHID = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select KH_KHID from KH where KH_MC=:pKHMC order by isnull(KH_TYBZ,'N'),KH_KHID"); SQL.ParamByName("pKHMC").Value = sKHMC; DataSet dsKH = dberp.OpenDataSet(SQL); if (dsKH.Tables[0].Rows.Count > 0) { sKHID = dsKH.Tables[0].Rows[0]["KH_KHID"].ToString().Trim(); } return sKHID; } //插入销售合同登记 public string InsertXSHT(string sBJDID, string sXSHTFLID) { string sRestr = ""; string sHTBJDKZ = GetHTBJDKZ(sBJDID); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select BJD_BJDID,BJD_KHID,BJD_KHMC,BJD_BJRQ,BJD_BMID,BJD_TXY,ISNULL(HTJE,0) as ZBZJE,BJD_TBID,convert(char(100),BJD_KHMC) as HTMC, BJD_XMID,BJD_XMJC,BM_SYDWID, "); SQL.Add(" BJD_FKFS, XLXSBJD_XZQHID,BJD_SHDD,BJD_LXR,BJD_TEL,BJD_YSFS,BJD_DOCGRPID,BJD_FJS "); SQL.Add(" from BJD "); SQL.Add(" left join BM on BM_BMID = BJD_BMID "); SQL.Add(" left join XLXSBJD on XLXSBJD_BJDID= BJD_BJDID "); SQL.Add(" left join (select BJDMX_BJDID,sum(BJDMX_ZBJE) as HTJE "); SQL.Add(" from BJDMX where 1=1 group by BJDMX_BJDID)A on BJDMX_BJDID=BJD_BJDID "); SQL.Add(" where BJD_BJDID = :pBJDID"); SQL.ParamByName("pBJDID").Value = sBJDID.Trim(); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { string sKHID = ds.Tables[0].Rows[0]["BJD_KHID"].ToString().Trim(); string sBMID = ds.Tables[0].Rows[0]["BJD_BMID"].ToString().Trim(); string sTXY = ds.Tables[0].Rows[0]["BJD_TXY"].ToString().Trim(); string sHTMC = ds.Tables[0].Rows[0]["HTMC"].ToString().Trim(); if (sKHID.Equals("")) { sRestr = "Error###客户编码不允许为空!";//Error###为插入失败的标志,返回客户端后,客户端依据是否存在此字符串判断插入是否成功并给出提示。 return sRestr; } if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from KH where KH_KHID = '{0}' and isnull(KH_TYBZ,'N') <> 'Y'", sKHID))) { sRestr = "Error###客户已停用或不存在,不允许确定!"; return sRestr; } if (sBMID.Equals("")) { sRestr = "Error###销售部门不允许为空!"; return sRestr; } if (sTXY.Equals("")) { sRestr = "Error###销售员不允许为空!"; return sRestr; } if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XSY where XSY_TXY = '{0}'", sTXY))) { sRestr = "Error###销售员不存在,不允许确认!"; return sRestr; } if (sHTMC.Equals("")) { sRestr = "Error###合同名称不允许为空!"; return sRestr; } string sJJDID = GetJJDH(); string sMessage = ""; string sHTBH = N_PUBLIC2.XSHTUtils.GetNewHTBH(sXSHTFLID, "", "", sTXY, sKHID, DateTime.Now.Date, sBMID, "", out sMessage); if (!sMessage.Equals("")) { throw new Exception(sMessage); } double dDOCGRPID = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["BJD_DOCGRPID"].ToString().Trim()); double dFJS = 0; double dDOCID = 0; if (dDOCGRPID > 0) { dFJS = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["BJD_FJS"].ToString().Trim()); List fileIdList = new List(); DocFileInfo[] docFileInfo = FileService.GetFilesInfo(dDOCGRPID); for (int i = 0; i < dFJS; i++) { fileIdList.Add(docFileInfo[i].FileId); } DocFileResult docGR = FileService.CopyFiles(fileIdList.ToArray(), 0); dDOCID = docGR.GroupId; } #region 插入销售合同登记 dberp.BeginTrans(); try { SQL.Clear(); SQL.Add("insert into HT "); SQL.Add("(HT_JJDID, HT_XSHTFLID, HT_HTBH, HT_TBID,HT_SYDWID, "); SQL.Add("HT_KHIDE, HT_MC, HT_HTJE, HT_HTYF, HT_XSBMID, "); SQL.Add("HT_DLRQ, HT_GDRQ, HT_HTBZ, HT_FJS, HT_WHR,"); SQL.Add("HT_WHSJ, HT_KHHTBH, HT_DABH, HT_DLBMID, "); SQL.Add("HT_XSZRR, HT_GD, HT_DOCGRPID, HT_WHRID, HT_DLRGH, "); SQL.Add("HT_DLR, HT_DLRID, HT_HTFLBM, HT_HYID, HT_XMMC, "); SQL.Add("HT_XKXH, HT_BZHT, HT_SCDL,HT_BJDID,HT_HTBG, "); SQL.Add("HT_FKFS, HT_XZQHID, HT_HTBDLX, HT_DJRQ, "); SQL.Add("HT_SHDD,HT_LXR,HT_LXDH,HT_YSFS,HT_KGRQ,HT_WGRQ) "); SQL.Add("values( "); SQL.Add(":HT_JJDID,:HT_XSHTFLID,:HT_HTBH,:HT_TBID,:pSYDWID, "); SQL.Add(":HT_KHIDE,:HT_MC,:HT_HTJE,0,:HT_XSBMID, "); SQL.Add(":HT_DLRQ,NULL,NULL,:HT_FJS,:HT_WHR, "); SQL.Add(":HT_WHSJ,NULL,NULL, ' ', "); SQL.Add(":HT_XSZRR,'N',:HT_DOCGRPID,:HT_WHRID,:HT_DLRGH, "); SQL.Add(":HT_DLR,:HT_DLRID,' ',NULL,:HT_XMMC, "); SQL.Add(" 'N','N','N',:HT_BJDID,'N', "); SQL.Add(" :pFKFS, :pXZQHID,'1',:HT_DJRQ, "); SQL.Add(":HT_SHDD, :HT_LXR, :HT_LXDH, :HT_YSFS, :HT_KGRQ, :HT_WGRQ ) "); SQL.ParamByName("HT_JJDID").Value = sJJDID; SQL.ParamByName("HT_XSHTFLID").Value = sXSHTFLID.Trim(); SQL.ParamByName("HT_HTBH").Value = sHTBH; SQL.ParamByName("HT_TBID").Value = ds.Tables[0].Rows[0]["BJD_TBID"].ToString().Trim(); SQL.ParamByName("pSYDWID").Value = ds.Tables[0].Rows[0]["BM_SYDWID"].ToString().Trim(); SQL.ParamByName("HT_KHIDE").Value = sKHID; SQL.ParamByName("HT_MC").Value = sHTMC; SQL.ParamByName("HT_HTJE").Value = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["ZBZJE"].ToString().Trim()); SQL.ParamByName("HT_XSBMID").Value = sBMID; SQL.ParamByName("HT_XSZRR").Value = sTXY; SQL.ParamByName("HT_XMMC").Value = ds.Tables[0].Rows[0]["BJD_XMJC"].ToString().Trim(); SQL.ParamByName("HT_BJDID").Value = sBJDID; SQL.ParamByName("HT_SHDD").Value = ds.Tables[0].Rows[0]["BJD_SHDD"].ToString().Trim(); SQL.ParamByName("HT_LXR").Value = ds.Tables[0].Rows[0]["BJD_LXR"].ToString().Trim(); SQL.ParamByName("HT_LXDH").Value = ds.Tables[0].Rows[0]["BJD_TEL"].ToString().Trim(); SQL.ParamByName("HT_YSFS").Value = ds.Tables[0].Rows[0]["BJD_YSFS"].ToString().Trim(); SQL.ParamByName("HT_KGRQ").Value = DateTime.Now.ToShortDateString().Trim(); SQL.ParamByName("HT_WGRQ").Value = DateTime.Now.AddMonths(1).ToShortDateString().Trim(); SQL.ParamByName("pFKFS").Value = ds.Tables[0].Rows[0]["BJD_FKFS"].ToString().Trim(); SQL.ParamByName("pXZQHID").Value = ds.Tables[0].Rows[0]["XLXSBJD_XZQHID"].ToString().Trim(); SQL.ParamByName("HT_DLRQ").Value = DateTime.Now.ToShortDateString().Trim(); SQL.ParamByName("HT_DJRQ").Value = DateTime.Now.ToShortDateString().Trim(); SQL.ParamByName("HT_DLRGH").Value = tSession.UserId; SQL.ParamByName("HT_DLR").Value = tSession.UserName; SQL.ParamByName("HT_DLRID").Value = tSession.RYID; SQL.ParamByName("HT_WHR").Value = tSession.UserName; SQL.ParamByName("HT_WHRID").Value = tSession.UserId; SQL.ParamByName("HT_WHSJ").Value = DateTime.Now; SQL.ParamByName("HT_DOCGRPID").Value = dDOCID; SQL.ParamByName("HT_FJS").Value = dFJS; dberp.ExecSQL(SQL); #region 插入明细 SQL.Clear(); SQL.Add("insert into HTMX "); SQL.Add("(HTMX_JJDID,HTMX_ZHTBH, HTMX_XH, HTMX_WLID, HTMX_JLDW, "); SQL.Add("HTMX_HSXS,HTMX_XQSL,HTMX_ZZSL, "); SQL.Add("HTMX_BJDID,HTMX_BJDXH,HTMX_DZSC, "); SQL.Add("HTMX_HSJG, HTMX_HSJE, HTMX_WSJG, HTMX_WSJE, "); SQL.Add("HTMX_BZ, HTMX_WHR,HTMX_WHRID,HTMX_WHSJ) "); SQL.Add("select "); SQL.Add(":pJJDID,:pHTBH,ROW_NUMBER() over(order by BJDMX_BJDXH),BJDMX_WLID,BJDMX_JLDW, "); SQL.Add("BJDMX_HSXS,BJDMX_ZBSL,WL_ZZSL, "); SQL.Add("BJDMX_BJDID,BJDMX_BJDXH,BJDMX_DZSC, "); SQL.Add("case when BJDMX_BJWS<>'Y' then BJDMX_JG else BJDMX_JG*(1+WL_ZZSL/100) end ,BJDMX_ZBJE,case when BJDMX_BJWS<>'Y' then BJDMX_JG/(1+WL_ZZSL/100) else BJDMX_JG end,round(BJDMX_ZBJE/(1+WL_ZZSL/100),2), "); SQL.Add(":BJDMX_BZ,:XSHTBD_WHR, :XSHTBD_WHRID, :XSHTBD_WHSJ "); SQL.Add("from BJDMX,WL "); SQL.Add("where BJDMX_BJDID=:pBJDID and BJDMX_WLID=WL_WLID and NE(BJDMX_ZBSL,0) "); SQL.ParamByName("pJJDID").Value = sJJDID; SQL.ParamByName("pHTBH").Value = sHTBH; SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("BJDMX_BZ").Value = ""; SQL.ParamByName("XSHTBD_WHR").Value = tSession.UserName; SQL.ParamByName("XSHTBD_WHRID").Value = tSession.UserId; SQL.ParamByName("XSHTBD_WHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); #endregion TWorkflow wf = new TWorkflow(tSession, new System.Web.Caching.Cache()); wf.Enabled = true; wf.WFNewInst(wf.GetWFID("XSHTDJ"), tSession.UserId); dberp.ExecSQL(string.Format(@"update HT set HT_WFID = '{0}', HT_WPID = '{1}', HT_WFAWAITER= '{2}',HT_WFHANDLER = '{3}',HT_WFINST = {4}, HT_ACTNAME = '{5}' where HT_JJDID='{6}' ", wf.WFID, wf.WPID, wf.Awaiter, wf.Handler, wf.WFInst, wf.GetWFActionName(TWFAction.wfaNewInst), sJJDID)); dberp.CommitTrans(); sRestr = sJJDID; } catch (Exception ex) { dberp.RollbackTrans(); sRestr = "Error###" + ex.Message; } #endregion } else { if (sHTBJDKZ.Equals("1")) sRestr = "Error###当前线缆销售报价单未进行报价反馈!"; else { SQL.Clear(); SQL.Add(" select XLXSBJD_KHID,XLXSBJD_KH,convert(char(100),XLXSBJD_KH) as HTMC,XLXSBJD_XSBMID,XLXSBJD_TXY,XLXSBJD_XZQHID,XLXSBJD_DOCGRPID,XLXSBJD_FJS from XLXSBJD where XLXSBJD_BJDID = :pBJDID "); SQL.ParamByName("pBJDID").Value = sBJDID.Trim(); ds = dberp.OpenDataSet(SQL); string sKHID = ds.Tables[0].Rows[0]["XLXSBJD_KHID"].ToString().Trim(); string sKH = ds.Tables[0].Rows[0]["XLXSBJD_KH"].ToString().Trim(); string sBMID = ds.Tables[0].Rows[0]["XLXSBJD_XSBMID"].ToString().Trim(); string sTXY = ds.Tables[0].Rows[0]["XLXSBJD_TXY"].ToString().Trim(); string sHTMC = ds.Tables[0].Rows[0]["HTMC"].ToString().Trim(); if (sKHID.Equals("")) { if (!sKH.Equals("")) { sKHID = GetKHID(sKH); } } if (sKH.Equals("")) { if (!sKHID.Equals("")) { sKH = GetKHMC(sKHID); } } if (sHTMC.Equals("")) { if (sKH.Length > 100) sHTMC = sKH.Substring(0, 100); else sHTMC = sKH; } if (sKHID.Equals("")) { sRestr = "Error###客户编码不允许为空!";//Error###为插入失败的标志,返回客户端后,客户端依据是否存在此字符串判断插入是否成功并给出提示。 return sRestr; } if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from KH where KH_KHID = '{0}' and isnull(KH_TYBZ,'N') <> 'Y'", sKHID))) { sRestr = "Error###客户已停用或不存在,不允许确定!"; return sRestr; } if (sBMID.Equals("")) { sRestr = "Error###销售部门不允许为空!"; return sRestr; } if (sTXY.Equals("")) { sRestr = "Error###销售员不允许为空!"; return sRestr; } if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XSY where XSY_TXY = '{0}'", sTXY))) { sRestr = "Error###销售员不存在,不允许确认!"; return sRestr; } if (sHTMC.Equals("")) { sRestr = "Error###客户名称不允许为空!"; return sRestr; } string sJJDID = GetJJDH(); string sMessage = ""; string sHTBH = N_PUBLIC2.XSHTUtils.GetNewHTBH(sXSHTFLID, "", "", sTXY, sKHID, DateTime.Now.Date, sBMID, "", out sMessage); if (!sMessage.Equals("")) { throw new Exception(sMessage); } double dDOCGRPID = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJD_DOCGRPID"].ToString().Trim()); double dFJS = 0; double dDOCID = 0; if (dDOCGRPID > 0) { dFJS = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJD_FJS"].ToString().Trim()); List fileIdList = new List(); DocFileInfo[] docFileInfo = FileService.GetFilesInfo(dDOCGRPID); for (int i = 0; i < dFJS; i++) { fileIdList.Add(docFileInfo[i].FileId); } DocFileResult docGR = FileService.CopyFiles(fileIdList.ToArray(), 0); dDOCID = docGR.GroupId; } #region 插入销售合同登记 dberp.BeginTrans(); try { SQL.Clear(); SQL.Add("insert into HT "); SQL.Add("(HT_JJDID, HT_XSHTFLID, HT_HTBH,HT_KHIDE,HT_MC,HT_XSBMID,HT_XSZRR,HT_BJDID,HT_KGRQ,HT_WGRQ,HT_XZQHID,HT_DLRQ,HT_DJRQ,"); SQL.Add("HT_DLRGH,HT_DLR,HT_DLRID,HT_WHR,HT_WHRID,HT_WHSJ,HT_DOCGRPID,HT_FJS) "); SQL.Add("values( "); SQL.Add(":HT_JJDID,:HT_XSHTFLID,:HT_HTBH,:HT_KHIDE,:HT_MC,:HT_XSBMID,:HT_XSZRR,:HT_BJDID,:HT_KGRQ,:HT_WGRQ,:HT_XZQHID,:HT_DLRQ,:HT_DJRQ,"); SQL.Add(":HT_DLRGH,:HT_DLR,:HT_DLRID,:HT_WHR,:HT_WHRID,:HT_WHSJ,:HT_DOCGRPID,:HT_FJS) "); SQL.ParamByName("HT_JJDID").Value = sJJDID; SQL.ParamByName("HT_XSHTFLID").Value = sXSHTFLID.Trim(); SQL.ParamByName("HT_HTBH").Value = sHTBH; SQL.ParamByName("HT_KHIDE").Value = sKHID; SQL.ParamByName("HT_MC").Value = sHTMC; SQL.ParamByName("HT_XSBMID").Value = sBMID; SQL.ParamByName("HT_XSZRR").Value = sTXY; SQL.ParamByName("HT_BJDID").Value = sBJDID; SQL.ParamByName("HT_KGRQ").Value = DateTime.Now.ToShortDateString().Trim(); SQL.ParamByName("HT_WGRQ").Value = DateTime.Now.AddMonths(1).ToShortDateString().Trim(); SQL.ParamByName("pXZQHID").Value = ds.Tables[0].Rows[0]["XLXSBJD_XZQHID"].ToString().Trim(); SQL.ParamByName("HT_DLRQ").Value = DateTime.Now.ToShortDateString().Trim(); SQL.ParamByName("HT_DJRQ").Value = DateTime.Now.ToShortDateString().Trim(); SQL.ParamByName("HT_DLRGH").Value = tSession.UserId; SQL.ParamByName("HT_DLR").Value = tSession.UserName; SQL.ParamByName("HT_DLRID").Value = tSession.RYID; SQL.ParamByName("HT_WHR").Value = tSession.UserName; SQL.ParamByName("HT_WHRID").Value = tSession.UserId; SQL.ParamByName("HT_WHSJ").Value = DateTime.Now; SQL.ParamByName("HT_DOCGRPID").Value = dDOCID; SQL.ParamByName("HT_FJS").Value = dFJS; dberp.ExecSQL(SQL); TWorkflow wf = new TWorkflow(tSession, new System.Web.Caching.Cache()); wf.Enabled = true; wf.WFNewInst(wf.GetWFID("XSHTDJ"), tSession.UserId); dberp.ExecSQL(string.Format(@"update HT set HT_WFID = '{0}', HT_WPID = '{1}', HT_WFAWAITER= '{2}',HT_WFHANDLER = '{3}',HT_WFINST = {4}, HT_ACTNAME = '{5}' where HT_JJDID='{6}' ", wf.WFID, wf.WPID, wf.Awaiter, wf.Handler, wf.WFInst, wf.GetWFActionName(TWFAction.wfaNewInst), sJJDID)); dberp.CommitTrans(); sRestr = sJJDID; } catch (Exception ex) { dberp.RollbackTrans(); sRestr = "Error###" + ex.Message; } #endregion } } return sRestr; } private string GetJJDH() { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSql = new TSQL(dberp); sSql.Clear(); sSql.Add("select MAX(HT_JJDID) as ID from HT "); sSql.Add("where HT_JJDID like '" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString().PadLeft(2, '0') + "%'"); sSql.Add(" and len(HT_JJDID)=10"); DataSet ds = dberp.OpenDataSet(sSql); if (ds.Tables[0].Rows.Count > 0 && !ds.Tables[0].Rows[0]["ID"].ToString().Trim().Equals("")) { int sXH = N_MISPRO.Utility.CMISproConvert.StrToInt(ds.Tables[0].Rows[0]["ID"].ToString().Trim().Substring(6)) + 1; return DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString().PadLeft(2, '0') + sXH.ToString().PadLeft(4, '0'); } else { return DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString().PadLeft(2, '0') + "0001"; } } private string GetTXYZJM(string sTXY) { string sRzjm = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); sSQL.Add("select XSY_ZJM from XSY where XSY_TXY = :pTXY"); sSQL.ParamByName("pTXY").Value = sTXY.Trim(); DataSet ds = dberp.OpenDataSet(sSQL); if (ds.Tables[0].Rows.Count > 0) { sRzjm = ds.Tables[0].Rows[0]["XSY_ZJM"].ToString().Trim(); } return sRzjm; } private string GetMRDYYS() { string sRstr = "N"; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860060); if (!(pzxx.XLXSBJPZ_BBYSXH == "0") && !string.IsNullOrEmpty(pzxx.XLXSBJPZ_BBYSXH)) sRstr = "Y"; return sRstr; } private string GetDWMC(string sSYDWID) { string sDWMC = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); sSQL.Add("select GS_GSMC from GS where GS_SYDWID = :pSYDWID"); sSQL.ParamByName("pSYDWID").Value = sSYDWID.Trim(); DataSet ds = dberp.OpenDataSet(sSQL); if (ds.Tables[0].Rows.Count > 0) { sDWMC = ds.Tables[0].Rows[0]["GS_GSMC"].ToString().Trim(); } return sDWMC; } private DataSet LoadFJXXSZ() { string sSQL = @"select XLXSBJKZXXSZ_BH as BH, XLXSBJKZXXSZ_MC as MC, XLXSBJKZXXSZ_SJLX as SJLX, XLXSBJKZXXSZ_DYZD as DYZD, isnull(XLXSBJKZXXSZ_BT,'N') as BT, XLXSBJKZXXSZ_SRFS as SRFS, XLXSBJKZXXSZ_WIDTH as KZXXWIDTH,XLXSBJKZXXSZ_ROWS as KZXXROWS, XLXSBJKZXXSZ_JLDW as JLDW, XLXSBJKZXXSZ_XSBZ as XSBZ,XLXSBJKZXXSZ_WHBZ as WHBZ,XLXSBJKZXXSZ_SYBJFLID from XLXSBJKZXXSZ where 1=1 order by XLXSBJKZXXSZ_BJSX, XLXSBJKZXXSZ_BH "; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(sSQL); DataSet ds = dberp.OpenDataSet(SQL); return ds; } private DataSet GetDs_XLXSBJDMX(string sBJDID) { string sBJU002 = tSession.GetOption(100860000, "BJU002"); int iXSWS = string.IsNullOrEmpty(sBJU002) ? 5 : CMISproConvert.StrToInt(sBJU002); if (iXSWS < 0) iXSWS = 0; else if (iXSWS > 8) iXSWS = 8; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Add(string.Format(@"select XLXSBJDMX_BJDID,XLXSBJDMX_XH, OLD_XLXSBJDMX_XH,XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID, XLXSBJDMX_XLYSID,XLXSBJDMX_WLID, XLXSBJDMX_CPMLMC,HasCPMLID,XLXSBJDMX_BJCP,XLWLXX, XLXSBJDMX_WGCPBZ,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLCB,XLXSBJDMX_JGBJJ,XLXSBJDMX_JGBBJ, TZYZ_BJ01,TZYZ_BJ02,TZYZ_BJ03,TZYZ_BJ04,TZYZ_BJ05,TZYZ_BJ06,TZYZ_BJ07,TZYZ_BJ08,TZYZ_BJ09,TZYZ_BJ10, XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ,XLXSBJDMX_TZQBJJE,XLXSBJDMX_TZBJJE,XLXSBJDMX_BJJE, TZHDJ, XLXSBJDMX_CLZL,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_ZDXJ,XLXSBJDMX_ZDXJJCL, XLXSBJDMX_BZ,XLXSBJDMX_BJCPSD,XLXSBJDMX_BJSDBZ,XLXSBJDMX_CLCBJCLSDBZ,XLXSBJDMX_WHRID,XLXSBJDMX_WHR,XLXSBJDMX_WHSJ, HasCLQD,HasYLDZSQ,UpdJJYZList,XLXSBJDMX_BJLY,XLXSBJDMX_BJTJCZ,'N' as PFYSQKBZ,HasFDJL from (select ROW_NUMBER()over(order by XLXSBJDMX_XSSX,XLXSBJDMX_XH) as RNum, XLXSBJDMX_BJDID,XLXSBJDMX_XH, XLXSBJDMX_XH as OLD_XLXSBJDMX_XH,XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, rtrim(XLXSBJDMX_XLBZID)||'|'||rtrim(XLXSBJDMX_XLBZID)||'|'||rtrim(XLBZ_XLBZLXMC) as XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID, rtrim(XLXSBJDMX_XLYSID)||'|'||rtrim(XLYSB_XLYSMC) as XLXSBJDMX_XLYSID,XLXSBJDMX_WLID, XLXSBJDMX_CPMLMC, case (case when ISNULL(A.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(B.XLXSBJXHML_CPMLID,' ') else ISNULL(A.XLXSBJXHML_CPMLID,' ') end) when ' ' then ' ' else rtrim(case when ISNULL(A.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(B.XLXSBJXHML_CPMLID,' ') else ISNULL(A.XLXSBJXHML_CPMLID,' ') end) || '|'|| rtrim(XLXSCPML_CPMLMC) end as HasCPMLID, XLXSBJDMX_BJCP,' ' as XLWLXX, ISNULL(XLXSBJDMX_WGCPBZ,'N') as XLXSBJDMX_WGCPBZ,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLCB,XLXSBJDMX_JGBJJ,XLXSBJDMX_JGBBJ, XLXSBJDYZZ0_YZZ01 as TZYZ_BJ01,XLXSBJDYZZ0_YZZ02 as TZYZ_BJ02,XLXSBJDYZZ0_YZZ03 as TZYZ_BJ03,XLXSBJDYZZ0_YZZ04 as TZYZ_BJ04,XLXSBJDYZZ0_YZZ05 as TZYZ_BJ05, XLXSBJDYZZ0_YZZ06 as TZYZ_BJ06,XLXSBJDYZZ0_YZZ07 as TZYZ_BJ07,XLXSBJDYZZ0_YZZ08 as TZYZ_BJ08,XLXSBJDYZZ0_YZZ09 as TZYZ_BJ09,XLXSBJDYZZ0_YZZ10 as TZYZ_BJ10, XLXSBJDYZZ0_YZZ11 as TZYZ_BJ11,XLXSBJDYZZ0_YZZ12 as TZYZ_BJ12,XLXSBJDYZZ0_YZZ13 as TZYZ_BJ13,XLXSBJDYZZ0_YZZ14 as TZYZ_BJ14,XLXSBJDYZZ0_YZZ15 as TZYZ_BJ15, XLXSBJDYZZ0_YZZ16 as TZYZ_BJ16,XLXSBJDYZZ0_YZZ17 as TZYZ_BJ17,XLXSBJDYZZ0_YZZ18 as TZYZ_BJ18,XLXSBJDYZZ0_YZZ19 as TZYZ_BJ19,XLXSBJDYZZ0_YZZ20 as TZYZ_BJ20, XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ,XLXSBJDMX_TZQBJJE,XLXSBJDMX_TZBJJE,XLXSBJDMX_BJJE, case when XLXSBJDMX_BJSL=0 then 0 else RoundFix(XLXSBJDMX_BJJE/XLXSBJDMX_BJSL,{0}) end as TZHDJ, XLXSBJDMX_CLZL,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE, XLXSBJDMX_ZDXJ,XLXSBJDMX_ZDXJJCL, XLXSBJDMX_BZ,XLXSBJDMX_BJCPSD,XLXSBJDMX_BJSDBZ,XLXSBJDMX_CLCBJCLSDBZ,XLXSBJDMX_WHRID,XLXSBJDMX_WHR,XLXSBJDMX_WHSJ, case when isnull(XLXSCLQD_WPID,' ')='ZZZZ' then 'Y' else 'N' end as HasCLQD, case when ((ISNULL(XLXSBJYLZD_WPID,' ')= '0060' or ISNULL(XLXSBJYLZD_WPID,' ')= 'ZZZZ') and isnull(XLXSBJYLZDMX_BZDBZ,'N') ='Y' and isnull(XLXSBJYLZDMX_BJDXH,0) <> 0) then 'N' when (ISNULL(XLXSBJYLZD_WPID,' ')<> ' ' and isnull(XLXSBJYLZDMX_BJDXH,0) <> 0) then 'Y' else 'N' end as HasYLDZSQ, case when isnull(XLXSJGB_MXBH,' ')='JGB' then ' ' else rtrim(convert(char,XLXSBJDJJYZ_YZZ01))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ02))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ03)) ||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ04))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ05))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ06)) ||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ07))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ08))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ09)) ||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ10))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YSJDZ)) end as UpdJJYZList,XLXSBJDMX_BJLY,XLXSBJDMX_BJTJCZ,case when isnull(XLXSBJDMXFD_BJDID,' ') = ' ' then 'N' else 'Y' end as HasFDJL from XLXSBJDMX left join XLBZ on XLBZ_XLBZID = XLXSBJDMX_XLBZID left join XLYSB on XLYSB_XLYSID = XLXSBJDMX_XLYSID left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID=XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH=XLXSBJDMX_XH left join XLXSBJDJJYZ on XLXSBJDJJYZ_BJDID=XLXSBJDMX_BJDID and XLXSBJDJJYZ_XH=XLXSBJDMX_XH left join XLXSBJD on XLXSBJD_BJDID=XLXSBJDMX_BJDID left join XLXSJGB on XLXSJGB_JGBID=XLXSBJD_JGBID left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=isnull(XLXSBJDMX_DYDJID,' ') left join ( select XLXSBJYLZD_BJDID,XLXSBJYLZD_SQDH,XLXSBJYLZD_WPID,XLXSBJYLZDMX_BJDXH,XLXSBJYLZDMX_BZDBZ from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZD_SQDH = XLXSBJYLZDMX_SQDH where 1=1 ) YLZDMX on XLXSBJYLZD_BJDID = XLXSBJDMX_BJDID and XLXSBJYLZDMX_BJDXH = XLXSBJDMX_XH left join XLXSBJXHML A on A.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and A.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') left join XLXSBJXHML B on B.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and B.XLXSBJXHML_DYDJID = ' ' left join XLXSCPML on XLXSCPML_CPMLID = case when ISNULL(A.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(B.XLXSBJXHML_CPMLID,' ') else ISNULL(A.XLXSBJXHML_CPMLID,' ') end left join XLXSBJDMXFD on XLXSBJDMXFD_BJDID = XLXSBJDMX_BJDID and XLXSBJDMXFD_BJDXH = XLXSBJDMX_XH where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID ) BJD where 1=1 order by RNum ", iXSWS.ToString())); SQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID; return dberp.OpenDataSet(SQL); } private DataSet GetDs_XLXSBJD(string sBJDID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Add(@" select XLXSBJD_BJDID, XLXSBJD_JGBID,XLXSBJD_CLHQJGBID, XLXSBJD_BJFLID, XLXSBJD_KHID, XLXSBJD_XSQYID, XLXSBJD_WPID,XLXSBJD_SYDWID, XLXSBJD_BJRQ, XLXSBJD_XSJLMC, XLXSBJD_TXY, XLXSBJD_XSBMID, XLXSBJD_KH, XLXSBJD_KHLXR,XLXSBJD_LXDH,XLXSBJD_CZ, XLXSBJD_PJLX, XLXSBJD_JZBJHS, XLXSBJD_XMMC, XLXSBJD_XXDZ, XLXSBJD_FKSM, XLXSBJD_BZ, XLXSBJD_ZJE,XLXSBJD_ZZL,XLXSBJD_LRL,XLXSBJD_SQR,XLXSBJD_SQRGH,XLXSBJD_SQRID,XLXSBJD_FKQXNR,XLXSBJD_BJSM,XLXSBJD_TJ,XLXSBJD_LJ,XLXSBJD_CZJSXY,XLXSBJD_KHDH,XLXSBJD_SQRQ, XLXSBJD_XZQHID,XLXSBJD_XMID,XLXSBJD_YBJDIDS,XLXSBJD_ZT,XLXSBJD_YSJDID,XLXSBJD_GYSID,XLXSBJD_YSFY,XLXSBJD_ZB,XLXSBJD_ZBJE, XLXSBJD_WHR, XLXSBJD_WHSJ, XLXSBJD_FJS from XLXSBJD where XLXSBJD_BJDID = :pBJDID order by XLXSBJD_BJDID "); SQL.ParamByName("pBJDID").Value = sBJDID; return dberp.OpenDataSet(SQL); } private string GetHTBJDKZ(string sBJDID) { string sHTBJDKZ = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSql = new TSQL(dberp); sSql.Clear(); sSql.Add(" select XSHTKZ_HTBJDKZ from XLXSBJD "); sSql.Add(" left join XSHTKZ on XSHTKZ_SYDWID = XLXSBJD_SYDWID "); sSql.Add(" where XLXSBJD_BJDID = :pBJDID "); sSql.ParamByName("pBJDID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(sSql); if (ds.Tables[0].Rows.Count > 0) { sHTBJDKZ = ds.Tables[0].Rows[0]["XSHTKZ_HTBJDKZ"].ToString().Trim(); } return sHTBJDKZ; } public double ReportPDF(string sBJDID) { double dDOCGRPID = 0; double dDYYSXH = 0; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select XLXSBJD_BBYSDOCID from XLXSBJD where XLXSBJD_BJDID = :pBJDID "); SQL.ParamByName("pBJDID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { dDOCGRPID = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJD_BBYSDOCID"].ToString().Trim()); } XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860060); dDYYSXH = CMISproConvert.StrToFloat(pzxx.XLXSBJPZ_BBYSXH, 0); dDOCGRPID = Report2Pdf(GetBBNR(sBJDID, dDYYSXH), dDOCGRPID, sBJDID); SQL.Clear(); SQL.Add(" update XLXSBJD set XLXSBJD_BBYSDOCID = :pDOCGRPID where XLXSBJD_BJDID = :pBJDID "); SQL.ParamByName("pDOCGRPID").Value = dDOCGRPID; SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); return dDOCGRPID; } public double ReportPDFByBBYSXH(string sBJDID, string sBBYSXH) { double dDOCGRPID = 0; double dDYYSXH = 0; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select XLXSBJD_BBYSDOCID from XLXSBJD where XLXSBJD_BJDID = :pBJDID "); SQL.ParamByName("pBJDID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { dDOCGRPID = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJD_BBYSDOCID"].ToString().Trim()); } dDYYSXH = CMISproConvert.StrToFloat(sBBYSXH, 0); dDOCGRPID = Report2Pdf(GetBBNR(sBJDID, dDYYSXH), dDOCGRPID, sBJDID); SQL.Clear(); SQL.Add(" update XLXSBJD set XLXSBJD_BBYSDOCID = :pDOCGRPID where XLXSBJD_BJDID = :pBJDID "); SQL.ParamByName("pDOCGRPID").Value = dDOCGRPID; SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); return dDOCGRPID; } public static double Report2Pdf(string sReportXML, double dDOCGRPID, string sBJDID) { string strPath = System.AppDomain.CurrentDomain.BaseDirectory + "\\work\\" + "temp"; if (!Directory.Exists(strPath)) Directory.CreateDirectory(strPath); string pdfPath = strPath + "\\" + "[" + Guid.NewGuid().ToString() + "]" + ".pdf"; FileStream fsPdf = new FileStream(pdfPath, FileMode.OpenOrCreate); try { //将xml字符串转化为流 //byte[] array = Encoding.Default.GetBytes(sReportXML); //MemoryStream fsXml = new MemoryStream(array); //调用服务将报表XML文件流转化为EXCEL文件流 ReportService.Rpt2Pdf(sReportXML, fsPdf); double dFileID = 0; if (dDOCGRPID != 0) { Mac.MacLog.TraceFormat("工号:{0},报价单号:{1},传入文档组号:{2}", CMISproSessionManager.GetCurrentSession().UserId, sBJDID, dDOCGRPID.ToString()); DocFileInfo[] docFileInfo = FileService.GetFilesInfo(dDOCGRPID); if (docFileInfo.Length > 0) { dFileID = docFileInfo[0].FileId; } } if (dFileID != 0) { FileService.DeleteFile(dDOCGRPID, dFileID); Mac.MacLog.TraceFormat("工号:{0},报价单号:{1},删除文件ID:{2}", CMISproSessionManager.GetCurrentSession().UserId, sBJDID, dFileID.ToString()); } DocFileInfo tempDOCInfo = FileService.AddFile(fsPdf, Guid.NewGuid().ToString() + ".pdf", dDOCGRPID); fsPdf.Close(); dDOCGRPID = tempDOCInfo.GroupId; Mac.MacLog.TraceFormat("工号:{0},报价单号:{1},返回文档组号:{2}", CMISproSessionManager.GetCurrentSession().UserId, sBJDID, dDOCGRPID.ToString()); Mac.MacLog.TraceFormat("工号:{0},报价单号:{1},返回文件ID:{2}", CMISproSessionManager.GetCurrentSession().UserId, sBJDID, tempDOCInfo.FileId.ToString()); Mac.MacLog.TraceFormat("工号:{0},报价单号:{1},返回文件名称:{2}", CMISproSessionManager.GetCurrentSession().UserId, sBJDID, tempDOCInfo.FileName); } finally { fsPdf.Close(); } return dDOCGRPID; } //获取默认打印样式报表内容 public string GetBBNR(string sBJDID, double dXH) { string sYSNR = string.Empty; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select BBYS_NR from BBYS where BBYS_UMID = 100860000 and BBYS_FORMID = 'XLBJDInfo' and BBYS_XH = :pXH "); SQL.ParamByName("pXH").Value = dXH; DataSet dsYS = dberp.OpenDataSet(SQL); if (dsYS.Tables[0].Rows.Count > 0) { string sYSMB = dsYS.Tables[0].Rows[0][0].ToString().Trim(); if (sYSMB.Equals("")) throw new Exception("报表样式内容为空,无法导出pdf!"); byte[] b = new byte[0]; byte[] c = new byte[0]; byte[] zipbuf = new byte[0]; b = (byte[])dsYS.Tables[0].Rows[0][0]; if (IsZlib(b)) { zipbuf = ZlibCompress.DecompressBytes(b); } else { zipbuf = ZipCompress.DecompressBytes(b); } sYSMB = System.Text.Encoding.Default.GetString(zipbuf, 0, zipbuf.Length); sYSMB = sYSMB.Replace("\'", "\""); TReportComClass Report = new TReportComClass(CMISproSessionManager.GetCurrentSession(), TContextDatabases.GetDatabase("DBERP")); Report.OnReportUnknownFunction += ReportOnUnknownFunction; Report.OnReportUnknownVariable += ReportOnUnknownVariable; DataSet dsXLXSBJDMX = GetDs_XLXSBJDMX(sBJDID); DataSet dsXLXSBJD = GetDs_XLXSBJD(sBJDID); //添加明细数据集及字段 if (dsXLXSBJDMX.Tables[0].Rows.Count > 0) { Report.AddUserReportDataSet("XLXSBJDMX", dsXLXSBJDMX); Report.ReportRecordSetAdd(); //添加明细字段值 for (int i = 0; i < dsXLXSBJDMX.Tables[0].Columns.Count; i++) { Report.AllVariableValue.Add(dsXLXSBJDMX.Tables[0].Columns[i].ColumnName, new TReportComClass.StrMap(dsXLXSBJDMX.Tables[0].Columns[i].ColumnName, dsXLXSBJDMX.Tables[0].Rows[0][i].ToString().Trim(), "S")); } } //添加主表数据集及字段 if (dsXLXSBJD.Tables[0].Rows.Count > 0) { Report.AddUserReportDataSet("XLXSBJD", dsXLXSBJD); Report.ReportRecordSetAdd(); //Report.AddReportField("XLXSBJD", "XLXSBJD_BJDID", "报价单号", "S"); //添加字段值 for (int i = 0; i < dsXLXSBJD.Tables[0].Columns.Count; i++) { Report.AllVariableValue.Add(dsXLXSBJD.Tables[0].Columns[i].ColumnName, new TReportComClass.StrMap(dsXLXSBJD.Tables[0].Columns[i].ColumnName, dsXLXSBJD.Tables[0].Rows[0][i].ToString().Trim(), "S")); } } sYSNR = Report.GetReportResult(sYSMB); } return sYSNR; } #region 报表样式转化方法 private bool IsZlib(byte[] SourceBytes) { bool bZlib = false; if (SourceBytes.Length > 2) { if (SourceBytes[0].Equals(120) && SourceBytes[1].Equals(156)) { bZlib = true; } else if (SourceBytes[0].Equals(80) && SourceBytes[1].Equals(75)) { bZlib = false; } } return bZlib; } private void ReportOnUnknownFunction(string Name, string Params, ref string ValueType, ref string Value, TDatabase db) { int _Year = 0; string _DWID = string.Empty; string _BBID = string.Empty; DateTime _End = new DateTime(); DateTime _Start = new DateTime(); int _Month = 0; int _BBQH = 0; bool _Exist = false; TLogicContext.Current.SetContextVar("BBYear", _Year.ToString()); TLogicContext.Current.SetContextVar("BBDWID", _DWID); TLogicContext.Current.SetContextVar("BBID", _BBID); TLogicContext.Current.SetContextVar("END", _End.ToString()); TLogicContext.Current.SetContextVar("START", _Start.ToString()); TLogicContext.Current.SetContextVar("BBMonth", _Month.ToString()); TLogicContext.Current.SetContextVar("BBQH", _BBQH.ToString()); TLogicContext.Current.SetContextVar("SYBBQJ", _Exist ? "Y" : "N");//使用报表期间 ReportOnUnknownFunction(Name, Params, ref ValueType, ref Value); } private void ReportOnUnknownFunction(string Name, string Params, ref string ValueType, ref string Value) {//Params: CS1,CS2,CS3 //OnReportUnknownFunction(Name, Params, ref ValueType, ref Value); CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); if (Name.ToUpper() == "GETN") { ValueType = "N"; string[] par = Params.Split(','); if (par.Length > 0) { if (par.Length == 1) { Value = tSession.GetN(N_MISPRO.Utility.CMISproConvert.StrToInt(par[0]), "").ToString(); } else { Value = tSession.GetN(N_MISPRO.Utility.CMISproConvert.StrToInt(par[0]), Params.Substring(Params.IndexOf(',') + 1)).ToString(); } } else { Value = tSession.GetN(0, Params).ToString(); } } else if (Name.ToUpper() == "GETS") { ValueType = "S"; string[] par = Params.Split(','); if (par.Length > 0) { if (par.Length == 1) { Value = tSession.GetS(N_MISPRO.Utility.CMISproConvert.StrToInt(par[0]), ""); } else { Value = tSession.GetS(N_MISPRO.Utility.CMISproConvert.StrToInt(par[0]), Params.Substring(Params.IndexOf(',') + 1)); } } else { Value = tSession.GetS(0, Params); } } else if (Name.ToUpper() == "DATEDIFF") { ValueType = "N"; string[] par = Params.Split(','); if (par.Length != 2) { Value = "0"; } else { TimeSpan spart = N_MISPRO.Utility.CMISproConvert.StrToDateTime(par[1]) - N_MISPRO.Utility.CMISproConvert.StrToDateTime(par[0]); Value = spart.Days.ToString(); } } else if (Name.ToUpper() == "DATEADD") { ValueType = "S"; string[] par = Params.Split(','); if (par.Length != 3) { Value = ""; } else { string sDateKind = par[0].ToUpper(); int number = N_MISPRO.Utility.CMISproConvert.StrToInt(par[1]); string CustomKind = ""; if (par[2].Trim().Length > 10) { CustomKind = "Time"; } else { CustomKind = "Date"; } DateTime dDest = N_MISPRO.Utility.CMISproConvert.StrToDateTime(par[2]); switch (sDateKind) { case ("HOUR"): Value = dDest.AddHours(number).ToString("yyyy-MM-dd HH:mm:ss"); break; case ("MINUTE"): Value = dDest.AddMinutes(number).ToString("yyyy-MM-dd HH:mm:ss"); break; case ("SECOND"): Value = dDest.AddSeconds(number).ToString("yyyy-MM-dd HH:mm:ss"); break; case ("DAY"): if (CustomKind == "Time") Value = dDest.AddDays(number).ToString("yyyy-MM-dd HH:mm:ss"); else Value = dDest.AddDays(number).ToString("yyyy-MM-dd"); break; case ("WEEK"): if (CustomKind == "Time") Value = dDest.AddDays(number * 7).ToString("yyyy-MM-dd HH:mm:ss"); else Value = dDest.AddDays(number * 7).ToString("yyyy-MM-dd"); break; case ("MONTH"): if (CustomKind == "Time") Value = dDest.AddMonths(number).ToString("yyyy-MM-dd HH:mm:ss"); else Value = dDest.AddMonths(number).ToString("yyyy-MM-dd"); break; case ("QUARTER"): if (CustomKind == "Time") Value = dDest.AddMonths(number * 3).ToString("yyyy-MM-dd HH:mm:ss"); else Value = dDest.AddMonths(number * 3).ToString("yyyy-MM-dd"); break; case ("YEAR"): if (CustomKind == "Time") Value = dDest.AddYears(number).ToString("yyyy-MM-dd HH:mm:ss"); else Value = dDest.AddYears(number).ToString("yyyy-MM-dd"); break; default: Value = ""; break; } } } else if (Name.ToUpper() == "ADDTIME") { ValueType = "S"; string[] par = Params.Split(','); if (par.Length != 2) { Value = ""; } else { string sH1 = par[0].Trim().Split(':').GetValue(0).ToString().Trim(); string sMI1 = par[0].Trim().Split(':').GetValue(1).ToString().Trim(); string sH2 = par[1].Trim().Split(':').GetValue(0).ToString().Trim(); string sMI2 = par[1].Trim().Split(':').GetValue(1).ToString().Trim(); int iModMin = (N_MISPRO.Utility.CMISproConvert.StrToInt(sMI1) + N_MISPRO.Utility.CMISproConvert.StrToInt(sMI2)) % 60; int iModH = Convert.ToInt32(Math.Floor(Convert.ToDouble((N_MISPRO.Utility.CMISproConvert.StrToInt(sMI1) + N_MISPRO.Utility.CMISproConvert.StrToInt(sMI2)) / 60))); Value = Convert.ToString(N_MISPRO.Utility.CMISproConvert.StrToInt(sH1) + N_MISPRO.Utility.CMISproConvert.StrToInt(sH2) + iModH) + ":" + iModMin.ToString().PadLeft(2, '0'); } } else if (Name.ToUpper() == "TIMEDIFF") { ValueType = "S"; string[] par = Params.Split(','); if (par.Length != 3) { Value = ""; } else { bool bNeedAdd1 = false; string sDateB = par[0].Trim(); string sDateE = par[1].Trim(); if (sDateE.Trim().Equals("24:00")) { bNeedAdd1 = true; sDateE = "23:59"; } string sReturnType = par[2].Trim(); TimeSpan spart; bool bDownZ = false; if (sDateB.Trim().Length > 5) { spart = N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateE) - N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateB); if (N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateE) < N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateB)) { bDownZ = true; } } else { if (N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateE) < N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateB)) { spart = N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateE).AddHours(24) - N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateB); } else { spart = N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateE) - N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateB); } } switch (sReturnType) { case "HH": if (!bNeedAdd1) { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours)) : "-" + Convert.ToString(Math.Abs(spart.Hours)); } else { if (Math.Abs(spart.Minutes) + 1 >= 60) { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours) + 1) : "-" + Convert.ToString(Math.Abs(spart.Hours) + 1); } else { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours)) : "-" + Convert.ToString(Math.Abs(spart.Hours)); } } break; case "MI": if (!bNeedAdd1) { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours) * 60 + Math.Abs(spart.Minutes)) : "-" + Convert.ToString(Math.Abs(spart.Hours) * 60 + Math.Abs(spart.Minutes)); } else { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours) * 60 + Math.Abs(spart.Minutes) + 1) : "-" + Convert.ToString(Math.Abs(spart.Hours) * 60 + Math.Abs(spart.Minutes) + 1); } break; case "SS": if (!bNeedAdd1) { Value = bDownZ == false ? Convert.ToString((Math.Abs(spart.Hours) * 60 + Math.Abs(spart.Minutes)) * 60 + Math.Abs(spart.Seconds)) : "-" + Convert.ToString((Math.Abs(spart.Hours) * 60 + Math.Abs(spart.Minutes)) * 60 + Math.Abs(spart.Seconds)); } else { Value = bDownZ == false ? Convert.ToString((Math.Abs(spart.Hours) * 60 + Math.Abs(spart.Minutes) + 1) * 60 + Math.Abs(spart.Seconds)) : "-" + Convert.ToString((Math.Abs(spart.Hours) * 60 + Math.Abs(spart.Minutes) + 1) * 60 + Math.Abs(spart.Seconds)); } break; case "HH:MI:SS": if (!bNeedAdd1) { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Hours)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0'); } else { if (Math.Abs(spart.Minutes) + 1 >= 60) { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours) + 1).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes) - 59).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Hours) + 1).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes) - 59).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0'); } else { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes) + 1).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Hours)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes) + 1).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0'); } } break; case "HH:MI": if (!bNeedAdd1) { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes)).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Hours)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes)).PadLeft(2, '0'); } else { if (Math.Abs(spart.Minutes) + 1 >= 60) { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours) + 1).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes) - 59).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Hours) + 1).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes) - 59).PadLeft(2, '0'); } else { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes) + 1).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Hours)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes) + 1).PadLeft(2, '0'); } } break; case "MI:SS": if (!bNeedAdd1) { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Minutes)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Minutes)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0'); } else { if (Math.Abs(spart.Minutes) + 1 >= 60) { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Minutes) - 59).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Minutes) - 59).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0'); } else { Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Minutes) + 1).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Minutes) + 1).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0'); } } break; } } } else if (Name.ToUpper() == "FORMATMINUTETOHHMM") { ValueType = "S"; string[] par = Params.Split(','); if (par.Length > 0) { if (par.Length == 1) { int iMM = 0; try { iMM = Convert.ToInt32(par[0].Trim()); } catch { Value = ""; } int iRHH = iMM / 60; int iRMM = iMM % 60; string sHHMM = (iRHH == 0 ? "" : (Convert.ToString(iRHH) + "小时")) + (iRMM == 0 ? "" : (Convert.ToString(iRMM) + "分钟")); Value = sHHMM; } else { Value = ""; } } else { Value = ""; } } else if (Name.ToUpper() == "FORMATHHMMTOMINUTE") { ValueType = "S"; string[] par = Params.Split(','); if (par.Length > 0) { if (par.Length == 1) { string sParam = par[0].Trim(); bool bHasHour = false; bool bHasMinute = false; try { if (sParam.IndexOf("小时") >= 0) bHasHour = true; if (sParam.IndexOf("分钟") >= 0) bHasMinute = true; if (bHasHour && !bHasMinute) //仅仅有小时没有分钟 { string sHour = sParam.Substring(0, sParam.IndexOf("小时")); Value = Convert.ToString(N_MISPRO.Utility.CMISproConvert.StrToInt(sHour) * 60); } else if (!bHasHour && bHasMinute) //仅仅有分钟没有小时 { string sMinute = sParam.Substring(0, sParam.IndexOf("分钟")); Value = sMinute; } else if (bHasHour && bHasMinute) //既有分钟也有小时 { string sHour = sParam.Substring(0, sParam.IndexOf("小时")); string sMinuteAll = sParam.Replace(sHour + "小时", ""); string sMinute = sMinuteAll.Substring(0, sMinuteAll.IndexOf("分钟")); Value = Convert.ToString(N_MISPRO.Utility.CMISproConvert.StrToInt(sHour) * 60 + N_MISPRO.Utility.CMISproConvert.StrToInt(sMinute)); } } catch { Value = ""; } } else { Value = ""; } } else { Value = ""; } } else if (Name.ToUpper() == "HOURDIFF") { ValueType = "N"; string[] par = Params.Split(','); if (par.Length != 2) { Value = "0"; } else { TimeSpan spart = N_MISPRO.Utility.CMISproConvert.StrToDateTime(par[1]) - N_MISPRO.Utility.CMISproConvert.StrToDateTime(par[0]); Value = spart.TotalHours.ToString(); } } else if (Name.ToUpper() == "MINUTEDIFF") { ValueType = "N"; string[] par = Params.Split(','); if (par.Length != 2) { Value = "0"; } else { TimeSpan spart = N_MISPRO.Utility.CMISproConvert.StrToDateTime(par[1]) - N_MISPRO.Utility.CMISproConvert.StrToDateTime(par[0]); Value = spart.TotalMinutes.ToString(); } } else if (Name.ToUpper() == "EXP") { ValueType = "N"; string[] par = Params.Split(','); if (par.Length != 1) { Value = "0"; } else { Value = Math.Pow(Math.E, CMISproConvert.StrToFloat(par[0])).ToString(); } } else if (Name.ToUpper() == "SORT") { Value = Sort(Params); ValueType = "N"; } else if (Name.ToUpper() == "INVERTEDSORT") { Value = InvertedSort(Params); ValueType = "N"; } else if (Name.ToUpper() == "GETWFLOGXX") { Value = ""; ValueType = "S"; } else if (Name.ToUpper() == "GETUSERQM") { string[] par = Params.Split(','); if (par.Length != 1) { ValueType = "S"; Value = ""; } else { string sGH = par[0].Trim(); if (sGH.Trim() != "") { byte[] bbImage = new byte[0]; bbImage = GetUserQM(sGH); if (bbImage.Length == 0) //空图片 { ValueType = "S"; Value = ""; } else { MemoryStream oMy = null; oMy = new MemoryStream(bbImage); ValueType = "S"; Value = GetPhoto(oMy); } } else { ValueType = "S"; Value = ""; } } } else { List lstAMID = GetAMIDByAMNAME(Name); if (lstAMID.Count == 0) return; if (lstAMID.Count > 1) { ValueType = "S"; Value = "错误:模块名为[" + Name + "]的模块存在多个,不允许计算!"; } int iAMID = lstAMID[0]; object obj = tSession.DataAgentGetValue(iAMID, Params); if (obj is double) { ValueType = "N"; } else if (obj is string) { ValueType = "S"; } Value = obj.ToString(); } } private void ReportOnUnknownVariable(string Name, ref string ValueType, ref string Value, TDatabase db) { int _Year = 0; string _DWID = string.Empty; string _BBID = string.Empty; DateTime _End = new DateTime(); DateTime _Start = new DateTime(); int _Month = 0; int _BBQH = 0; bool _Exist = false; TLogicContext.Current.SetContextVar("BBYear", _Year.ToString()); TLogicContext.Current.SetContextVar("BBDWID", _DWID); TLogicContext.Current.SetContextVar("BBID", _BBID); TLogicContext.Current.SetContextVar("END", _End.ToString()); TLogicContext.Current.SetContextVar("START", _Start.ToString()); TLogicContext.Current.SetContextVar("BBMonth", _Month.ToString()); TLogicContext.Current.SetContextVar("BBQH", _BBQH.ToString()); TLogicContext.Current.SetContextVar("SYBBQJ", _Exist ? "Y" : "N");//使用报表期间 ReportOnUnknownVariable("", Name, ref ValueType, ref Value); } private void ReportOnUnknownVariable(string sSQL, string Name, ref string ValueType, ref string Value) { CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); string _DWID = string.Empty; string _BBID = string.Empty; DateTime _End = new DateTime(); DateTime _Start = new DateTime(); if (Name.ToUpper() == "USERID") { ValueType = "S"; Value = tSession.UserId; } if (Name.ToUpper() == "DEPTNAME") { ValueType = "S"; User user = UserUtils.GetUser(tSession.UserId); if (user != null) { string sBMID = user.RzBmId.Trim(); Value = GetBMMC(sBMID); } else { Value = ""; } } if (Name.ToUpper() == "KJDWMC") { ValueType = "S"; Value = GetKJDW(_DWID); } if (Name.ToUpper() == "START") { ValueType = "S"; Value = _Start.ToString("yyyy-MM-dd"); } if (Name.ToUpper() == "END") { ValueType = "S"; Value = _End.ToString("yyyy-MM-dd"); } } public string Sort(string sValue) { List dValue = new List(); double dStartValue = 0; string[] aValue = sValue.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < aValue.Length; i++) { double ddValue = 0; if (i == 0) { if (!double.TryParse(aValue[i], out dStartValue)) return dStartValue.ToString(); } else { if (double.TryParse(aValue[i], out ddValue) && !dValue.Contains(ddValue)) dValue.Add(ddValue); } } dValue.Sort(); return Convert.ToString(dValue.IndexOf(dStartValue) + 1); } public string InvertedSort(string sValue) { List dValue = new List(); double dStartValue = 0; string[] aValue = sValue.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < aValue.Length; i++) { double ddValue = 0; if (i == 0) { if (!double.TryParse(aValue[i], out dStartValue)) return dStartValue.ToString(); } else { if (double.TryParse(aValue[i], out ddValue) && !dValue.Contains(ddValue)) dValue.Add(ddValue); } } dValue.Sort(); if (dValue.IndexOf(dStartValue) != -1) return Convert.ToString(dValue.Count - dValue.IndexOf(dStartValue)); else return "0"; } public byte[] GetUserQM(string sUserID) { byte[] bImage = new byte[0]; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); try { string sSQLText = string.Format(" select YHQMTP_QMTP from YHQMTP where YHQMTP_GH='{0}' ", sUserID); DataSet ds = dberp.OpenDataSet(sSQLText); if (ds.Tables[0].Rows.Count > 0) { bImage = (byte[])ds.Tables[0].Rows[0]["YHQMTP_QMTP"]; } } catch { } return bImage; } public string GetPhoto(MemoryStream pPhoto) { Random iRa = new Random(); int iResult; string sTemp = "", sPath = "", TempSavePath = ""; CMISproSession tSession = CMISproApp.GetSession(); string sUsrID = tSession.UserId; if (string.IsNullOrEmpty(sUsrID)) { sUsrID = "XXXX"; } do //防止产生的随机数相同导致打印图片相同 { iResult = iRa.Next(); //产生随机数 sTemp = "TempOA" + CMISproConvert.ConvertDate(DateTime.Now) + Convert.ToString(iResult) + "-" + sUsrID + ".bmp"; sPath = System.Web.Hosting.HostingEnvironment.MapPath("~/UploadFile"); TempSavePath = sPath + "\\" + sTemp; } while (File.Exists(TempSavePath)); FileStream copyToFile = new FileStream(TempSavePath, FileMode.Append, FileAccess.Write); MemoryStream oMy = null; try { oMy = pPhoto; byte[] buffer = new byte[oMy.Length]; oMy.Read(buffer, 0, (int)oMy.Length); oMy.Flush(); copyToFile.Write(buffer, 0, (int)oMy.Length); copyToFile.Flush(); } catch { } finally { if (oMy != null) { oMy.Close(); } copyToFile.Close(); } return TempSavePath; } public string GetBMMC(string sBMID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSql = new TSQL(dberp); sSql.Add("select BM_MC from BM where BM_BMID=:pBMID "); sSql.ParamByName("pBMID").Value = sBMID; DataSet ds = dberp.OpenDataSet(sSql); if (ds.Tables[0].Rows.Count > 0) { return ds.Tables[0].Rows[0]["BM_MC"].ToString().Trim(); } else { return ""; } } public List GetAMIDByAMNAME(string sAMNAME) { List lstAMID = new List(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Add("select AMID from ACTIVEMODULE"); SQL.Add(" where AMNAME = :pAMNAME"); SQL.Add(" and AMTYPE = 'D'"); SQL.Add(" and AMPLATFORM = 'N'"); SQL.ParamByName("pAMNAME").Value = sAMNAME; DataSet ds = dberp.OpenDataSet(SQL); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { lstAMID.Add(CMISproConvert.StrToInt(ds.Tables[0].Rows[i]["AMID"].ToString().Trim())); } return lstAMID; } private string GetKJDW(string sDWID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); sSQL.Clear(); sSQL.Add(" select BBDW_KJDWID, isnull(KJDW_QC,' ') as KJDW_QC from BBDW"); sSQL.Add(" left join KJDW on KJDW_KJDWID=BBDW_KJDWID"); sSQL.Add(" where BBDW_DWID=:pDWID"); sSQL.ParamByName("pDWID").Value = sDWID; DataSet ds = dberp.OpenDataSet(sSQL); if (ds.Tables[0].Rows.Count > 0) { return ds.Tables[0].Rows[0]["KJDW_QC"].ToString().Trim(); } else { return ""; } } #endregion public List GetListBBYS() { List lst = new List(); string sBBYSXH = XLBJDUtils.GetXLXSBJPZXX(100860060).XLXSBJPZ_BBYSXH; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select BBYS_XH,BBYS_SM from BBYS where BBYS_UMID = 100860000 and BBYS_FORMID = 'XLBJDInfo'"); SQL.Add(" and " + CMISproDataBase.GetWhereEqual("BBYS_XH", sBBYSXH)); SQL.Add(" order by BBYS_XH "); DataSet ds = dberp.OpenDataSet(SQL); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { CodeInfo codeInfo = new CodeInfo(); codeInfo.CodeID = ds.Tables[0].Rows[i]["BBYS_XH"].ToString().Trim(); codeInfo.CodeMC = ds.Tables[0].Rows[i]["BBYS_SM"].ToString().Trim(); lst.Add(codeInfo); } return lst; } /// /// 查询铜/铝重量(按报价单汇总) /// public static void CXTLLWeight(string sBJDID, ref string sTZL, ref string sLZL) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); sql.Clear(); sql.Add("SELECT ISNULL(SUM(CASE WHEN XLXSCLQD_CLZL=0 THEN 0 ELSE XLXSBJDMX_CLZL*XLXSCLQD_TZL/XLXSCLQD_CLZL END),0) AS TZL,"); sql.Add(" ISNULL(SUM(CASE WHEN XLXSCLQD_CLZL=0 THEN 0 ELSE XLXSBJDMX_CLZL*XLXSCLQD_LZL/XLXSCLQD_CLZL END),0) AS LZL"); sql.Add(" FROM XLXSBJDMX"); sql.Add(" LEFT JOIN XLXSCLQD ON XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID AND"); sql.Add(" XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID AND XLXSCLQD_DYDJID=XLXSBJDMX_DYDJID"); sql.Add(" WHERE XLXSBJDMX_BJDID=:pBJDID"); sql.ParamByName("pBJDID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { sTZL = ds.Tables[0].Rows[0]["TZL"].ToString().Trim(); sLZL = ds.Tables[0].Rows[0]["LZL"].ToString().Trim(); } else { sTZL = "0"; sLZL = "0"; } } } }