|
@@ -10889,6 +10889,70 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public HttpRespMsg rejectAbnormalReportTime(HttpServletRequest request, String ymonth) {
|
|
|
|
+ HttpRespMsg msg=new HttpRespMsg();
|
|
|
|
+ DateTimeFormatter df =DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
|
+ User operator = userMapper.selectById(request.getHeader("token"));
|
|
|
|
+ Integer companyId = operator.getCompanyId();
|
|
|
|
+ WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new LambdaQueryWrapper<WxCorpInfo>().eq(WxCorpInfo::getCompanyId, companyId));
|
|
|
|
+ List<Information> informationList = new ArrayList<>();
|
|
|
|
+ LocalDate firstDay = LocalDate.parse(ymonth + "-01");
|
|
|
|
+ LocalDate lastDay = firstDay.with(TemporalAdjusters.lastDayOfMonth());
|
|
|
|
+ List<Map<String, Object>> exceedCardTimeList = getReportTimeLessThanCardTimeList(firstDay,lastDay,null,null, companyId, false);
|
|
|
|
+ if(exceedCardTimeList.size()>0){
|
|
|
|
+ exceedCardTimeList.forEach(e->{
|
|
|
|
+ Information information=new Information();
|
|
|
|
+ String curUserid = String.valueOf(e.get("userId"));
|
|
|
|
+ String date = String.valueOf(e.get("createDate"));
|
|
|
|
+ String userName = String.valueOf(e.get("name"));
|
|
|
|
+ information.setUserId(curUserid);
|
|
|
|
+ information.setTime(LocalDateTime.now());
|
|
|
|
+ information.setContent(date);
|
|
|
|
+ information.setType(0);
|
|
|
|
+ String reason = "您在"+date+"的日报工时与考勤不一致,请修改后提交";
|
|
|
|
+ information.setMsg(reason);
|
|
|
|
+ informationList.add(information);
|
|
|
|
+
|
|
|
|
+ //查询出日报
|
|
|
|
+ List<Report> rList = reportMapper.selectList(new QueryWrapper<Report>().eq("create_date", date).eq("creator_id", curUserid));
|
|
|
|
+ if (rList.size() > 0) {
|
|
|
|
+ //审批流里面增加驳回的记录
|
|
|
|
+ ReportAuditLog log = new ReportAuditLog();
|
|
|
|
+ log.setAuditChannel(1);
|
|
|
|
+ log.setCompanyId(companyId);
|
|
|
|
+ //log.setResult("驳回"+(StringUtils.isEmpty(reason)?"":"("+reason+")"));
|
|
|
|
+ log.setResult(MessageUtils.message("stages.reject")+(StringUtils.isEmpty(reason)?"":"("+reason+")"));
|
|
|
|
+ log.setUserId(operator.getId());
|
|
|
|
+ log.setUserName(operator.getName());
|
|
|
|
+ reportAuditLogMapper.insert(log);
|
|
|
|
+ //员工的日期
|
|
|
|
+ ReportAlogMembdate membdate = new ReportAlogMembdate();
|
|
|
|
+ membdate.setRlogId(log.getId());
|
|
|
|
+ membdate.setState(2);//驳回
|
|
|
|
+ membdate.setCreateDate(LocalDate.parse(date,df));
|
|
|
|
+ membdate.setUserId(curUserid);
|
|
|
|
+ membdate.setUserName(userName);
|
|
|
|
+ reportAlogMembdateMapper.insert(membdate);
|
|
|
|
+ saveDenyReportLog(rList, curUserid, userName, reason);
|
|
|
|
+
|
|
|
|
+ //todo: 增加客户操作记录
|
|
|
|
+ reportMapper.denyReportWithUserAndCreateDate(String.valueOf(e.get("userId")),String.valueOf(e.get("createDate")), operator.getId(), operator.getName(), reason);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //发送企业微信消息
|
|
|
|
+ if(wxCorpInfo!=null&&e.get("corpwxUserId")!=null){
|
|
|
|
+ wxCorpInfoService.sendWXCorpMsg(wxCorpInfo,String.valueOf(e.get("corpwxUserId")), reason, null, WxCorpInfoServiceImpl.TEXT_CARD_MSG_REPORT_ABNOEMAL);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ if(informationList.size()>0){
|
|
|
|
+ informationService.saveBatch(informationList);
|
|
|
|
+ }
|
|
|
|
+ msg.setMsg("考勤异常日报已驳回并发送消息提醒");
|
|
|
|
+ return msg;
|
|
|
|
+ }
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public List<Map<String, Object>> getReportTimeLessThanCardTimeList(LocalDate firstDay, LocalDate lastDay, Integer deptId, String userId, Integer companyId, boolean getAll) {
|
|
public List<Map<String, Object>> getReportTimeLessThanCardTimeList(LocalDate firstDay, LocalDate lastDay, Integer deptId, String userId, Integer companyId, boolean getAll) {
|
|
//获取自己的考勤未填满的记录
|
|
//获取自己的考勤未填满的记录
|
|
@@ -11104,6 +11168,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
Map<String, Object> map = new HashMap<>();
|
|
Map<String, Object> map = new HashMap<>();
|
|
if (targetUser != null) {
|
|
if (targetUser != null) {
|
|
map.put("userId", targetUser.getId());
|
|
map.put("userId", targetUser.getId());
|
|
|
|
+ map.put("corpwxUserId", targetUser.getCorpwxUserid());
|
|
}
|
|
}
|
|
map.put("name", corpwxTime.getName());
|
|
map.put("name", corpwxTime.getName());
|
|
map.put("createDate", dateTimeFormatter.format(corpwxTime.getCreateDate()));
|
|
map.put("createDate", dateTimeFormatter.format(corpwxTime.getCreateDate()));
|
|
@@ -11130,27 +11195,22 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- }
|
|
|
|
-
|
|
|
|
- if (!isMatch) {
|
|
|
|
- Map<String, Object> map = new HashMap<>();
|
|
|
|
- map.put("userId", fvTime.getUserId());
|
|
|
|
- map.put("name", fvTime.getName());
|
|
|
|
- map.put("createDate", dateTimeFormatter.format(fvTime.getWorkDate()));
|
|
|
|
- map.put("workHours", fvTime.getWorkHours());
|
|
|
|
- map.put("reportTime", reportTime);
|
|
|
|
- if (fvTime.getProcinstId() != null && fvTime.getProcinstId().startsWith("bustrip")) {
|
|
|
|
- map.put("isBusTrip", true);
|
|
|
|
|
|
+ if (!isMatch) {
|
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
|
+ map.put("userId", fvTime.getUserId());
|
|
|
|
+ map.put("corpwxUserId", targetUser.getCorpwxUserid());
|
|
|
|
+ map.put("name", fvTime.getName());
|
|
|
|
+ map.put("createDate", dateTimeFormatter.format(fvTime.getWorkDate()));
|
|
|
|
+ map.put("workHours", fvTime.getWorkHours());
|
|
|
|
+ map.put("reportTime", reportTime);
|
|
|
|
+ if (fvTime.getProcinstId() != null && fvTime.getProcinstId().startsWith("bustrip")) {
|
|
|
|
+ map.put("isBusTrip", true);
|
|
|
|
+ }
|
|
|
|
+ resultList.add(map);
|
|
}
|
|
}
|
|
- resultList.add(map);
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- for (UserFvTime time : userFvTimeList) {
|
|
|
|
- if (time.getUserId().equals("8603257582743396361")) {
|
|
|
|
- System.out.println("张南考勤==" + time.getWorkDate()+"=="+time.getWorkHours());
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
//反向,检测有填报日报但是没有考勤的数据
|
|
//反向,检测有填报日报但是没有考勤的数据
|
|
for (Report report : reportList) {
|
|
for (Report report : reportList) {
|
|
boolean hasCardTime = false;
|
|
boolean hasCardTime = false;
|
|
@@ -11187,6 +11247,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
if (!hasCardTime) {
|
|
if (!hasCardTime) {
|
|
Map<String, Object> map = new HashMap<>();
|
|
Map<String, Object> map = new HashMap<>();
|
|
map.put("userId", targetUser.getId());
|
|
map.put("userId", targetUser.getId());
|
|
|
|
+ map.put("corpwxUserId", targetUser.getCorpwxUserid());
|
|
map.put("name", targetUser.getName());
|
|
map.put("name", targetUser.getName());
|
|
map.put("createDate", dateTimeFormatter.format(report.getCreateDate()));
|
|
map.put("createDate", dateTimeFormatter.format(report.getCreateDate()));
|
|
map.put("workHours", 0);
|
|
map.put("workHours", 0);
|