当前位置: 首页 > wzjs >正文

网站建设多少钱一年上首页seo

网站建设多少钱一年,上首页seo,四线城市做网站建设怎么样,网络服务商英文这是一个基于Flask和PyQt的排班系统,可以将Web界面嵌入到桌面应用程序中。 系统界面: 功能特点: - 读取员工信息和现有排班表 - 自动生成排班表 - 美观的Web界面 - 独立的桌面应用程序 整体架构: 系统采用前后端分离的架构…

这是一个基于Flask和PyQt的排班系统,可以将Web界面嵌入到桌面应用程序中。

系统界面:

功能特点:

- 读取员工信息和现有排班表

- 自动生成排班表

- 美观的Web界面

- 独立的桌面应用程序

整体架构:

系统采用前后端分离的架构设计,通过 PyQt5 的 WebEngine 组件将 Web 界面嵌入到桌面应用中。

├── 桌面应用层 (PyQt5)

│   └── WebEngine 视图

├── Web 层 (Flask)

│   ├── 路由控制

│   └── 业务逻辑

└── 数据层

    ├── CSV 数据文件

    └── Excel 导出

核心模块:

主程序模块 (main.py)

  • 负责初始化 PyQt5 应用
  • 集成 Flask 服务器
  • 管理主窗口和 Web 视图

后端服务模块 (app.py)

  • 提供 RESTful API
  • 处理排班算法
  • 管理数据导入导出

前端界面模块 (templates/index.html)

  • 员工列表管理
  • 排班表显示
  • 用户交互处理

核心代码:main.py

import sys
import time
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtCore import QUrl
from flask import Flask
import threading
import osclass MainWindow(QMainWindow):def __init__(self):super().__init__()self.setWindowTitle("排班系统")self.setGeometry(100, 100, 1200, 800)# 创建中心部件central_widget = QWidget()self.setCentralWidget(central_widget)layout = QVBoxLayout(central_widget)# 创建Web视图self.web_view = QWebEngineView()layout.addWidget(self.web_view)# 启动Flask服务器self.start_flask_server()# 等待服务器启动后加载页面time.sleep(1)  # 给服务器一点启动时间self.web_view.setUrl(QUrl("http://127.0.0.1:3863"))def start_flask_server(self):# 在新线程中启动Flask服务器threading.Thread(target=self.run_flask, daemon=True).start()def run_flask(self):from app import appapp.run(host='127.0.0.1', port=3863)def main():app = QApplication(sys.argv)window = MainWindow()window.show()sys.exit(app.exec_())if __name__ == '__main__':main() 

核心代码:app.py

from flask import Flask, render_template, request, jsonify, send_file
import pandas as pd
from datetime import datetime, timedelta
import calendar
import json
import numpy as np
import osapp = Flask(__name__)# 班次定义
SHIFTS = {'白班': 'D','晚班': 'N','休息': 'R'
}# 读取员工数据
def load_employee_data():try:df = pd.read_csv('Employee.csv', encoding='utf-8')# 只返回员工姓名列return pd.DataFrame({'name': df["Employee'sName"]})except Exception as e:print(f"Error loading employee data: {e}")return pd.DataFrame({'name': []})# 读取排班表
def load_schedule():try:df = pd.read_excel('客户服务部排班表20250301-20250331.xls')return dfexcept Exception as e:print(f"Error loading schedule: {e}")return pd.DataFrame()def get_month_calendar(year, month):cal = calendar.monthcalendar(year, month)return caldef generate_monthly_schedule(employees, year, month):num_days = calendar.monthrange(year, month)[1]num_employees = len(employees)# 将employees列表转换为numpy数组employees_array = np.array(employees)# 创建排班表schedule = pd.DataFrame(index=employees, columns=range(1, num_days + 1))schedule.fillna('R', inplace=True)  # 默认全部休息# 为每一天分配班次for day in range(1, num_days + 1):# 确保每天有足够的白班和晚班day_employees = employees_array.copy()np.random.shuffle(day_employees)# 分配白班(约40%的员工)day_shifts = int(num_employees * 0.4)schedule.loc[day_employees[:day_shifts], day] = 'D'# 分配晚班(约30%的员工)night_shifts = int(num_employees * 0.3)schedule.loc[day_employees[day_shifts:day_shifts+night_shifts], day] = 'N'# 确保每周至少休息两天for employee in employees:for week in range(0, num_days, 7):week_schedule = schedule.loc[employee, week+1:min(week+7, num_days)]rest_days = (week_schedule == 'R').sum()if rest_days < 2:work_days = list(week_schedule[week_schedule != 'R'].index)if work_days:  # 确保有工作日可以调整np.random.shuffle(work_days)for i in range(min(2-rest_days, len(work_days))):schedule.loc[employee, work_days[i]] = 'R'return schedule@app.route('/')
def index():return render_template('index.html')@app.route('/api/employees')
def get_employees():df = load_employee_data()return jsonify(df.to_dict('records'))@app.route('/api/calendar/<int:year>/<int:month>')
def get_calendar(year, month):cal = get_month_calendar(year, month)return jsonify(cal)@app.route('/api/generate_schedule', methods=['POST'])
def generate_schedule():try:data = request.get_json()year = data.get('year', 2025)month = data.get('month', 1)selected_employees = data.get('employees', [])if not selected_employees:return jsonify({"status": "error", "message": "请选择员工"})schedule = generate_monthly_schedule(selected_employees, year, month)# 将DataFrame转换为字典格式schedule_dict = {}for employee in selected_employees:schedule_dict[employee] = schedule.loc[employee].to_dict()return jsonify({"status": "success","schedule": schedule_dict,"message": "排班表生成成功"})except Exception as e:return jsonify({"status": "error", "message": str(e)})@app.route('/api/export_schedule', methods=['POST'])
def export_schedule():try:data = request.get_json()year = data.get('year', 2025)month = data.get('month', 1)schedule_data = data.get('schedule', {})# 创建新的排班表df = pd.DataFrame.from_dict(schedule_data, orient='index')# 设置列名为日期df.columns = [str(i) for i in range(1, len(df.columns) + 1)]# 重置索引,将员工名称作为一列df.reset_index(inplace=True)df.rename(columns={'index': '姓名'}, inplace=True)# 保存文件output_file = f'客户服务部排班表{year}{month:02d}01-{year}{month:02d}{calendar.monthrange(year, month)[1]}.xlsx'# 使用 openpyxl 引擎保存为 xlsx 格式df.to_excel(output_file, index=False, engine='openpyxl')# 返回文件下载路径return send_file(output_file,as_attachment=True,download_name=output_file,mimetype='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')except Exception as e:print(f"Export error: {str(e)}")  # 添加错误日志return jsonify({"status": "error", "message": f"导出失败: {str(e)}"})if __name__ == '__main__':app.run(host='127.0.0.1', port=3863, debug=True) 

http://www.dtcms.com/wzjs/182233.html

相关文章:

  • 兰州网站建设公企业宣传方式有哪些
  • 温州建网站公司石家庄百度seo
  • 张家港快速网站建设sem公司
  • 网站运营推广怎么做人工智能培训心得体会
  • 成都网站建设 推广行网站seo的优化怎么做
  • 网站特效模板常德网站设计
  • 做seo要明白网站北京做网页的公司
  • 中企动力做的网站被百度屏蔽seo快速排名是什么
  • 茶百道加盟费大概要多少安卓神级系统优化工具
  • 支付宝网站接口申请百度云资源搜索平台
  • 东莞资深网站建设杭州百度快照优化排名推广
  • 有哪些可以做推广的网站互联网广告怎么做
  • xampp部署wordpress企业seo排名费用报价
  • 嘉定品牌网站建设合肥优化营商环境
  • 网站建设工作内容百度代理查询系统
  • 亦庄网站设计seo全网营销的方式
  • 企业微信网站建设方案推销产品怎么推广
  • 公司网站一年费用百度搜索seo优化技巧
  • wordpress 一年好贵上海做网站优化
  • 阅读转发网站那些做的比较好青岛网站推广企业
  • 大学生可做的网站主题保温杯软文营销300字
  • 重庆网站建设就选承越百度上传自己个人简介
  • 比赛网站开发网站网址查询工具
  • 中国建设新闻网站世界搜索引擎公司排名
  • html5 网站开发定制好的网站或网页
  • 做文库网站怎么赚钱吗百度友情链接
  • 网站设计中怎么做二级页面seo排名是什么意思
  • 网站上怎么做弹幕效果凡科建站平台
  • 西宁市建设局网站新郑网络推广
  • 苏州企业建站系统模板百度关键词优化软件排名