Commit c4e85090 by 吕明尚

在保洁自动完成的任务修改房间是否脏房

parent e8442a90
...@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.springframework.transaction.annotation.Transactional;
import share.common.constant.Constants; import share.common.constant.Constants;
import share.common.core.page.TableDataInfo; import share.common.core.page.TableDataInfo;
import share.common.enums.*; import share.common.enums.*;
...@@ -19,10 +20,7 @@ import share.system.domain.*; ...@@ -19,10 +20,7 @@ import share.system.domain.*;
import share.system.domain.vo.FrontTokenComponent; import share.system.domain.vo.FrontTokenComponent;
import share.system.domain.vo.SCleanRecordsVo; import share.system.domain.vo.SCleanRecordsVo;
import share.system.mapper.*; import share.system.mapper.*;
import share.system.service.DeviceOpService; import share.system.service.*;
import share.system.service.ISCleanRecordsService;
import share.system.service.ISOrderService;
import share.system.service.SmsService;
/** /**
* 保洁记录Service业务层处理 * 保洁记录Service业务层处理
...@@ -49,6 +47,8 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC ...@@ -49,6 +47,8 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC
private SStoreConsumerMapper storeConsumerMapper; private SStoreConsumerMapper storeConsumerMapper;
@Autowired @Autowired
private SConsumerMapper consumerMapper; private SConsumerMapper consumerMapper;
@Autowired
private ISRoomService roomService;
//管理员手机号 //管理员手机号
private static final String phone = "13888888888"; private static final String phone = "13888888888";
...@@ -306,6 +306,7 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC ...@@ -306,6 +306,7 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public boolean finishCleanRecords() { public boolean finishCleanRecords() {
Date now = DateUtil.date(); Date now = DateUtil.date();
LambdaQueryWrapper<SCleanRecords> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SCleanRecords> queryWrapper = new LambdaQueryWrapper<>();
...@@ -325,25 +326,20 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC ...@@ -325,25 +326,20 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC
sOrderLambdaQueryWrapper.between(SOrder::getPreStartDate, now, DateUtil.offsetMinute(now, CLEANING)); sOrderLambdaQueryWrapper.between(SOrder::getPreStartDate, now, DateUtil.offsetMinute(now, CLEANING));
List<SOrder> orderList = orderService.list(sOrderLambdaQueryWrapper); List<SOrder> orderList = orderService.list(sOrderLambdaQueryWrapper);
//30分钟未完成保洁并且5分钟内有预约订单 //30分钟未完成保洁并且5分钟内有预约订单
if (CollectionUtils.isNotEmpty(orderList)) { List<Long> orderRoomIds = Optional.ofNullable(orderList).orElse(new ArrayList<>()).parallelStream().map(SOrder::getRoomId).collect(Collectors.toList());
List<Long> orderRoomIds = orderList.stream().map(SOrder::getRoomId).collect(Collectors.toList()); List<SCleanRecords> hasOrderlist = list.stream().filter(item -> orderRoomIds.contains(item.getRoomId())).collect(Collectors.toList());
list = list.stream().filter(item -> orderRoomIds.contains(item.getRoomId())).collect(Collectors.toList()); List<SCleanRecords> nonOrderlist = list.stream().filter(item -> !orderRoomIds.contains(item.getRoomId())).collect(Collectors.toList());
//查询当前房间当前时间加5分钟有没有预约订单 if (CollectionUtils.isNotEmpty(hasOrderlist)) {
for (SCleanRecords sCleanRecords : list) { hasOrderlist.forEach(item -> {
sCleanRecords.setStatus(2); item.setStatus(2);
sCleanRecords.setStartDate(now); item.setStartDate(now);
sCleanRecords.setEndDate(now); item.setEndDate(now);
sCleanRecords.setUpdateTime(now); item.setUpdateTime(now);
// List<Long> unusedOrderRoomIds = Optional.ofNullable(orderList). });
// orElse(new ArrayList<>()).stream().filter(order -> order.getStatus().equals(OrderStatusEnum.UNUSED.getCode()))
// .map(SOrder::getRoomId).collect(Collectors.toList());
// if (unusedOrderRoomIds.contains(sCleanRecords.getRoomId())) {
// deviceOpService.openOrCloseDevice(sCleanRecords.getRoomId(), phone, OpTypeEnum.CUT_ELECTRIC.getCode(), true, FIVE);
// }
} }
return 0 < baseMapper.updateBatch(list); List<SRoom> dirtyRoomList = new ArrayList<>();
} else { if (CollectionUtils.isNotEmpty(nonOrderlist)) {
List<Long> roomIdList = list.stream().map(SCleanRecords::getRoomId).collect(Collectors.toList()); List<Long> roomIdList = nonOrderlist.stream().map(SCleanRecords::getRoomId).collect(Collectors.toList());
//查找改房间门店的保洁人员和管理员 //查找改房间门店的保洁人员和管理员
List<SRoom> sRoomList = sRoomMapper.selectBatchIds(roomIdList); List<SRoom> sRoomList = sRoomMapper.selectBatchIds(roomIdList);
//获取门店id,去重 //获取门店id,去重
...@@ -352,7 +348,6 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC ...@@ -352,7 +348,6 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC
//获取门店的保洁人员和管理员 //获取门店的保洁人员和管理员
List<SStoreConsumer> sStoreConsumers = storeConsumerMapper.selectList(new LambdaQueryWrapper<SStoreConsumer>().in(SStoreConsumer::getStoreId, storeIds)); List<SStoreConsumer> sStoreConsumers = storeConsumerMapper.selectList(new LambdaQueryWrapper<SStoreConsumer>().in(SStoreConsumer::getStoreId, storeIds));
List<SConsumer> sConsumers = consumerMapper.selectBatchIds(sStoreConsumers.stream().map(SStoreConsumer::getConsumerId).collect(Collectors.toList())); List<SConsumer> sConsumers = consumerMapper.selectBatchIds(sStoreConsumers.stream().map(SStoreConsumer::getConsumerId).collect(Collectors.toList()));
List<Long> roomId = new ArrayList<>();
sStoreConsumers.stream().forEach(item -> { sStoreConsumers.stream().forEach(item -> {
//循环门店和店员的关系表 //循环门店和店员的关系表
sStoreList.stream().forEach(store -> { sStoreList.stream().forEach(store -> {
...@@ -364,7 +359,8 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC ...@@ -364,7 +359,8 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC
//发送短信 //发送短信
sConsumers.stream().forEach(consumer -> { sConsumers.stream().forEach(consumer -> {
if (consumer.getId().equals(item.getConsumerId())) { if (consumer.getId().equals(item.getConsumerId())) {
roomId.add(room.getId()); room.setIsDirtyRoom(YesNoEnum.yes.getIndex());
dirtyRoomList.add(room);
smsService.sendSmsCleanRecords(consumer.getPhone(), store, room); smsService.sendSmsCleanRecords(consumer.getPhone(), store, room);
} }
}); });
...@@ -372,16 +368,17 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC ...@@ -372,16 +368,17 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC
}); });
}); });
}); });
if (CollectionUtils.isEmpty(roomId)) { }
return false;
//修改保洁记录为已完成
if (CollectionUtils.isNotEmpty(hasOrderlist)) {
baseMapper.updateBatch(hasOrderlist);
} }
//修改房间为脏房 //修改房间为脏房
UpdateWrapper<SRoom> updateWrapper = new UpdateWrapper<>(); if (CollectionUtils.isNotEmpty(dirtyRoomList)) {
updateWrapper.set("is_dirty_room", YesNoEnum.yes.getIndex()); roomService.updateBatchById(dirtyRoomList);
updateWrapper.in("id", roomId);
sRoomMapper.update(null, updateWrapper);
return false;
} }
return true;
} }
@Override @Override
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment