package com.qianwen.smartman.modules.cps.service.impl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import java.time.LocalDate;
|
import java.time.LocalDateTime;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
import com.qianwen.smartman.common.utils.LocalDateTimeUtils;
|
import com.qianwen.smartman.common.utils.MessageUtils;
|
import com.qianwen.core.tool.utils.CollectionUtil;
|
import com.qianwen.core.tool.utils.Func;
|
import com.qianwen.smartman.modules.cps.dto.ShiftDetailDTO;
|
import com.qianwen.smartman.modules.cps.dto.ShiftInfoDTO;
|
import com.qianwen.smartman.modules.cps.entity.ShiftDetail;
|
import com.qianwen.smartman.modules.cps.mapper.ShiftDetailMapper;
|
import com.qianwen.smartman.modules.cps.service.ICalendarService;
|
import com.qianwen.smartman.modules.cps.service.IShiftDetailService;
|
import com.qianwen.smartman.modules.cps.service.IShiftRestTimeService;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
@Service
|
/* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/cps/service/impl/ShiftDetailServiceImpl.class */
|
public class ShiftDetailServiceImpl extends ServiceImpl<ShiftDetailMapper, ShiftDetail> implements IShiftDetailService {
|
@Autowired
|
private IShiftRestTimeService shiftRestTimeService;
|
@Autowired
|
private ICalendarService calendarService;
|
private final Integer SHIFT1 = 1;
|
private final Integer SHIFT2 = 2;
|
private final Integer SHIFT3 = 3;
|
private final Integer SHIFT4 = 4;
|
private final String ZERO_TIME = " 00:00:00";
|
|
@Override // org.springblade.modules.cps.service.IShiftDetailService
|
public void saveShiftDetail(List<ShiftDetailDTO> shiftDetailDTOList, Long modelId) {
|
shiftDetailDTOList.stream().map(shiftDetailDTO -> {
|
ShiftDetail shiftDetail = new ShiftDetail();
|
BeanUtils.copyProperties(shiftDetailDTO, shiftDetail);
|
shiftDetail.setModelId(modelId);
|
save(shiftDetail);
|
if (CollectionUtil.isNotEmpty(shiftDetailDTO.getShiftRestTimeDTOList())) {
|
this.shiftRestTimeService.saveRestTime(shiftDetailDTO.getShiftRestTimeDTOList(), modelId, shiftDetail.getId());
|
}
|
return shiftDetail;
|
}).collect(Collectors.toList());
|
}
|
|
@Override // org.springblade.modules.cps.service.IShiftDetailService
|
public List<ShiftInfoDTO> getShiftInfoDtoList(List<Long> workstationIdList, LocalDate startDay, LocalDate endDay) {
|
List<ShiftInfoDTO> calendarCodeShiftDTOList = this.calendarService.listShiftInfo(workstationIdList, startDay, endDay);
|
String message1 = MessageUtils.message("calendar.shift.shift1", new Object[0]);
|
String message2 = MessageUtils.message("calendar.shift.shift2", new Object[0]);
|
String message3 = MessageUtils.message("calendar.shift.shift3", new Object[0]);
|
String message4 = MessageUtils.message("calendar.shift.shift4", new Object[0]);
|
calendarCodeShiftDTOList.forEach(shiftInfoDTO -> {
|
LocalDateTime startTime = LocalDateTimeUtils.stringToLocalDateTime(shiftInfoDTO.getDate() + " 00:00:00").plusMinutes(Long.parseLong(shiftInfoDTO.getStartTime()));
|
LocalDateTime endTime = LocalDateTimeUtils.stringToLocalDateTime(shiftInfoDTO.getDate() + " 00:00:00").plusMinutes(Long.parseLong(shiftInfoDTO.getEndTime()));
|
shiftInfoDTO.setStartTime(LocalDateTimeUtils.formatTime(startTime, LocalDateTimeUtils.NORMAL_PATTERN));
|
shiftInfoDTO.setEndTime(LocalDateTimeUtils.formatTime(endTime, LocalDateTimeUtils.NORMAL_PATTERN));
|
shiftInfoDTO.setIndexName(Func.isNotEmpty(shiftInfoDTO.getIndexName()) ? shiftInfoDTO.getIndexName() : buildDefaultShiftName(shiftInfoDTO.getShiftIndex(), message1, message2, message3, message4));
|
});
|
return calendarCodeShiftDTOList;
|
}
|
|
public String buildDefaultShiftName(Integer shiftIndex, String message1, String message2, String message3, String message4) {
|
String shiftName;
|
if (this.SHIFT1.equals(shiftIndex)) {
|
shiftName = message1;
|
} else if (this.SHIFT2.equals(shiftIndex)) {
|
shiftName = message2;
|
} else if (this.SHIFT3.equals(shiftIndex)) {
|
shiftName = message3;
|
} else {
|
shiftName = message4;
|
}
|
return shiftName;
|
}
|
}
|