From b05283fba9a536c226aee635bc824cbf8a604188 Mon Sep 17 00:00:00 2001 From: seatonwan9 Date: 星期四, 28 八月 2025 16:19:36 +0800 Subject: [PATCH] 更新代码 --- src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java | 77 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 76 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java b/src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java index 94a5ab0..eaff11a 100644 --- a/src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java +++ b/src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java @@ -41,6 +41,7 @@ import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; +import java.util.Arrays; import java.util.stream.Collectors; /** @@ -162,7 +163,7 @@ } @Override - public PageResult<OrderInfo> getPendingApprovalOrderPage(OrderQueryDTO queryDTO) { + public PageResult<OrderDetailVO> getPendingApprovalOrderPage(OrderQueryDTO queryDTO) { // 鍒涘缓鍒嗛〉瀵硅薄 Page<OrderInfo> page = new Page<>(queryDTO.getPageNum(), queryDTO.getPageSize()); @@ -173,6 +174,65 @@ queryDTO.getApplyTimeStart() != null ? queryDTO.getApplyTimeStart().toString() : null, queryDTO.getApplyTimeEnd() != null ? queryDTO.getApplyTimeEnd().toString() : null, queryDTO.getOrderBy(), queryDTO.getOrderDirection() + ); + + // 灏嗚鍗曚笌璇︽儏鑱旇〃灏佽鍒癡O + List<OrderDetailVO> voList = result.getRecords().stream().map(order -> { + OrderDetailVO vo = new OrderDetailVO(); + BeanUtils.copyProperties(order, vo); + List<OrderDetail> details = orderDetailMapper.selectByOrderId(order.getOrderId()); + List<OrderDetailItemVO> items = details.stream().map(d -> { + OrderDetailItemVO item = new OrderDetailItemVO(); + BeanUtils.copyProperties(d, item); + return item; + }).collect(java.util.stream.Collectors.toList()); + vo.setOrderDetails(items); + return vo; + }).collect(java.util.stream.Collectors.toList()); + + // 鏋勫缓杩斿洖缁撴灉 + return new PageResult<OrderDetailVO>( + voList, + result.getTotal(), + queryDTO.getPageNum().longValue(), + queryDTO.getPageSize().longValue(), + result.getPages() + ); + } + + @Override + public PageResult<OrderInfo> getPendingApprovalOrderPageWithProductConditions(OrderQueryDTO queryDTO) { + // 鏍规嵁浜у搧鏉′欢鏌ヨ浜у搧ID鍒楄〃 + List<String> productIds = null; + if (StringUtils.hasText(queryDTO.getIndustryId()) || StringUtils.hasText(queryDTO.getUnitProjectId()) || + StringUtils.hasText(queryDTO.getProductTypeId()) || StringUtils.hasText(queryDTO.getProductSubTypeId())) { + productIds = reportResultSubmissionMapper.selectProductIdsByConditions( + queryDTO.getIndustryId(), queryDTO.getUnitProjectId(), + queryDTO.getProductTypeId(), queryDTO.getProductSubTypeId() + ); + + // 濡傛灉娌℃湁鎵惧埌鍖归厤鐨勪骇鍝侊紝鐩存帴杩斿洖绌虹粨鏋� + if (CollectionUtils.isEmpty(productIds)) { + return new PageResult<OrderInfo>( + java.util.Collections.emptyList(), + 0L, + queryDTO.getPageNum().longValue(), + queryDTO.getPageSize().longValue(), + 0L + ); + } + } + + // 鍒涘缓鍒嗛〉瀵硅薄 + Page<OrderInfo> page = new Page<>(queryDTO.getPageNum(), queryDTO.getPageSize()); + + // 鎵ц鍒嗛〉鏌ヨ + IPage<OrderInfo> result = baseMapper.selectPendingApprovalOrderPageWithProductConditions( + page, queryDTO.getOrderStatus(), queryDTO.getProductName(), queryDTO.getProviderName(), + queryDTO.getOrderId(), + queryDTO.getApplyTimeStart() != null ? queryDTO.getApplyTimeStart().toString() : null, + queryDTO.getApplyTimeEnd() != null ? queryDTO.getApplyTimeEnd().toString() : null, + queryDTO.getOrderBy(), queryDTO.getOrderDirection(), productIds ); // 鏋勫缓杩斿洖缁撴灉 @@ -1124,4 +1184,19 @@ orderInfo.setUpdatedAt(LocalDateTime.now()); return this.updateById(orderInfo); } + + @Override + public boolean existsCompletedNotCancelledOrderByProductId(String productId) { + if (!StringUtils.hasText(productId)) { + throw new BusinessException("浜у搧ID涓嶈兘涓虹┖"); + } + QueryWrapper<OrderInfo> wrapper = new QueryWrapper<>(); + wrapper.eq("product_id", productId); + // 鏈彇娑堬細閫昏緫鏈垹闄� + wrapper.eq("deleted", 0); + // 瀹℃牳涓細鐘舵�佷笉涓� 宸插畬鎴� 鎴� 宸插彇娑� + wrapper.notIn("order_status", Arrays.asList("宸插畬鎴�", "宸插彇娑�")); + Long count = this.baseMapper.selectCount(wrapper); + return count != null && count > 0; + } } -- Gitblit v1.8.0