优化销售订单审核功能

This commit is contained in:
Mrking 2024-10-21 00:04:13 +08:00
parent e9a5400423
commit fd67533544
2 changed files with 66 additions and 24 deletions

View File

@ -66,12 +66,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.google.common.collect.Maps;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotNull;
import java.io.File;
@ -81,10 +84,7 @@ import java.io.InputStream;
import java.math.BigDecimal;
import java.time.Duration;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
@ -100,22 +100,45 @@ import static cn.hangtag.module.oms.enums.ErrorCodeConstants.SALE_ORDER_NOT_EXIS
@Service
@Validated
@Slf4j
@AllArgsConstructor
//@AllArgsConstructor
public class SaleOrderServiceImpl implements SaleOrderService {
@Resource
private SaleOrderMapper saleOrderMapper;
@Resource
private SaleContractMapper saleContractMapper;
@Resource
private SaleOrderEntryMapper saleOrderEntryMapper;
@Resource
private SaleOrderSkuMapper skuOrderSkuMapper;
@Resource
private ProduceOrderService produceOrderService;
@Resource
private ProductInfoService productInfoService;
@Resource
private SaleContractService saleContractService;
@Resource
private CustomerService customerService;
@Resource
private CustomerMapper customerMapper;
@Resource
private ProductPriceService productPriceService;
@Resource
private TemplateEngine templateEngine;
@Resource
private MailSendService mailSendService;
private MailAccountService mailAccountService;
@Value("${oms.partyb}")
private String partyb;
@Value("${oms.partybAddress}")
private String partybAddress;
@Value("${pdfPath}")
private String pdfPath;
@Override
@ -303,7 +326,7 @@ public class SaleOrderServiceImpl implements SaleOrderService {
Long saleContractId = generateSaleContract(saleOrder,entrys);
String htmlContent = generateHtmlContent(saleContractId);
String fileName = StrUtil.format("C:\\Users\\Admin\\Desktop\\1111111\\test\\test_{}",
String fileName = StrUtil.format(pdfPath+"\\销售合约_{}",
new Date().getTime());
String templatePath = fileName + ".html";
@ -312,13 +335,15 @@ public class SaleOrderServiceImpl implements SaleOrderService {
WKHtmlToPdfUtil.convert(templatePath, pdfPath);
//发送消息
MailSendMessage message = new MailSendMessage();
message.setAccountId(1L);
message.setMail("wx782276617@foxmail.com");
message.setTitle("OMS订单系统");
message.setContent("您好,您的订单:"+saleOrder.getBillno()+",已审核通过!");
mailSendService.doSendMail(message,new File(pdfPath));
//mailSendService.doSendMail(message);
String emails = saleOrder.getEmails();
if(StringUtils.isNotBlank(emails)){
MailSendMessage message = new MailSendMessage();
message.setAccountId(1L);
message.setMail(emails);
message.setTitle("OMS订单系统");
message.setContent("您好,您的订单:"+saleOrder.getBillno()+",已审核通过!");
mailSendService.doSendMail(message,new File(pdfPath));
}
}
}
break;
@ -374,8 +399,8 @@ public class SaleOrderServiceImpl implements SaleOrderService {
context.setVariable("bizDate", DateUtil.date(saleContract.getBizdate()).toDateStr());
context.setVariable("customerNo", customer.getNumber());
context.setVariable("headUserName", saleContract.getHead());
context.setVariable("partyBCompany", "乙方公司");
context.setVariable("partyBAddress", "乙方地址XXXXXXXXXXX");
context.setVariable("partyBCompany", partyb);
context.setVariable("partyBAddress", partybAddress);
context.setVariable("phone", saleContract.getPhone());
context.setVariable("fax", saleContract.getFax());
context.setVariable("clerk", saleContract.getClerk());
@ -390,7 +415,10 @@ public class SaleOrderServiceImpl implements SaleOrderService {
String code = productInfo.getCode();
String name = productInfo.getName();
String details = productInfo.getDetails();
Double specSizeHeight = productInfo.getSpecSizeHeight();
Double specSizeWidth = productInfo.getSpecSizeWidth();
Double specSizeThk = productInfo.getSpecSizeThk();
String spec = specSizeHeight.doubleValue() + " * " + specSizeWidth + " " + specSizeThk;
int j = i+1;
context.setVariable("item"+j, j+"");
context.setVariable("explain"+j, code);
@ -401,7 +429,7 @@ public class SaleOrderServiceImpl implements SaleOrderService {
context.setVariable("deliverydate"+j, DateUtil.date(saleContractEntryDO.getDeliveryDate()).toDateStr());
context.setVariable("explain"+j+"1", name);
context.setVariable("explain"+j+"2", details);
context.setVariable("explain"+j+"3", "");
context.setVariable("explain"+j+"3", spec);
}
return templateEngine.process("pdf_template", context);
}
@ -741,12 +769,11 @@ public class SaleOrderServiceImpl implements SaleOrderService {
saveReqVO.setCustomerName(customer.getName());
saveReqVO.setCustomerBuyNo(saleOrder.getBillno());
saveReqVO.setBizdate(saleOrder.getBizdate());
saveReqVO.setPartyA("XXXXXXXXXXXXXXXXX");
saveReqVO.setPartyB(customer.getCompany());
saveReqVO.setPartyA(customer.getCompany());
saveReqVO.setHead(customer.getGdperson());
saveReqVO.setClerk(customer.getSaleperson());
saveReqVO.setPhone(customer.getPhone());
saveReqVO.setFax(null);
saveReqVO.setFax(saleOrder.getFax());
saveReqVO.setAmount(saleOrder.getOrderAmount());
saveReqVO.setAddress(saleOrder.getDeliveryAddress());

View File

@ -14,11 +14,15 @@ import cn.hangtag.module.system.service.member.MemberService;
import cn.hangtag.module.system.service.user.AdminUserService;
import com.google.common.annotations.VisibleForTesting;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import static cn.hangtag.framework.common.exception.util.ServiceExceptionUtil.exception;
@ -108,8 +112,19 @@ public class MailSendServiceImpl implements MailSendService {
MailAccount mailAccount = buildMailAccount(account, message.getNickname());
// 2. 发送邮件
try {
String messageId = MailUtil.send(mailAccount, message.getMail(),
message.getTitle(), message.getContent(), true,files);
String messageId = null;
List<String> mails = new ArrayList<>();
String mail = message.getMail();
if(StringUtils.isNotBlank(mail) && mail.contains(";")){
mails = Arrays.asList(mail.split(";"));
}
if(mails!=null && mails.size()>0){
messageId = MailUtil.send(mailAccount, mails,
message.getTitle(), message.getContent(), true,files);
}else {
messageId = MailUtil.send(mailAccount, message.getMail(),
message.getTitle(), message.getContent(), true,files);
}
// 3. 更新结果成功
mailLogService.updateMailSendResult(message.getLogId(), messageId, null);
} catch (Exception e) {