From 20678f555fbc954af97bd194ed6c3d8f610707ac Mon Sep 17 00:00:00 2001 From: "pref_mail@163.com" Date: Fri, 8 Nov 2024 00:22:37 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E7=9A=84=E7=BB=93=E7=AE=97=E5=8D=95=E5=AE=A1=E6=A0=B8=E7=88=86?= =?UTF-8?q?=E7=B2=97=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../statistics/dto/AdvanceDetailDTO.java | 39 +++++++ .../impl/AftersalesWorkOrderServiceImpl.java | 13 --- .../BasicdataWarehouseController.java | 1 + .../mapper/StatisticsOrderInfoMapper.java | 3 + .../mapper/StatisticsOrderInfoMapper.xml | 16 +++ .../impl/StatisticsOrderInfoServiceImpl.java | 100 +++++++++++++++--- 6 files changed, 146 insertions(+), 26 deletions(-) create mode 100644 blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/dto/AdvanceDetailDTO.java diff --git a/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/dto/AdvanceDetailDTO.java b/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/dto/AdvanceDetailDTO.java new file mode 100644 index 000000000..e7b58cb34 --- /dev/null +++ b/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/dto/AdvanceDetailDTO.java @@ -0,0 +1,39 @@ +package com.logpm.statistics.dto; + +import lombok.Data; + +/** + * 预收明细 + */ +@Data +public class AdvanceDetailDTO { + + /** + * 运单ID + */ + private Long waybillId; + /** + * 运单号 + */ + private String waybillNo; + /** + * 订单号 + */ + private String orderCode; + + /** + * 收入结算品类 + */ + private String incomeCategoryName; + + /** + * 支出结算品类 + */ + private String costCategoryName; + + /** + * 数量 + */ + private Integer quantity; + +} diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesWorkOrderServiceImpl.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesWorkOrderServiceImpl.java index 146d45d64..d9c0167a7 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesWorkOrderServiceImpl.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesWorkOrderServiceImpl.java @@ -2027,18 +2027,11 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImplquery().lambda(). eq(AftersalesProcessorEntity::getWorkOrderId, aftersalesWorkOrderDTO.getId()) - .eq(AftersalesProcessorEntity::getBusinessId, myCurrentWarehouse.getId()) - .eq(AftersalesProcessorEntity::getBusinessName, myCurrentWarehouse.getName()) .eq(AftersalesProcessorEntity::getTypesOf, ProcessorTypesOfStatusConstant.chulifang.getValue()) ); List list1 = new ArrayList<>(); @@ -2050,12 +2043,6 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl findRencilitionOrderIdsByWaybillId(@Param("waybillId") Long waybillId); void deleteDataByWaybillId(@Param("waybillId") Long waybillId); + + List selectAdvinceDetail(@Param("waybillIds") Set waybillIds, @Param("orderCodes") Set orderCodes); } diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsOrderInfoMapper.xml b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsOrderInfoMapper.xml index 42ec6e398..579226383 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsOrderInfoMapper.xml +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsOrderInfoMapper.xml @@ -562,6 +562,22 @@ where waybill_id = #{waybillId} group by reconciliation_order_id + delete from logpm_statistics_order_info diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsOrderInfoServiceImpl.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsOrderInfoServiceImpl.java index 7108ab03d..eb8e2f6bf 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsOrderInfoServiceImpl.java +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsOrderInfoServiceImpl.java @@ -20,6 +20,7 @@ import com.logpm.basicdata.vo.PriceDispatchVO; import com.logpm.basicdata.vo.PriceWarehouseAdditionalVO; import com.logpm.basicdata.vo.PriceWarehouseBasicVO; import com.logpm.basicdata.vo.PriceWarehouseVO; +import com.logpm.statistics.dto.AdvanceDetailDTO; import com.logpm.statistics.dto.AftersalesOrderDTO; import com.logpm.statistics.dto.ChangesRecordDTO; import com.logpm.statistics.dto.MerchantStatisticsDTO; @@ -99,12 +100,16 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl orderInfoIdList = records.stream().map(StatisticsOrderInfoVO::getOrderInfoId).collect(Collectors.toList()); - // 得到运单ID + // 得到运单ID集合 Set waybillIds = records.stream().map(StatisticsOrderInfoVO::getWaybillId).collect(Collectors.toSet()); // 查询运单明细集合 List waybillDetailByWaybillId = baseMapper.findWaybillDetailByWaybillId(waybillIds); + //得到运单号 + Set orderCodeSet = records.stream().map(StatisticsOrderInfoVO::getOrderCode).collect(Collectors.toSet()); + + // 通过运单号进行分组 Map> waybillDetailByWaybillIdMap = waybillDetailByWaybillId.stream().collect(Collectors.groupingBy(WaybillDetailByWaybillNoVo::getWaybillId)); @@ -122,10 +127,28 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl advanceDetailDTOS=baseMapper.selectAdvinceDetail(waybillIds, orderCodeSet); records.forEach(statisticsOrderInfoVO -> { // Long waybillId = statisticsOrderInfoVO.getWaybillId(); + + Long waybillId = statisticsOrderInfoVO.getWaybillId(); + String orderCode = statisticsOrderInfoVO.getOrderCode(); + // 查询站存单上的 + + List advanceDetailDTOList = advanceDetailDTOS.stream(). + filter(advanceDetailDTO -> advanceDetailDTO.getWaybillId().equals(waybillId) && advanceDetailDTO.getOrderCode().equals(orderCode)).collect(Collectors.toList()); + + + + // 对advanceDetailDTOList 按照 incomeCategoryName 进分组 并统计数量 + Map> collect = advanceDetailDTOList.stream().collect(Collectors.groupingBy(AdvanceDetailDTO::getIncomeCategoryName)); + + + + + Long orderInfoId = statisticsOrderInfoVO.getOrderInfoId(); if(orderPackageInfoMap!=null){ @@ -137,31 +160,82 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl waybillDetailByWaybillNoVos = waybillDetailByWaybillIdMap.get(statisticsOrderInfoVO.getWaybillId()); StringBuffer sb = new StringBuffer(); StringBuffer sb1 = new StringBuffer(); + StringBuffer sb3 = new StringBuffer(); - for (String s : split) { + if(collect.isEmpty()){ - Optional first = waybillDetailByWaybillNoVos.stream().filter(waybillDetailByWaybillNoVo -> waybillDetailByWaybillNoVo.getProductName().equals(s)).findFirst(); + if(!waybillDetailByWaybillNoVos.isEmpty()){ - if(first.isPresent()){ - WaybillDetailByWaybillNoVo waybillDetailByWaybillNoVo = first.get(); + for (WaybillDetailByWaybillNoVo waybillDetailByWaybillNoVo : waybillDetailByWaybillNoVos) { + + if(!sb3.toString().isEmpty()){ + sb3.append(","); + } + sb3.append(waybillDetailByWaybillNoVo.getProductName()); + + if(!sb.toString().isEmpty()){ + sb.append(","); + } + sb.append(waybillDetailByWaybillNoVo.getNum()); + + + if(!sb1.toString().isEmpty()){ + sb1.append(","); + } + sb1.append(waybillDetailByWaybillNoVo.getPrice()); - if(!sb.toString().isEmpty()){ - sb.append(","); - } - sb.append(waybillDetailByWaybillNoVo.getNum()); - if(!sb1.toString().isEmpty()){ - sb1.append(","); } - sb1.append(waybillDetailByWaybillNoVo.getPrice()); + + } + + + + + + }else{ + collect.keySet().forEach(s -> { + if(!sb3.toString().isEmpty()){ + sb3.append(","); + } + sb3.append(s); + + + List advanceDetailDTOS1 = collect.get(s); + Optional first = waybillDetailByWaybillNoVos.stream().filter(waybillDetailByWaybillNoVo -> waybillDetailByWaybillNoVo.getProductName().equals(s)).findFirst(); + + if(first.isPresent()){ + WaybillDetailByWaybillNoVo waybillDetailByWaybillNoVo = first.get(); + + if(!sb.toString().isEmpty()){ + sb.append(","); + } + + //统计 advanceDetailDTOS1 这个集合种 quantity 的和值 + int sum = advanceDetailDTOS1.stream().mapToInt(AdvanceDetailDTO::getQuantity).sum(); + sb.append(sum); + + if(!sb1.toString().isEmpty()){ + sb1.append(","); + } + sb1.append(waybillDetailByWaybillNoVo.getPrice()); + } + + }); + } + + + statisticsOrderInfoVO.setGoodsName(sb3.toString()); statisticsOrderInfoVO.setGoodsNum(sb.toString()); statisticsOrderInfoVO.setGoodsPrice(sb1.toString()); }