diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/sendEmail/dao/ISendEmailDao.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/sendEmail/dao/ISendEmailDao.java new file mode 100644 index 00000000..5a6cb52c --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/sendEmail/dao/ISendEmailDao.java @@ -0,0 +1,10 @@ +package com.hzya.frame.plugin.sendEmail.dao; + +import com.hzya.frame.basedao.dao.IBaseDao; +import com.hzya.frame.plugin.sendEmail.entity.SendEmailEntity; + +public interface ISendEmailDao extends IBaseDao { + + +} + diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/sendEmail/dao/impl/SendEmailDaoImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/sendEmail/dao/impl/SendEmailDaoImpl.java new file mode 100644 index 00000000..df6de7a7 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/sendEmail/dao/impl/SendEmailDaoImpl.java @@ -0,0 +1,13 @@ +package com.hzya.frame.plugin.sendEmail.dao.impl; + +import com.hzya.frame.basedao.dao.MybatisGenericDao; +import com.hzya.frame.plugin.sendEmail.dao.ISendEmailDao; +import com.hzya.frame.plugin.sendEmail.entity.SendEmailEntity; + + + +public class SendEmailDaoImpl extends MybatisGenericDao implements ISendEmailDao { + + +} + diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/sendEmail/entity/SendEmailEntity.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/sendEmail/entity/SendEmailEntity.java new file mode 100644 index 00000000..e87ca3ad --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/sendEmail/entity/SendEmailEntity.java @@ -0,0 +1,9 @@ +package com.hzya.frame.plugin.sendEmail.entity; + +import com.hzya.frame.web.entity.BaseEntity; + +public class SendEmailEntity extends BaseEntity { + + +} + diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/sendEmail/entity/SendEmailEntity.xml b/base-buildpackage/src/main/java/com/hzya/frame/plugin/sendEmail/entity/SendEmailEntity.xml new file mode 100644 index 00000000..fbfaca83 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/sendEmail/entity/SendEmailEntity.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/sendEmail/plugin/SendEmailPluginInitializer.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/sendEmail/plugin/SendEmailPluginInitializer.java new file mode 100644 index 00000000..0fbe22da --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/sendEmail/plugin/SendEmailPluginInitializer.java @@ -0,0 +1,61 @@ +package com.hzya.frame.plugin.sendEmail.plugin; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.base.PluginBaseEntity; +import com.hzya.frame.plugin.sendEmail.service.ISendEmailService; +import com.hzya.frame.web.entity.JsonResultEntity; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * 邮件发送 + * + * @author makejava + * @since 2024-06-21 13:52:35 + */ +public class SendEmailPluginInitializer extends PluginBaseEntity{ + Logger logger = LoggerFactory.getLogger(SendEmailPluginInitializer.class); + @Autowired + private ISendEmailService sendEmailService; + + @Override + public void initialize() { + logger.info(getPluginLabel() + "执行初始化方法initialize()"); + } + + @Override + public void destroy() { + logger.info(getPluginLabel() + "执行销毁方法destroy()"); + } + + @Override + public String getPluginId() { + return "SendEmailPlugin"; + } + + @Override + public String getPluginName() { + return "SendEmailPlugin插件"; + } + + @Override + public String getPluginLabel() { + return "SendEmailPlugin"; + } + + @Override + public String getPluginType() { + return "1"; + } + @Override + public JsonResultEntity executeBusiness(JSONObject requestJson) { + try { + logger.info("======开始执行邮件发送同步========"); + return sendEmailService.sendEmail(requestJson); + }catch (Exception e){ + logger.info("======执行邮件发送同步失败:{}========",e.getMessage()); + } + return null; + } +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/sendEmail/service/ISendEmailService.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/sendEmail/service/ISendEmailService.java new file mode 100644 index 00000000..d3fa4dad --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/sendEmail/service/ISendEmailService.java @@ -0,0 +1,18 @@ +package com.hzya.frame.plugin.sendEmail.service; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.plugin.sendEmail.entity.SendEmailEntity; +import com.hzya.frame.web.entity.JsonResultEntity; + +public interface ISendEmailService extends IBaseService{ + /** + * @Author lvleigang + * @Description 发送邮件 + * @Date 5:31 下午 2025/6/26 + * @param requestJson + * @return com.hzya.frame.web.entity.JsonResultEntity + **/ + JsonResultEntity sendEmail(JSONObject requestJson); + +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/sendEmail/service/impl/SendEmailServiceImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/sendEmail/service/impl/SendEmailServiceImpl.java new file mode 100644 index 00000000..32d4cd0d --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/sendEmail/service/impl/SendEmailServiceImpl.java @@ -0,0 +1,126 @@ +package com.hzya.frame.plugin.sendEmail.service.impl; + +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.basedao.service.impl.BaseService; +import com.hzya.frame.email.EmailUtil; +import com.hzya.frame.plugin.sendEmail.dao.ISendEmailDao; +import com.hzya.frame.plugin.sendEmail.entity.SendEmailEntity; +import com.hzya.frame.plugin.sendEmail.service.ISendEmailService; +import com.hzya.frame.web.entity.BaseResult; +import com.hzya.frame.web.entity.JsonResultEntity; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.mock.web.MockMultipartFile; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.io.File; +import java.io.FileInputStream; +import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class SendEmailServiceImpl extends BaseService implements ISendEmailService { + @Value("${zt.url}") + private String url; + + private ISendEmailDao sendEmailDao; + + @Resource + private EmailUtil emailUtil; + @Autowired + public void setSendEmailDao(ISendEmailDao dao) { + this.sendEmailDao = dao; + this.dao = dao; + } + + + /** + * @param requestJson + * @return com.hzya.frame.web.entity.JsonResultEntity + * @Author lvleigang + * @Description 发送邮件 + * @Date 1:44 下午 2025/7/9 + **/ + public JsonResultEntity sendEmail(JSONObject requestJson) { + logger.error("发送邮件入参:" + requestJson.toJSONString()); + JSONObject jsonStr = requestJson.getJSONObject("jsonStr"); + if (jsonStr == null) { + return BaseResult.getFailureMessageEntity("系统错误"); + } + JSONObject businessDataStr = jsonStr.getJSONObject("businessDataStr"); + if (businessDataStr == null) { + return BaseResult.getFailureMessageEntity("系统错误"); + } + JSONObject mainData = businessDataStr.getJSONObject("formmain_1233"); + if (mainData == null) { + return BaseResult.getFailureMessageEntity("系统错误"); + } + String sendEmail = mainData.getString("field0034");//供应商邮箱 + if(sendEmail == null || "".equals(sendEmail)){ + return BaseResult.getFailureMessageEntity("供应商邮箱为空,请检查"); + } + String subject = null; + //subject = mainData.getString("field0034");//todo + if(sendEmail == null || "".equals(sendEmail)){ + subject = "采购"; + } + JSONArray detailArray = businessDataStr.getJSONArray("formson_1234"); + //组装发送数据 + String htmls = null; + try { + htmls = getSendData(mainData, detailArray); + } catch (ParseException e) { + e.printStackTrace(); + return BaseResult.getFailureMessageEntity("发送邮件失败:组装数据失败"); + } + //发送数据 + logger.error("发送邮件发送数据:" + htmls); + try { + String filePath = "/Users/apple/Desktop/【C4协同费控产品】(报表相关)字典说明zm@2025.pdf"; + File file = new File(filePath); + List attachments = new ArrayList<>(); + try (FileInputStream input = new FileInputStream(file)) { + MultipartFile multipartFile = new MockMultipartFile( + file.getName(), // 对应表单中的文件字段名 + file.getName(), // 原始文件名 + "application/pdf", // 或根据文件类型指定 MIME 类型 + input + ); + attachments.add(multipartFile); + } + emailUtil.sendHtmlAndFileMessage(sendEmail,subject, htmls,attachments); + return BaseResult.getSuccessMessageEntity("发送邮件成功"); + }catch (Exception e){ + return BaseResult.getFailureMessageEntity("发送邮件失败"); + } + } + + /** + * @param mainData + * @param detailArray + * @return com.alibaba.fastjson.JSONObject + * @Author lvleigang + * @Description 组装数据 + * @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"));//购方名称 + + if (detailArray != null && detailArray.size() > 0) { + for (int i = 0; i < detailArray.size(); i++) { + + } + } + + return sendData.toJSONString(); + } + + +} diff --git a/base-buildpackage/src/main/resources/cfgHome/plugin/sendEmail/pluginCfg.xml b/base-buildpackage/src/main/resources/cfgHome/plugin/sendEmail/pluginCfg.xml new file mode 100644 index 00000000..5e8383a9 --- /dev/null +++ b/base-buildpackage/src/main/resources/cfgHome/plugin/sendEmail/pluginCfg.xml @@ -0,0 +1,6 @@ + + +SendEmailPlugin +SendEmailPlugin插件 +20250731001 + diff --git a/base-buildpackage/src/main/resources/cfgHome/plugin/sendEmail/spring/spring-buildpackage-dao.xml b/base-buildpackage/src/main/resources/cfgHome/plugin/sendEmail/spring/spring-buildpackage-dao.xml new file mode 100644 index 00000000..33a6c12f --- /dev/null +++ b/base-buildpackage/src/main/resources/cfgHome/plugin/sendEmail/spring/spring-buildpackage-dao.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/base-buildpackage/src/main/resources/cfgHome/plugin/sendEmail/spring/spring-buildpackage-plugin.xml b/base-buildpackage/src/main/resources/cfgHome/plugin/sendEmail/spring/spring-buildpackage-plugin.xml new file mode 100644 index 00000000..e1569bae --- /dev/null +++ b/base-buildpackage/src/main/resources/cfgHome/plugin/sendEmail/spring/spring-buildpackage-plugin.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/base-buildpackage/src/main/resources/cfgHome/plugin/sendEmail/spring/spring-buildpackage-service.xml b/base-buildpackage/src/main/resources/cfgHome/plugin/sendEmail/spring/spring-buildpackage-service.xml new file mode 100644 index 00000000..e2ca3db4 --- /dev/null +++ b/base-buildpackage/src/main/resources/cfgHome/plugin/sendEmail/spring/spring-buildpackage-service.xml @@ -0,0 +1,5 @@ + + + + +