Commit 44e397b3c8705788de0ca51add0a0260aaa54a16

Authored by 谢茂盛
1 parent 0f4ba695

feat: 问题修复项

1、设计师权重导出
2、订单列表多选
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&lt;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&lt;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&lt;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&lt;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&lt;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&lt;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&lt;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
... ...
src/main/resources/application.yml
... ... @@ -3,4 +3,4 @@ server:
3 3  
4 4 spring:
5 5 profiles:
6   - active: local
7 6 \ No newline at end of file
  7 + active: prod
8 8 \ No newline at end of file
... ...