服务报告管理开发
1.项目简介:根据时间范围选定为服务工程师针对大客户和普通客户自动生成相应的服务报告,在网页端展示,并通过导出到Excel发送给相应客户
2. 该项目模块组成为: 客户服务报告模板管理, 汇总服务报告信息, 服务报告查询,服务报告的编辑功能, 服务报告邮件发送功能。
3.使用Vue.js前端搭配MVC后端实现,报告中图标功能采用Echarts开发,Excel中的报告样式通过NPOI实现,邮件发送通过微软集成类Net.Mail实现。
4.发送邮件时 服务报告的在线预览功能通过officeonline搭配生成至web端的文件目录中的文件实现在线预览
5.采用Aspose 将页面报告 按照模板 生成word文件 并导出
Portal系统集成北森HR人事系统
1.项目简介:公司购买第三方北森人事系统作为内部使用,将北森系统中 对人员 组织 岗位 业务上数据发生变化时 同步到portal系统中 并将人员和组织通过钉钉集成接口 推送至钉钉应用
2.项目中的模块:
人员信息CRUD操作的同步 (包括人员的入职,离职,调岗)等业务数据发生变化的同步 并将该人员通过钉钉集成推送到钉钉中的相应部门下
组织信息CRUD操作的同步(包括组织新建 组织换部门 组织换负责人)等业务数据发生变化的同步 并将组织信息推送到钉钉
3.项目中通过Quartz定时同步服务+WebAPI实现主业务逻辑
4.使用RabbitMq消息队列机制,实行消息生产,以及对子系统的消息推送( 通过RouteKey 和 exchange 交换机 生产消息 注册队列queue+长连接 进程实现消费消息 实时推送,延迟队列的推送)
5.项目中遇到的问题:
a.与北森系统对接时字段Mapping问题
b 北森字段测试和生产字段名字不一致 导致实体Model需要两套 采用AutoMapper建立中间DTo解决此问题
c. 部门的层级建立 根据北森返回的 部门路径
d. 同步部门时 若需要设定人员为部门负责人 但又找不到此人 需要先创建人 采用 辅助标记 递归循坏同步 直到 有部门 和人员信息为止
e 北森id portal id 建立关联关系 portal id 和钉钉部门id 钉钉号id建立关联关系
f. 由于Rabbit的 FIFO原则 当第一条消息执行的时间 晚于 第二条消息的执行时间时 即使当前到了第二条消息的时间 它也不会执行 只会等待第一条消息执行完毕才会执行
会使延迟关闭账号的队列 产生block现象阻塞。
目前采取 数据库表 新增实际执行时间字段+ 每晚固定时间 检索 数据库表 当天需要关闭哪些账号 以此规避Rabbit阻塞现象