//第一步AddAskLeave private int AddAskLeave(SqlTransaction trans, LeaveApplyEntity model, string strAskLeaveGUID) { StringBuilder strSqlAddAskLeave = new StringBuilder(); strSqlAddAskLeave.Append("insert into TAB_LeaveMgr_AskLeave"); strSqlAddAskLeave.Append("(strAskLeaveGUID,strTrainManID,dBeginTime,dEndTime,strLeaveTypeGUID,nStatus)"); strSqlAddAskLeave.Append("values(@strAskLeaveGUID,@strTrainManID,@dBeginTime,@dEndTime,@strLeaveTypeGUID,1);"); SqlParameter[] paraAddAskLeave = { new SqlParameter("@strAskLeaveGUID", strAskLeaveGUID), new SqlParameter("@strTrainManID", model.strTrainmanNumber), new SqlParameter("@dBeginTime", model.dtBeginTime), new SqlParameter("@dEndTime", model.dtEndTime), new SqlParameter("@strLeaveTypeGUID", model.strTypeGUID) }; strSqlAddAskLeave.Append("update TAB_Nameplate_Group set strTrainmanGUID1= '' " + " where strTrainmanGUID1 = (select top 1 strTrainmanGUID from TAB_Org_Trainman where strTrainmanNumber = '" + model.strTrainmanNumber + "');"); strSqlAddAskLeave.Append("update TAB_Nameplate_Group set strTrainmanGUID2= '' " + " where strTrainmanGUID2 = (select top 1 strTrainmanGUID from TAB_Org_Trainman where strTrainmanNumber = '" + model.strTrainmanNumber + "');"); strSqlAddAskLeave.Append("update TAB_Nameplate_Group set strTrainmanGUID3= '' " + " where strTrainmanGUID3 = (select top 1 strTrainmanGUID from TAB_Org_Trainman where strTrainmanNumber = '" + model.strTrainmanNumber + "');"); //tsUnRuning {非运转} strSqlAddAskLeave.Append("update TAB_Org_Trainman set nTrainmanState = 0 where strTrainmanNumber = '" + model.strTrainmanGUID + "';"); return(SqlHelper.ExecuteNonQuery(trans, CommandType.Text, strSqlAddAskLeave.ToString(), paraAddAskLeave)); }
public void ExecuteLeave(LeaveApplyEntity leaveApply) { int nYear = leaveApply.dtBeginTime.Year; int nMonth = leaveApply.dtBeginTime.Month; string sql = "select * From TAB_LeaveMgr_AnnualLeave where strTrainmanNumber = @strTrainmanNumber and nYear = @nYear and nMonth = @nMonth"; DbParamDict paramDict = new DbParamDict(); paramDict.Add("nYear", nYear, ParamDataType.dtInt); paramDict.Add("nMonth", nMonth, ParamDataType.dtInt); paramDict.Add("strTrainmanNumber", leaveApply.strTrainmanNumber, ParamDataType.dtString); DataTable dt = SqlHelper.ExecuteDataset(SqlHelper.ConnString, CommandType.Text, sql, paramDict.GetParams()).Tables[0]; if (dt.Rows.Count > 0) { paramDict.Clear(); paramDict.Add("strLeaveGUID", leaveApply.strAskLeaveGUID, ParamDataType.dtString); paramDict.Add("nLeaveState", 1, ParamDataType.dtInt); paramDict.Add("dtLeaveTime", leaveApply.dtBeginTime, ParamDataType.dtDateTime); paramDict.Add("strAnnualGUID", dt.Rows[0]["strAnnualGUID"].ToString(), ParamDataType.dtString); sql = "update TAB_LeaveMgr_AnnualLeave set strLeaveGUID = @strLeaveGUID,nLeaveState = @nLeaveState,dtLeaveTime=@dtLeaveTime where strAnnualGUID = @strAnnualGUID"; SqlHelper.ExecuteNonQuery(SqlHelper.ConnString, CommandType.Text, sql, paramDict.GetParams()); } }
//第三步DeleteTrainman private int DeleteTrainman(SqlTransaction trans, LeaveApplyEntity model) { StringBuilder strSqlDeleteTrainman = new StringBuilder(); //tsReady {预备} strSqlDeleteTrainman.Append("update Tab_Org_Trainman set nTrainmanState = 0 where strTrainmanGUID = '" + model.strTrainmanGUID + "'"); strSqlDeleteTrainman.Append("update TAB_Nameplate_Group set strTrainmanGUID1='' where strTrainmanGUID1 = '" + model.strTrainmanGUID + "'"); strSqlDeleteTrainman.Append("update TAB_Nameplate_Group set strTrainmanGUID2='' where strTrainmanGUID2 = '" + model.strTrainmanGUID + "'"); strSqlDeleteTrainman.Append("update TAB_Nameplate_Group set strTrainmanGUID3='' where strTrainmanGUID3 = '" + model.strTrainmanGUID + "'"); strSqlDeleteTrainman.Append("update TAB_Nameplate_Group set strTrainmanGUID4='' where strTrainmanGUID4 = '" + model.strTrainmanGUID + "'"); return(SqlHelper.ExecuteNonQuery(trans, CommandType.Text, strSqlDeleteTrainman.ToString())); }
/// <summary> /// 更新数据 /// </summary> public int AskLeave(LeaveApplyEntity model) { //判断人员机组是否处于调休状态 if (ISTXState(model.strTrainmanGUID)) { return(2); } SqlConnection conn = new SqlConnection(SqlHelper.ConnString); conn.Open(); using (SqlTransaction trans = conn.BeginTransaction()) { try { //第一步AddAskLeave string strAskLeaveGUID = System.Guid.NewGuid().ToString(); model.strAskLeaveGUID = strAskLeaveGUID; int obj = AddAskLeave(trans, model, strAskLeaveGUID); if (obj > 0) { //第二步AddAskLeaveDetail obj = AddAskLeaveDetail(trans, model, strAskLeaveGUID); if (obj > 0) { //第三步DeleteTrainman obj = DeleteTrainman(trans, model); //第四步 插入请销假消息 model.msgType = MSGTYPE.MSG_LEAVE; string strMsg = AttentionMsg.ReturnStrJson(model); CreatMsg(trans, strMsg); trans.Commit(); return(0); } } trans.Rollback(); return(1); } catch (Exception ex) { trans.Rollback(); throw ex; } finally { trans.Dispose(); } } }
//第二步AddAskLeaveDetail private int AddAskLeaveDetail(SqlTransaction trans, LeaveApplyEntity model, string strAskLeaveGUID) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into TAB_LeaveMgr_AskLeaveDetail"); strSql.Append("(strAskLeaveDetailGUID,strAskLeaveGUID,strMemo,dBeginTime,dEndTime,strProverID,strProverName,dCreateTime,strDutyUserID,strDutyUserName,strSiteID,strSiteName,nValidWay)"); strSql.Append("values(newid(),@strAskLeaveGUID,@strMemo,@dBeginTime,@dEndTime,@strProverID,@strProverName,getdate(),@strDutyUserID,@strDutyUserName,@strSiteID,@strSiteName,@nValidWay)"); SqlParameter[] parameters = { //new SqlParameter("@strAskLeaveDetailGUID", model.strAskLeaveDetailGUID), new SqlParameter("@strAskLeaveGUID", strAskLeaveGUID), new SqlParameter("@strMemo", model.strRemark), new SqlParameter("@dBeginTime", model.dtBeginTime), new SqlParameter("@dEndTime", model.dtEndTime), new SqlParameter("@strProverID", model.strProverID), new SqlParameter("@strProverName", model.strProverName), new SqlParameter("@strDutyUserID", model.strDutyUserID), new SqlParameter("@strDutyUserName", model.strDutyUserName), new SqlParameter("@strSiteID", model.strSiteID), new SqlParameter("@strSiteName", model.strSiteName), new SqlParameter("@nValidWay", model.Verify) }; return(ObjectConvertClass.static_ext_int(SqlHelper.ExecuteNonQuery(trans, CommandType.Text, strSql.ToString(), parameters))); }