/// <summary> /// 插入生活补贴类 /// </summary> /// <param name="project"></param> /// <param name="strStuType"></param> private void InsertIntoLifeApplyData(Shoolar_project_head project, string strStuType) { if (strStuType.Contains("Y")) { strStuType += ",P"; } Dictionary <string, string> param = new Dictionary <string, string>(); param.Add(string.Format(" STUTYPE IN ({0}) ", ComHandleClass.getInstance().GetNoRepeatAndNoEmptyStringSql(strStuType)), string.Empty); List <Basic_stu_info> stuList = StuHandleClass.getInstance().GetStuInfoArray(param); if (stuList == null) { return; } foreach (Basic_stu_info stu in stuList) { if (stu == null) { continue; } //删除重复数据,再插入 string strDelHead = string.Format("DELETE FROM SHOOLAR_APPLY_HEAD WHERE PROJECT_SEQ_NO = '{0}' AND STU_NUMBER = '{1}' ", project.SEQ_NO, stu.NUMBER); ds.ExecuteTxtNonQuery(strDelHead); Shoolar_apply_head head = InsertIntoApplyHead(project, stu); //删除重复数据,再插入 string strDelChk = string.Format("DELETE FROM SHOOLAR_APPLY_CHECK WHERE SEQ_NO = '{0}' ", head.SEQ_NO); ds.ExecuteTxtNonQuery(strDelChk); ProjectCheckHandleClass.getInstance().InsertIntoCheckInfo(head.SEQ_NO, head.STU_IDCARDNO, head.STU_BANKCODE); } }
/// <summary> /// COUNTRY_FIRST 国家一等助学金:表13 /// COUNTRY_SECOND 国家二等助学金:表14 /// SOCIETY_OFFER 社会捐资类奖学金:表16 /// </summary> /// <param name="txt"></param> /// <param name="rewardList"></param> /// <returns></returns> private string Check_13_14_16(Shoolar_apply_head head, Shoolar_apply_txt txt, List <Shoolar_apply_study_list> studyList, List <Shoolar_apply_family_list> familyList) { #region 校验“申请理由”字数 if (txt == null) { return("不满足提交条件:申请理由字数太少!"); } if (txt.APPLY_REASON.Length < 200) { return("不满足提交条件:申请理由字数太少!"); } #endregion 校验“申请理由”字数 #region 校验家庭成员 if (familyList == null) { return("不满足提交条件:家庭成员未填写!"); } if (familyList.Count <= 0) { return("不满足提交条件:家庭成员未填写!"); } #endregion 校验家庭成员 #region 校验科目成绩(需填写) if (head.PROJECT_TYPE.Equals("SOCIETY_OFFER")) { if (head.STU_TYPE.Equals(CValue.USER_STUTYPE_B)) { if (studyList == null) { return("不满足提交条件:科目成绩未填写!"); } if (studyList.Count == 0) { return("不满足提交条件:科目成绩未填写!"); } //ZZ 20171026 新增:成绩设至少填4项,最多21项,样板表格设置的是一列7行,共三列。 if (studyList.Count < 4 || studyList.Count > 21) { return("不满足提交条件:科目成绩至少填4项,最多21项!"); } } } #endregion 校验科目成绩(需填写) return(string.Empty); }
/// <summary> /// 提交数据 /// </summary> /// <returns></returns> private string SubmitData() { try { #region 基础校验 if (string.IsNullOrEmpty(Get("id"))) { return("请先保存数据之后再进行提交!"); } Shoolar_apply_head head = new Shoolar_apply_head(); head.OID = Get("id"); ds.RetrieveObject(head); if (head == null) { return("读取奖助申请信息出错,不允许提交!"); } #endregion 基础校验 string strMsg = string.Empty; string strOpNotes = string.Format("提交奖助申请操作"); if (!WKF_ExternalInterface.getInstance().WKF_BusDeclare(head.DOC_TYPE, head.SEQ_NO, user.User_Id, user.User_Role, strOpNotes, out strMsg)) { return(strMsg); } #region 往信息核对表中插入一条记录 //首先判断是否已经存在数据,已经存在不需要再次插入 string strSql = string.Format("SELECT COUNT(1) AS COUNT_NUM FROM SHOOLAR_APPLY_CHECK WHERE SEQ_NO = '{0}' ", head.SEQ_NO); int nCount = cod.ChangeInt(ds.ExecuteTxtScalar(strSql).ToString()); if (nCount == 0) { //提交成功之后,往信息核对表中插入一条记录 ProjectCheckHandleClass.getInstance().InsertIntoCheckInfo(head.SEQ_NO, head.STU_IDCARDNO, head.STU_BANKCODE); } #endregion 往信息核对表中插入一条记录 #region 申请时,插入一条文档编号 ComHandleClass.getInstance().InsertIntoBasicStuWordNo(head.STU_NUMBER, head.PROJECT_YEAR); #endregion 申请时,插入一条文档编号 return(string.Empty); } catch (Exception ex) { LogDBHandleClass.getInstance().LogException(CValue.LOG_LEVEL_ERROR, "提交奖助申请信息,出错:" + ex.ToString()); return("提交失败!"); } }
/// <summary> /// 往奖助申报表中插入数据 /// </summary> /// <param name="project"></param> private Shoolar_apply_head InsertIntoApplyHead(Shoolar_project_head project, Basic_stu_info stu) { Shoolar_apply_head head = new Shoolar_apply_head(); head.OID = Guid.NewGuid().ToString(); head.SEQ_NO = BusDataDeclareTransaction.getInstance().GetSeq_no(CValue.DOC_TYPE_BDM03); head.RET_CHANNEL = CValue.RET_CHANNEL_D4000; head.CHK_STATUS = CValue.CHK_STATUS_N; head.DOC_TYPE = CValue.DOC_TYPE_BDM03; head.CHK_TIME = GetDateLongFormater(); head.DECL_TIME = GetDateLongFormater(); head.DECLARE_TYPE = CValue.DECLARE_TYPE_D; #region 项目信息 head.PROJECT_SEQ_NO = project.SEQ_NO; head.PROJECT_CLASS = project.PROJECT_CLASS; head.PROJECT_TYPE = project.PROJECT_TYPE; head.PROJECT_YEAR = project.APPLY_YEAR; head.PROJECT_NAME = project.PROJECT_NAME; head.PROJECT_MONEY = project.PROJECT_MONEY; #endregion 项目信息 #region 保存学生信息 //学生信息 head.STU_NUMBER = stu.NUMBER; head.STU_NAME = stu.NAME; //学生信息 if (stu.STUTYPE.Equals(CValue.USER_STUTYPE_B)) { head.STU_TYPE = CValue.USER_STUTYPE_B; } else { head.STU_TYPE = CValue.USER_STUTYPE_Y; } head.XY = stu.COLLEGE; head.ZY = stu.MAJOR; head.GRADE = stu.EDULENTH; head.CLASS_CODE = stu.CLASS; head.STU_IDCARDNO = stu.IDCARDNO; head.STU_BANKCODE = StuHandleClass.getInstance().ByStuNoGetBankCode(head.STU_NUMBER); #endregion 保存学生信息 ds.UpdateObject(head); return(head); }
/// <summary> /// 获得页面数据 /// </summary> /// <param name="model"></param> private void GetPageValue(Shoolar_apply_head model) { //录入信息 model.POST_INFO = Post("POST_INFO"); model.REWARD_FLAG = Post("REWARD_FLAG"); model.STUDY_LEVEL = Post("STUDY_LEVEL"); model.TRAIN_TYPE = Post("TRAIN_TYPE"); model.HARD_FOR = Post("HARD_FOR"); model.BASIC_UNIT = Post("BASIC_UNIT"); //公共字段 model.DECL_TIME = GetDateLongFormater(); model.OP_CODE = user.User_Id; model.OP_NAME = user.User_Name; model.OP_TIME = GetDateLongFormater(); }
/// <summary> /// 绑定界面信息 /// </summary> protected void Bind() { string OID = Request.QueryString["id"]; if (!string.IsNullOrEmpty(OID)) { head.OID = OID; ds.RetrieveObject(head); Dictionary <string, string> param = new Dictionary <string, string>(); param.Add("SEQ_NO", head.SEQ_NO); Shoolar_apply_head apply_head = ProjectApplyHandleClass.getInstance().GetApplyHeadInfo(param); strPrintCode = ComHandleClass.getInstance().GetStuWorNo(apply_head.STU_NUMBER, apply_head.PROJECT_YEAR); img_url = head.FILE_DIRECTORY + "/" + head.FILE_SAVE_NAME; } }
/// <summary> /// 通过奖助类型判断检查内容 /// </summary> /// <param name="strProjectType"></param> /// <param name="txt"></param> /// <param name="rewardList"></param> /// <returns></returns> private string ByProjectTypeCheckInfo(Shoolar_apply_head head, Shoolar_apply_txt txt, List <Shoolar_apply_reward> rewardList, List <Shoolar_apply_study_list> studyList, List <Shoolar_apply_family_list> familyList, List <Shoolar_apply_file> fileList, List <Shoolar_apply_file> fileList_photo) { string strResult = string.Empty; switch (head.PROJECT_TYPE) { case "COUNTRY_B": //国家奖学金(本科):表11+1,11+2 strResult = Check_11(txt, fileList, fileList_photo); break; case "COUNTRY_ENCOUR": //国家励志奖学金:表12 case "AREA_GOV": //自治区人民政府奖学金:表15 strResult = Check_12_15(head, txt, studyList, familyList); break; case "COUNTRY_FIRST": //国家一等助学金:表13 case "COUNTRY_SECOND": //国家二等助学金:表14 case "SOCIETY_OFFER": //社会捐资类奖学金:表16 strResult = Check_13_14_16(head, txt, studyList, familyList); break; case "SCHOOL_GOOD": //三好学生:表17+1 case "SCHOOL_MODEL": //三好学生标兵:表17+1,17+2,17+3 strResult = Check_17(head, txt, studyList, fileList, fileList_photo); break; case "SCHOOL_SINGLE": //单项奖学金:表18 strResult = Check_18(txt); break; case "COUNTRY_YP": //国家奖学金(研究生):表19+1,19+2 case "COUNTRY_STUDY": //国家学业奖学金:表20 case "SCHOOL_NOTCOUNTRY": //非学校级奖学金:表21 case "SOCIETY_NOCOUNTRY": //非社会级奖学金:表21 strResult = Check_19_20_21(head, txt, studyList, fileList, fileList_photo); break; default: break; } return(strResult); }
/// <summary> /// 判断是否具有审批权限 /// </summary> private void ChkAudit() { if (string.IsNullOrEmpty(Get("id"))) { return; } Shoolar_apply_head head = new Shoolar_apply_head(); head.OID = Get("id").ToString(); ds.RetrieveObject(head); if (head == null) { return; } //判断是否可以审批 if (WKF_ExternalInterface.getInstance().ChkAudit(head.DOC_TYPE, head.SEQ_NO, user.User_Role).Length == 0) { m_strIsShowAuditBtn = "true"; } }
/// <summary> /// 获得默认审核信息 /// </summary> /// <returns></returns> private string GetApproveDefaultInfo() { #region 获得奖助申请信息 if (string.IsNullOrEmpty(Get("id"))) { return("奖助申请主键不能为空!"); } Shoolar_apply_head head = new Shoolar_apply_head(); head.OID = Get("id").ToString(); ds.RetrieveObject(head); if (head == null) { return("奖助申请信息为空!"); } #endregion 获得奖助申请信息 return(ProjectApplyHandleClass.getInstance().GetApproveDefaultInfo(head.PROJECT_NAME, head.PROJECT_TYPE, user.User_Role)); }
/// <summary> /// 批量确认核对信息 /// </summary> /// <returns></returns> private string MultiCheck() { try { DataTable dtMultiCheck = GetMultiCheckData(); if (dtMultiCheck == null) { return("批量核对失败:批量核对数据读取失败!"); } int nSuccessNum = 0; int nFailNum = 0; foreach (DataRow row in dtMultiCheck.Rows) { #region 筛选可以核对信息的数据 //筛选可以核对信息的数据 if (row == null) { continue; } string strMsg = string.Empty; if (!ProjectCheckHandleClass.getInstance().IsCanCheck(row["OID"].ToString(), user.User_Role, "multi", out strMsg)) { nFailNum++; continue; } #endregion 筛选可以核对信息的数据 #region 更新核对信息 Shoolar_apply_head head = new Shoolar_apply_head(); head.OID = row["OID"].ToString(); ds.RetrieveObject(head); if (head == null) { continue; } Shoolar_apply_check check = ProjectCheckHandleClass.getInstance().GetApplyCheckInfo(head.SEQ_NO); check.OID = check.OID; ds.RetrieveObject(check); #region 批量核对时,也需要校验学生核对情况 if (head.PROJECT_CLASS.Equals("LIFE")) { //学生需要有饭卡号,银行卡号才可以核对通过 if (StuHandleClass.getInstance().ByStuNoGetRiceCard(head.STU_NUMBER).Length == 0) { nFailNum++; continue; } if (check.OLD_BANKCODE.Length == 0 && check.NEW_BANKCODE.Length == 0) { nFailNum++; continue; } } else { //学生需要有银行卡号,身份证号 才可以核对通过 if (check.OLD_BANKCODE.Length == 0 && check.NEW_BANKCODE.Length == 0) { nFailNum++; continue; } if (check.OLD_IDCARDNO.Length == 0 && check.NEW_IDCARDNO.Length == 0) { nFailNum++; continue; } } #endregion 批量核对时,也需要校验学生核对情况 switch (user.User_Role) { case "F": //辅导员 check.CHECK_STEP = "2"; //辅导员已核对 check.F_CHECK_CODE = user.User_Id; check.F_CHECK_NAME = user.User_Name; check.F_CHECK_TIME = GetDateLongFormater(); break; case "Y": //学院 check.CHECK_STEP = "3"; //学院已核对 check.Y_CHECK_CODE = user.User_Id; check.Y_CHECK_NAME = user.User_Name; check.Y_CHECK_TIME = GetDateLongFormater(); break; } ds.UpdateObject(check); nSuccessNum++; #endregion 更新核对信息 #region 步学生信息中的银行卡与身份证号,修改成核对后的数据 if (check.CHECK_STEP.Equals("3")) { #region 银行卡 if (check.NEW_BANKCODE.Length > 0) { head.STU_BANKCODE = check.NEW_BANKCODE; //更新至学生银行卡信息中的银行卡号 string strSqlBank = string.Format("UPDATE BASIC_STU_BANK_INFO SET BANKCODE = '{0}' WHERE NUMBER = '{1}' ", head.STU_BANKCODE, head.STU_NUMBER); ds.ExecuteTxtNonQuery(strSqlBank); } #endregion 银行卡 #region 身份证 if (check.NEW_IDCARDNO.Length > 0) { head.STU_IDCARDNO = check.NEW_IDCARDNO; //更新至学生信息中的身份证号 string strSqlID = string.Format("UPDATE BASIC_STU_INFO SET IDCARDNO = '{0}' WHERE NUMBER = '{1}' ", head.STU_IDCARDNO, head.STU_NUMBER); ds.ExecuteTxtNonQuery(strSqlID); } #endregion 身份证 ds.UpdateObject(head); } #endregion 步学生信息中的银行卡与身份证号,修改成核对后的数据 } return(string.Format("批量核对成功:生效{0}条记录,不生效{1}条记录。", nSuccessNum, nFailNum)); } catch (Exception ex) { LogDBHandleClass.getInstance().LogException(CValue.LOG_LEVEL_ERROR, "批量审批奖助核对失败:" + ex.ToString()); return("批量核对失败!"); } }
/// <summary> /// 保存数据 /// </summary> /// <returns></returns> private string SaveData() { bool bFlag = false; //新增 Shoolar_apply_check head = new Shoolar_apply_check(); if (string.IsNullOrEmpty(Post("CHECK_OID"))) { head.OID = Guid.NewGuid().ToString(); ds.RetrieveObject(head); head.SEQ_NO = Post("hidApplySeqNo"); GetFormValue(head); var inserttrcn = ImplementFactory.GetInsertTransaction <Shoolar_apply_check>("Shoolar_apply_checkInsertTransaction", user.User_Name); inserttrcn.EntityList.Add(head); if (inserttrcn.Commit()) { bFlag = true; } } else //修改 { head.OID = Post("CHECK_OID"); ds.RetrieveObject(head); GetFormValue(head); var updatetrcn = ImplementFactory.GetUpdateTransaction <Shoolar_apply_check>("Shoolar_apply_checkUpdateTransaction", user.User_Name); if (updatetrcn.Commit(head)) { bFlag = true; } } if (bFlag) { #region 保存成功之后,修改的 学生信息 同步更新至学生个人信息中 //ZZ 20171213 修改:保存成功之后,修改的 手机号 同步更新至学生个人信息中 Dictionary <string, string> param = new Dictionary <string, string>(); param.Add("SEQ_NO", head.SEQ_NO); Shoolar_apply_head apply = ProjectApplyHandleClass.getInstance().GetApplyHeadInfo(param); if (apply != null) { //手机号 if (!string.IsNullOrWhiteSpace(Post("STU_PHONE"))) { StuHandleClass.getInstance().ByStuNumberUpStuInfo_Phone(apply.STU_NUMBER, Post("STU_PHONE")); } //ZZ 20180319 修改:保存成功之后,修改的 学籍状态以及异动时间 同步更新至学生个人信息中 if (!string.IsNullOrWhiteSpace(Post("STU_REGISTER"))) { StuHandleClass.getInstance().ByStuNumberUpStuInfo_Register(apply.STU_NUMBER, Post("STU_REGISTER")); } if (!string.IsNullOrWhiteSpace(Post("STU_DIFFDATE"))) { StuHandleClass.getInstance().ByStuNumberUpStuInfo_DiffDate(apply.STU_NUMBER, Post("STU_DIFFDATE")); } if (!string.IsNullOrWhiteSpace(Post("STU_RICE_CARD"))) { StuHandleClass.getInstance().ByStuNumberUpStuInfo_RiceCard(apply.STU_NUMBER, Post("STU_RICE_CARD")); } } #endregion 保存成功之后,修改的 学生信息 同步更新至学生个人信息中 return(string.Empty); } else { return("保存核对信息失败!"); } }
/// <summary> /// COUNTRY_YP 国家奖学金(研究生):表19+1,19+2 /// COUNTRY_STUDY 国家学业奖学金:表20 /// SCHOOL_NOTCOUNTRY 非学校级奖学金:表21 /// SOCIETY_NOCOUNTRY 非社会级奖学金:表21 /// </summary> /// <param name="txt"></param> /// <param name="rewardList"></param> /// <returns></returns> private string Check_19_20_21(Shoolar_apply_head head, Shoolar_apply_txt txt, List <Shoolar_apply_study_list> studyList, List <Shoolar_apply_file> fileList, List <Shoolar_apply_file> fileList_photo) { #region 校验“申请理由”字数 if (txt == null) { return("不满足提交条件:申请理由字数太少!"); } if (txt.APPLY_REASON.Length < 200) { return("不满足提交条件:申请理由字数太少!"); } #endregion 校验“申请理由”字数 #region 校验科目成绩(需填写) if (head.STU_TYPE.Equals(CValue.USER_STUTYPE_B)) { if (studyList == null) { return("不满足提交条件:科目成绩未填写!"); } if (studyList.Count == 0) { return("不满足提交条件:科目成绩未填写!"); } //ZZ 20171026 新增:成绩设至少填4项,最多21项,样板表格设置的是一列7行,共三列。 if (studyList.Count < 4 || studyList.Count > 21) { return("不满足提交条件:科目成绩至少填4项,最多21项!"); } } #endregion 校验科目成绩(需填写) if (head.PROJECT_TYPE.Equals("COUNTRY_YP")) { #region 校验附件 if (fileList == null) { return("不满足提交条件:未上传附件!"); } if (fileList.Count == 0) { return("不满足提交条件:未上传附件!"); } #endregion 校验附件 #region 校验个人生活照 if (fileList_photo == null) { return("不满足提交条件:未上传个人生活照附件!"); } if (fileList_photo.Count == 0) { return("不满足提交条件:未上传个人生活照附件!"); } #endregion 校验个人生活照 } return(string.Empty); }
/// <summary> /// SCHOOL_GOOD 三好学生:表17+1 /// SCHOOL_MODEL 三好学生标兵:表17+1,17+2,17+3 /// </summary> /// <param name="txt"></param> /// <param name="rewardList"></param> /// <returns></returns> private string Check_17(Shoolar_apply_head head, Shoolar_apply_txt txt, List <Shoolar_apply_study_list> studyList, List <Shoolar_apply_file> fileList, List <Shoolar_apply_file> fileList_photo) { #region 校验“政治思想、纪律、体育锻炼表现”字数 if (txt == null) { return("不满足提交条件:政治思想、纪律、体育锻炼表现字数太少!"); } if (txt.APPLY_REASON.Length < 200) { return("不满足提交条件:政治思想、纪律、体育锻炼表现字数太少!"); } #endregion 校验“政治思想、纪律、体育锻炼表现”字数 #region 校验科目成绩(需填写) if (head.STU_TYPE.Equals(CValue.USER_STUTYPE_B)) { if (studyList == null) { return("不满足提交条件:科目成绩未填写!"); } if (studyList.Count == 0) { return("不满足提交条件:科目成绩未填写!"); } //ZZ 20171026 新增:成绩设至少填4项,最多21项,样板表格设置的是一列7行,共三列。 if (studyList.Count < 4 || studyList.Count > 21) { return("不满足提交条件:科目成绩至少填4项,最多21项!"); } } #endregion 校验科目成绩(需填写) if (head.PROJECT_TYPE.Equals("SCHOOL_MODEL")) { #region 校验附件 if (fileList == null) { return("不满足提交条件:未上传附件!"); } if (fileList.Count == 0) { return("不满足提交条件:未上传附件!"); } #endregion 校验附件 #region 校验个人生活照 if (fileList_photo == null) { return("不满足提交条件:未上传个人生活照附件!"); } if (fileList_photo.Count == 0) { return("不满足提交条件:未上传个人生活照附件!"); } #endregion 校验个人生活照 //ZZ20171026 新增:先进事迹 字数校验 #region 校验先进事迹 if (txt.MOTTO.Length < 0) { return("不满足提交条件:人生格言字数太少!"); } if (txt.TEACHER_INFO.Length < 0) { return("不满足提交条件:师长点评字数太少!"); } if (txt.MODEL_INFO.Length < 1000) { return("不满足提交条件:事迹正文字数太少!"); } #endregion 校验先进事迹 } return(string.Empty); }
/// <summary> /// 判断是否满足提交条件 /// </summary> /// <returns></returns> private string ChkIsCanSubmit() { try { #region 基础校验 if (string.IsNullOrEmpty(Get("id"))) { return("请先保存数据之后再进行提交!"); } Shoolar_apply_head head = new Shoolar_apply_head(); head.OID = Get("id"); ds.RetrieveObject(head); if (head == null) { return("读取奖助申请信息出错,不允许提交!"); } #endregion 基础校验 //20171121 ZZ 新增:在提交之前再次进行一次申请条件校验(人数不用放在这里校验,还是到院级审批) #region 申请条件校验 Basic_stu_info stu_info = StuHandleClass.getInstance().GetStuInfo_Obj(head.STU_NUMBER); Shoolar_project_head project_head = ProjectSettingHandleClass.getInstance().GetProjectHead(head.PROJECT_SEQ_NO); if (stu_info == null || project_head == null) { return("删除失败,原因:学生信息为空或者奖助项目信息为空!"); } string strMsg = string.Empty; #region 项目限制条件 if (!ProjectApplyHandleClass.getInstance().CheckProjectLimit(stu_info, project_head, out strMsg)) { return(strMsg); } #endregion 项目限制条件 #region 可兼得条件 if (!ProjectApplyHandleClass.getInstance().CheckProjectNotBoth(stu_info, project_head, out strMsg)) { return(strMsg); } #endregion 可兼得条件 #endregion 申请条件校验 #region 参数设置 Dictionary <string, string> param = new Dictionary <string, string>(); param.Add("SEQ_NO", head.SEQ_NO); Dictionary <string, string> param_file = new Dictionary <string, string>(); param_file.Add("SEQ_NO", head.SEQ_NO); param_file.Add("FILE_TYPE != '6' ", string.Empty);//附件 Dictionary <string, string> param_file_photo = new Dictionary <string, string>(); param_file_photo.Add("SEQ_NO", head.SEQ_NO); param_file_photo.Add("FILE_TYPE = '6' ", string.Empty);//附件:个人生活照 Shoolar_apply_txt txt = ProjectApplyHandleClass.getInstance().GetTxtInfo(head.SEQ_NO); List <Shoolar_apply_reward> rewardList = ProjectApplyHandleClass.getInstance().GetRewardListInfo(param); //系统限制条件改为,本科生限制不变(需填写4-21门),研究生不限制填写条数。 List <Shoolar_apply_study_list> studyList = ProjectApplyHandleClass.getInstance().GetStudyListInfo(param); List <Shoolar_apply_family_list> familyList = ProjectApplyHandleClass.getInstance().GetFamilyListInfo(param); List <Shoolar_apply_file> fileList = ProjectApplyHandleClass.getInstance().GetFileListInfo(param_file); //国奖和三好学生标兵需要在系统上传生活照,学校宣传用。 List <Shoolar_apply_file> fileList_photo = ProjectApplyHandleClass.getInstance().GetFileListInfo(param_file_photo); #endregion 参数设置 return(ByProjectTypeCheckInfo(head, txt, rewardList, studyList, familyList, fileList, fileList_photo)); } catch (Exception ex) { LogDBHandleClass.getInstance().LogException(CValue.LOG_LEVEL_ERROR, "判断是否满足奖助申请提交条件,出错:" + ex.ToString()); return("是否满足提交条件校验出现异常!"); } }
/// <summary> ///保存数据 /// </summary> /// <returns></returns> private string SaveData() { try { bool result = false; Shoolar_apply_head head = new Shoolar_apply_head(); if (string.IsNullOrEmpty(Post("hidOid")))//新增 { head.OID = Guid.NewGuid().ToString(); head.SEQ_NO = BusDataDeclareTransaction.getInstance().GetSeq_no(CValue.DOC_TYPE_BDM03); head.RET_CHANNEL = Ret_Channel_A0000; //预录入 全程通道(回执状态) head.DOC_TYPE = CValue.DOC_TYPE_BDM03; GetPageValue(head); #region 保存项目信息 //项目信息 Dictionary <string, string> param = new Dictionary <string, string>(); if (!string.IsNullOrEmpty(Post("hidProjectSeqNo"))) { param.Add("SEQ_NO", Post("hidProjectSeqNo")); } Shoolar_project_head project = ProjectSettingHandleClass.getInstance().GetProjectList(param)[0]; if (project == null) { LogDBHandleClass.getInstance().LogException(CValue.LOG_LEVEL_ERROR, string.Format("通过项目单据编号{0},读取项目信息出错!", Post("hidProjectSeqNo"))); return(string.Empty); } head.PROJECT_SEQ_NO = project.SEQ_NO; head.PROJECT_CLASS = project.PROJECT_CLASS; head.PROJECT_TYPE = project.PROJECT_TYPE; head.PROJECT_YEAR = project.APPLY_YEAR; head.PROJECT_NAME = project.PROJECT_NAME; head.PROJECT_MONEY = project.PROJECT_MONEY; #endregion 保存项目信息 #region 保存学生信息 //学生信息 head.STU_NUMBER = user.User_Id; head.STU_NAME = user.User_Name; Basic_stu_info stuInfo = StuHandleClass.getInstance().GetStuInfo_Obj(head.STU_NUMBER); if (stuInfo == null) { LogDBHandleClass.getInstance().LogException(CValue.LOG_LEVEL_ERROR, string.Format("通过学号{0},读取学生信息出错!", head.STU_NUMBER)); return(string.Empty); } //学生信息 if (stuInfo.STUTYPE.Equals(CValue.USER_STUTYPE_B)) { head.STU_TYPE = CValue.USER_STUTYPE_B; } else { head.STU_TYPE = CValue.USER_STUTYPE_Y; } head.XY = stuInfo.COLLEGE; head.ZY = stuInfo.MAJOR; head.GRADE = stuInfo.EDULENTH; head.CLASS_CODE = stuInfo.CLASS; head.STU_IDCARDNO = stuInfo.IDCARDNO; head.STU_BANKCODE = StuHandleClass.getInstance().ByStuNoGetBankCode(head.STU_NUMBER); #endregion 保存学生信息 var inserttrcn = ImplementFactory.GetInsertTransaction <Shoolar_apply_head>("Shoolar_apply_headInsertTransaction"); inserttrcn.EntityList.Add(head); result = inserttrcn.Commit(); if (result) { #region 步其他信息数据 //ZZ 20171125 新增:同步学生其他信息,因为在保存之前这些数据是还没有录入的 可以直接同步 #region 家庭情况 string strSynchroMsg = string.Empty; ProjectApplyHandleClass.getInstance().InsertInto_apply_family(head.SEQ_NO, out strSynchroMsg); if (strSynchroMsg.Length > 0) { LogDBHandleClass.getInstance().LogException(CValue.LOG_LEVEL_ERROR, "奖助申请保存时,同步家庭情况出错:" + strSynchroMsg); } #endregion 家庭情况 #region 学习情况 ProjectApplyHandleClass.getInstance().InsertInto_apply_score(head.SEQ_NO, out strSynchroMsg); if (strSynchroMsg.Length > 0) { LogDBHandleClass.getInstance().LogException(CValue.LOG_LEVEL_ERROR, "奖助申请保存时,同步学习情况出错:" + strSynchroMsg); } #endregion 学习情况 #region 获奖情况 ProjectApplyHandleClass.getInstance().InsertInto_apply_reward(head.SEQ_NO, out strSynchroMsg); if (strSynchroMsg.Length > 0) { LogDBHandleClass.getInstance().LogException(CValue.LOG_LEVEL_ERROR, "奖助申请保存时,同步获奖情况出错:" + strSynchroMsg); } #endregion 获奖情况 #endregion 步其他信息数据 } } else//修改 { head.OID = Post("hidOid"); ds.RetrieveObject(head); GetPageValue(head); var updatetrcn = ImplementFactory.GetUpdateTransaction <Shoolar_apply_head>("Shoolar_apply_headUpdateTransaction", user.User_Name); result = updatetrcn.Commit(head); } if (result) { StringBuilder json = new StringBuilder();//用来存放Json的 json.Append("{"); json.Append(Json.StringToJson(head.OID, "OID")); json.Append(","); json.Append(Json.StringToJson(head.SEQ_NO, "SEQ_NO")); json.Append(","); json.Append(Json.StringToJson(head.PROJECT_SEQ_NO, "PROJECT_SEQ_NO")); json.Append("}"); return(json.ToString()); }//保存成功 返回JSON else { return(string.Empty); } } catch (Exception ex) { LogDBHandleClass.getInstance().LogException(CValue.LOG_LEVEL_ERROR, "保存奖助申请,出错:" + ex.ToString()); return(string.Empty); } }
/// <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("提交审核信息失败!"); } }