Giter Club home page Giter Club logo

jingjing's Introduction

Just For You

状态

  • 开发已完成,流程已跑通,结果准确性测试验证中

  • 2022-11-03新增输入文件数据格式检测

问题描述

问题描述

解决步骤

1、以所有员工最早的入职日期为起始日期对后续每一个工作日进行遍历

2、对每个工作日,分为每天开始时和每天结束时:

(1)每天开始时,查看哪些已入职的员工目前处于闲置状态,对每个闲置的员工,分别在所有未完成项目中,计算“项目剩余预算%单日总支出”,取余数最小的项目加入

(2)每天结束时,计算每个未完成项目的剩余预算,并预估剩余预算能否支撑到下个工作日,如不能,则该项目于本日结束,将所有参与该项目的员工状态改为闲置。最后,判断是否所有项目均已完结,如完结,则结束

文件说明

  • run.ipynb :juypter执行文件

  • run.py :执行文件

  • schedule.py :工作流函数

  • tools.py :时间工具函数

  • read_file.py :读写文件函数

  • common.py :员工/项目类定义

  • constant.py :参数文件,可自行配置文件输入输出名

  • data_check.py :输入文件数据格式检测函数

  • requirements.txt :所需python包

  • inputFiles :输入文件放置文件夹,需按指定格式自行配置,详见输入文件说明

  • outputFiles :输出文件文件夹,存放所有输出文件,详见输出文件说明

  • doc :文档目录,包括问题描述、离线操作手册

操作流程

输入文件说明:

  • blackList.txt : 周一到周五但是是休息日的日期列表,需根据国家法定节假日定期更新,单列,详见示例文件 ./inputFiles/blackList.txt

  • whiteList.txt : 周六周日但是是工作日的日期列表,需根据国家法定节假日定期更新,单列,详见示例文件 ./inputFiles/whiteList.txt

  • people.xlsx : 员工列表,分为4列:{姓名,日薪,入职日期,休假日期},详见示例文件 ./inputFiles/people_eg.xlsx

  • project.xlsx : 项目列表,分为2列:{项目名称,项目总预算},详见示例文件 ./inputFiles/project_eg.xlsx

说明:

1、通常情况我们可以通过周几来判断是否是工作日,但当遇到某些国家法定节假日时可能会做出某些调整,导致某些周一至周五变为休息日,亦或某些周六周日变为工作日,因而需要将这些特例做单独处理

2、所有文件均无表头,第一行即为真实数据!

3、people.xlsxproject.xlsx 信息请放在“Sheet1”页!

4、people.xlsxproject.xlsx 两个文件中,除休假日期,其余均不可为空!

5、字符串日期格式统一为 YYYY-MM-DD,例如 2022-10-08

6、休假日期用英文逗号做分割,例如2022-01-03,2022-03-04,没有可置空

7、所有文件统一放入文件夹 inputFiles

8、如需修改相关文件名,可在 constant.py 中进行修改

9、程序已加入对输入文件中数据的验证提示功能,包括员工重名检测、项目名称重名检测、日薪格式检测、项目预算格式检测、入职日期格式检测、休假日期格式检测。仅做提示,不会做修正或中断程序。可能导致错误如下:

(1)员工姓名和项目名称请确保没有重名,否则结果会出现混淆

(2)金额类数据格式错误会导致程序报错中断

(3)日期类格式错误(2000年以前、2030年以后的日期均会提示)可能会导致结果错误,也可能导致程序报错中断

10、当前仅测试xlsx文件可用,xls和csv格式暂未测试

输出文件说明:

  • people_out.xlsx :员工排期输出:分为4列:{姓名,所在项目名称,进入项目时间,退出项目时间},详见示例文件 ./outputFiles/people_out_eg.xlsx

  • project_out.xlsx :项目信息输出,分为4列:{项目名称,项目开始时间,项目结束时间,项目剩余预算},详见示例文件 ./outputFiles/project_out_eg.xlsx

说明:

1、所有输出文件统一放入文件夹 outputFiles

2、如需修改相关文件名,可在 constant.py 中进行修改

运行步骤:

以下两种方式任选其一即可,推荐python版本为3.6/3.7/3.8

1、python

安装python和git

    win+R输入cmd,弹出命令行窗口(mac打开“终端”即可)

    进入到一个保存代码的目录

    git clone https://github.com/maplelinfy/Jingjing.git

    cd Jingjing

    pip install -r requirements.txt(可先pip list查看需要的包是否存在,请保证版本一致,xlrd2.0版本不可用。如下载速度过慢,可在命令后加参数-i https://pypi.tuna.tsinghua.edu.cn/simple)

    python run.py

2、jupyter notebook

安装anaconda和git

    win+R输入cmd,弹出命令行窗口(mac打开“终端”即可)

    进入到一个保存代码的目录(最好放C盘,其他盘需先切换目录)

    git clone https://github.com/maplelinfy/Jingjing.git

    下载完成后,输入 jupyter notebook,回车,会自动弹出网页窗口显示目录

    点击进入到刚才下载下来的Jingjing文件夹

    点击进入 run.ipynb

    点击代码块至可编辑状态,ctrl+enter执行代码

离线版如何使用:

详见离线操作手册

离线操作手册

TODO

1、细化输出文件展示内容

jingjing's People

Contributors

maplelinfy avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.