Commit 44e397b3c8705788de0ca51add0a0260aaa54a16
1 parent
0f4ba695
feat: 问题修复项
1、设计师权重导出 2、订单列表多选
Showing
5 changed files
with
67 additions
and
53 deletions
src/main/java/com/order/erp/domain/vo/OrderReportStatExportVo.java
@@ -32,17 +32,17 @@ public class OrderReportStatExportVo implements Serializable { | @@ -32,17 +32,17 @@ public class OrderReportStatExportVo implements Serializable { | ||
32 | * 想法来源占比 | 32 | * 想法来源占比 |
33 | */ | 33 | */ |
34 | @ExcelField(title = "想法来源占比", order = 2) | 34 | @ExcelField(title = "想法来源占比", order = 2) |
35 | - private Double ideaSourceRate; | 35 | + private String ideaSourceRate; |
36 | 36 | ||
37 | /** | 37 | /** |
38 | * 手工初型1占比 | 38 | * 手工初型1占比 |
39 | */ | 39 | */ |
40 | @ExcelField(title = "手工初型1占比", order = 3) | 40 | @ExcelField(title = "手工初型1占比", order = 3) |
41 | - private Double manualPreform1Rate; | 41 | + private String manualPreform1Rate; |
42 | 42 | ||
43 | /** | 43 | /** |
44 | * 手工初型2占比 | 44 | * 手工初型2占比 |
45 | */ | 45 | */ |
46 | @ExcelField(title = "手工初型2占比", order = 4) | 46 | @ExcelField(title = "手工初型2占比", order = 4) |
47 | - private Double manualPreform2Rate; | 47 | + private String manualPreform2Rate; |
48 | } | 48 | } |
src/main/java/com/order/erp/service/admin/impl/AdminUserServiceImpl.java
@@ -248,7 +248,11 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser | @@ -248,7 +248,11 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser | ||
248 | AdminUserDO adminUserDo = BeanUtil.copyProperties(adminUserVO, AdminUserDO.class); | 248 | AdminUserDO adminUserDo = BeanUtil.copyProperties(adminUserVO, AdminUserDO.class); |
249 | adminUserDo.setUserName(adminUserDo.getNickName()); | 249 | adminUserDo.setUserName(adminUserDo.getNickName()); |
250 | updateById(adminUserDo); | 250 | updateById(adminUserDo); |
251 | - | 251 | + if (Objects.nonNull(adminUserVO.getRoleId())) { |
252 | + Set<Long> roleIds = new HashSet<>(); | ||
253 | + roleIds.add(adminUserVO.getRoleId()); | ||
254 | + authRole(AdminAuthUserVO.builder().userId(adminUserDo.getId()).roleIds(roleIds).build()); | ||
255 | + } | ||
252 | return ServerResult.success(); | 256 | return ServerResult.success(); |
253 | } | 257 | } |
254 | 258 |
src/main/java/com/order/erp/service/order/impl/OrderCompletionReportServiceImpl.java
@@ -18,6 +18,7 @@ import com.order.erp.domain.vo.OrderReportStatExportVo; | @@ -18,6 +18,7 @@ import com.order.erp.domain.vo.OrderReportStatExportVo; | ||
18 | import com.order.erp.domain.vo.order.OrderBaseInfoQueryVO; | 18 | import com.order.erp.domain.vo.order.OrderBaseInfoQueryVO; |
19 | import com.order.erp.domain.vo.order.OrderCompletionReportQueryVO; | 19 | import com.order.erp.domain.vo.order.OrderCompletionReportQueryVO; |
20 | import com.order.erp.domain.vo.order.OrderCompletionReportVO; | 20 | import com.order.erp.domain.vo.order.OrderCompletionReportVO; |
21 | +import com.order.erp.domain.vo.order.OrderReportResultVO; | ||
21 | import com.order.erp.mapper.order.OrderCompletionReportMapper; | 22 | import com.order.erp.mapper.order.OrderCompletionReportMapper; |
22 | import com.order.erp.service.order.OrderBaseInfoService; | 23 | import com.order.erp.service.order.OrderBaseInfoService; |
23 | import com.order.erp.service.order.OrderCompletionReportService; | 24 | import com.order.erp.service.order.OrderCompletionReportService; |
@@ -89,7 +90,9 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl<OrderCompletio | @@ -89,7 +90,9 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl<OrderCompletio | ||
89 | List<OrderCompletionReportDO> reportDOS = list(new LambdaQueryWrapper<OrderCompletionReportDO>().in(OrderCompletionReportDO::getOrderId, orderIds)); | 90 | List<OrderCompletionReportDO> reportDOS = list(new LambdaQueryWrapper<OrderCompletionReportDO>().in(OrderCompletionReportDO::getOrderId, orderIds)); |
90 | Map<String, OrderReportAnalysisExportVo> exportVoMap = new HashMap<>(); | 91 | Map<String, OrderReportAnalysisExportVo> exportVoMap = new HashMap<>(); |
91 | if (CollectionUtils.isNotEmpty(reportDOS)) { | 92 | if (CollectionUtils.isNotEmpty(reportDOS)) { |
92 | - orderBaseInfoDOList = filterBaseData(orderBaseInfoDOList, reportDOS); | 93 | + OrderReportResultVO reportResultVO = filterBaseData(orderBaseInfoDOList, reportDOS); |
94 | + orderBaseInfoDOList = reportResultVO.getOrderBaseInfoDOList(); | ||
95 | + reportDOS = reportResultVO.getReportDOS(); | ||
93 | Map<Long, OrderCompletionReportDO> completionReportDOMap = new HashMap<>(); | 96 | Map<Long, OrderCompletionReportDO> completionReportDOMap = new HashMap<>(); |
94 | completionReportDOMap = reportDOS.stream().collect(Collectors.toMap(OrderCompletionReportDO::getOrderId, Function.identity(), (x, y) -> x)); | 97 | completionReportDOMap = reportDOS.stream().collect(Collectors.toMap(OrderCompletionReportDO::getOrderId, Function.identity(), (x, y) -> x)); |
95 | for (OrderBaseInfoDO orderBaseInfoDO : orderBaseInfoDOList) { | 98 | for (OrderBaseInfoDO orderBaseInfoDO : orderBaseInfoDOList) { |
@@ -101,9 +104,8 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl<OrderCompletio | @@ -101,9 +104,8 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl<OrderCompletio | ||
101 | } | 104 | } |
102 | } | 105 | } |
103 | for (OrderCompletionReportDO reportDO : reportDOS) { | 106 | for (OrderCompletionReportDO reportDO : reportDOS) { |
104 | - handlerExportMap(0, reportDO, exportVoMap); | ||
105 | - handlerExportMap(1, reportDO, exportVoMap); | ||
106 | - handlerExportMap(2, reportDO, exportVoMap); | 107 | + handlerExportMap(reportDO, exportVoMap); |
108 | + | ||
107 | } | 109 | } |
108 | } | 110 | } |
109 | List<OrderReportAnalysisExportVo> exportVos = exportMap2exportList(exportVoMap); | 111 | List<OrderReportAnalysisExportVo> exportVos = exportMap2exportList(exportVoMap); |
@@ -111,9 +113,9 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl<OrderCompletio | @@ -111,9 +113,9 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl<OrderCompletio | ||
111 | List<OrderReportStatExportVo> statExportVos = exportVos.stream().map(x -> { | 113 | List<OrderReportStatExportVo> statExportVos = exportVos.stream().map(x -> { |
112 | OrderReportStatExportVo statExportVo = new OrderReportStatExportVo(); | 114 | OrderReportStatExportVo statExportVo = new OrderReportStatExportVo(); |
113 | statExportVo.setDesigner(x.getDesigner()); | 115 | statExportVo.setDesigner(x.getDesigner()); |
114 | - statExportVo.setIdeaSourceRate(x.getIdeaSourceRate().divide(new BigDecimal(innerNoSet.size()), Constant.SIX, RoundingMode.HALF_UP).doubleValue()); | ||
115 | - statExportVo.setManualPreform1Rate(x.getManualPreform1Rate().divide(new BigDecimal(innerNoSet.size()), Constant.SIX, RoundingMode.HALF_UP).doubleValue()); | ||
116 | - statExportVo.setManualPreform2Rate(x.getManualPreform2Rate().divide(new BigDecimal(innerNoSet.size()), Constant.SIX, RoundingMode.HALF_UP).doubleValue()); | 116 | + statExportVo.setIdeaSourceRate(x.getIdeaSourceRate().divide(new BigDecimal(innerNoSet.size()), Constant.SIX, RoundingMode.HALF_UP).toString()); |
117 | + statExportVo.setManualPreform1Rate(x.getManualPreform1Rate().divide(new BigDecimal(innerNoSet.size()), Constant.SIX, RoundingMode.HALF_UP).toString()); | ||
118 | + statExportVo.setManualPreform2Rate(x.getManualPreform2Rate().divide(new BigDecimal(innerNoSet.size()), Constant.SIX, RoundingMode.HALF_UP).toString()); | ||
117 | return statExportVo; | 119 | return statExportVo; |
118 | }).collect(Collectors.toList()); | 120 | }).collect(Collectors.toList()); |
119 | ExcelUtils.getInstance().exportObjects2Excel(statExportVos, OrderReportStatExportVo.class, response.getOutputStream()); | 121 | ExcelUtils.getInstance().exportObjects2Excel(statExportVos, OrderReportStatExportVo.class, response.getOutputStream()); |
@@ -145,42 +147,40 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl<OrderCompletio | @@ -145,42 +147,40 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl<OrderCompletio | ||
145 | * @param reportDO | 147 | * @param reportDO |
146 | * @param exportVoMap | 148 | * @param exportVoMap |
147 | */ | 149 | */ |
148 | - private void handlerExportMap(Integer type, OrderCompletionReportDO reportDO, Map<String, OrderReportAnalysisExportVo> exportVoMap) { | ||
149 | - | ||
150 | - String key = null; | ||
151 | - if (type == 0) { | ||
152 | - key = reportDO.getIdeaSource(); | 150 | + private void handlerExportMap(OrderCompletionReportDO reportDO, Map<String, OrderReportAnalysisExportVo> exportVoMap) { |
153 | 151 | ||
152 | + String ideaSource = reportDO.getIdeaSource(); | ||
153 | + String manualPreform1 = reportDO.getManualPreform1(); | ||
154 | + String manualPreform2 = reportDO.getManualPreform2(); | ||
155 | + OrderReportAnalysisExportVo ideaSource4exportVo = exportVoMap.get(ideaSource); | ||
156 | + if (Objects.isNull(ideaSource4exportVo)) { | ||
157 | + ideaSource4exportVo = new OrderReportAnalysisExportVo(); | ||
158 | + ideaSource4exportVo.setIdeaSourceRate(new BigDecimal(0)); | ||
159 | + ideaSource4exportVo.setManualPreform1Rate(new BigDecimal(0)); | ||
160 | + ideaSource4exportVo.setManualPreform2Rate(new BigDecimal(0)); | ||
154 | } | 161 | } |
155 | - if (type == 1) { | ||
156 | - key = reportDO.getManualPreform1(); | ||
157 | - } | ||
158 | - if (type == 2) { | ||
159 | - key = reportDO.getManualPreform2(); | ||
160 | - } | ||
161 | - OrderReportAnalysisExportVo exportVo = exportVoMap.get(key); | ||
162 | - if (Objects.isNull(exportVo)) { | ||
163 | - exportVo = new OrderReportAnalysisExportVo(); | ||
164 | - } | ||
165 | - if (Objects.isNull(exportVo.getIdeaSourceRate())) { | ||
166 | - exportVo.setIdeaSourceRate(new BigDecimal(0)); | ||
167 | - } | ||
168 | - if (Objects.isNull(exportVo.getManualPreform1Rate())) { | ||
169 | - exportVo.setManualPreform1Rate(new BigDecimal(0)); | ||
170 | - } | ||
171 | - if (Objects.isNull(exportVo.getManualPreform2Rate())) { | ||
172 | - exportVo.setManualPreform2Rate(new BigDecimal(0)); | ||
173 | - } | ||
174 | - if (key.equals(reportDO.getIdeaSource())) { | ||
175 | - exportVo.setIdeaSourceRate(new BigDecimal(Objects.nonNull(reportDO.getIdeaSourceRate()) ? reportDO.getIdeaSourceRate() : 0).add(exportVo.getIdeaSourceRate())); | ||
176 | - } | ||
177 | - if (key.equals(reportDO.getManualPreform1())) { | ||
178 | - exportVo.setManualPreform1Rate(new BigDecimal(Objects.nonNull(reportDO.getManualPreform1Rate()) ? reportDO.getManualPreform1Rate() : 0).add(exportVo.getManualPreform1Rate())); | 162 | + ideaSource4exportVo.setIdeaSourceRate(new BigDecimal(Objects.nonNull(reportDO.getIdeaSourceRate()) ? reportDO.getIdeaSourceRate() : 0).add(ideaSource4exportVo.getIdeaSourceRate())); |
163 | + exportVoMap.put(ideaSource, ideaSource4exportVo); | ||
164 | + | ||
165 | + OrderReportAnalysisExportVo manualPreform14exportVo = exportVoMap.get(manualPreform1); | ||
166 | + if (Objects.isNull(manualPreform14exportVo)) { | ||
167 | + manualPreform14exportVo = new OrderReportAnalysisExportVo(); | ||
168 | + manualPreform14exportVo.setIdeaSourceRate(new BigDecimal(0)); | ||
169 | + manualPreform14exportVo.setManualPreform1Rate(new BigDecimal(0)); | ||
170 | + manualPreform14exportVo.setManualPreform2Rate(new BigDecimal(0)); | ||
179 | } | 171 | } |
180 | - if (key.equals(reportDO.getManualPreform2())) { | ||
181 | - exportVo.setManualPreform2Rate(new BigDecimal(Objects.nonNull(reportDO.getManualPreform2Rate()) ? reportDO.getManualPreform2Rate() : 0).add(exportVo.getManualPreform2Rate())); | 172 | + manualPreform14exportVo.setManualPreform1Rate(new BigDecimal(Objects.nonNull(reportDO.getManualPreform1Rate()) ? reportDO.getManualPreform1Rate() : 0).add(manualPreform14exportVo.getManualPreform1Rate())); |
173 | + exportVoMap.put(manualPreform1, manualPreform14exportVo); | ||
174 | + | ||
175 | + OrderReportAnalysisExportVo manualPreform24exportVo = exportVoMap.get(manualPreform2); | ||
176 | + if (Objects.isNull(manualPreform24exportVo)) { | ||
177 | + manualPreform24exportVo = new OrderReportAnalysisExportVo(); | ||
178 | + manualPreform24exportVo.setIdeaSourceRate(new BigDecimal(0)); | ||
179 | + manualPreform24exportVo.setManualPreform1Rate(new BigDecimal(0)); | ||
180 | + manualPreform24exportVo.setManualPreform2Rate(new BigDecimal(0)); | ||
182 | } | 181 | } |
183 | - exportVoMap.put(key, exportVo); | 182 | + manualPreform24exportVo.setManualPreform2Rate(new BigDecimal(Objects.nonNull(reportDO.getManualPreform2Rate()) ? reportDO.getManualPreform2Rate() : 0).add(manualPreform24exportVo.getManualPreform2Rate())); |
183 | + exportVoMap.put(manualPreform2, manualPreform24exportVo); | ||
184 | } | 184 | } |
185 | 185 | ||
186 | @Override | 186 | @Override |
@@ -197,7 +197,9 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl<OrderCompletio | @@ -197,7 +197,9 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl<OrderCompletio | ||
197 | BigDecimal sum = new BigDecimal(0); | 197 | BigDecimal sum = new BigDecimal(0); |
198 | Map<Long, OrderCompletionReportDO> completionReportDOMap = new HashMap<>(); | 198 | Map<Long, OrderCompletionReportDO> completionReportDOMap = new HashMap<>(); |
199 | if (CollectionUtils.isNotEmpty(reportDOS)) { | 199 | if (CollectionUtils.isNotEmpty(reportDOS)) { |
200 | - orderBaseInfoDOList = filterBaseData(orderBaseInfoDOList, reportDOS); | 200 | + OrderReportResultVO reportResultVO = filterBaseData(orderBaseInfoDOList, reportDOS); |
201 | + orderBaseInfoDOList = reportResultVO.getOrderBaseInfoDOList(); | ||
202 | + reportDOS = reportResultVO.getReportDOS(); | ||
201 | completionReportDOMap = reportDOS.stream().collect(Collectors.toMap(OrderCompletionReportDO::getOrderId, Function.identity(), (x, y) -> x)); | 203 | completionReportDOMap = reportDOS.stream().collect(Collectors.toMap(OrderCompletionReportDO::getOrderId, Function.identity(), (x, y) -> x)); |
202 | for (OrderBaseInfoDO orderBaseInfoDO : orderBaseInfoDOList) { | 204 | for (OrderBaseInfoDO orderBaseInfoDO : orderBaseInfoDOList) { |
203 | if (completionReportDOMap.containsKey(orderBaseInfoDO.getId())) { | 205 | if (completionReportDOMap.containsKey(orderBaseInfoDO.getId())) { |
@@ -214,7 +216,7 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl<OrderCompletio | @@ -214,7 +216,7 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl<OrderCompletio | ||
214 | sum = sum.add(new BigDecimal(ideaSourceRate)).add(new BigDecimal(manualPreform1Rate)).add(new BigDecimal(manualPreform2Rate)); | 216 | sum = sum.add(new BigDecimal(ideaSourceRate)).add(new BigDecimal(manualPreform1Rate)).add(new BigDecimal(manualPreform2Rate)); |
215 | } | 217 | } |
216 | } | 218 | } |
217 | - resultVo.setRate(sum.divide(new BigDecimal(innerNoSet.size()), Constant.SIX, RoundingMode.HALF_UP).doubleValue()); | 219 | + resultVo.setRate(Double.parseDouble(sum.divide(new BigDecimal(innerNoSet.size()), Constant.SIX, RoundingMode.HALF_UP).toString())); |
218 | } | 220 | } |
219 | return ServerResult.success(resultVo); | 221 | return ServerResult.success(resultVo); |
220 | } | 222 | } |
@@ -224,17 +226,25 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl<OrderCompletio | @@ -224,17 +226,25 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl<OrderCompletio | ||
224 | * @param reportDOS | 226 | * @param reportDOS |
225 | * @return | 227 | * @return |
226 | */ | 228 | */ |
227 | - private List<OrderBaseInfoDO> filterBaseData(List<OrderBaseInfoDO> orderBaseInfoDOList, List<OrderCompletionReportDO> reportDOS) { | ||
228 | - List<OrderBaseInfoDO> result = new ArrayList<>(); | 229 | + private OrderReportResultVO filterBaseData(List<OrderBaseInfoDO> orderBaseInfoDOList, List<OrderCompletionReportDO> reportDOS) { |
230 | + OrderReportResultVO result = new OrderReportResultVO(); | ||
231 | + List<OrderBaseInfoDO> result4orderBase = new ArrayList<>(); | ||
232 | + List<OrderCompletionReportDO> result4report = new ArrayList<>(); | ||
229 | if (CollectionUtils.isEmpty(orderBaseInfoDOList)) { | 233 | if (CollectionUtils.isEmpty(orderBaseInfoDOList)) { |
230 | return result; | 234 | return result; |
231 | } | 235 | } |
232 | - Map<Long, OrderBaseInfoDO> map = orderBaseInfoDOList.stream().collect(Collectors.toMap(OrderBaseInfoDO::getId, Function.identity(), (x, y) -> x)); | ||
233 | - for (OrderCompletionReportDO reportDO : reportDOS) { | ||
234 | - if (map.containsKey(reportDO.getOrderId())) { | ||
235 | - result.add(map.get(reportDO.getOrderId())); | 236 | + Map<String, Long> innerOrderIdMap = new HashMap<>(); |
237 | + Map<Long, OrderCompletionReportDO> reportDOMap = reportDOS.stream().collect(Collectors.toMap(OrderCompletionReportDO::getOrderId, Function.identity(), (x, y) -> x)); | ||
238 | + for (OrderBaseInfoDO infoDO : orderBaseInfoDOList) { | ||
239 | + if (reportDOMap.containsKey(infoDO.getId())) { | ||
240 | + innerOrderIdMap.put(infoDO.getInnerNo(), infoDO.getId()); | ||
236 | } | 241 | } |
237 | } | 242 | } |
243 | + List<Long> orderIds = new ArrayList<>(innerOrderIdMap.values()); | ||
244 | + result4orderBase = orderBaseInfoDOList.stream().filter(x -> orderIds.contains(x.getId())).collect(Collectors.toList()); | ||
245 | + result4report = reportDOS.stream().filter(x -> orderIds.contains(x.getOrderId())).collect(Collectors.toList()); | ||
246 | + result.setOrderBaseInfoDOList(result4orderBase); | ||
247 | + result.setReportDOS(result4report); | ||
238 | return result; | 248 | return result; |
239 | } | 249 | } |
240 | 250 |
src/main/resources/application-local.yml
@@ -59,7 +59,7 @@ spring: | @@ -59,7 +59,7 @@ spring: | ||
59 | testOnReturn: true | 59 | testOnReturn: true |
60 | password: 123456 | 60 | password: 123456 |
61 | time-between-eviction-runs-millis: 1000 | 61 | time-between-eviction-runs-millis: 1000 |
62 | - url: jdbc:mysql://39.108.227.113:3307/order-erp?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&useSSL=false&autoReconnect=true&failOverReadOnly=false&maxReconnects=10&allowMultiQueries=true&useAffectedRows=true&autoReconnectForPools=true | 62 | + url: jdbc:mysql://39.108.227.113:3307/order-erp1?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&useSSL=false&autoReconnect=true&failOverReadOnly=false&maxReconnects=10&allowMultiQueries=true&useAffectedRows=true&autoReconnectForPools=true |
63 | username: root | 63 | username: root |
64 | redis: | 64 | redis: |
65 | database: 0 | 65 | database: 0 |
src/main/resources/application.yml