管理

分类下相关文章

人事管理系统开发之三,员工编号号批量生成

需求 人事管理系统中,员工入职的时候,需根据公司前缀生成唯一的员工号。 TODO 找几个知名公司的工卡看看员工号的格式 确保公司信息表中有公司前缀的字段 整理成文档。可以节省其他人收集的时间 按照入职时间顺序生成员工号。参考之前生成设备序列号的规则,复用一下这部分代码。 线上改表 问题的本质 员工号是做什么用的?如果没有员工号,会影响公司运营么? 方便客户投诉时使用。。。因为用名字投诉不方便,也容易重名,用员工编号最合适。 作为员工的唯一标识符 作为员工的登录账号 作为员工的考勤打卡号。作为一些三方考勤设备的标识。 作为员工的薪资发放账号 老员工的问题 按理说应该按照入职时间顺序生成员 ...

阅读全文...

人事管理系统开发系列

在使用 Golang Gin 开发一套公司内部使用人事管理系统。至于为何不使用企业微信或者钉钉,飞书之类的现成系统内置的人事管理模块。领导们给出的原因是,公司内部架构太复杂,企业微信内置模块不支持。 但是实际上,我感觉还是人事部门负责人并没有完整了解过这些平台的人事管理模块,其实是足够灵活配置的,满足需求。只是这些人懒得去了解罢了。不过多抱怨这些了,让开发就开发吧。 这个开发的过程非常的枯燥无趣,而且这种成熟的内部系统,开发再多也没有产出和价值。所以,我觉得边开发,边整理遇到的问题。才能不至于写着写着代码,就想去划水。 系列章节 人事管理系统开发之一,办理入职功能的一起编辑填写功能的实现方 ...

阅读全文...

人事管理系统开发之二,员工资料上传

需求 人事管理系统里设置了一堆员工需要上传的资料清单。当然,包含必须上传的和非必须上传的。 必须上传的,包括毕业证,学位证等 非必须上传的,包括各种资格证书,离职证明等 在编辑员工信息时,会拉取这个清单,显示在界面上。HR 或者员工可以选择上传对应的文件。 接口设计 原有的资料清单接口不做变化,保留,用于资料清单的后台增删改查编辑之用。 需要新增一个资料清单列表接口,可以提交员工 ID,在拉取资料清单的同时,返回: 该员工已经上传了哪些资料 上传时间 上传人 (有可能不是员工自己上传的,而是 HR 或其他管理员上传的) 再就是需要: 上传资料接口。即上传指定员工的某个类型的资料。传递 ...

阅读全文...

人事管理系统开发之一,办理入职功能的一起编辑填写功能的实现方案

在开发公司内部的人事系统,需要新增一个办理入职功能。用于给新入职人员录入基本个人信息,教育经历,工作经历等信息。 同时可以实现一同编辑功能,即 HR 人事只需要录入姓名身份证号,其他个人信息由新入职人员自行填写。(此时新员工还没有内部系统的账号) 即新员工打开一个链接,就能直接编辑个人信息。其他的岗位信息由 HR 人员可以同步编辑。互不影响。 逻辑梳理 操作流程: HR 人员登录系统,进入办理入职页面。 HR 人员录入待入职员工的姓名和身份证号码。 点击界面上的一起填写的按钮,后台生成一个员工资料填写功能的 URL,或者 token。这个 token 类似 JWT,为一个加密的字符串,里面包 ...

阅读全文...

公司要在办公电脑上安装加密软件,折腾啊

最近公司要求在所有电脑上安装加密软件。其功能是自动将本机的文件,做加密。 加密之后,要通过聊天软件传给其他人,就得先解密。这个解密流程类似企业微信,或者钉钉里的审批流程。 x,我这里一堆 Excel 批量导入的功能,以及 Word 自动化模板处理功能。不知道到时候怎么上传线上环境。只能每次都走审批流程了。 安装加密软件前的准备 微信聊天记录清空,卸载,只保留企业微信来传输文件。注意是防止个人隐私聊天记录被截屏。 退出 wps 账号,并清空本地文件。防止个人文档被加密后,同步到 wps 云盘。那就麻烦了。 安装 我看了一下安装的是北京亿赛通科技的加密软件,没有听说过。 测试 测试了一下,目前 ...

阅读全文...

大结局:修改 PHP 代码解决 SuiteCRM ERR_CACHE_MISS 错误

书接上回,了解了浏览器 ERR_CACHE_MISS 的触发机制之后,对于这种列表页来说,最简单粗暴的做法就是把请求由 POST 改成 GET。 改哪里 SuiteCRM 代码量巨大,茫茫人海,去哪里寻找对应的修改点呢? 首先查看列表页的翻页按钮: <button type="button" id="listViewEndButton_bottom" name="listViewEndButton" title="End" class="list-view-pagination-button&q ...

阅读全文...

开源客户管理系统 SuiteCRM 点击返回按钮报错 ERR_CACHE_MISS

在公司内部署了一套开源的客户管理系统 SuiteCRM, 具体流程参考:Ubuntu Server 22.04 部署安装开源 CRM SuiteCRM 7.14。 但是遇到了一个非常影响体验的问题,经常点击返回按钮报错 ERR_CACHE_MISS。 复现步骤 进入一个超过两页的列表,例如联系人列表 进入列表页第二页,即点击下一页 选择一个联系人,点击,查看详情 点击浏览器的返回按钮 此时浏览器报错:ERR_CACHE_MISS 详细报错信息 中文报错信息: 是否重新提交表单? 要正确显示此网页,请重新提交你之前输入的数据。通过执行此操作,你将重复此页面之前执行的任何操作。 刷新以重新提 ...

阅读全文...

QMS 质量管理系统中的供应商管理

最近一直在开发公司内部使用的 QMS 质量管理系统。 虽然是给质量检测部门使用,但是依然加入了供应商管理功能。 一开始感觉质检部门不应该有权限去查看供应商相关的信息,但是后续在开发的过程中,发现确实还是有一点必要,但是需要区分好侧重点。 数据同步策略 将集采平台的供应商都同步过来?感觉没有意义。 不如直接拉取集采平台中的列表,当有评价、打分时,才去创建评价记录。 采用用户故事的分析方法,即领域模型 打开列表页,从集采平台去拉取供应商列表 添加评价时,新建一条本地的供应商扩展记录,再创建一个供应商评价记录 定时同步来料统计,合格率统计 另一个方案: 将供应商列表直接同步过来。 直接使用集采 ...

阅读全文...

QMS 质量管理系统需求梳理

MES 还没分析明白,又被叫去对接内部的 QMS 质量管理系统需求。这企业数字化的工作,堪比工地小工,哪里需要哪里搬砖。毫无成就感可言。 一上午奔波大半个烟台,中午还错过了午饭,在富士康门口的路边啃了一份炒饼,今天刮大风,还啃了一嘴沙,补钙!真开心 :( QMS QMS 是质量管理系统(Quality Management System)的缩写。 目标 在出货之后,客户能够拿到产品相关的出厂报告。(没有中英文要求,即便是外国客户也依然使用中文报告。。。) 其中包括: 各个零部件的检测报告,合格证照片。 成品的检测报告,及实物照片。 这个出厂报告,由程序根据 word 或者 pdf 模板自动 ...

阅读全文...

研发人员写周报,本质上还是项目计划管理缺失

部门调整,今年主业变成了公司的数字化建设相关的内部开发。 但是,目前还在数字化的初期,具体做什么,从哪部分切入,都是一个未知数。 这周最大的变化是,恢复了之前的周报制度。(曾经用了一段时间的 redmine 项目管理软件,后来停用了) 我最难以接受的是,作为一个公司的数字化部门,周报要每个人提交一个 PPT。。。 这种管理方式怎么好意思去给其他部门推广数字化管理。。。 我看了一下企业微信上有个周报功能,所以推荐了一下是否可以使用这个。 但是我依然觉得周报不是一个好的管理手段。 周报不适合研发人员 纯粹是一种观点吧,如果是 redmine 这类项目管理软件能利用起来,实际是不需要周报这种形式 ...

阅读全文...

企业数字化平台预算清单

目标 把公司数字化平台未来 3 年的设备及软件采购清单列出来。 包含自研的软件系统部分。 看起来是个费时费力的活,绝非一两个小时就能糊弄过去的小 case。 今天的计划又被打乱了。Android 工控屏的设备控制项目又得搁置一下。 计划即瞎猜 这种做未来几年计划的工作在我看来纯属浪费时间,但是没有办法,领导安排的任务只能出卖自己的时间。 《重来》那本书中“计划即瞎猜”一节里有句话: 放下你的臆测吧,现在就决定你这周要做什么,不必去管全年的计划。 待采购设备的厂家及型号 这个非常纠结的一个地方,因为是给未来的采购列计划,那么怎么保证 1 年过去了, 待采购的设备的型号还存在?价格能保持不变呢 ...

阅读全文...

SuiteCRM 二次开发:合同金额与默认货币合同金额的区别

在通过 logic hook 开发 SuiteCRM 合同回款率计算功能时,遇到一个疑问: 为何合同模块有两个合同金额字段?在计算回款率时,我应该使用哪个作为合同金额计算的参考呢? total_contract_value:合同金额 total_contract_value_usdollar:合同金额(默认货币) 这两个字段在数据库的 aos_contracts 表中就能看到,在 admin 的工作室功能中也能看到。 同时,可以看到所有钱相关的字段,都是用了两个字段表示。即便加上了更多的币种,比如人民币,美元,欧元等,也是这两个字段。有 usdollar 后缀的字段,就是默认货币。 实测 ...

阅读全文...

SuiteCRM 二次开发:基于 logic hook 实现合同回款率的计算

SuiteCRM 的这套 hook 机制还是挺灵活的。就是文档有的少,大部分靠摸索。 部署时,只能在工作日晚上,或者周末没人使用时才能部署。异常痛苦。 关联记录存储时相关的 hook 这个属于 Module Hooks,即模块级的 Hook。 after_relationship_add after_relationship_delete 除了关系的添加和删除,实际上应该还有收款记录的值修改需要监听。 after_save 看起来,在合同模块添加 Hook,不如在收款记录模块添加 Hook 更方便管理。因为统计函数能够复用。 后续补充: 这里还是想简单了。关系的添加和收款金额变更这两种 ...

阅读全文...

SuiteCRM 二次开发:logic hook php 代码中使用 raw sql,及打印日志等

有时候不想了解具体的 SuiteCRM 框架代码,想直接在 PHP 中使用 raw sql。 示例代码 global $db; $updateProductsExpiry = "UPDATE aos_products_cstm SET trade_license_expiry_date_c = '".$bean->trade_lic_exp_c."' WHERE id_c IN (".$productIds.") "; $db->query($updateProductsExpiry); 参考: https://git ...

阅读全文...

SuiteCRM 二次开发:关于 bean 的数据操作,及关联关系数据读取

bean 是什么 想起了 java bean。。。SuiteCRM 中 bean 的含义: Beans are the Model in SuiteCRM’s MVC (Model View Controller) architecture. 实际上理解为 Model 即可。类似 PHP Laravel MVC 框架中的 Model,数据模型。 基础操作 if (empty($bean->first_name)) { $bean->first_name = "bot"; // $bean->save(); // 注意这里不需要主动调用 ...

阅读全文...