Commit 8d9b8e04dbead41527df67fb6ca0e30c738ac77f

Authored by chenhang4442024
1 parent 17ee2dd5

feat:防止没有给生产科配置邮箱产生空指针异常

... ... @@ -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
... ... @@ -13,8 +13,6 @@ import lombok.Getter;
13 13 @AllArgsConstructor
14 14 public enum ApplyStatusEnum {
15 15  
16   - NO_COMMIT(-1, "未提交审核"),
17   -
18 16 WAIT_AUDIT(0, "待审批"),
19 17  
20 18 AUDIT_PASS(10, "已通过"),
... ...
src/main/java/com/order/erp/domain/ApplyTypeEnum.java
... ... @@ -18,10 +18,6 @@ public enum ApplyTypeEnum {
18 18 ORDER_PROFIT_APPLY(10, "利润分析申请"),
19 19  
20 20 ORDER_REPORT_APPLY(20, "项目报告书申请"),
21   -
22   - INVOICE_BILL_APPLY(30, "应收账单申请"),
23   -
24   - CHECK_BILL_APPLY(40, "应付账单申请"),
25 21 ;
26 22 private Integer type;
27 23  
... ...
src/main/java/com/order/erp/domain/vo/order/OrderBaseInfoVO.java
... ... @@ -117,4 +117,4 @@ public class OrderBaseInfoVO implements Serializable {
117 117 */
118 118 private String businessPerson;
119 119  
120 120 -}
  121 +}
121 122 \ No newline at end of file
... ...
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&lt;OrderBaseInfoDO&gt; {
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&lt;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&lt;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&lt;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&lt;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&lt;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&lt;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&lt;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&lt;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&lt;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&lt;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&lt;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&lt;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&lt;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&lt;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&lt;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&lt;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
... ...