|
|
|
@ -431,7 +431,7 @@ public class EamProjectServiceImpl implements EamProjectService { |
|
|
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) |
|
|
|
public void sendMailHandle(ProofingInformationData inData) throws MessagingException, UnsupportedEncodingException { |
|
|
|
// 创建一个用于区分邮件类型的标识符 |
|
|
|
String type; |
|
|
|
String type = null; |
|
|
|
// 创建 SimpleDateFormat 对象并设置目标格式 |
|
|
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); |
|
|
|
|
|
|
|
@ -454,67 +454,126 @@ public class EamProjectServiceImpl implements EamProjectService { |
|
|
|
return; |
|
|
|
} |
|
|
|
} else { |
|
|
|
emailAddress = EamProjectMapper.getSendMassProductionMailAddress(inData); |
|
|
|
if (!emailAddress.isEmpty()) { |
|
|
|
type = "项目物料立项"; |
|
|
|
s.append("<li>你有一个新的项目物料立项,需要上传转量产文件 - 项目编码:" + emailAddress.get(0).getProjectNo() + " 名称:" + |
|
|
|
emailAddress.get(0).getProjectDesc() + "</li>"); |
|
|
|
if (Objects.equals(inData.getStatus(), "进行中")) { |
|
|
|
String r1 = null; |
|
|
|
String r2 = null; |
|
|
|
String r3 = null; |
|
|
|
String r4 = null; |
|
|
|
String r5 = null; |
|
|
|
String r6 = null; |
|
|
|
String r7 = null; |
|
|
|
String r8 = null; |
|
|
|
String r9 = null; |
|
|
|
List<String> userNames = new ArrayList<>(); |
|
|
|
r1 = inData.getcManufactureEngineer().split("-")[0]; |
|
|
|
r2 = inData.getcQualityEngineer1().split("-")[0]; |
|
|
|
r3 = inData.getcQualityEngineer2().split("-")[0]; |
|
|
|
r4 = inData.getcQualityEngineer3().split("-")[0]; |
|
|
|
r9 = inData.getEngineer().split("-")[0]; |
|
|
|
userNames.add(r1); |
|
|
|
userNames.add(r2); |
|
|
|
userNames.add(r3); |
|
|
|
userNames.add(r4); |
|
|
|
userNames.add(r9); |
|
|
|
if (inData.getcQualityEngineer4() != null && !inData.getcQualityEngineer4().equals("")){ |
|
|
|
r5 = inData.getcQualityEngineer4().split("-")[0]; |
|
|
|
userNames.add(r5); |
|
|
|
} |
|
|
|
if (inData.getcQualityEngineer5() != null && !inData.getcQualityEngineer5().equals("")){ |
|
|
|
r6 = inData.getcQualityEngineer5().split("-")[0]; |
|
|
|
userNames.add(r6); |
|
|
|
} |
|
|
|
if (inData.getcQualityEngineer6() != null && !inData.getcQualityEngineer6().equals("")){ |
|
|
|
r7 = inData.getcQualityEngineer6().split("-")[0]; |
|
|
|
userNames.add(r7); |
|
|
|
} |
|
|
|
if (inData.getDocEngineer() != null && !inData.getDocEngineer().equals("")){ |
|
|
|
r8 = inData.getDocEngineer().split("-")[0]; |
|
|
|
userNames.add(r8); |
|
|
|
} |
|
|
|
// 将所有username存储在一个集合中 |
|
|
|
emailAddress = EamProjectMapper.getEmailsByUsernames(userNames, inData.getSite()); |
|
|
|
if (!emailAddress.isEmpty()) { |
|
|
|
type = "项目物料立项"; |
|
|
|
s.append("<li>你有一个新的项目物料立项 - 项目编码:" + inData.getProjectNo() + " 名称:" + |
|
|
|
inData.getProjectDesc() + " 项目分类:" + inData.getProjectCategory() + " 优先级:" + inData.getPriority() + " 预计完成日期:" + formatter.format(inData.getNeedDate()) + "</li>"); |
|
|
|
} else { |
|
|
|
// 退出整个方法 |
|
|
|
return; |
|
|
|
} |
|
|
|
} else if (Objects.equals(inData.getStatus(), "已量产")) { |
|
|
|
emailAddress = EamProjectMapper.getSendMassProductionMailAddress(inData); |
|
|
|
if (!emailAddress.isEmpty()) { |
|
|
|
type = "项目物料转量产"; |
|
|
|
s.append("<li>你有一个新的项目物料转量产,需要上传转量产文件 - 项目编码:" + emailAddress.get(0).getProjectNo() + " 名称:" + |
|
|
|
emailAddress.get(0).getProjectDesc() + "</li>"); |
|
|
|
} else { |
|
|
|
// 退出整个方法 |
|
|
|
return; |
|
|
|
} |
|
|
|
} else { |
|
|
|
// 退出整个方法 |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 邮件内容模板 |
|
|
|
s.append("<table style='border-collapse: collapse; width: 100%;'>"); |
|
|
|
s.append("<tr style='background-color: #f2f2f2;'>"); |
|
|
|
s.append("<th style='border: 1px solid #dddddd; text-align: center; padding: 8px;'>项目编码</th>"); |
|
|
|
s.append("<th style='border: 1px solid #dddddd; text-align: center; padding: 8px;'>项目名称</th>"); |
|
|
|
if (Objects.equals(type, "打样订单")) { |
|
|
|
s.append("<th style='border: 1px solid #dddddd; text-align: center; padding: 8px;'>样品单号</th>"); |
|
|
|
} |
|
|
|
s.append("<th style='border: 1px solid #dddddd; text-align: center; padding: 8px;'>项目分类</th>"); |
|
|
|
s.append("<th style='border: 1px solid #dddddd; text-align: center; padding: 8px;'>优先级</th>"); |
|
|
|
s.append("<th style='border: 1px solid #dddddd; text-align: center; padding: 8px;'>项目阶段</th>"); |
|
|
|
s.append("<th style='border: 1px solid #dddddd; text-align: center; padding: 8px;'>预计完成日期</th>"); |
|
|
|
s.append("<th style='border: 1px solid #dddddd; text-align: center; padding: 8px;'>待上传文档</th>"); |
|
|
|
s.append("<th style='border: 1px solid #dddddd; text-align: center; padding: 8px;'>文档负责人</th>"); |
|
|
|
s.append("</tr>"); |
|
|
|
// 遍历 emailAddress |
|
|
|
Integer lastProjectId = null; |
|
|
|
for (ProofingInformationData proofingInformationData : emailAddress) {// 判断如果与上一个email的project_id不同 |
|
|
|
if (!Objects.equals(lastProjectId, proofingInformationData.getProjectId())) { |
|
|
|
lastProjectId = proofingInformationData.getProjectId(); |
|
|
|
s.append("<tr>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'>").append(proofingInformationData.getProjectNo()).append("</td>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'>").append(proofingInformationData.getProjectDesc()).append("</td>"); |
|
|
|
if (Objects.equals(type, "打样订单")) { |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'>").append(proofingInformationData.getProofingNo()).append("</td>"); |
|
|
|
} |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'>").append(proofingInformationData.getProjectCategory()).append("</td>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'>").append(proofingInformationData.getPriority()).append("</td>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; text-align: center; padding: 8px;'>").append(proofingInformationData.getStatus()).append("</td>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; text-align: center; padding: 8px;'>").append(formatter.format(proofingInformationData.getDueDate())).append("</td>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'>").append(proofingInformationData.getDocumentType()).append("</td>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'>").append(proofingInformationData.getUserDisplay()).append("</td>"); |
|
|
|
s.append("</tr>"); |
|
|
|
} else { |
|
|
|
s.append("<tr>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'></td>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'></td>"); |
|
|
|
if (Objects.equals(type, "打样订单")) { |
|
|
|
if (!Objects.equals(type, "项目物料立项")) { |
|
|
|
s.append("<table style='border-collapse: collapse; width: 100%;'>"); |
|
|
|
s.append("<tr style='background-color: #f2f2f2;'>"); |
|
|
|
s.append("<th style='border: 1px solid #dddddd; text-align: center; padding: 8px;'>项目编码</th>"); |
|
|
|
s.append("<th style='border: 1px solid #dddddd; text-align: center; padding: 8px;'>项目名称</th>"); |
|
|
|
if (Objects.equals(type, "打样订单")) { |
|
|
|
s.append("<th style='border: 1px solid #dddddd; text-align: center; padding: 8px;'>样品单号</th>"); |
|
|
|
} |
|
|
|
s.append("<th style='border: 1px solid #dddddd; text-align: center; padding: 8px;'>项目分类</th>"); |
|
|
|
s.append("<th style='border: 1px solid #dddddd; text-align: center; padding: 8px;'>优先级</th>"); |
|
|
|
s.append("<th style='border: 1px solid #dddddd; text-align: center; padding: 8px;'>项目阶段</th>"); |
|
|
|
s.append("<th style='border: 1px solid #dddddd; text-align: center; padding: 8px;'>预计完成日期</th>"); |
|
|
|
if (!Objects.equals(type, "项目物料立项")) { |
|
|
|
s.append("<th style='border: 1px solid #dddddd; text-align: center; padding: 8px;'>待上传文档</th>"); |
|
|
|
s.append("<th style='border: 1px solid #dddddd; text-align: center; padding: 8px;'>文档负责人</th>"); |
|
|
|
} |
|
|
|
s.append("</tr>"); |
|
|
|
// 遍历 emailAddress |
|
|
|
Integer lastProjectId = null; |
|
|
|
for (ProofingInformationData proofingInformationData : emailAddress) {// 判断如果与上一个email的project_id不同 |
|
|
|
if (!Objects.equals(lastProjectId, proofingInformationData.getProjectId())) { |
|
|
|
lastProjectId = proofingInformationData.getProjectId(); |
|
|
|
s.append("<tr>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'>").append(proofingInformationData.getProjectNo()).append("</td>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'>").append(proofingInformationData.getProjectDesc()).append("</td>"); |
|
|
|
if (Objects.equals(type, "打样订单")) { |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'>").append(proofingInformationData.getProofingNo()).append("</td>"); |
|
|
|
} |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'>").append(proofingInformationData.getProjectCategory()).append("</td>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'>").append(proofingInformationData.getPriority()).append("</td>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; text-align: center; padding: 8px;'>").append(proofingInformationData.getStatus()).append("</td>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; text-align: center; padding: 8px;'>").append(formatter.format(proofingInformationData.getDueDate())).append("</td>"); |
|
|
|
if (!Objects.equals(type, "项目物料立项")) { |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'>").append(proofingInformationData.getDocumentType()).append("</td>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'>").append(proofingInformationData.getUserDisplay()).append("</td>"); |
|
|
|
} |
|
|
|
s.append("</tr>"); |
|
|
|
} else { |
|
|
|
s.append("<tr>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'></td>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'></td>"); |
|
|
|
if (Objects.equals(type, "打样订单")) { |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'></td>"); |
|
|
|
} |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'></td>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'></td>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'></td>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'></td>"); |
|
|
|
if (!Objects.equals(type, "项目物料立项")) { |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'>").append(proofingInformationData.getDocumentType()).append("</td>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'>").append(proofingInformationData.getUserDisplay()).append("</td>"); |
|
|
|
} |
|
|
|
s.append("</tr>"); |
|
|
|
} |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'></td>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'></td>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'></td>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'></td>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'>").append(proofingInformationData.getDocumentType()).append("</td>"); |
|
|
|
s.append("<td style='border: 1px solid #dddddd; padding: 8px;'>").append(proofingInformationData.getUserDisplay()).append("</td>"); |
|
|
|
s.append("</tr>"); |
|
|
|
} |
|
|
|
s.append("</table>"); |
|
|
|
} |
|
|
|
s.append("</table>"); |
|
|
|
s.append("</ol>"); |
|
|
|
//设置邮件内容 |
|
|
|
String text = "<!DOCTYPE>" + |
|
|
|
|