diff --git a/blade-service/logpm-data-sharing/src/main/java/com/logpm/datasharing/service/impl/LogpmDataSearchServiceImpl.java b/blade-service/logpm-data-sharing/src/main/java/com/logpm/datasharing/service/impl/LogpmDataSearchServiceImpl.java index 5afbb49ad..cd7aa7f4b 100644 --- a/blade-service/logpm-data-sharing/src/main/java/com/logpm/datasharing/service/impl/LogpmDataSearchServiceImpl.java +++ b/blade-service/logpm-data-sharing/src/main/java/com/logpm/datasharing/service/impl/LogpmDataSearchServiceImpl.java @@ -317,13 +317,13 @@ public class LogpmDataSearchServiceImpl implements ILogpmDataSearchService { if (signListByWaybillNumber != null && !signListByWaybillNumber.isEmpty()) { //统计装车数量load_num - int loadNum = signListByWaybillNumber.stream().mapToInt(QualityDeliverEntity::getLoadNum).sum(); + int loadNum = signListByWaybillNumber.stream().filter(t-> t.getLoadNum()!=null).mapToInt(QualityDeliverEntity::getLoadNum).sum(); // 计划配送数 plan_num - int planNum = signListByWaybillNumber.stream().mapToInt(QualityDeliverEntity::getPlanNum).sum(); + int planNum = signListByWaybillNumber.stream().filter(t-> t.getPlanNum()!=null).mapToInt(QualityDeliverEntity::getPlanNum).sum(); // 计算签收数量sign_num - int signNum = signListByWaybillNumber.stream().mapToInt(QualityDeliverEntity::getSignNum).sum(); + int signNum = signListByWaybillNumber.stream().filter(t-> t.getSignNum()!=null).mapToInt(QualityDeliverEntity::getSignNum).sum(); // 配送装车 QualityDeliverEntity qualityDeliverEntity = signListByWaybillNumber.get(0); diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/largeScreen/BusinessRatioMapper.java b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/largeScreen/BusinessRatioMapper.java index 251a4c3d6..4abfc1e97 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/largeScreen/BusinessRatioMapper.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/largeScreen/BusinessRatioMapper.java @@ -2,6 +2,7 @@ package com.logpm.report.mapper.largeScreen; import com.logpm.report.vo.largeScreen.BusinessRatio.ItemDataVO; +import com.logpm.report.vo.largeScreen.BusinessRatio.MapBrandVO; import org.apache.ibatis.annotations.Mapper; import java.util.List; @@ -12,4 +13,6 @@ public interface BusinessRatioMapper { List getTypeData(String startTime, String endTime); List getBrandData(String startTime, String endTime); + + List getAllBrand(); } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/largeScreen/BusinessRatioMapper.xml b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/largeScreen/BusinessRatioMapper.xml index 981d3a740..c7ec9f212 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/largeScreen/BusinessRatioMapper.xml +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/largeScreen/BusinessRatioMapper.xml @@ -19,4 +19,10 @@ order by SUM(total_count) desc limit 5 + diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/largeScreen/impl/BillingDataServiceImpl.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/largeScreen/impl/BillingDataServiceImpl.java index b86bc8e89..d7a831db2 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/service/largeScreen/impl/BillingDataServiceImpl.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/largeScreen/impl/BillingDataServiceImpl.java @@ -14,10 +14,11 @@ import lombok.extern.log4j.Log4j2; import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Service; +import java.time.LocalDate; import java.util.*; import java.util.stream.Collectors; -@Service("张三") +@Service @Log4j2 @AllArgsConstructor @Primary @@ -30,24 +31,24 @@ public class BillingDataServiceImpl implements IBillingDataService { public BillingDataVO getBillingData() { // 今天的数据 BillingDataInfoVO today = billingDataMapper.getBillingData( - DateUtil.format(new Date(), "2024-MM-dd 00:00:00"), - DateUtil.format(new Date(), "2024-MM-dd 23:59:59") + DateUtil.format(new Date(), "yyyy-MM-dd 00:00:00"), + DateUtil.format(new Date(), "yyyy-MM-dd 23:59:59") ); // 当月的数据 BillingDataInfoVO month = billingDataMapper.getBillingData( - DateUtil.format(new Date(), "2024-MM-01 00:00:00"), - DateUtil.format(new Date(), "2024-MM-31 23:59:59") + DateUtil.format(new Date(), "yyyy-MM-01 00:00:00"), + DateUtil.format(new Date(), "yyyy-MM-31 23:59:59") ); // 年的数据 BillingDataInfoVO year = billingDataMapper.getBillingData( - DateUtil.format(new Date(), "2024-01-01 00:00:00"), - DateUtil.format(new Date(), "2024-12-31 23:59:59") + DateUtil.format(new Date(), "yyyy-01-01 00:00:00"), + DateUtil.format(new Date(), "yyyy-12-31 23:59:59") ); BillingDataVO billingDataVO = new BillingDataVO(); - billingDataVO.setToday(today); - billingDataVO.setMonth(month); - billingDataVO.setYear(year); + billingDataVO.setToday(today == null ? new BillingDataInfoVO() : today); + billingDataVO.setMonth(month == null ? new BillingDataInfoVO() : month); + billingDataVO.setYear(year == null ? new BillingDataInfoVO() : year); return billingDataVO; } @@ -55,44 +56,56 @@ public class BillingDataServiceImpl implements IBillingDataService { @Override public List getWarehouseBillingData() { List warehouselist = mapWarehouseMapper.warehouselist(); -// List warehouseBillingData = billingDataMapper.getWarehouseBillingData( -// DateUtil.format(new Date(), "yyyy-01-01 00:00:00"), -// DateUtil.format(new Date(), "yyyy-12-31 23:59:59") -// ); - List warehouseBillingData = billingDataMapper.getWarehouseBillingData( - DateUtil.format(new Date(), "2024-01-01 00:00:00"), - DateUtil.format(new Date(), "2024-12-31 23:59:59") + DateUtil.format(new Date(), "yyyy-01-01 00:00:00"), + DateUtil.format(new Date(), "yyyy-12-31 23:59:59") ); - Map warehouseBillingDataMap = warehouselist.stream().collect(Collectors.toMap(WarehouseInfoVO::getWarehouseId, v -> v)); - List res = null; - try { - res = warehouseBillingData.stream() - .peek(WarehouseBillingDataVO -> { - if (warehouseBillingDataMap.get(WarehouseBillingDataVO.getWarehouseId()) != null) { - WarehouseBillingDataVO.setWarehouseName(warehouseBillingDataMap.get(WarehouseBillingDataVO.getWarehouseId()).getWarehouseName()); - } - }) - .sorted((WarehouseBillingDataVO o1, WarehouseBillingDataVO o2) -> o2.getTotal() - o1.getTotal()) - .collect(Collectors.toList()); - }catch (Exception e){ - log.error("数据异常", e); - } + Map warehouseBillingMapData = warehouseBillingData.stream().collect(Collectors.toMap(WarehouseBillingDataVO::getWarehouseId, v -> v)); - return res; + List res = new ArrayList<>(); + warehouselist.forEach(warehouseInfoVO -> { + WarehouseBillingDataVO warehouseBillingDataVO = warehouseBillingMapData.get(warehouseInfoVO.getWarehouseId()); + + if (warehouseBillingDataVO == null) { + warehouseBillingDataVO = new WarehouseBillingDataVO(); + warehouseBillingDataVO.setWarehouseId(warehouseInfoVO.getWarehouseId()); + warehouseBillingDataVO.setTotal(0); + warehouseBillingDataVO.setValue(0); + } + warehouseBillingDataVO.setWarehouseName(warehouseInfoVO.getWarehouseName()); + + res.add(warehouseBillingDataVO); + }); + + return res.stream().sorted((o1, o2) -> o2.getTotal() - o1.getTotal()).collect(Collectors.toList()); } @Override public List getMonthBillingData() { -// return billingDataMapper.getMonthBillingData( -// DateUtil.format(new Date(), "yyyy-01-01 00:00:00"), -// DateUtil.format(new Date(), "yyyy-12-31 23:59:59") -// ); - - return billingDataMapper.getMonthBillingData( - DateUtil.format(new Date(), "2024-01-01 00:00:00"), - DateUtil.format(new Date(), "2024-12-31 23:59:59") + List monthBillingData = billingDataMapper.getMonthBillingData( + DateUtil.format(new Date(), "yyyy-01-01 00:00:00"), + DateUtil.format(new Date(), "yyyy-12-31 23:59:59") ); + + ArrayList res = new ArrayList<>(); + Map monthKeyData = monthBillingData.stream().collect(Collectors.toMap(MonthBillingDataVO::getMonth, v -> v)); + List monthList = Arrays.asList("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"); + + monthList.forEach(month -> { + month = LocalDate.now().getYear() + "-" + month; + MonthBillingDataVO monthBillingDataVO = monthKeyData.get(month); + if (monthBillingDataVO == null) { + monthBillingDataVO = new MonthBillingDataVO(); + monthBillingDataVO.setMonth(month); + monthBillingDataVO.setTotal(0); + monthBillingDataVO.setValue(0); + monthBillingDataVO.setVolume("0"); + monthBillingDataVO.setWeight("0"); + } + res.add(monthBillingDataVO); + }); + + return res; } } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/largeScreen/impl/BusinessRationServiceImpl.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/largeScreen/impl/BusinessRationServiceImpl.java index 4bc32558b..1613fd230 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/service/largeScreen/impl/BusinessRationServiceImpl.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/largeScreen/impl/BusinessRationServiceImpl.java @@ -1,7 +1,11 @@ package com.logpm.report.service.largeScreen.impl; +import com.alibaba.fastjson.JSONObject; +import com.logpm.basicdata.feign.IBasicdataBrandClient; import com.logpm.report.mapper.largeScreen.BusinessRatioMapper; import com.logpm.report.service.largeScreen.IBusinessRationService; +import com.logpm.report.vo.largeScreen.BusinessRatio.ItemDataVO; +import com.logpm.report.vo.largeScreen.BusinessRatio.MapBrandVO; import com.logpm.report.vo.largeScreen.BusinessRatioDataVO; import lombok.AllArgsConstructor; import lombok.extern.log4j.Log4j2; @@ -10,6 +14,8 @@ import org.springframework.stereotype.Service; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.stream.Collectors; @AllArgsConstructor @Service @@ -19,18 +25,37 @@ public class BusinessRationServiceImpl implements IBusinessRationService { private final BusinessRatioMapper businessRatioMapper; + private final IBasicdataBrandClient basicdataBrandClient; + @Override public BusinessRatioDataVO getBusinessRatioData() { -// String startTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-01-01 00:00:00")); -// String endTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-12-31 23:59:59")); - - String startTime = "2024-01-01 00:00:00"; - String endTime = "2024-12-31 23:59:59"; + String startTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-01-01 00:00:00")); + String endTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-12-31 23:59:59")); + + List allBrand = businessRatioMapper.getAllBrand(); + Map brandInitData = new HashMap<>(); + Map typeInitData = new HashMap<>(); + allBrand.forEach(v -> { + brandInitData.put(v.getBrand(), new ItemDataVO(v.getBrand(), 0)); + }); + Arrays.asList("0", "1", "2", "3", "4").forEach(v -> { + typeInitData.put(v, new ItemDataVO(v, 0)); + }); + + List brandData = businessRatioMapper.getBrandData(startTime, endTime); + List typeData = businessRatioMapper.getTypeData(startTime, endTime); + + brandData.forEach(v -> { + brandInitData.put(v.getName(), v); + }); + typeData.forEach(v -> { + typeInitData.put(v.getName(), v); + }); BusinessRatioDataVO businessRatioDataVO = new BusinessRatioDataVO(); - businessRatioDataVO.setType(businessRatioMapper.getTypeData(startTime, endTime)); - businessRatioDataVO.setBrand(businessRatioMapper.getBrandData(startTime, endTime)); + businessRatioDataVO.setType(new ArrayList<>(typeInitData.values())); + businessRatioDataVO.setBrand(new ArrayList<>(brandInitData.values())); return businessRatioDataVO; } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/vo/largeScreen/BusinessRatio/ItemDataVO.java b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/largeScreen/BusinessRatio/ItemDataVO.java index afb3999d1..afd831cda 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/vo/largeScreen/BusinessRatio/ItemDataVO.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/largeScreen/BusinessRatio/ItemDataVO.java @@ -1,8 +1,10 @@ package com.logpm.report.vo.largeScreen.BusinessRatio; +import lombok.AllArgsConstructor; import lombok.Data; +@AllArgsConstructor @Data public class ItemDataVO { private String name; diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/vo/largeScreen/BusinessRatio/MapBrandVO.java b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/largeScreen/BusinessRatio/MapBrandVO.java new file mode 100644 index 000000000..12973e252 --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/largeScreen/BusinessRatio/MapBrandVO.java @@ -0,0 +1,10 @@ +package com.logpm.report.vo.largeScreen.BusinessRatio; + + +import lombok.Data; + +@Data +public class MapBrandVO { + private String brand; + private String id; +}