Commit c4e85090 by 吕明尚

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

parent e8442a90
......@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.transaction.annotation.Transactional;
import share.common.constant.Constants;
import share.common.core.page.TableDataInfo;
import share.common.enums.*;
......@@ -19,10 +20,7 @@ import share.system.domain.*;
import share.system.domain.vo.FrontTokenComponent;
import share.system.domain.vo.SCleanRecordsVo;
import share.system.mapper.*;
import share.system.service.DeviceOpService;
import share.system.service.ISCleanRecordsService;
import share.system.service.ISOrderService;
import share.system.service.SmsService;
import share.system.service.*;
/**
* 保洁记录Service业务层处理
......@@ -49,6 +47,8 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC
private SStoreConsumerMapper storeConsumerMapper;
@Autowired
private SConsumerMapper consumerMapper;
@Autowired
private ISRoomService roomService;
//管理员手机号
private static final String phone = "13888888888";
......@@ -59,7 +59,7 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC
/**
* 查询保洁记录
*
*
* @param id 保洁记录主键
* @return 保洁记录
*/
......@@ -78,7 +78,7 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC
/**
* 查询保洁记录列表
*
*
* @param sCleanRecords 保洁记录
* @return 保洁记录
*/
......@@ -90,7 +90,7 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC
/**
* 新增保洁记录
*
*
* @param sCleanRecords 保洁记录
* @return 结果
*/
......@@ -103,7 +103,7 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC
/**
* 修改保洁记录
*
*
* @param sCleanRecords 保洁记录
* @return 结果
*/
......@@ -116,7 +116,7 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC
/**
* 批量删除保洁记录
*
*
* @param ids 需要删除的保洁记录主键
* @return 结果
*/
......@@ -128,7 +128,7 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC
/**
* 删除保洁记录信息
*
*
* @param id 保洁记录主键
* @return 结果
*/
......@@ -306,6 +306,7 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean finishCleanRecords() {
Date now = DateUtil.date();
LambdaQueryWrapper<SCleanRecords> queryWrapper = new LambdaQueryWrapper<>();
......@@ -325,25 +326,20 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC
sOrderLambdaQueryWrapper.between(SOrder::getPreStartDate, now, DateUtil.offsetMinute(now, CLEANING));
List<SOrder> orderList = orderService.list(sOrderLambdaQueryWrapper);
//30分钟未完成保洁并且5分钟内有预约订单
if (CollectionUtils.isNotEmpty(orderList)) {
List<Long> orderRoomIds = orderList.stream().map(SOrder::getRoomId).collect(Collectors.toList());
list = list.stream().filter(item -> orderRoomIds.contains(item.getRoomId())).collect(Collectors.toList());
//查询当前房间当前时间加5分钟有没有预约订单
for (SCleanRecords sCleanRecords : list) {
sCleanRecords.setStatus(2);
sCleanRecords.setStartDate(now);
sCleanRecords.setEndDate(now);
sCleanRecords.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);
} else {
List<Long> roomIdList = list.stream().map(SCleanRecords::getRoomId).collect(Collectors.toList());
List<Long> orderRoomIds = Optional.ofNullable(orderList).orElse(new ArrayList<>()).parallelStream().map(SOrder::getRoomId).collect(Collectors.toList());
List<SCleanRecords> hasOrderlist = 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());
if (CollectionUtils.isNotEmpty(hasOrderlist)) {
hasOrderlist.forEach(item -> {
item.setStatus(2);
item.setStartDate(now);
item.setEndDate(now);
item.setUpdateTime(now);
});
}
List<SRoom> dirtyRoomList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(nonOrderlist)) {
List<Long> roomIdList = nonOrderlist.stream().map(SCleanRecords::getRoomId).collect(Collectors.toList());
//查找改房间门店的保洁人员和管理员
List<SRoom> sRoomList = sRoomMapper.selectBatchIds(roomIdList);
//获取门店id,去重
......@@ -352,7 +348,6 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC
//获取门店的保洁人员和管理员
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<Long> roomId = new ArrayList<>();
sStoreConsumers.stream().forEach(item -> {
//循环门店和店员的关系表
sStoreList.stream().forEach(store -> {
......@@ -364,7 +359,8 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC
//发送短信
sConsumers.stream().forEach(consumer -> {
if (consumer.getId().equals(item.getConsumerId())) {
roomId.add(room.getId());
room.setIsDirtyRoom(YesNoEnum.yes.getIndex());
dirtyRoomList.add(room);
smsService.sendSmsCleanRecords(consumer.getPhone(), store, room);
}
});
......@@ -372,16 +368,17 @@ public class SCleanRecordsServiceImpl extends ServiceImpl<SCleanRecordsMapper,SC
});
});
});
if (CollectionUtils.isEmpty(roomId)) {
return false;
}
//修改房间为脏房
UpdateWrapper<SRoom> updateWrapper = new UpdateWrapper<>();
updateWrapper.set("is_dirty_room", YesNoEnum.yes.getIndex());
updateWrapper.in("id", roomId);
sRoomMapper.update(null, updateWrapper);
return false;
}
//修改保洁记录为已完成
if (CollectionUtils.isNotEmpty(hasOrderlist)) {
baseMapper.updateBatch(hasOrderlist);
}
//修改房间为脏房
if (CollectionUtils.isNotEmpty(dirtyRoomList)) {
roomService.updateBatchById(dirtyRoomList);
}
return true;
}
@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