|
@@ -13,6 +13,7 @@ import com.management.platform.service.*;
|
|
import com.management.platform.util.*;
|
|
import com.management.platform.util.*;
|
|
import com.management.platform.webservice.po.*;
|
|
import com.management.platform.webservice.po.*;
|
|
import com.management.platform.webservice.po.SapPeriod;
|
|
import com.management.platform.webservice.po.SapPeriod;
|
|
|
|
+import lombok.SneakyThrows;
|
|
import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage;
|
|
import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage;
|
|
import me.chanjar.weixin.mp.api.WxMpService;
|
|
import me.chanjar.weixin.mp.api.WxMpService;
|
|
import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;
|
|
import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;
|
|
@@ -4126,11 +4127,49 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
return msg;
|
|
return msg;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @SneakyThrows
|
|
@Override
|
|
@Override
|
|
- public HttpRespMsg getReportFillStatus(String startDate, String endDate, String userId, HttpServletRequest request) {
|
|
|
|
|
|
+ public HttpRespMsg getReportFillStatus(String startDate, String endDate, String userId, HttpServletRequest request)throws Exception {
|
|
HttpRespMsg msg = new HttpRespMsg();
|
|
HttpRespMsg msg = new HttpRespMsg();
|
|
- msg.data = reportMapper.getReportFillStatus(startDate, endDate, userId);
|
|
|
|
-
|
|
|
|
|
|
+ User user = userMapper.selectById(request.getHeader("token"));
|
|
|
|
+ DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
|
+ List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, user.getCompanyId()));
|
|
|
|
+ List<UserCustom> userCustomList = userCustomMapper.selectList(new LambdaQueryWrapper<UserCustom>().eq(UserCustom::getCompanyId, user.getCompanyId()));
|
|
|
|
+ List<UserFvTime> userFvTimeList = userFvTimeMapper.selectList(new LambdaQueryWrapper<UserFvTime>().between(UserFvTime::getWorkDate, startDate, endDate));
|
|
|
|
+ List<Map<String, Object>> reportFillStatus = reportMapper.getReportFillStatus(startDate, endDate, userId);
|
|
|
|
+ //针对景昱 5978 校验填报工时是否超过考勤
|
|
|
|
+ if(user.getCompanyId().equals(5978)){
|
|
|
|
+ for (Map<String, Object> map : reportFillStatus) {
|
|
|
|
+ map.put("exceedCardTime",0);
|
|
|
|
+ Optional<UserFvTime> first = userFvTimeList.stream().filter(u -> u.getWorkDate().isEqual(LocalDate.parse(String.valueOf(map.get("createDate")), df)) && u.getUserId().equals(userId)).findFirst();
|
|
|
|
+ if(first.isPresent()){
|
|
|
|
+ if(first.get().getWorkHours()!=null){
|
|
|
|
+ map.put("cardTime",first.get().getWorkHours());
|
|
|
|
+ Optional<User> optional = userList.stream().filter(u -> u.getId().equals(userId)).findFirst();
|
|
|
|
+ User targetUser = optional.get();
|
|
|
|
+ List<String> customList = userCustomList.stream().map(UserCustom::getName).collect(Collectors.toList());
|
|
|
|
+ if(customList.size()>0&&customList.contains("是否有加班费")){
|
|
|
|
+ int index = customList.indexOf("是否有加班费");
|
|
|
|
+ targetUser.getPlate1();
|
|
|
|
+ String getter="getPlate"+(index+1);
|
|
|
|
+ Class<User> aClass = User.class;
|
|
|
|
+ Method method = aClass.getMethod(getter);
|
|
|
|
+ String invoke = (String) method.invoke(targetUser);
|
|
|
|
+ if(invoke.equals("有加班费")){
|
|
|
|
+ if(!(Double.valueOf(String.valueOf(map.get("workingTime"))).equals(Double.valueOf(first.get().getWorkHours())))){
|
|
|
|
+ map.put("exceedCardTime",1);
|
|
|
|
+ }
|
|
|
|
+ }else if(invoke.equals("无加班费")){
|
|
|
|
+ if((Double.valueOf(String.valueOf(map.get("workingTime")))<first.get().getWorkHours())){
|
|
|
|
+ map.put("exceedCardTime",1);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ msg.data =reportFillStatus;
|
|
return msg;
|
|
return msg;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -4420,7 +4459,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
Method method = aClass.getMethod(getter);
|
|
Method method = aClass.getMethod(getter);
|
|
String invoke = (String) method.invoke(targetUser);
|
|
String invoke = (String) method.invoke(targetUser);
|
|
if(invoke.equals("有加班费")){
|
|
if(invoke.equals("有加班费")){
|
|
- if(!(Double.valueOf(String.valueOf(data.get("workingTime"))).equals(first.get().getWorkHours()))){
|
|
|
|
|
|
+ if(!(Double.valueOf(String.valueOf(data.get("workingTime"))).equals(Double.valueOf(first.get().getWorkHours())))){
|
|
map.put("exceedCardTime",1);
|
|
map.put("exceedCardTime",1);
|
|
}
|
|
}
|
|
}else if(invoke.equals("无加班费")){
|
|
}else if(invoke.equals("无加班费")){
|