633 lines
26 KiB
C#
633 lines
26 KiB
C#
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<CLYLZDSQMXModel> _MXInfos = new List<CLYLZDSQMXModel>();//本次所返回的记录的明细数据
|
||
public List<CLYLZDSQMXModel> 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<CLYLZDSQModel> GetWCLYLZDSQList(int iStart, int iNum, out int iRowCount)
|
||
{
|
||
List<CLYLZDSQModel> moList = new List<CLYLZDSQModel>();
|
||
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<CLYLZDSQModel> GetHCLYLZDSQList(int iStart, int iNum, out int iRowCount)
|
||
{
|
||
List<CLYLZDSQModel> moList = new List<CLYLZDSQModel>();
|
||
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<CLYLZDSQModel> GetCLYLZDSQListByFA(int iStart, int iNum, int iMDID, string sNQNAME, string sNQCLASSNAME, out int iRowCount)
|
||
{
|
||
List<CLYLZDSQModel> moList = new List<CLYLZDSQModel>();
|
||
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<CLYLZDSQModel> 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<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;
|
||
}
|
||
}
|
||
|
||
#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);
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|