shenzhongzheng пре 2 година
родитељ
комит
35c7b43991

+ 1 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusMeetingRoomScheduleController.java

@@ -75,7 +75,7 @@ public class BusMeetingRoomScheduleController {
         try {
             return roomScheduleService.create(dto);
         }catch (Exception e){
-            return Result.error(e.getMessage());
+            return Result.error("数据重复,或者错误!");
         }
     }
 

+ 7 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusMeetingRoomScheduleDetailServiceImpl.java

@@ -2,6 +2,7 @@ package org.jeecg.modules.business.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import org.jeecg.common.util.TokenUtils;
 import org.jeecg.modules.business.entity.BusMeetingRoomScheduleDetail;
 import org.jeecg.modules.business.mapper.BusMeetingRoomScheduleDetailMapper;
@@ -40,6 +41,12 @@ public class BusMeetingRoomScheduleDetailServiceImpl extends ServiceImpl<BusMeet
     }
 
 
+    public List<BusMeetingRoomScheduleDetail> fetchByRoomIds(List<String> roomIds){
+        if(CollectionUtil.isEmpty(roomIds)) return new ArrayList<>();
+        return scheduleDetailMapper.selectList(Wrappers.<BusMeetingRoomScheduleDetail>lambdaQuery().in(BusMeetingRoomScheduleDetail::getMeetingRoomId,roomIds));
+    }
+
+
 
     public List<BusMeetingRoomScheduleDetail> fetchByDateRange(LocalDateTime startDate, LocalDateTime endDate,String hotelId,List<String> meetRoomIds){
         if(CollectionUtil.isEmpty(meetRoomIds)) return new ArrayList<>();

+ 23 - 9
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusMeetingRoomScheduleServiceImpl.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.collections.map.HashedMap;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.util.TokenUtils;
 import org.jeecg.modules.business.dto.BusMeetingRoomScheduleDetailDto;
 import org.jeecg.modules.business.dto.BusMeetingRoomScheduleDto;
@@ -26,10 +27,7 @@ import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -51,19 +49,28 @@ public class BusMeetingRoomScheduleServiceImpl extends ServiceImpl<BusMeetingRoo
         @Resource
         private BusMeetingRoomServiceImpl busMeetingRoomService;
 
-
     /**
      *
      * @return
      */
     @Transactional(rollbackOn = Exception.class)
     public Result create(BusMeetingRoomScheduleDto dto){
+        DateTimeFormatter struct = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         String tenantId = TokenUtils.currentTenantId();
         String hotelId = dto.getHotelId();
+
+        //查询数据库是否有相同的数据
+        List<BusMeetingRoomScheduleDetailDto> detailList = dto.getDetailList();
+        List<LocalDateTime> dataRange = detailList.stream().map(v -> LocalDate.parse(v.getMeetingDate(),struct).atStartOfDay()).collect(Collectors.toList());
+        dataRange.sort(Comparator.naturalOrder());
+        LocalDateTime min = dataRange.get(0);
+        LocalDateTime max = dataRange.get(dataRange.size() -1);
+        max = LocalDateTime.of(max.toLocalDate(), LocalTime.of(23,59,59));;
+        List<String> roomIds = detailList.stream().map(v -> v.getMeetingRoomId()).collect(Collectors.toList());
+        List<BusMeetingRoomScheduleDetail> detailsList = meetingRoomScheduleDetailService.fetchByDateRange(min,max, hotelId, roomIds);
         /**
          * 创建主表
          */
-
         BusMeetingRoomSchedule roomSchedule = new BusMeetingRoomSchedule();
 
         BeanUtil.copyProperties(dto,roomSchedule);
@@ -71,12 +78,19 @@ public class BusMeetingRoomScheduleServiceImpl extends ServiceImpl<BusMeetingRoo
         roomSchedule.setCreateTime(LocalDateTime.now());
         meetingRoomScheduleMapper.insert(roomSchedule);
 
-        List<BusMeetingRoomScheduleDetailDto> detailList = dto.getDetailList();
         List<BusMeetingRoomScheduleDetail> details = new ArrayList<>();
-        DateTimeFormatter struct = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+
         detailList.forEach(v -> {
-            BusMeetingRoomScheduleDetail detail= new BusMeetingRoomScheduleDetail();
             LocalDateTime meetingDate = LocalDate.parse(v.getMeetingDate(),struct).atStartOfDay();
+            List<BusMeetingRoomScheduleDetail> list = detailsList.stream().filter(f ->{
+                if(f.getMeetingRoomId().equals(v.getMeetingRoomId()) && f.getTimeSpan().intValue() == v.getTimeSpan().intValue() && f.getMeetingDate().compareTo(meetingDate) == 0){
+                    return true;
+                }
+                return false;
+            }).collect(Collectors.toList());
+            if(!CollectionUtil.isEmpty(list)) throw new JeecgBootException("数据重复!");
+            BusMeetingRoomScheduleDetail detail= new BusMeetingRoomScheduleDetail();
+
             detail.setMeetingRoomId(v.getMeetingRoomId());
             detail.setMeetingDate(meetingDate);
             detail.setTimeSpan(v.getTimeSpan().intValue());

+ 11 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/DTO/CesServiceMaintenanceSearchDto.java

@@ -0,0 +1,11 @@
+package org.jeecg.modules.rooms.DTO;
+
+import lombok.Data;
+import org.jeecg.common.api.dto.BasePage;
+
+@Data
+public class CesServiceMaintenanceSearchDto extends BasePage {
+    private String hotelId;
+
+    private String typeId;
+}

+ 30 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesServiceMaintenanceServiceImpl.java

@@ -2,18 +2,26 @@ package org.jeecg.modules.rooms.service;
 
 import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.lang3.ObjectUtils;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.rooms.DTO.CesServiceMaintenanceSearchDto;
 import org.jeecg.modules.rooms.entity.CesServiceMaintenance;
+import org.jeecg.modules.rooms.entity.CesServiceType;
 import org.jeecg.modules.rooms.mapper.CesServiceMaintenanceMapper;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -28,6 +36,9 @@ public class CesServiceMaintenanceServiceImpl extends ServiceImpl<CesServiceMain
         @Resource
         private CesServiceMaintenanceMapper cesServiceMaintenanceMapper;
 
+        @Resource
+        private CesServiceTypeServiceImpl serviceTypeService;
+
 
     /**
      *
@@ -107,5 +118,24 @@ public class CesServiceMaintenanceServiceImpl extends ServiceImpl<CesServiceMain
     }
 
 
+    public Result fetch(CesServiceMaintenanceSearchDto dto){
+        QueryWrapper<CesServiceMaintenance> queryWrapper =new QueryWrapper<>();
+        if(StringUtils.isBlank(dto.getTypeId())){
+            queryWrapper.eq(CesServiceMaintenance.TYPE,dto.getTypeId());
+        }
+        queryWrapper.eq(CesServiceMaintenance.HOTEL_ID,dto.getHotelId());
+
+        queryWrapper.eq(CesServiceMaintenance.INVALID,false);
+        IPage<CesServiceMaintenance> dataPage = cesServiceMaintenanceMapper.selectPage(new Page<>(dto.getPageNo().intValue(),dto.getPageSize().intValue()),queryWrapper);
+        List<CesServiceMaintenance> list = dataPage.getRecords();
+        List<String> ids  = list.stream().map(v -> v.getClassify()).collect(Collectors.toList());
+        List<CesServiceType> serviceTypes =   serviceTypeService.fetchByIds(ids);
+        list.forEach(v -> {
 
+        });
+        Map<String,Object> map = new HashMap<>();
+        map.put("records", "");
+        map.put("total",dataPage.getTotal());
+        return Result.OK(map);
+    }
 }

+ 6 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesServiceTypeServiceImpl.java

@@ -20,6 +20,7 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -127,4 +128,9 @@ public class CesServiceTypeServiceImpl extends ServiceImpl<CesServiceTypeMapper,
     }
 
 
+    public List<CesServiceType> fetchByIds(List<String> ids){
+        if(CollectionUtil.isEmpty(ids)) return new ArrayList<>();
+        return serviceTypeMapper.selectBatchIds(ids);
+    }
+
 }