| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- 1.修改月基准时长。
- 修改类:cn.com.lzt.userattendancedetail.service.impl.UserAttendanceDetailServiceImpl
- 修改方法:updateMonthlyInfo
- 修改内容:line399
- //查看当天的 基准出勤时间 员工“排班信息”核算的时长,需要减去法定工作日排班的时长
- if (null!=entity.getDatumDate()) {
- // add by x 20180413
- // 刨除国定假
- if(null!=worktype && !jsonObj.getWorktype().equals(Globals.dtype_2)) {
- datumAttendanceDate = datumAttendanceDate.add(entity.getDatumDate());
- }
- }
- 2.修改旷工规则。单位天改为分钟
- 修改类:cn.com.lzt.userattendancedetail.service.impl.UserAttendanceDetailServiceImpl
- 修改方法:calculateBelateAndLeaveEarlyAndabsenteeism
- 修改内容:line745、line782
- //迟到,min>30 切小于240分钟 算旷工4小时
- if (dateDiffint>30&&dateDiffint<240) {
- BigDecimal absenteeism = dto.getAbsenteeism().add(new BigDecimal(240));
- dto.setAbsenteeism(absenteeism);
- }
- //迟到,min>=240&&dateDiffint<480 算旷工8小时
- if(dateDiffint>=240&&dateDiffint<480) {
- BigDecimal absenteeism = dto.getAbsenteeism().add(new BigDecimal(480));
- dto.setAbsenteeism(absenteeism);
- }
- //迟到,min>=480 算旷工实际班次工时
- if (dateDiffint>=480) {
- BigDecimal absenteeism = dto.getAbsenteeism().add(new BigDecimal(dateDiffint));
- dto.setAbsenteeism(absenteeism);
- }
- 修改内容:line360
- //如果是国定假出现缺勤,不算旷工
- if (!longHoliday && !Globals.dtype_2.equals(oConvertUtils.getString(dto.getDtype()))) {
- ···
- }
- 修改内容:line751
- //查看当天是否有旷工
- if (null!=jsonObj.getAbsenteeism() && !jsonObj.getWorktype().equals(Globals.dtype_2)) {
- absenteeismAmount = absenteeismAmount.add(jsonObj.getAbsenteeism());
- }
- //查看月度基准时间
- if (null!=jsonObj.getActDatumDate() && !jsonObj.getWorktype().equals(Globals.dtype_2)) {
- monthlyActDatumsum = monthlyActDatumsum.add(jsonObj.getActDatumDate());
- }
- 3.修改实际出勤时间。
- 修改类:cn.com.lzt.userattendancedetail.service.impl.UserAttendanceDetailServiceImpl
- 修改内容:line2373
- //设置超时加班
- userAttendanceDetailEntity.setTimeoutOvertimeDuration(dto.getTimeoutOvertimeDuration());
- 修改内容:line1230
- //判断是否在超时加班时出勤,判断标准是超时加班时长内打卡至少一次
- //如果有出勤,则timeoutOvertimeDuration=timeOutOvertimeHours(排班中超时时长);实际出勤中加上加班时长actualAttendanceDate += timeOutOvertimeHours
- //x20180413
- String jiabanStarttimeStr = dto.getTimeOutOvertimeStime();
- String jiabanEndtimeStr = dto.getTimeOutOvertimeEtime();
- Date jiabanStarttime = getexactDate(dto.getYmdDate(), jiabanStarttimeStr, 0, 0);
- Date jiabanEndtime = getexactDate(dto.getYmdDate(), jiabanEndtimeStr, 0, 0);
- // 如果超时加班跨天设置,则加一
- if(jiabanStarttime.after(jiabanEndtime)) {
- Calendar jiabanendCal = Calendar.getInstance();
- jiabanendCal.setTime(jiabanEndtime);
- jiabanendCal.add(Calendar.DATE, 1);
- jiabanEndtime = jiabanendCal.getTime();
- }
- if (oConvertUtils.isNotEmpty(jiabanStarttimeStr)&&oConvertUtils.isNotEmpty(jiabanEndtimeStr)) {
- for (int i = 0; i < dingAttendanceinfoEntities.size(); i++) {
- DingAttendanceinfoEntity dingAttendanceinfoEntity = dingAttendanceinfoEntities
- .get(i);
- Date temp = dingAttendanceinfoEntity.getAttendanceTime();
- if (oConvertUtils.isNotEmpty(temp)
- &&temp.compareTo(jiabanEndtime) <=0
- && (temp.compareTo(jiabanStarttime) >= 0)) {
- //设置实际超时加班时间
- dto.setTimeoutOvertimeDuration(dto.getTimeOutOvertimeHours());
- //实际出勤时间加上超时加班时间
- BigDecimal actattendTime = dto.getActualAttendanceDate();
- actattendTime.add(dto.getTimeoutOvertimeDuration());
- break;
- }
- }
- }
- 修改内容:line129
- //设置超时加班时长
- userAttendanceDetailEntity.setTimeoutOvertimeDuration(dto.getTimeoutOvertimeDuration());
- 4.超时加班和旷工工时抵扣
- 修改内容:line585
- //旷工工时和超时加班工时进行相互抵扣 x20180415
- if(timeoutOvertimeDuration.compareTo(absenteeismAmount) == 0) {
- //旷工工时等于超时加班工时
- timeoutOvertimeDuration = BigDecimal.ZERO;
- absenteeismAmount = BigDecimal.ZERO;
- }else if(timeoutOvertimeDuration.compareTo(absenteeismAmount) > 0) {
- //超时加班工时多
- timeoutOvertimeDuration = timeoutOvertimeDuration.subtract(absenteeismAmount);
- absenteeismAmount = BigDecimal.ZERO;
- }else {
- //旷工工时多
- absenteeismAmount = absenteeismAmount.subtract(timeoutOvertimeDuration);
- timeoutOvertimeDuration = BigDecimal.ZERO;
- }
- 5.修改国定加班时长,取实际出勤时长
- 修改内容:Line2205
- //如果当天没有请带薪假 并且这一天不是法定假日 则将这一天的基准时长记录入库 ---原有算法
- //将这一天的实际出勤时间计入国定加班时长 x 20180416
- if ((Globals.dtype_2.equals(oConvertUtils.getString(dto.getDtype())))) {
- // nationalOvertimeDuration = dto.getDatumDate();
- nationalOvertimeDuration = dto.getActualAttendanceDate();
- }
- 6.把国定值班天数从值班天数中分离出来
- 修改内容:
- 1)修改数据库表t_bus_user_attendance_total,增加字段national_duty_duration,修改absenteeism_amount字段大小至8位
- 2)修改类UserAttendanceTotalEntity,增加字段nationalDutyDuration,增加相应GETTER和SETTER方法
- 3)修改UserAttendanceDetailServiceImpl
- 增加内容line623
- userAttendanceTotalEntity.setNationalDutyDuration(nationalDutyDuration);
- 修改内容line350
- if (jsonObj.getIhadDuty()) {
- // 把国定值班从值班天数中分离出去 x 20180416
- if(jsonObj.getWorktype().equals(Globals.dtype_2)) {
- //国定值班
- nationalDutyDuration = nationalDutyDuration.add(BigDecimal.ONE);
- }else {
- //非国定普通加班
- //如果这一天加班了 月度加班总和+1
- dutyDuration = dutyDuration.add(BigDecimal.ONE);
- }
- }
- 4)修改工资计算部分,国定加班费中加上国定值班费,3倍普通值班费*国定值班天数
- 修改类:UserPayrollServiceImp
- 修改方法:cn.com.lzt.userwage.service.impl.UserPayrollServiceImpl.overtimeCalculation(UserAttendanceTotalEntity, UserWagestrategyEntity, UserWageEntity, String, PersonnelBaseArchivesManageEntity)
- 修改内容:line1721(新增)
- //把国定值班费算到国定加班费中 x20180416
- BigDecimal nationaltimeoutPay = uw.getOvertimepayFixed(); //已有的国定超时加班费
- BigDecimal nationaldutyPay = meal.getMoney().multiply(new BigDecimal(3)).multiply(uat.getNationalDutyDuration()); //3倍普通值班费*国定值班天数
- uw.setOvertimepayFixed(nationaltimeoutPay.add(nationaldutyPay)); //两部分都赋值到国定加班费里
- 7.修改月度实际出勤时长应去掉值班时长
- 修改内容:line1045,判断是值班的情况直接返回
- // normalworkStime = oConvertUtils.getString(dto.getOndutyStime(), "00:00");
- // normalworkEtime =oConvertUtils.getString( dto.getOndutyEtime(), "23:59");
- return;
- 8.考勤上报确认页面中添加国定值班天数列
- 修改页面:userAttendanceTotal-conform.jsp
- {
- field : 'nationalDutyDuration',
- title : '国定值班天数(日)',
- halign: 'center',
- width : 120,
- align:'right',
- hidden : false,
- sortable : false
- },
- $('#jiabantable').datagrid('loadData',[{
- timeoutOvertimeDuration:totalinfo.timeoutOvertimeDuration,
- nationalOvertimeDuration:totalinfo.nationalOvertimeDuration,
- dutyDuration:totalinfo.dutyDuration,
- nationalDutyDuration:totalinfo.nationalDutyDuration,
- specialOvertime:totalinfo.specialOvertime
- }]);
- 9.登陆去掉验证码
- 1.修改login.jsp
- 2.修改LoginController
- 10.把基准时间改成应出勤时长
- 11.增加原始超時加班時長、原始曠工时长
- UserAttendanceTotalEntity增加两个字段
- 修改数据库表t_bus_user_attendance_total,增加字段absenteeism_amount_orig和TIMEOUT_OVERTIME_DURATION_ORIG两个字段
- 12.修改旷工和超时加班显示方式,加上原始数据
- 修改页面:userAttendanceTotal-conform.jsp
- function getabsenteeValue(){
- if(null == ${userAttendanceTotalPage.absenteeismAmount_orig}){
- return minsToHoursandMinsfmt(${userAttendanceTotalPage.absenteeismAmount});
- }else{
- return minsToHoursandMinsfmt(${userAttendanceTotalPage.absenteeismAmount}) + "(抵扣前:"+minsToHoursandMinsfmt(${userAttendanceTotalPage.absenteeismAmount_orig})+")";
- }
- }
- function getOvertimeValue(){
- if(null == ${userAttendanceTotalPage.timeoutOvertimeDuration_orig}){
- return minsToHoursandMinsfmt(${userAttendanceTotalPage.timeoutOvertimeDuration});
- }else{
- return minsToHoursandMinsfmt(${userAttendanceTotalPage.timeoutOvertimeDuration}) + "(抵扣前:"+minsToHoursandMinsfmt(${userAttendanceTotalPage.timeoutOvertimeDuration_orig})+")";
- }
- }
- 13.修改国定加班费按照员工基本工资算,而不是按照上海市最低基本工资算
- 修改类:UserPayrollServiceImpl
- 修改内容:line1786
- 14.修改超时加班费按照员工基本工资算,而不是按照上海市最低基本工资算
- 修改类:UserPayrollServiceImpl
- 修改内容:line1689
- 15.修改病假扣除按照合同年限扣除
- 修改类:UserPayrollServiceImpl
- 修改内容:line1461
- calcuSickLeaveDebit(uat, uw, per);
- 16.修改社保扣除的小数点位数
- 修改类:UserPayrollServiceImpl
- 修改内容:line1691
|