using System ;
using System.Data ;
using System.Data.SqlClient ;
using DSWeb.Models ;
using WebSqlHelper ;
using System.Collections ;
using System.Collections.Generic ;
//using DSWeb.WorkFlow;
namespace DSWeb.EntityDA
{
public class WorkFlowDoDA
{
//workflow_do
private const string PARM_WORKFLOW_DO_GID = "@gid" ;
private const string PARM_WORKFLOW_DO_WORKFLOW_ID = "@workflow_id" ;
private const string PARM_WORKFLOW_DO_BILL_NO = "@bill_no" ;
private const string PARM_WORKFLOW_DO_STEP_ID = "@step_id" ;
private const string PARM_WORKFLOW_DO_AUDITOR = "@auditor" ;
private const string PARM_WORKFLOW_DO_AUDIT_TIME = "@audit_time" ;
private const string PARM_WORKFLOW_DO_BSNO = "@bsno" ;
private const string PARM_WORKFLOW_DO_FEE_ID = "@fee_id" ;
private const string PARM_WORKFLOW_DO_FEE_STATUS = "@fee_status" ;
private const string PARM_WORKFLOW_DO_DO_QUERY_SQL = "@do_query_sql" ;
private const string PARM_WORKFLOW_DO_STEP_NO = "@step_no" ;
private const string PARM_WORKFLOW_DO_IS_FINISH = "@is_finish" ;
private const string PARM_WORKFLOW_DO_IS_DELETED = "@is_deleted" ;
private const string PARM_WORKFLOW_DO_DELETE_STEP = "@delete_step" ;
private const string PARM_WORKFLOW_DO_DELETE_OPERATOR = "@delete_operator" ;
private const string PARM_WORKFLOW_DO_DELETE_STEP_NO = "@delete_stepno" ;
private const string PARM_WORKFLOW_DO_DELETE_APPLICANT = "@applicant" ;
//ch_fee_payapplication
private const string PARM_SETTLE_APPL_GID = "@gid" ;
private const string PARM_SETTLE_APPL_BILL_NO = "@bill_no" ;
private const string PARM_SETTLE_APPL_BILL_STATUS = "@bill_status" ;
private const string PARM_SETTLE_APPL_COMPANY_ID = "@company_id" ;
//ch_fee
private const string PARM_FEE_GID = "@gid" ;
private const string PARM_FEE_ORDER_AMOUNT = "@order_amount" ;
//ch_fee_do
private const string PARM_CH_FEE_DO_GID = "@gid" ;
private const string SQL_SELECT_WORKFLOW_DO_BY_GID = "SELECT GID, WORKFLOWID, BILLNO, STEPID, AUDITOR, AUDITTIME, BSNO, FEEID, FEESTATUS, DOQUERYSQL, STEPNO, ISFINISH FROM workflow_do WHERE GID = @gid " ;
private const string SQL_SELECT_WORKFLOW_DO_BY_WORKFLOW_ID = "SELECT GID, WORKFLOWID,BILLNO, STEPID, AUDITOR, AUDITTIME, BSNO, FEEID, FEESTATUS, DOQUERYSQL, STEPNO, ISFINISH FROM workflow_do WHERE WORKFLOWID = @workflow_id" ;
private const string SQL_SELECT_WORKFLOW_DO_BY_FEEID_AND_WORKFLOWID = "SELECT GID, WORKFLOWID, BILLNO, STEPID, AUDITOR, AUDITTIME, BSNO, FEEID, FEESTATUS, DOQUERYSQL, STEPNO, ISFINISH,APPLICANT FROM workflow_do WHERE WORKFLOWID = @workflow_id AND FEEID = @fee_id" ;
private const string SQL_SELECT_WORKFLOW_DO_BY_BILLNO_AND_WORKFLOWID = "SELECT GID, WORKFLOWID, BILLNO, STEPID, AUDITOR, AUDITTIME, BSNO, FEEID, FEESTATUS, DOQUERYSQL, STEPNO, ISFINISH,APPLICANT FROM workflow_do WHERE ISALLFINISH = 0 AND BILLNO = @bill_no AND WORKFLOWID =@workflow_id ORDER BY STEPNO DESC " ;
private const string SQL_SELECT_WORKFLOW_DO_BY_AUDITORID_AND_WORKFLOWID = "SELECT GID, WORKFLOWID, BILLNO, STEPID, AUDITOR, AUDITTIME, BSNO, FEEID, FEESTATUS, DOQUERYSQL, STEPNO, ISFINISH,APPLICANT FROM workflow_do WHERE WORKFLOWID = @workflow_id AND AUDITOR = @auditor ORDER BY STEPNO DESC " ;
private const string SQL_SELECT_WORKFLOW_DO_BY_BILLNO = "SELECT GID, WORKFLOWID, BILLNO, STEPID, AUDITOR, AUDITTIME, BSNO, FEEID, FEESTATUS, DOQUERYSQL, STEPNO, ISFINISH,APPLICANT FROM workflow_do WHERE BILLNO = @bill_no ORDER BY STEPNO DESC " ;
private const string SQL_INSERT_WORKFLOW_DO = "INSERT INTO workflow_do (GID, WORKFLOWID, BILLNO, STEPID, AUDITOR, AUDITTIME, BSNO, FEEID, FEESTATUS, DOQUERYSQL, STEPNO, ISFINISH,APPLICANT)"
+ " VALUES(@gid,@workflow_id,@bill_no,@step_id,@auditor,GETDATE(),@bsno,@fee_id,@fee_status,@do_query_sql,@step_no,@is_finish,@applicant)" ;
private const string SQL_UPDATE_WORKFLOW_DO_STEP = " UPDATE workflow_do SET ISFINISH = 1,AUDITTIME = GETDATE() WHERE GID = @gid " ;
private const string SQL_UPDATE_CH_FEE_PAY_APP = "UPDATE ch_fee_payapplication SET BILLSTATUS = @bill_status WHERE BILLNO = @bill_no" ;
private const string SQL_UPDATE_WORKFLOW_DO_RECORD_REJECT_STEP = "UPDATE workflow_do SET ISDELETE = @is_deleted,DELETESTEP = @delete_step,DELETEOPERATOR = @delete_operator,DELETESTEPNO = @delete_stepno,ISFINISH = @is_finish,ISALLFINISH = 1 WHERE WORKFLOWID = @workflow_id AND BILLNO = @bill_no AND ISALLFINISH = 0 " ;
private const string SQL_SELECT_WORKFLOW_DO_STEP_NO = " SELECT AUDITOR+'#'+CAST(STEPNO as varchar) FROM workflow_do WHERE GID = @gid " ;
private const string SQL_UPDATE_WORKFLOW_DO_SAME_STEP = "UPDATE workflow_do SET ISFINISH = 1 WHERE WORKFLOWID = @workflow_id AND ISFINISH = 0 AND STEPNO = @step_no AND BILLNO = @bill_no" ;
private string SQL_UPDATE_PAY_APPLICATION_STATUS = "UPDATE ch_fee_payapplication SET BILLSTATUS = @bill_status WHERE BILLNO = @bill_no AND COMPANYID = @company_id " ;
private string SQL_UPDATE_CH_FEE_FOR_REJECT = "UPDATE ch_fee SET ORDERAMOUNT = ORDERAMOUNT - @order_amount WHERE GID = @gid" ;
private string SQL_UPDATE_CH_FEE_DO_FOR_DELETE = "UPDATE ch_fee_do SET ISDELETED = 1 WHERE GID = @gid" ;
private string SQL_SELECT_WORKFLOW_DO_BY_BILLNO_FOR_MSG = "SELECT GID, WORKFLOWID, BILLNO, STEPID, AUDITOR, AUDITTIME, BSNO, FEEID, FEESTATUS, DOQUERYSQL, STEPNO, ISFINISH,APPLICANT FROM workflow_do WHERE WORKFLOWID = @workflow_id AND BILLNO = @bill_no AND ISNULL(ISALLFINISH,0) <> 1 AND ISNULL(ISDELETE,0) <> 1 " ;
private string SQL_SELECT_WORKFLOW_DO_FEEAUDIT_PASS_FOR_MSG = "SELECT GID, WORKFLOWID, BILLNO, STEPID, AUDITOR, AUDITTIME, BSNO, FEEID, FEESTATUS, DOQUERYSQL, STEPNO, ISFINISH,APPLICANT FROM workflow_do WHERE WORKFLOWID = @workflow_id AND BILLNO = @bill_no AND ISNULL(ISDELETE,0) <> 1 " ;
private string SQL_SELECT_WORKFLOW_DO_FEEAUDIT_REJECT_FOR_MSG = "SELECT TOP 1 GID, WORKFLOWID, BILLNO, STEPID, AUDITOR, AUDITTIME, BSNO, FEEID, FEESTATUS, DOQUERYSQL, STEPNO, ISFINISH,APPLICANT FROM workflow_do WHERE WORKFLOWID = @workflow_id AND BILLNO = @bill_no ORDER BY AUDITTIME DESC " ;
private string SQL_SELECT_WORKFLOW_DO_Exist_WorkflowID = "select count(GID) from workflow_do where workflowid=@workflowid " ;
private string SQL_SELECT_WORKFLOW_DO_Exist_WorkflowStepID = "select count(GID) from workflow_do where stepid=@step_id " ;
#region 检查是否为工作流( workflow.gid) 定义了工作步骤( workflow_step)
/// <summary>
/// 检查工作流( workflow.gid) 是否开始了审批流程( workflow_do)
/// </summary>
/// <param name="tempWorkFlowID">工作流GID</param>
/// <returns></returns>
public int GetExistWorkFlowStepID ( string tempWorkFlowStepID )
{
int iResult = 0 ;
int iExistState = 0 ;
SqlParameter runningParm = new SqlParameter ( PARM_WORKFLOW_DO_STEP_ID , SqlDbType . VarChar , 36 ) ;
runningParm . Value = tempWorkFlowStepID ;
using ( SqlConnection sqlConnection = new SqlConnection ( SqlHelper . ConnectionStringLocalTransaction ) )
{
try
{
iExistState = ( int ) SqlHelper . ExecuteScalar ( sqlConnection , CommandType . Text , SQL_SELECT_WORKFLOW_DO_Exist_WorkflowStepID , runningParm ) ;
if ( iExistState > 0 )
{
iResult = 1 ; //如果存在工作步骤, 返回1
}
}
catch
{
sqlConnection . Close ( ) ;
}
}
return iResult ;
}
# endregion
#region 检查是否为工作流( workflow.gid) 定义了工作步骤( workflow_step)
/// <summary>
/// 检查工作流( workflow.gid) 是否开始了审批流程( workflow_do)
/// </summary>
/// <param name="tempWorkFlowID">工作流GID</param>
/// <returns></returns>
public int GetExistWorkFlowID ( string tempWorkFlowID )
{
int iResult = 0 ;
int iExistState = 0 ;
SqlParameter runningParm = new SqlParameter ( PARM_WORKFLOW_DO_WORKFLOW_ID , SqlDbType . VarChar , 36 ) ;
runningParm . Value = tempWorkFlowID ;
using ( SqlConnection sqlConnection = new SqlConnection ( SqlHelper . ConnectionStringLocalTransaction ) )
{
try
{
iExistState = ( int ) SqlHelper . ExecuteScalar ( sqlConnection , CommandType . Text , SQL_SELECT_WORKFLOW_DO_Exist_WorkflowID , runningParm ) ;
if ( iExistState > 0 )
{
iResult = 1 ; //如果存在工作步骤, 返回1
}
else
{
iResult = 0 ;
}
}
catch
{
sqlConnection . Close ( ) ;
}
}
return iResult ;
}
# endregion
#region 获取审核驳回的工作流信息
/// <summary>
/// 获取审核驳回的工作流信息
/// </summary>
/// <param name="tempWorkFlowGID">工作流GID</param>
/// <param name="tempBillNO">业务编号</param>
/// <returns>返回实体类工作流记录</returns>
public IList < WorkFlowDoEntity > GetWorkFlowDoAuditRejectForMessage ( string tempWorkFlowGID , string tempBillNO )
{
//初始化返回变量
IList < WorkFlowDoEntity > workFlowDoEntities = new List < WorkFlowDoEntity > ( ) ;
//初始化参数并赋值
SqlParameter [ ] parms = new SqlParameter [ ] {
new SqlParameter ( PARM_WORKFLOW_DO_WORKFLOW_ID , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_BILL_NO , SqlDbType . VarChar , 36 )
} ;
parms [ 0 ] . Value = tempWorkFlowGID ;
parms [ 1 ] . Value = tempBillNO ;
using ( SqlDataReader sqlRead = SqlHelper . ExecuteReader ( SqlHelper . ConnectionStringLocalTransaction , CommandType . Text , SQL_SELECT_WORKFLOW_DO_FEEAUDIT_REJECT_FOR_MSG , parms ) )
{
try
{
//读取字段值
while ( sqlRead . Read ( ) )
{
WorkFlowDoEntity workFlowDoEntity = new WorkFlowDoEntity ( ) ;
if ( ! sqlRead . IsDBNull ( 0 ) )
{
workFlowDoEntity . GID = sqlRead . GetString ( 0 ) ;
}
if ( ! sqlRead . IsDBNull ( 1 ) )
{
workFlowDoEntity . WorkFlowID = sqlRead . GetString ( 1 ) ;
}
if ( ! sqlRead . IsDBNull ( 2 ) )
{
workFlowDoEntity . BillNO = sqlRead . GetString ( 2 ) ;
}
if ( ! sqlRead . IsDBNull ( 3 ) )
{
workFlowDoEntity . StepID = sqlRead . GetString ( 3 ) ;
}
if ( ! sqlRead . IsDBNull ( 4 ) )
{
workFlowDoEntity . Auditor = sqlRead . GetString ( 4 ) ;
}
if ( ! sqlRead . IsDBNull ( 5 ) )
{
workFlowDoEntity . AuditTime = sqlRead . GetDateTime ( 5 ) ;
}
if ( ! sqlRead . IsDBNull ( 6 ) )
{
workFlowDoEntity . BSNO = sqlRead . GetString ( 6 ) ;
}
if ( ! sqlRead . IsDBNull ( 7 ) )
{
workFlowDoEntity . FeeID = sqlRead . GetString ( 7 ) ;
}
if ( ! sqlRead . IsDBNull ( 8 ) )
{
workFlowDoEntity . FeeStatus = sqlRead . GetInt32 ( 8 ) ;
}
if ( ! sqlRead . IsDBNull ( 9 ) )
{
workFlowDoEntity . DoQuerySql = sqlRead . GetString ( 9 ) ;
}
if ( ! sqlRead . IsDBNull ( 10 ) )
{
workFlowDoEntity . StepNO = sqlRead . GetInt32 ( 10 ) ;
}
if ( ! sqlRead . IsDBNull ( 11 ) )
{
workFlowDoEntity . IsFinish = sqlRead . GetBoolean ( 11 ) ;
}
if ( ! sqlRead . IsDBNull ( 12 ) )
{
workFlowDoEntity . Applicant = sqlRead . GetString ( 12 ) ;
}
workFlowDoEntities . Add ( workFlowDoEntity ) ;
}
}
catch ( Exception exceError )
{
//抛出异常
throw exceError ;
}
}
return workFlowDoEntities ;
}
# endregion
#region 获取审核通过和待审核的工作流信息
/// <summary>
/// 获取审核通过和待审核的工作流信息
/// </summary>
/// <param name="tempWorkFlowGID">工作流GID</param>
/// <param name="tempBillNO">业务编号</param>
/// <returns>返回实体类工作流记录</returns>
public IList < WorkFlowDoEntity > GetWorkFlowDoAuditPassForMessage ( string tempWorkFlowGID , string tempBillNO )
{
//初始化返回变量
IList < WorkFlowDoEntity > workFlowDoEntities = new List < WorkFlowDoEntity > ( ) ;
//初始化参数并赋值
SqlParameter [ ] parms = new SqlParameter [ ] {
new SqlParameter ( PARM_WORKFLOW_DO_WORKFLOW_ID , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_BILL_NO , SqlDbType . VarChar , 36 )
} ;
parms [ 0 ] . Value = tempWorkFlowGID ;
parms [ 1 ] . Value = tempBillNO ;
using ( SqlDataReader sqlRead = SqlHelper . ExecuteReader ( SqlHelper . ConnectionStringLocalTransaction , CommandType . Text , SQL_SELECT_WORKFLOW_DO_FEEAUDIT_PASS_FOR_MSG , parms ) )
{
try
{
//读取字段值
while ( sqlRead . Read ( ) )
{
WorkFlowDoEntity workFlowDoEntity = new WorkFlowDoEntity ( ) ;
if ( ! sqlRead . IsDBNull ( 0 ) )
{
workFlowDoEntity . GID = sqlRead . GetString ( 0 ) ;
}
if ( ! sqlRead . IsDBNull ( 1 ) )
{
workFlowDoEntity . WorkFlowID = sqlRead . GetString ( 1 ) ;
}
if ( ! sqlRead . IsDBNull ( 2 ) )
{
workFlowDoEntity . BillNO = sqlRead . GetString ( 2 ) ;
}
if ( ! sqlRead . IsDBNull ( 3 ) )
{
workFlowDoEntity . StepID = sqlRead . GetString ( 3 ) ;
}
if ( ! sqlRead . IsDBNull ( 4 ) )
{
workFlowDoEntity . Auditor = sqlRead . GetString ( 4 ) ;
}
if ( ! sqlRead . IsDBNull ( 5 ) )
{
workFlowDoEntity . AuditTime = sqlRead . GetDateTime ( 5 ) ;
}
if ( ! sqlRead . IsDBNull ( 6 ) )
{
workFlowDoEntity . BSNO = sqlRead . GetString ( 6 ) ;
}
if ( ! sqlRead . IsDBNull ( 7 ) )
{
workFlowDoEntity . FeeID = sqlRead . GetString ( 7 ) ;
}
if ( ! sqlRead . IsDBNull ( 8 ) )
{
workFlowDoEntity . FeeStatus = sqlRead . GetInt32 ( 8 ) ;
}
if ( ! sqlRead . IsDBNull ( 9 ) )
{
workFlowDoEntity . DoQuerySql = sqlRead . GetString ( 9 ) ;
}
if ( ! sqlRead . IsDBNull ( 10 ) )
{
workFlowDoEntity . StepNO = sqlRead . GetInt32 ( 10 ) ;
}
if ( ! sqlRead . IsDBNull ( 11 ) )
{
workFlowDoEntity . IsFinish = sqlRead . GetBoolean ( 11 ) ;
}
if ( ! sqlRead . IsDBNull ( 12 ) )
{
workFlowDoEntity . Applicant = sqlRead . GetString ( 12 ) ;
}
workFlowDoEntities . Add ( workFlowDoEntity ) ;
}
}
catch ( Exception exceError )
{
//抛出异常
throw exceError ;
}
}
return workFlowDoEntities ;
}
# endregion
#region 通过工作流GID和申请编号BILLNO获取工作流运行表WorkFlowDo信息发送消息
/// <summary>
/// 通过工作流GID和申请编号BILLNO获取工作流运行表WorkFlowDo信息发送消息
/// </summary>
/// <param name="tempWorkFlowGID"></param>
/// <param name="tempFeeGID"></param>
/// <returns></returns>
public IList < WorkFlowDoEntity > GetWorkFlowDoForMessage ( string tempWorkFlowGID , string tempBillNO )
{
//初始化返回变量
IList < WorkFlowDoEntity > workFlowDoEntities = new List < WorkFlowDoEntity > ( ) ;
//初始化参数并赋值
SqlParameter [ ] parms = new SqlParameter [ ] {
new SqlParameter ( PARM_WORKFLOW_DO_WORKFLOW_ID , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_BILL_NO , SqlDbType . VarChar , 36 )
} ;
parms [ 0 ] . Value = tempWorkFlowGID ;
parms [ 1 ] . Value = tempBillNO ;
using ( SqlDataReader sqlRead = SqlHelper . ExecuteReader ( SqlHelper . ConnectionStringLocalTransaction , CommandType . Text , SQL_SELECT_WORKFLOW_DO_BY_BILLNO_FOR_MSG , parms ) )
{
try
{
//读取字段值
while ( sqlRead . Read ( ) )
{
WorkFlowDoEntity workFlowDoEntity = new WorkFlowDoEntity ( ) ;
if ( ! sqlRead . IsDBNull ( 0 ) )
{
workFlowDoEntity . GID = sqlRead . GetString ( 0 ) ;
}
if ( ! sqlRead . IsDBNull ( 1 ) )
{
workFlowDoEntity . WorkFlowID = sqlRead . GetString ( 1 ) ;
}
if ( ! sqlRead . IsDBNull ( 2 ) )
{
workFlowDoEntity . BillNO = sqlRead . GetString ( 2 ) ;
}
if ( ! sqlRead . IsDBNull ( 3 ) )
{
workFlowDoEntity . StepID = sqlRead . GetString ( 3 ) ;
}
if ( ! sqlRead . IsDBNull ( 4 ) )
{
workFlowDoEntity . Auditor = sqlRead . GetString ( 4 ) ;
}
if ( ! sqlRead . IsDBNull ( 5 ) )
{
workFlowDoEntity . AuditTime = sqlRead . GetDateTime ( 5 ) ;
}
if ( ! sqlRead . IsDBNull ( 6 ) )
{
workFlowDoEntity . BSNO = sqlRead . GetString ( 6 ) ;
}
if ( ! sqlRead . IsDBNull ( 7 ) )
{
workFlowDoEntity . FeeID = sqlRead . GetString ( 7 ) ;
}
if ( ! sqlRead . IsDBNull ( 8 ) )
{
workFlowDoEntity . FeeStatus = sqlRead . GetInt32 ( 8 ) ;
}
if ( ! sqlRead . IsDBNull ( 9 ) )
{
workFlowDoEntity . DoQuerySql = sqlRead . GetString ( 9 ) ;
}
if ( ! sqlRead . IsDBNull ( 10 ) )
{
workFlowDoEntity . StepNO = sqlRead . GetInt32 ( 10 ) ;
}
if ( ! sqlRead . IsDBNull ( 11 ) )
{
workFlowDoEntity . IsFinish = sqlRead . GetBoolean ( 11 ) ;
}
if ( ! sqlRead . IsDBNull ( 12 ) )
{
workFlowDoEntity . Applicant = sqlRead . GetString ( 12 ) ;
}
workFlowDoEntities . Add ( workFlowDoEntity ) ;
}
}
catch ( Exception exceError )
{
//抛出异常
throw exceError ;
}
}
return workFlowDoEntities ;
}
# endregion
#region 通过工作流GID和费用GID获取工作流运行表WorkFlowDo信息
/// <summary>
/// 通过工作流GID和费用GID获取工作流运行表WorkFlowDo信息
/// </summary>
/// <param name="tempWorkFlowGID"></param>
/// <param name="tempFeeGID"></param>
/// <returns></returns>
public WorkFlowDoEntity GetSigleWorkFlowDo ( string tempWorkFlowGID , string tempFeeGID )
{
//初始化返回变量
WorkFlowDoEntity workFlowDoEntity = null ;
//初始化参数并赋值
SqlParameter [ ] parms = new SqlParameter [ ] {
new SqlParameter ( PARM_WORKFLOW_DO_WORKFLOW_ID , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_FEE_ID , SqlDbType . VarChar , 36 )
} ;
parms [ 0 ] . Value = tempWorkFlowGID ;
parms [ 1 ] . Value = tempFeeGID ;
using ( SqlDataReader sqlRead = SqlHelper . ExecuteReader ( SqlHelper . ConnectionStringLocalTransaction , CommandType . Text , SQL_SELECT_WORKFLOW_DO_BY_FEEID_AND_WORKFLOWID , parms ) )
{
try
{
workFlowDoEntity = new WorkFlowDoEntity ( ) ;
//读取字段值
while ( sqlRead . Read ( ) )
{
if ( ! sqlRead . IsDBNull ( 0 ) )
{
workFlowDoEntity . GID = sqlRead . GetString ( 0 ) ;
}
if ( ! sqlRead . IsDBNull ( 1 ) )
{
workFlowDoEntity . WorkFlowID = sqlRead . GetString ( 1 ) ;
}
if ( ! sqlRead . IsDBNull ( 2 ) )
{
workFlowDoEntity . BillNO = sqlRead . GetString ( 2 ) ;
}
if ( ! sqlRead . IsDBNull ( 3 ) )
{
workFlowDoEntity . StepID = sqlRead . GetString ( 3 ) ;
}
if ( ! sqlRead . IsDBNull ( 4 ) )
{
workFlowDoEntity . Auditor = sqlRead . GetString ( 4 ) ;
}
if ( ! sqlRead . IsDBNull ( 5 ) )
{
workFlowDoEntity . AuditTime = sqlRead . GetDateTime ( 5 ) ;
}
if ( ! sqlRead . IsDBNull ( 6 ) )
{
workFlowDoEntity . BSNO = sqlRead . GetString ( 6 ) ;
}
if ( ! sqlRead . IsDBNull ( 7 ) )
{
workFlowDoEntity . FeeID = sqlRead . GetString ( 7 ) ;
}
if ( ! sqlRead . IsDBNull ( 8 ) )
{
workFlowDoEntity . FeeStatus = sqlRead . GetInt32 ( 8 ) ;
}
if ( ! sqlRead . IsDBNull ( 9 ) )
{
workFlowDoEntity . DoQuerySql = sqlRead . GetString ( 9 ) ;
}
if ( ! sqlRead . IsDBNull ( 10 ) )
{
workFlowDoEntity . StepNO = sqlRead . GetInt32 ( 10 ) ;
}
if ( ! sqlRead . IsDBNull ( 11 ) )
{
workFlowDoEntity . IsFinish = sqlRead . GetBoolean ( 11 ) ;
}
if ( ! sqlRead . IsDBNull ( 12 ) )
{
workFlowDoEntity . Applicant = sqlRead . GetString ( 12 ) ;
}
}
}
catch ( Exception exceError )
{
//抛出异常
throw exceError ;
}
}
return workFlowDoEntity ;
}
# endregion
#region 通过工作流GID和申请编号BILLNO获取工作流运行表WorkFlowDo信息
/// <summary>
/// 通过工作流GID和申请编号BILLNO获取工作流运行表WorkFlowDo信息
/// </summary>
/// <param name="tempWorkFlowGID"></param>
/// <param name="tempFeeGID"></param>
/// <returns></returns>
public WorkFlowDoEntity GetSigleWorkFlowDoByBillNO ( string tempWorkFlowGID , string tempBillNO )
{
//初始化返回变量
WorkFlowDoEntity workFlowDoEntity = null ;
//初始化参数并赋值
SqlParameter [ ] parms = new SqlParameter [ ] {
new SqlParameter ( PARM_WORKFLOW_DO_BILL_NO , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_WORKFLOW_ID , SqlDbType . VarChar , 36 )
} ;
parms [ 0 ] . Value = tempBillNO ;
parms [ 1 ] . Value = tempWorkFlowGID ;
// aparms[1].Value = tempBillNO;
workFlowDoEntity = new WorkFlowDoEntity ( ) ;
using ( SqlDataReader sqlRead = SqlHelper . ExecuteReader ( SqlHelper . ConnectionStringLocalTransaction , CommandType . Text , SQL_SELECT_WORKFLOW_DO_BY_BILLNO_AND_WORKFLOWID , parms ) )
{
try
{
//读取字段值
while ( sqlRead . Read ( ) )
{
if ( ! sqlRead . IsDBNull ( 0 ) )
{
workFlowDoEntity . GID = sqlRead . GetString ( 0 ) ;
}
if ( ! sqlRead . IsDBNull ( 1 ) )
{
workFlowDoEntity . WorkFlowID = sqlRead . GetString ( 1 ) ;
}
if ( ! sqlRead . IsDBNull ( 2 ) )
{
workFlowDoEntity . BillNO = sqlRead . GetString ( 2 ) ;
}
if ( ! sqlRead . IsDBNull ( 3 ) )
{
workFlowDoEntity . StepID = sqlRead . GetString ( 3 ) ;
}
if ( ! sqlRead . IsDBNull ( 4 ) )
{
workFlowDoEntity . Auditor = sqlRead . GetString ( 4 ) ;
}
if ( ! sqlRead . IsDBNull ( 5 ) )
{
workFlowDoEntity . AuditTime = sqlRead . GetDateTime ( 5 ) ;
}
if ( ! sqlRead . IsDBNull ( 6 ) )
{
workFlowDoEntity . BSNO = sqlRead . GetString ( 6 ) ;
}
if ( ! sqlRead . IsDBNull ( 7 ) )
{
workFlowDoEntity . FeeID = sqlRead . GetString ( 7 ) ;
}
if ( ! sqlRead . IsDBNull ( 8 ) )
{
workFlowDoEntity . FeeStatus = sqlRead . GetInt32 ( 8 ) ;
}
if ( ! sqlRead . IsDBNull ( 9 ) )
{
workFlowDoEntity . DoQuerySql = sqlRead . GetString ( 9 ) ;
}
if ( ! sqlRead . IsDBNull ( 10 ) )
{
workFlowDoEntity . StepNO = sqlRead . GetInt32 ( 10 ) ;
}
if ( ! sqlRead . IsDBNull ( 11 ) )
{
workFlowDoEntity . IsFinish = sqlRead . GetBoolean ( 11 ) ;
}
if ( ! sqlRead . IsDBNull ( 12 ) )
{
workFlowDoEntity . Applicant = sqlRead . GetString ( 12 ) ;
}
}
}
catch ( Exception exceError )
{
//抛出异常
throw exceError ;
}
}
return workFlowDoEntity ;
}
# endregion
#region 通过工作流GID和审核人GID获取工作流运行表WorkFlowDo信息
/// <summary>
/// 通过工作流GID和申请编号BILLNO获取工作流运行表WorkFlowDo信息
/// </summary>
/// <param name="tempWorkFlowGID"></param>
/// <param name="tempFeeGID"></param>
/// <returns></returns>
public WorkFlowDoEntity GetSigleWorkFlowDoByAuditor ( string tempWorkFlowGID , string tempUserID )
{
//初始化返回变量
WorkFlowDoEntity workFlowDoEntity = null ;
//初始化参数并赋值
SqlParameter [ ] parms = new SqlParameter [ ] {
new SqlParameter ( PARM_WORKFLOW_DO_WORKFLOW_ID , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_AUDITOR , SqlDbType . VarChar , 36 )
} ;
parms [ 0 ] . Value = tempWorkFlowGID ;
parms [ 1 ] . Value = tempUserID ;
using ( SqlDataReader sqlRead = SqlHelper . ExecuteReader ( SqlHelper . ConnectionStringLocalTransaction , CommandType . Text , SQL_SELECT_WORKFLOW_DO_BY_AUDITORID_AND_WORKFLOWID , parms ) )
{
try
{
workFlowDoEntity = new WorkFlowDoEntity ( ) ;
//读取字段值
while ( sqlRead . Read ( ) )
{
if ( ! sqlRead . IsDBNull ( 0 ) )
{
workFlowDoEntity . GID = sqlRead . GetString ( 0 ) ;
}
if ( ! sqlRead . IsDBNull ( 1 ) )
{
workFlowDoEntity . WorkFlowID = sqlRead . GetString ( 1 ) ;
}
if ( ! sqlRead . IsDBNull ( 2 ) )
{
workFlowDoEntity . BillNO = sqlRead . GetString ( 2 ) ;
}
if ( ! sqlRead . IsDBNull ( 3 ) )
{
workFlowDoEntity . StepID = sqlRead . GetString ( 3 ) ;
}
if ( ! sqlRead . IsDBNull ( 4 ) )
{
workFlowDoEntity . Auditor = sqlRead . GetString ( 4 ) ;
}
if ( ! sqlRead . IsDBNull ( 5 ) )
{
workFlowDoEntity . AuditTime = sqlRead . GetDateTime ( 5 ) ;
}
if ( ! sqlRead . IsDBNull ( 6 ) )
{
workFlowDoEntity . BSNO = sqlRead . GetString ( 6 ) ;
}
if ( ! sqlRead . IsDBNull ( 7 ) )
{
workFlowDoEntity . FeeID = sqlRead . GetString ( 7 ) ;
}
if ( ! sqlRead . IsDBNull ( 8 ) )
{
workFlowDoEntity . FeeStatus = sqlRead . GetInt32 ( 8 ) ;
}
if ( ! sqlRead . IsDBNull ( 9 ) )
{
workFlowDoEntity . DoQuerySql = sqlRead . GetString ( 9 ) ;
}
if ( ! sqlRead . IsDBNull ( 10 ) )
{
workFlowDoEntity . StepNO = sqlRead . GetInt32 ( 10 ) ;
}
if ( ! sqlRead . IsDBNull ( 11 ) )
{
workFlowDoEntity . IsFinish = sqlRead . GetBoolean ( 11 ) ;
}
if ( ! sqlRead . IsDBNull ( 12 ) )
{
workFlowDoEntity . Applicant = sqlRead . GetString ( 12 ) ;
}
}
}
catch ( Exception exceError )
{
//抛出异常
throw exceError ;
}
}
return workFlowDoEntity ;
}
# endregion
#region 通过工作流GID和申请编号BILLNO获取工作流运行表WorkFlowDo信息
/// <summary>
/// 通过工作流GID和申请编号BILLNO获取工作流运行表WorkFlowDo信息
/// </summary>
/// <param name="tempWorkFlowGID"></param>
/// <param name="tempFeeGID"></param>
/// <returns></returns>
public IList < WorkFlowDoEntity > GetAllWorkFlowDoByBillNO ( string tempWorkFlowGID , string tempBillNO )
{
//初始化返回变量
IList < WorkFlowDoEntity > workFlowDoEntities = new List < WorkFlowDoEntity > ( ) ;
//初始化参数并赋值
SqlParameter [ ] parms = new SqlParameter [ ] {
new SqlParameter ( PARM_WORKFLOW_DO_WORKFLOW_ID , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_BILL_NO , SqlDbType . VarChar , 36 )
} ;
parms [ 0 ] . Value = tempWorkFlowGID ;
parms [ 1 ] . Value = tempBillNO ;
using ( SqlDataReader sqlRead = SqlHelper . ExecuteReader ( SqlHelper . ConnectionStringLocalTransaction , CommandType . Text , SQL_SELECT_WORKFLOW_DO_BY_BILLNO_AND_WORKFLOWID , parms ) )
{
try
{
//读取字段值
while ( sqlRead . Read ( ) )
{
WorkFlowDoEntity workFlowDoEntity = new WorkFlowDoEntity ( ) ;
if ( ! sqlRead . IsDBNull ( 0 ) )
{
workFlowDoEntity . GID = sqlRead . GetString ( 0 ) ;
}
if ( ! sqlRead . IsDBNull ( 1 ) )
{
workFlowDoEntity . WorkFlowID = sqlRead . GetString ( 1 ) ;
}
if ( ! sqlRead . IsDBNull ( 2 ) )
{
workFlowDoEntity . BillNO = sqlRead . GetString ( 2 ) ;
}
if ( ! sqlRead . IsDBNull ( 3 ) )
{
workFlowDoEntity . StepID = sqlRead . GetString ( 3 ) ;
}
if ( ! sqlRead . IsDBNull ( 4 ) )
{
workFlowDoEntity . Auditor = sqlRead . GetString ( 4 ) ;
}
if ( ! sqlRead . IsDBNull ( 5 ) )
{
workFlowDoEntity . AuditTime = sqlRead . GetDateTime ( 5 ) ;
}
if ( ! sqlRead . IsDBNull ( 6 ) )
{
workFlowDoEntity . BSNO = sqlRead . GetString ( 6 ) ;
}
if ( ! sqlRead . IsDBNull ( 7 ) )
{
workFlowDoEntity . FeeID = sqlRead . GetString ( 7 ) ;
}
if ( ! sqlRead . IsDBNull ( 8 ) )
{
workFlowDoEntity . FeeStatus = sqlRead . GetInt32 ( 8 ) ;
}
if ( ! sqlRead . IsDBNull ( 9 ) )
{
workFlowDoEntity . DoQuerySql = sqlRead . GetString ( 9 ) ;
}
if ( ! sqlRead . IsDBNull ( 10 ) )
{
workFlowDoEntity . StepNO = sqlRead . GetInt32 ( 10 ) ;
}
if ( ! sqlRead . IsDBNull ( 11 ) )
{
workFlowDoEntity . IsFinish = sqlRead . GetBoolean ( 11 ) ;
}
if ( ! sqlRead . IsDBNull ( 12 ) )
{
workFlowDoEntity . Applicant = sqlRead . GetString ( 12 ) ;
}
workFlowDoEntities . Add ( workFlowDoEntity ) ;
}
}
catch ( Exception exceError )
{
//抛出异常
throw exceError ;
}
}
return workFlowDoEntities ;
}
# endregion
#region 通过申请编号BILLNO获取工作流运行表WorkFlowDo信息
/// <summary>
/// 通过申请编号BILLNO获取工作流运行表WorkFlowDo信息
/// </summary>
/// <param name="tempWorkFlowGID"></param>
/// <param name="tempFeeGID"></param>
/// <returns></returns>
public IList < WorkFlowDoEntity > GetWorkFlowDoByBillNO ( string tempBillNO )
{
//初始化返回变量
IList < WorkFlowDoEntity > workFlowDoEntities = new List < WorkFlowDoEntity > ( ) ;
//初始化参数并赋值
SqlParameter parm = new SqlParameter ( PARM_WORKFLOW_DO_BILL_NO , SqlDbType . VarChar , 36 ) ;
parm . Value = tempBillNO ;
using ( SqlDataReader sqlRead = SqlHelper . ExecuteReader ( SqlHelper . ConnectionStringLocalTransaction , CommandType . Text , SQL_SELECT_WORKFLOW_DO_BY_BILLNO , parm ) )
{
try
{
//读取字段值
while ( sqlRead . Read ( ) )
{
WorkFlowDoEntity workFlowDoEntity = new WorkFlowDoEntity ( ) ;
if ( ! sqlRead . IsDBNull ( 0 ) )
{
workFlowDoEntity . GID = sqlRead . GetString ( 0 ) ;
}
if ( ! sqlRead . IsDBNull ( 1 ) )
{
workFlowDoEntity . WorkFlowID = sqlRead . GetString ( 1 ) ;
}
if ( ! sqlRead . IsDBNull ( 2 ) )
{
workFlowDoEntity . BillNO = sqlRead . GetString ( 2 ) ;
}
if ( ! sqlRead . IsDBNull ( 3 ) )
{
workFlowDoEntity . StepID = sqlRead . GetString ( 3 ) ;
}
if ( ! sqlRead . IsDBNull ( 4 ) )
{
workFlowDoEntity . Auditor = sqlRead . GetString ( 4 ) ;
}
if ( ! sqlRead . IsDBNull ( 5 ) )
{
workFlowDoEntity . AuditTime = sqlRead . GetDateTime ( 5 ) ;
}
if ( ! sqlRead . IsDBNull ( 6 ) )
{
workFlowDoEntity . BSNO = sqlRead . GetString ( 6 ) ;
}
if ( ! sqlRead . IsDBNull ( 7 ) )
{
workFlowDoEntity . FeeID = sqlRead . GetString ( 7 ) ;
}
if ( ! sqlRead . IsDBNull ( 8 ) )
{
workFlowDoEntity . FeeStatus = sqlRead . GetInt32 ( 8 ) ;
}
if ( ! sqlRead . IsDBNull ( 9 ) )
{
workFlowDoEntity . DoQuerySql = sqlRead . GetString ( 9 ) ;
}
if ( ! sqlRead . IsDBNull ( 10 ) )
{
workFlowDoEntity . StepNO = sqlRead . GetInt32 ( 10 ) ;
}
if ( ! sqlRead . IsDBNull ( 11 ) )
{
workFlowDoEntity . IsFinish = sqlRead . GetBoolean ( 11 ) ;
}
if ( ! sqlRead . IsDBNull ( 12 ) )
{
workFlowDoEntity . Applicant = sqlRead . GetString ( 12 ) ;
}
workFlowDoEntities . Add ( workFlowDoEntity ) ;
}
}
catch ( Exception exceError )
{
//抛出异常
throw exceError ;
}
}
return workFlowDoEntities ;
}
# endregion
#region 插入WorkFlowDo信息
/// <summary>
/// 插入WorkFlowDo信息
/// </summary>
/// <param name="tempWorkFlowDoEntities">WorkFlowDo实体类数组</param>
/// <returns>值1表示插入正常 值为-1-2表示插入异常失败</returns>
public int InsertWorkFlowDo ( IList < WorkFlowDoEntity > tempWorkFlowDoEntities )
{
int iResult = 0 ;
using ( SqlTransaction sqlTran = SqlHelper . BeginTransaction ( SqlHelper . ConnectionStringLocalTransaction ) )
{
try
{
SqlParameter [ ] parms = new SqlParameter [ ] {
new SqlParameter ( PARM_WORKFLOW_DO_GID , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_WORKFLOW_ID , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_BILL_NO , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_STEP_ID , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_AUDITOR , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_BSNO , SqlDbType . VarChar , 100 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_FEE_ID , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_FEE_STATUS , SqlDbType . Int ) ,
new SqlParameter ( PARM_WORKFLOW_DO_DO_QUERY_SQL , SqlDbType . VarChar , 200 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_STEP_NO , SqlDbType . Int ) ,
new SqlParameter ( PARM_WORKFLOW_DO_IS_FINISH , SqlDbType . Bit ) ,
new SqlParameter ( PARM_WORKFLOW_DO_DELETE_APPLICANT , SqlDbType . VarChar , 36 )
} ;
foreach ( WorkFlowDoEntity workFlowDoEntity in tempWorkFlowDoEntities )
{
parms [ 0 ] . Value = workFlowDoEntity . GID ;
parms [ 1 ] . Value = workFlowDoEntity . WorkFlowID ;
parms [ 2 ] . Value = workFlowDoEntity . BillNO ;
parms [ 3 ] . Value = workFlowDoEntity . StepID ;
parms [ 4 ] . Value = workFlowDoEntity . Auditor ;
parms [ 5 ] . Value = workFlowDoEntity . BSNO ;
parms [ 6 ] . Value = workFlowDoEntity . FeeID ;
parms [ 7 ] . Value = workFlowDoEntity . FeeStatus ;
parms [ 8 ] . Value = workFlowDoEntity . DoQuerySql ;
parms [ 9 ] . Value = workFlowDoEntity . StepNO ;
parms [ 10 ] . Value = workFlowDoEntity . IsFinish ;
parms [ 11 ] . Value = workFlowDoEntity . Applicant ;
SqlHelper . ExecuteNonQuery ( sqlTran , CommandType . Text , SQL_INSERT_WORKFLOW_DO , parms ) ;
}
//事务提交
sqlTran . Commit ( ) ;
iResult = 1 ; //状态为1表示插入成功
}
catch ( Exception execError )
{
iResult = - 1 ; //有异常,插入失败
sqlTran . Rollback ( ) ;
iResult = - 2 ; //插入异常,事务已回滚成功
throw execError ;
}
finally
{
SqlHelper . CloseConnection ( ) ;
}
}
return iResult ;
}
# endregion
#region 更新操作审核完毕
/// <summary>
/// 更新操作审核完毕
/// </summary>
/// <param name="tempWorkFlowDoEntity">工作流DO表实体类</param>
/// <param name="tempIsLastStep">是否是最后一步操作</param>
/// <returns>值1表示更新成功 值为-2表示更新异常事务回滚</returns>
public int UpdateWorkFlowDoStep ( IList < WorkFlowDoEntity > tempWorkFlowDoEntities , IList < WorkFlowDoEntity > tempNextWorkFlowDoEntities , bool tempIsLastStep , IList < WorkFlowStepEntity > tempWorkFlowStepEntities )
{
//审核人审核完毕后,先更新当前审核状态ISFINISH=True,然后将下一步需要其他审核人的步骤写入到workflow_do表
int iResult = 0 ;
#region 参数
SqlParameter [ ] updateParms = new SqlParameter [ ] {
new SqlParameter ( PARM_WORKFLOW_DO_IS_FINISH , SqlDbType . Bit ) ,
new SqlParameter ( PARM_WORKFLOW_DO_GID , SqlDbType . VarChar , 36 )
} ;
SqlParameter [ ] parms = new SqlParameter [ ] {
new SqlParameter ( PARM_WORKFLOW_DO_GID , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_WORKFLOW_ID , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_BILL_NO , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_STEP_ID , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_AUDITOR , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_BSNO , SqlDbType . VarChar , 100 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_FEE_ID , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_FEE_STATUS , SqlDbType . Int ) ,
new SqlParameter ( PARM_WORKFLOW_DO_DO_QUERY_SQL , SqlDbType . VarChar , 200 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_STEP_NO , SqlDbType . Int ) ,
new SqlParameter ( PARM_WORKFLOW_DO_IS_FINISH , SqlDbType . Bit ) ,
new SqlParameter ( PARM_WORKFLOW_DO_DELETE_APPLICANT , SqlDbType . VarChar , 36 )
} ;
SqlParameter [ ] updateAppParms = new SqlParameter [ ] {
new SqlParameter ( PARM_SETTLE_APPL_BILL_STATUS , SqlDbType . Int ) ,
new SqlParameter ( PARM_SETTLE_APPL_BILL_NO , SqlDbType . VarChar , 20 )
} ;
# endregion
using ( SqlTransaction sqlTran = SqlHelper . BeginTransaction ( SqlHelper . ConnectionStringLocalTransaction ) )
{
try
{
SqlParameter stepNoParm = new SqlParameter ( PARM_SETTLE_APPL_GID , SqlDbType . VarChar , 36 ) ;
stepNoParm . Value = tempWorkFlowDoEntities [ 0 ] . GID ;
string stepVal = ( string ) SqlHelper . ExecuteScalar ( sqlTran , CommandType . Text , SQL_SELECT_WORKFLOW_DO_STEP_NO , stepNoParm ) as string ;
if ( stepVal = = null )
{
throw new Exception ( ) ;
}
string [ ] strSplit = stepVal . Split ( new char [ ] { '#' } ) ;
string strCurrentAuditor = strSplit [ 0 ] . ToString ( ) ;
int iCurrentStepNo = int . Parse ( strSplit [ 1 ] . ToString ( ) ) ;
foreach ( WorkFlowStepEntity workFlowStepEntity in tempWorkFlowStepEntities )
{
if ( workFlowStepEntity . StepNO = = iCurrentStepNo & & workFlowStepEntity . Auditor ! = strCurrentAuditor )
{
SqlParameter [ ] updateSameParms = new SqlParameter [ ] {
new SqlParameter ( PARM_WORKFLOW_DO_STEP_NO , SqlDbType . Int ) ,
new SqlParameter ( PARM_WORKFLOW_DO_BILL_NO , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_WORKFLOW_ID , SqlDbType . VarChar , 36 )
} ;
updateSameParms [ 0 ] . Value = iCurrentStepNo ;
updateSameParms [ 1 ] . Value = tempWorkFlowDoEntities [ 0 ] . BillNO ;
updateSameParms [ 2 ] . Value = tempWorkFlowDoEntities [ 0 ] . WorkFlowID ;
SqlHelper . ExecuteNonQuery ( sqlTran , CommandType . Text , SQL_UPDATE_WORKFLOW_DO_SAME_STEP , updateSameParms ) ;
}
}
foreach ( WorkFlowDoEntity workFlowDoEntity in tempWorkFlowDoEntities )
{
if ( workFlowDoEntity . IsFinish = = true )
{
updateParms [ 0 ] . Value = 1 ;
updateParms [ 1 ] . Value = workFlowDoEntity . GID ;
if ( tempIsLastStep )
{
updateAppParms [ 0 ] . Value = 0 ;
}
else
{
updateAppParms [ 0 ] . Value = 3 ;
}
updateAppParms [ 1 ] . Value = workFlowDoEntity . BillNO ;
}
else
{
//如果是工作流步骤的最后一步,则不自动向workflow_do表插入下一步骤信息
if ( ! tempIsLastStep )
{
updateAppParms [ 0 ] . Value = 3 ;
updateAppParms [ 1 ] . Value = workFlowDoEntity . BillNO ;
}
else
{
updateAppParms [ 0 ] . Value = 0 ;
updateAppParms [ 1 ] . Value = workFlowDoEntity . BillNO ;
}
}
}
SqlHelper . ExecuteNonQuery ( sqlTran , CommandType . Text , SQL_UPDATE_WORKFLOW_DO_STEP , updateParms ) ;
SqlHelper . ExecuteNonQuery ( sqlTran , CommandType . Text , SQL_UPDATE_CH_FEE_PAY_APP , updateAppParms ) ;
//如果是工作流步骤的最后一步,则不自动向workflow_do表插入下一步骤信息
if ( ! tempIsLastStep )
{
foreach ( WorkFlowDoEntity workFlowDoEntity in tempNextWorkFlowDoEntities )
{
parms [ 0 ] . Value = workFlowDoEntity . GID ;
parms [ 1 ] . Value = workFlowDoEntity . WorkFlowID ;
parms [ 2 ] . Value = workFlowDoEntity . BillNO ;
parms [ 3 ] . Value = workFlowDoEntity . StepID ;
parms [ 4 ] . Value = workFlowDoEntity . Auditor ;
parms [ 5 ] . Value = workFlowDoEntity . BSNO ;
parms [ 6 ] . Value = workFlowDoEntity . FeeID ;
parms [ 7 ] . Value = workFlowDoEntity . FeeStatus ;
parms [ 8 ] . Value = workFlowDoEntity . DoQuerySql ;
parms [ 9 ] . Value = workFlowDoEntity . StepNO ;
parms [ 10 ] . Value = workFlowDoEntity . IsFinish ;
parms [ 11 ] . Value = workFlowDoEntity . Applicant ;
SqlHelper . ExecuteNonQuery ( sqlTran , CommandType . Text , SQL_INSERT_WORKFLOW_DO , parms ) ;
}
}
sqlTran . Commit ( ) ;
iResult = 1 ; //状态为1表示插入成功
}
catch ( Exception execError )
{
iResult = - 1 ; //有异常,插入失败
sqlTran . Rollback ( ) ;
iResult = - 2 ; //插入异常,事务已回滚成功
throw execError ;
}
finally
{
SqlHelper . CloseConnection ( ) ;
}
}
return iResult ;
}
# endregion
#region 审核步骤驳回操作
/// <summary>
/// 审核步骤驳回操作
/// </summary>
/// <param name="tempWorkFlowDoEntity">WorkFlowDo 实体类</param>
/// <returns>值1表示操作完成 值小于1表示操作失败</returns>
//public int ExcuteRejectWorkFlowDo(WorkFlowDoEntity tempWorkFlowDoEntity,WorkFlowType workFlowType,IList<FeeDoEntity> feeDoEntities,string tempBillNO,string tempCompanyID)
//{
// int iResult = 0;
// using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
// {
// try
// {
// SqlParameter[] parms = new SqlParameter[] {
// new SqlParameter(PARM_WORKFLOW_DO_IS_DELETED,SqlDbType.Bit),
// new SqlParameter(PARM_WORKFLOW_DO_DELETE_STEP,SqlDbType.VarChar,36),
// new SqlParameter(PARM_WORKFLOW_DO_DELETE_OPERATOR,SqlDbType.VarChar,36),
// new SqlParameter(PARM_WORKFLOW_DO_WORKFLOW_ID,SqlDbType.VarChar,36),
// new SqlParameter(PARM_WORKFLOW_DO_BILL_NO,SqlDbType.VarChar,36),
// new SqlParameter(PARM_WORKFLOW_DO_DELETE_STEP_NO,SqlDbType.Int),
// new SqlParameter(PARM_WORKFLOW_DO_IS_FINISH,SqlDbType.Bit)
// };
// parms[0].Value = tempWorkFlowDoEntity.IsDelete;
// parms[1].Value = tempWorkFlowDoEntity.DeleteStep;
// parms[2].Value = tempWorkFlowDoEntity.DeleteOperator;
// parms[3].Value = tempWorkFlowDoEntity.WorkFlowID;
// parms[4].Value = tempWorkFlowDoEntity.BillNO;
// parms[5].Value = tempWorkFlowDoEntity.DeleteStepNO;
// parms[6].Value = tempWorkFlowDoEntity.IsFinish;
// SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, SQL_UPDATE_WORKFLOW_DO_RECORD_REJECT_STEP, parms);
// switch (workFlowType)
// {
// case WorkFlowType.PAYSETTLEAUDIT:
// foreach(FeeDoEntity feeDoEntity in feeDoEntities)
// {
// SqlParameter[] updateAppParms = new SqlParameter[] {
// new SqlParameter(PARM_SETTLE_APPL_BILL_STATUS,SqlDbType.Int),
// new SqlParameter(PARM_SETTLE_APPL_BILL_NO,SqlDbType.VarChar,20),
// new SqlParameter(PARM_SETTLE_APPL_COMPANY_ID,SqlDbType.VarChar,36)
// };
// updateAppParms[0].Value = 6;//付费申请费用驳回
// updateAppParms[1].Value = tempBillNO;
// updateAppParms[2].Value = tempCompanyID;
// SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, SQL_UPDATE_PAY_APPLICATION_STATUS, updateAppParms);
// SqlParameter[] updateFeeDoParms = new SqlParameter[] {
// new SqlParameter(PARM_CH_FEE_DO_GID,SqlDbType.VarChar,36)
// };
// updateFeeDoParms[0].Value = feeDoEntity.GID;
// SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, SQL_UPDATE_CH_FEE_DO_FOR_DELETE, updateFeeDoParms);
// SqlParameter[] updateFeeParms = new SqlParameter[] {
// new SqlParameter(PARM_FEE_GID,SqlDbType.VarChar,36),
// new SqlParameter(PARM_FEE_ORDER_AMOUNT,SqlDbType.Decimal,20)
// };
// updateFeeParms[0].Value = feeDoEntity.FeeID;
// updateFeeParms[1].Value = feeDoEntity.Amount;
// SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, SQL_UPDATE_CH_FEE_FOR_REJECT, updateFeeParms);
// }
// break;
// case WorkFlowType.FEEAUDIT:
// break;
// case WorkFlowType.FEEMODIFYAUDIT:
// break;
// }
// sqlTran.Commit();
// iResult = 1;//状态为1表示插入成功
// }
// catch (Exception execError)
// {
// iResult = -1;//有异常,插入失败
// sqlTran.Rollback();
// iResult = -2;//插入异常,事务已回滚成功
// throw execError;
// }
// finally
// {
// SqlHelper.CloseConnection();
// }
// }
// return iResult;
//}
# endregion
#region 费用提交审核_事务
public int FeeAudit ( WorkFlowEntity workFlowEntity , string strGid , string strUserID )
{
int iResult = 0 ;
FeeDA feeDA = new FeeDA ( ) ;
using ( SqlTransaction sqlTran = SqlHelper . BeginTransaction ( SqlHelper . ConnectionStringLocalTransaction ) )
{
try
{
#region 费用提交审核_工作流
string strDeptID = " SELECT B.GID FROM user_baseinfo as A INNER JOIN sys_dept as B ON A.DEPTNAME = B.DEPTNAME INNER JOIN user_company as C ON A.USERID = C.USERID WHERE A.USERID = '" + strUserID + "' " ;
object statusObj = SqlHelper . ExecuteScalar ( sqlTran , CommandType . Text , strDeptID , null ) ;
if ( statusObj = = null )
{
strDeptID = "" ;
}
else
{
strDeptID = statusObj . ToString ( ) . Trim ( ) ;
}
/ /
//根据Gid更新ch_fee.feestatus费用状态信息:为"提交审核"
iResult = - 3 ;
string SQL_UPDATE_FEE_STATUS_BY_GID = "UPDATE ch_fee SET FEESTATUS=2 WHERE GID='" + strGid + "'" ;
SqlHelper . ExecuteNonQuery ( sqlTran , CommandType . Text , SQL_UPDATE_FEE_STATUS_BY_GID , null ) ;
/ /
//查看当前提交的应收应付费用审核已经进入工作流, 通过工作流GID和申请编号BILLNO获取工作流运行表WorkFlowDo信息
WorkFlowDoDA workFlowDoDA = new WorkFlowDoDA ( ) ;
string strSQL = "SELECT GID, WORKFLOWID, BILLNO, STEPID, AUDITOR, AUDITTIME, BSNO, FEEID, FEESTATUS, DOQUERYSQL, STEPNO, ISFINISH,APPLICANT FROM workflow_do WHERE ISALLFINISH = 0 AND BILLNO='" + strGid . Trim ( ) + "' AND WORKFLOWID='" + workFlowEntity . GID . ToString ( ) . Trim ( ) + "' ORDER BY STEPNO DESC " ;
statusObj = SqlHelper . ExecuteScalar ( sqlTran , CommandType . Text , strSQL , null ) ;
if ( statusObj = = null )
{
IList < WorkFlowDoEntity > workFlowDoEntities = new List < WorkFlowDoEntity > ( ) ;
foreach ( WorkFlowStepEntity step in workFlowEntity . WorkFlowSteps )
{
//遍历所有工作流下步骤,获取第一步骤GID信息
if ( step . StepNO = = 1 )
{
if ( step . IsDepartment )
{
string strDepartmentID = step . DepartmentID = = null ? "" : step . DepartmentID ;
if ( strDepartmentID . Trim ( ) ! = null )
{
SysDeptDA sysDeptDA = new SysDeptDA ( ) ;
if ( strDeptID . Trim ( ) . Equals ( strDepartmentID ) & & strDepartmentID ! = "" )
{
WorkFlowDoEntity initWorkFlowDoEntity = new WorkFlowDoEntity ( ) ;
initWorkFlowDoEntity . GID = Guid . NewGuid ( ) . ToString ( ) ;
initWorkFlowDoEntity . WorkFlowID = workFlowEntity . GID ;
initWorkFlowDoEntity . StepID = step . GID ;
initWorkFlowDoEntity . StepNO = step . StepNO ;
initWorkFlowDoEntity . Auditor = step . Auditor = = null ? step . DefaultAuditor : step . Auditor ;
initWorkFlowDoEntity . FeeID = "" ;
initWorkFlowDoEntity . BSNO = "" ;
initWorkFlowDoEntity . FeeStatus = 0 ;
initWorkFlowDoEntity . DoQuerySql = "" ;
initWorkFlowDoEntity . BillNO = strGid ;
initWorkFlowDoEntity . IsFinish = false ;
initWorkFlowDoEntity . Applicant = strUserID ;
workFlowDoEntities . Add ( initWorkFlowDoEntity ) ;
}
}
}
else
{
WorkFlowDoEntity initWorkFlowDoEntity = new WorkFlowDoEntity ( ) ;
initWorkFlowDoEntity . GID = Guid . NewGuid ( ) . ToString ( ) ;
initWorkFlowDoEntity . WorkFlowID = workFlowEntity . GID ;
initWorkFlowDoEntity . StepID = step . GID ;
initWorkFlowDoEntity . StepNO = step . StepNO ;
initWorkFlowDoEntity . Auditor = step . Auditor = = null ? step . DefaultAuditor : step . Auditor ;
initWorkFlowDoEntity . FeeID = "" ;
initWorkFlowDoEntity . BSNO = "" ;
initWorkFlowDoEntity . FeeStatus = 0 ;
initWorkFlowDoEntity . DoQuerySql = "" ;
initWorkFlowDoEntity . BillNO = strGid ;
initWorkFlowDoEntity . IsFinish = false ;
initWorkFlowDoEntity . Applicant = strUserID ;
workFlowDoEntities . Add ( initWorkFlowDoEntity ) ;
}
}
}
//插入WorkFlowDo信息
//iWorkFlowStatus = workFlowDoDA.InsertWorkFlowDo(workFlowDoEntities);
SqlParameter [ ] parms = new SqlParameter [ ] {
new SqlParameter ( PARM_WORKFLOW_DO_GID , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_WORKFLOW_ID , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_BILL_NO , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_STEP_ID , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_AUDITOR , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_BSNO , SqlDbType . VarChar , 100 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_FEE_ID , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_FEE_STATUS , SqlDbType . Int ) ,
new SqlParameter ( PARM_WORKFLOW_DO_DO_QUERY_SQL , SqlDbType . VarChar , 200 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_STEP_NO , SqlDbType . Int ) ,
new SqlParameter ( PARM_WORKFLOW_DO_IS_FINISH , SqlDbType . Bit ) ,
new SqlParameter ( PARM_WORKFLOW_DO_DELETE_APPLICANT , SqlDbType . VarChar , 36 )
} ;
foreach ( WorkFlowDoEntity workFlowDoEntity in workFlowDoEntities )
{
parms [ 0 ] . Value = workFlowDoEntity . GID ;
parms [ 1 ] . Value = workFlowDoEntity . WorkFlowID ;
parms [ 2 ] . Value = workFlowDoEntity . BillNO ;
parms [ 3 ] . Value = workFlowDoEntity . StepID ;
parms [ 4 ] . Value = workFlowDoEntity . Auditor ;
parms [ 5 ] . Value = workFlowDoEntity . BSNO ;
parms [ 6 ] . Value = workFlowDoEntity . FeeID ;
parms [ 7 ] . Value = workFlowDoEntity . FeeStatus ;
parms [ 8 ] . Value = workFlowDoEntity . DoQuerySql ;
parms [ 9 ] . Value = workFlowDoEntity . StepNO ;
parms [ 10 ] . Value = workFlowDoEntity . IsFinish ;
parms [ 11 ] . Value = workFlowDoEntity . Applicant ;
//string SQL_INSERT_WORKFLOW_DO = "INSERT INTO workflow_do (GID, WORKFLOWID, BILLNO, STEPID, AUDITOR, AUDITTIME, BSNO, FEEID, FEESTATUS, DOQUERYSQL, STEPNO, ISFINISH,APPLICANT) VALUES(@gid,@workflow_id,@bill_no,@step_id,@auditor,GETDATE(),@bsno,@fee_id,@fee_status,@do_query_sql,@step_no,@is_finish,@applicant)";
iResult = - 4 ;
SqlHelper . ExecuteNonQuery ( sqlTran , CommandType . Text , SQL_INSERT_WORKFLOW_DO , parms ) ;
}
/ /
iResult = - 5 ; //更新费用状态失败
string SQL_UPDATE_FEE_AUDITSTATUS = "UPDATE ch_fee SET AUDITSTATUS=1 WHERE GID='" + strGid + "'" ;
SqlHelper . ExecuteNonQuery ( sqlTran , CommandType . Text , SQL_UPDATE_FEE_AUDITSTATUS , null ) ;
}
else
{
IList < WorkFlowDoEntity > workFlowDoEntities = new List < WorkFlowDoEntity > ( ) ;
foreach ( WorkFlowStepEntity step in workFlowEntity . WorkFlowSteps )
{
//遍历所有工作流下步骤,获取第一步骤GID信息
if ( step . StepNO = = 1 )
{
if ( step . IsDepartment )
{
string strDepartmentID = step . DepartmentID = = null ? "" : step . DepartmentID ;
if ( strDepartmentID . Trim ( ) ! = null )
{
if ( strDeptID . Trim ( ) . Equals ( strDepartmentID ) & & strDepartmentID ! = "" )
{
WorkFlowDoEntity initWorkFlowDoEntity = new WorkFlowDoEntity ( ) ;
initWorkFlowDoEntity . GID = Guid . NewGuid ( ) . ToString ( ) ;
initWorkFlowDoEntity . WorkFlowID = workFlowEntity . GID ;
initWorkFlowDoEntity . StepID = step . GID ;
initWorkFlowDoEntity . StepNO = step . StepNO ;
initWorkFlowDoEntity . Auditor = step . Auditor = = null ? step . DefaultAuditor : step . Auditor ;
initWorkFlowDoEntity . FeeID = "" ;
initWorkFlowDoEntity . BSNO = "" ;
initWorkFlowDoEntity . FeeStatus = 0 ;
initWorkFlowDoEntity . DoQuerySql = "" ;
initWorkFlowDoEntity . BillNO = strGid ;
initWorkFlowDoEntity . IsFinish = false ;
initWorkFlowDoEntity . Applicant = strUserID ;
workFlowDoEntities . Add ( initWorkFlowDoEntity ) ;
}
}
}
else
{
WorkFlowDoEntity initWorkFlowDoEntity = new WorkFlowDoEntity ( ) ;
initWorkFlowDoEntity . GID = Guid . NewGuid ( ) . ToString ( ) ;
initWorkFlowDoEntity . WorkFlowID = workFlowEntity . GID ;
initWorkFlowDoEntity . StepID = step . GID ;
initWorkFlowDoEntity . StepNO = step . StepNO ;
initWorkFlowDoEntity . Auditor = step . Auditor = = null ? step . DefaultAuditor : step . Auditor ;
initWorkFlowDoEntity . FeeID = "" ;
initWorkFlowDoEntity . BSNO = "" ;
initWorkFlowDoEntity . FeeStatus = 0 ;
initWorkFlowDoEntity . DoQuerySql = "" ;
initWorkFlowDoEntity . BillNO = strGid ;
initWorkFlowDoEntity . IsFinish = false ;
initWorkFlowDoEntity . Applicant = strUserID ;
workFlowDoEntities . Add ( initWorkFlowDoEntity ) ;
}
}
}
//iWorkFlowStatus = workFlowDoDA.InsertWorkFlowDo(workFlowDoEntities);
SqlParameter [ ] parms = new SqlParameter [ ] {
new SqlParameter ( PARM_WORKFLOW_DO_GID , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_WORKFLOW_ID , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_BILL_NO , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_STEP_ID , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_AUDITOR , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_BSNO , SqlDbType . VarChar , 100 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_FEE_ID , SqlDbType . VarChar , 36 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_FEE_STATUS , SqlDbType . Int ) ,
new SqlParameter ( PARM_WORKFLOW_DO_DO_QUERY_SQL , SqlDbType . VarChar , 200 ) ,
new SqlParameter ( PARM_WORKFLOW_DO_STEP_NO , SqlDbType . Int ) ,
new SqlParameter ( PARM_WORKFLOW_DO_IS_FINISH , SqlDbType . Bit ) ,
new SqlParameter ( PARM_WORKFLOW_DO_DELETE_APPLICANT , SqlDbType . VarChar , 36 )
} ;
foreach ( WorkFlowDoEntity workFlowDoEntity in workFlowDoEntities )
{
parms [ 0 ] . Value = workFlowDoEntity . GID ;
parms [ 1 ] . Value = workFlowDoEntity . WorkFlowID ;
parms [ 2 ] . Value = workFlowDoEntity . BillNO ;
parms [ 3 ] . Value = workFlowDoEntity . StepID ;
parms [ 4 ] . Value = workFlowDoEntity . Auditor ;
parms [ 5 ] . Value = workFlowDoEntity . BSNO ;
parms [ 6 ] . Value = workFlowDoEntity . FeeID ;
parms [ 7 ] . Value = workFlowDoEntity . FeeStatus ;
parms [ 8 ] . Value = workFlowDoEntity . DoQuerySql ;
parms [ 9 ] . Value = workFlowDoEntity . StepNO ;
parms [ 10 ] . Value = workFlowDoEntity . IsFinish ;
parms [ 11 ] . Value = workFlowDoEntity . Applicant ;
//string SQL_INSERT_WORKFLOW_DO = "INSERT INTO workflow_do (GID, WORKFLOWID, BILLNO, STEPID, AUDITOR, AUDITTIME, BSNO, FEEID, FEESTATUS, DOQUERYSQL, STEPNO, ISFINISH,APPLICANT) VALUES(@gid,@workflow_id,@bill_no,@step_id,@auditor,GETDATE(),@bsno,@fee_id,@fee_status,@do_query_sql,@step_no,@is_finish,@applicant)";
iResult = - 6 ;
SqlHelper . ExecuteNonQuery ( sqlTran , CommandType . Text , SQL_INSERT_WORKFLOW_DO , parms ) ;
}
//int iTempStatus = feeDA.UpdateFeeAuditStatus(strGid, 1);
iResult = - 7 ; //更新费用状态失败
string SQL_UPDATE_FEE_AUDITSTATUS = "UPDATE ch_fee SET AUDITSTATUS=1 WHERE GID='" + strGid + "'" ;
SqlHelper . ExecuteNonQuery ( sqlTran , CommandType . Text , SQL_UPDATE_FEE_AUDITSTATUS , null ) ;
}
# endregion
sqlTran . Commit ( ) ;
iResult = 1 ; //状态为1表示插入成功
}
catch ( Exception execError )
{
iResult = - 1 ; //有异常,插入失败
sqlTran . Rollback ( ) ;
iResult = - 2 ; //插入异常,事务已回滚成功
throw execError ;
}
finally
{
SqlHelper . CloseConnection ( ) ;
}
}
return iResult ;
}
# endregion
}
}