using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using GThinking.N_MISPRO.Data; using GThinking.N_MODEL.Page; using GThinking.N_MISPRO; using GThinking.N_CONTROL; using GThinking.N_MISPRO.Utility; using System.Text; using GThinking.N_WORKFLOW; using GThinking.N_MISPRO.MISPROAS; namespace GThinking.N_XLXSBJ { [TableMap(DB = "DBERP", DbTableName = "XLXSBJCL", Umid = 100860064, IsWorkFlow = false, IsAttach = false, UseWhr = false)] public class CLYLZDSQ : EntityManager { } public class CLYLZDSQ_M : TBaseNamedQuery { public CLYLZDSQ_M() { AddFieldDefs("XLXHID", "型号"); AddFieldDefs("XLXHIDJQPP", "型号精确匹配"); AddFieldDefs("DYDJ", "电压等级"); AddFieldDefs("ZXJMS", "主芯截面始"); AddFieldDefs("ZXJMZ", "主芯截面止"); AddFieldDefs("ZDRWSZ", "制定人未设置"); } } public partial class CLYLZDSQOper : SingleGridBase { CLYLZDSQ entity = new CLYLZDSQ(); CLYLZDSQ_M queryentity = new CLYLZDSQ_M(); protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860064; this.UMName = "材料用量制定申请"; this.CurMaster = Master; this.ModuleGV = ContentGrid; this.CurQueryEntity = queryentity; this.CurEntity = entity; this.sQueryURLTarget = "CLYLZDSQOperQuery.aspx"; this.PageHeight = 600; this.PageWidth = 750; base.DataKeyNames = new string[] { "XLXSBJDMX_BJDID", "XLXSBJDMX_XH" }; Master.EnableNewBtn = false; Master.EnableCopyBtn = false; Master.EnableViewBtn = false; Master.EnableEditBtn = false; Master.EnableDeleteBtn = false; //Master.EnableQueryBtn = false; Master.EnablePrintBtn = false; if (!IsPostBack) { CurQueryEntity.FieldByName("XLXHIDJQPP").Value = "True"; } if (!string.IsNullOrEmpty(PageParam.GetRTrimString("BJDID"))) { TPageParams tpp = new TPageParams(); tpp.AddString("BJDID", PageParam.GetRTrimString("BJDID")); QueryPageParam = tpp; } base.InitPage(); this.ModuleGV.OnClientDblClick = "return false;"; if (!IsPostBack) { InsertV(); Master_OnStandardQuery(null, null); } if (!IsPostBack) { } SyncAttachControl(); } #region 模板继承事件 protected override void Master_OnStandardQuery(object sender, EventArgs e) { base.Master_OnStandardQuery(sender, e); entity.EntityTable.QuerySelSql = GetQuerySql(); entity.GridDataBind(ContentGrid, tSession); } protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e) { entity.EntityTable.QuerySelSql = GetQuerySql(); ContentGrid.SelectedIndex = -1; base.moduleGV_PageIndexChanging(sender, e); } #endregion #region 自定义方法 private string GetQuerySql() { base.InitEntityByCondition(); string sCLYLZJFS = ""; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860014); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_CLYLZJFS)) sCLYLZJFS = pzxx.XLXSBJPZ_CLYLZJFS; string sBJDID = PageParam.GetRTrimString("BJDID"); StringBuilder sSQL = new StringBuilder(); sSQL.AppendLine("select XLXSBJDMX_BJDID,XLXSBJDMX_XH,XLXSBJDMX_XSSX,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,case when isnull(RSRYJBXX_RYMC,' ')=' ' then ' 'else rtrim(RSRYJBXX_GH)||'|'||RSRYJBXX_RYMC end as ZDR,"); sSQL.AppendLine(" XLXSBJDMX_BJCP,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_CPBJ,XLXSBJDMX_BJJE,XLXSBJDMX_BZ,XLXSBJDMX_WHR,XLXSBJDMX_WHSJ,"); sSQL.AppendLine(" case isnull(XLXSBJDMX_XLBZID,' ') when ' ' then ' ' else rtrim(XLXSBJDMX_XLBZID)||'|'||XLBZ_XLBZLXMC end as XLBZ "); sSQL.AppendLine("from XLXSBJDMX "); sSQL.AppendLine("left join XLBZ on XLBZ_XLBZID=XLXSBJDMX_XLBZID "); sSQL.AppendLine("left join V_XLXSBJYLZDMX on V_XLXSBJYLZDMX_BJDID=XLXSBJDMX_BJDID and V_XLXSBJYLZDMX_BJDXH=XLXSBJDMX_XH "); sSQL.AppendLine("left join RSRYJBXX on RSRYJBXX_GH=V_XLXSBJYLZDMX_ZDRGH "); sSQL.AppendLine(" left join(select XLGGB_XLGGID as XLGGID,XLGGB_XXJGID,"); sSQL.AppendLine(" case when charindex('/',XLGGB_DTJMZHID)<=0 then convert(float,XLGGB_DTJMZHID) else convert(float,substring(XLGGB_DTJMZHID,0,charindex('/',XLGGB_DTJMZHID))) end as ZXJM,"); sSQL.AppendLine(" MIN(XLGGB_XH) as minXH from XLGGB where 1=1"); sSQL.AppendLine(" GROUP BY XLGGB_XLGGID,XLGGB_XXJGID,XLGGB_DTJMZHID) tmpXLGGB on XLGGID=REPLACE(XLXSBJDMX_XLGGID,'*','×')"); sSQL.AppendLine("where 1=1 "); //非外购产品 sSQL.AppendLine("and isnull(XLXSBJDMX_WGCPBZ,'N') <> 'Y' "); if(sCLYLZJFS.Equals("2")) { //无材料清单记录 sSQL.AppendLine("and not exists (select 1 from XLXSCLQD where XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID =XLXSBJDMX_XLGGID "); sSQL.AppendLine(" and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID = XLXSBJDMX_DYDJID and XLXSCLQD_WPID ='ZZZZ' ) "); } else if (sCLYLZJFS.Equals("3")) { //无表价 sSQL.AppendLine(" and XLXSBJDMX_JGBBJ = 0 "); } else if (sCLYLZJFS.Equals("2,3")) { //无材料清单或无表价记录 sSQL.AppendLine("and (not exists (select 1 from XLXSCLQD where XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID =XLXSBJDMX_XLGGID "); sSQL.AppendLine(" and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID = XLXSBJDMX_DYDJID and XLXSCLQD_WPID ='ZZZZ' ) OR XLXSBJDMX_JGBBJ = 0 ) "); } else if (sCLYLZJFS.Equals("4")) { //销售报价单明细不参与调价因子为0时自动触发 sSQL.AppendLine("and exists (select 1 from XLXSBJDYZZ0 where XLXSBJDYZZ0_BJDID=XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH =XLXSBJDMX_XH "); sSQL.AppendLine(" and (XLXSBJDYZZ0_YZZ02=0 or XLXSBJDYZZ0_YZZ03=0)) "); } else { sSQL.AppendLine(" and 1<>1 "); } if (!sBJDID.Equals("")) { sSQL.AppendLine("and XLXSBJDMX_BJDID=:pBJDID "); entity.Param.Add("pBJDID", sBJDID); } else { sSQL.AppendLine("and 1<>1 "); } //型号模糊 if (!CurQueryEntity.FieldByName("XLXHIDJQPP").Value.ToString().Trim().ToUpper().Equals("TRUE")) { if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("XLXHID").Value.Trim())) { sSQL.AppendLine(string.Format(" \r\n and XLXSBJDMX_XLXHID like '{0}' ","%" + CurQueryEntity.FieldByName("XLXHID").Value.Trim() + "%")); } } else { string sXLXHID = CurQueryEntity.FieldByName("XLXHID").Value.Trim(); if (!string.IsNullOrEmpty(sXLXHID)) { string[] sTemp = sXLXHID.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (sTemp.Length >= 2) { sSQL.AppendLine(" \r\n and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XLXHID", sXLXHID)); } else { sSQL.AppendLine(string.Format(" \r\n and XLXSBJDMX_XLXHID = '{0}' ", sXLXHID)); } } } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("DYDJ").Value.Trim())) { sSQL.AppendLine(string.Format(" and XLXSBJDMX_DYDJID = '{0}' ",CurQueryEntity.FieldByName("DYDJ").Value.Trim())); } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("ZXJMS").Value.Trim()) && !CurQueryEntity.FieldByName("ZXJMS").Value.Trim().Equals("0")) { sSQL.AppendLine(string.Format(" and ZXJM>={0} ", CurQueryEntity.FieldByName("ZXJMS").Value.Trim())); } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("ZXJMZ").Value.Trim()) && !CurQueryEntity.FieldByName("ZXJMZ").Value.Trim().Equals("0")) { sSQL.AppendLine(string.Format(" and ZXJM<={0} ", CurQueryEntity.FieldByName("ZXJMZ").Value.Trim())); } if (CurQueryEntity.FieldByName("ZDRWSZ").Value.ToString().Trim().ToUpper().Equals("TRUE")) { sSQL.AppendLine(" and isnull(V_XLXSBJYLZDMX_ZDRGH,' ')=' ' "); } sSQL.AppendLine(" order by XLXSBJDMX_XSSX "); return sSQL.ToString(); } private string GetZDRGHList() { XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860064); return pzxx.XLXSBJPZ_ZDRGHS; } private string GetZDRGHByCZB(string sXLXHID,string sXLGGID,string sXLBZID,string sDYDJID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(@"select distinct isnull(RSRYJBXX_GH,' ') as ZDRGH from XLXSCLQD left join XLJGCZBML on XLJGCZBML_JGCZBID=XLXSCLQD_JGCZBID left join RSRYJBXX on XLJGCZBML_FZR=RSRYJBXX_RYMC left join XLBZ on XLBZ_XLBZID=XLXSCLQD_XLBZID where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_DYDJID=:pDYDJID and XLXSCLQD_WPID='ZZZZ' and XLBZ_DZSC<>'Y' and isnull(RSRYJBXX_GH,' ')<>' ' "); SQL.ParamByName("pXLXHID").Value = sXLXHID; SQL.ParamByName("pXLGGID").Value = sXLGGID; //SQL.ParamByName("pXLBZID").Value = sXLBZID; SQL.ParamByName("pDYDJID").Value = sDYDJID; string sZDRGHList = "," + GetZDRGHList() + ","; string sResZDRGH = string.Empty; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count ==1) return ds.Tables[0].Rows[0][0].ToString().Trim(); //负责人有多个,检查是否都在值域内 if (ds.Tables[0].Rows.Count > 1) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sZDRGH = ds.Tables[0].Rows[i][0].ToString().Trim(); if (sZDRGHList.Contains("," + sZDRGH + ",")) { if (sResZDRGH.Equals("")) sResZDRGH = sZDRGH; else if (!sResZDRGH.Equals(sZDRGH)) return ""; } } } return sResZDRGH; } private string GetZDRGHByCPML(string sCPMLMC) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(@"select isnull(RSRYJBXX_GH,' ') as ZDRGH from XLXSCPML left join RSRYJBXX on XLXSCPML_FZR=RSRYJBXX_RYMC where XLXSCPML_CPMLMC=:pCPMLMC"); SQL.ParamByName("pCPMLMC").Value = sCPMLMC; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count == 1) return ds.Tables[0].Rows[0][0].ToString().Trim(); return ""; } private void SyncAttachControl() { this.altAttachList.DocGroupField = "XLXSBJYLZD_DOCGRPID"; this.altAttachList.UpdCondition = "1<>1"; this.altAttachList.WorkTableName = "XLXSBJYLZD"; this.altAttachList.AddAttachFromDocsVisible = false; } private void InsertV() { base.InitEntityByCondition(); string sCLYLZJFS = ""; XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860014); if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_CLYLZJFS)) sCLYLZJFS = pzxx.XLXSBJPZ_CLYLZJFS; string sBJDID = PageParam.GetRTrimString("BJDID"); //先插入临时表 string sGH = GetZDRGHList(); if (sGH.Contains(",")) sGH = ""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("delete from V_XLXSBJYLZDMX where V_XLXSBJYLZDMX_BJDID=:pBJDID"); SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); SQL.Clear(); //SQL.Add(" insert into V_XLXSBJYLZDMX(V_XLXSBJYLZDMX_BJDID,V_XLXSBJYLZDMX_BJDXH,V_XLXSBJYLZDMX_ZDRGH)"); SQL.Add(" select XLXSBJDMX_BJDID,XLXSBJDMX_XH,XLXSBJDMX_XSSX,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,XLXSBJDMX_CPMLMC "); SQL.Add(" from XLXSBJDMX "); SQL.Add(" left join XLBZ on XLBZ_XLBZID=XLXSBJDMX_XLBZID "); SQL.Add(" where 1=1 "); //非外购产品 SQL.Add(" and isnull(XLXSBJDMX_WGCPBZ,'N') <> 'Y' "); if (sCLYLZJFS.Equals("2")) { //无材料清单记录 SQL.Add(" and not exists (select 1 from XLXSCLQD where XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID =XLXSBJDMX_XLGGID "); SQL.Add(" and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID = XLXSBJDMX_DYDJID and XLXSCLQD_WPID ='ZZZZ' ) "); } else if (sCLYLZJFS.Equals("3")) { //无表价 SQL.Add(" and XLXSBJDMX_JGBBJ = 0 "); } else if (sCLYLZJFS.Equals("2,3")) { //无材料清单或无表价记录 SQL.Add(" and (not exists (select 1 from XLXSCLQD where XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID =XLXSBJDMX_XLGGID "); SQL.Add(" and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID = XLXSBJDMX_DYDJID and XLXSCLQD_WPID ='ZZZZ' ) OR XLXSBJDMX_JGBBJ = 0 ) "); } else if (sCLYLZJFS.Equals("4")) { //销售报价单明细不参与调价因子为0时自动触发 SQL.Add(" and exists (select 1 from XLXSBJDYZZ0 where XLXSBJDYZZ0_BJDID=XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH =XLXSBJDMX_XH "); SQL.Add(" and (XLXSBJDYZZ0_YZZ02=0 or XLXSBJDYZZ0_YZZ03=0)) "); } else { SQL.Add(" and 1<>1 "); } if (!sBJDID.Equals("")) { SQL.Add("and XLXSBJDMX_BJDID=:pBJDID "); SQL.ParamByName("pBJDID").Value = sBJDID; } else { SQL.Add("and 1<>1 "); } DataSet dsBJDMX = dberp.OpenDataSet(SQL); SQL.Clear(); SQL.Add(" insert into V_XLXSBJYLZDMX(V_XLXSBJYLZDMX_BJDID,V_XLXSBJYLZDMX_BJDXH,V_XLXSBJYLZDMX_ZDRGH) values "); SQL.Add("(:pBJDID,:pBJDXH,:pZDRGH ) "); for (int i = 0; i < dsBJDMX.Tables[0].Rows.Count; i++) { string sZDRGH = sGH; //根据配置项赋值制定人 string sXLXHID = dsBJDMX.Tables[0].Rows[i]["XLXSBJDMX_XLXHID"].ToString().Trim(); string sXLGGID = dsBJDMX.Tables[0].Rows[i]["XLXSBJDMX_XLGGID"].ToString().Trim(); string sXLBZID = dsBJDMX.Tables[0].Rows[i]["XLXSBJDMX_XLBZID"].ToString().Trim(); string sDYDJID = dsBJDMX.Tables[0].Rows[i]["XLXSBJDMX_DYDJID"].ToString().Trim(); string sCPMLMC = dsBJDMX.Tables[0].Rows[i]["XLXSBJDMX_CPMLMC"].ToString().Trim(); string sTmpZDRGH = string.Empty; if (XLBJDUtils.GetXLXSBJPZXX(100860064).XLXSBJPZ_MRZDR.Equals("1")) { sZDRGH = GetZDRGHByCZB(sXLXHID, sXLGGID, sXLBZID, sDYDJID); } else if (XLBJDUtils.GetXLXSBJPZXX(100860064).XLXSBJPZ_MRZDR.Equals("2")) { sTmpZDRGH = GetZDRGHByCPML(sCPMLMC); string sZDRGHList = "," + GetZDRGHList() + ","; if (sZDRGHList.Contains("," + sTmpZDRGH + ",")) { sZDRGH = sTmpZDRGH; } } SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pBJDXH").Value = CMISproConvert.StrToInt(dsBJDMX.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim()); SQL.ParamByName("pZDRGH").Value = sZDRGH; dberp.ExecSQL(SQL); } } #endregion #region 控件事件 protected void btnOK_Click(object sender, EventArgs e) { if (ContentGrid.DataKeys.Count <= 0) { ShowMessage("请选择记录!"); return; } bool FlagDRMXAll = false; if (!((ContentGrid.CheckBox && !String.IsNullOrEmpty(ContentGrid.CheckedRowIndexs)) || (ContentGrid.SelectedIndex >= 0))) { FlagDRMXAll = true; } string[] RowsArry; if (ContentGrid.CheckBox && !String.IsNullOrEmpty(ContentGrid.CheckedRowIndexs)) { RowsArry = ContentGrid.CheckedRowIndexs.Split(new char[] { ',' }); } else { RowsArry = new string[1]; RowsArry[0] = ContentGrid.SelectedIndex.ToString(); } //成功创建记录标志 int flag = 0; string sBJDID = PageParam.GetRTrimString("BJDID"); string sSQDH = CMISproDataBase.GetYWBHByNY("DBERP", "XLXSBJYLZD", "XLXSBJYLZD_SQDH", 4); DataSet ds = new DataSet(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); try { dberp.BeginTrans(); SQL.Clear(); SQL.Add(" insert into XLXSBJYLZD"); SQL.Add(" ( "); SQL.Add(" XLXSBJYLZD_SQDH,XLXSBJYLZD_SQRGH,XLXSBJYLZD_SQSJ, "); SQL.Add(" XLXSBJYLZD_WCSJ,XLXSBJYLZD_BJDID,XLXSBJYLZD_BZ, "); SQL.Add(" XLXSBJYLZD_FJS,XLXSBJYLZD_DOCGRPID, "); SQL.Add(" XLXSBJYLZD_WHR,XLXSBJYLZD_WHRID,XLXSBJYLZD_WHSJ "); SQL.Add(" ) "); SQL.Add(" values("); SQL.Add(" :XLXSBJYLZD_SQDH,:XLXSBJYLZD_SQRGH,:XLXSBJYLZD_SQSJ, "); SQL.Add(" :XLXSBJYLZD_WCSJ,:XLXSBJYLZD_BJDID,:XLXSBJYLZD_BZ, "); SQL.Add(" :XLXSBJYLZD_FJS,:XLXSBJYLZD_DOCGRPID, "); SQL.Add(" :XLXSBJYLZD_WHR,:XLXSBJYLZD_WHRID,:XLXSBJYLZD_WHSJ "); SQL.Add(" ) "); SQL.ParamByName("XLXSBJYLZD_SQDH").Value = sSQDH; SQL.ParamByName("XLXSBJYLZD_SQRGH").Value = tSession.UserId; SQL.ParamByName("XLXSBJYLZD_SQSJ").Value = DateTime.Now; SQL.ParamByName("XLXSBJYLZD_WCSJ").Value = null; SQL.ParamByName("XLXSBJYLZD_BJDID").Value = sBJDID; SQL.ParamByName("XLXSBJYLZD_BZ").Value = ""; double dDOCGRPID = this.altAttachList.DocGroupId; double dFJS = 0; if (dDOCGRPID != 0) { DocFileInfo[] docFileInfo = FileService.GetFilesInfo(dDOCGRPID); dFJS = docFileInfo.Length; } SQL.ParamByName("XLXSBJYLZD_FJS").Value = dFJS; SQL.ParamByName("XLXSBJYLZD_DOCGRPID").Value = dDOCGRPID; ; SQL.ParamByName("XLXSBJYLZD_WHR").Value = tSession.UserName; SQL.ParamByName("XLXSBJYLZD_WHRID").Value = tSession.UserId; SQL.ParamByName("XLXSBJYLZD_WHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); //导入之后设置工作流状态 TWorkflow xshtWF = new TWorkflow(tSession, new System.Web.Caching.Cache()); xshtWF.UMID = this.UMID; xshtWF.WFNewInst(xshtWF.GetWFID("XLXSBJYLZD"), tSession.UserId); dberp.ExecSQL(string.Format("update XLXSBJYLZD set XLXSBJYLZD_WFID='{0}', XLXSBJYLZD_WPID='{1}', " + "XLXSBJYLZD_WFAWAITER='{2}',XLXSBJYLZD_WFHANDLER='{3}',XLXSBJYLZD_WFINST=isnull({4},0),XLXSBJYLZD_ACTNAME='{5}' where XLXSBJYLZD_SQDH='{6}' ", xshtWF.WFID, xshtWF.WPID, xshtWF.Awaiter, xshtWF.Handler, xshtWF.WFInst, xshtWF.GetWFActionName(TWFAction.wfaNewInst), sSQDH)); string sXHlist = ""; if (FlagDRMXAll) { SQL.Clear(); SQL.Add(GetQuerySql()); SQL.ParamByName("pBJDID").Value = sBJDID; DataSet QueryXLXSBJDMX = dberp.OpenDataSet(SQL); if (QueryXLXSBJDMX.Tables[0].Rows.Count > 0) { for (int i = 0; i < QueryXLXSBJDMX.Tables[0].Rows.Count; i++) { sXHlist = sXHlist + QueryXLXSBJDMX.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim() + ","; } } } else { for (int j = 0; j < RowsArry.Length; j++) { sXHlist = sXHlist + ContentGrid.DataKeys[CMISproConvert.StrToInt(RowsArry[j])]["XLXSBJDMX_XH"].ToString().Trim() + ","; } } sXHlist = sXHlist.TrimEnd(','); if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from V_XLXSBJYLZDMX where V_XLXSBJYLZDMX_BJDID='" + sBJDID + "' and isnull(V_XLXSBJYLZDMX_ZDRGH,' ')=' ' and" + CMISproDataBase.GetWhereEqual("V_XLXSBJYLZDMX_BJDXH", sXHlist))) { string sWarning = "存在制定人为空的记录,是否继续?"; Confirm.Register("IsQD", sWarning); Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; if (Confirm.GetValue("IsQD").Trim().Equals("")) { Confirm.Ask("IsQD"); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("N")) { //表示进行了提示并选择了取消,直接返回或其他处理 Confirm.Clear(); return; } else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) { //表示进行了提示并选择了确认 Confirm.Clear(); } } //string sGH = GetZDRGHList(); //bool bZDR = false; //if (!sGH.Equals("") && !sGH.Contains(",")) // bZDR = true; SQL.Clear(); SQL.Add("insert into XLXSBJYLZDMX("); SQL.Add(" XLXSBJYLZDMX_SQDH,XLXSBJYLZDMX_XH,XLXSBJYLZDMX_BJDXH, "); SQL.Add(" XLXSBJYLZDMX_BJDXLXHID,XLXSBJYLZDMX_BJDXLGGID,XLXSBJYLZDMX_BJDXLBZID,XLXSBJYLZDMX_BJDDYDJID,XLXSBJYLZDMX_BJDXDXLBZID, "); SQL.Add(" XLXSBJYLZDMX_ZDRGH,XLXSBJYLZDMX_BZDBZ,XLXSBJYLZDMX_DZSC, "); SQL.Add(" XLXSBJYLZDMX_XLXHID,XLXSBJYLZDMX_XLGGID,XLXSBJYLZDMX_XLBZID,XLXSBJYLZDMX_DYDJID,XLXSBJYLZDMX_XDXLBZID, "); SQL.Add(" XLXSBJYLZDMX_BZ,XLXSBJYLZDMX_WHR,XLXSBJYLZDMX_WHRID,XLXSBJYLZDMX_WHSJ "); SQL.Add(" ) "); SQL.Add(" select :pSQDH, row_number() over(order by XLXSBJDMX_XH) as XH,XLXSBJDMX_XH, "); SQL.Add(" XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,XLXSBJDMX_XDXLBZID, "); //if (bZDR) // SQL.Add(" '" + sGH + "', 'N', XLXSBJDMX_DZSC, "); //else SQL.Add(" V_XLXSBJYLZDMX_ZDRGH, 'N', XLXSBJDMX_DZSC, "); SQL.Add(" case when XLXHB_XLXHID is null then '' else XLXSBJDMX_XLXHID end , "); SQL.Add(" case when XLXHB_XLXHID is null then '' else XLXSBJDMX_XLGGID end , "); SQL.Add(" case when XLXHB_XLXHID is null then '' else XLXSBJDMX_XLBZID end , "); SQL.Add(" case when XLXHB_XLXHID is null then '' else XLXSBJDMX_DYDJID end , "); SQL.Add(" case when XLXHB_XLXHID is null then '' else XLXSBJDMX_XDXLBZID end , "); SQL.Add(" XLXSBJDMX_BZ, :pWHR, :pWHRID, :pWHSJ "); SQL.Add(" from XLXSBJDMX "); SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); SQL.Add(" left join V_XLXSBJYLZDMX on V_XLXSBJYLZDMX_BJDID=XLXSBJDMX_BJDID and V_XLXSBJYLZDMX_BJDXH=XLXSBJDMX_XH "); SQL.Add(" where 1 = 1 "); SQL.Add(" and XLXSBJDMX_BJDID = :pBJDID "); SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sXHlist)); SQL.ParamByName("pSQDH").Value = sSQDH; SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pWHR").Value = tSession.UserName; SQL.ParamByName("pWHRID").Value = tSession.UserId; SQL.ParamByName("pWHSJ").Value = DateTime.Now; dberp.ExecSQL(SQL); flag = 1; //SQL.Clear(); //SQL.Add("delete from V_XLXSBJYLZDMX where V_XLXSBJYLZDMX_BJDID=:pBJDID"); //SQL.ParamByName("pBJDID").Value = sBJDID; //dberp.ExecSQL(SQL); dberp.CommitTrans(); if (flag == 1) { //提交下一步 #region 自动提交下一步 string sWFID = xshtWF.WFID; double WFINST = xshtWF.WFInst; string sAWaiter = xshtWF.Awaiter; string sNextAwaiter = ""; //提交下一步 xshtWF.Enabled = true; string sUser; string[] sStr = sAWaiter.Split(','); try { sUser = sStr[1]; } catch { sUser = tSession.UserId; } xshtWF.CurUserID = sUser; xshtWF.WFInfo(sWFID, WFINST, sUser); TWFActionParam param = new TWFActionParam(); param.sOpinion = ""; param.sNextWFID = sWFID; string sNWPID = ""; //---------直接使用工作流方法取下一步工作流NWPID,不再使用直接写的方法 TStrings wfpName = new TStrings(); wfpName.Text = xshtWF.WFGetNextWFP(sWFID, xshtWF.WFGetStartWPID(sWFID)); try { if (wfpName.Count > 1) { sNWPID = wfpName.Names(1).Trim(); } } catch { flag = 2; } //----- if (flag == 1) { param.sNextWPID = sNWPID; param.sNextNotifier = ""; if (!sNWPID.Trim().Equals("ZZZZ")) { sNextAwaiter = xshtWF.WFGetNextAwaiter(sWFID, sNWPID); if (sNextAwaiter.Trim().Equals("") || sNextAwaiter.Trim().Length > 250) { flag = 3; } } else { //第一步到结束过程需要手动提交,需要调整数据,此处不做处理。 flag = 4; } if (flag == 1) { param.sNextAwaiter = "," + sNextAwaiter + ","; if (!xshtWF.WFIsStopWPID(sWFID, sNWPID)) param.sWFState = TWorkflow.wfsRunning; else param.sWFState = TWorkflow.wfsDone; if (xshtWF.WFWorkIsDone(sWFID, WFINST, sUser)) { param.sWPState = TWorkflow.wpsSubmit; } else { param.sWPState = TWorkflow.wfsRunning; } xshtWF.WFSubmit(sWFID, WFINST, sUser, param); xshtWF.dbe.ExecSQL(string.Format("update XLXSBJYLZD set XLXSBJYLZD_WPID='{0}', XLXSBJYLZD_WFAWAITER='{1}', XLXSBJYLZD_WFHANDLER='{2}' ,XLXSBJYLZD_WFINST={3},XLXSBJYLZD_WFID='{4}',XLXSBJYLZD_ACTNAME='{5}' where XLXSBJYLZD_SQDH='{6}' ", xshtWF.WPID, xshtWF.Awaiter, xshtWF.Handler, xshtWF.WFInst, xshtWF.WFID, xshtWF.GetWFActionName(TWFAction.wfaSubmit), sSQDH)); string sBZWPID = TWorkflow.Utils.WFGetBZSWID(xshtWF.WFID, xshtWF.WPID); if (sBZWPID.Equals("0055")) { string sErrorMsg = ""; XLXSBJYLZDEntity.UpdateHZBZ(SQL, dberp, sSQDH, ref sErrorMsg); if (!sErrorMsg.Equals("")) { throw new Exception(sErrorMsg); } } } } #endregion } if (flag != 1) { CloseWindow(); SQL.Clear(); SQL.Add(" select XLXSBJYLZD_SQDH,XLXSBJYLZD_WFID,XLXSBJYLZD_WFINST from XLXSBJYLZD where XLXSBJYLZD_SQDH=:pXLXSBJYLZD_SQDH "); SQL.ParamByName("pXLXSBJYLZD_SQDH").Value = sSQDH; ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { //打开记录浏览 TPageParams pageParams = new TPageParams(); pageParams.CallAction = TPageCallAction.pcaBrowse; pageParams.UrlPath = "CLYLZDSQInfo.aspx"; //列表页参数 pageParams.AddString("XLXSBJYLZD_SQDH", ds.Tables[0].Rows[0]["XLXSBJYLZD_SQDH"].ToString().Trim()); pageParams.AddString("WFID", ds.Tables[0].Rows[0]["XLXSBJYLZD_WFID"].ToString().Trim()); pageParams.AddString("WFINST", ds.Tables[0].Rows[0]["XLXSBJYLZD_WFINST"].ToString().Trim()); OpenModuleDialog(this.UMID, pageParams); } } else { CloseWindow(); ShowMessage("已生成材料用量制定申请!"); } } catch (Exception ex) { dberp.RollbackTrans(); ShowMessage("生成失败,原因:" + ex.Message); } } protected void btnQX_Click(object sender, EventArgs e) { CloseWindow(); } protected void btnPLSZZDR_Click(object sender, EventArgs e) { if (ContentGrid.DataKeys.Count <= 0) { ShowMessage("请选择记录!"); return; } bool FlagDRMXAll = false; if (!((ContentGrid.CheckBox && !String.IsNullOrEmpty(ContentGrid.CheckedRowIndexs)) || (ContentGrid.SelectedIndex >= 0))) { FlagDRMXAll = true; } string[] RowsArry; if (ContentGrid.CheckBox && !String.IsNullOrEmpty(ContentGrid.CheckedRowIndexs)) { RowsArry = ContentGrid.CheckedRowIndexs.Split(new char[] { ',' }); } else { RowsArry = new string[1]; RowsArry[0] = ContentGrid.SelectedIndex.ToString(); } string sXHlist = ""; if (FlagDRMXAll) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(GetQuerySql()); SQL.ParamByName("pBJDID").Value = PageParam.GetRTrimString("BJDID"); DataSet QueryXLXSBJDMX = dberp.OpenDataSet(SQL); if (QueryXLXSBJDMX.Tables[0].Rows.Count > 0) { for (int i = 0; i < QueryXLXSBJDMX.Tables[0].Rows.Count; i++) { sXHlist = sXHlist + QueryXLXSBJDMX.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim() + ","; } } } else { for (int j = 0; j < RowsArry.Length; j++) { sXHlist = sXHlist + ContentGrid.DataKeys[CMISproConvert.StrToInt(RowsArry[j])]["XLXSBJDMX_XH"].ToString().Trim() + ","; } } TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "CLYLZDSQOper_ZDRInfo.aspx"; pageParams.AddString("BJDID", PageParam.GetRTrimString("BJDID")); pageParams.AddString("XHList", sXHlist); pageParams.AddString("FlagDRMXAll", FlagDRMXAll.ToString().Trim()); pageParams.AddString("btnRefreshClientID", btnRefresh.ClientID); OpenDialog(pageParams); } //刷新记录 protected void btnRefresh_Click(object sender, EventArgs e) { moduleGV_PageIndexChanging(null, null); } #endregion } }