package com.qianwen.mdc.collect.service; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import java.lang.invoke.SerializedLambda; import java.time.Instant; import java.time.LocalDate; import java.time.ZoneOffset; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.qianwen.core.mp.base.BaseServiceImpl; import com.qianwen.core.tool.utils.Func; import com.qianwen.mdc.collect.constants.CommonConstant; import com.qianwen.mdc.collect.dto.CalendarShiftInfoDTO; import com.qianwen.mdc.collect.entity.mgr.Workstation; import com.qianwen.mdc.collect.mapper.mgr.CalendarMapper; import com.qianwen.mdc.collect.mapper.mgr.WorkstationMapper; import com.qianwen.mdc.collect.utils.LocalDateTimeUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class WorkstationService extends BaseServiceImpl{ @Autowired private CalendarMapper calendarMapper; //BaseEntity a; /* @Override public void updateWorkStationCalendar() { List list = list((Wrapper) new QueryWrapper().lambda().isNotNull((v0) -> { return v0.getCalendarCodeWaiting(); })); List workstationList = new ArrayList<>(); if (Func.isNotEmpty(list)) { list.stream().filter(workStation -> { return Func.isNotEmpty(workStation.getCalendarCodeWaiting()); }).forEach(workStation2 -> { workStation2.setCalendarCode(workStation2.getCalendarCodeWaiting()); workStation2.setCalendarCodeWaiting(""); workstationList.add(workStation2); }); } updateBatchById(workstationList); WorkstationCache.clearWorkStationCache(); } */ public CalendarShiftInfoDTO getCalendarShiftInfoForWorkstation(Long workstationId, Date date) { Workstation workstationInfo = getById(workstationId); CalendarShiftInfoDTO result = null; if (Func.isNotEmpty(workstationInfo) && !"#default#".equals(workstationInfo.getCalendarCode())) { List calendarShiftInfoDTOList = this.calendarMapper.getCalendarShiftInfoToday(workstationInfo.getCalendarCode(), DateUtil.formatDate(date)); if (Func.isNotEmpty(calendarShiftInfoDTOList)) { CalendarShiftInfoDTO relatedShift = calendarShiftInfoDTOList.stream().filter(x -> { return x.getStartTime().getTime() <= date.getTime() && x.getEndTime().getTime() >= date.getTime(); }).findFirst().orElse(null); if (Func.isNotEmpty(relatedShift)) { result.setCode(relatedShift.getCode()); result.setFactoryDate(relatedShift.getFactoryDate()).setFactoryYear(relatedShift.getFactoryYear()).setFactoryWeek(relatedShift.getFactoryWeek()).setFactoryMonth(relatedShift.getFactoryMonth()).setShiftIndex(relatedShift.getShiftIndex()).setShiftTimeType(result.getShiftTimeType()); } } } if (Func.isEmpty((Object) null)) { result = new CalendarShiftInfoDTO(); LocalDate localDate = Instant.ofEpochMilli(date.getTime()).atZone(ZoneOffset.systemDefault()).toLocalDate(); result.setCode("#default#"); result.setFactoryDate(DatePattern.PURE_DATE_FORMAT.format(date)).setFactoryYear(Integer.valueOf(DateUtil.year(date))).setFactoryWeek(LocalDateTimeUtils.getWeek(localDate)).setFactoryMonth(Integer.valueOf(DateUtil.month(date) + 1)).setShiftIndex(CommonConstant.DEFAULT_SHIFT_INDEX).setShiftTimeType(CommonConstant.DEFAULT_SHIFT_TYPE); } return result; } }