using System; using System.Collections.Generic; using System.Data; using System.Text.RegularExpressions; using System.Web.UI; using System.Web.UI.WebControls; using GThinking.N_CONTROL; using GThinking.N_MISPRO; using GThinking.N_MISPRO.Data; using GThinking.N_MISPRO.Utility; using GThinking.N_MODEL.Dialog; using GThinking.N_WORKFLOW; using GThinking.N_MISPRO.TableCache; using GThinking.N_MISPRO.MISPROAS; using System.Collections; using GThinking.N_MODEL.ModelBase; using System.Text; using GThinking.N_PUBLIC2; namespace GThinking.N_XLXSBJ { public class CLYLZDSQModel : ModelBase { #region 属性字段 private string _XLXSBJYLZD_SQDH = string.Empty; public string XLXSBJYLZD_SQDH { get { return _XLXSBJYLZD_SQDH; } set { _XLXSBJYLZD_SQDH = value; } } //SQR字段:rtrim(XLXSBJYLZD_SQRGH) || ‘|’ || RSRYJBXX_RYMC as SQR, private string _SQR = string.Empty; public string SQR { get { return _SQR; } set { _SQR = 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 _XLXSBJYLZD_BJDID = string.Empty; public string XLXSBJYLZD_BJDID { get { return _XLXSBJYLZD_BJDID; } set { _XLXSBJYLZD_BJDID = value; } } private string _XLXSBJD_TXY = string.Empty; public string XLXSBJD_TXY { get { return _XLXSBJD_TXY; } set { _XLXSBJD_TXY = value; } } private string _XLXSBJYLZD_BZ = string.Empty; public string XLXSBJYLZD_BZ { get { return _XLXSBJYLZD_BZ; } set { _XLXSBJYLZD_BZ = value; } } #endregion private List _MXInfos = new List();//本次所返回的记录的明细数据 public List MXInfos { get { return _MXInfos; } set { _MXInfos = value; } } public CLYLZDSQModel() { } public CLYLZDSQModel(string sWFID, double dWFINST) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); sSQL.Clear(); sSQL.Add("select XLXSBJYLZD_SQDH, XLXSBJYLZD_WPID "); sSQL.Add(" from XLXSBJYLZD "); sSQL.Add(" where XLXSBJYLZD_WFID = :pWFID and XLXSBJYLZD_WFINST = :pWFINST"); sSQL.ParamByName("pWFID").Value = sWFID; sSQL.ParamByName("pWFINST").Value = dWFINST; DataSet ds = dberp.OpenDataSet(sSQL); if (ds.Tables[0].Rows.Count > 0) { XLXSBJYLZD_SQDH = ds.Tables[0].Rows[0]["XLXSBJYLZD_SQDH"].ToString().Trim(); WPID = ds.Tables[0].Rows[0]["XLXSBJYLZD_WPID"].ToString().Trim(); } WFID = sWFID; WFINST = dWFINST; } } public class CLYLZDSQMXModel : ModelBase { private string _XLXSBJYLZDMX_SQDH = string.Empty; public string XLXSBJYLZDMX_SQDH { get { return _XLXSBJYLZDMX_SQDH; } set { _XLXSBJYLZDMX_SQDH = value; } } private string _XLXSBJYLZDMX_XH = string.Empty; public string XLXSBJYLZDMX_XH { get { return _XLXSBJYLZDMX_XH; } set { _XLXSBJYLZDMX_XH = value; } } private string _XLXSBJDMX_XSSX = string.Empty; public string XLXSBJDMX_XSSX { get { return _XLXSBJDMX_XSSX; } set { _XLXSBJDMX_XSSX = value; } } //BJCP字段:XLXSBJYLZDMX_BJDXLXHID || ‘-’ || XLXSBJYLZDMX_BJDDYDJID || ‘ ’ || XLXSBJYLZDMX_BJDXLGGID as BJCP, private string _BJCP = string.Empty; public string BJCP { get { return _BJCP; } set { _BJCP = value; } } //XLBZ字段:XLBZ_XLBZLXMC as XLBZ, private string _XLBZ = string.Empty; public string XLBZ { get { return _XLBZ; } set { _XLBZ = value; } } //ZDR字段:RSRYJBXX_RYMC as ZDR, private string _ZDR = string.Empty; public string ZDR { get { return _ZDR; } set { _ZDR = value; } } //不生产 private string _XLXSBJYLZDMX_BZDBZ = string.Empty; public string XLXSBJYLZDMX_BZDBZ { get { return _XLXSBJYLZDMX_BZDBZ; } set { _XLXSBJYLZDMX_BZDBZ = value; } } //制定生产 private string _XLXSBJYLZDMX_DZSC = string.Empty; public string XLXSBJYLZDMX_DZSC { get { return _XLXSBJYLZDMX_DZSC; } set { _XLXSBJYLZDMX_DZSC = value; } } //XDBJCP字段:XLXSBJYLZDMX_XLXHID || ‘-’ || XLXSBJYLZDMX_DYDJID || ‘ ’ || XLXSBJYLZDMX_XLGGID as XDBJCP, private string _XDBJCP = string.Empty; public string XDBJCP { get { return _XDBJCP; } set { _XDBJCP = value; } } //XDXLBZ字段: XLBZ_XLBZLXMC as XDXLBZ private string _XDXLBZ = string.Empty; public string XDXLBZ { get { return _XDXLBZ; } set { _XDXLBZ = value; } } private string _XLXSBJYLZDMX_BZ = string.Empty; public string XLXSBJYLZDMX_BZ { get { return _XLXSBJYLZDMX_BZ; } set { _XLXSBJYLZDMX_BZ = value; } } private string _XLXSBJYLZDMX_WHR = string.Empty; public string XLXSBJYLZDMX_WHR { get { return _XLXSBJYLZDMX_WHR; } set { _XLXSBJYLZDMX_WHR = value; } } private string _XLXSBJYLZDMX_WHSJ = string.Empty; public string XLXSBJYLZDMX_WHSJ { get { return _XLXSBJYLZDMX_WHSJ; } set { _XLXSBJYLZDMX_WHSJ = value; } } public CLYLZDSQMXModel() { } } public class CLYLZDSQBO : BOBase { #region 查询 public List GetWCLYLZDSQList(int iStart, int iNum, out int iRowCount) { List moList = new List(); CurNameQuery = new XLXSBJYLZD_M(); CurNameQuery.FieldByName("SW").Value = "W"; PreQuerySQL(iStart + iNum, ""); iRowCount = OpenQueryCountSQL(); DataSet ds = OpenQueryFunctionSQL(); SetmoList(ds, iStart, iNum, iRowCount, ref moList); return moList; } public List GetHCLYLZDSQList(int iStart, int iNum, out int iRowCount) { List moList = new List(); CurNameQuery = new XLXSBJYLZD_M(); CurNameQuery.FieldByName("SW").Value = "H"; PreQuerySQL(iStart + iNum, ""); iRowCount = OpenQueryCountSQL(); DataSet ds = OpenQueryFunctionSQL(); SetmoList(ds, iStart, iNum, iRowCount, ref moList); return moList; } public List GetCLYLZDSQListByFA(int iStart, int iNum, int iMDID, string sNQNAME, string sNQCLASSNAME, out int iRowCount) { List moList = new List(); CurNameQuery = new XLXSBJYLZD_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) { CLYLZDSQModel MO = new CLYLZDSQModel(); CurNameQuery = new XLXSBJYLZD_M(); PreQuerySQL(1, " and XLXSBJYLZD_SQDH = :pKey "); Param.Add("pKey", Key); ReplaceParams(); DataSet ds = dbBO.OpenDataSet(QueryFunctionSQL); if (ds.Tables[0].Rows.Count > 0) { SetMO(ds.Tables[0].Rows[0], MO); SetMXMO(Key, MO); } else MO = null; return MO; } public override ModelBase GetSingleModel(string sWFID, double dWFINST) { CLYLZDSQModel MO = new CLYLZDSQModel(); CurNameQuery = new XLXSBJYLZD_M(); PreQuerySQL(1, " and XLXSBJYLZD_WFID = :pWFID and XLXSBJYLZD_WFINST = :pWFINST "); Param.Add("pWFID", sWFID); Param.Add("pWFINST", dWFINST); ReplaceParams(); DataSet ds = dbBO.OpenDataSet(QueryFunctionSQL); if (ds.Tables[0].Rows.Count > 0) { SetMO(ds.Tables[0].Rows[0], MO); SetMXMO(ds.Tables[0].Rows[0]["XLXSBJYLZD_SQDH"].ToString().Trim(), MO); } else MO = null; return MO; } protected override void PreQuerySQL(int maxRecords, string sCondition) { base.PreQuerySQL(maxRecords, sCondition); string sqlSQL = @"XLXSBJYLZD_SQDH,rtrim(XLXSBJYLZD_SQRGH) || '|' || RSRYJBXX_RYMC as SQR,XLXSBJYLZD_SQSJ, XLXSBJYLZD_WCSJ, XLXSBJYLZD_BJDID, XLXSBJD_TXY, XLXSBJYLZD_BZ, XLXSBJYLZD_DOCGRPID as DOCGRPID,XLXSBJYLZD_FJS as FJS,XLXSBJYLZD_WHR as WHR, XLXSBJYLZD_WHRID as WHRID, XLXSBJYLZD_WHSJ as WHSJ, XLXSBJYLZD_WFID as WFID, XLXSBJYLZD_WFINST as WFINST, XLXSBJYLZD_WFAWAITER as WFAWAITER, XLXSBJYLZD_WFHANDLER as WFHANDLER, XLXSBJYLZD_WPID as WPID, XLXSBJYLZD_ACTNAME as ACTNAME from XLXSBJYLZD left join RSRYJBXX on RSRYJBXX_GH = XLXSBJYLZD_SQRGH left join XLXSBJD on XLXSBJD_BJDID = XLXSBJYLZD_BJDID where 1 = 1 "; QueryFunctionSQL.Add(sqlSQL); QueryFunctionSQL.Add(sCondition); string sSQL = string.Empty; if (!string.IsNullOrEmpty(CurNameQuery.FieldByName("SW").Value)) { switch (CurNameQuery.FieldByName("SW").Value.Trim()) { case "A": break; case "H": sSQL += " and XLXSBJYLZD_WFHANDLER like '%," + tSession.UserId + ",%'"; break; case "W": sSQL += " and " + _curWorkFlow.GetWhereAgent("XLXSBJYLZD", tSession.UserId, "XLXSBJYLZD_WFAWAITER", "XLXSBJYLZD_WFID", "XLXSBJYLZD_WPID"); break; } } if (!string.IsNullOrEmpty(CurNameQuery.FieldByName("WFAWAITER").Value.Trim())) { sSQL += " and XLXSBJYLZD_WFAWAITER like :pWFAWITER"; Param.Add("pWFAWITER", string.Format("%,{0},%", CurNameQuery.FieldByName("WFAWAITER").Value.Trim())); } if (!string.IsNullOrEmpty(CurNameQuery.FieldByName("WPID").Value)) { sSQL += " and " + CMISproDataBase.GetWhereEqual("XLXSBJYLZD_WPID", CurNameQuery.FieldByName("WPID").Value); } if (!string.IsNullOrEmpty(CurNameQuery.FieldByName("BJDID").Value.Trim())) { sSQL += " and XLXSBJYLZD_BJDID like :pXLXSBJYLZD_BJDID"; Param.Add("pXLXSBJYLZD_BJDID", "%" + CurNameQuery.FieldByName("BJDID").Value.Trim() + "%"); } sSQL += CMISproDataBase.GetTimeConditionSQL("XLXSBJYLZD_SQSJ", CurNameQuery.FieldByName("SQRQS").Value.Trim(), CurNameQuery.FieldByName("SQRQZ").Value.Trim(), DateTimeType.dtTime, DateTimeType.dtTime); QueryFunctionSQL.Add(sSQL); if (maxRecords > 1) { QueryCountSQL.Add(" from XLXSBJYLZD "); QueryCountSQL.Add(" left join RSRYJBXX on RSRYJBXX_GH = XLXSBJYLZD_SQRGH "); QueryCountSQL.Add(" left join XLXSBJD on XLXSBJD_BJDID = XLXSBJYLZD_BJDID "); QueryCountSQL.Add(" where 1=1 "); QueryCountSQL.Add(sCondition); QueryCountSQL.Add(sSQL); } QueryFunctionSQL.Add(" order by XLXSBJYLZD_SQDH desc "); string sFields = "XLXSBJYLZD_SQDH,SQR,XLXSBJYLZD_SQSJ,XLXSBJYLZD_WCSJ,XLXSBJYLZD_BJDID,XLXSBJD_TXY,XLXSBJYLZD_BZ," + "WPID,ACTNAME,DOCGRPID,FJS,WHR,WHRID,WHSJ,WFID,WFINST,WFAWAITER,WFHANDLER"; aField = sFields.Split(','); } private void SetmoList(DataSet ds, int iStart, int iNum, int iRowCount, ref List moList) { int iMax = Math.Min(iStart + iNum, iRowCount); for (int i = iStart; i < iMax; i++) { CLYLZDSQModel MO = new CLYLZDSQModel(); SetMO(ds.Tables[0].Rows[i], MO); SetMXMO(ds.Tables[0].Rows[i]["XLXSBJYLZD_SQDH"].ToString().Trim(), MO); moList.Add(MO); } } #endregion public override bool CanEdit(ModelBase MO) { return false; } public override bool CanDelete(ModelBase MO) { return false; } #region 工作流 public override WorkFlowResult Submit(string sNWPID, string sNAWAITER, string sCLYJ) { _curWorkFlow.UMID = 100860064; return base.Submit(sNWPID, sNAWAITER, sCLYJ); } protected override void WFAfterActionEvent(TWorkflow Sender, TWFAction Action, bool ActionIsDone) { if (!ActionIsDone) return; CurMO.WFID = Sender.WFID; CurMO.WFINST = Sender.WFInst; CurMO.WFAWAITER = Sender.Awaiter; CurMO.WFHANDLER = Sender.Handler; CurMO.WPID = Sender.WPID; CurMO.WPNAME = Sender.GetWPName(Sender.WFID, Sender.WPID); CurMO.ACTNAME = Sender.GetWFActionName(Action); CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); TSQL SQL = new TSQL(Sender.dbe); SQL.Clear(); SQL.Add("update XLXSBJYLZD "); SQL.Add(" set XLXSBJYLZD_WFID = :XLXSBJYLZD_WFID, "); SQL.Add(" XLXSBJYLZD_WPID = :XLXSBJYLZD_WPID, "); SQL.Add(" XLXSBJYLZD_WFAWAITER = :XLXSBJYLZD_WFAWAITER, "); SQL.Add(" XLXSBJYLZD_WFHANDLER = :XLXSBJYLZD_WFHANDLER, "); SQL.Add(" XLXSBJYLZD_WFINST = :XLXSBJYLZD_WFINST, "); SQL.Add(" XLXSBJYLZD_ACTNAME = :XLXSBJYLZD_ACTNAME "); SQL.Add(" where XLXSBJYLZD_SQDH = :XLXSBJYLZD_SQDH "); SQL.ParamByName("XLXSBJYLZD_WFID").Value = Sender.WFID; SQL.ParamByName("XLXSBJYLZD_WPID").Value = Sender.WPID; SQL.ParamByName("XLXSBJYLZD_WFAWAITER").Value = Sender.Awaiter; SQL.ParamByName("XLXSBJYLZD_WFHANDLER").Value = Sender.Handler; SQL.ParamByName("XLXSBJYLZD_WFINST").Value = Sender.WFInst; SQL.ParamByName("XLXSBJYLZD_ACTNAME").Value = Sender.GetWFActionName(Action); SQL.ParamByName("XLXSBJYLZD_SQDH").Value = (CurMO as CLYLZDSQModel).XLXSBJYLZD_SQDH.Trim(); Sender.dbe.ExecSQL(SQL); //“0040|审核”提交至“0050|录入”时,根据XLXSBJYLZDMX_XLXHID、XLXSBJYLZDMX_XLGGID、XLXSBJYLZDMX_XLBZID、XLXSBJYLZDMX_DYDJID //自动生成“100860014|线缆销售报价材料用量”记录(注意:XLXSCLQD_BJDID、XLXSCLQD_BJDXH两字段赋值为XLXSBJYLZD_BJDID、XLXSBJYLZDMX_BJDXH),记录待处理人为XLXSBJYLZDMX_ZDRGH对应用户 string sCurZT = TWorkflow.Utils.WFGetBZSWID(Sender.WFID, Sender.WPID); string sSQDH = (CurMO as CLYLZDSQModel).XLXSBJYLZD_SQDH; if (sCurZT.Equals("0050") && Action == TWFAction.wfaSubmit) { string sErrorMsg = ""; XLXSBJYLZDEntity.InsXLXSCLQD(SQL, Sender.dbe, sSQDH, tSession, ref sErrorMsg); if (!sErrorMsg.Equals("")) { ActionIsDone = false; throw new Exception(sErrorMsg); } } //“0050|录入”提交至“0060|确认”后,更新XLXSBJYLZD_WCSJ=当前时间 if (sCurZT.Equals("0060") && Action == TWFAction.wfaSubmit) { string sErrorMsg = ""; XLXSBJYLZDEntity.UpdateWCSJ(SQL, Sender.dbe, sSQDH, ref sErrorMsg); if (!sErrorMsg.Equals("")) { ActionIsDone = false; throw new Exception(sErrorMsg); } } //0030转交时,将明细“制定人”为当前用户的明细记录的制定人更新成转交到的那个人 if (sCurZT.Equals("0030") && Action == TWFAction.wfaDeliver) { string sErrorMsg = ""; string sWaiter = Sender.Awaiter.TrimEnd(','); sWaiter = sWaiter.TrimStart(','); string sDeliver = ""; foreach (String sGH in sWaiter.Split(',')) { sDeliver = sGH; } if (!sDeliver.Equals("")) { XLXSBJYLZDEntity.UpdateZDR(SQL, Sender.dbe, sSQDH, sDeliver, tSession.UserId, ref sErrorMsg); if (!sErrorMsg.Equals("")) { ActionIsDone = false; throw new Exception(sErrorMsg); } } } } protected override bool CanSubmit() { if (!base.CanSubmit()) return false; string sSQDH = (CurMO as CLYLZDSQModel).XLXSBJYLZD_SQDH; string sErrorMsg = ""; string sBZSWID = TWorkflow.Utils.WFGetBZSWID((CurMO as CLYLZDSQModel).WFID, (CurMO as CLYLZDSQModel).WPID); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); DataSet ds = new DataSet(); //“0020|派发”提交至“0030|制定”时,控制XLXSBJYLZDMX_ZDRGH不允许存在空值 if (sBZSWID.Equals("0020")) { XLXSBJYLZDEntity.IsCmpZDR(SQL, dberp, sSQDH, ref ds); if (ds.Tables[0].Rows.Count > 0) { WorkFlowResult.ErrorMessage = "制定人为空,不允许提交!"; return false; } } //“0030|制定”提交至“0040|审核”时,控制XLXSBJYLZDMX_XLXHID、XLXSBJYLZDMX_XLGGID、XLXSBJYLZDMX_XLBZID、XLXSBJYLZDMX_DYDJID都不允许为空 if (sBZSWID.Equals("0030")) { XLXSBJYLZDEntity.IsCmpXLBJCP(SQL, dberp, sSQDH, tSession.UserId, ref ds); if (ds.Tables[0].Rows.Count > 0) { WorkFlowResult.ErrorMessage = "修订型号、修订规格、修订标准、修订电压等级为空,不允许提交!"; return false; } } //“0050|录入”提交至“0060|确认”时,需控制“修改型号”、“修改规格”、“修改标准”、“修改电压”对应XLXSCLQD记录都处于“ZZZZ|结束”状态,才允许提交至“0060|确认”环节 if (sBZSWID.Equals("0050")) { XLXSBJYLZDEntity.IsCmpXLXSCLQD(SQL, dberp, sSQDH, ref ds); if (ds.Tables[0].Rows.Count > 0) { sErrorMsg = "报价产品【" + ds.Tables[0].Rows[0]["XLXHID"].ToString().Trim() + "," + ds.Tables[0].Rows[0]["XLGGID"].ToString().Trim() + "," + ds.Tables[0].Rows[0]["XLBZ_XLBZLXMC"].ToString().Trim() + "," + ds.Tables[0].Rows[0]["DYDJID"].ToString().Trim() + "】"; if (!_curWorkFlow.UserInfo.GetUserNames(ds.Tables[0].Rows[0]["XLXSCLQD_WFAWAITER"].ToString()).Equals("")) { sErrorMsg += "还在" + _curWorkFlow.UserInfo.GetUserNames(ds.Tables[0].Rows[0]["XLXSCLQD_WFAWAITER"].ToString()) + "待处理,未提交至结束,此用量制定申请记录不允许提交!"; } else { sErrorMsg += "还未生成材料用量模块记录,此用量制定申请记录不允许提交!"; } WorkFlowResult.ErrorMessage = sErrorMsg; return false; } } return true; } protected override void WFOnGetParamEvent(TWorkflow Sender, string ParamName, ref string Value, ref bool Succeess) { base.WFOnGetParamEvent(Sender, ParamName, ref Value, ref Succeess); if (ParamName == "制定人") { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select distinct XLXSBJYLZDMX_ZDRGH from XLXSBJYLZDMX "); SQL.Add(" left join XLXSBJYLZD on XLXSBJYLZD_SQDH = XLXSBJYLZDMX_SQDH "); SQL.Add(" where 1=1 "); SQL.Add(" and XLXSBJYLZD_WFID=:pWFID and XLXSBJYLZD_WFINST=:pWFINST "); SQL.ParamByName("pWFID").Value = Sender.WFID; SQL.ParamByName("pWFINST").Value = Sender.WFInst; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { List lst = new List(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (!ds.Tables[0].Rows[i]["XLXSBJYLZDMX_ZDRGH"].ToString().Trim().Equals("") && !lst.Contains(ds.Tables[0].Rows[i]["XLXSBJYLZDMX_ZDRGH"].ToString().Trim())) { lst.Add(ds.Tables[0].Rows[i]["XLXSBJYLZDMX_ZDRGH"].ToString().Trim()); } } for (int i = 0; i < lst.Count; i++) { Value = Value + lst[i].ToString().Trim() + ","; } Value = Value.TrimStart(',').TrimEnd(','); } else { Value = ""; } Succeess = true; } } #endregion private void SetMXMO(string sBH, CLYLZDSQModel MO) { TSQL SQL = new TSQL(dbBO); string sMXFields = "XLXSBJYLZDMX_SQDH,XLXSBJYLZDMX_XH,XLXSBJDMX_XSSX,BJCP,XLBZ,ZDR,XLXSBJYLZDMX_BZDBZ,XLXSBJYLZDMX_DZSC," + "XDBJCP,XDXLBZ,XLXSBJYLZDMX_BZ,XLXSBJYLZDMX_WHR,XLXSBJYLZDMX_WHSJ"; SQL.Clear(); SQL.Add(" select XLXSBJYLZDMX_SQDH,XLXSBJYLZDMX_XH,XLXSBJDMX_XSSX,XLXSBJYLZD_WFID,XLXSBJYLZD_WPID,XLXSBJYLZD_WFAWAITER,XLXSBJYLZDMX_ZDRGH, "); SQL.Add(" case when ISNULL(XLXSBJYLZDMX_BJDDYDJID,' ') = ' ' then rtrim(XLXSBJYLZDMX_BJDXLXHID) || ' ' || rtrim(XLXSBJYLZDMX_BJDXLGGID) else "); SQL.Add(" case when ISNULL(XLXSBJYLZDMX_BJDDYDJID,' ') = '--' then rtrim(XLXSBJYLZDMX_BJDXLXHID) || ' ' || rtrim(XLXSBJYLZDMX_BJDXLGGID) else "); SQL.Add(" rtrim(XLXSBJYLZDMX_BJDXLXHID) || '-' || rtrim(XLXSBJYLZDMX_BJDDYDJID) || ' ' || rtrim(XLXSBJYLZDMX_BJDXLGGID) end end as BJCP, "); SQL.Add(" case when ISNULL(A.XLBZ_XLBZLXMC,' ') = ' ' then ' ' else A.XLBZ_XLBZLXMC end as XLBZ, case when ISNULL(RSRYJBXX_RYMC,' ') = ' ' then ' ' else rtrim(RSRYJBXX_RYMC) || ':' end as ZDR, "); SQL.Add(" ISNULL(XLXSBJYLZDMX_BZDBZ,'N') as XLXSBJYLZDMX_BZDBZ,ISNULL(XLXSBJYLZDMX_DZSC,'N') as XLXSBJYLZDMX_DZSC, "); SQL.Add(" case when ISNULL(XLXSBJYLZDMX_DYDJID,' ') = ' ' then rtrim(XLXSBJYLZDMX_XLXHID) || ' ' || rtrim(XLXSBJYLZDMX_XLGGID) else "); SQL.Add(" case when ISNULL(XLXSBJYLZDMX_DYDJID,' ') = '--' then rtrim(XLXSBJYLZDMX_XLXHID) || ' ' || rtrim(XLXSBJYLZDMX_XLGGID) else "); SQL.Add(" rtrim(XLXSBJYLZDMX_XLXHID) || '-' || rtrim(XLXSBJYLZDMX_DYDJID) || ' ' || rtrim(XLXSBJYLZDMX_XLGGID) end end as XDBJCP, "); SQL.Add(" case when ISNULL(B.XLBZ_XLBZLXMC,' ') = ' ' then ' ' else B.XLBZ_XLBZLXMC end as XDXLBZ,XLXSBJYLZDMX_BZ,XLXSBJYLZDMX_WHR,XLXSBJYLZDMX_WHSJ"); SQL.Add(" from XLXSBJYLZDMX "); SQL.Add(" left join XLXSBJYLZD on XLXSBJYLZD_SQDH = XLXSBJYLZDMX_SQDH "); SQL.Add(" left join XLXSBJDMX on XLXSBJDMX_BJDID = XLXSBJYLZD_BJDID and XLXSBJDMX_XH = XLXSBJYLZDMX_BJDXH "); SQL.Add(" left join RSRYJBXX on RSRYJBXX_GH = XLXSBJYLZDMX_ZDRGH "); SQL.Add(" left join XLBZ A on XLXSBJYLZDMX_BJDXLBZID = A.XLBZ_XLBZID "); SQL.Add(" left join XLBZ B on XLXSBJYLZDMX_XLBZID = B.XLBZ_XLBZID "); SQL.Add(" where XLXSBJYLZDMX_SQDH = :XLXSBJYLZDMX_SQDH "); SQL.Add(" order by XLXSBJYLZDMX_ZDRGH,XLXSBJYLZDMX_XH "); SQL.ParamByName("XLXSBJYLZDMX_SQDH").Value = sBH; DataSet dsMX = dbBO.OpenDataSet(SQL); if (dsMX.Tables[0].Rows.Count > 0) { string sWFID = dsMX.Tables[0].Rows[0]["XLXSBJYLZD_WFID"].ToString().Trim(); string sWPID = dsMX.Tables[0].Rows[0]["XLXSBJYLZD_WPID"].ToString().Trim(); string sWFAWAITER = dsMX.Tables[0].Rows[0]["XLXSBJYLZD_WFAWAITER"].ToString().Trim(); string sCurZT = TWorkflow.Utils.WFGetBZSWID(sWFID, sWPID); bool IsAwaiter = sWFAWAITER.Contains(","+tSession.UserId+","); for (int j = 0; j < dsMX.Tables[0].Rows.Count; j++) { if (sCurZT.Equals("0030") && IsAwaiter) { string sZDRGH = dsMX.Tables[0].Rows[j]["XLXSBJYLZDMX_ZDRGH"].ToString().Trim(); if (!sZDRGH.Equals(tSession.UserId)) { continue; } } CLYLZDSQMXModel CLYLZDSQMX = new CLYLZDSQMXModel(); string[] aMXField = sMXFields.Split(','); foreach (string Field in aMXField) { if (CLYLZDSQMX.GetType().GetProperty(Field.Trim()) != null) { CLYLZDSQMX.GetType().GetProperty(Field.Trim()).SetValue(CLYLZDSQMX, dsMX.Tables[0].Rows[j][Field.Trim()].ToString().Trim(), null); } } MO.MXInfos.Add(CLYLZDSQMX); } } } } }