SilerKing 发表于 2020-10-14 13:47:25

一些关于考勤管理的简单的二次开发

这篇帖子不完全算问问题,因为对新版考勤管理手机打卡页面及某些功能不满意,对这一部分功能进行简单的二次开发,现整理一下,供其他人讨论及参考
所用源代码版本服务器端为5.2.2版,Android端为5.1.9版,都是大约今年9月更新的,老版本本帖提到的一些类可能找不到。
1.手机打卡页面更换回旧版。
目前正式服采用的是今年5月更新的版本,手机打卡界面有一幅地图,还有打卡范围及定位范围,不知道哪次版本更迭界面大改,地图取消被一个大按钮代替,非常不直观。查询源代码发现源代码中包含旧版页面,改回原来页面的方法:
安卓端找到net.zoneland.x.bpm.mobile.v1.zoneXBPM.app.attendance.main包下面的AttendanceMainActivity.kt找到第44行arrayListOf<Fragment>(AttendanceCheckInNewFragment(), AttendanceStatisticFragment())修改为
arrayListOf<Fragment>(AttendanceCheckInFragment(), AttendanceStatisticFragment())然后重新编译打包。
苹果端打包太费事,不清楚有无不修改手机端源代码将打卡页面切回旧版的方法。
2.考勤打卡次数改为无限次
目前版本打卡次数变成有次数限制了,设定策略一天两次卡则在手机上一天只能打两次,一天三次卡则在手机上一天只能打三次,然后打卡按钮就变灰或消失。
据我观察很多人打卡时不放心,习惯多按几次,但早上把次数耗尽了晚上就打不上卡了。
现将打卡次数修改为无限次:
服务器端x_attendance_assemble_control下的com.x.attendance.assemble.control.jaxrs.attendancedetail包下的BaseAction类,注释掉全部的
woSignFeature.setSignSeq(-1);
重新打包生成war文件替换原来的文件。
这么改只对旧版,就是带地图的那版有效,新版无效。
新版本安卓端有更新打卡记录的功能,苹果端没有,不清楚怎么回事。

SilerKing 发表于 2020-10-15 09:47:57

续:
经查询苹果端及安卓端源代码,选用考勤打卡页面的判断条件是一个叫scheduleInfos的list是否为空,不为空则选用新版,为空、不存在则选用旧版。查询服务器端后台代码,这个list在服务器端x_attendance_assemble_control下的com.x.attendance.assemble.control.jaxrs.attendancedetail包下的ActionListMyMobileRecordToday类赋值,所以注释ActionListMyMobileRecordToday类的153行
wo.setScheduleInfos(scheduleInfos);
可以回到旧版打卡页面,对苹果、安卓都有效并且不用修改APP端源码,昨天说的改安卓代码也可以省了。但怎么改会不会产生其他什么问题还要详细测一下。

论坛管理员 发表于 2020-10-15 10:51:20

嗯。欢迎大家分析经验!
页: [1]
查看完整版本: 一些关于考勤管理的简单的二次开发