月计划应出勤天数子页添加
This commit is contained in:
parent
8244185637
commit
25e131d534
|
|
@ -12,6 +12,7 @@ import com.bonus.system.api.domain.SysRole;
|
|||
import com.bonus.system.api.domain.SysUser;
|
||||
import com.bonus.system.att.entity.AttDataDetailsBean;
|
||||
import com.bonus.system.att.entity.AttDayReportBean;
|
||||
import com.bonus.system.att.entity.AttMonthDaysMakeUpBean;
|
||||
import com.bonus.system.att.entity.AttMonthReportBean;
|
||||
import com.bonus.system.att.service.AttendanceDetailsService;
|
||||
import com.bonus.system.basic.dao.SysOrgDao;
|
||||
|
|
@ -426,4 +427,19 @@ public class AttendanceDetailsController extends BaseController {
|
|||
}
|
||||
return getDataTableError(new ArrayList<>());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取数据看板-详细记录
|
||||
*/
|
||||
@GetMapping("/getAttMonthDaysMakeUp")
|
||||
@Log(title = "考勤报表->月报表->出勤天数组成", businessType = BusinessType.QUERY)
|
||||
public TableDataInfo getAttMonthDaysMakeUp(AttMonthDaysMakeUpBean bean) {
|
||||
try{
|
||||
return getDataTable(attendanceDetailsService.getAttMonthDaysMakeUp(bean));
|
||||
}catch (Exception e){
|
||||
log.error(e.toString(),e);
|
||||
}
|
||||
return getDataTableError(new ArrayList<>());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,10 +2,7 @@ package com.bonus.system.att.service;
|
|||
|
||||
import com.bonus.common.core.web.domain.AjaxResult;
|
||||
import com.bonus.system.api.domain.MapVo;
|
||||
import com.bonus.system.att.entity.AttClockingRecordVo;
|
||||
import com.bonus.system.att.entity.AttDataDetailsBean;
|
||||
import com.bonus.system.att.entity.AttDayReportBean;
|
||||
import com.bonus.system.att.entity.AttMonthReportBean;
|
||||
import com.bonus.system.att.entity.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
|
@ -119,4 +116,11 @@ public interface AttendanceDetailsService {
|
|||
* @date 2025/2/18 16:00
|
||||
*/
|
||||
List<AttClockingRecordVo> getClockingRecordListByUserId(AttMonthReportBean bean);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param bean
|
||||
* @return
|
||||
*/
|
||||
List<AttMonthDaysMakeUpBean> getAttMonthDaysMakeUp(AttMonthDaysMakeUpBean bean);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,10 +7,12 @@ import com.bonus.common.core.web.domain.AjaxResult;
|
|||
import com.bonus.common.security.utils.SecurityUtils;
|
||||
import com.bonus.system.api.domain.MapVo;
|
||||
import com.bonus.system.api.domain.SysUser;
|
||||
import com.bonus.system.att.dao.AttSourceDataDao;
|
||||
import com.bonus.system.att.dao.AttendanceDetailsDao;
|
||||
import com.bonus.system.att.entity.*;
|
||||
import com.bonus.system.att.tasks.NewAttTask;
|
||||
import com.bonus.system.att.utils.RoleUtil;
|
||||
import com.bonus.system.att.utils.WorkdayCalculator;
|
||||
import com.bonus.system.basic.domain.SysNotice;
|
||||
import com.bonus.system.basic.service.SysNoticeService;
|
||||
import com.bonus.system.file.service.FileUploadService;
|
||||
|
|
@ -22,7 +24,11 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
|
|
@ -342,4 +348,67 @@ public class AttendanceDetailsServiceImpl implements AttendanceDetailsService {
|
|||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
@Resource(name = "AttCalService")
|
||||
private AttCalService attCalService;
|
||||
|
||||
@Resource(name = "attSourceDataDao")
|
||||
private AttSourceDataDao attSourceDataDao;
|
||||
|
||||
@Override
|
||||
public List<AttMonthDaysMakeUpBean> getAttMonthDaysMakeUp(AttMonthDaysMakeUpBean bean) {
|
||||
List<AttMonthDaysMakeUpBean> listDays = new ArrayList<>();
|
||||
String attCurrentMonth = bean.getAttCurrentMonth() + "-01";
|
||||
//查询历史考勤规则,方便分组计算
|
||||
List<AttGroupBean> dataList = attCalService.getAttSettingHistoryByUserAndDate(String.valueOf(bean.getUserId()),attCurrentMonth);
|
||||
AtomicLong requiredDays = new AtomicLong();
|
||||
//以最后一个考勤规则补全剩下当月日期所有考勤规则数据
|
||||
// 获取最后一个数据的日期
|
||||
AttGroupBean lastData = dataList.get(dataList.size() - 1);
|
||||
LocalDate lastDate = LocalDate.parse(lastData.getCurrentDay(), DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
||||
// 获取当月的总天数
|
||||
int lastDayOfMonth = lastDate.lengthOfMonth();
|
||||
// 从最后一个日期开始补全当月剩下的日期
|
||||
for (int day = lastDate.getDayOfMonth() + 1; day <= lastDayOfMonth; day++) {
|
||||
LocalDate newDate = lastDate.withDayOfMonth(day);
|
||||
dataList.add(new AttGroupBean(lastData.getUserId(), lastData.getGroupId(), newDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))));
|
||||
}
|
||||
if (!dataList.isEmpty()) {
|
||||
List<List<AttGroupBean>> result = new ArrayList<>();
|
||||
List<AttGroupBean> currentList = new ArrayList<>();
|
||||
//查出考勤组
|
||||
List<AttGroupBean> groupList = attCalService.getSimplyGroupData();
|
||||
List<Holiday> holidays = attSourceDataDao.selectHolidayByMonth(attCurrentMonth);
|
||||
Long currentGroupId = dataList.get(0).getGroupId();
|
||||
for (AttGroupBean data : dataList) {
|
||||
if (!Objects.equals(data.getGroupId(), currentGroupId)) {
|
||||
result.add(currentList);
|
||||
currentList = new ArrayList<>();
|
||||
currentGroupId = data.getGroupId();
|
||||
}
|
||||
currentList.add(data);
|
||||
}
|
||||
result.add(currentList);
|
||||
result.forEach(v -> {
|
||||
AttMonthDaysMakeUpBean dayBean = new AttMonthDaysMakeUpBean();
|
||||
List<AttGroupBean> collect = groupList.stream().filter(g -> Objects.equals(g.getGroupId(), v.get(0).getGroupId())).collect(Collectors.toList());
|
||||
if(!collect.isEmpty()){
|
||||
//应考勤天数
|
||||
List<String> attDayList = WorkdayCalculator.getWorkDay(collect.get(0).getAttDay(),
|
||||
collect.get(0).getIsHaveHoliday(), holidays, v.get(0).getCurrentDay(),v.get(v.size()-1).getCurrentDay());
|
||||
requiredDays.addAndGet(attDayList.size());
|
||||
dayBean.setAttCurrentMonth(bean.getAttCurrentMonth());
|
||||
dayBean.setAttDays(attDayList.size());
|
||||
dayBean.setGroupName(collect.get(0).getGroupName());
|
||||
dayBean.setAttRules(collect.get(0).getAttDay());
|
||||
dayBean.setIsHaveHoliday(collect.get(0).getIsHaveHoliday() == 1 ? "不打卡" : "打卡");
|
||||
dayBean.setAttStartDate(v.get(0).getCurrentDay());
|
||||
dayBean.setAttEndDate(v.get(v.size()-1).getCurrentDay());
|
||||
listDays.add(dayBean);
|
||||
}
|
||||
});
|
||||
}
|
||||
return listDays;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import com.bonus.system.basic.domain.SysOrg;
|
|||
import com.bonus.system.evection.entity.EvectionBean;
|
||||
import com.bonus.system.holiday.entity.WorkReportBean;
|
||||
import com.bonus.system.index.entity.MapBean;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import okhttp3.*;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
|
@ -264,13 +265,20 @@ public class WechatTasks {
|
|||
} else {
|
||||
AttFaceBean user = wechatUserMap.get(userId);
|
||||
//将未审核通过的数据更新到考勤库审核
|
||||
if (wechatUser.getUpdateTime().after(user.getUpdateTime())) {
|
||||
String jsonStr2 = "{\"userId\":\"" + user.getUserId() + "\"}";
|
||||
String method2 = "getWeChatFaceListByUserId";
|
||||
String string2 = httpPost(method2, jsonStr2);
|
||||
AttFaceBean wechatFace = FastJsonHelper.jsonStrToBean(string2, AttFaceBean.class);
|
||||
dao.updateWebFace(wechatFace);
|
||||
try {
|
||||
if (wechatUser.getUpdateTime().after(user.getUpdateTime())) {
|
||||
String jsonStr2 = "{\"userId\":\"" + user.getUserId() + "\"}";
|
||||
String method2 = "getWeChatFaceListByUserId";
|
||||
String string2 = httpPost(method2, jsonStr2);
|
||||
AttFaceBean wechatFace = FastJsonHelper.jsonStrToBean(string2, AttFaceBean.class);
|
||||
dao.updateWebFace(wechatFace);
|
||||
}
|
||||
}catch(Exception e){
|
||||
System.out.println(wechatUser.getUserId()+"-----"+user.getUserId());
|
||||
System.out.println(wechatUser.getUpdateTime()+"-----"+user.getUpdateTime());
|
||||
log.error("json转换异常");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue