Пример #1
0
def submit_review(request):
    """
    设置评审专家
    :param request:
    :return:
    """
    request_body = json.loads(request.body)
    project_id = request_body.get('project_id')
    user_name_list = request_body.get('review_list')
    print user_name_list
    user_list = UserLoinInterface.get_user_list_by_name_list(
        user_name_list).get('results')
    temp = ProjectInterface.change_project_status(project_id=project_id,
                                                  project_status=2)
    for i in user_list:
        review_id = uuid.uuid1()
        init_review_res = ReviewInterface.init_review(
            review_id=review_id,
            review_user_id=i.get('user_id'),
            review_user_name=i.get('user_name'),
            project_id=project_id)
        if init_review_res.get('code') == 0:
            res = success_return(u'设置评审专家成功', None)
            continue
        else:
            ReviewInterface.delete_review(review_id=review_id)
            ProjectInterface.change_project_status(project_id=project_id,
                                                   project_status=1)
            res = success_return(u'设置评审专家失败', None)
            return render_json(res)
    return render_json(res)
Пример #2
0
    def get_notices(cls, page, page_size):
        """
        获取通知
        :param page:            页数
        :param page_size:
        :return:
        """
        result_list = []
        if page == 0:
            # 全部取出
            pass
        else:
            notices = Notification.objects.values().all().order_by(
                '-create_time')
            paginator = Paginator(notices, page_size)
            temp_list = paginator.page(page)
            for i in temp_list:
                i['create_time'] = i['create_time'].strftime(
                    "%Y-%m-%d %H:%M:%S")
                i['page'] = page
                i['page_count'] = paginator.num_pages
                i['count'] = paginator.count

                result_list.append(i)
        return success_return(u'获取通知成功', result_list)
Пример #3
0
    def get_accessories_by_project_id(cls, project_id, page, page_size):
        """
        通过项目ID获取附件list 空则返回[]
        :param project_id:
        :param page:
        :param page_size:
        :return:
        """
        result_list = []
        if page == 0:

            try:
                accessories = Accessories.objects.values().filter(
                    project_id=project_id).order_by('-accessories_time')
                for i in accessories:
                    i['accessories_time'] = i['accessories_time'].strftime(
                        "%Y-%m-%d %H:%M:%S")
                    result_list.append(i)
            except:
                pass
        else:
            accessories = Accessories.objects.values().filter(
                project_id=project_id).order_by('-accessories_time')
            paginator = Paginator(accessories, page_size)
            temp_list = paginator.page(page)
            for i in temp_list:
                i['accessories_time'] = i['accessories_time'].strftime(
                    "%Y-%m-%d %H:%M:%S")
                i['page'] = page
                i['page_count'] = paginator.num_pages
                i['count'] = paginator.count
                result_list.append(i)
        return success_return('获取附件成功', result_list)
Пример #4
0
 def get_user_login_list(cls, page, page_size):
     """
     获取用户列表
     :param page:
     :param page_size:
     :return:
     """
     result_list = []
     if page == 0:
         try:
             user_login_list = UserLogin.objects.values().all().order_by(
                 'user_id')
             for i in user_login_list:
                 result_list.append(i)
         except:
             pass
     else:
         accessories = UserLogin.objects.values().all().order_by('user_id')
         paginator = Paginator(accessories, page_size)
         temp_list = paginator.page(page)
         for i in temp_list:
             i['page'] = page
             i['page_count'] = paginator.num_pages
             i['count'] = paginator.count
             result_list.append(i)
     return success_return(u'获取用户登录信息成功', result_list)
 def get_all_science_type(cls):
     """
     获取所有科研类型
     :return:
     """
     result_list = []
     science_type_list = ScienceType.objects.values().all()
     for i in science_type_list:
         result_list.append(i)
     return success_return(u'获取科研类型陈宫', result_list)
Пример #6
0
 def get_user_login_by_id(cls, user_id):
     """
     通过用户ID获取用户信息
     :param user_id:
     :return:
     """
     try:
         query_result = UserLogin.objects.values().get(user_id=user_id)
         return success_return(u'获取用户登录信息成功', query_result)
     except Exception as e:
         return error_return(u'获取用户登录信息失败')
Пример #7
0
def get_username_by_session(request):
    """
    通过session获取用户名
    :param request:
    :return:
    """
    try:
        username = request.session.get('user')['username']
        res = success_return(u'获取用户名成功', {'username': username})
    except Exception as e:
        res = error_return(u'获取用户名失败')
    return render_json(res)
Пример #8
0
 def delete_review(cls, review_id):
     """
     删除评审信息
     :param review_id:
     :return:
     """
     try:
         with transaction.atomic():
             Review.objects.get(review_id=review_id).delete()
         return success_return(u'删除成功', None)
     except Exception as e:
         return error_return(u'删除失败')
Пример #9
0
def get_user_all_info(request):
    """
    获取所有用户信息
    :param request:
    :return:
    """
    user_login = UserLoinInterface.get_user_login_list(page=0, page_size=0)
    try:
        res = UserInfoInterface.get_user_detail_list_by_user_login(
            user_login_list=user_login.get('results'))
        return render_json(success_return(u'获取用户列表成功', res))
    except Exception as e:
        return render_json(error_return(u'获取用户列表失败' + str(e)))
Пример #10
0
 def get_review_list_by_project_id(cls, project_id):
     """
     通过项目ID获取审批信息
     :param project_id:
     :return:
     """
     result_list = []
     review = Review.objects.values().filter(
         project_id=project_id).order_by('-review_time')
     for i in review:
         i['review_time'] = i['review_time'].strftime("%Y-%m-%d %H:%M:%S")
         result_list.append(i)
     return success_return(u'获取评审信息列表成功', result_list)
Пример #11
0
    def get_user_list_by_type(cls, user_type):
        """

        :param user_type:
        :return:
        """
        result_list = []
        try:
            user_login = UserLogin.objects.values().filter(user_type=user_type)
            for i in user_login:
                result_list.append(i)
        except:
            pass
        return success_return(u'获取用户列表成功', result_list)
Пример #12
0
 def change_project_status(cls, project_id, project_status):
     """
     更改项目状态
     :param project_id:
     :param project_status:
     :return:
     """
     try:
         with transaction.atomic():
             Project.objects.filter(project_id=project_id).update(
                 project_status=project_status)
         return success_return(u'修改状态成功', None)
     except Exception as e:
         return error_return(u'修改项目状态失败')
Пример #13
0
def get_my_review_by_project_id(request):
    """
    获取个人审批意见
    :param request:
    :return:
    """
    project_id = request.session['project_id']
    res = ReviewInterface.get_review_list_by_project_id(project_id=project_id)
    user_id = request.session['user_id']
    result_list = []
    for i in res.get('results'):
        if user_id == i.get('review_user_id'):
            result_list.append(i)
            return render_json(success_return(u'获取成功', result_list))
Пример #14
0
 def get_notice_by_id(cls, notification_id):
     """
     通过通知ID获取通知信息
     :param notification_id:
     :return:
     """
     try:
         notice = Notification.objects.values().get(
             notification_id=notification_id)
         notice['create_time'] = notice['create_time'].strftime(
             "%Y-%m-%d %H:%M:%S")
         return success_return(u'获取通知成功', notice)
     except Exception as e:
         return error_return(u'获取通知失败')
Пример #15
0
 def get_user_list_by_name_list(cls, user_name_list):
     """
     通过用户名列表获取用户列表
     :param user_name_list:
     :return:
     """
     result_list = []
     try:
         user_login = UserLogin.objects.values().filter(
             user_name__in=user_name_list)
         for i in user_login:
             result_list.append(i)
     except:
         pass
     return success_return(u'获取用户列表成功', result_list)
Пример #16
0
def get_active_user_info(request):
    """
    获取当前用户信息
    :param request:
    :return:
    """
    user_id = request.session['user_id']
    user_login = UserLoinInterface.get_user_login_by_id(user_id=user_id)
    user_login_list = []
    user_login_list.append(user_login.get('results'))
    try:
        res = UserInfoInterface.get_user_detail_list_by_user_login(
            user_login_list=user_login_list)
        return render_json(success_return(u'获取用户列表成功', res))
    except Exception as e:
        return render_json(error_return(u'获取用户列表失败' + str(e)))
Пример #17
0
def get_other_review_by_project_id(request):
    """
    通过项目ID获取评审信息
    :param request:
    :return:
    """
    project_id = request.session['project_id']
    print project_id
    res = ReviewInterface.get_review_list_by_project_id(project_id=project_id)
    print res
    user_id = request.session['user_id']
    result_list = []
    for i in res.get('results'):
        if user_id != i.get('review_user_id'):
            result_list.append(i)
    return render_json(success_return(u'获取成功', result_list))
Пример #18
0
 def user_login(cls, username, password):
     """
     用户登陆验证
     :param username:    用户名称
     :param password:    用户密码
     :return:            json 0 验证成功 1 验证失败
     """
     query_result = UserLogin.objects.filter(user_name=username)
     if query_result is None:
         return error_return(u'用户名不存在')
     else:
         query_dict = model_to_dict(query_result[0])
         query_password = query_dict['user_password']
         if query_password == password:
             return success_return(u'登录成功', query_dict)
         else:
             return error_return(u'密码错误')
Пример #19
0
 def update_review(cls, review_id, review_message, review_status):
     """
     更新评审信息
     :param review_id:
     :param review_message:
     :param review_status:
     :return:
     """
     try:
         with transaction.atomic():
             Review.objects.filter(review_id=review_id).update(
                 review_status=review_status,
                 review_message=review_message,
                 review_time=datetime.datetime.now())
         return success_return(u'修改评审信息成功', None)
     except Exception as e:
         return error_return(u'修改评审信息失败')
 def insert_science_type(cls, type_name):
     """
     新增科研类型
     :param type_name:
     :return:
     """
     type_id = uuid.uuid1()
     try:
         with transaction.atomic():
             count = ScienceType.objects.filter(type_name=type_name).count()
             if count == 0:
                 ScienceType.objects.create(type_id=type_id,
                                            type_name=type_name)
                 return success_return(u'新增科研类型成功', None)
             else:
                 return error_return(u'科研类型名称已存在')
     except Exception as e:
         return error_return(u'新增科研类型失败')
 def update_science_type(cls, type_id, type_name):
     """
     修改科研类型
     :param type_id:
     :param type_name:
     :return:
     """
     try:
         with transaction.atomic():
             count = ScienceType.objects.filter(type_name=type_name).count()
             if count == 0:
                 ScienceType.objects.filter(type_id=type_id).update(
                     type_name=type_name)
                 return success_return(u'修改科研类型成功', None)
             else:
                 return error_return(u'修改科研类型名称已存在')
     except Exception as e:
         return error_return(u'修改科研类型异常')
    def get_specialist_group_by_science(cls):
        """

        :return:
        """
        result_list = []
        temp_list = []
        science_type_list = ScienceType.objects.values().all()
        for i in science_type_list:
            temp_list.append(i)
            user_temp_list = []
            user_login_list = UserLoinInterface.get_specialist_by_type_id(
                science_type_id=i.get('type_id'))
            for j in user_login_list:
                user_temp_list.append(j)
            i['user_list'] = user_temp_list
            result_list.append(i)
        return success_return(u'获取专家列表成功', result_list)
Пример #23
0
 def insert_accessories(cls, project_id, accessories_id, accessories_name,
                        accessories_url):
     """
     新增项目附件
     :param project_id:
     :param accessories_id:
     :param accessories_name:
     :param accessories_url:
     :return:
     """
     try:
         with transaction.atomic():
             Accessories.objects.create(project_id=project_id,
                                        accessories_id=accessories_id,
                                        accessories_name=accessories_name,
                                        accessories_url=accessories_url)
         return success_return(u'新增附件成功', None)
     except Exception as e:
         return error_return(u'新增附件失败' + str(e))
Пример #24
0
 def init_review(cls, review_id, project_id, review_user_id,
                 review_user_name):
     """
     初始化项目评审信息
     :param review_id:
     :param project_id:
     :param review_user_id:
     :param review_user_name:
     :return:
     """
     try:
         # review_status: 0未审批 1审批通过 2审批完成
         with transaction.atomic():
             Review.objects.create(review_id=review_id,
                                   project_id=project_id,
                                   review_user_id=review_user_id,
                                   review_status=0,
                                   review_user_name=review_user_name)
         return success_return(u'新增评审信息成功', None)
     except Exception as e:
         return error_return(u'新增评审信息失败')
Пример #25
0
 def delete_accessories_by_accessories_id(cls, accessories_id):
     """
     通过附件ID删除附件
     :param accessories_id:
     :return:
     """
     try:
         exit_temp = Accessories.objects.filter(
             accessories_id=accessories_id)
         print exit_temp
         if len(exit_temp) != 0:
             temp = Accessories.objects.filter(
                 accessories_id=accessories_id).delete()
             return success_return(u'删除成功', None)
         else:
             return error_return(u'附件不存在删除失败')
         # if temp is not None:
         #     return success_return(u'删除成功', None)
         # else:
         #     return error_return(u'附件不存在删除失败')
     except Exception as e:
         return error_return(u'删除失败' + str(e))
Пример #26
0
    def get_project_by_project_name(cls, project_name, page, page_size):
        """

        :param project_name:
        :param page:
        :param page_size:
        :return:
        """
        result_list = []
        project = Project.objects.values().filter(
            project_name__icontains=project_name).order_by('-project_time')
        paginator = Paginator(project, page_size)
        temp_list = paginator.page(page)
        for i in temp_list:
            i['project_time'] = i['project_time'].strftime("%Y-%m-%d %H:%M:%S")
            i['start_time'] = i['start_time'].strftime("%H:%M:%S")
            i['stop_time'] = i['stop_time'].strftime("%H:%M:%S")
            i['page'] = page
            i['page_count'] = paginator.num_pages
            i['count'] = paginator.count
            result_list.append(i)
        return success_return(u'获取申请成功', result_list)
Пример #27
0
    def insert_notice(cls, notification_title, notification_content,
                      create_user_id):
        """

        :param notification_title:
        :param notification_content:
        :param create_user_id:
        :return:
        """
        notification_id = uuid.uuid1()
        try:
            # 添加事物控制防止异常时事物不回滚,这里事物必须放在try...catch里面
            # 否则事物被try...catch捕获了就不起作用了
            with transaction.atomic():
                Notification.objects.create(
                    notification_id=notification_id,
                    notification_title=notification_title,
                    notification_content=notification_content,
                    create_user_id=create_user_id)
            return success_return(u'发布通知成功', [])
        except Exception as e:
            return error_return(u'新增通知失败')
Пример #28
0
 def insert_project(cls, project_name, project_time, apply_user_name,
                    apply_user_id, research_content, technology_new,
                    expected_goal, participator, start_time, stop_time,
                    science_type_id):
     """
     新增项目信息
     :param project_name:
     :param project_time:
     :param apply_user_name:
     :param apply_user_id:
     :param research_content:
     :param technology_new:
     :param expected_goal:
     :param participator:
     :param start_time:
     :param stop_time:
     :param science_type_id:
     :return:
     """
     project_id = uuid.uuid1()
     try:
         with transaction.atomic():
             Project.objects.create(project_id=project_id,
                                    project_name=project_name,
                                    project_time=project_time,
                                    apply_user_name=apply_user_name,
                                    apply_user_id=apply_user_id,
                                    research_content=research_content,
                                    technology_new=technology_new,
                                    expected_goal=expected_goal,
                                    participator=participator,
                                    start_time=start_time,
                                    stop_time=stop_time,
                                    project_status=0,
                                    science_type_id=science_type_id)
         return success_return(u'新增项目成功', {'project_id': str(project_id)})
     except Exception as e:
         return error_return(u'新增项目失败' + str(e))
Пример #29
0
 def add_user_info(
     cls,
     user_id,
     user_name,
     user_password,
     user_type,
     user_email,
     user_address,
     user_phone,
     science_type_id,
 ):
     """
     新增用户信息
     :param user_id:
     :param user_name:
     :param user_password:
     :param user_type:
     :param user_email:
     :param user_address:
     :param user_phone:
     :param science_type_id:
     :return:
     """
     try:
         with transaction.atomic():
             UserLogin.objects.create(user_password=user_password,
                                      user_type=user_type,
                                      user_name=user_name,
                                      science_type_id=science_type_id,
                                      user_id=user_id)
             with transaction.atomic():
                 UserInfo.objects.create(user_id=user_id,
                                         user_email=user_email,
                                         user_address=user_address,
                                         user_phone=user_phone)
             return success_return(u'新增用户信息成功', None)
     except Exception as e:
         return error_return(u'新增用户信息失败' + str(e))
Пример #30
0
 def get_project_statement(cls):
     """
     获取审批报表
     :return:
     """
     result_list = []
     temp_list = []
     project_list = Project.objects.values().filter(
         project_status__in=[2, 3, 4])
     for i in project_list:
         i['project_time'] = i['project_time'].strftime("%Y-%m-%d %H:%M:%S")
         i['start_time'] = i['start_time'].strftime("%H:%M:%S")
         i['stop_time'] = i['stop_time'].strftime("%H:%M:%S")
         temp_list.append(i)
         review_list = []
         review_temp_list = ReviewInterface.get_review_list_by_project_id(
             project_id=i.get('project_id'))
         for j in review_temp_list.get('results'):
             # j['review_time'] = j['review_time'].strftime("%Y-%m-%d %H:%M:%S")
             review_list.append(j)
         i['review_list'] = review_list
         result_list.append(i)
     return success_return(u'获取报表成功', result_list)