Commit 623fac14 authored by 姬鋆屾's avatar 姬鋆屾
parents 4b1cba4f ae529035
......@@ -46,6 +46,13 @@ public class AttendanceSummaryQuery {
private Integer dayOfWeek;
/**
* 正常缺勤类型等,['正常', '迟到', '早退', '请假', '旷工', '出差', '加班', '调休', '补签', '其他']
*/
private List<String> summaryTypeList;
private List<Long> staffIdList;
public AttendanceSummaryQuery(String summaryTime) {
this.summaryTime = summaryTime;
}
......
......@@ -163,9 +163,6 @@ public class AttendanceLeaveRecordServiceImpl extends AbstractCRUDServiceImpl<At
attendanceRecordHikQuery.setAttendanceDateEnd(DateUtil.formatDate(entity.getEndTime()));
}*/
//todo: 存在多线程问题 这里不能使用
DateTime attendStart = DateUtil.parseDate(DateUtil.formatDate(entity.getStartTime()));
DateTime attendEnd = DateUtil.parseDate(DateUtil.formatDate(entity.getEndTime()));
Long compare1 = DateUtil.between(attendEnd, attendStart, DateUnit.DAY);
......
......@@ -673,15 +673,36 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
if (pageInfo == null) {
pageInfo = new PageInfo(10);
}
if(!ObjectUtils.isEmpty(params.getSummaryTypeList())){
pageInfo = new PageInfo(-1);
}
Result<AttendanceStatEntity> result = dao.getListExt(params, pageInfo);
if (CollectionUtils.isNotEmpty(result.getList())) {
for (AttendanceStatEntity item : result.getList()) {
//todo 循环查询改造
List<Long> staffIdList = result.getList().parallelStream().map(AttendanceStatEntity::getStaffId).collect(Collectors.toList());
if(!ObjectUtils.isEmpty(staffIdList)){
params.setStaffIdList(staffIdList);
}
Map<Long, List<AttendanceStaffStatEntity>> staffGroupCollect = attendanceStaffStatService.getListExt(params).parallelStream().collect(Collectors.groupingBy(AttendanceStaffStatEntity::getStaffId));
Iterator<AttendanceStatEntity> iterator = result.getList().iterator();
while (iterator.hasNext()) {
AttendanceStatEntity item = iterator.next();
List<AttendanceStaffStatEntity> statEntities = staffGroupCollect.get(item.getStaffId());
if (CollectionUtils.isNotEmpty(statEntities)) {
item.setAttendanceStaffStatEntities(statEntities);
}else {
iterator.remove();
}
}
/* for (AttendanceStatEntity item : result.getList()) {
params.setStaffId(item.getStaffId());
List<AttendanceStaffStatEntity> statEntities = attendanceStaffStatService.getListExt(params);
if (CollectionUtils.isNotEmpty(statEntities)) {
item.setAttendanceStaffStatEntities(statEntities);
}
}
}*/
}
return result;
}
......
......@@ -6,10 +6,23 @@
<select id="getListExt" parameterType="com.mortals.xhx.module.attendance.model.vo.AttendanceSummaryQuery" resultMap="AttendanceStaffStatEntity-Map">
select s.*
from mortals_xhx_attendance_staff_stat as s
where s.staffId=#{staffId}
AND STR_TO_DATE(CONCAT(s.`year`,'-',s.`month`,'-',s.`day`),'%Y-%m-%d') <![CDATA[ >= ]]> STR_TO_DATE(#{summaryTimeStart},'%Y-%m-%d')
where
<if test="staffId != null">
s.staffId=#{staffId} AND
</if>
STR_TO_DATE(CONCAT(s.`year`,'-',s.`month`,'-',s.`day`),'%Y-%m-%d') <![CDATA[ >= ]]> STR_TO_DATE(#{summaryTimeStart},'%Y-%m-%d')
AND STR_TO_DATE(CONCAT(s.`year`,'-',s.`month`,'-',s.`day`),'%Y-%m-%d') <![CDATA[ <= ]]> STR_TO_DATE(#{summaryTimeEnd},'%Y-%m-%d')
<if test="staffIdList != null and staffIdList.size>0">
AND s.staffId in
<foreach collection="staffIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="summaryTypeList != null and summaryTypeList.size>0">
AND s.attendanceSummary REGEXP
replace(<foreach collection="summaryTypeList" open="'" close="'" index="index" item="item" separator="|">${item}</foreach>,' ','')
</if>
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment