Ejemplo n.º 1
0
        /// <summary>
        /// 获得相应的奖助项目数据
        /// </summary>
        /// <returns></returns>
        private string GetProjectData()
        {
            if (string.IsNullOrEmpty(Get("project_seq_no")))
            {
                return("{}");
            }
            Dictionary <string, string> param = new Dictionary <string, string>();

            param.Add("SEQ_NO", Get("project_seq_no"));
            Shoolar_project_head head = ProjectSettingHandleClass.getInstance().GetProjectHead(param);

            if (head == null)
            {
                return("{}");
            }
            StringBuilder json = new StringBuilder();//用来存放Json的

            json.Append("{");
            json.Append(Json.StringToJson(head.PROJECT_CLASS, "PROJECT_CLASS"));
            json.Append(",");
            json.Append(Json.StringToJson(head.PROJECT_TYPE, "PROJECT_TYPE"));
            json.Append(",");
            json.Append(Json.StringToJson(head.APPLY_YEAR, "PROJECT_YEAR"));
            json.Append(",");
            json.Append(Json.StringToJson(head.PROJECT_MONEY.ToString(), "PROJECT_MONEY"));
            json.Append(",");
            json.Append(Json.StringToJson(head.PROJECT_NAME, "PROJECT_NAME"));
            json.Append("}");
            return(json.ToString());
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 新增/修改操作界面加载
        /// </summary>
        private void InitPage()
        {
            if (string.IsNullOrEmpty(Get("project_seq_no")))
            {
                return;
            }
            Dictionary <string, string> param = new Dictionary <string, string>();

            param.Add("SEQ_NO", Get("project_seq_no"));
            Shoolar_project_head head = ProjectSettingHandleClass.getInstance().GetProjectHead(param);

            if (head == null)
            {
                return;
            }
            if (head.PROJECT_TYPE == "SCHOOL_GOOD" || head.PROJECT_TYPE == "SCHOOL_MODEL")
            {
                m_RewardFlag = "ddl_apply_reward_flag_1";//拟评何种类型(三好学生)
            }
            else if (head.PROJECT_TYPE == "SCHOOL_SINGLE")
            {
                m_RewardFlag = "ddl_apply_reward_flag_2";//拟评何种类型(单项奖学金)
            }
            else
            {
                m_RewardFlag = "ddl_apply_reward_flag";
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 保存数据
        /// </summary>
        /// <returns></returns>
        private string SaveData()
        {
            try
            {
                if (string.IsNullOrEmpty(Post("OID")))
                {
                    return("主键不能为空!");
                }

                Shoolar_project_head model = new Shoolar_project_head();
                model.OID = Post("OID");
                ds.RetrieveObject(model);

                #region 发送信息核对信息

                string strMsgOid = string.Empty;
                if (model.CHECK_MSG_ID.Length == 0)
                {
                    strMsgOid = SendMsg(model.SEQ_NO);
                }
                else
                {
                    //删除相关信息数据
                    string strDelMsgSql      = string.Format("DELETE FROM MESSGE_INFO WHERE OID = '{0}' ", model.CHECK_MSG_ID);
                    string strDelMsg_ListSql = string.Format("DELETE FROM MESSGE_ACCPTER WHERE MSG_OID = '{0}' ", model.CHECK_MSG_ID);
                    ds.ExecuteTxtNonQuery(strDelMsgSql);
                    ds.ExecuteTxtNonQuery(strDelMsg_ListSql);
                    //重新发送信息
                    strMsgOid = SendMsg(model.SEQ_NO);
                }

                #endregion 发送信息核对信息

                #region 保存信息核对

                if (strMsgOid.Length > 0)
                {
                    //清除核对信息
                    model.CHECK_START   = Post("CHECK_START");
                    model.CHECK_END     = Post("CHECK_END");
                    model.CHECK_IS_SEND = CValue.FLAG_Y;
                    model.CHECK_MSG_ID  = strMsgOid;
                    model.CHECK_OP_CODE = user.User_Id;
                    model.CHECK_OP_NAME = user.User_Name;
                    model.CHECK_OP_TIME = GetDateLongFormater();
                    ds.UpdateObject(model);
                }

                #endregion 保存信息核对

                return(string.Empty);
            }
            catch (Exception ex)
            {
                LogDBHandleClass.getInstance().LogException(CValue.LOG_LEVEL_ERROR, "发送信息,奖助核对信息失败:" + ex.ToString());
                return("保存失败!");
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 不符合奖助申请的原因
        /// </summary>
        /// <param name="strSTU_NUMBER"></param>
        /// <param name="strPROJECT_SEQ_NO"></param>
        /// <returns></returns>
        private string GetNotFitLimitRemark(string strSTU_NUMBER, string strPROJECT_SEQ_NO)
        {
            Basic_stu_info       stu_info     = StuHandleClass.getInstance().GetStuInfo_Obj(strSTU_NUMBER);
            Shoolar_project_head project_head = ProjectSettingHandleClass.getInstance().GetProjectHead(strPROJECT_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);
            }
            if (!ProjectApplyHandleClass.getInstance().CheckProjectNotBoth(stu_info, project_head, out strMsg))
            {
                return(strMsg);
            }

            #endregion 再次校验申请条件

            #region 申请人数是否满足

            Dictionary <string, string> param_num = new Dictionary <string, string>();
            param_num.Add("SEQ_NO", project_head.SEQ_NO);
            param_num.Add("XY", stu_info.COLLEGE);
            List <Shoolar_project_num> projectNum = ProjectSettingHandleClass.getInstance().GetProjectNum(param_num);
            if (projectNum == null)
            {
                return(string.Format("项目限制申报人数信息读取失败!"));
            }
            if (projectNum.Count == 0)
            {
                return(string.Empty);
            }

            int nApplyTotalNum = ProjectApplyHandleClass.getInstance().CheckProjectNum_PassedNum(stu_info, project_head);
            if (projectNum[0].APPLY_NUM <= nApplyTotalNum)
            {
                return(strMsg = string.Format("[{0}] 奖助项目 {1} 学院设置的申请人数为 {2} 人,现在学院审核通过人数为 {3} 人,超出了{4} 人。", project_head.PROJECT_NAME, cod.GetDDLTextByValue("ddl_department", stu_info.COLLEGE), projectNum[0].APPLY_NUM, nApplyTotalNum, (nApplyTotalNum - projectNum[0].APPLY_NUM)));
            }

            #endregion 申请人数是否满足

            return(string.Empty);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 校验是否有核对信息
        /// </summary>
        /// <returns></returns>
        private string ChkCheckData()
        {
            if (string.IsNullOrEmpty(Get("id")))
            {
                return("奖助项目主键不能为空!");
            }
            Shoolar_project_head head = new Shoolar_project_head();

            head.OID = Get("id");
            ds.RetrieveObject(head);
            if (head == null)
            {
                return("奖助项目信息不能为空!");
            }
            if (string.IsNullOrEmpty(head.CHECK_START))
            {
                return("奖助项目核对信息未设置,不能发布公告!");
            }
            return(string.Empty);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 判断是否满足操作条件
        /// </summary>
        /// <returns></returns>
        private string ChkIsCanOp()
        {
            if (string.IsNullOrEmpty(Get("project_seq_no")))
            {
                return("选择申请的项目单据编号为空,不允许操作!");
            }

            Shoolar_project_head project_head = ProjectSettingHandleClass.getInstance().GetProjectHead(Get("project_seq_no"));

            if (project_head == null)
            {
                return("选择申请的项目信息为空,不允许操作!");
            }

            if (!ProjectSettingHandleClass.getInstance().CheckIsFitApplyDate(project_head.APPLY_END, user.User_Role))
            {
                return("该项目申请结束日期已过,无法操作!");
            }

            return(string.Empty);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 校验查询的项目名称是否符合
        /// </summary>
        /// <returns></returns>
        private string ChkQuery()
        {
            if (string.IsNullOrWhiteSpace(Get("PROJECT_SEQ_NO")))
            {
                return("项目名称不能为空!");
            }
            Dictionary <string, string> param = new Dictionary <string, string>();

            param.Add("SEQ_NO", Get("PROJECT_SEQ_NO"));
            Shoolar_project_head head = ProjectSettingHandleClass.getInstance().GetProjectHead(param);

            if (head == null)
            {
                return("项目信息不能为空!");
            }
            if (!head.PROJECT_TYPE.Equals("SCHOOL_MODEL"))
            {
                return("项目名称不属于三好学生标兵!");
            }
            return(string.Empty);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 通过传入的主键编码删除数据
        /// </summary>
        /// <returns></returns>
        private string DeleteData()
        {
            try
            {
                if (string.IsNullOrEmpty(Get("id")))
                {
                    return("主键为空,不允许删除操作");
                }

                Shoolar_project_head model = new Shoolar_project_head();
                model.OID = Get("id");
                ds.RetrieveObject(model);
                //删除发布的核对信息
                Messge_info msg = new Messge_info();
                msg.OID = model.CHECK_MSG_ID;
                ds.RetrieveObject(msg);

                var transaction = ImplementFactory.GetDeleteTransaction <Messge_info>("Messge_infoDeleteTransaction");
                transaction.EntityList.Add(msg);
                if (transaction.Commit())
                {
                    //清除核对信息
                    model.CHECK_START   = "";
                    model.CHECK_END     = "";
                    model.CHECK_IS_SEND = "";
                    model.CHECK_MSG_ID  = "";
                    model.CHECK_OP_CODE = "";
                    model.CHECK_OP_NAME = "";
                    model.CHECK_OP_TIME = "";
                    ds.UpdateObject(model);
                }
                return(string.Empty);
            }
            catch (Exception ex)
            {
                LogDBHandleClass.getInstance().LogException(CValue.LOG_LEVEL_ERROR, "删除发布的奖助核对信息失败:" + ex.ToString());
                return("删除失败!");
            }
        }
Ejemplo n.º 9
0
        /// <summary>
        /// 是否符合奖助申请条件
        /// Y符合;N不符合
        /// </summary>
        /// <param name="strSTU_NUMBER"></param>
        /// <param name="strPROJECT_SEQ_NO"></param>
        /// <returns></returns>
        private string GetIsFitLimit(string strSTU_NUMBER, string strPROJECT_SEQ_NO)
        {
            Basic_stu_info       stu_info     = StuHandleClass.getInstance().GetStuInfo_Obj(strSTU_NUMBER);
            Shoolar_project_head project_head = ProjectSettingHandleClass.getInstance().GetProjectHead(strPROJECT_SEQ_NO);

            if (stu_info == null || project_head == null)
            {
                return(CValue.FLAG_N);
            }

            string strMsg = string.Empty;

            #region 再次校验申请条件

            //再次校验申请条件
            if (!ProjectApplyHandleClass.getInstance().CheckProjectLimit(stu_info, project_head, out strMsg))
            {
                return(CValue.FLAG_N);
            }
            if (!ProjectApplyHandleClass.getInstance().CheckProjectNotBoth(stu_info, project_head, out strMsg))
            {
                return(CValue.FLAG_N);
            }

            #endregion 再次校验申请条件

            #region 申请人数已满

            //申请人数已满
            if (!ProjectApplyHandleClass.getInstance().CheckProjectNum(stu_info, project_head, out strMsg))
            {
                return(CValue.FLAG_N);
            }

            #endregion 申请人数已满

            return(CValue.FLAG_Y);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 删除并发消息告知
        /// 删除只会删除申请条件不符合要求的,申请人数已经满了 不在删除的范围内,申请人数超员的情况应该由学院或者学校进行撤销处理。
        /// </summary>
        /// <returns></returns>
        private string DeleteData()
        {
            if (string.IsNullOrEmpty(Get("id")))
            {
                return("删除失败,原因:主键为空!");
            }

            Shoolar_apply_head head = new Shoolar_apply_head();

            head.OID = Get("id");
            ds.RetrieveObject(head);
            if (head != null)
            {
                #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))
                {
                    string strMessageMsg = string.Empty;
                    //发送消息
                    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);
                    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);
                    //删除数据
                    ProjectApplyHandleClass.getInstance().DeleteProjectApplyData(head.SEQ_NO);
                    return(string.Empty);
                }
                if (!ProjectApplyHandleClass.getInstance().CheckProjectNotBoth(stu_info, project_head, out strMsg))
                {
                    string strMessageMsg = string.Empty;
                    //发送消息
                    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);
                    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);
                    //删除数据
                    ProjectApplyHandleClass.getInstance().DeleteProjectApplyData(head.SEQ_NO);
                    return(string.Empty);
                }

                #endregion 再次校验申请条件

                #endregion 申请人数限制放在院级审核的时候,并且再次用条件进行校验
            }
            return("不满足删除条件!");
        }
Ejemplo n.º 11
0
        /// <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("是否满足提交条件校验出现异常!");
            }
        }
Ejemplo n.º 12
0
        /// <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);
            }
        }
Ejemplo n.º 13
0
        /// <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("提交审核信息失败!");
            }
        }
Ejemplo n.º 14
0
        /// <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("批量审批失败!");
            }
        }