From fca5c28c79b061f4db3658f6d9e043024f326962 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期五, 14 十一月 2025 21:58:02 +0800
Subject: [PATCH] 离线默认配置改为300秒
---
collect/src/main/java/com/qianwen/mdc/collect/service/CalendarService.java | 63 +++++++++++++------------------
1 files changed, 27 insertions(+), 36 deletions(-)
diff --git a/collect/src/main/java/com/qianwen/mdc/collect/service/CalendarService.java b/collect/src/main/java/com/qianwen/mdc/collect/service/CalendarService.java
index 3fa9940..39b4eb0 100644
--- a/collect/src/main/java/com/qianwen/mdc/collect/service/CalendarService.java
+++ b/collect/src/main/java/com/qianwen/mdc/collect/service/CalendarService.java
@@ -19,6 +19,7 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qianwen.core.tool.utils.Func;
import com.qianwen.mdc.collect.constants.CommonConstant;
import com.qianwen.mdc.collect.dto.CacheBuildDTO;
import com.qianwen.mdc.collect.dto.CalendarShiftTimeSlicesDTO;
@@ -27,45 +28,23 @@
import com.qianwen.mdc.collect.entity.mgr.ProductionCalendarDaytime;
import com.qianwen.mdc.collect.mapper.mgr.CalendarMapper;
import com.qianwen.mdc.collect.utils.LocalDateTimeUtils;
-import com.qianwen.core.secure.utils.AuthUtil;
-import com.qianwen.core.tool.utils.Func;
-/*
-import com.qianwen.core.redis.cache.BladeRedis;
-import com.qianwen.posting.constant.CommonConstant;
-import com.qianwen.posting.dto.CacheBuildDTO;
-import com.qianwen.posting.dto.CalendarShiftTimeSlicesDTO;
-import com.qianwen.posting.dto.TimestampToProductionTimeCacheDto;
-import com.qianwen.posting.entity.mysql.ProductionCalendar;
-import com.qianwen.posting.entity.mysql.ProductionCalendarDaytime;
-
-import com.qianwen.posting.service.ICalendarDayService;
-import com.qianwen.posting.service.ICalendarDaytimeService;
-import com.qianwen.posting.service.ICalendarService;
-import com.qianwen.posting.utils.LocalDateTimeUtils;
-*/
@Service
public class CalendarService extends ServiceImpl<CalendarMapper, ProductionCalendar>{
private static final Logger log = LoggerFactory.getLogger(CalendarService.class);
- @Autowired
- private CalendarDayService calendarDayService;
+ //@Autowired
+ //private CalendarDayService calendarDayService;
@Autowired
private CalendarDaytimeService calendarDaytimeService;
//private final BladeRedis bladeRedis;
-
- /*
- @Override
- public String getShiftIndexNameByCodeAndYear(String calendarCode, Integer year, Integer shiftIndex) {
- return ((CalendarMapper) this.baseMapper).getShiftIndexNameByCodeAndYear(calendarCode, year, shiftIndex, AuthUtil.getTenantId());
- }*/
//鏋勫缓鐢熶骇鏃ュ巻鍒囩墖锛坆lade_production_calendar锛�
public List<TimestampToProductionTimeCacheDto> buildProductionTimeCache(CacheBuildDTO cacheBuildDTO) {
LocalDate targetDate = cacheBuildDTO.getTargetDate();
Set<String> tenantIds = cacheBuildDTO.getTenantIds();
String code = cacheBuildDTO.getCalendarCode();
- List<TimestampToProductionTimeCacheDto> timestampToProductionTimeCacheDtos = new ArrayList<>();
- List<ProductionCalendar> list = list((new QueryWrapper<ProductionCalendar>()).lambda()
+ List<TimestampToProductionTimeCacheDto> timestampToProductionTimeCacheDtos = new ArrayList<>();//杩斿洖缁撴灉锛�
+ List<ProductionCalendar> calList = list((new QueryWrapper<ProductionCalendar>()).lambda()
.in(ProductionCalendar::getTenantId, tenantIds)
.eq(ProductionCalendar::getStatus, CommonConstant.ENABLE)
.eq(StringUtils.isNotBlank(code), ProductionCalendar::getCode, code)
@@ -73,10 +52,10 @@
LocalDateTime startTime = LocalDateTime.of(targetDate, LocalTime.MIN);//0鍒�0绉掑紑濮�
LocalDateTime endTime = LocalDateTime.of(targetDate.plusDays(1L), LocalTime.of(0, 0));//绗簩澶�0鐐�
- if (Func.isNotEmpty(list)) {
- Map<String, List<ProductionCalendar>> collect = (Map<String, List<ProductionCalendar>>)list.stream().collect(Collectors.groupingBy(ProductionCalendar::getTenantId));
- collect.forEach((tenantId, productionList) -> {
- productionList.forEach(productionCalendar -> {
+ if (Func.isNotEmpty(calList)) {
+ Map<String, List<ProductionCalendar>> collect = calList.stream().collect(Collectors.groupingBy(ProductionCalendar::getTenantId));
+ collect.forEach((tenantId, productionCalList) -> {
+ productionCalList.forEach(productionCalendar -> {
TimestampToProductionTimeCacheDto timestampToProductionTimeCacheDto = TimestampToProductionTimeCacheDto.builder().TenantId(productionCalendar.getTenantId()).CalendarCode(productionCalendar.getCode()).NaturalDay(targetDate).build();
List<ProductionCalendarDaytime> dayTimeList = this.calendarDaytimeService.list(new QueryWrapper<ProductionCalendarDaytime>().lambda()
@@ -85,28 +64,40 @@
.between(ProductionCalendarDaytime::getEndTime, startTime, endTime);
}).orderByAsc(ProductionCalendarDaytime::getStartTime));
+ //鍘绘帀dayTimeList绉嶈捣姝㈡椂闂�=startTime鍜宔ndTime鐨勬暟鎹�
List<ProductionCalendarDaytime> dayTimeList2 = dayTimeList.stream().filter(productionCalendarDaytime -> {
return (productionCalendarDaytime.getEndTime().equals(startTime) || productionCalendarDaytime.getStartTime().equals(endTime)) ? false : true;
}).collect(Collectors.toList());
- Map<Integer, CalendarShiftTimeSlicesDTO> timeSlicesMap = new HashMap<>(1919);
+
+ Map<Integer, CalendarShiftTimeSlicesDTO> timeSlicesMap = new HashMap<>(1919);//涓�澶╀腑鐨勫垎閽熷簭鍙� -> DTO
for (int i2 = 0; i2 <= CommonConstant.MINUTE_STOP.intValue(); i2++) {//MINUTE_STOP=1439,宸竴鍒嗛挓23灏忔椂59鍒嗙殑鍒嗛挓鏁�
buildTimeSlicesMap(startTime, endTime, dayTimeList2, timeSlicesMap, i2, targetDate);
}
timestampToProductionTimeCacheDto.setTimeSlicesDTOMap(timeSlicesMap);
+
timestampToProductionTimeCacheDtos.add(timestampToProductionTimeCacheDto);
});
});
}
return timestampToProductionTimeCacheDtos;
}
-
- private void buildTimeSlicesMap(LocalDateTime startTime, LocalDateTime endTime, List<ProductionCalendarDaytime> dayTimeList, Map<Integer, CalendarShiftTimeSlicesDTO> timeSlicesDTOMap, int i, LocalDate targetDate) {
- LocalDateTime localDateTime = LocalDateTime.of(targetDate, LocalTime.MIN).plusMinutes(i).plusSeconds(1L);
+ /**
+ * 鏋勫缓涓�澶╃殑鏃堕棿鍒囩墖鏁版嵁锛屼繚瀛樺埌timeSlicesDTOMap绉�
+ * @param startTime
+ * @param endTime
+ * @param dayTimeList
+ * @param timeSlicesDTOMap 璁剧疆鍊硷紝涓婂眰鏂规硶鐩存帴浣跨敤
+ * @param minutesOfDay 鍒嗛挓鏁板�� 浠�0鐐瑰紑濮嬬殑锛屼笉鏄瘡灏忔椂鐨勫垎閽熸暟
+ * @param targetDate 鏃ユ湡
+ */
+ private void buildTimeSlicesMap(LocalDateTime startTime, LocalDateTime endTime, List<ProductionCalendarDaytime> dayTimeList, Map<Integer, CalendarShiftTimeSlicesDTO> timeSlicesDTOMap, int minutesOfDay, LocalDate targetDate) {
+ LocalDateTime localDateTime = LocalDateTime.of(targetDate, LocalTime.MIN).plusMinutes(minutesOfDay).plusSeconds(1L);
- //鍦╠ayTimeList涓繃婊ゅ嚭鍦╯tarttime锛宔ndtime涔嬮棿鐨勬棩鏈�
+ //鍦╠ayTimeList涓繃婊ゅ嚭鍦╯tarttime锛宔ndtime涔嬮棿鐨勬暟鎹紝鍙栫涓�涓�
ProductionCalendarDaytime productionCalendarDaytime = dayTimeList.stream().filter(dayTime -> {
return (localDateTime.isAfter(dayTime.getStartTime()) || localDateTime.equals(dayTime.getStartTime())) && (localDateTime.isBefore(dayTime.getEndTime()) || localDateTime.equals(dayTime.getEndTime()));
}).findFirst().orElse(null);
+
if (Func.isEmpty(productionCalendarDaytime)) {
return;
}
@@ -119,6 +110,6 @@
shiftEndTime = endTime;
}
CalendarShiftTimeSlicesDTO calendarShiftTimeSlicesDTO = CalendarShiftTimeSlicesDTO.builder().shiftTimeType(productionCalendarDaytime.getShiftType().toString()).endTime(LocalDateTimeUtils.LocalDateTimeToDate(shiftEndTime)).startTime(LocalDateTimeUtils.LocalDateTimeToDate(shiftStartTime)).shiftIndex(productionCalendarDaytime.getShiftIndex()).shiftTimeType(productionCalendarDaytime.getShiftType().toString()).factoryDate(LocalDateTimeUtils.formatTimeLocalDate(productionCalendarDaytime.getCalendarDate(), "yyyy-MM-dd")).factoryMonth(productionCalendarDaytime.getMonth()).factoryWeek(productionCalendarDaytime.getWeek()).factoryYear(productionCalendarDaytime.getYear()).build();
- timeSlicesDTOMap.put(Integer.valueOf(i), calendarShiftTimeSlicesDTO);
+ timeSlicesDTOMap.put(minutesOfDay, calendarShiftTimeSlicesDTO);
}
}
--
Gitblit v1.9.3