|
@@ -11,9 +11,11 @@ import cn.iocoder.yudao.module.system.controller.admin.restaurant.vo.*;
|
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.biz.DailyExpensesDO;
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.biz.DailyExpensesDO;
|
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.biz.ElderlyInfoDO;
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.biz.ElderlyInfoDO;
|
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.restaurant.*;
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.restaurant.*;
|
|
|
|
|
+import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
|
|
import cn.iocoder.yudao.module.system.dal.mysql.biz.DailyExpensesMapper;
|
|
import cn.iocoder.yudao.module.system.dal.mysql.biz.DailyExpensesMapper;
|
|
|
import cn.iocoder.yudao.module.system.dal.mysql.biz.ElderlyInfoMapper;
|
|
import cn.iocoder.yudao.module.system.dal.mysql.biz.ElderlyInfoMapper;
|
|
|
import cn.iocoder.yudao.module.system.dal.mysql.restaurant.*;
|
|
import cn.iocoder.yudao.module.system.dal.mysql.restaurant.*;
|
|
|
|
|
+import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper;
|
|
|
import cn.iocoder.yudao.module.system.enums.common.BooleanEnum;
|
|
import cn.iocoder.yudao.module.system.enums.common.BooleanEnum;
|
|
|
import cn.iocoder.yudao.module.system.service.biz.BuildService;
|
|
import cn.iocoder.yudao.module.system.service.biz.BuildService;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
@@ -78,6 +80,9 @@ public class DishesOrderStatisticsServiceImpl implements DishesOrderStatisticsSe
|
|
|
@Resource
|
|
@Resource
|
|
|
private RedisTemplate<String, Object> redisTemplate;
|
|
private RedisTemplate<String, Object> redisTemplate;
|
|
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private AdminUserMapper adminUserMapper;
|
|
|
|
|
+
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public void createDishesOrderStatistics(DishesOrderStatisticsSaveReqVO createReqVO) {
|
|
public void createDishesOrderStatistics(DishesOrderStatisticsSaveReqVO createReqVO) {
|
|
@@ -199,12 +204,33 @@ public class DishesOrderStatisticsServiceImpl implements DishesOrderStatisticsSe
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public PageResult<DishesOrderExportVO> exportDishesOrderStatisticsPage(DishesOrderStatisticsPageReqVO pageReqVO) {
|
|
public PageResult<DishesOrderExportVO> exportDishesOrderStatisticsPage(DishesOrderStatisticsPageReqVO pageReqVO) {
|
|
|
- // 床位号已在SQL查询中直接获取,无需在循环中调用getFullBedName,避免N+1查询问题
|
|
|
|
|
- // 优化:一次性查询所有数据,避免在循环中多次查询数据库
|
|
|
|
|
- List<DishesOrderExportVO> exportList = dishesOrderStatisticsMapper.getDishesOrderExportList(pageReqVO);
|
|
|
|
|
- // 查询总数
|
|
|
|
|
- Long total = dishesOrderStatisticsMapper.countDishesOrderExportList(pageReqVO);
|
|
|
|
|
- return new PageResult<>(exportList, total != null ? total : 0L);
|
|
|
|
|
|
|
+ Page<DishesOrderExportVO> page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
|
|
|
|
|
+ Page<DishesOrderExportVO> resultPage = dishesOrderStatisticsMapper.getDishesOrderExportPage(page, pageReqVO);
|
|
|
|
|
+ List<DishesOrderExportVO> records = resultPage.getRecords();
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty(records)) {
|
|
|
|
|
+ Long tenantId = pageReqVO.getTenantId() != null ? pageReqVO.getTenantId() : TenantContextHolder.getTenantId();
|
|
|
|
|
+ Map<String, Boolean> employeeSubmitterMap = new HashMap<>();
|
|
|
|
|
+ if (tenantId != null) {
|
|
|
|
|
+ List<AdminUserDO> adminUsers = adminUserMapper.getUserListByTenantId(tenantId);
|
|
|
|
|
+ employeeSubmitterMap = adminUsers.stream()
|
|
|
|
|
+ .map(AdminUserDO::getNickname)
|
|
|
|
|
+ .filter(StringUtils::isNotBlank)
|
|
|
|
|
+ .collect(Collectors.toMap(name -> name, name -> true, (a, b) -> a));
|
|
|
|
|
+ }
|
|
|
|
|
+ Map<String, Boolean> finalEmployeeSubmitterMap = employeeSubmitterMap;
|
|
|
|
|
+ records.forEach(item -> {
|
|
|
|
|
+ if (item.getUserType() == UserType.ELDER) {
|
|
|
|
|
+ if (Boolean.TRUE.equals(finalEmployeeSubmitterMap.get(item.getSubmitterName()))) {
|
|
|
|
|
+ item.setType("员工代点");
|
|
|
|
|
+ } else if (StringUtils.equals(item.getSubmitterName(), item.getElderName())) {
|
|
|
|
|
+ item.setType("长者自点");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ item.setType("家属点餐");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ return new PageResult<>(records, resultPage.getTotal());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|