Commit 8d9b8e04dbead41527df67fb6ca0e30c738ac77f
1 parent
17ee2dd5
feat:防止没有给生产科配置邮箱产生空指针异常
Showing
15 changed files
with
81 additions
and
276 deletions
pom.xml
... | ... | @@ -55,12 +55,6 @@ |
55 | 55 | <groupId>com.alibaba</groupId> |
56 | 56 | <artifactId>easyexcel</artifactId> |
57 | 57 | <version>${easyexcel.version}</version> |
58 | - <exclusions> | |
59 | - <exclusion> | |
60 | - <artifactId>asm</artifactId> | |
61 | - <groupId>org.ow2.asm</groupId> | |
62 | - </exclusion> | |
63 | - </exclusions> | |
64 | 58 | </dependency> |
65 | 59 | |
66 | 60 | <dependency> |
... | ... | @@ -92,12 +86,6 @@ |
92 | 86 | <artifactId>spring-boot-starter-test</artifactId> |
93 | 87 | <version>${springboot.version}</version> |
94 | 88 | <scope>test</scope> |
95 | - <exclusions> | |
96 | - <exclusion> | |
97 | - <artifactId>asm</artifactId> | |
98 | - <groupId>org.ow2.asm</groupId> | |
99 | - </exclusion> | |
100 | - </exclusions> | |
101 | 89 | </dependency> |
102 | 90 | |
103 | 91 | <dependency> |
... | ... | @@ -277,12 +265,6 @@ |
277 | 265 | <groupId>com.aliyun.oss</groupId> |
278 | 266 | <artifactId>aliyun-sdk-oss</artifactId> |
279 | 267 | <version>${aliyun-sdk-oss.version}</version> |
280 | - <exclusions> | |
281 | - <exclusion> | |
282 | - <artifactId>aliyun-java-sdk-core</artifactId> | |
283 | - <groupId>com.aliyun</groupId> | |
284 | - </exclusion> | |
285 | - </exclusions> | |
286 | 268 | </dependency> |
287 | 269 | |
288 | 270 | <!--thumbnailator 图片压缩工具--> |
... | ... | @@ -298,25 +280,8 @@ |
298 | 280 | <groupId>wiki.xsx</groupId> |
299 | 281 | <artifactId>x-easypdf-pdfbox</artifactId> |
300 | 282 | <version>${x-easypdf-pdfbox.version}</version> |
301 | - <exclusions> | |
302 | - <exclusion> | |
303 | - <artifactId>commons-logging</artifactId> | |
304 | - <groupId>commons-logging</groupId> | |
305 | - </exclusion> | |
306 | - </exclusions> | |
307 | 283 | </dependency> |
308 | 284 | |
309 | - <!--email邮件配置--> | |
310 | - <dependency> | |
311 | - <groupId>org.springframework.boot</groupId> | |
312 | - <artifactId>spring-boot-starter-mail</artifactId> | |
313 | - </dependency> | |
314 | - | |
315 | - <!--Freemarker--> | |
316 | - <dependency> | |
317 | - <groupId>org.springframework.boot</groupId> | |
318 | - <artifactId>spring-boot-starter-freemarker</artifactId> | |
319 | - </dependency> | |
320 | 285 | </dependencies> |
321 | 286 | <build> |
322 | 287 | <finalName>order-erp.service-1.0-SNAPSHOT</finalName> | ... | ... |
sql/table.sql
... | ... | @@ -230,17 +230,19 @@ CREATE TABLE `system_setting` ( |
230 | 230 | PRIMARY KEY (`id`) |
231 | 231 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统配置'; |
232 | 232 | |
233 | -DROP TABLE IF EXISTS `order_opinion_log`; | |
234 | -CREATE TABLE `order_opinion_log` ( | |
235 | - `id` bigint NOT NULL AUTO_INCREMENT, | |
236 | - `order_id` bigint NOT NULL COMMENT '订单id', | |
237 | - `opinion_type` varchar(64) NOT NULL COMMENT '意见类型', | |
238 | - `field` varchar(64) NOT NULL COMMENT '更新字段', | |
239 | - `enable_flag` INT NOT NULL COMMENT '是否可用 10-可用 20-删除', | |
240 | - `create_time` DATETIME NOT NULL COMMENT '创建时间', | |
241 | - `create_by` varchar(64) NOT NULL COMMENT '创建人', | |
242 | - `modify_time` DATETIME DEFAULT NULL COMMENT '修改时间', | |
243 | - `modify_by` varchar(64) DEFAULT NULL COMMENT '修改人', | |
244 | - `version` INT DEFAULT NULL COMMENT '版本号--乐观锁预留字段', | |
233 | +DROP TABLE IF EXISTS `receive_email_mapping`; | |
234 | +CREATE TABLE `receive_email_mapping` ( | |
235 | + `id` bigint NOT NULL AUTO_INCREMENT, | |
236 | + ` type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '类型', | |
237 | + `type_value` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '类型值', | |
238 | + `config_infos` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '配置信息 json', | |
239 | + `enable_flag` int NOT NULL COMMENT '是否可用 10-可用 20-删除', | |
240 | + `create_time` datetime NOT NULL COMMENT '创建时间', | |
241 | + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '创建人', | |
242 | + `modify_time` datetime NULL DEFAULT NULL COMMENT '修改时间', | |
243 | + `modify_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '修改人', | |
244 | + `version` int NULL DEFAULT NULL COMMENT '版本号--乐观锁预留字段', | |
245 | 245 | PRIMARY KEY (`id`) USING BTREE |
246 | -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT = '用户订单操作日志表'; | |
247 | 246 | \ No newline at end of file |
247 | +) ENGINE = InnoDB AUTO_INCREMENT = 94 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '邮件接收人信息绑定表' ROW_FORMAT = Dynamic; | |
248 | + | |
249 | + | ... | ... |
src/main/java/com/order/erp/common/utils/EmailSendUtils.java
... | ... | @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
4 | 4 | import com.order.erp.common.constant.ServerResultCode; |
5 | 5 | import com.order.erp.common.exception.BusinessException; |
6 | 6 | import com.order.erp.domain.EmailTemplateEnum; |
7 | -import com.order.erp.domain.email.OrderProductEmailVO; | |
8 | 7 | import com.order.erp.domain.vo.order.OrderEventJobVO; |
9 | 8 | import freemarker.template.Template; |
10 | 9 | import freemarker.template.TemplateException; |
... | ... | @@ -50,31 +49,31 @@ public class EmailSendUtils { |
50 | 49 | if(CollectionUtils.isEmpty(receiveemailList) && emailTemplateEnum ==null && ObjectUtils.isNull(orderEventJobVO)){ |
51 | 50 | throw new BusinessException(ServerResultCode.PARAM_ERROR); |
52 | 51 | } |
53 | - MimeMessage mimeMessage = javaMailSender.createMimeMessage(); | |
54 | - MimeMessageHelper helper= null; | |
55 | - Map<String, Object> map = new HashMap<>(); | |
56 | - map.put("context",emailTemplateEnum.getContent()); | |
57 | - map.put("title",emailTemplateEnum.getTitle()); | |
58 | - map.put("data",orderEventJobVO); | |
59 | - Template template = null; | |
60 | - //设置收件人 | |
61 | - String[] receiveemailListArray = receiveemailList.toArray(new String[receiveemailList.size()]); | |
62 | - try { | |
63 | - helper = new MimeMessageHelper(mimeMessage,true); | |
52 | + MimeMessage mimeMessage = javaMailSender.createMimeMessage(); | |
53 | + MimeMessageHelper helper= null; | |
54 | + Map<String, Object> map = new HashMap<>(); | |
55 | + map.put("context",emailTemplateEnum.getContent()); | |
56 | + map.put("title",emailTemplateEnum.getTitle()); | |
57 | + map.put("data",orderEventJobVO); | |
58 | + Template template = null; | |
59 | + //设置收件人 | |
60 | + String[] receiveemailListArray = receiveemailList.toArray(new String[receiveemailList.size()]); | |
61 | + try { | |
62 | + helper = new MimeMessageHelper(mimeMessage,true); | |
64 | 63 | //设置邮件的主题 |
65 | - helper.setSubject(emailTemplateEnum.getTitle()); | |
64 | + helper.setSubject(emailTemplateEnum.getTitle()); | |
66 | 65 | //设置发件人 |
67 | - helper.setFrom(sendEmail); | |
68 | - helper.setTo(receiveemailListArray); | |
69 | - helper.setSentDate(new Date()); | |
70 | - template = freeMarkerConfigurer.getConfiguration().getTemplate("mail.ftl"); | |
71 | - StringWriter stringWriter = new StringWriter(); | |
72 | - template.process(map,stringWriter); | |
73 | - helper.setText(stringWriter.toString(),true); | |
74 | - } catch (TemplateException | IOException | MessagingException e) { | |
75 | - throw new RuntimeException("邮件发送失败!"); | |
66 | + helper.setFrom(sendEmail); | |
67 | + helper.setTo(receiveemailListArray); | |
68 | + helper.setSentDate(new Date()); | |
69 | + template = freeMarkerConfigurer.getConfiguration().getTemplate("mail.ftl"); | |
70 | + StringWriter stringWriter = new StringWriter(); | |
71 | + template.process(map,stringWriter); | |
72 | + helper.setText(stringWriter.toString(),true); | |
73 | + } catch (TemplateException | IOException | MessagingException e) { | |
74 | + throw new RuntimeException("邮件发送失败!"); | |
76 | 75 | } |
77 | - javaMailSender.send(mimeMessage); | |
76 | + javaMailSender.send(mimeMessage); | |
78 | 77 | } |
79 | 78 | /** |
80 | 79 | * @Description: 发送生产指示书邮件 |
... | ... | @@ -89,23 +88,23 @@ public class EmailSendUtils { |
89 | 88 | if (CollectionUtils.isEmpty(receiveemailList) && emailTemplateEnum == null && ObjectUtils.isNull(pdfFile)) { |
90 | 89 | throw new BusinessException(ServerResultCode.PARAM_ERROR); |
91 | 90 | } |
92 | - MimeMessage mimeMessage = javaMailSender.createMimeMessage(); | |
93 | - //设置收件人 | |
94 | - String[] receiveemailListArray = receiveemailList.toArray(new String[receiveemailList.size()]); | |
95 | - MimeMessageHelper helper = null; | |
96 | - try { | |
97 | - helper = new MimeMessageHelper(mimeMessage, true); | |
91 | + MimeMessage mimeMessage = javaMailSender.createMimeMessage(); | |
92 | + //设置收件人 | |
93 | + String[] receiveemailListArray = receiveemailList.toArray(new String[receiveemailList.size()]); | |
94 | + MimeMessageHelper helper = null; | |
95 | + try { | |
96 | + helper = new MimeMessageHelper(mimeMessage, true); | |
98 | 97 | //设置邮件的主题 |
99 | - helper.setSubject(emailTemplateEnum.getTitle()); | |
98 | + helper.setSubject(emailTemplateEnum.getTitle()); | |
100 | 99 | //设置发件人 |
101 | - helper.setFrom(sendEmail); | |
102 | - helper.setTo(receiveemailListArray); | |
103 | - helper.setSentDate(new Date()); | |
104 | - helper.setText(emailTemplateEnum.getContent()); | |
105 | - helper.addAttachment(pdfFile.getName(), pdfFile); | |
106 | - } catch (MessagingException e) { | |
107 | - throw new RuntimeException("邮件发送失败!"); | |
108 | - } | |
109 | - javaMailSender.send(mimeMessage); | |
100 | + helper.setFrom(sendEmail); | |
101 | + helper.setTo(receiveemailListArray); | |
102 | + helper.setSentDate(new Date()); | |
103 | + helper.setText(emailTemplateEnum.getContent()); | |
104 | + helper.addAttachment(pdfFile.getName(), pdfFile); | |
105 | + } catch (MessagingException e) { | |
106 | + throw new RuntimeException("邮件发送失败!"); | |
110 | 107 | } |
108 | + javaMailSender.send(mimeMessage); | |
109 | + } | |
111 | 110 | } |
112 | 111 | \ No newline at end of file | ... | ... |
src/main/java/com/order/erp/controller/EmailTemplateController.java
... | ... | @@ -2,8 +2,6 @@ package com.order.erp.controller; |
2 | 2 | |
3 | 3 | import com.order.erp.common.constant.ServerResult; |
4 | 4 | import com.order.erp.common.jsr303.OperateGroup; |
5 | -import com.order.erp.common.utils.EasyPdfUtils; | |
6 | -import com.order.erp.common.utils.FileUtil; | |
7 | 5 | import com.order.erp.domain.vo.order.EmailTemplateQueryVO; |
8 | 6 | import com.order.erp.domain.vo.order.EmailTemplateVO; |
9 | 7 | import com.order.erp.service.order.EmailTemplateService; |
... | ... | @@ -14,7 +12,6 @@ import org.springframework.web.bind.annotation.RequestMapping; |
14 | 12 | import org.springframework.web.bind.annotation.RestController; |
15 | 13 | |
16 | 14 | import javax.annotation.Resource; |
17 | -import java.io.File; | |
18 | 15 | |
19 | 16 | /** |
20 | 17 | * 邮件模板表(EmailTemplate)表控制层 |
... | ... | @@ -31,24 +28,6 @@ public class EmailTemplateController { |
31 | 28 | @Resource |
32 | 29 | private EmailTemplateService emailTemplateService; |
33 | 30 | |
34 | - @Resource | |
35 | - private EasyPdfUtils pdfUtils; | |
36 | - | |
37 | - /** | |
38 | - * 分页查询 | |
39 | - * | |
40 | - * @param emailTemplateQueryVO 查询条件 | |
41 | - * @return 查询结果 | |
42 | - */ | |
43 | - @PostMapping("/test") | |
44 | - public ServerResult test(@RequestBody @Validated({OperateGroup.List.class}) EmailTemplateQueryVO emailTemplateQueryVO) { | |
45 | - | |
46 | - | |
47 | - pdfUtils.createProducePdf(pdfUtils.build(), "testPagePlaceholder.pdf"); | |
48 | - | |
49 | - return ServerResult.success(); | |
50 | - } | |
51 | - | |
52 | 31 | /** |
53 | 32 | * 分页查询 |
54 | 33 | * | ... | ... |
src/main/java/com/order/erp/controller/OrderController.java
... | ... | @@ -158,17 +158,5 @@ public class OrderController { |
158 | 158 | } |
159 | 159 | |
160 | 160 | |
161 | - /** | |
162 | - * 一次性通过率 | |
163 | - * | |
164 | - * @param orderOpinionLogVO 查询条件 | |
165 | - * @return 查询结果 | |
166 | - */ | |
167 | - @PostMapping("/passRate") | |
168 | - @AnonymousAccess | |
169 | - public ServerResult oneTimePassRate(@RequestBody OrderOpinionLogVO orderOpinionLogVO) { | |
170 | - return orderBaseInfoService.passRate(orderOpinionLogVO); | |
171 | - } | |
172 | - | |
173 | 161 | } |
174 | 162 | ... | ... |
src/main/java/com/order/erp/domain/ApplyStatusEnum.java
src/main/java/com/order/erp/domain/ApplyTypeEnum.java
src/main/java/com/order/erp/domain/vo/order/OrderBaseInfoVO.java
src/main/java/com/order/erp/domain/vo/order/OrderLockFieldVO.java
1 | 1 | package com.order.erp.domain.vo.order; |
2 | 2 | |
3 | -import com.order.erp.domain.dto.order.InvoiceBillOrderDO; | |
4 | 3 | import lombok.*; |
5 | 4 | import lombok.experimental.SuperBuilder; |
6 | 5 | |
... | ... | @@ -45,11 +44,6 @@ public class OrderLockFieldVO implements Serializable { |
45 | 44 | private OrderInspectionStageFieldVO inspectionStageFields; |
46 | 45 | |
47 | 46 | /** |
48 | - * 应收款账单字段 | |
49 | - */ | |
50 | - private InvoiceBillOrderDO invoiceBillOrderDO; | |
51 | - | |
52 | - /** | |
53 | 47 | * 导出指定订单id集合 |
54 | 48 | */ |
55 | 49 | private List<Long> orderIds; | ... | ... |
src/main/java/com/order/erp/job/OrderOverTimeEventJob.java
... | ... | @@ -321,14 +321,14 @@ public class OrderOverTimeEventJob { |
321 | 321 | String sgsTestFinishTime = eventJobVO.getTrackStageInfo().getSgsTestFinishTime(); |
322 | 322 | String aitexTestFinishTime = eventJobVO.getTrackStageInfo().getAitexTestFinishTime(); |
323 | 323 | if (StringUtils.isNotBlank(orderHodTime) && StringUtils.isNotBlank(aitexTestFinishResult) && StringUtils.isNotBlank(aitexTestFinishTime)){ |
324 | - aitextestDaysBetween = getDaysBetween(aitexTestFinishResult, aitexTestFinishTime, orderHodTime); | |
324 | + aitextestDaysBetween = getDaysBetween(aitexTestFinishResult, aitexTestFinishTime, orderHodTime); | |
325 | 325 | } |
326 | 326 | if(StringUtils.isNotBlank(orderHodTime) && StringUtils.isNotBlank(sgsTestFinishResult) && StringUtils.isNotBlank(sgsTestFinishTime)){ |
327 | - sgstestDaysBetween = getDaysBetween(sgsTestFinishResult, sgsTestFinishTime, orderHodTime); | |
327 | + sgstestDaysBetween = getDaysBetween(sgsTestFinishResult, sgsTestFinishTime, orderHodTime); | |
328 | + } | |
329 | + if (Constant.THREE == aitextestDaysBetween || Constant.THREE == sgstestDaysBetween || Constant.NEGATIVE_ONE == aitextestDaysBetween || Constant.NEGATIVE_ONE == sgstestDaysBetween ) { | |
330 | + return true; | |
328 | 331 | } |
329 | - if (Constant.THREE == aitextestDaysBetween || Constant.THREE == sgstestDaysBetween || Constant.NEGATIVE_ONE == aitextestDaysBetween || Constant.NEGATIVE_ONE == sgstestDaysBetween ) { | |
330 | - return true; | |
331 | - } | |
332 | 332 | return false; |
333 | 333 | |
334 | 334 | } |
... | ... | @@ -396,4 +396,4 @@ public class OrderOverTimeEventJob { |
396 | 396 | orderBaseInfoVO.setOrderHodTime(orderHodTimeFormat); |
397 | 397 | return orderBaseInfoVO; |
398 | 398 | } |
399 | 399 | -} |
400 | +} | |
400 | 401 | \ No newline at end of file | ... | ... |
src/main/java/com/order/erp/service/order/OrderBaseInfoService.java
... | ... | @@ -101,13 +101,6 @@ public interface OrderBaseInfoService extends IService<OrderBaseInfoDO> { |
101 | 101 | */ |
102 | 102 | ServerResult deleteById(OrderBaseInfoQueryVO orderBaseInfoQueryVO); |
103 | 103 | |
104 | - /** | |
105 | - * 通过orderId计算订单的一次性通过率 | |
106 | - * | |
107 | - * @param orderOpinionLogVO 筛选条件 | |
108 | - * @return 是否成功 | |
109 | - */ | |
110 | - ServerResult passRate(OrderOpinionLogVO orderOpinionLogVO); | |
111 | 104 | |
112 | 105 | long countByOrderStatus(Integer orderFinish); |
113 | 106 | ... | ... |
src/main/java/com/order/erp/service/order/impl/OrderBaseInfoServiceImpl.java
... | ... | @@ -118,11 +118,7 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O |
118 | 118 | @Resource |
119 | 119 | private EmailSendUtils emailSendUtils; |
120 | 120 | |
121 | - @Resource | |
122 | - private OrderOpinionLogService orderOpinionLogService; | |
123 | 121 | |
124 | - @Resource | |
125 | - private InvoiceBillMappingService invoiceBillMappingService; | |
126 | 122 | |
127 | 123 | /** |
128 | 124 | * 通过ID查询单条数据 |
... | ... | @@ -205,8 +201,6 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O |
205 | 201 | // 填充质检信息 |
206 | 202 | fillInspectionStageInfo(resultVOList); |
207 | 203 | |
208 | - // 填充发票信息 | |
209 | - fillInvoiceNo(resultVOList); | |
210 | 204 | |
211 | 205 | if (locked) { |
212 | 206 | // 填充字段锁定信息 |
... | ... | @@ -844,26 +838,7 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O |
844 | 838 | /** |
845 | 839 | * @param orderInfoResultVOList |
846 | 840 | */ |
847 | - private void fillInvoiceNo(List<OrderInfoResultVO> orderInfoResultVOList) { | |
848 | - if (CollectionUtils.isEmpty(orderInfoResultVOList)) { | |
849 | - return; | |
850 | - } | |
851 | 841 | |
852 | - Set<Long> orderIds = orderInfoResultVOList.stream().map(OrderInfoResultVO::getId).collect(Collectors.toSet()); | |
853 | - List<InvoiceBillMappingDO> invoiceBillMappingDOS = invoiceBillMappingService.list(new LambdaQueryWrapper<InvoiceBillMappingDO>() | |
854 | - .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) | |
855 | - .in(InvoiceBillMappingDO::getOrderId, orderIds)); | |
856 | - if (CollectionUtils.isEmpty(invoiceBillMappingDOS)) { | |
857 | - return; | |
858 | - } | |
859 | - Map<Long, InvoiceBillMappingDO> invoiceBillMappingDOMap = invoiceBillMappingDOS.stream().collect(Collectors.toMap(InvoiceBillMappingDO::getOrderId, Function.identity(), (v1, v2) -> v1)); | |
860 | - orderInfoResultVOList.forEach(result -> { | |
861 | - if (invoiceBillMappingDOMap.containsKey(result.getId())) { | |
862 | - InvoiceBillMappingDO invoiceBillMappingDO = invoiceBillMappingDOMap.get(result.getId()); | |
863 | - result.setInvoiceNo(invoiceBillMappingDO.getInvoiceNo()); | |
864 | - } | |
865 | - }); | |
866 | - } | |
867 | 842 | |
868 | 843 | /** |
869 | 844 | * @param orderInfoResultVOList |
... | ... | @@ -1517,10 +1492,7 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O |
1517 | 1492 | } |
1518 | 1493 | |
1519 | 1494 | orderOptLogService.save(buildOrderOptLogDo(baseInfoDO.getId(), userId, OrderOptTypeEnum.ORDER_CREATE.getDesc(), null)); |
1520 | - OrderOpinionLogDO orderOpinionLogDO = buildOrderOpinionLogDo(baseInfoDO.getId(), | |
1521 | - OrderOpinionLogEnum.ORDER_PRODUCTION_COMMENT.getDesc(), | |
1522 | - orderAddVO.getBaseInfo().getProductionComment()); | |
1523 | - orderOpinionLogService.save(orderOpinionLogDO); | |
1495 | + | |
1524 | 1496 | return ServerResult.success(); |
1525 | 1497 | } |
1526 | 1498 | |
... | ... | @@ -1535,9 +1507,7 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O |
1535 | 1507 | return OrderOptLogDO.builder().orderId(orderId).userId(userId).fields(jsonString).optType(optType).build(); |
1536 | 1508 | } |
1537 | 1509 | |
1538 | - private OrderOpinionLogDO buildOrderOpinionLogDo(Long orderId, String type, String field) { | |
1539 | - return OrderOpinionLogDO.builder().orderId(orderId).opinionType(type).field(field).build(); | |
1540 | - } | |
1510 | + | |
1541 | 1511 | |
1542 | 1512 | /** |
1543 | 1513 | * @param updateVO |
... | ... | @@ -1628,12 +1598,8 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O |
1628 | 1598 | throw new BusinessException(ServerResultCode.ORDER_BASE_INFO_EMPTY); |
1629 | 1599 | } |
1630 | 1600 | OrderOptLogDO optLogDO = new OrderOptLogDO(); |
1631 | - List<OrderOpinionLogDO> orderOpinionLogDOList = new ArrayList<>(); | |
1632 | 1601 | if (Objects.nonNull(updateVO.getBaseInfo())) { |
1633 | - if(!(updateVO.getBaseInfo().getProductionComment().equals(orderBaseInfoDo.getProductionComment()))){ | |
1634 | - OrderOpinionLogDO orderOpinionLogDO = buildOrderOpinionLogDo(updateVO.getOrderId(),OrderOpinionLogEnum.ORDER_PRODUCTION_COMMENT.getDesc(),updateVO.getBaseInfo().getProductionComment()); | |
1635 | - orderOpinionLogDOList.add(orderOpinionLogDO); | |
1636 | - } | |
1602 | + | |
1637 | 1603 | buildUpdateVO(updateVO.getBaseInfo(), orderBaseInfoDo); |
1638 | 1604 | orderBaseInfoDo.setId(updateVO.getOrderId()); |
1639 | 1605 | optLogDO = buildOrderOptLogDo(updateVO.getOrderId(), userId, OrderOptTypeEnum.ORDER_EDIT.getDesc(), JSONObject.toJSONString(updateVO)); |
... | ... | @@ -1669,13 +1635,7 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O |
1669 | 1635 | trackStageDO.setPpTime(trackStageInfo.getPpTime()); |
1670 | 1636 | } |
1671 | 1637 | if (StringUtils.isNotBlank(trackStageInfo.getPpConfirmResult())) { |
1672 | - //由于跟单信息在创建时也是采用edit接口,所以要限制第一次创建时ppconfirmResult为空的情况,这种情况要计算到跟单记录中去。 | |
1673 | - if(!(trackStageInfo.getPpConfirmResult().equals(trackStageDO.getPpConfirmResult())) && | |
1674 | - StringUtils.isNotBlank(trackStageInfo.getPpConfirmResult()) ){ | |
1675 | - //用于在跟单记录中展示。 | |
1676 | - OrderOpinionLogDO orderOpinionLogDO =buildOrderOpinionLogDo(updateVO.getOrderId(),OrderOpinionLogEnum.ORDER_PP_CONFIRRM_RESULT.getDesc(),trackStageInfo.getPpConfirmResult()); | |
1677 | - orderOpinionLogDOList.add(orderOpinionLogDO); | |
1678 | - } | |
1638 | + | |
1679 | 1639 | trackStageDO.setPpConfirmResult(trackStageInfo.getPpConfirmResult()); |
1680 | 1640 | } |
1681 | 1641 | if (StringUtils.isNotBlank(trackStageInfo.getEsoSampleSendTime())) { |
... | ... | @@ -1685,11 +1645,7 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O |
1685 | 1645 | trackStageDO.setShippmentSampleSendTime(trackStageInfo.getShippmentSampleSendTime()); |
1686 | 1646 | } |
1687 | 1647 | if (StringUtils.isNotBlank(trackStageInfo.getShippmentSampleConfirmResult())) { |
1688 | - if(!(trackStageInfo.getShippmentSampleConfirmResult().equals(trackStageDO.getShippmentSampleConfirmResult())) && | |
1689 | - StringUtils.isNotBlank(trackStageInfo.getShippmentSampleConfirmResult())) { | |
1690 | - OrderOpinionLogDO orderOpinionLogDO = buildOrderOpinionLogDo(updateVO.getOrderId(), OrderOpinionLogEnum.ORDER_SHIPMENT_SAMPLE_CONFIRM_RESULT.getDesc(), trackStageInfo.getShippmentSampleConfirmResult()); | |
1691 | - orderOpinionLogDOList.add(orderOpinionLogDO); | |
1692 | - }trackStageDO.setShippmentSampleConfirmResult(trackStageInfo.getShippmentSampleConfirmResult()); | |
1648 | + trackStageDO.setShippmentSampleConfirmResult(trackStageInfo.getShippmentSampleConfirmResult()); | |
1693 | 1649 | } |
1694 | 1650 | if (StringUtils.isNotBlank(trackStageInfo.getSelfTestPassTime())) { |
1695 | 1651 | trackStageDO.setSelfTestPassTime(trackStageInfo.getSelfTestPassTime()); |
... | ... | @@ -1698,22 +1654,14 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O |
1698 | 1654 | trackStageDO.setAitexTestSendTime(trackStageInfo.getAitexTestSendTime()); |
1699 | 1655 | } |
1700 | 1656 | if (StringUtils.isNotBlank(trackStageInfo.getAitexTestFinishResult())) { |
1701 | - if(!(trackStageInfo.getAitexTestFinishResult().equals(trackStageDO.getAitexTestFinishResult())) && | |
1702 | - StringUtils.isNotBlank(trackStageInfo.getAitexTestFinishResult())){ | |
1703 | - OrderOpinionLogDO orderOpinionLogDO =buildOrderOpinionLogDo(updateVO.getOrderId(),OrderOpinionLogEnum.ORDER_AITEX_TEST_FINISH_RESULT.getDesc(),trackStageInfo.getAitexTestFinishResult()); | |
1704 | - orderOpinionLogDOList.add(orderOpinionLogDO); | |
1705 | - } | |
1657 | + | |
1706 | 1658 | trackStageDO.setAitexTestFinishResult(trackStageInfo.getAitexTestFinishResult()); |
1707 | 1659 | } |
1708 | 1660 | if (StringUtils.isNotBlank(trackStageInfo.getSgsTestSendTime())) { |
1709 | 1661 | trackStageDO.setSgsTestSendTime(trackStageInfo.getSgsTestSendTime()); |
1710 | 1662 | } |
1711 | 1663 | if (StringUtils.isNotBlank(trackStageInfo.getSgsTestFinishResult())) { |
1712 | - if(!(trackStageInfo.getSgsTestFinishResult().equals(trackStageDO.getSgsTestFinishResult())) && | |
1713 | - StringUtils.isNotBlank(trackStageInfo.getSgsTestFinishResult())){ | |
1714 | - OrderOpinionLogDO orderOpinionLogDO =buildOrderOpinionLogDo(updateVO.getOrderId(),OrderOpinionLogEnum.ORDER_SGS_TEST_FINISH_RESULT.getDesc(),trackStageInfo.getSgsTestFinishResult()); | |
1715 | - orderOpinionLogDOList.add(orderOpinionLogDO); | |
1716 | - } | |
1664 | + | |
1717 | 1665 | trackStageDO.setSgsTestFinishResult(trackStageInfo.getSgsTestFinishResult()); |
1718 | 1666 | } |
1719 | 1667 | if (StringUtils.isNotBlank(trackStageInfo.getBarcodeStickerArrivalTime())) { |
... | ... | @@ -1825,7 +1773,6 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O |
1825 | 1773 | } |
1826 | 1774 | updateById(orderBaseInfoDo); |
1827 | 1775 | orderOptLogService.save(optLogDO); |
1828 | - orderOpinionLogService.saveBatch(orderOpinionLogDOList); | |
1829 | 1776 | return ServerResult.success(); |
1830 | 1777 | } |
1831 | 1778 | |
... | ... | @@ -2000,45 +1947,6 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O |
2000 | 1947 | * @param orderOpinionLogVO |
2001 | 1948 | * @return |
2002 | 1949 | */ |
2003 | - @Override | |
2004 | - public ServerResult passRate(OrderOpinionLogVO orderOpinionLogVO) { | |
2005 | - if(Objects.isNull(orderOpinionLogVO.getOrderId())){ | |
2006 | - return ServerResult.fail("OrderId 参数不能为空"); | |
2007 | - } | |
2008 | - LambdaQueryWrapper<OrderOpinionLogDO> orderOpinionWrapper = new LambdaQueryWrapper<OrderOpinionLogDO>() | |
2009 | - .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) | |
2010 | - .eq(OrderOpinionLogDO::getOrderId, orderOpinionLogVO.getOrderId()); | |
2011 | - if(!OrderOpinionLogEnum.ORDER_SGS_TEST_FINISH_RESULT.getDesc().equals(orderOpinionLogVO.getOpinionType()) && | |
2012 | - !OrderOpinionLogEnum.ORDER_AITEX_TEST_FINISH_RESULT.getDesc().equals(orderOpinionLogVO.getOpinionType())){ | |
2013 | - //不等于sgs和ailtex | |
2014 | - orderOpinionWrapper.eq(OrderOpinionLogDO::getOpinionType, orderOpinionLogVO.getOpinionType()); | |
2015 | - }else{ | |
2016 | - orderOpinionWrapper.and(wrapper -> | |
2017 | - wrapper.eq(OrderOpinionLogDO::getOpinionType, OrderOpinionLogEnum.ORDER_SGS_TEST_FINISH_RESULT.getDesc()) | |
2018 | - .or() | |
2019 | - .eq(OrderOpinionLogDO::getOpinionType, OrderOpinionLogEnum.ORDER_AITEX_TEST_FINISH_RESULT.getDesc()) | |
2020 | - ); | |
2021 | - } | |
2022 | - List<OrderOpinionLogDO> orderOpinionLogDOList = orderOpinionLogService.list(orderOpinionWrapper); | |
2023 | - if(CollectionUtils.isEmpty(orderOpinionLogDOList)){ | |
2024 | - return ServerResult.fail("订单跟单信息"+orderOpinionLogVO.getOpinionType()+"未填写"); | |
2025 | - } | |
2026 | - List<Integer> okCountList= new ArrayList(); | |
2027 | - List<Integer> FailCountList= new ArrayList(); | |
2028 | - orderOpinionLogDOList.stream().forEach(x->{ | |
2029 | - if (x.getField().contains("ok")){ | |
2030 | - okCountList.add(Constant.ONE); | |
2031 | - }else{ | |
2032 | - FailCountList.add(Constant.ZERO); | |
2033 | - } | |
2034 | - }); | |
2035 | - int sum=okCountList.size()+FailCountList.size(); | |
2036 | - double rate = ((double) okCountList.size() / sum)*Constant.HUNDRED; | |
2037 | - DecimalFormat decimalFormat = new DecimalFormat("0"); | |
2038 | - String resultrate = decimalFormat.format(rate); | |
2039 | - return ServerResult.success(resultrate+"%"); | |
2040 | - } | |
2041 | - | |
2042 | 1950 | |
2043 | 1951 | |
2044 | 1952 | ... | ... |
src/main/java/com/order/erp/service/order/impl/OrderFieldLockApplyServiceImpl.java
... | ... | @@ -72,9 +72,6 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl<OrderFieldLockAp |
72 | 72 | @Resource |
73 | 73 | private OrderInspectionStageService inspectionStageService; |
74 | 74 | |
75 | - @Resource | |
76 | - private InvoiceBillOrderService invoiceBillOrderService; | |
77 | - | |
78 | 75 | /** |
79 | 76 | * 通过ID查询单条数据 |
80 | 77 | * <p> |
... | ... | @@ -119,22 +116,19 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl<OrderFieldLockAp |
119 | 116 | BeanUtils.copyProperties(x, resultVO); |
120 | 117 | String fields = x.getFields(); |
121 | 118 | if (StringUtils.isNotBlank(fields)) { |
122 | - if (ApplyTypeEnum.FIELD_EDIT_APPLY.getType().equals(x.getType())) { | |
119 | + if (ApplyTypeEnum.FIELD_EDIT_APPLY.getType() == x.getType()) { | |
123 | 120 | resultVO.setFieldInfos(JSONObject.parseObject(fields, OrderLockFieldVO.class)); |
124 | 121 | } |
125 | - if (ApplyTypeEnum.ORDER_REPORT_APPLY.getType().equals(x.getType())) { | |
122 | + if (ApplyTypeEnum.ORDER_REPORT_APPLY.getType() == x.getType()) { | |
126 | 123 | OrderLockFieldVO fieldVO = new OrderLockFieldVO(); |
127 | 124 | fieldVO.setReportFields(JSONObject.parseObject(fields, OrderCompletionReportFieldVO.class)); |
128 | 125 | resultVO.setFieldInfos(fieldVO); |
129 | 126 | } |
130 | - if (ApplyTypeEnum.ORDER_PROFIT_APPLY.getType().equals(x.getType())) { | |
127 | + if (ApplyTypeEnum.ORDER_PROFIT_APPLY.getType() == x.getType()) { | |
131 | 128 | OrderLockFieldVO fieldVO = new OrderLockFieldVO(); |
132 | 129 | fieldVO.setProfitAnalysisFields(JSONObject.parseObject(fields, OrderProfitAnalysisFieldVO.class)); |
133 | 130 | resultVO.setFieldInfos(fieldVO); |
134 | 131 | } |
135 | - if (ApplyTypeEnum.INVOICE_BILL_APPLY.getType().equals(x.getType())) { | |
136 | - resultVO.setFieldInfos(JSONObject.parseObject(fields, OrderLockFieldVO.class)); | |
137 | - } | |
138 | 132 | } |
139 | 133 | return resultVO; |
140 | 134 | }).collect(Collectors.toList()); |
... | ... | @@ -342,7 +336,7 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl<OrderFieldLockAp |
342 | 336 | .in(CollectionUtils.isNotEmpty(orderIds), OrderFieldLockApplyDO::getOrderId, orderIds); |
343 | 337 | if (Objects.isNull(roleSelect)) { |
344 | 338 | queryWrapper.like(Objects.nonNull(roleEnum), OrderFieldLockApplyDO::getAuditRoleCodes, roleEnum.getCode()); |
345 | - } else { | |
339 | + }else { | |
346 | 340 | queryWrapper.eq(Objects.nonNull(roleSelect), OrderFieldLockApplyDO::getAuditRoleCodes, roleSelect.getCode()); |
347 | 341 | |
348 | 342 | } |
... | ... | @@ -401,13 +395,7 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl<OrderFieldLockAp |
401 | 395 | } else if (ApplyTypeEnum.ORDER_PROFIT_APPLY.getType().equals(applyDO.getType())) { |
402 | 396 | orderBaseInfoDO.setOrderStatus(OrderStatusEnum.PROFIT_AUDIT_REFUSE.getStatus()); |
403 | 397 | orderBaseInfoService.updateById(orderBaseInfoDO); |
404 | - } else if (ApplyTypeEnum.INVOICE_BILL_APPLY.getType().equals(applyDO.getType())) { | |
405 | - OrderLockFieldVO lockFieldVO = JSONObject.parseObject(applyDO.getFields(), OrderLockFieldVO.class); | |
406 | - InvoiceBillOrderDO invoiceBillOrderDO = lockFieldVO.getInvoiceBillOrderDO(); | |
407 | - invoiceBillOrderDO.setStatus(ApplyStatusEnum.AUDIT_REFUSE.getStatus()); | |
408 | - invoiceBillOrderService.updateById(invoiceBillOrderDO); | |
409 | 398 | } |
410 | - | |
411 | 399 | OrderAuditLogDO auditLogDO = OrderAuditLogDO.builder().applyId(applyDO.getId()).orderId(applyDO.getOrderId()).optType(ApplyStatusEnum.AUDIT_REFUSE.getDesc()).build(); |
412 | 400 | |
413 | 401 | applyService.updateById(applyDO); |
... | ... | @@ -528,11 +516,6 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl<OrderFieldLockAp |
528 | 516 | } |
529 | 517 | orderBaseInfoDO.setOrderStatus(OrderStatusEnum.PROFIT_AUDIT_PASS.getStatus()); |
530 | 518 | orderBaseInfoService.updateById(orderBaseInfoDO); |
531 | - } else if (ApplyTypeEnum.INVOICE_BILL_APPLY.getType().equals(applyDO.getType())) { | |
532 | - OrderLockFieldVO lockFieldVO = JSONObject.parseObject(applyDO.getFields(), OrderLockFieldVO.class); | |
533 | - InvoiceBillOrderDO invoiceBillOrderDO = lockFieldVO.getInvoiceBillOrderDO(); | |
534 | - invoiceBillOrderDO.setStatus(ApplyStatusEnum.AUDIT_PASS.getStatus()); | |
535 | - invoiceBillOrderService.updateById(invoiceBillOrderDO); | |
536 | 519 | } |
537 | 520 | |
538 | 521 | OrderAuditLogDO auditLogDO = OrderAuditLogDO.builder().applyId(applyDO.getId()).orderId(applyDO.getOrderId()).optType(ApplyStatusEnum.AUDIT_PASS.getDesc()).build(); | ... | ... |
src/main/resources/application-pre-prod.yml
... | ... | @@ -76,19 +76,15 @@ spring: |
76 | 76 | timeout: 2000 |
77 | 77 | mail: |
78 | 78 | # 配置 SMTP 服务器地址 |
79 | -# host: xxx | |
80 | - host: smtp.163.com | |
79 | + host: xxx | |
81 | 80 | # 发送者邮箱,已开通POP3/SMTP服务的邮箱,也就是你自己的 |
82 | -# username: xxxx | |
83 | - username: chenhang4442024@163.com | |
81 | + username: xxxx | |
84 | 82 | # 配置密码,注意不是真正的密码,而是刚刚申请到的授权码 |
85 | -# password: xxx | |
86 | - password: ACHWYJSXRITHTMGA | |
83 | + password: xxx | |
87 | 84 | # 邮件接收者 |
88 | 85 | mailRecipient: #邮件接收者邮箱 |
89 | 86 | # 端口号465或587(QQ邮箱发送邮件仅支持587端口协议) |
90 | -# port: 587 | |
91 | - port: 25 | |
87 | + port: 587 | |
92 | 88 | # 默认的邮件编码为UTF-8 |
93 | 89 | default-encoding: UTF-8 |
94 | 90 | # 配置SSL 加密工厂 | ... | ... |
src/main/resources/application-prod.yml
... | ... | @@ -76,21 +76,23 @@ spring: |
76 | 76 | timeout: 2000 |
77 | 77 | mail: |
78 | 78 | # 配置 SMTP 服务器地址 |
79 | - host: xxx | |
79 | + host: smtp.163.com | |
80 | 80 | # 发送者邮箱,已开通POP3/SMTP服务的邮箱,也就是你自己的 |
81 | - username: xxxx | |
81 | + username: chenhang4442024@163.com | |
82 | 82 | # 配置密码,注意不是真正的密码,而是刚刚申请到的授权码 |
83 | - password: xxx | |
83 | + password: ACHWYJSXRITHTMGA | |
84 | 84 | # 邮件接收者 |
85 | 85 | mailRecipient: #邮件接收者邮箱 |
86 | 86 | # 端口号465或587(QQ邮箱发送邮件仅支持587端口协议) |
87 | - port: 587 | |
87 | + port: 465 | |
88 | 88 | # 默认的邮件编码为UTF-8 |
89 | 89 | default-encoding: UTF-8 |
90 | 90 | # 配置SSL 加密工厂 |
91 | 91 | properties: |
92 | 92 | mail: |
93 | 93 | smtp: |
94 | + ssl: | |
95 | + enable: true | |
94 | 96 | socketFactoryClass: javax.net.ssl.SSLSocketFactory |
95 | 97 | #表示开启 DEBUG 模式,这样,邮件发送过程的日志会在控制台打印出来,方便排查错误 |
96 | 98 | debug: true | ... | ... |