20180413修改log.txt 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. 1.修改月基准时长。
  2. 修改类:cn.com.lzt.userattendancedetail.service.impl.UserAttendanceDetailServiceImpl
  3. 修改方法:updateMonthlyInfo
  4. 修改内容:line399
  5. //查看当天的 基准出勤时间 员工“排班信息”核算的时长,需要减去法定工作日排班的时长
  6. if (null!=entity.getDatumDate()) {
  7. // add by x 20180413
  8. // 刨除国定假
  9. if(null!=worktype && !jsonObj.getWorktype().equals(Globals.dtype_2)) {
  10. datumAttendanceDate = datumAttendanceDate.add(entity.getDatumDate());
  11. }
  12. }
  13. 2.修改旷工规则。单位天改为分钟
  14. 修改类:cn.com.lzt.userattendancedetail.service.impl.UserAttendanceDetailServiceImpl
  15. 修改方法:calculateBelateAndLeaveEarlyAndabsenteeism
  16. 修改内容:line745、line782
  17. //迟到,min>30 切小于240分钟 算旷工4小时
  18. if (dateDiffint>30&&dateDiffint<240) {
  19. BigDecimal absenteeism = dto.getAbsenteeism().add(new BigDecimal(240));
  20. dto.setAbsenteeism(absenteeism);
  21. }
  22. //迟到,min>=240&&dateDiffint<480 算旷工8小时
  23. if(dateDiffint>=240&&dateDiffint<480) {
  24. BigDecimal absenteeism = dto.getAbsenteeism().add(new BigDecimal(480));
  25. dto.setAbsenteeism(absenteeism);
  26. }
  27. //迟到,min>=480 算旷工实际班次工时
  28. if (dateDiffint>=480) {
  29. BigDecimal absenteeism = dto.getAbsenteeism().add(new BigDecimal(dateDiffint));
  30. dto.setAbsenteeism(absenteeism);
  31. }
  32. 修改内容:line360
  33. //如果是国定假出现缺勤,不算旷工
  34. if (!longHoliday && !Globals.dtype_2.equals(oConvertUtils.getString(dto.getDtype()))) {
  35. ···
  36. }
  37. 修改内容:line751
  38. //查看当天是否有旷工
  39. if (null!=jsonObj.getAbsenteeism() && !jsonObj.getWorktype().equals(Globals.dtype_2)) {
  40. absenteeismAmount = absenteeismAmount.add(jsonObj.getAbsenteeism());
  41. }
  42. //查看月度基准时间
  43. if (null!=jsonObj.getActDatumDate() && !jsonObj.getWorktype().equals(Globals.dtype_2)) {
  44. monthlyActDatumsum = monthlyActDatumsum.add(jsonObj.getActDatumDate());
  45. }
  46. 3.修改实际出勤时间。
  47. 修改类:cn.com.lzt.userattendancedetail.service.impl.UserAttendanceDetailServiceImpl
  48. 修改内容:line2373
  49. //设置超时加班
  50. userAttendanceDetailEntity.setTimeoutOvertimeDuration(dto.getTimeoutOvertimeDuration());
  51. 修改内容:line1230
  52. //判断是否在超时加班时出勤,判断标准是超时加班时长内打卡至少一次
  53. //如果有出勤,则timeoutOvertimeDuration=timeOutOvertimeHours(排班中超时时长);实际出勤中加上加班时长actualAttendanceDate += timeOutOvertimeHours
  54. //x20180413
  55. String jiabanStarttimeStr = dto.getTimeOutOvertimeStime();
  56. String jiabanEndtimeStr = dto.getTimeOutOvertimeEtime();
  57. Date jiabanStarttime = getexactDate(dto.getYmdDate(), jiabanStarttimeStr, 0, 0);
  58. Date jiabanEndtime = getexactDate(dto.getYmdDate(), jiabanEndtimeStr, 0, 0);
  59. // 如果超时加班跨天设置,则加一
  60. if(jiabanStarttime.after(jiabanEndtime)) {
  61. Calendar jiabanendCal = Calendar.getInstance();
  62. jiabanendCal.setTime(jiabanEndtime);
  63. jiabanendCal.add(Calendar.DATE, 1);
  64. jiabanEndtime = jiabanendCal.getTime();
  65. }
  66. if (oConvertUtils.isNotEmpty(jiabanStarttimeStr)&&oConvertUtils.isNotEmpty(jiabanEndtimeStr)) {
  67. for (int i = 0; i < dingAttendanceinfoEntities.size(); i++) {
  68. DingAttendanceinfoEntity dingAttendanceinfoEntity = dingAttendanceinfoEntities
  69. .get(i);
  70. Date temp = dingAttendanceinfoEntity.getAttendanceTime();
  71. if (oConvertUtils.isNotEmpty(temp)
  72. &&temp.compareTo(jiabanEndtime) <=0
  73. && (temp.compareTo(jiabanStarttime) >= 0)) {
  74. //设置实际超时加班时间
  75. dto.setTimeoutOvertimeDuration(dto.getTimeOutOvertimeHours());
  76. //实际出勤时间加上超时加班时间
  77. BigDecimal actattendTime = dto.getActualAttendanceDate();
  78. actattendTime.add(dto.getTimeoutOvertimeDuration());
  79. break;
  80. }
  81. }
  82. }
  83. 修改内容:line129
  84. //设置超时加班时长
  85. userAttendanceDetailEntity.setTimeoutOvertimeDuration(dto.getTimeoutOvertimeDuration());
  86. 4.超时加班和旷工工时抵扣
  87. 修改内容:line585
  88. //旷工工时和超时加班工时进行相互抵扣 x20180415
  89. if(timeoutOvertimeDuration.compareTo(absenteeismAmount) == 0) {
  90. //旷工工时等于超时加班工时
  91. timeoutOvertimeDuration = BigDecimal.ZERO;
  92. absenteeismAmount = BigDecimal.ZERO;
  93. }else if(timeoutOvertimeDuration.compareTo(absenteeismAmount) > 0) {
  94. //超时加班工时多
  95. timeoutOvertimeDuration = timeoutOvertimeDuration.subtract(absenteeismAmount);
  96. absenteeismAmount = BigDecimal.ZERO;
  97. }else {
  98. //旷工工时多
  99. absenteeismAmount = absenteeismAmount.subtract(timeoutOvertimeDuration);
  100. timeoutOvertimeDuration = BigDecimal.ZERO;
  101. }
  102. 5.修改国定加班时长,取实际出勤时长
  103. 修改内容:Line2205
  104. //如果当天没有请带薪假 并且这一天不是法定假日 则将这一天的基准时长记录入库 ---原有算法
  105. //将这一天的实际出勤时间计入国定加班时长 x 20180416
  106. if ((Globals.dtype_2.equals(oConvertUtils.getString(dto.getDtype())))) {
  107. // nationalOvertimeDuration = dto.getDatumDate();
  108. nationalOvertimeDuration = dto.getActualAttendanceDate();
  109. }
  110. 6.把国定值班天数从值班天数中分离出来
  111. 修改内容:
  112. 1)修改数据库表t_bus_user_attendance_total,增加字段national_duty_duration,修改absenteeism_amount字段大小至8位
  113. 2)修改类UserAttendanceTotalEntity,增加字段nationalDutyDuration,增加相应GETTER和SETTER方法
  114. 3)修改UserAttendanceDetailServiceImpl
  115. 增加内容line623
  116. userAttendanceTotalEntity.setNationalDutyDuration(nationalDutyDuration);
  117. 修改内容line350
  118. if (jsonObj.getIhadDuty()) {
  119. // 把国定值班从值班天数中分离出去 x 20180416
  120. if(jsonObj.getWorktype().equals(Globals.dtype_2)) {
  121. //国定值班
  122. nationalDutyDuration = nationalDutyDuration.add(BigDecimal.ONE);
  123. }else {
  124. //非国定普通加班
  125. //如果这一天加班了 月度加班总和+1
  126. dutyDuration = dutyDuration.add(BigDecimal.ONE);
  127. }
  128. }
  129. 4)修改工资计算部分,国定加班费中加上国定值班费,3倍普通值班费*国定值班天数
  130. 修改类:UserPayrollServiceImp
  131. 修改方法:cn.com.lzt.userwage.service.impl.UserPayrollServiceImpl.overtimeCalculation(UserAttendanceTotalEntity, UserWagestrategyEntity, UserWageEntity, String, PersonnelBaseArchivesManageEntity)
  132. 修改内容:line1721(新增)
  133. //把国定值班费算到国定加班费中 x20180416
  134. BigDecimal nationaltimeoutPay = uw.getOvertimepayFixed(); //已有的国定超时加班费
  135. BigDecimal nationaldutyPay = meal.getMoney().multiply(new BigDecimal(3)).multiply(uat.getNationalDutyDuration()); //3倍普通值班费*国定值班天数
  136. uw.setOvertimepayFixed(nationaltimeoutPay.add(nationaldutyPay)); //两部分都赋值到国定加班费里
  137. 7.修改月度实际出勤时长应去掉值班时长
  138. 修改内容:line1045,判断是值班的情况直接返回
  139. // normalworkStime = oConvertUtils.getString(dto.getOndutyStime(), "00:00");
  140. // normalworkEtime =oConvertUtils.getString( dto.getOndutyEtime(), "23:59");
  141. return;
  142. 8.考勤上报确认页面中添加国定值班天数列
  143. 修改页面:userAttendanceTotal-conform.jsp
  144. {
  145. field : 'nationalDutyDuration',
  146. title : '国定值班天数(日)',
  147. halign: 'center',
  148. width : 120,
  149. align:'right',
  150. hidden : false,
  151. sortable : false
  152. },
  153. $('#jiabantable').datagrid('loadData',[{
  154. timeoutOvertimeDuration:totalinfo.timeoutOvertimeDuration,
  155. nationalOvertimeDuration:totalinfo.nationalOvertimeDuration,
  156. dutyDuration:totalinfo.dutyDuration,
  157. nationalDutyDuration:totalinfo.nationalDutyDuration,
  158. specialOvertime:totalinfo.specialOvertime
  159. }]);
  160. 9.登陆去掉验证码
  161. 1.修改login.jsp
  162. 2.修改LoginController
  163. 10.把基准时间改成应出勤时长
  164. 11.增加原始超時加班時長、原始曠工时长
  165. UserAttendanceTotalEntity增加两个字段
  166. 修改数据库表t_bus_user_attendance_total,增加字段absenteeism_amount_orig和TIMEOUT_OVERTIME_DURATION_ORIG两个字段
  167. 12.修改旷工和超时加班显示方式,加上原始数据
  168. 修改页面:userAttendanceTotal-conform.jsp
  169. function getabsenteeValue(){
  170. if(null == ${userAttendanceTotalPage.absenteeismAmount_orig}){
  171. return minsToHoursandMinsfmt(${userAttendanceTotalPage.absenteeismAmount});
  172. }else{
  173. return minsToHoursandMinsfmt(${userAttendanceTotalPage.absenteeismAmount}) + "(抵扣前:"+minsToHoursandMinsfmt(${userAttendanceTotalPage.absenteeismAmount_orig})+")";
  174. }
  175. }
  176. function getOvertimeValue(){
  177. if(null == ${userAttendanceTotalPage.timeoutOvertimeDuration_orig}){
  178. return minsToHoursandMinsfmt(${userAttendanceTotalPage.timeoutOvertimeDuration});
  179. }else{
  180. return minsToHoursandMinsfmt(${userAttendanceTotalPage.timeoutOvertimeDuration}) + "(抵扣前:"+minsToHoursandMinsfmt(${userAttendanceTotalPage.timeoutOvertimeDuration_orig})+")";
  181. }
  182. }
  183. 13.修改国定加班费按照员工基本工资算,而不是按照上海市最低基本工资算
  184. 修改类:UserPayrollServiceImpl
  185. 修改内容:line1786
  186. 14.修改超时加班费按照员工基本工资算,而不是按照上海市最低基本工资算
  187. 修改类:UserPayrollServiceImpl
  188. 修改内容:line1689
  189. 15.修改病假扣除按照合同年限扣除
  190. 修改类:UserPayrollServiceImpl
  191. 修改内容:line1461
  192. calcuSickLeaveDebit(uat, uw, per);
  193. 16.修改社保扣除的小数点位数
  194. 修改类:UserPayrollServiceImpl
  195. 修改内容:line1691