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 com.qianwen.posting.cache.WorkstationCache;
|
import com.qianwen.posting.constant.CommonConstant;
|
import com.qianwen.posting.dto.CalendarShiftInfoDTO;
|
import com.qianwen.posting.entity.mysql.Workstation;
|
import com.qianwen.posting.mapper.mysql.CalendarMapper;
|
import com.qianwen.posting.mapper.mysql.WorkstationMapper;
|
import com.qianwen.posting.service.IWorkstationService;
|
import com.qianwen.posting.utils.LocalDateTimeUtils;
|
*/
|
import org.springframework.stereotype.Service;
|
|
@Service
|
public class WorkstationService extends BaseServiceImpl<WorkstationMapper, Workstation>{
|
@Autowired
|
private CalendarMapper calendarMapper;
|
//BaseEntity a;
|
/*
|
|
@Override
|
public void updateWorkStationCalendar() {
|
List<Workstation> list = list((Wrapper) new QueryWrapper().lambda().isNotNull((v0) -> {
|
return v0.getCalendarCodeWaiting();
|
}));
|
List<Workstation> 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<CalendarShiftInfoDTO> 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;
|
}
|
|
}
|