From 4ffab9658f41f298372d771a2400d76455de3a7b Mon Sep 17 00:00:00 2001 From: rentaiming <806181062@qq.com> Date: 星期三, 24 七月 2024 08:58:21 +0800 Subject: [PATCH] 森林防火 供应商管理 --- ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/HomeStatisticsServiceImpl.java | 177 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 175 insertions(+), 2 deletions(-) diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/HomeStatisticsServiceImpl.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/HomeStatisticsServiceImpl.java index 5d93534..c2110e1 100644 --- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/HomeStatisticsServiceImpl.java +++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/HomeStatisticsServiceImpl.java @@ -1,14 +1,187 @@ package com.ruoyi.management.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.management.domain.SlGoodsMaterials; +import com.ruoyi.management.domain.SlStoreManagement; +import com.ruoyi.management.domain.SlVolumeProductionCk; +import com.ruoyi.management.domain.SlVolumeProductionRk; import com.ruoyi.management.domain.dto.HomeStatisticsQuery; import com.ruoyi.management.domain.vo.HomeStatisticsVO; -import com.ruoyi.management.service.HomeStatisticsService; +import com.ruoyi.management.domain.vo.goodsMaterialsNmVO; +import com.ruoyi.management.domain.vo.homeVO; +import com.ruoyi.management.service.*; import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; @Service public class HomeStatisticsServiceImpl implements HomeStatisticsService { + + @Resource + private SlVolumeProductionRkService slVolumeProductionRkService; + + @Resource + private SlGoodsMaterialsService slGoodsMaterialsService; + + @Resource + private SlStoreManagementService slStoreManagementService; + + @Resource + private SlVolumeProductionCkService slVolumeProductionCkService; + + @Override public HomeStatisticsVO getHomeStatistics(HomeStatisticsQuery homeStatisticsQuery) { - return null; + + LambdaQueryWrapper<SlStoreManagement> wrapper= Wrappers.lambdaQuery(); + if (homeStatisticsQuery.getStoreManagementName()!=null&&homeStatisticsQuery.getStoreManagementName()!=""){ + wrapper.eq(SlStoreManagement::getStoreManagementName,homeStatisticsQuery.getStoreManagementName()); + } + if(homeStatisticsQuery.getStoreManagementNo()!=null&&homeStatisticsQuery.getStoreManagementNo()!=""){ + wrapper.eq(SlStoreManagement::getStoreManagementNo,homeStatisticsQuery.getStoreManagementNo()); + } + if (homeStatisticsQuery.getStoreManagementGrade()!=0 && homeStatisticsQuery.getStoreManagementGrade()!=null){ + wrapper.eq(SlStoreManagement::getStoreManagementGrade,homeStatisticsQuery.getStoreManagementGrade()); + } + + if (homeStatisticsQuery.getStoreManagementNumber()!=0 && homeStatisticsQuery.getStoreManagementNumber()!=null){ + wrapper.eq(SlStoreManagement::getStoreManagementNumber,homeStatisticsQuery.getStoreManagementNumber()); + } + + if (homeStatisticsQuery.getCityCode()!=null){ + wrapper.eq(SlStoreManagement::getCityCode,homeStatisticsQuery.getCityCode()); + } + if (homeStatisticsQuery.getCountyCode()!=null){ + wrapper.eq(SlStoreManagement::getCountyCode,homeStatisticsQuery.getCountyCode()); + } + if (homeStatisticsQuery.getTownCode()!=null){ + wrapper.eq(SlStoreManagement::getCountyCode,homeStatisticsQuery.getTownCode()); + } + List<SlStoreManagement> list = slStoreManagementService.list(wrapper); + + Set<Long> slStoreManagementIdList = null; + slStoreManagementIdList = list.stream().map(SlStoreManagement::getId) + .collect(Collectors.toSet()); + + LambdaQueryWrapper<SlGoodsMaterials> wrapper1= Wrappers.lambdaQuery(); + + if (homeStatisticsQuery.getGoodsMaterialsName()!=null&&homeStatisticsQuery.getStoreManagementName()!=""){ + wrapper1.eq(SlGoodsMaterials::getGoodsMaterialsName,homeStatisticsQuery.getGoodsMaterialsName()); + } + List<SlGoodsMaterials> list1 = slGoodsMaterialsService.list(wrapper1); + + Set<Long> SlGoodsMaterialsList = null; + SlGoodsMaterialsList = list1.stream().map(SlGoodsMaterials::getId) + .collect(Collectors.toSet()); + + LambdaQueryWrapper<SlVolumeProductionRk> wrapper2= Wrappers.lambdaQuery(); + if (slStoreManagementIdList.size()>0){ + wrapper2.in(SlVolumeProductionRk::getManagementId,slStoreManagementIdList); + }else{ + slStoreManagementIdList=new HashSet<>(); + slStoreManagementIdList.add(0L); + wrapper2.in(SlVolumeProductionRk::getManagementId,slStoreManagementIdList); + } + + if (SlGoodsMaterialsList.size()>0){ + wrapper2.in(SlVolumeProductionRk::getMaterialsId,SlGoodsMaterialsList); + }else{ + SlGoodsMaterialsList=new HashSet<>(); + SlGoodsMaterialsList.add(0L); + wrapper2.in(SlVolumeProductionRk::getMaterialsId,SlGoodsMaterialsList); + } + if (homeStatisticsQuery.getShelfId()!=null){ + wrapper2.eq(SlVolumeProductionRk::getShelfId,homeStatisticsQuery.getShelfId()); + } + + List<SlVolumeProductionRk> list2 = slVolumeProductionRkService.list(wrapper2); + + + Map<Long, List<SlVolumeProductionRk>> groupByUserNameMap = list2.stream().collect(Collectors.groupingBy(SlVolumeProductionRk::getMaterialsId)); + + + HomeStatisticsVO homeStatisticsVO=new HomeStatisticsVO(); + homeStatisticsVO.setGoodsMaterialsSumNum(groupByUserNameMap.size()); + + Double d=0.0; + + for (SlVolumeProductionRk li:list2){ + Long repertoryZhai = li.getRepertoryZhai(); + LambdaQueryWrapper<SlVolumeProductionCk> wrapper3= Wrappers.lambdaQuery(); + wrapper3.eq(SlVolumeProductionCk::getRkId,li.getId()); + wrapper3.eq(SlVolumeProductionCk::getIsGh,1); + List<SlVolumeProductionCk> list3 = slVolumeProductionCkService.list(wrapper3); + if (list3.size()>0){ + for (SlVolumeProductionCk li1:list3){ + repertoryZhai=repertoryZhai+li1.getCkNum(); + } + } + d=d+li.getRkPice().multiply(new BigDecimal(li.getRkPice().intValue())).doubleValue(); + li.setRepertoryZhai(repertoryZhai); + } + + homeStatisticsVO.setGoodsMaterialsSumPice(d); + + //非消耗 + List<homeVO> arr=new ArrayList<>(); + //消耗 + List<homeVO> arr1=new ArrayList<>(); + for (SlVolumeProductionRk l:list2){ + homeVO h=new homeVO(); + SlGoodsMaterials byId = slGoodsMaterialsService.getById(l.getMaterialsId()); + h.setIsConsume(byId.getIsConsume()); + h.setId(byId.getId()); + h.setGoodsMaterialsName(byId.getGoodsMaterialsName()); + h.setGoodsMaterialsNum(l.getRepertoryZhai()); + if (byId.getIsConsume()==1){ + arr.add(h); + }else{ + arr1.add(h); + } + + } + + List<goodsMaterialsNmVO> goodsMaterialsNmVOS=new ArrayList<>(); + Map<String, List<homeVO>> groupByUserNameMap1 = arr.stream().collect(Collectors.groupingBy(homeVO::getGoodsMaterialsName)); + for (Map.Entry<String, List<homeVO>> entry : groupByUserNameMap1.entrySet()) { + goodsMaterialsNmVO goodsMaterialsNmVO=new goodsMaterialsNmVO(); + String key = entry.getKey(); + goodsMaterialsNmVO.setGoodsMaterialsName(key); + List<homeVO> value = entry.getValue(); + // 处理键和值 + Long a=0L; + for (homeVO vo : value) { + a=a+vo.getGoodsMaterialsNum(); + } + goodsMaterialsNmVO.setGoodsMaterialsNum(a); + goodsMaterialsNmVOS.add(goodsMaterialsNmVO); + } + + homeStatisticsVO.setGoodsMaterialsfxiaohao(goodsMaterialsNmVOS); + + + List<goodsMaterialsNmVO> goodsMaterialsNmVOS1=new ArrayList<>(); + Map<String, List<homeVO>> groupByUserNameMap2 = arr1.stream().collect(Collectors.groupingBy(homeVO::getGoodsMaterialsName)); + for (Map.Entry<String, List<homeVO>> entry : groupByUserNameMap2.entrySet()) { + goodsMaterialsNmVO goodsMaterialsNmVO1=new goodsMaterialsNmVO(); + String key = entry.getKey(); + goodsMaterialsNmVO1.setGoodsMaterialsName(key); + List<homeVO> value = entry.getValue(); + // 处理键和值 + Long a=0L; + for (homeVO vo : value) { + a=a+vo.getGoodsMaterialsNum(); + } + goodsMaterialsNmVO1.setGoodsMaterialsNum(a); + goodsMaterialsNmVOS1.add(goodsMaterialsNmVO1); + } + + homeStatisticsVO.setGoodsMaterialsxiaohao(goodsMaterialsNmVOS); + + return homeStatisticsVO; } } -- Gitblit v1.7.1