protected void Bind(string strNumber, string role) { //不是预录入、审批通过状态不能修改 //object obj = ds.ExecuteTxtScalar(string.Format("SELECT OID FROM BASIC_STU_INFO_MODI WHERE NUMBER = '{0}' AND RET_CHANNEL NOT IN ('{1}', '{2}')", strNumber, CValue.RET_CHANNEL_A0000, CValue.RET_CHANNEL_D4000)); //if (obj != null && obj.ToString().Length > 0) //{ // strIsCanModi = "false"; //} //判断modi表是否有未审批的数据,有则显示modi表,否则显示info表 object o = ds.ExecuteTxtScalar(string.Format("SELECT OID FROM BASIC_STU_INFO_MODI WHERE NUMBER = '{0}' AND RET_CHANNEL NOT IN ('{1}')", strNumber, CValue.RET_CHANNEL_D4000)); if (o != null && o.ToString().Length > 0) { bhead = false; hidoid.Value = o.ToString(); modi.OID = o.ToString(); ds.RetrieveObject(modi); ConvertAddress(modi.NATIVEPLACE, modi.REGISTPLACE, modi.STUPLACE, modi.ADDRESS); strIDNO = modi.IDCARDNO; strBankName = modi.BANKNAME; strBankCode = modi.BANKCODE; //已进入审核流程,不能修改 if (!WKF_AuditHandleCLass.getInstance().IsBeforeApprove(modi.DOC_TYPE, modi.RET_CHANNEL, modi.DECLARE_TYPE)) { strIsCanModi = "false"; } } else { object h = ds.ExecuteTxtScalar(string.Format("SELECT OID FROM BASIC_STU_INFO WHERE NUMBER = '{0}'", strNumber)); if (h != null && h.ToString().Length > 0) { bhead = true; hidoid.Value = h.ToString(); head.OID = h.ToString(); ds.RetrieveObject(head); ConvertAddress(head.NATIVEPLACE, head.REGISTPLACE, head.STUPLACE, head.ADDRESS); strIDNO = head.IDCARDNO; //银行卡信息 object b = ds.ExecuteTxtScalar(string.Format("SELECT OID FROM BASIC_STU_BANK_INFO WHERE NUMBER = '{0}'", strNumber)); if (b != null && b.ToString().Length > 0) { hidbid.Value = b.ToString(); bank.OID = b.ToString(); ds.RetrieveObject(bank); strBankName = bank.BANKNAME; strBankCode = bank.BANKCODE; } } } strCollege = bhead ? head.COLLEGE : modi.COLLEGE; strMajor = bhead ? head.MAJOR : modi.MAJOR; strClass = bhead ? head.CLASS : modi.CLASS; }
public bool AuditTranHandle(string doc_type, string doc_no, string op_user, string pos_code, string audit_result, string audit_note, string level_info, out string msg) { try { if (!WKF_ExternalInterface.getInstance().Chk_ClientParam(doc_type, doc_no, op_user, out msg)) { return(false); } var m_code = WKF_BusDataHandleCLass.getInstance().GetCodBiz(doc_type, out msg); if (m_code == null) { return(false); } DataRow drData = WKF_BusDataHandleCLass.getInstance().GetBusHeadData(m_code, doc_no, out msg); if (drData == null) { return(false); } if (!WKF_BusDataHandleCLass.getInstance().UpdateChk_status(m_code, doc_no, WKF_VLAUES.HANDLE_STATUS_Y, out msg)) { return(false); } string ret_channel = WKF_AuditHandleCLass.getInstance().GetAuditRet_Channel(drData[WKF_VLAUES.COLUMN_STEP_NO].ToString(), audit_result); Wkf_rule_queue rule = WKF_RuleQueueHandleCLass.getInstance().GetCurrRule(doc_type, WKF_VLAUES.DECLARE_TYPE_D, drData[WKF_VLAUES.COLUMN_STEP_NO].ToString(), ret_channel, drData[WKF_VLAUES.COLUMN_POS_CODE].ToString()); if (rule == null) { return(false); } string next_step_no = rule.NEXT_STEP_NO; string next_ret_channel = rule.NEXT_RET_CHANNEL; string next_post_code = rule.NEXT_POST_CODE; string declare_type = rule.DECLARE_TYPE; string op_time = ComTranClass.getInstance().GetCurrLongDateTime(); string audit_pos_code = audit_result.Equals("P") ? string.Format(",{0}='{1}'", WKF_VLAUES.COLUMN_AUDIT_POS_CODE, pos_code) : string.Empty; ds.ExecuteTxtNonQuery(string.Format("UPDATE {0} SET {3}='{4}',{5}='{6}',{7}='{8}',{9}='{10}',{11}='{12}',{13}='{14}'{15}{16} WHERE {1}='{2}'", m_code.BUS_TABLE, m_code.BUS_COLUMN, doc_no, WKF_VLAUES.COLUMN_STEP_NO, next_step_no, WKF_VLAUES.COLUMN_CHK_STATUS, WKF_VLAUES.HANDLE_STATUS_N, WKF_VLAUES.COLUMN_RET_CHANNEL, next_ret_channel, WKF_VLAUES.COLUMN_POS_CODE, next_post_code, WKF_VLAUES.COLUMN_DECLARE_TYPE, declare_type, WKF_VLAUES.COLUMN_CHK_TIME, op_time, level_info, audit_pos_code)); //创建工作日志 CreateNewLog(doc_type, doc_no, CValue.DECLARE_TYPE_D, drData[WKF_VLAUES.COLUMN_STEP_NO].ToString(), ret_channel, pos_code, op_user, op_time, audit_note); return(true); } catch (Exception ex) { var m_code = WKF_BusDataHandleCLass.getInstance().GetCodBiz(doc_type, out msg); WKF_BusDataHandleCLass.getInstance().UpdateChk_status(m_code, doc_no, WKF_VLAUES.HANDLE_STATUS_N, out msg); msg = ex.Message; return(false); } }
/// <summary> /// 提交审核信息 /// </summary> /// <returns></returns> private string ApproveData() { try { if (string.IsNullOrEmpty(Get("doc_type"))) { return("单据类型不能为空!"); } if (string.IsNullOrEmpty(Get("seq_no"))) { return("单据编号不能为空!"); } if (string.IsNullOrEmpty(Get("decltype"))) { return("申请类型不能为空!"); } string strMsg = string.Empty; bool bResult = true; decl_type = Get("decltype"); if (decl_type.Equals(CValue.DECLARE_TYPE_R)) { bResult = WKF_ExternalInterface.getInstance().WKF_RevokeAudit(Get("doc_type"), Get("seq_no"), user.User_Id, user.User_Role, Post("approveType"), Post("approveMsg"), out strMsg); } else { bResult = WKF_ExternalInterface.getInstance().WKF_Audit(Get("doc_type"), Get("seq_no"), user.User_Id, user.User_Role, Post("approveType"), Post("approveMsg"), out strMsg); } if (!bResult)//审批成功 { return("审批失败!"); } #region 审批通过之后给申请人发送信息 //审批通过之后给申请人发送信息 if (!string.IsNullOrEmpty(Get("msg_accpter"))) { string strFinalPosCode = WKF_AuditHandleCLass.getInstance().GetFinalPosCode(Get("doc_type")); if (!string.IsNullOrEmpty(strFinalPosCode)) { if (strFinalPosCode == user.User_Role) { string strMsgContent = string.Empty; if (Post("approveType").ToString().Equals("P")) { strMsgContent = string.Format("{0}审批通过", cod.GetDDLTextByValue("ddl_doc_type", Get("doc_type"))); } else { strMsgContent = string.Format("{0}审批不通过,审批意见:{1}", cod.GetDDLTextByValue("ddl_doc_type", Get("doc_type")), Post("approveMsg")); } Dictionary <string, string> dicAccpter = new Dictionary <string, string>(); dicAccpter.Add(Get("msg_accpter"), ComHandleClass.getInstance().ByUserIdGetUserName(Get("msg_accpter"))); MessgeHandleClass.getInstance().SendMessge("M", strMsgContent, user.User_Id, user.User_Name, dicAccpter, out strMsg); if (strMsg.Length > 0) { LogDBHandleClass.getInstance().LogException(CValue.LOG_LEVEL_ERROR, strMsg); } } } } #endregion 审批通过之后给申请人发送信息 #region 编班审核或者撤销操作 //ZZ 20171028 新增:编班审核或者撤销操作时使用 if (Get("doc_type").Equals(CValue.DOC_TYPE_UA01)) { #region 撤销申请 if (decl_type.Equals(CValue.DECLARE_TYPE_R))//撤销申请 { if (WKF_ClientRevokeHandleCLass.getInstance().IsRevokeSuccess(Get("doc_type"), user.User_Role)) { #region 编班撤销之后,如果辅导员是研究生,需要去掉研究生的“辅导员角色” //ZZ 20171027 新增:编班审批通过之后,如果辅导员是研究生,需要给研究生多分配一个“辅导员角色” Ua_class_group class_group = UaGroupClassHandle.getInstance().GetUaClassGroup(Get("seq_no")); if (class_group != null) { if (class_group.GROUP_TYPE.Equals("Y")) { Ua_user user_group = new Ua_user(); user_group.USER_ID = class_group.GROUP_NUMBER; ds.RetrieveObject(user_group); if (user_group != null) { if (user_group.USER_ROLE.Contains("F")) { user_group.USER_ROLE = "S"; ds.UpdateObject(user_group); } } } } #endregion 编班撤销之后,如果辅导员是研究生,需要去掉研究生的“辅导员角色” } } #endregion 撤销申请 #region 业务申请 else//业务申请 { string strFinalPosCode = WKF_AuditHandleCLass.getInstance().GetFinalPosCode(Get("doc_type")); //编班审批通过之后,如果辅导员是研究生,需要给研究生多分配一个“辅导员角色” if (!string.IsNullOrEmpty(strFinalPosCode)) { if (strFinalPosCode == user.User_Role) { if (Post("approveType").ToString().Equals("P")) { Ua_class_group class_group = UaGroupClassHandle.getInstance().GetUaClassGroup(Get("seq_no")); if (class_group.GROUP_TYPE.Equals("Y")) { Ua_user user_group = new Ua_user(); user_group.USER_ID = class_group.GROUP_NUMBER; ds.RetrieveObject(user_group); if (user_group != null) { if (!user_group.USER_ROLE.Contains("F")) { user_group.USER_ROLE = "S,F"; ds.UpdateObject(user_group); } } } } } } } #endregion 业务申请 } #endregion 编班审核或者撤销操作 return(string.Empty); } catch (Exception ex) { LogDBHandleClass.getInstance().LogException(CValue.LOG_LEVEL_WARN, "提交审核信息,出错:" + ex.ToString()); return("审批失败!"); } }
/// <summary> /// 提交审核信息 /// </summary> /// <returns></returns> private string ApproveData() { try { #region 获得奖助申请信息 if (string.IsNullOrEmpty(Post("hidOid_ForApprove"))) { return("奖助申请主键不能为空!"); } Shoolar_apply_head head = new Shoolar_apply_head(); head.OID = Post("hidOid_ForApprove").ToString(); ds.RetrieveObject(head); if (head == null) { return("奖助申请信息为空!"); } if (head.DECLARE_TYPE != CValue.DECLARE_TYPE_D) { return("该状态不允许进行操作!"); } #endregion 获得奖助申请信息 #region 是否满足提交审核条件 string strMsg = string.Empty; strMsg = ChkApproveData(head.PROJECT_TYPE, Post("approveMsg"), Post("comMsg")); if (strMsg.Length > 0) { return(strMsg); } #endregion 是否满足提交审核条件 #region 过了项目申请结束时间,学生、辅导员、学院都不能操作,校级可以审批操作 Shoolar_project_head project_head = ProjectSettingHandleClass.getInstance().GetProjectHead(head.PROJECT_SEQ_NO); if (project_head == null) { return("项目信息为空,不允许进行操作!"); } //ZZ 20171221 新增:过了项目申请结束时间,学生、辅导员、学院都不能操作,校级可以审批操作 if (!ProjectSettingHandleClass.getInstance().CheckIsFitApplyDate(project_head.APPLY_END, user.User_Role)) { return("该项目申请结束日期已过,不允许进行操作!"); } #endregion 过了项目申请结束时间,学生、辅导员、学院都不能操作,校级可以审批操作 #region 申请人数限制放在院级审核的时候,并且再次用条件进行校验 if (user.User_Role.Equals(CValue.ROLE_TYPE_Y) && Post("approveType").Equals("P")) { //ZZ 20171114 新增:申请人数限制放在院级审核的时候,并且再次用条件进行校验 Basic_stu_info stu_info = StuHandleClass.getInstance().GetStuInfo_Obj(head.STU_NUMBER); if (stu_info == null || project_head == null) { return("审核失败:学生信息或者奖助项目信息不能为空!"); } #region 再次校验申请条件 //再次校验申请条件 if (!ProjectApplyHandleClass.getInstance().CheckProjectLimit(stu_info, project_head, out strMsg)) { //发送消息 Dictionary <string, string> dicAccpter = new Dictionary <string, string>(); dicAccpter.Add(head.STU_NUMBER, head.STU_NAME); string strMsgContent = string.Format("您好!您的{0}奖助申请不符合该项目申请条件({1}),该奖助申请数据已被退回预录入状态,望您悉知,谢谢!", head.PROJECT_NAME, strMsg); string strMessageMsg = string.Empty; MessgeHandleClass.getInstance().SendMessge("M", strMsgContent, user.User_Id, user.User_Name, dicAccpter, out strMessageMsg); ////记录日志(屏蔽:不删除之后 不需要记录操作日志,因为已经写入了 审批流程日志中) //LogDBHandleClass.getInstance().LogOperation(head.SEQ_NO, "奖助院级审核", CValue.LOG_ACTION_TYPE_6, CValue.LOG_RECORD_TYPE_1, string.Format("删除:学号{0}姓名{1} 不满足奖助[{2}]申请条件:{3}", head.STU_NUMBER, head.STU_NAME, head.PROJECT_NAME, strMsg), user.User_Id, user.User_Name, user.UserLoginIP); //20171121 ZZ 屏蔽:物理删除数据不合理,修改成 变成预录入 //删除数据 //ProjectApplyHandleClass.getInstance().DeleteProjectApplyData(head.SEQ_NO); ProjectApplyHandleClass.getInstance().TurnBackApplyToRetchannelA0000(head.SEQ_NO, CValue.STEP_D2, CValue.RET_CHANNEL_D2020, CValue.ROLE_TYPE_Y, user.User_Name, strMsg); return("由于该奖助申请不满足申请条件,已退回预录入状态,原因:" + strMsg); } if (!ProjectApplyHandleClass.getInstance().CheckProjectNotBoth(stu_info, project_head, out strMsg)) { //发送消息 Dictionary <string, string> dicAccpter = new Dictionary <string, string>(); dicAccpter.Add(head.STU_NUMBER, head.STU_NAME); string strMsgContent = string.Format("您好!您的{0}奖助申请不符合该项目申请条件({1}),该奖助申请数据已被退回预录入状态,望您悉知,谢谢!", head.PROJECT_NAME, strMsg); string strMessageMsg = string.Empty; MessgeHandleClass.getInstance().SendMessge("M", strMsgContent, user.User_Id, user.User_Name, dicAccpter, out strMessageMsg); ////记录日志(屏蔽:不删除之后 不需要记录操作日志,因为已经写入了 审批流程日志中) //LogDBHandleClass.getInstance().LogOperation(head.SEQ_NO, "奖助院级审核", CValue.LOG_ACTION_TYPE_6, CValue.LOG_RECORD_TYPE_1, string.Format("删除:学号{0}姓名{1} 不满足奖助[{2}]申请条件:{3}", head.STU_NUMBER, head.STU_NAME, head.PROJECT_NAME, strMsg), user.User_Id, user.User_Name, user.UserLoginIP); //20171121 ZZ 屏蔽:物理删除数据不合理,修改成 变成预录入 //删除数据 //ProjectApplyHandleClass.getInstance().DeleteProjectApplyData(head.SEQ_NO); ProjectApplyHandleClass.getInstance().TurnBackApplyToRetchannelA0000(head.SEQ_NO, CValue.STEP_D2, CValue.RET_CHANNEL_D2020, CValue.ROLE_TYPE_Y, user.User_Name, strMsg); return("由于该奖助申请不满足申请条件,已退回预录入状态,原因:" + strMsg); } #endregion 再次校验申请条件 #region 申请人数已满 //由于审核流转需要1秒,等待一秒之后再查询更准确。 Thread.Sleep(1000); //申请人数已满 if (!ProjectApplyHandleClass.getInstance().CheckProjectNum(stu_info, project_head, out strMsg)) { LogDBHandleClass.getInstance().LogOperation(head.SEQ_NO, "奖助院级审核", CValue.LOG_ACTION_TYPE_6, CValue.LOG_RECORD_TYPE_1, string.Format("学号{0}姓名{1} 不满足奖助[{2}]申请条件:{3}", head.STU_NUMBER, head.STU_NAME, head.PROJECT_NAME, strMsg), user.User_Id, user.User_Name, user.UserLoginIP); Dictionary <string, string> param_projectnum = new Dictionary <string, string>(); param_projectnum.Add("SEQ_NO", project_head.SEQ_NO); param_projectnum.Add("XY", stu_info.COLLEGE); List <Shoolar_project_num> projectNum = ProjectSettingHandleClass.getInstance().GetProjectNum(param_projectnum); return(string.Format("审核失败,原因:已超出学院所获得的该项目名额人数{0}人!", projectNum[0].APPLY_NUM)); } #endregion 申请人数已满 } #endregion 申请人数限制放在院级审核的时候,并且再次用条件进行校验 #region 提交审核信息 bool bFlag = WKF_ExternalInterface.getInstance().WKF_Audit(head.DOC_TYPE, head.SEQ_NO, user.User_Id, user.User_Role, Post("approveType"), Post("approveMsg"), out strMsg); if (bFlag) { ProjectApplyHandleClass.getInstance().ApproveData_UpTxt(head.SEQ_NO, head.PROJECT_TYPE, user.User_Role, Post("approveMsg"), Post("comMsg")); #region 审批通过之后给申请人发送信息 //审批通过之后给申请人发送信息 string strFinalPosCode = WKF_AuditHandleCLass.getInstance().GetFinalPosCode(head.DOC_TYPE); if (!string.IsNullOrEmpty(strFinalPosCode)) { if (strFinalPosCode == user.User_Role) { string strMsgContent = string.Empty; if (Post("approveType").ToString().Equals("P")) { strMsgContent = string.Format("奖助申请:{0}审批通过", head.PROJECT_NAME); } else { strMsgContent = string.Format("奖助申请:{0}审批不通过,审批意见:{1}", head.PROJECT_NAME, Post("approveMsg")); } Dictionary <string, string> dicAccpter = new Dictionary <string, string>(); dicAccpter.Add(head.STU_NUMBER, head.STU_NAME); MessgeHandleClass.getInstance().SendMessge("M", strMsgContent, user.User_Id, user.User_Name, dicAccpter, out strMsg); } } #endregion 审批通过之后给申请人发送信息 return(string.Empty); } else { LogDBHandleClass.getInstance().LogException(CValue.LOG_LEVEL_ERROR, strMsg); return("提交审核信息失败!"); } #endregion 提交审核信息 } catch (Exception ex) { LogDBHandleClass.getInstance().LogException(CValue.LOG_LEVEL_ERROR, "奖助审核提交审核信息失败:" + ex.ToString()); return("提交审核信息失败!"); } }
/// <summary> /// 批量审批 /// </summary> /// <returns></returns> private string MultiPAudit() { try { string strFlag = Get("flag"); string[] strs = Get("ids").Split(','); for (int i = 0; i < strs.Length; i++) { #region 审批操作 if (strs[i].Length == 0) { continue; } Ua_class_group head = new Ua_class_group(); head.OID = strs[i]; ds.RetrieveObject(head); string strMsg = WKF_ExternalInterface.getInstance().ChkAudit(head.DOC_TYPE, head.SEQ_NO, user.User_Role); if (strMsg.Length > 0) { continue; } strMsg = string.Empty; string strOpNote = string.Format("{0}在{1}操作:编班批量审批{2}", user.User_Id, GetDateLongFormater(), strFlag.Equals("P") ? "通过" : "不通过"); if (!WKF_ExternalInterface.getInstance().WKF_Audit(head.DOC_TYPE, head.SEQ_NO, user.User_Id, user.User_Role, strFlag, strOpNote, out strMsg)) { LogDBHandleClass.getInstance().LogException(CValue.LOG_LEVEL_ERROR, string.Format("单据编号{0}编班审核失败,原因", head.SEQ_NO) + strMsg); continue; } #endregion 审批操作 #region 审批通过之后给申请人发送信息 //审批通过之后给申请人发送信息 string strFinalPosCode = WKF_AuditHandleCLass.getInstance().GetFinalPosCode(head.DOC_TYPE); if (!string.IsNullOrEmpty(strFinalPosCode)) { if (strFinalPosCode == user.User_Role) { string strApproveInfo = string.Empty; if (strFlag.ToString().Equals("P")) { strApproveInfo = "审批通过"; } else { strApproveInfo = "审批不通过"; } string strMsgContent = "编班审批:" + cod.GetDDLTextByValue("ddl_class", head.GROUP_CLASS) + strApproveInfo; Dictionary <string, string> dicAccpter = new Dictionary <string, string>(); dicAccpter.Add(head.DECL_NUMBER, ComHandleClass.getInstance().ByUserIdGetUserName(head.DECL_NUMBER)); MessgeHandleClass.getInstance().SendMessge("M", strMsgContent, user.User_Id, user.User_Name, dicAccpter, out strMsg); } } #endregion 审批通过之后给申请人发送信息 #region 编班审批通过之后,如果辅导员是研究生,需要给研究生多分配一个“辅导员角色” //ZZ 20171027 新增:编班审批通过之后,如果辅导员是研究生,需要给研究生多分配一个“辅导员角色” if (!string.IsNullOrEmpty(strFinalPosCode)) { if (strFinalPosCode == user.User_Role) { if (strFlag.ToString().Equals("P")) { if (head.GROUP_TYPE.Equals("Y")) { Ua_user user_group = new Ua_user(); user_group.USER_ID = head.GROUP_NUMBER; ds.RetrieveObject(user_group); if (user_group != null) { if (!user_group.USER_ROLE.Contains("F")) { user_group.USER_ROLE = "S,F"; ds.UpdateObject(user_group); } } } } } } #endregion 编班审批通过之后,如果辅导员是研究生,需要给研究生多分配一个“辅导员角色” } return(string.Empty); } catch (Exception ex) { LogDBHandleClass.getInstance().LogException(CValue.LOG_LEVEL_ERROR, "编班审批失败:" + ex.ToString()); return("批量审批失败!"); } }
/// <summary> /// 批量审批 /// </summary> /// <returns></returns> private string MultiPAudit() { string strFlag = Get("flag"); string[] strs = Get("ids").Split(','); for (int i = 0; i < strs.Length; i++) { #region 审核操作 if (strs[i].Length == 0) { continue; } Basic_stu_info_modi head = new Basic_stu_info_modi(); head.OID = strs[i]; ds.RetrieveObject(head); if (head.RET_CHANNEL.Equals(WKF_VLAUES.RET_CHANNEL_D4000) || head.RET_CHANNEL.Equals(WKF_VLAUES.RET_CHANNEL_A0000)) { continue; } string strMsg = WKF_ExternalInterface.getInstance().ChkAudit(head.DOC_TYPE, head.SEQ_NO, user.User_Role); if (strMsg.Length > 0) { continue; } strMsg = string.Empty; string strOpNote = string.Format("{0}在{1}操作:学生信息修改批量审批{2}", user.User_Id, GetDateLongFormater(), strFlag.Equals("P") ? "通过" : "不通过"); if (!WKF_ExternalInterface.getInstance().WKF_Audit(head.DOC_TYPE, head.SEQ_NO, user.User_Id, user.User_Role, strFlag, strOpNote, out strMsg)) { LogDBHandleClass.getInstance().LogException(CValue.LOG_LEVEL_ERROR, strMsg); } #endregion 审核操作 #region 审批通过之后给申请人发送信息 //审批通过之后给申请人发送信息 string strFinalPosCode = WKF_AuditHandleCLass.getInstance().GetFinalPosCode(head.DOC_TYPE); if (!string.IsNullOrEmpty(strFinalPosCode)) { if (strFinalPosCode == user.User_Role) { string strApproveInfo = string.Empty; if (strFlag.ToString().Equals("P")) { strApproveInfo = "审批通过"; } else { strApproveInfo = "审批不通过"; } string strMsgContent = "学生信息修改:" + strApproveInfo; Dictionary <string, string> dicAccpter = new Dictionary <string, string>(); dicAccpter.Add(head.NUMBER, head.NAME); MessgeHandleClass.getInstance().SendMessge("M", strMsgContent, user.User_Id, user.User_Name, dicAccpter, out strMsg); } } #endregion 审批通过之后给申请人发送信息 } return(string.Empty); }
/// <summary> /// 批量审批 /// </summary> /// <returns></returns> private string MultiPAudit() { try { #region 获得批量审核数据集合 Dictionary <string, string> param = new Dictionary <string, string>(); param.Add(string.Format(DataFilterHandleClass.getInstance().Pend_DataFilter(user.User_Role, Doc_type)), string.Empty); if (!string.IsNullOrEmpty(Get("SCH_YEAR"))) { param.Add("SCH_YEAR", Get("SCH_YEAR")); } if (!string.IsNullOrEmpty(Get("JOB_TYPE"))) { param.Add("JOB_TYPE", Get("JOB_TYPE")); } if (!string.IsNullOrEmpty(Get("IS_USE"))) { param.Add("IS_USE", Get("IS_USE")); } if (!string.IsNullOrEmpty(Get("JOB_NAME"))) { param.Add(string.Format("JOB_NAME LIKE '%{0}%' ", HttpUtility.UrlDecode(Get("JOB_NAME"))), string.Empty); } List <Qz_job_manage> applyList = JobManageHandleClass.getInstance().GetJobManageList(param); if (applyList == null) { return("查询批量审批勤助岗位申报数据出错!"); } #endregion 获得批量审核数据集合 #region 批量审批 string strFlag = Get("flag"); foreach (Qz_job_manage head in applyList) { #region 审核操作 if (head == null) { continue; } string strMsg = WKF_ExternalInterface.getInstance().ChkAudit(head.DOC_TYPE, head.SEQ_NO, user.User_Role); if (strMsg.Length > 0) { continue; } strMsg = string.Empty; string strOpNote = string.Format("{0}在{1}操作:勤助岗位申报批量审批{2}", user.User_Id, GetDateLongFormater(), strFlag.Equals("P") ? "通过" : "不通过"); if (!WKF_ExternalInterface.getInstance().WKF_Audit(head.DOC_TYPE, head.SEQ_NO, user.User_Id, user.User_Role, strFlag, strOpNote, out strMsg)) { LogDBHandleClass.getInstance().LogException(CValue.LOG_LEVEL_ERROR, strMsg); } #endregion 审核操作 #region 审批通过之后给申请人发送信息 string strFinalPosCode = WKF_AuditHandleCLass.getInstance().GetFinalPosCode(head.DOC_TYPE); if (!string.IsNullOrEmpty(strFinalPosCode)) { if (strFinalPosCode == user.User_Role) { string strApproveInfo = string.Empty; if (strFlag.ToString().Equals("P")) { strApproveInfo = "审批通过"; } else { strApproveInfo = "审批不通过"; } string strMsgContent = "勤助岗位申报:" + head.JOB_NAME + strApproveInfo; Dictionary <string, string> dicAccpter = new Dictionary <string, string>(); dicAccpter.Add(head.OP_CODE, head.OP_NAME); MessgeHandleClass.getInstance().SendMessge("M", strMsgContent, user.User_Id, user.User_Name, dicAccpter, out strMsg); } } #endregion 审批通过之后给申请人发送信息 } #endregion 批量审批 return(string.Empty); } catch (Exception ex) { LogDBHandleClass.getInstance().LogException(CValue.LOG_LEVEL_ERROR, "勤助岗位申报批量审批出错:" + ex.ToString()); return("批量审批失败!"); } }
/// <summary> /// 批量审批 /// </summary> /// <returns></returns> private string MultiPAudit() { try { #region 获得批量审核数据集合 Dictionary <string, string> param = new Dictionary <string, string>(); param.Add(string.Format(DataFilterHandleClass.getInstance().Pend_DataFilter(user.User_Role, CValue.DOC_TYPE_BDM03)), string.Empty); //ZZ 20171108 修改:加入数据过滤 DataFilterHandleClass filter = new DataFilterHandleClass(); filter.InputerInfo("STU_NUMBER", "CLASS_CODE", "XY", user.User_Id, user.User_Role, user.User_Xy); switch (user.User_Type) { case "S": filter.Student_DataFilter(param); break; case "T": filter.Teacher_DataFilter(param); break; default: filter.DefaultParams(param); break; } if (!string.IsNullOrEmpty(Get("PROJECT_YEAR"))) { param.Add("PROJECT_YEAR", Get("PROJECT_YEAR")); } if (!string.IsNullOrEmpty(Get("PROJECT_CLASS"))) { param.Add("PROJECT_CLASS", Get("PROJECT_CLASS")); } if (!string.IsNullOrEmpty(Get("PROJECT_TYPE"))) { param.Add("PROJECT_TYPE", Get("PROJECT_TYPE")); } if (!string.IsNullOrEmpty(Get("PROJECT_SEQ_NO"))) { param.Add("PROJECT_SEQ_NO", Get("PROJECT_SEQ_NO")); } if (!string.IsNullOrEmpty(Get("XY"))) { param.Add("XY", Get("XY")); } if (!string.IsNullOrEmpty(Get("ZY"))) { param.Add("ZY", Get("ZY")); } if (!string.IsNullOrEmpty(Get("GRADE"))) { param.Add("GRADE", Get("GRADE")); } if (!string.IsNullOrEmpty(Get("CLASS_CODE"))) { param.Add("CLASS_CODE", Get("CLASS_CODE")); } if (!string.IsNullOrEmpty(Get("STU_NUMBER"))) { param.Add(string.Format("STU_NUMBER LIKE '%{0}%' ", HttpUtility.UrlDecode(Get("STU_NUMBER"))), string.Empty); } if (!string.IsNullOrEmpty(Get("STU_NAME"))) { param.Add(string.Format("STU_NAME LIKE '%{0}%' ", HttpUtility.UrlDecode(Get("STU_NAME"))), string.Empty); } if (!string.IsNullOrEmpty(Get("RET_CHANNEL"))) { param.Add("RET_CHANNEL", Get("RET_CHANNEL")); } if (!string.IsNullOrEmpty(Get("DECLARE_TYPE"))) { param.Add("DECLARE_TYPE", Get("DECLARE_TYPE")); } //ZZ 20171107 :新增 if (!user.User_Role.Equals(CValue.ROLE_TYPE_X))//不是校级管理员时,都需要经过勾选过滤 { string strSelectIds = ComHandleClass.getInstance().GetNoRepeatAndNoEmptyStringSql(Get("ids")); if (strSelectIds.Length > 0) { param.Add(string.Format(" OID IN ({0}) ", strSelectIds), string.Empty); } } List <Shoolar_apply_head> applyList = ProjectApplyHandleClass.getInstance().GetApplyHeadList(param); if (applyList == null) { return("查询批量审批奖助申请数据出错!"); } #endregion 获得批量审核数据集合 #region 批量审批 int nSuccess = 0; string strFlag = Get("flag"); foreach (Shoolar_apply_head head in applyList) { #region 审核操作 if (head == null) { continue; } string strMsg = WKF_ExternalInterface.getInstance().ChkAudit(head.DOC_TYPE, head.SEQ_NO, user.User_Role); if (strMsg.Length > 0) { continue; } Shoolar_project_head project_head = ProjectSettingHandleClass.getInstance().GetProjectHead(head.PROJECT_SEQ_NO); if (project_head == null) { continue; } #region 过了项目申请结束时间,学生、辅导员、学院都不能操作,校级可以审批操作 //ZZ 20171221 新增:过了项目申请结束时间,学生、辅导员、学院都不能操作,校级可以审批操作 if (!ProjectSettingHandleClass.getInstance().CheckIsFitApplyDate(project_head.APPLY_END, user.User_Role)) { continue; } #endregion 过了项目申请结束时间,学生、辅导员、学院都不能操作,校级可以审批操作 #region 申请人数限制放在院级审核的时候,并且再次用条件进行校验 if (user.User_Role.Equals(CValue.ROLE_TYPE_Y) && strFlag.Equals("P")) { //ZZ 20171114 新增:申请人数限制放在院级审核的时候,并且再次用条件进行校验 Basic_stu_info stu_info = StuHandleClass.getInstance().GetStuInfo_Obj(head.STU_NUMBER); if (stu_info == null || project_head == null) { continue; } #region 再次校验申请条件 //再次校验申请条件 if (!ProjectApplyHandleClass.getInstance().CheckProjectLimit(stu_info, project_head, out strMsg)) { //发送消息 Dictionary <string, string> dicAccpter = new Dictionary <string, string>(); dicAccpter.Add(head.STU_NUMBER, head.STU_NAME); string strMsgContent = string.Format("您好!您的{0}奖助申请不符合该项目申请条件({1}),该奖助申请数据已被退回预录入状态,望您悉知,谢谢!", head.PROJECT_NAME, strMsg); string strMessageMsg = string.Empty; MessgeHandleClass.getInstance().SendMessge(CValue.MSG_TYPE_M, strMsgContent, user.User_Id, user.User_Name, dicAccpter, out strMessageMsg); ////记录日志(屏蔽:不删除之后 不需要记录操作日志,因为已经写入了 审批流程日志中) //LogDBHandleClass.getInstance().LogOperation(head.SEQ_NO, "奖助院级审核", CValue.LOG_ACTION_TYPE_6, CValue.LOG_RECORD_TYPE_1, string.Format("删除:学号{0}姓名{1} 不满足奖助[{2}]申请条件:{3}", head.STU_NUMBER, head.STU_NAME, head.PROJECT_NAME, strMsg), user.User_Id, user.User_Name, user.UserLoginIP); //20171121 ZZ 屏蔽:物理删除数据不合理,修改成 变成预录入 //删除数据 //ProjectApplyHandleClass.getInstance().DeleteProjectApplyData(head.SEQ_NO); ProjectApplyHandleClass.getInstance().TurnBackApplyToRetchannelA0000(head.SEQ_NO, CValue.STEP_D2, CValue.RET_CHANNEL_D2020, CValue.ROLE_TYPE_Y, user.User_Name, strMsg); continue; } if (!ProjectApplyHandleClass.getInstance().CheckProjectNotBoth(stu_info, project_head, out strMsg)) { //发送消息 Dictionary <string, string> dicAccpter = new Dictionary <string, string>(); dicAccpter.Add(head.STU_NUMBER, head.STU_NAME); string strMsgContent = string.Format("您好!您的{0}奖助申请不符合该项目申请条件({1}),该奖助申请数据已被退回预录入状态,望您悉知,谢谢!", head.PROJECT_NAME, strMsg); string strMessageMsg = string.Empty; MessgeHandleClass.getInstance().SendMessge(CValue.MSG_TYPE_M, strMsgContent, user.User_Id, user.User_Name, dicAccpter, out strMessageMsg); ////记录日志(屏蔽:不删除之后 不需要记录操作日志,因为已经写入了 审批流程日志中) //LogDBHandleClass.getInstance().LogOperation(head.SEQ_NO, "奖助院级审核", CValue.LOG_ACTION_TYPE_6, CValue.LOG_RECORD_TYPE_1, string.Format("删除:学号{0}姓名{1} 不满足奖助[{2}]申请条件:{3}", head.STU_NUMBER, head.STU_NAME, head.PROJECT_NAME, strMsg), user.User_Id, user.User_Name, user.UserLoginIP); //20171121 ZZ 屏蔽:物理删除数据不合理,修改成 变成预录入 //删除数据 //ProjectApplyHandleClass.getInstance().DeleteProjectApplyData(head.SEQ_NO); ProjectApplyHandleClass.getInstance().TurnBackApplyToRetchannelA0000(head.SEQ_NO, CValue.STEP_D2, CValue.RET_CHANNEL_D2020, CValue.ROLE_TYPE_Y, user.User_Name, strMsg); continue; } #endregion 再次校验申请条件 #region 申请人数已满 //由于审核流转需要1秒,等待一秒之后再查询更准确。 Thread.Sleep(1000); //申请人数已满 if (!ProjectApplyHandleClass.getInstance().CheckProjectNum(stu_info, project_head, out strMsg)) { LogDBHandleClass.getInstance().LogOperation(head.SEQ_NO, "奖助院级审核", CValue.LOG_ACTION_TYPE_6, CValue.LOG_RECORD_TYPE_1, string.Format("学号{0}姓名{1} 不满足奖助[{2}]申请条件:{3}", head.STU_NUMBER, head.STU_NAME, head.PROJECT_NAME, strMsg), user.User_Id, user.User_Name, user.UserLoginIP); Dictionary <string, string> param_projectnum = new Dictionary <string, string>(); param_projectnum.Add("SEQ_NO", project_head.SEQ_NO); param_projectnum.Add("XY", stu_info.COLLEGE); List <Shoolar_project_num> projectNum = ProjectSettingHandleClass.getInstance().GetProjectNum(param_projectnum); return(string.Format("审核失败,原因:已超出{0}学院所获得的该项目名额人数{1}人!", cod.GetDDLTextByValue("ddl_department", projectNum[0].XY), projectNum[0].APPLY_NUM)); } #endregion 申请人数已满 } #endregion 申请人数限制放在院级审核的时候,并且再次用条件进行校验 strMsg = string.Empty; string strOpNote = string.Format("{0}在{1}操作:奖助申请批量审批{2}", user.User_Id, GetDateLongFormater(), strFlag.Equals("P") ? "通过" : "不通过"); if (!WKF_ExternalInterface.getInstance().WKF_Audit(head.DOC_TYPE, head.SEQ_NO, user.User_Id, user.User_Role, strFlag, strOpNote, out strMsg)) { LogDBHandleClass.getInstance().LogException(CValue.LOG_LEVEL_ERROR, strMsg); } #endregion 审核操作 #region 审批通过之后给申请人发送信息 //审批通过之后给申请人发送信息 string strFinalPosCode = WKF_AuditHandleCLass.getInstance().GetFinalPosCode(head.DOC_TYPE); if (!string.IsNullOrEmpty(strFinalPosCode)) { if (strFinalPosCode == user.User_Role) { string strApproveInfo = string.Empty; if (strFlag.ToString().Equals("P")) { strApproveInfo = "审批通过"; } else { strApproveInfo = "审批不通过"; } string strMsgContent = "奖助申请:" + head.PROJECT_NAME + strApproveInfo; Dictionary <string, string> dicAccpter = new Dictionary <string, string>(); dicAccpter.Add(head.STU_NUMBER, head.STU_NAME); MessgeHandleClass.getInstance().SendMessge("M", strMsgContent, user.User_Id, user.User_Name, dicAccpter, out strMsg); } } #endregion 审批通过之后给申请人发送信息 #region 由于是批量审核,没有弹出相应的审核界面,所以需要更新奖助默认审核信息 //由于是批量审核,没有弹出相应的审核界面,所以需要更新奖助默认审核信息 if (strFlag.Equals("P")) { string strApproveMsg = ProjectApplyHandleClass.getInstance().GetApproveDefaultInfo(head.PROJECT_NAME, head.PROJECT_TYPE, user.User_Role); string strComMsg = ProjectApplyHandleClass.getInstance().GetApproveDefaultInfo(head.PROJECT_NAME, head.PROJECT_TYPE, user.User_Role); ProjectApplyHandleClass.getInstance().ApproveData_UpTxt(head.SEQ_NO, head.PROJECT_TYPE, user.User_Role, strApproveMsg, strComMsg); nSuccess++; } #endregion 由于是批量审核,没有弹出相应的审核界面,所以需要更新奖助默认审核信息 } #endregion 批量审批 return(string.Empty); } catch (Exception ex) { LogDBHandleClass.getInstance().LogException(CValue.LOG_LEVEL_ERROR, "奖助批量审批出错:" + ex.ToString()); return("批量审批失败!"); } }