Commit 25b987bee27ab797a775548a43a0488019a4486d

Authored by chenhang4442024
1 parent 92856c5f

1.针对A01客户的过期时间单独设置,并且无论填没填都会发送邮件

2.针对修改数量后,价格没有发送变化。
src/main/java/com/order/erp/domain/EmailTemplateEnum.java
@@ -15,7 +15,7 @@ public enum EmailTemplateEnum { @@ -15,7 +15,7 @@ public enum EmailTemplateEnum {
15 15
16 CONFIRM_SAMPLE_TEMPLATE("确认样确认状态", "您收到此邮件是因为您未能在规定的期限内完成以下货号的确认样确认,请尽快完成", 1L), 16 CONFIRM_SAMPLE_TEMPLATE("确认样确认状态", "您收到此邮件是因为您未能在规定的期限内完成以下货号的确认样确认,请尽快完成", 1L),
17 17
18 - OTHER_SAMPLE_TEMPLATE("其他要求样品发送日期", "您收到此邮件是因为您未能在规定的期限内完成以下货号的其他要求样品的发送,请尽快完成", 2L), 18 + OTHER_SAMPLE_TEMPLATE("EXTRA,SHOWROOM,ONLINE sample发送日期", "您收到此邮件是因为您未能在规定的期限内完成以下货号的EXTRA,SHOWROOM,ONLINE sample的发送,请尽快完成", 2L),
19 19
20 BIG_SAMPLE_TEMPLATE("大货样确认状态", "您收到此邮件是因为您未能在规定的期限内完成以下货号的大货样确认,请尽快完成", 3L), 20 BIG_SAMPLE_TEMPLATE("大货样确认状态", "您收到此邮件是因为您未能在规定的期限内完成以下货号的大货样确认,请尽快完成", 3L),
21 21
src/main/java/com/order/erp/job/OrderOverTimeEventJob.java
@@ -77,7 +77,6 @@ public class OrderOverTimeEventJob { @@ -77,7 +77,6 @@ public class OrderOverTimeEventJob {
77 */ 77 */
78 78
79 @Scheduled(cron = "0 0 5 * * ?") 79 @Scheduled(cron = "0 0 5 * * ?")
80 -  
81 //存储的日期都必须为yyyy-MM-dd HH:mm:ss。 80 //存储的日期都必须为yyyy-MM-dd HH:mm:ss。
82 public void checkOverTimeExecuteV2() { 81 public void checkOverTimeExecuteV2() {
83 List<OrderBaseInfoDO> orderBaseInfoDOList = orderBaseInfoService.getEventList(); 82 List<OrderBaseInfoDO> orderBaseInfoDOList = orderBaseInfoService.getEventList();
@@ -421,9 +420,28 @@ public class OrderOverTimeEventJob { @@ -421,9 +420,28 @@ public class OrderOverTimeEventJob {
421 String orderHodTime = eventJobVO.getBaseInfo().getOrderHodTime(); 420 String orderHodTime = eventJobVO.getBaseInfo().getOrderHodTime();
422 LocalDate today = LocalDate.now(); 421 LocalDate today = LocalDate.now();
423 LocalDate localDate = DateUtils.parseDate(orderHodTime); 422 LocalDate localDate = DateUtils.parseDate(orderHodTime);
  423 + //对于A01的订单,最晚订舱日期要为12天或者6天,海运为12天,空运为6天,其他的订单为10天。 对于A01来说,不管你填写没有,也要提醒,即使你填写了,也要提醒。
  424 + if(eventJobVO.getBaseInfo().getCustomerCode().contains("A01")){
  425 + //海运
  426 + if("SEA".equals(eventJobVO.getBaseInfo().getOutboundType())){
  427 + if(Constant.FOURTEEN ==(int) ChronoUnit.DAYS.between(today, localDate)){
  428 + return true;
  429 + }
  430 + }
  431 + else if("AIR".equals(eventJobVO.getBaseInfo().getOutboundType())){
  432 + if(Constant.SEVEN ==(int) ChronoUnit.DAYS.between(today, localDate)){
  433 + return true;
  434 + }
  435 + }else{
  436 + if(Constant.ENABLE_TEN ==(int) ChronoUnit.DAYS.between(today, localDate)){
  437 + return true;
  438 + }
  439 + }
  440 + }else{
424 if ( Constant.ENABLE_TEN ==(int) ChronoUnit.DAYS.between(today, localDate) && StringUtils.isBlank(eventJobVO.getTrackStageInfo().getLatestBkTime())) { 441 if ( Constant.ENABLE_TEN ==(int) ChronoUnit.DAYS.between(today, localDate) && StringUtils.isBlank(eventJobVO.getTrackStageInfo().getLatestBkTime())) {
425 return true; 442 return true;
426 } 443 }
  444 + }
427 return false; 445 return false;
428 } 446 }
429 447
src/main/java/com/order/erp/service/order/OrderBaseInfoService.java
@@ -117,7 +117,7 @@ public interface OrderBaseInfoService extends IService&lt;OrderBaseInfoDO&gt; { @@ -117,7 +117,7 @@ public interface OrderBaseInfoService extends IService&lt;OrderBaseInfoDO&gt; {
117 117
118 long countRecentYear(); 118 long countRecentYear();
119 119
120 - ServerResult checkChargeOrderCount(List<Long> orderIds); 120 + ServerResult checkChargeOrderCount(OrderBaseInfoVO baseInfoVO);
121 121
122 List<OrderBaseInfoDO> getEventList(); 122 List<OrderBaseInfoDO> getEventList();
123 123
src/main/java/com/order/erp/service/order/impl/OrderBaseInfoServiceImpl.java
@@ -59,6 +59,7 @@ import java.time.LocalDate; @@ -59,6 +59,7 @@ import java.time.LocalDate;
59 import java.time.LocalDateTime; 59 import java.time.LocalDateTime;
60 import java.time.Month; 60 import java.time.Month;
61 import java.util.*; 61 import java.util.*;
  62 +import java.util.concurrent.TimeUnit;
62 import java.util.function.Function; 63 import java.util.function.Function;
63 import java.util.stream.Collectors; 64 import java.util.stream.Collectors;
64 65
@@ -128,7 +129,8 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O @@ -128,7 +129,8 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
128 129
129 @Resource 130 @Resource
130 private OrderOpinionLogService orderOpinionLogService; 131 private OrderOpinionLogService orderOpinionLogService;
131 - 132 + @Resource
  133 + private RedisUtils redisUtils;
132 @Resource 134 @Resource
133 private EasyPdfUtils pdfUtils; 135 private EasyPdfUtils pdfUtils;
134 136
@@ -1728,7 +1730,8 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O @@ -1728,7 +1730,8 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
1728 StringBuilder stringBuilder = new StringBuilder(productionComment); 1730 StringBuilder stringBuilder = new StringBuilder(productionComment);
1729 stringBuilder.append("\n").append(date + ":" + resultText); 1731 stringBuilder.append("\n").append(date + ":" + resultText);
1730 orderBaseInfoDo.setProductionComment(stringBuilder.toString()); 1732 orderBaseInfoDo.setProductionComment(stringBuilder.toString());
1731 - sendProductionCommentEmail(orderBaseInfoDo, stringBuilder.toString()); 1733 +// sendProductionCommentEmail(orderBaseInfoDo, stringBuilder.toString());
  1734 + setEmailSendUtilsRedis(orderBaseInfoDo,resultText,stringBuilder.toString());
1732 1735
1733 } 1736 }
1734 trackStageDO.setPpConfirmResult(trackStageInfo.getPpConfirmResult()); 1737 trackStageDO.setPpConfirmResult(trackStageInfo.getPpConfirmResult());
@@ -1752,7 +1755,8 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O @@ -1752,7 +1755,8 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
1752 StringBuilder stringBuilder = new StringBuilder(productionComment); 1755 StringBuilder stringBuilder = new StringBuilder(productionComment);
1753 stringBuilder.append("\n").append(date + ": " + resultText); 1756 stringBuilder.append("\n").append(date + ": " + resultText);
1754 orderBaseInfoDo.setProductionComment(stringBuilder.toString()); 1757 orderBaseInfoDo.setProductionComment(stringBuilder.toString());
1755 - sendProductionCommentEmail(orderBaseInfoDo, stringBuilder.toString()); 1758 +// sendProductionCommentEmail(orderBaseInfoDo, stringBuilder.toString());
  1759 + setEmailSendUtilsRedis(orderBaseInfoDo,resultText,stringBuilder.toString());
1756 } 1760 }
1757 trackStageDO.setShippmentSampleConfirmResult(trackStageInfo.getShippmentSampleConfirmResult()); 1761 trackStageDO.setShippmentSampleConfirmResult(trackStageInfo.getShippmentSampleConfirmResult());
1758 } 1762 }
@@ -1775,7 +1779,8 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O @@ -1775,7 +1779,8 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
1775 StringBuilder stringBuilder = new StringBuilder(productionComment); 1779 StringBuilder stringBuilder = new StringBuilder(productionComment);
1776 stringBuilder.append("\n").append(date + ": " + resultText); 1780 stringBuilder.append("\n").append(date + ": " + resultText);
1777 orderBaseInfoDo.setProductionComment(stringBuilder.toString()); 1781 orderBaseInfoDo.setProductionComment(stringBuilder.toString());
1778 - sendProductionCommentEmail(orderBaseInfoDo, stringBuilder.toString()); 1782 +// sendProductionCommentEmail(orderBaseInfoDo, stringBuilder.toString());
  1783 + setEmailSendUtilsRedis(orderBaseInfoDo,resultText,stringBuilder.toString());
1779 } 1784 }
1780 trackStageDO.setAitexTestFinishResult(trackStageInfo.getAitexTestFinishResult()); 1785 trackStageDO.setAitexTestFinishResult(trackStageInfo.getAitexTestFinishResult());
1781 } 1786 }
@@ -1795,7 +1800,8 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O @@ -1795,7 +1800,8 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
1795 StringBuilder stringBuilder = new StringBuilder(productionComment); 1800 StringBuilder stringBuilder = new StringBuilder(productionComment);
1796 stringBuilder.append("\n").append(date + ": " + resultText); 1801 stringBuilder.append("\n").append(date + ": " + resultText);
1797 orderBaseInfoDo.setProductionComment(stringBuilder.toString()); 1802 orderBaseInfoDo.setProductionComment(stringBuilder.toString());
1798 - sendProductionCommentEmail(orderBaseInfoDo, stringBuilder.toString()); 1803 +// sendProductionCommentEmail(orderBaseInfoDo, stringBuilder.toString());
  1804 + setEmailSendUtilsRedis(orderBaseInfoDo,resultText,stringBuilder.toString());
1799 } 1805 }
1800 1806
1801 trackStageDO.setSgsTestFinishResult(trackStageInfo.getSgsTestFinishResult()); 1807 trackStageDO.setSgsTestFinishResult(trackStageInfo.getSgsTestFinishResult());
@@ -1841,7 +1847,8 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O @@ -1841,7 +1847,8 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
1841 StringBuilder stringBuilder = new StringBuilder(productionComment); 1847 StringBuilder stringBuilder = new StringBuilder(productionComment);
1842 stringBuilder.append("\n").append(date+": "+resultText); 1848 stringBuilder.append("\n").append(date+": "+resultText);
1843 orderBaseInfoDo.setProductionComment(stringBuilder.toString()); 1849 orderBaseInfoDo.setProductionComment(stringBuilder.toString());
1844 - sendProductionCommentEmail(orderBaseInfoDo,stringBuilder.toString()); 1850 +// sendProductionCommentEmail(orderBaseInfoDo,stringBuilder.toString());
  1851 + setEmailSendUtilsRedis(orderBaseInfoDo,resultText,stringBuilder.toString());
1845 } 1852 }
1846 if(StringUtils.isNotBlank(updateVO.getTrackStageInfo().getShippmentSampleConfirmResult())) { 1853 if(StringUtils.isNotBlank(updateVO.getTrackStageInfo().getShippmentSampleConfirmResult())) {
1847 String resultText = updateVO.getTrackStageInfo().getShippmentSampleConfirmResult().contains("ok") 1854 String resultText = updateVO.getTrackStageInfo().getShippmentSampleConfirmResult().contains("ok")
@@ -1854,7 +1861,8 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O @@ -1854,7 +1861,8 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
1854 StringBuilder stringBuilder = new StringBuilder(productionComment); 1861 StringBuilder stringBuilder = new StringBuilder(productionComment);
1855 stringBuilder.append("\n").append(date+": "+resultText); 1862 stringBuilder.append("\n").append(date+": "+resultText);
1856 orderBaseInfoDo.setProductionComment(stringBuilder.toString()); 1863 orderBaseInfoDo.setProductionComment(stringBuilder.toString());
1857 - sendProductionCommentEmail(orderBaseInfoDo,stringBuilder.toString()); 1864 +// sendProductionCommentEmail(orderBaseInfoDo,stringBuilder.toString());
  1865 + setEmailSendUtilsRedis(orderBaseInfoDo,resultText,stringBuilder.toString());
1858 } 1866 }
1859 if(StringUtils.isNotBlank(updateVO.getTrackStageInfo().getAitexTestFinishResult())){ 1867 if(StringUtils.isNotBlank(updateVO.getTrackStageInfo().getAitexTestFinishResult())){
1860 String resultText =updateVO.getTrackStageInfo().getAitexTestFinishResult().contains("ok") 1868 String resultText =updateVO.getTrackStageInfo().getAitexTestFinishResult().contains("ok")
@@ -1867,7 +1875,8 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O @@ -1867,7 +1875,8 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
1867 StringBuilder stringBuilder = new StringBuilder(productionComment); 1875 StringBuilder stringBuilder = new StringBuilder(productionComment);
1868 stringBuilder.append("\n").append(date+": "+resultText); 1876 stringBuilder.append("\n").append(date+": "+resultText);
1869 orderBaseInfoDo.setProductionComment(stringBuilder.toString()); 1877 orderBaseInfoDo.setProductionComment(stringBuilder.toString());
1870 - sendProductionCommentEmail(orderBaseInfoDo,stringBuilder.toString()); 1878 +// sendProductionCommentEmail(orderBaseInfoDo,stringBuilder.toString());
  1879 + setEmailSendUtilsRedis(orderBaseInfoDo,resultText,stringBuilder.toString());
1871 } 1880 }
1872 if(StringUtils.isNotBlank(updateVO.getTrackStageInfo().getSgsTestFinishResult())){ 1881 if(StringUtils.isNotBlank(updateVO.getTrackStageInfo().getSgsTestFinishResult())){
1873 String resultText = updateVO.getTrackStageInfo().getSgsTestFinishResult().contains("ok") 1882 String resultText = updateVO.getTrackStageInfo().getSgsTestFinishResult().contains("ok")
@@ -1880,7 +1889,8 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O @@ -1880,7 +1889,8 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
1880 StringBuilder stringBuilder = new StringBuilder(productionComment); 1889 StringBuilder stringBuilder = new StringBuilder(productionComment);
1881 stringBuilder.append("\n").append(date+": "+resultText); 1890 stringBuilder.append("\n").append(date+": "+resultText);
1882 orderBaseInfoDo.setProductionComment(stringBuilder.toString()); 1891 orderBaseInfoDo.setProductionComment(stringBuilder.toString());
1883 - sendProductionCommentEmail(orderBaseInfoDo,stringBuilder.toString()); 1892 +// sendProductionCommentEmail(orderBaseInfoDo,stringBuilder.toString());
  1893 + setEmailSendUtilsRedis(orderBaseInfoDo,resultText,stringBuilder.toString());
1884 } 1894 }
1885 } 1895 }
1886 orderBaseInfoDo.setOrderStatus(OrderStatusEnum.TRACK_ING.getStatus()); 1896 orderBaseInfoDo.setOrderStatus(OrderStatusEnum.TRACK_ING.getStatus());
@@ -1970,7 +1980,13 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O @@ -1970,7 +1980,13 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
1970 orderOpinionLogService.saveBatch(orderOpinionLogDOList); 1980 orderOpinionLogService.saveBatch(orderOpinionLogDOList);
1971 return ServerResult.success(); 1981 return ServerResult.success();
1972 } 1982 }
1973 - 1983 +//这个方法的作用就是:她们反应对于内部编号相同的订单,就不需要发送四个测试结果的产品意见信息,不然创建一个订单就发送四个测试结果,太麻烦了,所以这里根据项目号和测试结果进行区分。
  1984 + public void setEmailSendUtilsRedis(OrderBaseInfoDO orderBaseInfoDo,String resultText,String productionComment){
  1985 + if(!redisUtils.hasKey(orderBaseInfoDo.getInnerNo()+Constant.CROSS_BAR_CHARACTER+resultText)){
  1986 + sendProductionCommentEmail(orderBaseInfoDo,productionComment);
  1987 + redisUtils.set(orderBaseInfoDo.getInnerNo()+Constant.CROSS_BAR_CHARACTER+resultText, "1", 90, TimeUnit.DAYS);
  1988 + }
  1989 + }
1974 /** 1990 /**
1975 * @param orderId 1991 * @param orderId
1976 * @param userId 1992 * @param userId
@@ -2053,7 +2069,7 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O @@ -2053,7 +2069,7 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
2053 } 2069 }
2054 if (Objects.nonNull(baseInfoVO.getOrderCount())) { 2070 if (Objects.nonNull(baseInfoVO.getOrderCount())) {
2055 baseInfoDO.setOrderCount(baseInfoVO.getOrderCount()); 2071 baseInfoDO.setOrderCount(baseInfoVO.getOrderCount());
2056 - checkChargeOrderCount(Arrays.asList(baseInfoVO.getId())); 2072 + checkChargeOrderCount(baseInfoVO);
2057 } 2073 }
2058 if (StringUtils.isNotBlank(baseInfoVO.getOrderComposition())) { 2074 if (StringUtils.isNotBlank(baseInfoVO.getOrderComposition())) {
2059 baseInfoDO.setOrderComposition(baseInfoVO.getOrderComposition()); 2075 baseInfoDO.setOrderComposition(baseInfoVO.getOrderComposition());
@@ -2254,10 +2270,10 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O @@ -2254,10 +2270,10 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
2254 2270
2255 2271
2256 @Override 2272 @Override
2257 - public ServerResult checkChargeOrderCount(List<Long> ids) { 2273 + public ServerResult checkChargeOrderCount(OrderBaseInfoVO baseInfoVO) {
2258 LambdaQueryWrapper<OrderBaseInfoDO> queryWrapper = new LambdaQueryWrapper<OrderBaseInfoDO>() 2274 LambdaQueryWrapper<OrderBaseInfoDO> queryWrapper = new LambdaQueryWrapper<OrderBaseInfoDO>()
2259 .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) 2275 .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
2260 - .in(CollectionUtils.isNotEmpty(ids), OrderBaseInfoDO::getId, ids) 2276 + .in(CollectionUtils.isNotEmpty(Arrays.asList(baseInfoVO.getId())), OrderBaseInfoDO::getId, Arrays.asList(baseInfoVO.getId()))
2261 .ne(OrderBaseInfoDO::getOrderStatus, OrderStatusEnum.ORDER_FINISH.getStatus()); 2277 .ne(OrderBaseInfoDO::getOrderStatus, OrderStatusEnum.ORDER_FINISH.getStatus());
2262 List<OrderBaseInfoDO> ordersDOS = list(queryWrapper); 2278 List<OrderBaseInfoDO> ordersDOS = list(queryWrapper);
2263 2279
@@ -2277,7 +2293,7 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O @@ -2277,7 +2293,7 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
2277 for (OrderInfoResultVO resultVO : orderInfoResultVOS) { 2293 for (OrderInfoResultVO resultVO : orderInfoResultVOS) {
2278 if (profitAnalysisDOMap.containsKey(resultVO.getId())) { 2294 if (profitAnalysisDOMap.containsKey(resultVO.getId())) {
2279 OrderProfitAnalysisDO profitAnalysisDO = profitAnalysisDOMap.get(resultVO.getId()); 2295 OrderProfitAnalysisDO profitAnalysisDO = profitAnalysisDOMap.get(resultVO.getId());
2280 - Integer orderCount = resultVO.getOrderCount(); 2296 + Integer orderCount = baseInfoVO.getOrderCount();
2281 BigDecimal customerTotalPrice = new BigDecimal(profitAnalysisDO.getCustomerTotalPrice()).setScale(Constant.TWO, RoundingMode.HALF_UP); 2297 BigDecimal customerTotalPrice = new BigDecimal(profitAnalysisDO.getCustomerTotalPrice()).setScale(Constant.TWO, RoundingMode.HALF_UP);
2282 BigDecimal customerPrice = new BigDecimal(profitAnalysisDO.getCustomerPrice()).setScale(Constant.TWO, RoundingMode.HALF_UP); 2298 BigDecimal customerPrice = new BigDecimal(profitAnalysisDO.getCustomerPrice()).setScale(Constant.TWO, RoundingMode.HALF_UP);
2283 2299