|
|
@@ -5,13 +5,16 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.github.yulichang.base.MPJBaseServiceImpl;
|
|
|
+import com.xjrsoft.common.enums.DeleteMark;
|
|
|
import com.xjrsoft.module.room.dto.AddRoomValueWeekDto;
|
|
|
import com.xjrsoft.module.room.dto.RoomValueWeekPageDto;
|
|
|
import com.xjrsoft.module.room.dto.UpdateRoomValueWeekDto;
|
|
|
import com.xjrsoft.module.room.entity.RoomValueWeek;
|
|
|
import com.xjrsoft.module.room.entity.RoomValueWeekItem;
|
|
|
+import com.xjrsoft.module.room.entity.WfRoomStayOvernight;
|
|
|
import com.xjrsoft.module.room.mapper.RoomValueWeekItemMapper;
|
|
|
import com.xjrsoft.module.room.mapper.RoomValueWeekMapper;
|
|
|
+import com.xjrsoft.module.room.mapper.WfRoomStayOvernightMapper;
|
|
|
import com.xjrsoft.module.room.service.IRoomValueWeekService;
|
|
|
import com.xjrsoft.module.room.vo.RoomValueWeekItemVo;
|
|
|
import com.xjrsoft.module.room.vo.RoomValueWeekPageVo;
|
|
|
@@ -19,6 +22,7 @@ import lombok.AllArgsConstructor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.time.ZoneId;
|
|
|
import java.time.ZonedDateTime;
|
|
|
import java.util.Date;
|
|
|
@@ -39,6 +43,8 @@ public class RoomValueWeekServiceImpl extends MPJBaseServiceImpl<RoomValueWeekMa
|
|
|
|
|
|
private final RoomValueWeekItemMapper roomValueWeekRoomValueWeekItemMapper;
|
|
|
|
|
|
+ private final WfRoomStayOvernightMapper wfRoomStayOvernightMapper;
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@@ -135,12 +141,47 @@ public class RoomValueWeekServiceImpl extends MPJBaseServiceImpl<RoomValueWeekMa
|
|
|
@Override
|
|
|
public Boolean updateNumberPeople() {
|
|
|
Date date = new Date();
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
List<RoomValueWeek> weeks = roomValueWeekRoomValueWeekMapper.selectList(
|
|
|
new QueryWrapper<RoomValueWeek>().lambda()
|
|
|
- .le(RoomValueWeek::getEndTime, date)
|
|
|
- .ge(RoomValueWeek::getStartTime, date)
|
|
|
+ .ge(RoomValueWeek::getEndTime, sdf.format(date))
|
|
|
+ .le(RoomValueWeek::getStartTime, sdf.format(date))
|
|
|
);
|
|
|
|
|
|
+ for (RoomValueWeek week : weeks) {
|
|
|
+ List<RoomValueWeekItem> roomValueWeekItems = roomValueWeekRoomValueWeekItemMapper.selectList(
|
|
|
+ new QueryWrapper<RoomValueWeekItem>().lambda().eq(RoomValueWeekItem::getRoomValueWeekId, week.getId())
|
|
|
+ );
|
|
|
+ for (RoomValueWeekItem roomValueWeekItem : roomValueWeekItems) {
|
|
|
+ if("男寝".equals(roomValueWeekItem.getRoomType())){
|
|
|
+ Long maleStudents = wfRoomStayOvernightMapper.selectCount(
|
|
|
+ new QueryWrapper<WfRoomStayOvernight>().lambda()
|
|
|
+ .eq(WfRoomStayOvernight::getGenderName, "男")
|
|
|
+ .eq(WfRoomStayOvernight::getStatus, 1)
|
|
|
+ .eq(WfRoomStayOvernight::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
+ .le(WfRoomStayOvernight::getEndTime, sdf.format(week.getEndTime()))
|
|
|
+ .ge(WfRoomStayOvernight::getStartTime, sdf.format(week.getStartTime()))
|
|
|
+ );
|
|
|
+ roomValueWeekRoomValueWeekItemMapper.updateById(new RoomValueWeekItem(){{
|
|
|
+ setId(roomValueWeekItem.getId());
|
|
|
+ setNumberPeople(maleStudents.intValue());
|
|
|
+ }});
|
|
|
+ }else if("女寝".equals(roomValueWeekItem.getRoomType())){
|
|
|
+ Long FemaleStudents = wfRoomStayOvernightMapper.selectCount(
|
|
|
+ new QueryWrapper<WfRoomStayOvernight>().lambda()
|
|
|
+ .eq(WfRoomStayOvernight::getGenderName, "女")
|
|
|
+ .eq(WfRoomStayOvernight::getStatus, 1)
|
|
|
+ .eq(WfRoomStayOvernight::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
+ .le(WfRoomStayOvernight::getEndTime, sdf.format(week.getEndTime()))
|
|
|
+ .ge(WfRoomStayOvernight::getStartTime, sdf.format(week.getStartTime()))
|
|
|
+ );
|
|
|
+ roomValueWeekRoomValueWeekItemMapper.updateById(new RoomValueWeekItem(){{
|
|
|
+ setId(roomValueWeekItem.getId());
|
|
|
+ setNumberPeople(FemaleStudents.intValue());
|
|
|
+ }});
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
return null;
|
|
|
}
|
|
|
|