Showing
8 changed files
with
93 additions
and
15 deletions
| ... | @@ -47,6 +47,13 @@ public class ClientCustomerController { | ... | @@ -47,6 +47,13 @@ public class ClientCustomerController { |
| 47 | return clientCustomerService.getClientCustomerByHISCustomerId(hisCustomerId); | 47 | return clientCustomerService.getClientCustomerByHISCustomerId(hisCustomerId); |
| 48 | } | 48 | } |
| 49 | 49 | ||
| 50 | + @ApiOperation(value = "根据customerId获取ClientCustomer") | ||
| 51 | + @GetMapping("/customers/{customerId}") | ||
| 52 | + @ResponseStatus(HttpStatus.OK) | ||
| 53 | + public ClientCustomerDto getClientCustomerByCustomerId(@PathVariable Integer customerId) { | ||
| 54 | + return clientCustomerService.getClientCustomerByCustomerId(customerId); | ||
| 55 | + } | ||
| 56 | + | ||
| 50 | @ApiOperation(value = "根据phone获取ClientCustomer") | 57 | @ApiOperation(value = "根据phone获取ClientCustomer") |
| 51 | @GetMapping("/customers/phone/{phone}") | 58 | @GetMapping("/customers/phone/{phone}") |
| 52 | @ResponseStatus(HttpStatus.OK) | 59 | @ResponseStatus(HttpStatus.OK) | ... | ... |
| 1 | package com.infoloop.tianting.controller; | 1 | package com.infoloop.tianting.controller; |
| 2 | 2 | ||
| 3 | +import cn.dev33.satoken.annotation.SaIgnore; | ||
| 3 | import com.github.xiaoymin.knife4j.annotations.ApiSupport; | 4 | import com.github.xiaoymin.knife4j.annotations.ApiSupport; |
| 4 | import com.infoloop.tianting.model.dto.OrderDbDTO.OrderDto; | 5 | import com.infoloop.tianting.model.dto.OrderDbDTO.OrderDto; |
| 5 | import com.infoloop.tianting.model.dto.SkuDbDTO.SkuDto; | 6 | import com.infoloop.tianting.model.dto.SkuDbDTO.SkuDto; | ... | ... |
| ... | @@ -14,6 +14,8 @@ public interface ClientCustomerService { | ... | @@ -14,6 +14,8 @@ public interface ClientCustomerService { |
| 14 | 14 | ||
| 15 | ClientCustomerDto getClientCustomerByHISCustomerId(String hisCustomerId); | 15 | ClientCustomerDto getClientCustomerByHISCustomerId(String hisCustomerId); |
| 16 | 16 | ||
| 17 | + ClientCustomerDto getClientCustomerByCustomerId(Integer customerId); | ||
| 18 | + | ||
| 17 | ClientCustomerDto getClientCustomerByPhone(String phone); | 19 | ClientCustomerDto getClientCustomerByPhone(String phone); |
| 18 | 20 | ||
| 19 | List<HospitalRecordDto> getClientCustomerHospitalRecordsByCustomerId( | 21 | List<HospitalRecordDto> getClientCustomerHospitalRecordsByCustomerId( | ... | ... |
| ... | @@ -52,12 +52,15 @@ import com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByPaginationDto; | ... | @@ -52,12 +52,15 @@ import com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByPaginationDto; |
| 52 | import com.infoloop.tianting.model.dto.OrderDbDTO.UpdateOrderDto; | 52 | import com.infoloop.tianting.model.dto.OrderDbDTO.UpdateOrderDto; |
| 53 | import com.infoloop.tianting.utils.DateUtil; | 53 | import com.infoloop.tianting.utils.DateUtil; |
| 54 | import io.swagger.models.auth.In; | 54 | import io.swagger.models.auth.In; |
| 55 | +import java.text.SimpleDateFormat; | ||
| 55 | import java.time.LocalDate; | 56 | import java.time.LocalDate; |
| 56 | import java.time.ZoneOffset; | 57 | import java.time.ZoneOffset; |
| 57 | import java.util.ArrayList; | 58 | import java.util.ArrayList; |
| 59 | +import java.util.Date; | ||
| 58 | import java.util.List; | 60 | import java.util.List; |
| 59 | import java.util.stream.Collectors; | 61 | import java.util.stream.Collectors; |
| 60 | import lombok.RequiredArgsConstructor; | 62 | import lombok.RequiredArgsConstructor; |
| 63 | +import org.redisson.api.RedissonClient; | ||
| 61 | import org.springframework.beans.factory.annotation.Autowired; | 64 | import org.springframework.beans.factory.annotation.Autowired; |
| 62 | import org.springframework.stereotype.Service; | 65 | import org.springframework.stereotype.Service; |
| 63 | 66 | ||
| ... | @@ -69,6 +72,8 @@ public class OrderServiceRpcClient { | ... | @@ -69,6 +72,8 @@ public class OrderServiceRpcClient { |
| 69 | private final SkuServiceRpcClient skuServiceRpcClient; | 72 | private final SkuServiceRpcClient skuServiceRpcClient; |
| 70 | private final OperatorServiceRpcClient operatorServiceRpcClient; | 73 | private final OperatorServiceRpcClient operatorServiceRpcClient; |
| 71 | private final EnterpriseResourceServiceRpcClient enterpriseResourceServiceRpcClient; | 74 | private final EnterpriseResourceServiceRpcClient enterpriseResourceServiceRpcClient; |
| 75 | + private final RedissonClient redissonClient; | ||
| 76 | + private static final String REDIS_KEY_PREFIX = "pickup_code_counter:"; | ||
| 72 | 77 | ||
| 73 | public List<SingleClientCustomerOrderRpcResponse> getOrdersByCustomerId(Integer customerId) { | 78 | public List<SingleClientCustomerOrderRpcResponse> getOrdersByCustomerId(Integer customerId) { |
| 74 | return orderServiceRpcBlockingStub.getClientCustomerOrdersByCustomerId( | 79 | return orderServiceRpcBlockingStub.getClientCustomerOrdersByCustomerId( |
| ... | @@ -369,6 +374,7 @@ public class OrderServiceRpcClient { | ... | @@ -369,6 +374,7 @@ public class OrderServiceRpcClient { |
| 369 | .setAdjustOrderDetailJson(c.getAdjustOrderDetailJson()) | 374 | .setAdjustOrderDetailJson(c.getAdjustOrderDetailJson()) |
| 370 | .setShouldCreateOriginalOrderDetailJson(c.isShouldCreateOriginalOrderDetailJson()) | 375 | .setShouldCreateOriginalOrderDetailJson(c.isShouldCreateOriginalOrderDetailJson()) |
| 371 | .setOriginalOrderDetailJson(c.getOriginalOrderDetailJson()) | 376 | .setOriginalOrderDetailJson(c.getOriginalOrderDetailJson()) |
| 377 | + .setType(c.getType()) | ||
| 372 | .build()).collect(Collectors.toList())) | 378 | .build()).collect(Collectors.toList())) |
| 373 | .setCreatedBy(batchOperationDto.getCreatedBy()) | 379 | .setCreatedBy(batchOperationDto.getCreatedBy()) |
| 374 | .setEnterpriseId(batchOperationDto.getEnterpriseId()) | 380 | .setEnterpriseId(batchOperationDto.getEnterpriseId()) |
| ... | @@ -417,6 +423,17 @@ public class OrderServiceRpcClient { | ... | @@ -417,6 +423,17 @@ public class OrderServiceRpcClient { |
| 417 | .build()).getResponsesList(); | 423 | .build()).getResponsesList(); |
| 418 | } | 424 | } |
| 419 | 425 | ||
| 426 | + public String generatePickupCode() { | ||
| 427 | + LocalDate today = LocalDate.now(); | ||
| 428 | + String currentDate = DateUtil.formatDate(today, DateUtil.YYYY_MM_DD); | ||
| 429 | + String redisKey = REDIS_KEY_PREFIX + currentDate; | ||
| 430 | + // 获取分布式原子Long对象,用于原子自增操作 | ||
| 431 | + org.redisson.api.RAtomicLong atomicLong = redissonClient.getAtomicLong(redisKey); | ||
| 432 | + // 原子自增并获取当前值 | ||
| 433 | + long counter = atomicLong.incrementAndGet(); | ||
| 434 | + return String.format("%04d", (int) counter); | ||
| 435 | + } | ||
| 436 | + | ||
| 420 | public CreateOrderResponse createOrder(CreateOrderDto createOrderDto) { | 437 | public CreateOrderResponse createOrder(CreateOrderDto createOrderDto) { |
| 421 | final var orderDetails = new ArrayList<ClientCustomerOrderDetailCreation>(); | 438 | final var orderDetails = new ArrayList<ClientCustomerOrderDetailCreation>(); |
| 422 | for (CreateOrderDetailDto orderDetailDto: createOrderDto.getOrderDetailDtos()) { | 439 | for (CreateOrderDetailDto orderDetailDto: createOrderDto.getOrderDetailDtos()) { |
| ... | @@ -487,9 +504,8 @@ public class OrderServiceRpcClient { | ... | @@ -487,9 +504,8 @@ public class OrderServiceRpcClient { |
| 487 | .setPayPrice(createOrderDto.getPayPrice()) | 504 | .setPayPrice(createOrderDto.getPayPrice()) |
| 488 | .setMealTime(mealDate.atStartOfDay().toInstant(ZoneOffset.UTC).toEpochMilli()) | 505 | .setMealTime(mealDate.atStartOfDay().toInstant(ZoneOffset.UTC).toEpochMilli()) |
| 489 | .setShouldCreateTableCode(createOrderDto.getCloseTimeType().equals(CloseTimeType.IMMEDIATELY)) | 506 | .setShouldCreateTableCode(createOrderDto.getCloseTimeType().equals(CloseTimeType.IMMEDIATELY)) |
| 490 | - .setTableCode(createOrderDto.getTableCode()) | ||
| 491 | .setShouldCreatePickupCode(createOrderDto.getCloseTimeType().equals(CloseTimeType.IMMEDIATELY)) | 507 | .setShouldCreatePickupCode(createOrderDto.getCloseTimeType().equals(CloseTimeType.IMMEDIATELY)) |
| 492 | -// .setPickupCode(createOrderDto.getPickupCode()) | 508 | + .setPickupCode(generatePickupCode()) |
| 493 | .setShouldCreateRemark(true) | 509 | .setShouldCreateRemark(true) |
| 494 | .setRemark(createOrderDto.getRemark()) | 510 | .setRemark(createOrderDto.getRemark()) |
| 495 | .setShouldCreateCustomerNoticeJson(true) | 511 | .setShouldCreateCustomerNoticeJson(true) | ... | ... |
| ... | @@ -82,6 +82,37 @@ public class ClientCustomerServiceImpl implements ClientCustomerService { | ... | @@ -82,6 +82,37 @@ public class ClientCustomerServiceImpl implements ClientCustomerService { |
| 82 | .build(); | 82 | .build(); |
| 83 | } | 83 | } |
| 84 | 84 | ||
| 85 | + | ||
| 86 | + @Override | ||
| 87 | + public ClientCustomerDto getClientCustomerByCustomerId(Integer customerId) { | ||
| 88 | + final var operatorLoginInfo = LoginContextHolder.getLoginInfo(); | ||
| 89 | + var response = clientCustomerServiceRpcClient.getClientCustomerById(operatorLoginInfo.getEnterpriseId(), customerId).getResponse(); | ||
| 90 | + return ClientCustomerDto.builder() | ||
| 91 | + .id(response.getId()) | ||
| 92 | + .clientId(response.getClientId()) | ||
| 93 | + .enterpriseId(response.getEnterpriseId()) | ||
| 94 | + .age(response.getAge()) | ||
| 95 | + .height(response.getHeight()) | ||
| 96 | + .HISCustomerId(response.getHISCustomerId()) | ||
| 97 | + .identityCardNo(response.getIdentityCardNo()) | ||
| 98 | + .mobile(response.getMobile()) | ||
| 99 | + .name(response.getName()) | ||
| 100 | + .openId(response.getOpenId()) | ||
| 101 | + .sex(response.getSex()) | ||
| 102 | + .stallId(response.getStallId()) | ||
| 103 | + .weight(response.getWeight()) | ||
| 104 | + .isDeleted(response.getIsDeleted()) | ||
| 105 | + .birthday(DateUtil.formatDate(response.getBirthday())) | ||
| 106 | + .createdAt(DateUtil.formatDate(response.getCreatedAt())) | ||
| 107 | + .createdBy(response.getCreatedBy()) | ||
| 108 | + .creationSource(response.getCreationSource()) | ||
| 109 | + .updatedAt(DateUtil.formatDate(response.getUpdatedAt())) | ||
| 110 | + .updateSource(response.getUpdateSource()) | ||
| 111 | + .updatedBy(response.getUpdatedBy()) | ||
| 112 | + .build(); | ||
| 113 | + } | ||
| 114 | + | ||
| 115 | + | ||
| 85 | @Override | 116 | @Override |
| 86 | public ClientCustomerDto getClientCustomerByPhone(String phone) { | 117 | public ClientCustomerDto getClientCustomerByPhone(String phone) { |
| 87 | final var response = clientCustomerServiceRpcClient.getClientCustomerByMobile(phone); | 118 | final var response = clientCustomerServiceRpcClient.getClientCustomerByMobile(phone); | ... | ... |
| ... | @@ -220,7 +220,7 @@ public class KdsServiceImpl implements KdsService { | ... | @@ -220,7 +220,7 @@ public class KdsServiceImpl implements KdsService { |
| 220 | LocalDate today = LocalDate.now(); | 220 | LocalDate today = LocalDate.now(); |
| 221 | LocalDateTime todayZero = today.atStartOfDay(); | 221 | LocalDateTime todayZero = today.atStartOfDay(); |
| 222 | LocalDate tomorrow = today.plusDays(1); | 222 | LocalDate tomorrow = today.plusDays(1); |
| 223 | - LocalDateTime tomorrowZero = tomorrow.atStartOfDay(); | 223 | + LocalDateTime tomorrowZero = tomorrow.atStartOfDay().minusMinutes(1); |
| 224 | 224 | ||
| 225 | final var operatorLoginInfo = LoginContextHolder.getLoginInfo(); | 225 | final var operatorLoginInfo = LoginContextHolder.getLoginInfo(); |
| 226 | 226 | ||
| ... | @@ -291,7 +291,7 @@ public class KdsServiceImpl implements KdsService { | ... | @@ -291,7 +291,7 @@ public class KdsServiceImpl implements KdsService { |
| 291 | LocalDate today = LocalDate.now(); | 291 | LocalDate today = LocalDate.now(); |
| 292 | LocalDateTime todayZero = today.atStartOfDay(); | 292 | LocalDateTime todayZero = today.atStartOfDay(); |
| 293 | LocalDate tomorrow = today.plusDays(1); | 293 | LocalDate tomorrow = today.plusDays(1); |
| 294 | - LocalDateTime tomorrowZero = tomorrow.atStartOfDay(); | 294 | + LocalDateTime tomorrowZero = tomorrow.atStartOfDay().minusMinutes(1); |
| 295 | 295 | ||
| 296 | final var operatorLoginInfo = LoginContextHolder.getLoginInfo(); | 296 | final var operatorLoginInfo = LoginContextHolder.getLoginInfo(); |
| 297 | 297 | ||
| ... | @@ -342,7 +342,7 @@ public class KdsServiceImpl implements KdsService { | ... | @@ -342,7 +342,7 @@ public class KdsServiceImpl implements KdsService { |
| 342 | 342 | ||
| 343 | final var orderDetailList = orderServiceRpcClient.getOrderDetailsByOrderIds(orderIds); | 343 | final var orderDetailList = orderServiceRpcClient.getOrderDetailsByOrderIds(orderIds); |
| 344 | final var filteredOrderDetailList = orderDetailList.stream() | 344 | final var filteredOrderDetailList = orderDetailList.stream() |
| 345 | - .filter(od -> od.getMealId() == queryDto.getMealId()) | 345 | + .filter(od -> od.getMealId() == queryDto.getMealId() && od.getServeStatus() != ServeStatusEnum.SERVE_REJECT) |
| 346 | .collect(Collectors.toList()); | 346 | .collect(Collectors.toList()); |
| 347 | 347 | ||
| 348 | //在所有的orderDetail里找出所有所有不同的menuDetailId,然后根据menuDetailId进行分类 | 348 | //在所有的orderDetail里找出所有所有不同的menuDetailId,然后根据menuDetailId进行分类 | ... | ... |
| ... | @@ -6,6 +6,7 @@ import com.infoloop.tianting.SingleSpecialResponse; | ... | @@ -6,6 +6,7 @@ import com.infoloop.tianting.SingleSpecialResponse; |
| 6 | import com.infoloop.tianting.clientcustomerorderservice.CloseTimeType; | 6 | import com.infoloop.tianting.clientcustomerorderservice.CloseTimeType; |
| 7 | import com.infoloop.tianting.clientcustomerorderservice.OrderCountByStatus; | 7 | import com.infoloop.tianting.clientcustomerorderservice.OrderCountByStatus; |
| 8 | import com.infoloop.tianting.clientcustomerorderservice.OrderSourceEnum; | 8 | import com.infoloop.tianting.clientcustomerorderservice.OrderSourceEnum; |
| 9 | +import com.infoloop.tianting.clientcustomerorderservice.OrderStatusEnum; | ||
| 9 | import com.infoloop.tianting.clientcustomerorderservice.OrderTypeEnum; | 10 | import com.infoloop.tianting.clientcustomerorderservice.OrderTypeEnum; |
| 10 | import com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderRpcResponse; | 11 | import com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderRpcResponse; |
| 11 | import com.infoloop.tianting.clientcustomerservice.SingleClientCustomerLabelRefRpcResponse; | 12 | import com.infoloop.tianting.clientcustomerservice.SingleClientCustomerLabelRefRpcResponse; |
| ... | @@ -141,7 +142,13 @@ public class OrderServiceImpl implements OrderService { | ... | @@ -141,7 +142,13 @@ public class OrderServiceImpl implements OrderService { |
| 141 | final var labels = deliveryRuleServiceRpcClient.GetClientLabelsByIds(customer.getEnterpriseId(), labelIds).getResponsesList(); | 142 | final var labels = deliveryRuleServiceRpcClient.GetClientLabelsByIds(customer.getEnterpriseId(), labelIds).getResponsesList(); |
| 142 | final var avoids = labels.stream().filter(l -> l.getType() == ClientLabelTypeEnum.CLIENT_LABEL_TYPE_AVOID).map( | 143 | final var avoids = labels.stream().filter(l -> l.getType() == ClientLabelTypeEnum.CLIENT_LABEL_TYPE_AVOID).map( |
| 143 | SingleClientLabelRpcResponse::getName).collect(Collectors.toList()); | 144 | SingleClientLabelRpcResponse::getName).collect(Collectors.toList()); |
| 144 | - final var hisAllergies = meiZhongYiHeService.getHisCustomerAllergiesByCustomerId(customer.getHISCustomerId()); | 145 | + List<HisAllergy> hisAllergies = new ArrayList<>(); |
| 146 | + List<HisMedicalAdviceDto> origionalHisDoctors = new ArrayList<>(); | ||
| 147 | + if (!customer.getHISCustomerId().isEmpty()) { | ||
| 148 | + hisAllergies = meiZhongYiHeService.getHisCustomerAllergiesByCustomerId(customer.getHISCustomerId()); | ||
| 149 | + origionalHisDoctors = meiZhongYiHeService.getHisCustomerMedicalAdvicesByContractNo(record.getContractNo()); | ||
| 150 | + } | ||
| 151 | + | ||
| 145 | final var allergyCodes = hisAllergies.stream().map(HisAllergy::getAllergyCode).collect(Collectors.toList()); | 152 | final var allergyCodes = hisAllergies.stream().map(HisAllergy::getAllergyCode).collect(Collectors.toList()); |
| 146 | final var allLabels = deliveryRuleServiceRpcClient.getLabelsByTypes(QueryLabelsDto.builder() | 153 | final var allLabels = deliveryRuleServiceRpcClient.getLabelsByTypes(QueryLabelsDto.builder() |
| 147 | .enterpriseId(operatorLoginInfo.getEnterpriseId()) | 154 | .enterpriseId(operatorLoginInfo.getEnterpriseId()) |
| ... | @@ -149,7 +156,6 @@ public class OrderServiceImpl implements OrderService { | ... | @@ -149,7 +156,6 @@ public class OrderServiceImpl implements OrderService { |
| 149 | .build()); | 156 | .build()); |
| 150 | final var mappingAllergies = allLabels.getResponsesList().stream().filter(l -> allergyCodes.contains(l.getCode())).map(SingleClientLabelRpcResponse::getName).collect(Collectors.toList()); | 157 | final var mappingAllergies = allLabels.getResponsesList().stream().filter(l -> allergyCodes.contains(l.getCode())).map(SingleClientLabelRpcResponse::getName).collect(Collectors.toList()); |
| 151 | 158 | ||
| 152 | - final var origionalHisDoctors = meiZhongYiHeService.getHisCustomerMedicalAdvicesByContractNo(record.getContractNo()); | ||
| 153 | final var dietDoctors = origionalHisDoctors.stream().filter(d -> d.getMedicalAdviceType().equals( | 159 | final var dietDoctors = origionalHisDoctors.stream().filter(d -> d.getMedicalAdviceType().equals( |
| 154 | MedicalAdviceTypeEnum.DIET)).map(HisMedicalAdviceDto::getConnotation).collect(Collectors.toList()); | 160 | MedicalAdviceTypeEnum.DIET)).map(HisMedicalAdviceDto::getConnotation).collect(Collectors.toList()); |
| 155 | final var doctors = labels.stream().filter(l -> l.getType() == ClientLabelTypeEnum.CLIENT_LABEL_TYPE_DOCTOR).map( | 161 | final var doctors = labels.stream().filter(l -> l.getType() == ClientLabelTypeEnum.CLIENT_LABEL_TYPE_DOCTOR).map( |
| ... | @@ -258,7 +264,8 @@ public class OrderServiceImpl implements OrderService { | ... | @@ -258,7 +264,8 @@ public class OrderServiceImpl implements OrderService { |
| 258 | .openId(checkIfOrdered.getOpenId()) | 264 | .openId(checkIfOrdered.getOpenId()) |
| 259 | .build(); | 265 | .build(); |
| 260 | final var orderList = orderServiceRpcClient.getOrdersByCondition(queryOrderDto); | 266 | final var orderList = orderServiceRpcClient.getOrdersByCondition(queryOrderDto); |
| 261 | - return orderList.size(); | 267 | + final var filteredOrderList = orderList.stream().filter(o -> o.getStatus()!= OrderStatusEnum.ORDER_CANCELED).collect(Collectors.toList()); |
| 268 | + return filteredOrderList.size(); | ||
| 262 | } | 269 | } |
| 263 | 270 | ||
| 264 | @Override | 271 | @Override | ... | ... |
| ... | @@ -387,15 +387,23 @@ public class SettlementServiceImpl implements SettlementService { | ... | @@ -387,15 +387,23 @@ public class SettlementServiceImpl implements SettlementService { |
| 387 | .filter(m -> curMenuMealIds.contains(m.getId())) | 387 | .filter(m -> curMenuMealIds.contains(m.getId())) |
| 388 | .collect(Collectors.toList()); | 388 | .collect(Collectors.toList()); |
| 389 | // 汇总每个餐别的情况 | 389 | // 汇总每个餐别的情况 |
| 390 | - for(SingleMealRpcResponse meal: curMenuMeals) { | 390 | + for(Integer curMealId: curMenuMealIds) { |
| 391 | - final var mealName = meal.getName(); | 391 | + String mealName = "无餐别"; |
| 392 | + if (curMealId != 0) { | ||
| 393 | + final var curMeal = allMeals.stream().filter(m -> m.getId() == curMealId).findFirst(); | ||
| 394 | + if (curMeal.isEmpty()) { | ||
| 395 | + continue; | ||
| 396 | + } else { | ||
| 397 | + mealName = curMeal.get().getName(); | ||
| 398 | + } | ||
| 399 | + } | ||
| 392 | if (!menusMap.containsKey(mealName)) { | 400 | if (!menusMap.containsKey(mealName)) { |
| 393 | - menusMap.put(menuName, new HashMap<>()); | 401 | + menusMap.put(mealName, new HashMap<>()); |
| 394 | } | 402 | } |
| 395 | final var mealsMap = menusMap.get(mealName); | 403 | final var mealsMap = menusMap.get(mealName); |
| 396 | //当前餐别已点的order details | 404 | //当前餐别已点的order details |
| 397 | final var curMealOrderDetails = curMenuOrderDetails.stream() | 405 | final var curMealOrderDetails = curMenuOrderDetails.stream() |
| 398 | - .filter(od -> od.getMealId() == meal.getId()) | 406 | + .filter(od -> od.getMealId() == curMealId) |
| 399 | .collect(Collectors.toList()); | 407 | .collect(Collectors.toList()); |
| 400 | //找出所有需要的日期 | 408 | //找出所有需要的日期 |
| 401 | final var dates = curMealOrderDetails.stream() | 409 | final var dates = curMealOrderDetails.stream() |
| ... | @@ -454,7 +462,9 @@ public class SettlementServiceImpl implements SettlementService { | ... | @@ -454,7 +462,9 @@ public class SettlementServiceImpl implements SettlementService { |
| 454 | sheetTitleCell.setCellValue(settlementDataDto.getClient()); | 462 | sheetTitleCell.setCellValue(settlementDataDto.getClient()); |
| 455 | Row dateRangeRow = sheet.createRow(rowNum++); | 463 | Row dateRangeRow = sheet.createRow(rowNum++); |
| 456 | Cell dateRangeCell = dateRangeRow.createCell(0); | 464 | Cell dateRangeCell = dateRangeRow.createCell(0); |
| 457 | - final var dateRange = settlementDataDto.getStartTime() + "至" + settlementDataDto.getEndTime(); | 465 | + final var startDateStr = DateUtil.formatDate(settlementDataDto.getStartTime(), DateUtil.YYYY_MM_DD); |
| 466 | + final var endDateStr = DateUtil.formatDate(settlementDataDto.getEndTime(), DateUtil.YYYY_MM_DD); | ||
| 467 | + final var dateRange = startDateStr + "至" + endDateStr; | ||
| 458 | dateRangeCell.setCellValue(dateRange); | 468 | dateRangeCell.setCellValue(dateRange); |
| 459 | Row titleRow = sheet.createRow(rowNum++); | 469 | Row titleRow = sheet.createRow(rowNum++); |
| 460 | int columnNum = 0; | 470 | int columnNum = 0; |
| ... | @@ -501,7 +511,10 @@ public class SettlementServiceImpl implements SettlementService { | ... | @@ -501,7 +511,10 @@ public class SettlementServiceImpl implements SettlementService { |
| 501 | columnNum = 2; | 511 | columnNum = 2; |
| 502 | int totalPrice = 0; | 512 | int totalPrice = 0; |
| 503 | for (String date: dates) { | 513 | for (String date: dates) { |
| 504 | - final var toWriteDateSkuList = skuMap.get(date); | 514 | + List<SettlementMenuMealDto> toWriteDateSkuList = skuMap.get(date); |
| 515 | + if (toWriteDateSkuList == null) { | ||
| 516 | + toWriteDateSkuList = new ArrayList<>(); | ||
| 517 | + } | ||
| 505 | int price = 0; | 518 | int price = 0; |
| 506 | if(!toWriteDateSkuList.isEmpty()) { | 519 | if(!toWriteDateSkuList.isEmpty()) { |
| 507 | for (SettlementMenuMealDto settlementMenuMealDto: toWriteDateSkuList) { | 520 | for (SettlementMenuMealDto settlementMenuMealDto: toWriteDateSkuList) { |
| ... | @@ -518,7 +531,8 @@ public class SettlementServiceImpl implements SettlementService { | ... | @@ -518,7 +531,8 @@ public class SettlementServiceImpl implements SettlementService { |
| 518 | } | 531 | } |
| 519 | 532 | ||
| 520 | // 自动调整列宽 | 533 | // 自动调整列宽 |
| 521 | - for (int i = 0; i < 7; i++) { | 534 | + final var columnCnt = dates.size() + 2; |
| 535 | + for (int i = 0; i < columnCnt; i++) { | ||
| 522 | sheet.autoSizeColumn(i); | 536 | sheet.autoSizeColumn(i); |
| 523 | } | 537 | } |
| 524 | 538 | ... | ... |
-
Please register or login to post a comment