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 | 32 | * 想法来源占比 |
33 | 33 | */ |
34 | 34 | @ExcelField(title = "想法来源占比", order = 2) |
35 | - private Double ideaSourceRate; | |
35 | + private String ideaSourceRate; | |
36 | 36 | |
37 | 37 | /** |
38 | 38 | * 手工初型1占比 |
39 | 39 | */ |
40 | 40 | @ExcelField(title = "手工初型1占比", order = 3) |
41 | - private Double manualPreform1Rate; | |
41 | + private String manualPreform1Rate; | |
42 | 42 | |
43 | 43 | /** |
44 | 44 | * 手工初型2占比 |
45 | 45 | */ |
46 | 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 | 248 | AdminUserDO adminUserDo = BeanUtil.copyProperties(adminUserVO, AdminUserDO.class); |
249 | 249 | adminUserDo.setUserName(adminUserDo.getNickName()); |
250 | 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 | 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 | 18 | import com.order.erp.domain.vo.order.OrderBaseInfoQueryVO; |
19 | 19 | import com.order.erp.domain.vo.order.OrderCompletionReportQueryVO; |
20 | 20 | import com.order.erp.domain.vo.order.OrderCompletionReportVO; |
21 | +import com.order.erp.domain.vo.order.OrderReportResultVO; | |
21 | 22 | import com.order.erp.mapper.order.OrderCompletionReportMapper; |
22 | 23 | import com.order.erp.service.order.OrderBaseInfoService; |
23 | 24 | import com.order.erp.service.order.OrderCompletionReportService; |
... | ... | @@ -89,7 +90,9 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl<OrderCompletio |
89 | 90 | List<OrderCompletionReportDO> reportDOS = list(new LambdaQueryWrapper<OrderCompletionReportDO>().in(OrderCompletionReportDO::getOrderId, orderIds)); |
90 | 91 | Map<String, OrderReportAnalysisExportVo> exportVoMap = new HashMap<>(); |
91 | 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 | 96 | Map<Long, OrderCompletionReportDO> completionReportDOMap = new HashMap<>(); |
94 | 97 | completionReportDOMap = reportDOS.stream().collect(Collectors.toMap(OrderCompletionReportDO::getOrderId, Function.identity(), (x, y) -> x)); |
95 | 98 | for (OrderBaseInfoDO orderBaseInfoDO : orderBaseInfoDOList) { |
... | ... | @@ -101,9 +104,8 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl<OrderCompletio |
101 | 104 | } |
102 | 105 | } |
103 | 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 | 111 | List<OrderReportAnalysisExportVo> exportVos = exportMap2exportList(exportVoMap); |
... | ... | @@ -111,9 +113,9 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl<OrderCompletio |
111 | 113 | List<OrderReportStatExportVo> statExportVos = exportVos.stream().map(x -> { |
112 | 114 | OrderReportStatExportVo statExportVo = new OrderReportStatExportVo(); |
113 | 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 | 119 | return statExportVo; |
118 | 120 | }).collect(Collectors.toList()); |
119 | 121 | ExcelUtils.getInstance().exportObjects2Excel(statExportVos, OrderReportStatExportVo.class, response.getOutputStream()); |
... | ... | @@ -145,42 +147,40 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl<OrderCompletio |
145 | 147 | * @param reportDO |
146 | 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 | 186 | @Override |
... | ... | @@ -197,7 +197,9 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl<OrderCompletio |
197 | 197 | BigDecimal sum = new BigDecimal(0); |
198 | 198 | Map<Long, OrderCompletionReportDO> completionReportDOMap = new HashMap<>(); |
199 | 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 | 203 | completionReportDOMap = reportDOS.stream().collect(Collectors.toMap(OrderCompletionReportDO::getOrderId, Function.identity(), (x, y) -> x)); |
202 | 204 | for (OrderBaseInfoDO orderBaseInfoDO : orderBaseInfoDOList) { |
203 | 205 | if (completionReportDOMap.containsKey(orderBaseInfoDO.getId())) { |
... | ... | @@ -214,7 +216,7 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl<OrderCompletio |
214 | 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 | 221 | return ServerResult.success(resultVo); |
220 | 222 | } |
... | ... | @@ -224,17 +226,25 @@ public class OrderCompletionReportServiceImpl extends ServiceImpl<OrderCompletio |
224 | 226 | * @param reportDOS |
225 | 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 | 233 | if (CollectionUtils.isEmpty(orderBaseInfoDOList)) { |
230 | 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 | 248 | return result; |
239 | 249 | } |
240 | 250 | ... | ... |
src/main/resources/application-local.yml
... | ... | @@ -59,7 +59,7 @@ spring: |
59 | 59 | testOnReturn: true |
60 | 60 | password: 123456 |
61 | 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 | 63 | username: root |
64 | 64 | redis: |
65 | 65 | database: 0 | ... | ... |