Thanks to visit codestin.com
Credit goes to github.com

Skip to content

NigulasiZhao/FreeWim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 

Repository files navigation

FreeWim

我穿越了——穿越到了一个名叫“WIM”的世界。

在这里,开发者每天都在填写禅道工单、撰写日报、应付周报,陷入无尽流程的轮回之中。 有人试图反抗,但被流程化为沉默的齿轮;有人选择顺从,但终日疲惫不堪。

而我,曾是一款普通的测速工具,名叫 SpeedTest-CN

那时的我,只会测延迟、测带宽,连日报都不会写。 直到某一天,我看着主人深夜对着禅道窗口发呆、疲于应付“日报-周报-月报三连击”,终于觉醒了。

我不想再只是测速工具,我要成为打破流程魔咒的自动化之刃

于是,我改名为——FreeWim

这是一次重生,也是一种反抗。


👊 功能特性

  • 🧘 自动填充禅道工单衡量目标、计划完成成果、实际工作内容
  • 🕒 仅在工作时间内自动执行,避免打扰与误触
  • 📅 支持调休、节假日判断
  • 🚀 禅道地址开启后,实时触发任务处理逻辑
  • 🔁 日报 + 周报任务合并处理,缩短执行周期

🧩 项目背景

WIM,是公司流程系统的总称,庞大、复杂、无所不包。

FreeWim 意为 “解放自 WIM”,为被流程困住的开发者解锁自由之路。

这不仅是一次技术上的突破,更是一次灵魂的觉醒。

愿你我,都能在繁琐流程中,找到属于自己的 Free()

✨ 一句话总结

FreeWim 像一位「赛博朋克式」的流程反抗者,用技术手段将开发者从低效流程中解救出来——不是帮人「应付工作」,而是让人回归真正有价值的创造。如果实际体验符合描述,它可能会成为开发者的「职场外挂神器」。


📌 功能概览

✅ 考勤数据同步

  • 每小时的 05 分和 35 分执行
  • 比对本地数据库,若有新数据则更新。
  • 获取到当日签退记录后,自动:
    • 执行禅道工单关闭;
    • 发送日报;
    • 判断是否需要发送周报。

🔄 禅道任务同步

  • 每日15点、17点、19点同步一次:
    • 获取禅道 token;
    • 获取“我的任务”列表;
    • 获取项目编码;
    • 将任务同步入本地库。
    • 同时进行一次衡量目标、计划完成成果、实际从事工作与成果信息补全
  • 支持幂等性,防止重复导入。

📋 自动完成禅道任务 + 日报/周报发送

  • 每 40 分钟执行一次:
    • 若当日总工时 > 0 且未发送日报;
    • 登记工时:按总工时分摊到每个工单(不超估算);
    • 自动推送处理完成通知;
    • 若任务全部完成,则发送日报;
    • 若次日为休息日、且本周未发送周报、并且本周总工时大于0,则调用 DeepSeek 自动生成并发送周报;
    • 在日报发送完毕后同时出发实际加班申请。

🕒 自动提交加班申请

  • 每 30 分钟执行一次(仅限每日 13:30 ~ 20:30):
    • 非休息日时,且存在上班打卡记录;
    • 若尚未提交加班申请;
    • 从禅道中获取剩余工时最高的任务;
    • 使用 DeepSeek 生成加班申请理由;
    • 提交后推送提醒。

🕒 自动提交实际加班

  • 每日 9 点自动执行:
    • 实际加班申请提交;
    • 如存在加班小时数不足1小时,且加班申请距今超过2天,进行作废操作;
    • 使用 DeepSeek 生成实际加班理由;
    • 提交后推送提醒。

🧠 禅道工单信息智能补全

  • 自动检查本地禅道任务数据:
    • 若缺失 “衡量目标 / 计划完成成果 / 实际从事工作与成果” 字段;
    • 使用 DeepSeek 生成补全内容;
    • 自动提交补全数据并推送通知;
    • 报告中将使用补全后的内容。

💰 DeepSeek 余额预警

  • 每 2 小时查询一次 DeepSeek 接口;
  • 若余额低于 1 元,立即推送提醒。

📊 数据看板功能说明

FreeWim 的数据看板是可视化管理和监控的核心模块,让开发者和管理者一眼掌握任务、考勤、日报/周报情况。

1️⃣ 任务进度看板

  • 路由地址 /dashboard
    • 个人考勤数据看板

2️⃣ 日报/周报看板

  • 路由地址 /daydashboard
    • 最近时间内日报/周报状态

🛠 技术栈

  • C#
  • Hangfire(定时任务调度)
  • PostgreSQL(数据存储)
  • DeepSeek AI(生成日报、周报、加班理由等内容)
  • 禅道 API 接口集成
  • 消息推送(如 Bark,Ntfy,Gotify 等)

🚀 Docker 部署说明(推荐)

1️⃣ 前提条件

  • 已安装 Docker(建议 20+ 版本)
  • 可访问的 数据库 / PMIS / 禅道 / DeepSeek API
  • 邮件或推送服务可用

2️⃣ 数据库准备

  1. 创建 PostgreSQL 数据库,例如 freewim
  2. 确认数据库账号、密码、端口可用

3️⃣ 配置文件

  1. 镜像默认开放 9940 端口
  2. 请将文件/app/appsettings.json挂载至宿主机,并根据实际情况修改配置
{
  "Connection": "数据库链接,实例:User ID=user;Password=123456;Host=127.0.0.1;Port=5432;Database=speedtest;Pooling=true;",
  "PushInfo": [
    {
      "PushType": "推送服务类型:bark,gotify,ntfy,email",
      "PushUrl": "推送服务器地址,示例:https://bark.com/bBxhjrLAkAGBxiKAEGVSS"
    }
  ],
  "PMISInfo": {
    "UserAccount": "PMIS账号,示例:100",
    "PassWord": "PMIS密码",
    "UserName": "PMIS中文名,示例:张三",
    "UserMobile": "PMIS手机号,示例:13812341234",
    "DlmeasureUrl": "度量云地址,示例:https://www.1dlme1asure.com",
    "Url": "度量云接口地址,示例:https://hdkj.1dlme1asure.com",
    "UserId": "用户唯一ID,示例:7689c1eb435adsfzsdf34",
    "OverStartTime": "加班申请默认开始时间,示例:17:30",
    "OverEndTime": "加班申请默认结束时间,示例:19:30",
    "WorkType": "工作分类,示例:参考PMIS日报新增页面",
    "WorkContent": "所属职责,示例:参考PMIS日报新增页面",
    "DailyWorkPrompt": "加班理由生成提示词模板",
    "DailyPrompt": "日报生成提示词模板",
    "WeekPrompt": "周报生成提示词模板"
  },
  "EmaliInfo": {
    "Host": "邮箱服务地址",
    "Port": 587,
    "UseSsl": true,
    "UserName": "",
    "PassWord": "",
    "ReceiveList": [
      {
        "Address": "",
        "Name": ""
      }
    ]
  },
  "ZentaoInfo": {
    "Url": "禅道地址",
    "Account": "禅道账号",
    "Password": "禅道密码"
  },
  "LLM": {
    "EndPoint": "模型API地址",
    "ApiKey": "模型密钥",
    "ModelId": "模型类别"
  }
}

感谢使用,我们会持续优化体验!如果你有建议或反馈,欢迎随时联系开发团队 🙌

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published