Files
N_XLXSBJ----MX/CLYLZDSQOper.aspx.cs
2026-08-21 17:03:02 +08:00

781 lines
35 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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
}
}