This commit is contained in:
2026-08-21 17:03:02 +08:00
commit f065129b20
2292 changed files with 666241 additions and 0 deletions
+426
View File
@@ -0,0 +1,426 @@
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_MODEL.Page;
using GThinking.N_WORKFLOW;
using System.Text;
using GThinking.N_MISPRO.Utility;
using GThinking.N_MISPRO;
using GThinking.N_MISPRO.Data;
using GThinking.N_PUBLIC2;
using System.Collections.Generic;
namespace GThinking.N_XLXSBJ
{
public partial class CLYLZDSQList : SingleGridBase
{
XLXSBJYLZD entity = new XLXSBJYLZD();
XLXSBJYLZD_M queryentity = new XLXSBJYLZD_M();
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860064;
this.UMName = "材料用量制定申请";
this.CurMaster = Master;
this.ModuleGV = grdContentGrid;
this.CurEntity = entity;
this.CurQueryEntity = queryentity;
this.sURLTarget = "CLYLZDSQInfo.aspx";
this.sQueryURLTarget = "CLYLZDSQQuery.aspx";
this.PageHeight = 500;
this.PageWidth = 700;
base.DataKeyNames = new string[] { "XLXSBJYLZD_SQDH", "XLXSBJYLZD_WPID" };
this.Master.EnableNewBtn = false;
this.Master.EnableCopyBtn = false;
if (!IsPostBack)
{
this.CurQueryEntity.FieldByName("SW").Value = "W";
}
base.InitPage();
if (!IsPostBack)
{
Master_OnStandardQuery(null, null);
}
}
#region 模板继承事件
protected override bool CanSubmit()
{
if (!base.CanSubmit()) return false;
string sSQDH = grdContentGrid.DataKeys[grdContentGrid.SelectedIndex]["XLXSBJYLZD_SQDH"].ToString().Trim();
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add("select XLXSBJYLZD_WFID, XLXSBJYLZD_WPID from XLXSBJYLZD where XLXSBJYLZD_SQDH =:pXLXSBJYLZD_SQDH ");
SQL.ParamByName("pXLXSBJYLZD_SQDH").Value = sSQDH;
DataSet dsXLXSBJYLZD = dberp.OpenDataSet(SQL);
if (dsXLXSBJYLZD.Tables[0].Rows.Count > 0)
{
string sWFID = dsXLXSBJYLZD.Tables[0].Rows[0]["XLXSBJYLZD_WFID"].ToString().Trim();
string sWPID = dsXLXSBJYLZD.Tables[0].Rows[0]["XLXSBJYLZD_WPID"].ToString().Trim();
string sErrorMsg = "";
string sBZSWID = TWorkflow.Utils.WFGetBZSWID(sWFID, sWPID);
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)
{
sErrorMsg = "制定人为空,不允许提交!";
ShowMessage(sErrorMsg);
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)
{
sErrorMsg = "修订型号、修订规格、修订标准、修订电压等级为空,不允许提交!";
ShowMessage(sErrorMsg);
return false;
}
}
//“0040|审核”提交至“0050|录入”时,控制定制标准长度大于1
if (sBZSWID.Equals("0040"))
{
if (XLXSBJYLZDEntity.ExistDZBZ(sSQDH))
{
ShowMessage("修订标准必须选择自定义定制标准!");
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() + "】";
sErrorMsg += "还在" + _curWorkFlow.UserInfo.GetUserNames(ds.Tables[0].Rows[0]["XLXSCLQD_WFAWAITER"].ToString()) + "待处理,未提交至结束,此用量制定申请记录不允许提交!";
ShowMessage(sErrorMsg);
return false;
}
}
//“0055|核价”提交时控制XLXSBJYLZDMX_XLXHID、XLXSBJYLZDMX_XLGGID、XLXSBJYLZDMX_XLBZID、XLXSBJYLZDMX_DYDJID都不允许为空
if (sBZSWID.Equals("0055"))
{
XLXSBJYLZDEntity.IsCmpXLBJCP(SQL, dberp, sSQDH, ref ds);
if (ds.Tables[0].Rows.Count > 0)
{
sErrorMsg = "修订型号、修订规格、修订标准、修订电压等级为空,不允许提交!";
ShowMessage(sErrorMsg);
return false;
}
}
}
return true;
}
protected override void Master_OnStandardQuery(object sender, EventArgs e)
{
base.InitEntityByCondition();
entity.EntityTable.QuerySelSql = GetQuerySQL();
base.Master_OnStandardQuery(sender, e);
entity.GridDataBind(grdContentGrid, tSession);
}
protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
base.InitEntityByCondition();
entity.EntityTable.QuerySelSql = GetQuerySQL();
grdContentGrid.SelectedIndex = -1;
base.moduleGV_PageIndexChanging(sender, e);
}
protected override bool Master_AfterDeleteAction(object sender, EventArgs e)
{
if (!base.Master_AfterDeleteAction(sender, e)) { return false; }
base.InitEntityByCondition();
entity.EntityTable.QuerySelSql = GetQuerySQL();
entity.GridDataBind(grdContentGrid, tSession);
grdContentGrid.SelectedIndex = -1;
return true;
}
protected override void moduleGV_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if ((e.Row.Cells[0].Text.Trim() != "") && (e.Row.Cells[0].Text.Trim() != " "))
{
try
{
e.Row.Cells[0].Text = this._curWorkFlow.GetWPName(grdContentGrid.DataKeys[e.Row.RowIndex]["XLXSBJYLZD_WFID"].ToString().Trim(), e.Row.Cells[0].Text.Trim());
}
catch
{
e.Row.Cells[0].Text = "";
}
}
if ((e.Row.Cells[e.Row.Cells.Count - 3].Text.Trim() != "") && (e.Row.Cells[e.Row.Cells.Count - 3].Text.Trim() != " "))
{
try
{
e.Row.Cells[e.Row.Cells.Count - 3].Text = this._curWorkFlow.UserInfo.GetUserNames(e.Row.Cells[e.Row.Cells.Count - 3].Text.Trim());
}
catch
{
e.Row.Cells[e.Row.Cells.Count - 3].Text = "";
}
}
if ((e.Row.Cells[e.Row.Cells.Count - 4].Text.Trim() != "") && (e.Row.Cells[e.Row.Cells.Count - 4].Text.Trim() != " "))
{
try
{
e.Row.Cells[e.Row.Cells.Count - 4].Text = this._curWorkFlow.UserInfo.GetUserNames(e.Row.Cells[e.Row.Cells.Count - 4].Text.Trim());
}
catch
{
e.Row.Cells[e.Row.Cells.Count - 4].Text = "";
}
}
LinkPageParam.AddString("XLXSBJYLZD_SQDH", grdContentGrid.DataKeys[e.Row.RowIndex]["XLXSBJYLZD_SQDH"].ToString().Trim());
LinkPageParam.AddString("WFID", grdContentGrid.DataKeys[e.Row.RowIndex]["XLXSBJYLZD_WFID"].ToString().Trim());
LinkPageParam.AddString("WFINST", grdContentGrid.DataKeys[e.Row.RowIndex]["XLXSBJYLZD_WFINST"].ToString());
}
base.moduleGV_RowDataBound(sender, e);
}
protected override void Master_wfOnGetParamName(ref List<string> ParamList)
{
base.Master_wfOnGetParamName(ref ParamList);
ParamList.Add("制定人");
ParamList.Add("材料价缺失");
}
protected override void Master_wfOnGetParamEvent(TWorkflow Sender, string ParamName, ref string Value, ref bool Succeess)
{
base.Master_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<string> lst = new List<string>();
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;
}
if (ParamName == "材料价缺失")
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add(@"select top 1 'Y' from XLXSBJYLZDMX
where XLXSBJYLZDMX_SQDH=:pSQDH
and isnull(XLXSBJYLZDMX_BZDBZ,' ')<>'Y'
and XLXSBJYLZDMX_HSCLCB<=0");
SQL.ParamByName("pSQDH").Value = grdContentGrid.DataKeys[grdContentGrid.SelectedIndex]["XLXSBJYLZD_SQDH"].ToString().Trim();
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
Value = "Y";
}
else
{
Value = "N";
}
Succeess = true;
}
}
protected override void Master_wfAfterActionEvent(TWorkflow Sender, TWFAction Action, bool ActionIsDone)
{
base.Master_wfAfterActionEvent(Sender, Action, ActionIsDone);
if (!ActionIsDone) return;
Sender.dbe.ExecSQL(string.Format("update XLXSBJYLZD set XLXSBJYLZD_WFID = '{0}', XLXSBJYLZD_WPID = '{1}', XLXSBJYLZD_WFAWAITER= '{2}',XLXSBJYLZD_WFHANDLER = '{3}',XLXSBJYLZD_WFINST = {4},XLXSBJYLZD_ACTNAME = '{5}' where XLXSBJYLZD_SQDH='{6}'",
Sender.WFID, Sender.WPID, Sender.Awaiter, Sender.Handler, Sender.WFInst, Sender.GetWFActionName(Action),
grdContentGrid.DataKeys[grdContentGrid.SelectedIndex]["XLXSBJYLZD_SQDH"].ToString().Trim()));
//“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 = grdContentGrid.DataKeys[grdContentGrid.SelectedIndex]["XLXSBJYLZD_SQDH"].ToString().Trim();
TSQL SQL = new TSQL(Sender.dbe);
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);
}
}
//提交至“0055|确认”后,更新XLXSBJYLZD_HJBZ
if (sCurZT.Equals("0055") && Action == TWFAction.wfaSubmit)
{
string sErrorMsg = "";
XLXSBJYLZDEntity.UpdateHZBZ(SQL, Sender.dbe, sSQDH, ref sErrorMsg);
if (!sErrorMsg.Equals(""))
{
ActionIsDone = false;
throw new Exception(sErrorMsg);
}
}
//提交至“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 void moduleGV_Sorting(object sender, GridViewSortEventArgs e)
{
base.InitEntityByCondition();
entity.EntityTable.QuerySelSql = GetQuerySQL();
base.moduleGV_Sorting(sender, e);
}
protected override void BeforeDelete(TDatabase db, ref bool ActionIsDone)
{
entity.Param.Add("XLXSBJYLZD_SQDH", grdContentGrid.DataKeys[grdContentGrid.SelectedIndex]["XLXSBJYLZD_SQDH"].ToString().Trim());
TSQL sSQL = new TSQL(db);
sSQL.Clear();
sSQL.Params.Clear();
sSQL.Add("delete from XLXSBJYLZDMX where XLXSBJYLZDMX_SQDH =:XLXSBJYLZDMX_SQDH");
sSQL.ParamByName("XLXSBJYLZDMX_SQDH").Value = grdContentGrid.DataKeys[grdContentGrid.SelectedIndex]["XLXSBJYLZD_SQDH"].ToString().Trim();
db.ExecSQL(sSQL);
base.BeforeDelete(db, ref ActionIsDone);
}
protected override void AfterDelete(TDatabase db, ref bool ActionIsDone)
{
base.AfterDelete(db, ref ActionIsDone);
}
protected override void BeforeAttach()
{
attDoc.WorkTableName = "XLXSBJYLZD";
attDoc.UpdCondition = string.Format("XLXSBJYLZD_SQDH='{0}'", grdContentGrid.DataKeys[grdContentGrid.SelectedIndex]["XLXSBJYLZD_SQDH"].ToString().Trim());
base.BeforeAttach();
}
#endregion
#region 自定义事件
private string GetQuerySQL()
{
StringBuilder sSQL = new StringBuilder();
sSQL.AppendLine("select ");
sSQL.AppendLine(" XLXSBJYLZD_SQDH,XLXSBJYLZD_SQRGH,XLXSBJYLZD_SQSJ,");
sSQL.AppendLine(" rtrim(XLXSBJYLZD_SQRGH) ||'|'||rtrim(RSRYJBXX_RYMC) as XLXSBJYLZD_SQR, ");
sSQL.AppendLine(" XLXSBJYLZD_WCSJ,XLXSBJYLZD_BJDID,XLXSBJYLZD_BZ,");
sSQL.AppendLine(" XLXSBJYLZD_FJS,XLXSBJYLZD_DOCGRPID,");
sSQL.AppendLine(" XLXSBJYLZD_WHR,XLXSBJYLZD_WHRID,XLXSBJYLZD_WHSJ,");
sSQL.AppendLine(" XLXSBJYLZD_WFID,XLXSBJYLZD_WPID,XLXSBJYLZD_WFINST,XLXSBJYLZD_ACTNAME,XLXSBJYLZD_WFAWAITER,XLXSBJYLZD_WFHANDLER ");
sSQL.AppendLine(" from XLXSBJYLZD ");
sSQL.AppendLine(" LEFT JOIN RSRYJBXX ON RSRYJBXX_GH = XLXSBJYLZD_SQRGH ");
sSQL.AppendLine(" where 1=1 ");
if (this.CurQueryEntity.FieldByName("SW").Value.ToString().Trim().Equals("W"))
{
sSQL.AppendLine(" and " + _curWorkFlow.GetWhereAgent("XLXSBJYLZD", tSession.UserId.Trim(), "XLXSBJYLZD_WFAWAITER", "XLXSBJYLZD_WFID", "XLXSBJYLZD_WPID"));
}
else if (this.CurQueryEntity.FieldByName("SW").Value.ToString().Trim().Equals("H"))
{
sSQL.AppendLine(" and (XLXSBJYLZD_WFHANDLER like :pUSRNAME or XLXSBJYLZD_WFHANDLER like :pUSRID) ");
entity.Param.Add("pUSRNAME", string.Format("%,{0},%", tSession.UserName.Trim()));
entity.Param.Add("pUSRID", string.Format("%,{0},%", tSession.UserId.Trim()));
}
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("WFAWAITER").Value.Trim()))
{
sSQL.AppendLine(" and XLXSBJYLZD_WFAWAITER like :pWFAWITER ");
entity.Param.Add("pWFAWITER", string.Format("%,{0},%", CurQueryEntity.FieldByName("WFAWAITER").Value.Trim()));
}
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("WPID").Value.Trim()))
{
sSQL.AppendLine(" and " + CMISproDataBase.GetWhereEqual("XLXSBJYLZD_WPID", CurQueryEntity.FieldByName("WPID").Value.Trim()));
}
//报价单号
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("BJDID").Value.Trim()))
{
sSQL.AppendLine(" and XLXSBJYLZD_BJDID like :pXLXSBJYLZD_BJDID ");
entity.Param.Add("pXLXSBJYLZD_BJDID", "%" + CurQueryEntity.FieldByName("BJDID").Value.Trim() + "%");
}
sSQL.AppendLine(CMISproDataBase.GetTimeConditionSQL("XLXSBJYLZD_SQSJ", CurQueryEntity.FieldByName("SQRQS").Value.Trim(),
CurQueryEntity.FieldByName("SQRQZ").Value.Trim(), DateTimeType.dtTime, DateTimeType.dtTime));
sSQL.AppendLine(" order by XLXSBJYLZD_SQDH desc ");
return sSQL.ToString();
}
#endregion
}
}