From 31f3dcc7c566174cbdec4f41a9a96e58a1be9a4e Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期二, 17 十二月 2024 16:20:12 +0800 Subject: [PATCH] 统计2.0+首页2.0+检验下单型号过滤修改 --- inspect-server/src/main/java/com/yuanchu/mom/service/impl/ReportServiceImpl.java | 107 ++++++++++++++++++++++++++++------------------------- 1 files changed, 56 insertions(+), 51 deletions(-) diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/ReportServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/ReportServiceImpl.java index 907fc32..fe35e81 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/ReportServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/ReportServiceImpl.java @@ -39,13 +39,13 @@ //姣忔棩涓氬姟缁熻 @Override - public Map<String, Object> businessStatisticsByDay(String startTime,String endTime,String type) { + public Map<String, Object> businessStatisticsByDay(String startTime, String endTime, String type) { DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDateTime start = LocalDate.parse(startTime, format).atStartOfDay(); LocalDateTime end = LocalDate.parse(endTime, format).atTime(23, 59, 59); - LocalDateTime oldStart=start ; - LocalDateTime oldEnd=end ; - switch (type){ + LocalDateTime oldStart = start; + LocalDateTime oldEnd = end; + switch (type) { case "鍛�": oldStart = start.minusDays(7); oldEnd = end.minusDays(7); @@ -101,23 +101,23 @@ /*妫�娴嬭垂鐢�*/ //浠婃棩妫�娴嬭垂鐢� QueryWrapper<CostStatisticsDto> costStatisticsDtoQueryWrappers = new QueryWrapper<>(); - costStatisticsDtoQueryWrappers.between("create_time", start,end); + costStatisticsDtoQueryWrappers.between("create_time", start, end); IPage<CostStatisticsDto> page = new Page<>(); page.setSize(-1); page.setCurrent(-1); IPage<CostStatisticsDto> iPage = insOrderMapper.selectCostStatistics(page, costStatisticsDtoQueryWrappers); BigDecimal price = BigDecimal.ZERO; for (CostStatisticsDto record : iPage.getRecords()) { - price.add(record.getPrice()); + price = price.add(ObjectUtils.isNotEmpty(record.getPrice()) ? record.getPrice() : BigDecimal.ZERO); } map.put("PRICE", price); //鏄ㄦ棩妫�娴嬭垂鐢� QueryWrapper<CostStatisticsDto> costWrappers = new QueryWrapper<>(); - costWrappers.between("create_time", oldStart,oldEnd); + costWrappers.between("create_time", oldStart, oldEnd); IPage<CostStatisticsDto> dtoIPage = insOrderMapper.selectCostStatistics(page, costWrappers); BigDecimal priced = BigDecimal.ZERO; for (CostStatisticsDto record : dtoIPage.getRecords()) { - priced.add(record.getPrice()); + priced = priced.add(ObjectUtils.isNotEmpty(record.getPrice()) ? record.getPrice() : BigDecimal.ZERO); } //姣斾緥=(浠婃棩-鏄ㄦ棩)/鏄ㄦ棩 BigDecimal priceRatio = (price.subtract(priced)).divide(priced.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ONE : priced, 2, BigDecimal.ROUND_HALF_UP); @@ -127,13 +127,13 @@ //浠婃棩妫�娴嬪伐鏃� Double cost = 0.0; for (CostStatisticsDto record : iPage.getRecords()) { - cost += record.getCost(); + cost += ObjectUtils.isNotEmpty(record.getCost()) ? record.getCost() : 0.0; } map.put("COST", cost); //鏄ㄦ棩妫�娴嬪伐鏃� Double costed = 0.0; for (CostStatisticsDto record : dtoIPage.getRecords()) { - costed += record.getCost(); + costed += ObjectUtils.isNotEmpty(record.getCost()) ? record.getCost() : 0.0; } //姣斾緥=(浠婃棩-鏄ㄦ棩)/鏄ㄦ棩 BigDecimal costRatio = new BigDecimal(cost - costed).divide(new BigDecimal(costed == 0 ? 1 : costed), 2, BigDecimal.ROUND_HALF_UP); @@ -158,18 +158,26 @@ //鑾峰彇杩戝崄鏃ョ殑妯潗鏍� LocalDate startDate = LocalDate.parse(startTime, format); LocalDate endDate = LocalDate.parse(endTime, format); - List<LocalDate> lastTenDays = new ArrayList<>(); + List<String> lastTenDays = new ArrayList<>(); List<Long> receTenDays = new ArrayList<>(); List<Long> finTenDays = new ArrayList<>(); while (!startDate.isAfter(endDate)) { - lastTenDays.add(startDate); + if (type.equals("骞�")){ + lastTenDays.add(startDate.format(format).substring(0,7)); + }else { + lastTenDays.add(startDate.format(format)); + } receTenDays.add(insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery() .eq(InsOrder::getState, 1) - .between(InsOrder::getCreateTime,startDate.atStartOfDay(),startDate.atTime(23,59,59)))); + .between(InsOrder::getCreateTime, startDate.atStartOfDay(), startDate.atTime(23, 59, 59)))); finTenDays.add(insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery() .eq(InsOrder::getState, 4) - .between(InsOrder::getCreateTime,startDate.atStartOfDay(),startDate.atTime(23,59,59)))); - startDate = startDate.plusDays(1); + .between(InsOrder::getCreateTime, startDate.atStartOfDay(), startDate.atTime(23, 59, 59)))); + if (type.equals("骞�")) { + startDate = startDate.plusMonths(1); + }else { + startDate=startDate.plusDays(1); + } } map.put("DAYS", lastTenDays); map.put("RECETENDAYS", receTenDays); @@ -179,12 +187,12 @@ //妫�娴嬮」鐩粺璁� @Override - public Map<String, Object> testProductByDay(String startTime,String endTime,String type) { + public Map<String, Object> testProductByDay(String startTime, String endTime, String type) { DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDateTime start = LocalDate.parse(startTime, format).atStartOfDay(); LocalDateTime end = LocalDate.parse(endTime, format).atTime(23, 59, 59); - LocalDateTime oldStart=start ; - LocalDateTime oldEnd=end ; + LocalDateTime oldStart = start; + LocalDateTime oldEnd = end; Map<String, Object> map = new HashMap<>(); /*椤圭洰鎺ユ敹*/ //浠婃棩椤圭洰鎺ユ敹閲� @@ -230,7 +238,8 @@ //浠婃棩瀹屾垚閲忎腑鐨勫悎鏍奸噺/浠婃棩瀹屾垚閲� Long accept = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery() .eq(InsProduct::getState, 1) - .eq(InsProduct::getInsResult, 1) + .isNotNull(InsProduct::getInsResult) + .ne(InsProduct::getInsResult, 0) .between(InsProduct::getCreateTime, start, end)); map.put("ACCEPT", accept); BigDecimal acceptRate = new BigDecimal(accept).divide(new BigDecimal(finishe == 0 ? 1 : finishe), 2, BigDecimal.ROUND_HALF_UP); @@ -250,19 +259,27 @@ //鑾峰彇杩戝崄鏃ョ殑妯潗鏍� LocalDate startDate = LocalDate.parse(startTime, format); LocalDate endDate = LocalDate.parse(endTime, format); - List<LocalDate> lastTenDays = new ArrayList<>(); + List<String> lastTenDays = new ArrayList<>(); List<Long> receTenDays = new ArrayList<>(); List<Long> finTenDays = new ArrayList<>(); - while (!startDate.isAfter(endDate)) { - lastTenDays.add(startDate); + while (!startDate.isAfter(endDate)) { + if (type.equals("骞�")){ + lastTenDays.add(startDate.format(format).substring(0,7)); + }else { + lastTenDays.add(startDate.format(format)); + } receTenDays.add(insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery() .eq(InsProduct::getState, 1) - .between(InsProduct::getCreateTime,startDate.atStartOfDay(),startDate.atTime(23,59,59)))); + .between(InsProduct::getCreateTime, startDate.atStartOfDay(), startDate.atTime(23, 59, 59)))); finTenDays.add(insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery() .eq(InsProduct::getState, 1) .isNotNull(InsProduct::getInsResult) - .between(InsProduct::getCreateTime,startDate.atStartOfDay(),startDate.atTime(23,59,59)))); - startDate = startDate.plusDays(1); + .between(InsProduct::getCreateTime, startDate.atStartOfDay(), startDate.atTime(23, 59, 59)))); + if (type.equals("骞�")) { + startDate = startDate.plusMonths(1); + }else { + startDate=startDate.plusDays(1); + } } map.put("DAYS", lastTenDays); map.put("RECETENDAYS", receTenDays); @@ -350,31 +367,24 @@ //棣栭〉-->鍚勭珯鐐圭殑宸ユ椂 @Override - public Map<String, Double> manHourByStation(String startTime, String endTime) { + public String manHourByStation(String startTime, String endTime, String sonLaboratory) { DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDateTime start = LocalDate.parse(startTime, format).atStartOfDay(); LocalDateTime end = LocalDate.parse(endTime, format).atTime(23, 59, 59); //鏌ヨ杩欎釜鏃堕棿鍐呮墍鏈夌殑宸ユ椂 List<AuxiliaryOutputWorkingHours> auxiliaryOutputWorkingHours = auxiliaryOutputWorkingHoursMapper.selectList(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() .between(AuxiliaryOutputWorkingHours::getCreateTime, start, end)); - //鏍规嵁妫�楠岄」鏌ュ嚭鏉ョ殑绔欑偣杩涜鍒嗙被 - List<AuxiliaryOutputWorkingHoursDto> outputWorkingHoursDtos = auxiliaryOutputWorkingHours.stream().map(auxiliaryOutputWorkingHours1 -> { - AuxiliaryOutputWorkingHoursDto auxiliaryOutputWorkingHoursDto = new AuxiliaryOutputWorkingHoursDto(); - BeanUtils.copyProperties(auxiliaryOutputWorkingHours1, auxiliaryOutputWorkingHoursDto); - InsProduct insProduct = insProductMapper.selectById(auxiliaryOutputWorkingHours1.getInsProductId()); - auxiliaryOutputWorkingHoursDto.setSonLaboratory(insProduct.getSonLaboratory()); - return auxiliaryOutputWorkingHoursDto; - }).collect(Collectors.toList()); - Map<String, Double> map = outputWorkingHoursDtos.stream() - .collect(Collectors.groupingBy( - AuxiliaryOutputWorkingHoursDto::getSonLaboratory, - Collectors.summingDouble(AuxiliaryOutputWorkingHours::getOutputWorkTime))); - return map; + double sum = auxiliaryOutputWorkingHours.stream() + .filter(auxiliaryOutputWorkingHours1 -> + insProductMapper.selectById(auxiliaryOutputWorkingHours1.getInsProductId()).getSonLaboratory().equals(sonLaboratory) + ).mapToDouble(AuxiliaryOutputWorkingHours::getOutputWorkTime).sum(); + String num = String.format("%.2f", sum); + return num; } //棣栭〉-->鍚勭珯鐐瑰伐鏃舵瘡涓汉鎵�鍗犵櫨鍒嗘瘮 @Override - public Map<String, Map<String, Double>> manHourByPerson(String startTime, String endTime) { + public Map<Object, Double> manHourByPerson(String startTime, String endTime, String sonLaboratory) { DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDateTime start = LocalDate.parse(startTime, format).atStartOfDay(); LocalDateTime end = LocalDate.parse(endTime, format).atTime(23, 59, 59); @@ -382,19 +392,14 @@ List<AuxiliaryOutputWorkingHours> auxiliaryOutputWorkingHours = auxiliaryOutputWorkingHoursMapper.selectList(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() .between(AuxiliaryOutputWorkingHours::getCreateTime, start, end)); //鏍规嵁妫�楠岄」鏌ュ嚭鏉ョ殑绔欑偣杩涜鍒嗙被 - List<AuxiliaryOutputWorkingHoursDto> outputWorkingHoursDtos = auxiliaryOutputWorkingHours.stream().map(auxiliaryOutputWorkingHours1 -> { - AuxiliaryOutputWorkingHoursDto auxiliaryOutputWorkingHoursDto = new AuxiliaryOutputWorkingHoursDto(); - BeanUtils.copyProperties(auxiliaryOutputWorkingHours1, auxiliaryOutputWorkingHoursDto); - InsProduct insProduct = insProductMapper.selectById(auxiliaryOutputWorkingHours1.getInsProductId()); - auxiliaryOutputWorkingHoursDto.setSonLaboratory(insProduct.getSonLaboratory()); - return auxiliaryOutputWorkingHoursDto; - }).collect(Collectors.toList()); - Map<String, Map<String, Double>> mapMap = outputWorkingHoursDtos.stream() + List<AuxiliaryOutputWorkingHours> outputWorkingHours = auxiliaryOutputWorkingHours.stream() + .filter(auxiliaryOutputWorkingHours1 -> + insProductMapper.selectById(auxiliaryOutputWorkingHours1.getInsProductId()).getSonLaboratory().equals(sonLaboratory) + ).collect(Collectors.toList()); + Map<Object, Double> mapMap = outputWorkingHours.stream() .collect(Collectors.groupingBy( - AuxiliaryOutputWorkingHoursDto::getSonLaboratory, - Collectors.groupingBy( t -> userMapper.selectById(t.getCheck()).getName(), - Collectors.summingDouble(AuxiliaryOutputWorkingHours::getOutputWorkTime)))); + Collectors.summingDouble(AuxiliaryOutputWorkingHours::getOutputWorkTime))); return mapMap; } -- Gitblit v1.9.3