邮件发送
This commit is contained in:
parent
e828e089a6
commit
30704ab9bb
|
@ -103,7 +103,7 @@ public class SendEmailServiceImpl extends BaseService<SendEmailEntity, String> i
|
|||
}
|
||||
if(ids != null && ids.size() > 0){
|
||||
SendEmailEntity fileEntity = new SendEmailEntity();
|
||||
fileEntity.setDataSourceCode("SW-OA");
|
||||
fileEntity.setDataSourceCode("HT-OA");
|
||||
fileEntity.setId(mainData.getString("field0040"));
|
||||
files = sendEmailDao.queryFileList(fileEntity);
|
||||
}
|
||||
|
@ -227,8 +227,150 @@ public class SendEmailServiceImpl extends BaseService<SendEmailEntity, String> i
|
|||
* @Date 6:12 下午 2025/6/27
|
||||
**/
|
||||
private String getSendData(JSONObject mainData, JSONArray detailArray) throws ParseException {
|
||||
JSONObject sendData = new JSONObject();
|
||||
sendData.put("buyerName", mainData.getString("field0092"));//购方名称
|
||||
StringBuffer sb = new StringBuffer();
|
||||
|
||||
// 拼接主容器div
|
||||
sb.append("<div style=\"max-width: 1100px; margin: 0 auto; background-color: #fff; padding: 35px; box-shadow: 0 2px 10px rgba(0,0,0,0.08); border-radius: 6px;\">");
|
||||
|
||||
// 拼接标题区域
|
||||
sb.append(" <div style=\"text-align: center; margin-bottom: 30px; padding-bottom: 15px; border-bottom: 2px solid #34495e;\">");
|
||||
sb.append(" <h2 style=\"font-size: 26px; color: #2c3e50; letter-spacing: 2px; margin: 0; font-family: 'Microsoft YaHei', 'SimSun', sans-serif;\">"+mainData.getOrDefault("field0016","")+"采购单</h2>");
|
||||
sb.append(" </div>");
|
||||
sb.append("");
|
||||
|
||||
// 拼接基础信息区域
|
||||
sb.append(" <div style=\"display: flex; margin-bottom: 18px; line-height: 1.6; font-family: 'Microsoft YaHei', 'SimSun', sans-serif;\">");
|
||||
sb.append(" <div style=\"flex: 1; display: flex;\">");
|
||||
sb.append(" <span style=\"font-weight: 600; color: #34495e; min-width: 110px;\">申请日期:</span>");
|
||||
sb.append(" <span style=\"color: #2c3e50; padding-left: 8px; border-bottom: 1px dashed #d1d1d1; flex: 1;\">"+mainData.getOrDefault("field0004","")+"</span>");
|
||||
sb.append(" </div>");
|
||||
sb.append(" <div style=\"flex: 1; display: flex;\">");
|
||||
sb.append(" <span style=\"font-weight: 600; color: #34495e; min-width: 110px;\">单据编号:</span>");
|
||||
sb.append(" <span style=\"color: #2c3e50; padding-left: 8px; border-bottom: 1px dashed #d1d1d1; flex: 1;\">"+mainData.getOrDefault("field0001","")+"</span>");
|
||||
sb.append(" </div>");
|
||||
sb.append(" </div>");
|
||||
sb.append("");
|
||||
|
||||
sb.append(" <div style=\"display: flex; margin-bottom: 18px; line-height: 1.6; font-family: 'Microsoft YaHei', 'SimSun', sans-serif;\">");
|
||||
sb.append(" <div style=\"flex: 1; display: flex;\">");
|
||||
sb.append(" <span style=\"font-weight: 600; color: #34495e; min-width: 110px;\">供应商名称:</span>");
|
||||
sb.append(" <span style=\"color: #2c3e50; padding-left: 8px; border-bottom: 1px dashed #d1d1d1; flex: 1;\">"+mainData.getOrDefault("field0016","")+"</span>");
|
||||
sb.append(" </div>");
|
||||
sb.append(" <div style=\"flex: 1; display: flex;\">");
|
||||
sb.append(" <span style=\"font-weight: 600; color: #34495e; min-width: 110px;\">供应商邮箱:</span>");
|
||||
sb.append(" <span style=\"color: #2c3e50; padding-left: 8px; border-bottom: 1px dashed #d1d1d1; flex: 1;\">"+mainData.getOrDefault("field0034","")+"</span>");
|
||||
sb.append(" </div>");
|
||||
sb.append(" </div>");
|
||||
sb.append("");
|
||||
|
||||
sb.append(" <div style=\"display: flex; margin-bottom: 18px; line-height: 1.6; font-family: 'Microsoft YaHei', 'SimSun', sans-serif;\">");
|
||||
sb.append(" <div style=\"flex: 1; display: flex;\">");
|
||||
sb.append(" <span style=\"font-weight: 600; color: #34495e; min-width: 110px;\">联系人:</span>");
|
||||
sb.append(" <span style=\"color: #2c3e50; padding-left: 8px; border-bottom: 1px dashed #d1d1d1; flex: 1;\">"+mainData.getOrDefault("field0020","")+"</span>");
|
||||
sb.append(" </div>");
|
||||
sb.append(" <div style=\"flex: 1; display: flex;\">");
|
||||
sb.append(" <span style=\"font-weight: 600; color: #34495e; min-width: 110px;\">联系人电话:</span>");
|
||||
sb.append(" <span style=\"color: #2c3e50; padding-left: 8px; border-bottom: 1px dashed #d1d1d1; flex: 1;\">"+mainData.getOrDefault("field0021","")+"</span>");
|
||||
sb.append(" </div>");
|
||||
sb.append(" </div>");
|
||||
sb.append("");
|
||||
|
||||
sb.append(" <div style=\"display: flex; margin-bottom: 18px; line-height: 1.6; font-family: 'Microsoft YaHei', 'SimSun', sans-serif;\">");
|
||||
sb.append(" <div style=\"flex: 1; display: flex;\">");
|
||||
sb.append(" <span style=\"font-weight: 600; color: #34495e; min-width: 110px;\">客户名称:</span>");
|
||||
sb.append(" <span style=\"color: #2c3e50; padding-left: 8px; border-bottom: 1px dashed #d1d1d1; flex: 1;\">"+mainData.getOrDefault("field0022","")+"</span>");
|
||||
sb.append(" </div>");
|
||||
sb.append(" <div style=\"flex: 1; display: flex;\">");
|
||||
sb.append(" <span style=\"font-weight: 600; color: #34495e; min-width: 110px;\">客户联系人:</span>");
|
||||
sb.append(" <span style=\"color: #2c3e50; padding-left: 8px; border-bottom: 1px dashed #d1d1d1; flex: 1;\">"+mainData.getOrDefault("field0023","")+"</span>");
|
||||
sb.append(" </div>");
|
||||
sb.append(" </div>");
|
||||
sb.append("");
|
||||
|
||||
sb.append(" <div style=\"display: flex; margin-bottom: 18px; line-height: 1.6; font-family: 'Microsoft YaHei', 'SimSun', sans-serif;\">");
|
||||
sb.append(" <div style=\"flex: 1; display: flex;\">");
|
||||
sb.append(" <span style=\"font-weight: 600; color: #34495e; min-width: 110px;\">客户联系人电话:</span>");
|
||||
sb.append(" <span style=\"color: #2c3e50; padding-left: 8px; border-bottom: 1px dashed #d1d1d1; flex: 1;\">"+mainData.getOrDefault("field0024","")+"</span>");
|
||||
sb.append(" </div>");
|
||||
sb.append(" <div style=\"flex: 1; display: flex;\">");
|
||||
sb.append(" <span style=\"font-weight: 600; color: #34495e; min-width: 110px;\">送货地址:</span>");
|
||||
sb.append(" <span style=\"color: #2c3e50; padding-left: 8px; border-bottom: 1px dashed #d1d1d1; flex: 1;\">"+mainData.getOrDefault("field0025","")+"</span>");
|
||||
sb.append(" </div>");
|
||||
sb.append(" </div>");
|
||||
sb.append("");
|
||||
|
||||
sb.append(" <div style=\"display: flex; margin-bottom: 18px; line-height: 1.6; font-family: 'Microsoft YaHei', 'SimSun', sans-serif;\">");
|
||||
sb.append(" <div style=\"flex: 1; display: flex;\">");
|
||||
sb.append(" <span style=\"font-weight: 600; color: #34495e; min-width: 110px;\">收货人:</span>");
|
||||
sb.append(" <span style=\"color: #2c3e50; padding-left: 8px; border-bottom: 1px dashed #d1d1d1; flex: 1;\">"+mainData.getOrDefault("field0026","")+"</span>");
|
||||
sb.append(" </div>");
|
||||
sb.append(" <div style=\"flex: 1; display: flex;\">");
|
||||
sb.append(" <span style=\"font-weight: 600; color: #34495e; min-width: 110px;\">收货人电话:</span>");
|
||||
sb.append(" <span style=\"color: #2c3e50; padding-left: 8px; border-bottom: 1px dashed #d1d1d1; flex: 1;\">"+mainData.getOrDefault("field0027","")+"</span>");
|
||||
sb.append(" </div>");
|
||||
sb.append(" </div>");
|
||||
sb.append("");
|
||||
|
||||
// 拼接材料明细表格
|
||||
sb.append(" <table style=\"width: 100%; border-collapse: collapse; margin: 30px 0; font-family: 'Microsoft YaHei', 'SimSun', sans-serif;\">");
|
||||
sb.append(" <tbody>");
|
||||
sb.append(" <tr>");
|
||||
sb.append(" <th style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; background-color: #2980b9; color: white; font-weight: 600;\">序号</th>");
|
||||
sb.append(" <th style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; background-color: #2980b9; color: white; font-weight: 600;\">编码</th>");
|
||||
sb.append(" <th style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; background-color: #2980b9; color: white; font-weight: 600;\">材料名称</th>");
|
||||
sb.append(" <th style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; background-color: #2980b9; color: white; font-weight: 600;\">规格型号</th>");
|
||||
sb.append(" <th style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; background-color: #2980b9; color: white; font-weight: 600;\">数量</th>");
|
||||
sb.append(" <th style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; background-color: #2980b9; color: white; font-weight: 600;\">品牌</th>");
|
||||
sb.append(" <th style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; background-color: #2980b9; color: white; font-weight: 600;\">含税单价</th>");
|
||||
sb.append(" <th style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; background-color: #2980b9; color: white; font-weight: 600;\">含税金额</th>");
|
||||
sb.append(" <th style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; background-color: #2980b9; color: white; font-weight: 600;\">要求到货时间</th>");
|
||||
sb.append(" <th style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; background-color: #2980b9; color: white; font-weight: 600;\">技术要求</th>");
|
||||
sb.append(" <th style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; background-color: #2980b9; color: white; font-weight: 600;\">税率</th>");
|
||||
sb.append(" <th style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; background-color: #2980b9; color: white; font-weight: 600;\">币种</th>");
|
||||
sb.append(" <th style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; background-color: #2980b9; color: white; font-weight: 600;\">备注</th>");
|
||||
sb.append(" </tr>");
|
||||
if (detailArray != null && detailArray.size() > 0) {
|
||||
for (int i = 0; i < detailArray.size(); i++) {
|
||||
sb.append(" <tr style=\"background-color: #f9f9f9;\">");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\">"+mainData.getOrDefault("field0005","")+"</td>");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\">"+mainData.getOrDefault("field0006","")+"</td>");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\">"+mainData.getOrDefault("field0007","")+"</td>");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\">"+mainData.getOrDefault("field0008","")+"</td>");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\">"+mainData.getOrDefault("field0009","")+"</td>");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\">"+mainData.getOrDefault("field0010","")+"</td>");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\">"+mainData.getOrDefault("field0011","")+"</td>");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\">"+mainData.getOrDefault("field0012","")+"</td>");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\">"+mainData.getOrDefault("field0013","")+"</td>");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\">"+mainData.getOrDefault("field0014","")+"</td>");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\">"+mainData.getOrDefault("field0017","")+"</td>");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\">"+mainData.getOrDefault("field0018","")+"</td>");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\">"+mainData.getOrDefault("field0019","")+"</td>");
|
||||
sb.append(" </tr>");
|
||||
}
|
||||
}else {
|
||||
sb.append(" <tr onmouseover=\"this.style.backgroundColor='#f0f7ff'\" onmouseout=\"this.style.backgroundColor=''\">");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\"></td>");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\"></td>");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\"></td>");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\"></td>");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\"></td>");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\"></td>");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\"></td>");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\"></td>");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\"></td>");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\"></td>");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\"></td>");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\"></td>");
|
||||
sb.append(" <td style=\"padding: 12px 8px; text-align: center; border: 1px solid #ddd; font-size: 14px; color: #2c3e50;\"></td>");
|
||||
sb.append(" </tr>");
|
||||
}
|
||||
|
||||
|
||||
sb.append(" </tbody>");
|
||||
sb.append(" </table>");
|
||||
|
||||
// 闭合主容器div
|
||||
sb.append("</div>");
|
||||
|
||||
if (detailArray != null && detailArray.size() > 0) {
|
||||
for (int i = 0; i < detailArray.size(); i++) {
|
||||
|
@ -236,8 +378,7 @@ public class SendEmailServiceImpl extends BaseService<SendEmailEntity, String> i
|
|||
}
|
||||
}
|
||||
|
||||
return sendData.toJSONString();
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue