From caae2b2d5d7aa962cd31a334c5b8aef22f23a753 Mon Sep 17 00:00:00 2001
From: wjli <591616088@qq.com>
Date: 星期二, 16 五月 2023 14:14:24 +0800
Subject: [PATCH] 1.增加区域名称列表接口
---
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ISignCountServiceImpl.java | 166 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 156 insertions(+), 10 deletions(-)
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ISignCountServiceImpl.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ISignCountServiceImpl.java
index ca87496..35c9a38 100644
--- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ISignCountServiceImpl.java
+++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ISignCountServiceImpl.java
@@ -5,6 +5,7 @@
import cn.exrick.xboot.your.mapper.SignCountMapper;
import cn.exrick.xboot.your.entity.SignCount;
import cn.exrick.xboot.your.service.ISignCountService;
+import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -15,6 +16,8 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.math.BigDecimal;
+import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -43,31 +46,174 @@
page.setSize(-1);
}
if(StringUtil.isNotBlank(orderStatusCount.getStatisticalType())){
- IPage<OrderStatusCount> orderStatusCountIPage = this.signCountMapper.signCounts(orderStatusCount, page);
+ IPage<OrderStatusCount> orderStatusCountIPage = this.signCountMapper.signCount(orderStatusCount, page);
List<OrderStatusCount> records = orderStatusCountIPage.getRecords();
+ List<OrderStatusCount> recordsLast = new ArrayList<>();
Map<String, List<OrderStatusCount>> collect = records.stream().collect(Collectors.groupingBy(OrderStatusCount::getCarName));
for (Map.Entry<String, List<OrderStatusCount>> stringListEntry : collect.entrySet()) {
- for (Map.Entry<String, List<OrderStatusCount>> listEntry : stringListEntry.getValue().stream().collect(Collectors.groupingBy(OrderStatusCount::getBatch)).entrySet()) {
- for (Map.Entry<String, List<OrderStatusCount>> listEntry1 : listEntry.getValue().stream().collect(Collectors.groupingBy(OrderStatusCount::getSendDate)).entrySet()) {
+ List<OrderStatusCount> recordsNew = new ArrayList<>();
+ for (OrderStatusCount statusCount : stringListEntry.getValue()) {
+ statusCount.setSendDate(statusCount.getSendMonth());
+ recordsNew.add(statusCount);
+ }
+
+ for (Map.Entry<String, List<OrderStatusCount>> listEntry : recordsNew.stream().collect(Collectors.groupingBy(OrderStatusCount::getBatch)).entrySet()) {
+ for (Map.Entry<String, List<OrderStatusCount>> listEntry1 : listEntry.getValue().stream().collect(Collectors.groupingBy(OrderStatusCount::getSendMonth)).entrySet()) {
if(listEntry1.getValue().size() > 0){
List<OrderStatusCount> value = listEntry1.getValue();
+ Integer amount = 0;
+ Integer notSignCount = 0;
+ Integer abnormalSign = 0;
+ Integer signCount= 0;
OrderStatusCount orderStatusCount1 = value.get(0);
- Double prodouble = value.stream().collect(Collectors.averagingInt(OrderStatusCount::getProportionInt));
- prodouble = (double)Math.round(prodouble*100)/100;
- orderStatusCount1.setProportion(prodouble + "%");
+ for (OrderStatusCount statusCount : value) {
+ amount += Integer.parseInt(statusCount.getAmount());
+ notSignCount += Integer.parseInt(statusCount.getNotSignCount());
+ if(statusCount.getAbnormalSign() != null){
+ abnormalSign += Integer.parseInt(statusCount.getAbnormalSign());
+ }else {
+ abnormalSign = 0;
+ }
+ signCount += Integer.parseInt(statusCount.getSignCount());
+ }
+ DecimalFormat df = new DecimalFormat("0.00");
+ String maerialRatio = df.format((float)signCount/amount);
+ double v = Double.parseDouble(maerialRatio)*100;
+ orderStatusCount1.setProportion(v+"%");
+ orderStatusCount1.setAmount(amount+"");
+ orderStatusCount1.setNotSignCount(notSignCount+"");
+ orderStatusCount1.setAbnormalSign(abnormalSign+"");
+ orderStatusCount1.setSignCount(signCount+"");
value.clear();
value.add(orderStatusCount1);
listEntry1.setValue(value);
+ recordsLast.add(orderStatusCount1);
}
}
}
-
+ stringListEntry.setValue(recordsNew);
}
- List<OrderStatusCount> collect1 = records.stream().filter(f -> f.getProportion() != null).collect(Collectors.toList());
- orderStatusCountIPage.setRecords(collect1);
+ orderStatusCountIPage.setRecords(recordsLast);
return orderStatusCountIPage;
}
return this.signCountMapper.signCount(orderStatusCount,page);
}
-}
+
+ @Override
+ public List<OrderStatusCount> signCounts2New(OrderStatusCount orderStatusCount) {
+ List<OrderStatusCount> records = this.signCountMapper.signCount2New(orderStatusCount);
+ List<OrderStatusCount> recordsAll = this.signCountMapper.signCountNewTotal(orderStatusCount);
+ for (int i=0;i<records.size();i++) {
+ for (OrderStatusCount statusCountx: recordsAll) {
+ if(records.get(i).getCarName().equals(statusCountx.getCarName())){
+ if(statusCountx.getProportion().length()>6){
+ String ss = statusCountx.getProportion().replace("%","");
+ BigDecimal bigDecimal = new BigDecimal(ss);
+ double sss = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+ records.get(i).setName(sss + "%");
+ }else{
+ records.get(i).setName(statusCountx.getProportion());
+ }
+ break;
+ }
+ }
+ if(!StrUtil.isEmpty(records.get(i).getSignCount()) && !StrUtil.isEmpty(records.get(i).getAmount()) && !StrUtil.isEmpty(records.get(i).getNotSignCount())){
+ int abnormalSign = Integer.parseInt(records.get(i).getAmount())-Integer.parseInt(records.get(i).getSignCount())-Integer.parseInt(records.get(i).getNotSignCount());
+ if(abnormalSign<0){
+ abnormalSign = 0;
+ }
+ records.get(i).setAbnormalSign(abnormalSign + "");
+ }
+ if(records.get(i).getProportion().length()>6){
+ String ss = records.get(i).getProportion().replace("%","");
+ BigDecimal bigDecimal = new BigDecimal(ss);
+ double sss = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+ records.get(i).setProportion(sss+ "%");
+ }
+ //"oneBatch":"01娈�","twoBatch":"0","threeBatch":"0","fourBatch":"0","fiveBatch":"0"
+ if("0".equals(records.get(i).getOneBatch())){
+ records.get(i).setOneBatch(null);
+ }else{
+ records.get(i).setBatch("01娈�");
+ }
+ if("0".equals(records.get(i).getTwoBatch())){
+ records.get(i).setTwoBatch(null);
+ }else{
+ records.get(i).setBatch("02娈�");
+ }
+ if("0".equals(records.get(i).getThreeBatch())){
+ records.get(i).setThreeBatch(null);
+ }else{
+ records.get(i).setBatch("03娈�");
+ }
+ if("0".equals(records.get(i).getFourBatch())){
+ records.get(i).setFourBatch(null);
+ }else{
+ records.get(i).setBatch("04娈�");
+ }
+ if("0".equals(records.get(i).getFiveBatch())){
+ records.get(i).setFiveBatch(null);
+ }else{
+ records.get(i).setBatch("05娈�");
+ }
+ }
+ return records;
+ }
+
+ @Override
+ public IPage<OrderStatusCount> signCountsNew(OrderStatusCount orderStatusCount, QueryRequest queryRequest) {
+ Page<OrderStatusCount> page = new Page<>();
+ if (org.apache.commons.lang3.StringUtils.isNotBlank(queryRequest.getPageSize() + "") && (queryRequest.getPageSize() != 0)) {
+ page.setCurrent(queryRequest.getPageNum());
+ page.setSize(queryRequest.getPageSize());
+ } else {
+ page.setCurrent(0);
+ page.setSize(-1);
+ }
+ IPage<OrderStatusCount> orderStatusCountIPage = this.signCountMapper.signCountNew(orderStatusCount, page);
+ List<OrderStatusCount> recordsAll = this.signCountMapper.signCountNewTotal(orderStatusCount);
+ List<OrderStatusCount> records = orderStatusCountIPage.getRecords();
+
+ for (int i=0;i<records.size();i++) {
+ for (OrderStatusCount statusCountx: recordsAll) {
+ if(records.get(i).getCarName().equals(statusCountx.getCarName())){
+ if(statusCountx.getProportion().length()>6){
+ String ss = statusCountx.getProportion().replace("%","");
+ BigDecimal bigDecimal = new BigDecimal(ss);
+ double sss = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+ records.get(i).setSendMonth(sss + "%");
+ }else{
+ records.get(i).setSendMonth(statusCountx.getProportion());
+ }
+ break;
+ }
+ }
+ if(records.get(i).getProportion().length()>6){
+ String ss = records.get(i).getProportion().replace("%","");
+ BigDecimal bigDecimal = new BigDecimal(ss);
+ double sss = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+ records.get(i).setProportion(sss+ "%");
+ }
+ //"oneBatch":"01娈�","twoBatch":"0","threeBatch":"0","fourBatch":"0","fiveBatch":"0"
+ if("0".equals(records.get(i).getOneBatch())){
+ records.get(i).setOneBatch(null);
+ }
+ if("0".equals(records.get(i).getTwoBatch())){
+ records.get(i).setTwoBatch(null);
+ }
+ if("0".equals(records.get(i).getThreeBatch())){
+ records.get(i).setThreeBatch(null);
+ }
+ if("0".equals(records.get(i).getFourBatch())){
+ records.get(i).setFourBatch(null);
+ }
+ if("0".equals(records.get(i).getFiveBatch())){
+ records.get(i).setFiveBatch(null);
+ }
+ }
+ // List<OrderStatusCount> recordsLast = new ArrayList<>();
+ orderStatusCountIPage.setRecords(records);
+ return orderStatusCountIPage;
+ }
+}
\ No newline at end of file
--
Gitblit v1.9.1