Esempio n. 1
0
def add_data():
    insert_dict = {}

    item = get_item_list(['person', 'education', 'skill',
                          'workinfo'])  #返回的是所有25个字段

    year_select = session['year_current']  #当前年份

    for i in item:  #就是一个一个增加,如果没有增加,就先设置成暂无
        insert_dict[i] = request.args.get(i, '暂无', type=str)
        if insert_dict[i] == '':
            insert_dict[i] = '暂无'

    item_person = get_item_list('person')
    insert_table('person', year_select, item_person, insert_dict)

    person_id = select_table(
        'person', year_select, {'person_id': 'person'},
        {'person_name': insert_dict['person_name']})['person_id']
    insert_dict['person_id'] = float_int_string(person_id)

    item_education = get_item_list('education')
    item_education.append('person_id')
    insert_table('education', year_select, item_education, insert_dict)

    item_skill = get_item_list('skill')
    item_skill.append('person_id')
    insert_table('skill', year_select, item_skill, insert_dict)

    item_workinfo = get_item_list('workinfo')
    item_workinfo.append('person_id')
    insert_table('workinfo', year_select, item_workinfo, insert_dict)

    msg = '成功添加教师' + insert_dict['person_name'] + '的信息'
    return jsonify({'msg': msg})
def jsondata():

    data = []

    try:
        result = select_table(
            "person",
            session["year_current"],
            {"person_id": "person", "person_name": "person", "gender": "person"},
        )
        for row in result:
            d = {}
            d["person_id"] = row["person_id"]
            d["person_name"] = row["person_name"]
            d["gender"] = row["gender"]
            data.append(d)
    except:
        return jsonify({"total": len(data), "rows": data})

    if request.method == "POST":
        print("post")
    if request.method == "GET":
        info = request.values
        limit = info.get("limit", 10)
        offset = info.get("offset", 0)
        return jsonify(
            {"total": len(data), "rows": data[int(offset) : (int(offset) + int(limit))]}
        )
def search_data():
    # 获取要查询的项目和值
    search_item = request.args.get("search_item", "暂无", type=str)
    search_string = request.args.get("search_string", "暂无", type=str)

    # 查询结果
    year = session["year_current"]
    result = select_table(
        ["person", "education", "skill", "workinfo"],
        year,
        {"person_id": "person", "person_name": "person", "gender": "person"},
        {search_item: " like '%" + search_string + "%'"},
    )

    data = []
    if type(result) == dict:
        data.append(result)
    else:
        data = result

    # 返回结果
    if len(data) == 0:
        # 查询失败
        msg = "没有查询到相关信息"
    else:
        # 查询成功
        msg = "成功查询到" + str(len(data)) + "条信息"

    return jsonify({"msg": msg, "total": len(data), "rows": data})
Esempio n. 4
0
def jsondata():

    data = []

    try:

        result = select_table('person', session['year_current'], {
            'person_id': 'person',
            'person_name': 'person',
            'gender': 'person'
        })
        for row in result:
            d = {}
            d['person_id'] = row['person_id']
            d['person_name'] = row['person_name']
            d['gender'] = row['gender']
            data.append(d)
    except:
        return jsonify({'total': len(data), 'rows': data})

    if request.method == 'GET':
        info = request.values
        limit = info.get('limit', 10)  # 每页显示的条数
        offset = info.get('offset', 0)  # 分片数,(页码-1)*limit,它表示一段数据的起点

        return jsonify({
            'total': len(data),
            'rows': data[int(offset):(int(offset) + int(limit))]
        })
Esempio n. 5
0
def search():
    person_id = request.args.get('id', 0, type=int)
    year = session['year_current']

    item = {}
    table = ['person', 'education', 'skill', 'workinfo']
    for table_name in table:
        item_list = get_item_list(table_name)
        for i in item_list:
            item[i] = table_name

    condition = 'person_' + year + '.person_id'
    result = select_table(
        table, year, item,
        {condition: '=\'' + float_int_string(person_id) + '\''})

    return jsonify(result)
Esempio n. 6
0
def search_data():
    #获取搜索选的字段,然后获取查询的某个字
    search_item = request.args.get('search_item', '暂无', type=str)
    search_string = request.args.get('search_string', '暂无', type=str)

    year = session['year_current']

    result = select_table(['person', 'education', 'skill', 'workinfo'], year, {
        'person_id': 'person',
        'person_name': 'person',
        'gender': 'person'
    }, {search_item: ' like \'%' + search_string + '%\''})

    data = []
    if type(result) == dict:
        data.append(result)
    else:
        data = result

    msg = '成功查询到' + str(len(data)) + '条信息'
    return jsonify({'msg': msg, 'total': len(data), 'rows': data})
def add_data():
    # 获取要添加的数据
    year_select = session["year_current"]
    insert_dict = {}
    item = get_item_list(["person", "education", "skill", "workinfo"])
    for i in item:
        insert_dict[i] = request.args.get(i, "暂无", type=str)
        if insert_dict[i] == "":
            insert_dict[i] = "暂无"

    # 添加数据到person表
    item_person = get_item_list("person")
    insert_table("person", year_select, item_person, insert_dict)

    # 获取自动生成的person_id
    person_id = select_table(
        "person",
        year_select,
        {"person_id": "person"},
        {"person_name": " = '" + insert_dict["person_name"] + "'"},
    )["person_id"]
    insert_dict["person_id"] = float_int_string(person_id)

    # 添加数据到其他表
    item_education = get_item_list("education")
    item_education.append("person_id")
    insert_table("education", year_select, item_education, insert_dict)

    item_skill = get_item_list("skill")
    item_skill.append("person_id")
    insert_table("skill", year_select, item_skill, insert_dict)

    item_workinfo = get_item_list("workinfo")
    item_workinfo.append("person_id")
    insert_table("workinfo", year_select, item_workinfo, insert_dict)

    # 返回结果
    msg = "成功添加教师" + insert_dict["person_name"] + "的信息"
    return jsonify({"msg": msg})
Esempio n. 8
0
def hello():

    year_list = []
    year_data = get_lijing_db().execute(
        "select year from year_list").fetchall()
    if len(year_data) == 0:
        year_list = ["暂无数据"]
        session["year_current"] = year_list[0]
        return render_template("lijing/search.html", year_list=year_list)
    else:
        for year in year_data:
            year_list.insert(0, year["year"])

    session["year_current"] = year_list[0]

    school_list = []
    school_id = []
    school_data = select_table(
        "school",
        session["year_current"],
        {
            "school_id": "school",
            "school_name": "school"
        },
    )
    if type(school_data) == dict:
        school_list.append(school_data["school_name"])
        school_id.append(school_data["school_id"])
    else:
        for i in school_data:
            school_list.append(i["school_name"])
            school_id.append(i["school_id"])

    if len(school_list) != 1:
        school_list = school_list[1:]

    return render_template("lijing/search.html",
                           year_list=year_list,
                           school_list=school_list)
def search():
    # 获取要查看详情的教师id
    person_id = request.args.get("id", 0, type=int)

    # 拼接要查询的项目
    year = session["year_current"]
    item = {}
    table = ["person", "education", "skill", "workinfo"]
    for table_name in table:
        item_list = get_item_list(table_name)
        for i in item_list:
            item[i] = table_name

    # 查询结果
    condition = "person_" + year + ".person_id"
    result = select_table(
        ["person", "education", "skill", "workinfo"],
        year,
        item,
        {condition: " = '" + float_int_string(person_id) + "'"},
    )

    # 返回结果
    return jsonify(result)
def importData():
    if request.method == "POST":
        # 获取年份列表
        db = get_lijing_db()
        year_data = db.execute("select year from year_list").fetchall()
        year_list = []
        for year in year_data:
            year_list.insert(0, year["year"])

        # 获取要导入的年份,判断是否在已有年份中
        year_select = request.form.get("year_select")
        if year_select not in year_list:
            # 插入新的年份
            db.execute(
                "insert into year_list (year, basicinfo, workinfo, honorinfo) values (?,?,?,?)",
                (
                    year_select,
                    0,
                    0,
                    0,
                ),
            )
            # 新年份创建新的表
            create_table(["person", "education", "workinfo", "skill"], year_select)

        # 获取选择的表格文件
        f = request.files["file"]

        # 获取文件名,判断是否是excel文件
        filename = secure_filename("".join(lazy_pinyin(f.filename)))
        if filename.endswith(".xlsx"):
            # 保存文件到服务器uploads文件夹
            upload_path = list_to_path(["flaskr", "static", "uploads", filename])
            f.save(upload_path)

            # 打开保存后的文件
            data = xlrd.open_workbook(upload_path)
            table = data.sheet_by_index(0)
            # print("总行数:" + str(table.nrows))
            # print("总列数:" + str(table.ncols))

            # 找到标题
            dict_title = {
                "姓名": "person_name",
                "性别": "gender",
                "身份证号": "id_number",
                "联系电话": "phone",
                "政治面貌": "political_status",
                "入党时间": "time_Party",
                "参加工作时间": "time_work",
                "家庭住址": "address",
                "工作简历": "resume",
                "第一学历": "edu_start",
                "第一学历毕业时间": "time_edu_start",
                "第一学历毕业学校": "school_edu_start",
                "第一学历专业": "major_edu_start",
                "最高学历": "edu_end",
                "最高学历毕业时间": "time_edu_end",
                "最高学历毕业学校": "school_edu_end",
                "最高学历专业": "major_edu_end",
                "专业技术职称": "skill_title",
                "取得时间": "time_skill",
                "发证单位": "skill_unit",
                "发证文件批号": "skill_number",
                "调入大集中学时间": "time_school",
                "用工性质": "work_kind",
                "工作岗位": "job_post",
                "退休时间": "time_retire",
            }

            row_title = table.row_values(0)
            title_id = {}
            for i in dict_title:
                # 初始化-1
                title_id[dict_title[i]] = -1

            for i in range(0, len(row_title)):
                title_name = row_title[i]
                if title_name in dict_title:
                    # 保存标题序号
                    title_id[dict_title[title_name]] = i

            # 导入数据
            item = get_item_list(["person", "education", "skill", "workinfo"])

            for i in range(1, table.nrows):
                # 获取每一行的值
                row_value = table.row_values(i)

                insert_dict = {}
                for j in item:
                    if title_id[j] == -1:
                        # 没有找到标题
                        insert_dict[j] = "暂无"
                    else:
                        # 找到标题
                        insert_dict[j] = float_int_string(row_value[title_id[j]])
                        if len(insert_dict[j]) == 0:
                            # 找到标题,但没有值
                            insert_dict[j] = "暂无"

                # 插入数据到person表
                item_person = get_item_list("person")
                insert_table("person", year_select, item_person, insert_dict)

                # 获取自动生成的person_id
                condition = {"person_name": " = '" + insert_dict["person_name"] + "'"}
                person_id = select_table(
                    "person", year_select, {"person_id": "person"}, condition
                )["person_id"]
                insert_dict["person_id"] = float_int_string(person_id)

                # 插入其他表
                item_education = get_item_list("education")
                item_education.append("person_id")
                insert_table("education", year_select, item_education, insert_dict)

                item_skill = get_item_list("skill")
                item_skill.append("person_id")
                insert_table("skill", year_select, item_skill, insert_dict)

                item_workinfo = get_item_list("workinfo")
                item_workinfo.append("person_id")
                insert_table("workinfo", year_select, item_workinfo, insert_dict)

            # 删除保存的表格文件
            os.remove(upload_path)

            return redirect(url_for("lijing_basicinfo.hello"))
        else:
            # 不是execl文件
            error = "请导入xlsx格式的文件"
            flash(error)
            return redirect(url_for("lijing_basicinfo.hello"))
def exportData():
    # 获取要导出的项
    export_item = {}
    table = ["person", "education", "skill", "workinfo"]
    item = get_item_list(table)

    for table_name in table:
        item_table = get_item_list(table_name)
        for i in item_table:
            if request.args.get(i) == "true":
                export_item[i] = table_name

    # 判断是否导出全部数据
    year = session["year_current"]
    flag_search = request.args.get("flag_search")

    id_list = []
    if flag_search == "true":
        # 导出部分数据
        id_list = request.args.getlist("id_list[]")
    else:
        # 导出全部数据
        person_data = select_table("person", year, {"person_id": "person"})
        for i in person_data:
            id_list.append(str(i["person_id"]))

    # 获取要导出的数据
    table_data = []
    for i in id_list:
        result = select_table(
            table,
            year,
            export_item,
            {"person_" + year + ".person_id": " = '" + i + "'"},
        )
        table_data.append(result)

    # 写入数据到表格
    item_name_dict = {
        "person_name": "姓名",
        "gender": "性别",
        "id_number": "身份证号",
        "phone": "联系电话",
        "political_status": "政治面貌",
        "time_Party": "入党时间",
        "time_work": "参加工作时间",
        "address": "家庭住址",
        "resume": "个人简历",
        "edu_start": "第一学历",
        "time_edu_start": "第一学历毕业时间",
        "school_edu_start": "第一学历毕业学校",
        "major_edu_start": "第一学历专业",
        "edu_end": "最高学历",
        "time_edu_end": "最高学历毕业时间",
        "school_edu_end": "最高学历毕业学校",
        "major_edu_end": "最高学历专业",
        "skill_title": "专业技术职称",
        "time_skill": "职称取得时间",
        "skill_unit": "职称发证单位",
        "skill_number": "发证文件批号",
        "time_school": "调入大集中学时间",
        "work_kind": "用工性质",
        "job_post": "工作岗位",
        "time_retire": "退休时间",
    }
    
    save_path = list_to_path(["flaskr", "static", "downloads", "exportData.xlsx"])
    workbook = xlsxwriter.Workbook(save_path)
    worksheet = workbook.add_worksheet("Sheet1")
    col = 0
    for i in export_item:
        worksheet.write(0, col, item_name_dict[i])
        col = col + 1

    for i in range(len(id_list)):
        col = 0
        for j in export_item:
            worksheet.write(i + 1, col, table_data[i][j])
            col = col + 1
    workbook.close()

    # 完成导出
    msg = "成功导出" + str(len(id_list)) + "条信息"
    return jsonify({"msg": msg, "filename": "exportData.xlsx"})
Esempio n. 12
0
def importData():
    if request.method == 'POST':

        db = get_lijing_db()

        year_select = request.form['year_select']

        year_data = db.execute('select year from year_list').fetchall()
        year_list = []
        for year in year_data:
            year_list.insert(0, year['year'])

        if year_select not in year_list:
            db.execute(
                'insert into year_list (year, basicinfo, workinfo, honorinfo) values (?,?,?,?)',
                (
                    year_select,
                    0,
                    0,
                    0,
                ))

            create_table(['person', 'education', 'workinfo', 'skill'],
                         year_select)

        f = request.files['file']
        filename = secure_filename(''.join(lazy_pinyin(f.filename)))

        if filename.endswith('.xlsx'):

            basepath = os.path.dirname(__file__)
            upload_path = os.path.join(basepath, '..\\static\\uploads',
                                       filename)

            f.save(upload_path)

            data = xlrd.open_workbook(upload_path)
            table = data.sheet_by_index(0)
            print("总行数:" + str(table.nrows))
            print("总列数:" + str(table.ncols))

            # 找到标题
            dict_title = {
                '姓名': 'person_name',
                '性别': 'gender',
                '身份证号': 'id_number',
                '联系电话': 'phone',
                '政治面貌': 'political_status',
                '入党时间': 'time_Party',
                '参加工作时间': 'time_work',
                '家庭住址': 'address',
                '工作简历': 'resume',
                '第一学历': 'edu_start',
                '第一学历毕业时间': 'time_edu_start',
                '第一学历毕业学校': 'school_edu_start',
                '第一学历专业': 'major_edu_start',
                '最高学历': 'edu_end',
                '最高学历毕业时间': 'time_edu_end',
                '最高学历毕业学校': 'school_edu_end',
                '最高学历专业': 'major_edu_end',
                '专业技术职称': 'skill_title',
                '取得时间': 'time_skill',
                '发证单位': 'skill_unit',
                '发证文件批号': 'skill_number',
                '调入大集中学时间': 'time_school',
                '用工性质': 'work_kind',
                '工作岗位': 'job_post',
                '退休时间': 'time_retire'
            }

            row_title = table.row_values(0)
            print(row_title)

            title_id = {}  # {'person_name':'1','gender':'2'}
            for i in dict_title:
                title_id[dict_title[i]] = -1
            print(title_id)

            for i in range(0, len(row_title)):
                title_name = row_title[i]
                if title_name in dict_title:
                    title_id[dict_title[title_name]] = i
            print(title_id)

            # 导入数据
            item = get_item_list(['person', 'education', 'skill', 'workinfo'])
            for i in range(1, table.nrows):
                row_value = table.row_values(i)

                insert_dict = {}
                for j in item:
                    if title_id[j] == -1:
                        insert_dict[j] = '暂无'
                    else:
                        insert_dict[j] = float_int_string(
                            row_value[title_id[j]])
                        if len(insert_dict[j]) == 0:
                            insert_dict[j] = '暂无'

                item_person = get_item_list('person')
                insert_table('person', year_select, item_person, insert_dict)

                person_id = select_table(
                    'person', year_select, {'person_id': 'person'}, {
                        'person_name':
                        ' = \'' + insert_dict['person_name'] + '\''
                    })['person_id']
                insert_dict['person_id'] = float_int_string(person_id)

                item_education = get_item_list('education')
                item_education.append('person_id')
                insert_table('education', year_select, item_education,
                             insert_dict)

                item_skill = get_item_list('skill')
                item_skill.append('person_id')
                insert_table('skill', year_select, item_skill, insert_dict)

                item_workinfo = get_item_list('workinfo')
                item_workinfo.append('person_id')
                insert_table('workinfo', year_select, item_workinfo,
                             insert_dict)

            os.remove(upload_path)

            return redirect(url_for('lijing_basicinfo.hello'))

        else:
            error = '请导入xlsx格式的文件'
            flash(error)
            return redirect(url_for('lijing_basicinfo.hello'))
Esempio n. 13
0
def exportData():

    export_item = {}
    table = ['person', 'education', 'skill', 'workinfo']
    item = get_item_list(table)

    for table_name in table:
        item_table = get_item_list(table_name)
        for i in item_table:
            if request.args.get(i) == 'true':
                export_item[i] = table_name

    year = session['year_current']
    flag_search = request.args.get('flag_search')

    id_list = []
    if flag_search == 'true':
        id_list = request.args.getlist("id_list[]")
    else:
        person_data = select_table('person', year, {'person_id': 'person'})
        for i in person_data:
            id_list.append(str(i['person_id']))

    table_data = []
    for i in id_list:
        result = select_table(
            table, year, export_item,
            {'person_' + year + '.person_id': ' = \'' + i + '\''})
        table_data.append(result)

    item_name_dict = {
        'person_name': '姓名',
        "gender": '性别',
        "id_number": '身份证号',
        "phone": '联系电话',
        "political_status": '政治面貌',
        "time_Party": '入党时间',
        "time_work": '参加工作时间',
        "address": '家庭住址',
        "resume": '个人简历',
        "edu_start": '第一学历',
        "time_edu_start": '第一学历毕业时间',
        "school_edu_start": '第一学历毕业学校',
        "major_edu_start": '第一学历专业',
        "edu_end": '最高学历',
        "time_edu_end": '最高学历毕业时间',
        "school_edu_end": '最高学历毕业学校',
        "major_edu_end": '最高学历专业',
        "skill_title": '专业技术职称',
        "time_skill": '职称取得时间',
        "skill_unit": '职称发证单位',
        "skill_number": '发证文件批号',
        "time_school": '调入大集中学时间',
        "work_kind": '用工性质',
        "job_post": '工作岗位',
        "time_retire": '退休时间'
    }

    workbook = xlsxwriter.Workbook(
        'flaskr\\static\\downloads\\exportData.xlsx')
    worksheet = workbook.add_worksheet('Sheet1')
    col = 0
    for i in export_item:
        worksheet.write(0, col, item_name_dict[i])
        col = col + 1
    for i in range(len(id_list)):
        col = 0
        print(i)
        for j in export_item:
            worksheet.write(i + 1, col, table_data[i][j])
            col = col + 1
            print(j)

    workbook.close()
    # # print(os.path.join(os.path.dirname(
    # #     __file__), 'static', 'downloads', 'exportData.xlsx'))
    msg = '成功导出' + str(len(id_list)) + '条信息'

    return jsonify({'msg': msg, 'filename': 'exportData.xlsx'})
Esempio n. 14
0
def search_data():
    # 获取要查询的表
    table_list = request.args.getlist("select_table_list[]")

    # 获取要查询的年份和分校
    year = request.args.get("year", type=str)
    school = request.args.get("school", type=str)

    # 获取要查询的项
    select_item = {}
    select_item_list = request.args.getlist("select_item_list[]")
    for item in select_item_list:
        select_item[item] = request.args.get(item, type=str)
        table_list.append(select_item[item])

    # 获取要查询的表
    table_list = list(set(table_list))
    print(table_list)

    # 获得要查询的字段和值
    search_item_list = request.args.getlist("condition_item_list[]")
    search_string_list = request.args.getlist("search_string_list[]")

    # 拼接condition_dict字典
    condition_dict = {}
    for i in range(0, len(search_item_list)):
        condition_dict[
            search_item_list[i]] = " LIKE '%" + search_string_list[i] + "%'"

    # 查询结果
    data = []
    if school == "全部数据":
        # 查所有分校
        data = select_table(table_list, year, select_item, condition_dict)
    else:
        # 查特定分校
        person_id_data = select_table(
            ["school", "job"],
            year,
            {"person_id": "job"},
            {"school_" + year + ".school_name": " = '" + school + "'"},
        )
        select_item["person_id"] = "person"
        search_data = select_table(table_list, year, select_item,
                                   condition_dict)

        person_id_list = []
        for i in person_id_data:
            person_id_list.append(i["person_id"])
        for i in search_data:
            if i["person_id"] in person_id_list:
                del i["person_id"]
                data.append(i)

    # 未查询到结果
    if len(data) == 0:
        total = 0
        msg = "没有查询到相关信息"
        return jsonify({"msg": msg, "total": total})

    # 写入表格数据
    item_name_dict = {
        "person_id": "编号",
        "person_name": "姓名",
        "gender": "性别",
        "id_number": "身份证号",
        "phone": "联系电话",
        "political_status": "政治面貌",
        "time_Party": "入党时间",
        "time_work": "参加工作时间",
        "address": "家庭住址",
        "resume": "个人简历",
        "edu_start": "第一学历",
        "time_edu_start": "第一学历毕业时间",
        "school_edu_start": "第一学历毕业学校",
        "major_edu_start": "第一学历专业",
        "edu_end": "最高学历",
        "time_edu_end": "最高学历毕业时间",
        "school_edu_end": "最高学历毕业学校",
        "major_edu_end": "最高学历专业",
        "skill_title": "专业技术职称",
        "time_skill": "职称取得时间",
        "skill_unit": "职称发证单位",
        "skill_number": "发证文件批号",
        "time_school": "调入大集中学时间",
        "work_kind": "用工性质",
        "job_post": "工作岗位",
        "time_retire": "退休时间",
        "job_name": "行政职务",
        "class_name": "班级名称",
        "lesson_number": "总课时数",
        "year_result": "年度考核",
        "school_name": "所在分校",
        "honor_time": "发证时间",
        "honor_unit": "发证单位",
        "honor_name": "获奖名称",
        "honor_grade": "证书级别",
        "honor_number": "证书编号",
        "honor_remark": "备注",
        "get_time": "获得时间",
    }

    out_file_name = "exportData(%s).xlsx" % current_time()
    save_path = list_to_path(["flaskr", "static", "downloads", out_file_name])
    workbook = xlsxwriter.Workbook(save_path)
    worksheet = workbook.add_worksheet("Sheet1")
    # 写标题
    col = 0
    for i in data[0]:
        worksheet.write(0, col, item_name_dict[i])
        col = col + 1
    # 写数据
    for i in range(len(data)):
        col = 0
        row = data[i]
        for j in row:
            worksheet.write(i + 1, col, row[j])
            col = col + 1
    workbook.close()

    total = len(data)
    msg = "查询到" + str(len(data)) + "条信息"
    return jsonify({"msg": msg, "total": total, "filename": out_file_name})