From 9faa74e1912022dc6e54c3e93426946876b5d83a Mon Sep 17 00:00:00 2001 From: yangys <y_ys79@sina.com> Date: 星期五, 25 十月 2024 10:49:13 +0800 Subject: [PATCH] 修改redistemplate的hashkey serializer,更方便客户端查看redis的数据 --- 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..8724fa7 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(Integer.valueOf(minutesOfDay), calendarShiftTimeSlicesDTO); } } -- Gitblit v1.9.3