Commit 9eeb9d1e23fd18158b9947e3a0b7cea8e8dd648f

Authored by 谢茂盛
1 parent 070465c7

feat: 问题修复项

1、设计师权重导出
2、订单列表多选
src/main/java/com/order/erp/domain/vo/OrderReportStatExportVo.java 0 → 100644
  1 +package com.order.erp.domain.vo;
  2 +
  3 +import com.order.erp.common.excel4j.annotation.ExcelField;
  4 +import lombok.AllArgsConstructor;
  5 +import lombok.Data;
  6 +import lombok.NoArgsConstructor;
  7 +import lombok.ToString;
  8 +
  9 +import java.io.Serializable;
  10 +import java.math.BigDecimal;
  11 +
  12 +/**
  13 + * @author zhongnanhuang
  14 + * @version 1.0
  15 + * @project order-erp
  16 + * @description 利润分析传参
  17 + * @date 2023/10/30 10:19:26
  18 + */
  19 +@Data
  20 +@AllArgsConstructor
  21 +@NoArgsConstructor
  22 +@ToString
  23 +public class OrderReportStatExportVo implements Serializable {
  24 +
  25 + /**
  26 + * 设计师
  27 + */
  28 + @ExcelField(title = "设计师", order = 1)
  29 + private String designer;
  30 +
  31 + /**
  32 + * 想法来源占比
  33 + */
  34 + @ExcelField(title = "想法来源占比", order = 2)
  35 + private Double ideaSourceRate;
  36 +
  37 + /**
  38 + * 手工初型1占比
  39 + */
  40 + @ExcelField(title = "手工初型1占比", order = 3)
  41 + private Double manualPreform1Rate;
  42 +
  43 + /**
  44 + * 手工初型2占比
  45 + */
  46 + @ExcelField(title = "手工初型2占比", order = 4)
  47 + private Double manualPreform2Rate;
  48 +}
src/main/java/com/order/erp/domain/vo/order/OrderBaseInfoQueryVO.java
@@ -43,7 +43,7 @@ public class OrderBaseInfoQueryVO extends BasePageVO implements Serializable { @@ -43,7 +43,7 @@ public class OrderBaseInfoQueryVO extends BasePageVO implements Serializable {
43 /** 43 /**
44 * 单据状态 44 * 单据状态
45 */ 45 */
46 - private String orderStatus; 46 + private List<String> orderStatus;
47 47
48 /** 48 /**
49 * 提交人名称 49 * 提交人名称
@@ -56,14 +56,14 @@ public class OrderBaseInfoQueryVO extends BasePageVO implements Serializable { @@ -56,14 +56,14 @@ public class OrderBaseInfoQueryVO extends BasePageVO implements Serializable {
56 private String commitUserPhone; 56 private String commitUserPhone;
57 57
58 /** 58 /**
59 - * 客户编码 59 + * 项目号
60 */ 60 */
61 - private String customerCode; 61 + private List<String> projectNo;
62 62
63 /** 63 /**
64 - * 项目号 64 + * 客户编码集合
65 */ 65 */
66 - private List<String> projectNo; 66 + private List<String> customerCode;
67 67
68 /** 68 /**
69 * 内部编号 69 * 内部编号
@@ -73,7 +73,7 @@ public class OrderBaseInfoQueryVO extends BasePageVO implements Serializable { @@ -73,7 +73,7 @@ public class OrderBaseInfoQueryVO extends BasePageVO implements Serializable {
73 /** 73 /**
74 * 生产科 74 * 生产科
75 */ 75 */
76 - private String productionDepartment; 76 + private List<String> productionDepartment;
77 77
78 /** 78 /**
79 * 生成科拖货开始时间 79 * 生成科拖货开始时间
@@ -108,7 +108,7 @@ public class OrderBaseInfoQueryVO extends BasePageVO implements Serializable { @@ -108,7 +108,7 @@ public class OrderBaseInfoQueryVO extends BasePageVO implements Serializable {
108 /** 108 /**
109 * 想法来源 109 * 想法来源
110 */ 110 */
111 - private String ideaSource; 111 + private List<String> ideaSource;
112 112
113 /** 113 /**
114 * 想法来源占比 114 * 想法来源占比
@@ -123,7 +123,7 @@ public class OrderBaseInfoQueryVO extends BasePageVO implements Serializable { @@ -123,7 +123,7 @@ public class OrderBaseInfoQueryVO extends BasePageVO implements Serializable {
123 /** 123 /**
124 * 手工初型1 124 * 手工初型1
125 */ 125 */
126 - private String manualPreform1; 126 + private List<String> manualPreform1;
127 127
128 /** 128 /**
129 * 手工初型1占比 129 * 手工初型1占比
@@ -133,7 +133,7 @@ public class OrderBaseInfoQueryVO extends BasePageVO implements Serializable { @@ -133,7 +133,7 @@ public class OrderBaseInfoQueryVO extends BasePageVO implements Serializable {
133 /** 133 /**
134 * 手工初型2 134 * 手工初型2
135 */ 135 */
136 - private String manualPreform2; 136 + private List<String> manualPreform2;
137 137
138 /** 138 /**
139 * 手工初型2占比 139 * 手工初型2占比
@@ -143,7 +143,7 @@ public class OrderBaseInfoQueryVO extends BasePageVO implements Serializable { @@ -143,7 +143,7 @@ public class OrderBaseInfoQueryVO extends BasePageVO implements Serializable {
143 /** 143 /**
144 * pp样品确认意见 144 * pp样品确认意见
145 */ 145 */
146 - private String ppConfirmResult; 146 + private List<String> ppConfirmResult;
147 147
148 /** 148 /**
149 * 自测通过开始时间 149 * 自测通过开始时间
@@ -158,12 +158,12 @@ public class OrderBaseInfoQueryVO extends BasePageVO implements Serializable { @@ -158,12 +158,12 @@ public class OrderBaseInfoQueryVO extends BasePageVO implements Serializable {
158 /** 158 /**
159 * 中期验货结果PASS / FAIL 159 * 中期验货结果PASS / FAIL
160 */ 160 */
161 - private String midCheckResult; 161 + private List<String> midCheckResult;
162 162
163 /** 163 /**
164 * 尾期验货结果PASS / FAIL 164 * 尾期验货结果PASS / FAIL
165 */ 165 */
166 - private String endCheckResult; 166 + private List<String> endCheckResult;
167 167
168 /** 168 /**
169 * 选择的字段 169 * 选择的字段
src/main/java/com/order/erp/service/order/impl/OrderBaseInfoServiceImpl.java
@@ -1266,12 +1266,12 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O @@ -1266,12 +1266,12 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
1266 } else { 1266 } else {
1267 orderIds.add(-1L); 1267 orderIds.add(-1L);
1268 } 1268 }
1269 - } else if (StringUtils.isNotBlank(queryVO.getIdeaSource()) || StringUtils.isNotBlank(queryVO.getManualPreform1()) || StringUtils.isNotBlank(queryVO.getManualPreform2())) { 1269 + } else if (CollectionUtils.isNotEmpty(queryVO.getIdeaSource()) || CollectionUtils.isNotEmpty(queryVO.getManualPreform1()) || CollectionUtils.isNotEmpty(queryVO.getManualPreform2())) {
1270 List<OrderCompletionReportDO> reportDOS = reportService.list(new LambdaQueryWrapper<OrderCompletionReportDO>() 1270 List<OrderCompletionReportDO> reportDOS = reportService.list(new LambdaQueryWrapper<OrderCompletionReportDO>()
1271 .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) 1271 .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
1272 - .eq(StringUtils.isNotBlank(queryVO.getIdeaSource()), OrderCompletionReportDO::getIdeaSource, queryVO.getIdeaSource())  
1273 - .eq(StringUtils.isNotBlank(queryVO.getManualPreform2()), OrderCompletionReportDO::getManualPreform2, queryVO.getManualPreform2())  
1274 - .eq(StringUtils.isNotBlank(queryVO.getManualPreform1()), OrderCompletionReportDO::getManualPreform1, queryVO.getManualPreform1())); 1272 + .in(CollectionUtils.isNotEmpty(queryVO.getIdeaSource()), OrderCompletionReportDO::getIdeaSource, queryVO.getIdeaSource())
  1273 + .in(CollectionUtils.isNotEmpty(queryVO.getManualPreform2()), OrderCompletionReportDO::getManualPreform2, queryVO.getManualPreform2())
  1274 + .in(CollectionUtils.isNotEmpty(queryVO.getManualPreform1()), OrderCompletionReportDO::getManualPreform1, queryVO.getManualPreform1()));
1275 if (CollectionUtils.isNotEmpty(reportDOS)) { 1275 if (CollectionUtils.isNotEmpty(reportDOS)) {
1276 Set<Long> reportOrderIds = reportDOS.stream().map(OrderCompletionReportDO::getOrderId).collect(Collectors.toSet()); 1276 Set<Long> reportOrderIds = reportDOS.stream().map(OrderCompletionReportDO::getOrderId).collect(Collectors.toSet());
1277 if (CollectionUtils.isNotEmpty(orderIds)) { 1277 if (CollectionUtils.isNotEmpty(orderIds)) {
@@ -1289,10 +1289,10 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O @@ -1289,10 +1289,10 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
1289 } 1289 }
1290 } 1290 }
1291 1291
1292 - if (StringUtils.isNotBlank(queryVO.getPpConfirmResult()) || StringUtils.isNotBlank(queryVO.getSelfTestPassStartTime()) || StringUtils.isNotBlank(queryVO.getSelfTestPassEndTime())) { 1292 + if (CollectionUtils.isNotEmpty(queryVO.getPpConfirmResult()) || StringUtils.isNotBlank(queryVO.getSelfTestPassStartTime()) || StringUtils.isNotBlank(queryVO.getSelfTestPassEndTime())) {
1293 List<OrderTrackStageDO> trackStageDOS = trackStageService.list(new LambdaQueryWrapper<OrderTrackStageDO>() 1293 List<OrderTrackStageDO> trackStageDOS = trackStageService.list(new LambdaQueryWrapper<OrderTrackStageDO>()
1294 .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) 1294 .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
1295 - .eq(StringUtils.isNotBlank(queryVO.getPpConfirmResult()), OrderTrackStageDO::getPpConfirmResult, queryVO.getPpConfirmResult()) 1295 + .in(CollectionUtils.isNotEmpty(queryVO.getPpConfirmResult()), OrderTrackStageDO::getPpConfirmResult, queryVO.getPpConfirmResult())
1296 .ge(StringUtils.isNotBlank(queryVO.getSelfTestPassStartTime()), OrderTrackStageDO::getSelfTestPassTime, queryVO.getSelfTestPassStartTime()) 1296 .ge(StringUtils.isNotBlank(queryVO.getSelfTestPassStartTime()), OrderTrackStageDO::getSelfTestPassTime, queryVO.getSelfTestPassStartTime())
1297 .le(StringUtils.isNotBlank(queryVO.getSelfTestPassEndTime()), OrderTrackStageDO::getSelfTestPassTime, queryVO.getSelfTestPassEndTime()) 1297 .le(StringUtils.isNotBlank(queryVO.getSelfTestPassEndTime()), OrderTrackStageDO::getSelfTestPassTime, queryVO.getSelfTestPassEndTime())
1298 ); 1298 );
@@ -1313,11 +1313,11 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O @@ -1313,11 +1313,11 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
1313 } 1313 }
1314 } 1314 }
1315 1315
1316 - if (StringUtils.isNotBlank(queryVO.getMidCheckResult()) || StringUtils.isNotBlank(queryVO.getEndCheckResult())) { 1316 + if (CollectionUtils.isNotEmpty(queryVO.getMidCheckResult()) || CollectionUtils.isNotEmpty(queryVO.getEndCheckResult())) {
1317 List<OrderInspectionStageDO> inspectionStageDOS = inspectionStageService.list(new LambdaQueryWrapper<OrderInspectionStageDO>() 1317 List<OrderInspectionStageDO> inspectionStageDOS = inspectionStageService.list(new LambdaQueryWrapper<OrderInspectionStageDO>()
1318 .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) 1318 .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
1319 - .eq(StringUtils.isNotBlank(queryVO.getMidCheckResult()), OrderInspectionStageDO::getMidCheckResult, queryVO.getMidCheckResult())  
1320 - .eq(StringUtils.isNotBlank(queryVO.getEndCheckResult()), OrderInspectionStageDO::getEndCheckResult, queryVO.getEndCheckResult()) 1319 + .in(CollectionUtils.isNotEmpty(queryVO.getMidCheckResult()), OrderInspectionStageDO::getMidCheckResult, queryVO.getMidCheckResult())
  1320 + .in(CollectionUtils.isNotEmpty(queryVO.getEndCheckResult()), OrderInspectionStageDO::getEndCheckResult, queryVO.getEndCheckResult())
1321 ); 1321 );
1322 if (CollectionUtils.isNotEmpty(inspectionStageDOS)) { 1322 if (CollectionUtils.isNotEmpty(inspectionStageDOS)) {
1323 Set<Long> inspectOrderIds = inspectionStageDOS.stream().map(OrderInspectionStageDO::getOrderId).collect(Collectors.toSet()); 1323 Set<Long> inspectOrderIds = inspectionStageDOS.stream().map(OrderInspectionStageDO::getOrderId).collect(Collectors.toSet());
@@ -1359,15 +1359,14 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O @@ -1359,15 +1359,14 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
1359 1359
1360 return new LambdaQueryWrapper<OrderBaseInfoDO>() 1360 return new LambdaQueryWrapper<OrderBaseInfoDO>()
1361 .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) 1361 .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
1362 - .eq(StringUtils.isNotBlank(queryVO.getCustomerCode()), OrderBaseInfoDO::getCustomerCode, queryVO.getCustomerCode()) 1362 + .in(CollectionUtils.isNotEmpty(queryVO.getCustomerCode()), OrderBaseInfoDO::getCustomerCode, queryVO.getCustomerCode())
1363 .eq(StringUtils.isNotBlank(queryVO.getCommitUserName()), OrderBaseInfoDO::getCreateBy, queryVO.getCommitUserName()) 1363 .eq(StringUtils.isNotBlank(queryVO.getCommitUserName()), OrderBaseInfoDO::getCreateBy, queryVO.getCommitUserName())
1364 .ge(StringUtils.isNotBlank(queryVO.getCreateStartTime()), OrderBaseInfoDO::getCreateTime, queryVO.getCreateStartTime()) 1364 .ge(StringUtils.isNotBlank(queryVO.getCreateStartTime()), OrderBaseInfoDO::getCreateTime, queryVO.getCreateStartTime())
1365 .le(StringUtils.isNotBlank(queryVO.getCreateEndTime()), OrderBaseInfoDO::getCreateTime, queryVO.getCreateEndTime()) 1365 .le(StringUtils.isNotBlank(queryVO.getCreateEndTime()), OrderBaseInfoDO::getCreateTime, queryVO.getCreateEndTime())
1366 - .eq(StringUtils.isNotBlank(queryVO.getOrderStatus()), OrderBaseInfoDO::getOrderStatus, queryVO.getOrderStatus())  
1367 - .eq(StringUtils.isNotBlank(queryVO.getCustomerCode()), OrderBaseInfoDO::getCustomerCode, queryVO.getCustomerCode()) 1366 + .in(CollectionUtils.isNotEmpty(queryVO.getOrderStatus()), OrderBaseInfoDO::getOrderStatus, queryVO.getOrderStatus())
1368 .in(CollectionUtils.isNotEmpty(queryVO.getProjectNo()), OrderBaseInfoDO::getProjectNo, queryVO.getProjectNo()) 1367 .in(CollectionUtils.isNotEmpty(queryVO.getProjectNo()), OrderBaseInfoDO::getProjectNo, queryVO.getProjectNo())
1369 .in(CollectionUtils.isNotEmpty(queryVO.getInnerNo()), OrderBaseInfoDO::getInnerNo, queryVO.getInnerNo()) 1368 .in(CollectionUtils.isNotEmpty(queryVO.getInnerNo()), OrderBaseInfoDO::getInnerNo, queryVO.getInnerNo())
1370 - .eq(StringUtils.isNotBlank(queryVO.getProductionDepartment()), OrderBaseInfoDO::getProductionDepartment, queryVO.getProductionDepartment()) 1369 + .in(CollectionUtils.isNotEmpty(queryVO.getProductionDepartment()), OrderBaseInfoDO::getProductionDepartment, queryVO.getProductionDepartment())
1371 .eq(StringUtils.isNotBlank(queryVO.getCreateBy()), OrderBaseInfoDO::getCreateBy, queryVO.getCreateBy()) 1370 .eq(StringUtils.isNotBlank(queryVO.getCreateBy()), OrderBaseInfoDO::getCreateBy, queryVO.getCreateBy())
1372 .eq(StringUtils.isNotBlank(queryVO.getBusinessPerson()), OrderBaseInfoDO::getBusinessPerson, queryVO.getBusinessPerson()) 1371 .eq(StringUtils.isNotBlank(queryVO.getBusinessPerson()), OrderBaseInfoDO::getBusinessPerson, queryVO.getBusinessPerson())
1373 .ge(StringUtils.isNotBlank(queryVO.getProductionDepartmentConsignStartTime()), OrderBaseInfoDO::getProductionDepartmentConsignTime, queryVO.getProductionDepartmentConsignStartTime()) 1372 .ge(StringUtils.isNotBlank(queryVO.getProductionDepartmentConsignStartTime()), OrderBaseInfoDO::getProductionDepartmentConsignTime, queryVO.getProductionDepartmentConsignStartTime())
src/main/java/com/order/erp/service/order/impl/OrderCompletionReportServiceImpl.java
@@ -14,6 +14,7 @@ import com.order.erp.domain.dto.order.OrderBaseInfoDO; @@ -14,6 +14,7 @@ import com.order.erp.domain.dto.order.OrderBaseInfoDO;
14 import com.order.erp.domain.dto.order.OrderCompletionReportDO; 14 import com.order.erp.domain.dto.order.OrderCompletionReportDO;
15 import com.order.erp.domain.vo.OrderReportAnalysisExportVo; 15 import com.order.erp.domain.vo.OrderReportAnalysisExportVo;
16 import com.order.erp.domain.vo.OrderReportAnalysisResultVo; 16 import com.order.erp.domain.vo.OrderReportAnalysisResultVo;
  17 +import com.order.erp.domain.vo.OrderReportStatExportVo;
17 import com.order.erp.domain.vo.order.OrderBaseInfoQueryVO; 18 import com.order.erp.domain.vo.order.OrderBaseInfoQueryVO;
18 import com.order.erp.domain.vo.order.OrderCompletionReportQueryVO; 19 import com.order.erp.domain.vo.order.OrderCompletionReportQueryVO;
19 import com.order.erp.domain.vo.order.OrderCompletionReportVO; 20 import com.order.erp.domain.vo.order.OrderCompletionReportVO;
@@ -82,23 +83,24 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl&lt;OrderCompletio @@ -82,23 +83,24 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl&lt;OrderCompletio
82 LambdaQueryWrapper<OrderBaseInfoDO> queryWrapper = orderBaseInfoService.buildQueryByParam(queryVO); 83 LambdaQueryWrapper<OrderBaseInfoDO> queryWrapper = orderBaseInfoService.buildQueryByParam(queryVO);
83 List<OrderBaseInfoDO> orderBaseInfoDOList = orderBaseInfoService.list(queryWrapper); 84 List<OrderBaseInfoDO> orderBaseInfoDOList = orderBaseInfoService.list(queryWrapper);
84 if (CollectionUtils.isNotEmpty(orderBaseInfoDOList)) { 85 if (CollectionUtils.isNotEmpty(orderBaseInfoDOList)) {
  86 + Map<Long, OrderBaseInfoDO> orderBaseInfoDOMap = new HashMap<>();
85 Set<Long> orderIds = orderBaseInfoDOList.stream().map(OrderBaseInfoDO::getId).collect(Collectors.toSet()); 87 Set<Long> orderIds = orderBaseInfoDOList.stream().map(OrderBaseInfoDO::getId).collect(Collectors.toSet());
  88 + Set<String> innerNoSet = new HashSet<>();
86 List<OrderCompletionReportDO> reportDOS = list(new LambdaQueryWrapper<OrderCompletionReportDO>().in(OrderCompletionReportDO::getOrderId, orderIds)); 89 List<OrderCompletionReportDO> reportDOS = list(new LambdaQueryWrapper<OrderCompletionReportDO>().in(OrderCompletionReportDO::getOrderId, orderIds));
87 Map<String, OrderReportAnalysisExportVo> exportVoMap = new HashMap<>(); 90 Map<String, OrderReportAnalysisExportVo> exportVoMap = new HashMap<>();
88 if (CollectionUtils.isNotEmpty(reportDOS)) { 91 if (CollectionUtils.isNotEmpty(reportDOS)) {
89 - for (OrderCompletionReportDO reportDO : reportDOS) {  
90 - if (exportVoMap.containsKey(reportDO.getIdeaSource())) {  
91 - handlerExportMap(0, reportDO, exportVoMap);  
92 - }  
93 - if (exportVoMap.containsKey(reportDO.getManualPreform1())) {  
94 - handlerExportMap(1, reportDO, exportVoMap);  
95 - }  
96 - if (exportVoMap.containsKey(reportDO.getManualPreform2())) {  
97 - handlerExportMap(2, reportDO, exportVoMap); 92 + Map<Long, OrderCompletionReportDO> completionReportDOMap = new HashMap<>();
  93 + completionReportDOMap = reportDOS.stream().collect(Collectors.toMap(OrderCompletionReportDO::getOrderId, Function.identity(), (x, y) -> x));
  94 + for (OrderBaseInfoDO orderBaseInfoDO : orderBaseInfoDOList) {
  95 + if (completionReportDOMap.containsKey(orderBaseInfoDO.getId())) {
  96 + if (!innerNoSet.contains(orderBaseInfoDO.getInnerNo())) {
  97 + orderBaseInfoDOMap.put(orderBaseInfoDO.getId(), orderBaseInfoDO);
  98 + }
  99 + innerNoSet.add(orderBaseInfoDO.getInnerNo());
98 } 100 }
99 - if (!exportVoMap.containsKey(reportDO.getIdeaSource())  
100 - && !exportVoMap.containsKey(reportDO.getManualPreform1())  
101 - && !exportVoMap.containsKey(reportDO.getManualPreform2())) { 101 + }
  102 + for (OrderCompletionReportDO reportDO : reportDOS) {
  103 + if (orderBaseInfoDOMap.containsKey(reportDO.getOrderId())) {
102 handlerExportMap(0, reportDO, exportVoMap); 104 handlerExportMap(0, reportDO, exportVoMap);
103 handlerExportMap(1, reportDO, exportVoMap); 105 handlerExportMap(1, reportDO, exportVoMap);
104 handlerExportMap(2, reportDO, exportVoMap); 106 handlerExportMap(2, reportDO, exportVoMap);
@@ -107,7 +109,15 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl&lt;OrderCompletio @@ -107,7 +109,15 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl&lt;OrderCompletio
107 } 109 }
108 List<OrderReportAnalysisExportVo> exportVos = exportMap2exportList(exportVoMap); 110 List<OrderReportAnalysisExportVo> exportVos = exportMap2exportList(exportVoMap);
109 if (CollectionUtils.isNotEmpty(exportVos)) { 111 if (CollectionUtils.isNotEmpty(exportVos)) {
110 - ExcelUtils.getInstance().exportObjects2Excel(exportVos, OrderReportAnalysisExportVo.class, response.getOutputStream()); 112 + List<OrderReportStatExportVo> statExportVos = exportVos.stream().map(x -> {
  113 + OrderReportStatExportVo statExportVo = new OrderReportStatExportVo();
  114 + statExportVo.setDesigner(x.getDesigner());
  115 + statExportVo.setIdeaSourceRate(x.getIdeaSourceRate().divide(new BigDecimal(innerNoSet.size()), Constant.SIX, RoundingMode.HALF_UP).doubleValue());
  116 + statExportVo.setManualPreform1Rate(x.getManualPreform1Rate().divide(new BigDecimal(innerNoSet.size()), Constant.SIX, RoundingMode.HALF_UP).doubleValue());
  117 + statExportVo.setManualPreform2Rate(x.getManualPreform2Rate().divide(new BigDecimal(innerNoSet.size()), Constant.SIX, RoundingMode.HALF_UP).doubleValue());
  118 + return statExportVo;
  119 + }).collect(Collectors.toList());
  120 + ExcelUtils.getInstance().exportObjects2Excel(statExportVos, OrderReportStatExportVo.class, response.getOutputStream());
111 } 121 }
112 } 122 }
113 123
@@ -162,14 +172,14 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl&lt;OrderCompletio @@ -162,14 +172,14 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl&lt;OrderCompletio
162 if (Objects.isNull(exportVo.getManualPreform2Rate())) { 172 if (Objects.isNull(exportVo.getManualPreform2Rate())) {
163 exportVo.setManualPreform2Rate(new BigDecimal(0)); 173 exportVo.setManualPreform2Rate(new BigDecimal(0));
164 } 174 }
165 - if (Objects.nonNull(reportDO.getIdeaSourceRate())) {  
166 - exportVo.setIdeaSourceRate(new BigDecimal(reportDO.getIdeaSourceRate()).add(exportVo.getIdeaSourceRate())); 175 + if (key.equals(reportDO.getIdeaSource())) {
  176 + exportVo.setIdeaSourceRate(new BigDecimal(Objects.nonNull(reportDO.getIdeaSourceRate()) ? reportDO.getIdeaSourceRate() : 0).add(exportVo.getIdeaSourceRate()));
167 } 177 }
168 - if (Objects.nonNull(reportDO.getManualPreform1Rate())) {  
169 - exportVo.setManualPreform1Rate(new BigDecimal(reportDO.getManualPreform1Rate()).add(exportVo.getManualPreform1Rate())); 178 + if (key.equals(reportDO.getManualPreform1())) {
  179 + exportVo.setManualPreform1Rate(new BigDecimal(Objects.nonNull(reportDO.getManualPreform1Rate()) ? reportDO.getManualPreform1Rate() : 0).add(exportVo.getManualPreform1Rate()));
170 } 180 }
171 - if (Objects.nonNull(reportDO.getManualPreform2Rate())) {  
172 - exportVo.setManualPreform2Rate(new BigDecimal(reportDO.getManualPreform2Rate()).add(exportVo.getManualPreform2Rate())); 181 + if (key.equals(reportDO.getManualPreform2())) {
  182 + exportVo.setManualPreform2Rate(new BigDecimal(Objects.nonNull(reportDO.getManualPreform2Rate()) ? reportDO.getManualPreform2Rate() : 0).add(exportVo.getManualPreform2Rate()));
173 } 183 }
174 exportVoMap.put(key, exportVo); 184 exportVoMap.put(key, exportVo);
175 } 185 }