From ad4b928de79db0a823f8e9dfde642861653f8422 Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Mon, 20 May 2024 17:19:10 +0800 Subject: [PATCH] =?UTF-8?q?2024-05-20=20=E5=8A=9F=E8=83=BD=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pms/service/Impl/QcServiceImpl.java | 244 ++++++++++++------ src/main/resources/mapper/pms/QcMapper.xml | 13 +- 2 files changed, 165 insertions(+), 92 deletions(-) diff --git a/src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java b/src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java index 53e5b939..febfd42e 100644 --- a/src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java @@ -2071,15 +2071,6 @@ public class QcServiceImpl implements QcService { qcMapper.updateFAIDetailedRecord(data.getItemList().get(i)); } - // 判断检验结论,不合格则发送邮件 - if ("不合格".equals(data.getInspectionResult())) { - try { // 发送邮件 - sendMail(data, "FAI"); - } catch (Exception e) { - //logger.info(e.getMessage()); - throw new RuntimeException(e); - } - } // 修改子明细提交标识 //qcMapper.updateSubDetailedRecord(data); // 修改明细信息 @@ -2194,6 +2185,16 @@ public class QcServiceImpl implements QcService { qcMapper.updateFAIDetailSubmitFlag(qcData); // 修改子明细记录标识为已提交 qcMapper.updateFAISubDetailSubmitFlag(qcData); + // 发送邮件 + if ("不合格".equals(qcData.getInspectionResult())) { + try { + List list = qcMapper.faiDetailSearch(qcData); + qcData.setItemList(list); + sendMail(qcData, "FAI"); + } catch (Exception e) { + logger.info(e.getMessage()); + } + } } } @@ -2706,15 +2707,6 @@ public class QcServiceImpl implements QcService { qcMapper.updateFQCDetailedRecord(data.getItemList().get(i)); } - // 判断检验结论,不合格则发送邮件 - if ("不合格".equals(data.getInspectionResult())) { - try { // 发送邮件 - sendMail(data, "FQC"); - } catch (Exception e) { - //logger.info(e.getMessage()); - throw new RuntimeException(e); - } - } } /** @@ -2734,6 +2726,16 @@ public class QcServiceImpl implements QcService { qcMapper.updateFQCDetailSubmitFlag(qcData); // 修改子明细记录标识为已提交 qcMapper.updateFQCSubDetailSubmitFlag(qcData); + // 发送邮件 + if ("不合格".equals(qcData.getInspectionResult())) { + try { + List list = qcMapper.fqcDetailSearch(qcData); + qcData.setItemList(list); + sendMail(qcData, "FQC"); + } catch (Exception e) { + logger.info(e.getMessage()); + } + } } } @@ -3273,15 +3275,6 @@ public class QcServiceImpl implements QcService { for (int i = 0; i < data.getItemList().size(); i++) { qcMapper.updateIPQCDetailedRecord(data.getItemList().get(i)); } - // 判断检验结论,不合格则发送邮件 - if ("不合格".equals(data.getInspectionResult())) { - try { // 发送邮件 - sendMail(data, "IPQC"); - } catch (Exception e) { - //logger.info(e.getMessage()); - throw new RuntimeException(e); - } - } } /** @@ -3294,13 +3287,24 @@ public class QcServiceImpl implements QcService { @Override @Transactional public void saveIPQCSubmitResult(QcFAIRecordData data) { - for (QcFAIRecordData qcData : data.getSubmitList()){ + for (QcFAIRecordData qcData : data.getSubmitList()) { // 修改主记录标识为已提交 qcMapper.updateIPQCMasterSubmitFlag(qcData); // 修改明细记录标识为已提交 qcMapper.updateIPQCDetailSubmitFlag(qcData); // 修改子明细记录标识为已提交 qcMapper.updateIPQCSubDetailSubmitFlag(qcData); + // 发送邮件 + if ("不合格".equals(qcData.getInspectionResult())) { + try { + List list = qcMapper.ipqcDetailSearch(qcData); + qcData.setItemList(list); + sendMail(qcData, "IPQC"); + } catch (Exception e) { + logger.info(e.getMessage()); + //throw new RuntimeException(e.getMessage()); + } + } } } @@ -3775,64 +3779,64 @@ public class QcServiceImpl implements QcService { qcMapper.updateIQCDetailedRecord(data.getItemList().get(i)); } - try { - // 判断检验结论,不合格则发送邮件 - if ("不合格".equals(data.getInspectionResult())) { - // 获取数据库设置的邮件接收地址 - MailAddressData qc = qcMapper.getSendMailAddress(data.getSite(), "IQC"); - List collect = data.getItemList().stream().filter(a -> "N".equals(a.getItemResult())).map(QcFAIRecordData::getItemDesc).collect(Collectors.toList()); - if (qc != null) { - //设置邮件内容 - String text = "" + - "
" + - "单据号:"+ data.getPoOrderNo() + ",行号:" + data.getPoItemNo() + ",物料编码:" + data.getPartNo() + ",物料名称:" + data.getPartDesc() + ",SKU:" + data.getSku() + ",发生不合格,不合格项:" + collect + " (此邮件为自动提示发送,无需回复!)

" + - "
"; - //发送邮件 - JavaMailSenderImpl sender = new JavaMailSenderImpl(); - MailSendAddressData mailSendData = qcMapper.getSendMailFromAddress(); - sender.setHost(mailSendData.getHost()); - sender.setPort(mailSendData.getPort()); - sender.setUsername(mailSendData.getUsername()); - sender.setPassword(mailSendData.getPassword()); - sender.setDefaultEncoding("Utf-8"); - Properties p = new Properties(); - p.setProperty("mail.smtp.timeout", mailSendData.getTimeout()); - p.setProperty("mail.smtp.auth", "false"); - p.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); - sender.setJavaMailProperties(p); - MimeMessage mimeMessage = sender.createMimeMessage(); - // 设置utf-8或GBK编码,否则邮件会有乱码 - MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8"); - messageHelper.setFrom(mailSendData.getEmailForm(), mailSendData.getPersonal()); - //判断是否存在分号 - if (qc.getMailAddress().contains(";")) { - String[] toAddress = qc.getMailAddress().split(";"); - messageHelper.setTo(toAddress[0]); - String[] arr2 = new String[toAddress.length-1]; - System.arraycopy(toAddress, 1, arr2, 0, toAddress.length-1); - messageHelper.setCc(arr2); - } else { - messageHelper.setTo(qc.getMailAddress()); - } - messageHelper.setSubject("IQC"+"质量检验结果"); //标题 - messageHelper.setText(text, true); - sender.send(mimeMessage); - logger.info("QC检验不合格通知邮件已发送!收件箱地址:"+qc.getMailAddress()); - - // 保存邮件记录 - SendMailRecord mailRecord = new SendMailRecord(); - mailRecord.setSite(data.getSite()); - mailRecord.setBuNo(data.getBuNo()); - mailRecord.setDocumentNo(data.getInspectionNo()); - mailRecord.setSender(data.getInspectorNo()); - mailRecord.setRecipient(qc.getMailAddress()); - qcMapper.saveSendMailRecord(mailRecord); - } - } - } catch (Exception e) { - logger.info(e.getMessage()); - //throw new RuntimeException(e); - } +// try { +// // 判断检验结论,不合格则发送邮件 +// if ("不合格".equals(data.getInspectionResult())) { +// // 获取数据库设置的邮件接收地址 +// MailAddressData qc = qcMapper.getSendMailAddress(data.getSite(), "IQC"); +// List collect = data.getItemList().stream().filter(a -> "N".equals(a.getItemResult())).map(QcFAIRecordData::getItemDesc).collect(Collectors.toList()); +// if (qc != null) { +// //设置邮件内容 +// String text = "" + +// "
" + +// "单据号:"+ data.getPoOrderNo() + ",行号:" + data.getPoItemNo() + ",物料编码:" + data.getPartNo() + ",物料名称:" + data.getPartDesc() + ",SKU:" + data.getSku() + ",发生不合格,不合格项:" + collect + " (此邮件为自动提示发送,无需回复!)

" + +// "
"; +// //发送邮件 +// JavaMailSenderImpl sender = new JavaMailSenderImpl(); +// MailSendAddressData mailSendData = qcMapper.getSendMailFromAddress(); +// sender.setHost(mailSendData.getHost()); +// sender.setPort(mailSendData.getPort()); +// sender.setUsername(mailSendData.getUsername()); +// sender.setPassword(mailSendData.getPassword()); +// sender.setDefaultEncoding("Utf-8"); +// Properties p = new Properties(); +// p.setProperty("mail.smtp.timeout", mailSendData.getTimeout()); +// p.setProperty("mail.smtp.auth", "false"); +// p.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); +// sender.setJavaMailProperties(p); +// MimeMessage mimeMessage = sender.createMimeMessage(); +// // 设置utf-8或GBK编码,否则邮件会有乱码 +// MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8"); +// messageHelper.setFrom(mailSendData.getEmailForm(), mailSendData.getPersonal()); +// //判断是否存在分号 +// if (qc.getMailAddress().contains(";")) { +// String[] toAddress = qc.getMailAddress().split(";"); +// messageHelper.setTo(toAddress[0]); +// String[] arr2 = new String[toAddress.length-1]; +// System.arraycopy(toAddress, 1, arr2, 0, toAddress.length-1); +// messageHelper.setCc(arr2); +// } else { +// messageHelper.setTo(qc.getMailAddress()); +// } +// messageHelper.setSubject("IQC"+"质量检验结果"); //标题 +// messageHelper.setText(text, true); +// sender.send(mimeMessage); +// logger.info("QC检验不合格通知邮件已发送!收件箱地址:"+qc.getMailAddress()); +// +// // 保存邮件记录 +// SendMailRecord mailRecord = new SendMailRecord(); +// mailRecord.setSite(data.getSite()); +// mailRecord.setBuNo(data.getBuNo()); +// mailRecord.setDocumentNo(data.getInspectionNo()); +// mailRecord.setSender(data.getInspectorNo()); +// mailRecord.setRecipient(qc.getMailAddress()); +// qcMapper.saveSendMailRecord(mailRecord); +// } +// } +// } catch (Exception e) { +// logger.info(e.getMessage()); +// //throw new RuntimeException(e); +// } } @@ -3989,6 +3993,74 @@ public class QcServiceImpl implements QcService { throw new RuntimeException("未查询到采购订单!"); } } + + // 发送邮件 + if ("不合格".equals(qcData.getInspectionResult())) { + try { + List list = qcMapper.iqcDetailSearch(qcData); + qcData.setItemList(list); + sendMailIQC(qcData, "IQC"); + } catch (Exception e) { + logger.info(e.getMessage()); + } + } + } + } + + + public void sendMailIQC(QcFAIRecordData data, String type) throws Exception { + // 判断检验结论,不合格则发送邮件 + if ("不合格".equals(data.getInspectionResult())) { + // 获取数据库设置的邮件接收地址 + MailAddressData qc = qcMapper.getSendMailAddress(data.getSite(), type); + List collect = data.getItemList().stream().filter(a -> "N".equals(a.getItemResult())).map(QcFAIRecordData::getItemDesc).collect(Collectors.toList()); + if (qc != null) { + //设置邮件内容 + String text = "" + + "
" + + "单据号:"+ data.getPoOrderNo() + ",行号:" + data.getPoItemNo() + ",物料编码:" + data.getPartNo() + ",物料名称:" + data.getPartDesc() + ",SKU:" + data.getSku() + ",发生不合格,不合格项:" + collect + " (此邮件为自动提示发送,无需回复!)

" + + "
"; + //发送邮件 + JavaMailSenderImpl sender = new JavaMailSenderImpl(); + MailSendAddressData mailSendData = qcMapper.getSendMailFromAddress(); + sender.setHost(mailSendData.getHost()); + sender.setPort(mailSendData.getPort()); + sender.setUsername(mailSendData.getUsername()); + sender.setPassword(mailSendData.getPassword()); + sender.setDefaultEncoding("Utf-8"); + Properties p = new Properties(); + p.setProperty("mail.smtp.timeout", mailSendData.getTimeout()); + p.setProperty("mail.smtp.auth", "false"); + p.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); + sender.setJavaMailProperties(p); + MimeMessage mimeMessage = sender.createMimeMessage(); + // 设置utf-8或GBK编码,否则邮件会有乱码 + MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8"); + messageHelper.setFrom(mailSendData.getEmailForm(), mailSendData.getPersonal()); + //判断是否存在分号 + if (qc.getMailAddress().contains(";")) { + String[] toAddress = qc.getMailAddress().split(";"); + messageHelper.setTo(toAddress[0]); + String[] arr2 = new String[toAddress.length-1]; + System.arraycopy(toAddress, 1, arr2, 0, toAddress.length-1); + messageHelper.setCc(arr2); + } else { + messageHelper.setTo(qc.getMailAddress()); + } + messageHelper.setSubject("IQC"+"质量检验结果"); //标题 + messageHelper.setText(text, true); + sender.send(mimeMessage); + logger.info("QC检验不合格通知邮件已发送!收件箱地址:"+qc.getMailAddress()); + + // 保存邮件记录 + SendMailRecord mailRecord = new SendMailRecord(); + mailRecord.setSite(data.getSite()); + mailRecord.setBuNo(data.getBuNo()); + mailRecord.setDocumentNo(data.getInspectionNo()); + mailRecord.setSender(data.getInspectorNo()); + mailRecord.setRecipient(qc.getMailAddress()); + qcMapper.saveSendMailRecord(mailRecord); + } } } diff --git a/src/main/resources/mapper/pms/QcMapper.xml b/src/main/resources/mapper/pms/QcMapper.xml index ea60cc27..ce74a166 100644 --- a/src/main/resources/mapper/pms/QcMapper.xml +++ b/src/main/resources/mapper/pms/QcMapper.xml @@ -576,9 +576,10 @@ @@ -613,7 +614,7 @@ SELECT template_id, template_name, template_version - FROM qc_template + FROM qc_template WHERE template_name = #{templateName} AND site = #{site} AND template_version = #{templateVersion} @@ -640,7 +641,7 @@ MinValue, ItemRemark, ItemType - FROM eam_properties_item + FROM eam_properties_item WHERE ItemNo = #{itemNo} AND ItemType = #{itemType} @@ -1353,7 +1354,7 @@ qsip.sampling_level_no, qsil.sampling_level_desc, qsip.sampling_plan_active - FROM qc_programme_plan as qpp + FROM qc_programme_plan as qpp LEFT JOIN qc_sampling_inspection_plan as qsip on qpp.sampling_plan_no = qsip.sampling_plan_no and qpp.site = qsip.site and qpp.bu_no = qsip.bu_no LEFT JOIN qc_sampling_inspection_qty as qsiq on qsip.sampling_qty_no = qsiq.sampling_qty_no and qsip.site = qsiq.site and qsip.bu_no = qsiq.bu_no LEFT JOIN qc_sampling_inspection_qty_rank as qsiqr on qsip.sampling_qty_rank_no = qsiqr.sampling_qty_rank_no and qsip.site = qsiqr.site and qsip.bu_no = qsiqr.bu_no