|
@@ -16,19 +16,111 @@
|
|
|
*/
|
|
|
package com.qunzhixinxi.hnqz.daemon.quartz.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
+import com.alibaba.excel.EasyExcelFactory;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.feign.RemoteScorePackageService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.model.WmScorePackageSettleExcelModel;
|
|
|
+import com.qunzhixinxi.hnqz.common.core.constant.SecurityConstants;
|
|
|
+import com.qunzhixinxi.hnqz.daemon.quartz.config.LocalDateTimeConverter;
|
|
|
import com.qunzhixinxi.hnqz.daemon.quartz.entity.WmScorePackage;
|
|
|
import com.qunzhixinxi.hnqz.daemon.quartz.mapper.WmScorePackageMapper;
|
|
|
import com.qunzhixinxi.hnqz.daemon.quartz.service.WmScorePackageService;
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.core.io.ByteArrayResource;
|
|
|
+import org.springframework.mail.javamail.JavaMailSender;
|
|
|
+import org.springframework.mail.javamail.MimeMessageHelper;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import javax.mail.internet.MimeMessage;
|
|
|
+import java.io.ByteArrayOutputStream;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
/**
|
|
|
* 积分包
|
|
|
*
|
|
|
* @author pigx code generator
|
|
|
* @date 2020-07-31 20:07:52
|
|
|
*/
|
|
|
+@Slf4j
|
|
|
@Service
|
|
|
+@AllArgsConstructor
|
|
|
public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper, WmScorePackage> implements WmScorePackageService {
|
|
|
|
|
|
+ private final JavaMailSender sender;
|
|
|
+
|
|
|
+ private final RemoteScorePackageService remoteScorePackageService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Boolean sendSelfSettleDataToDept(Integer deptId, String toEmail, LocalDateTime startOfDay, LocalDateTime endOfDay) throws Exception {
|
|
|
+ // 本企业当日结算成功数据-发送邮件
|
|
|
+ MimeMessage mail = sender.createMimeMessage();
|
|
|
+ MimeMessageHelper helper = new MimeMessageHelper(mail, true);
|
|
|
+
|
|
|
+ helper.setFrom("yaoyi_report@yaoyi.net");
|
|
|
+ helper.setTo(toEmail);
|
|
|
+
|
|
|
+ String title = "本企业结算成功数据(" + DateTimeFormatter.ofPattern("yyyy-MM-dd").format(startOfDay) + ")";
|
|
|
+ helper.setSubject(title);
|
|
|
+
|
|
|
+ // 获取指定企业当日结算的数据
|
|
|
+ Map<String, Object> reqParams = new HashMap<>(4);
|
|
|
+ reqParams.put("sendPackageDeptId", deptId);
|
|
|
+ reqParams.put("notifyTime", new LocalDateTime[]{startOfDay, endOfDay});
|
|
|
+ List<WmScorePackageSettleExcelModel> excelModels = remoteScorePackageService.exportPackageSettle(reqParams, SecurityConstants.FROM_IN);
|
|
|
+
|
|
|
+ if (CollUtil.isNotEmpty(excelModels)) {
|
|
|
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
|
|
+ EasyExcelFactory.write(byteArrayOutputStream, WmScorePackageSettleExcelModel.class)
|
|
|
+ .registerConverter(new LocalDateTimeConverter())
|
|
|
+ .autoCloseStream(false).sheet("本企业结算成功数据")
|
|
|
+ .doWrite(excelModels);
|
|
|
+ helper.addAttachment(title, new ByteArrayResource(byteArrayOutputStream.toByteArray()), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
|
|
+ helper.setText(String.format("当日结算成功%s条,详情数据见附件", excelModels.size()));
|
|
|
+
|
|
|
+ sender.send(mail);
|
|
|
+ log.info("{}本企业结算成功数据发送成功", deptId);
|
|
|
+ }
|
|
|
+
|
|
|
+ return Boolean.TRUE;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Boolean sendMAHSettleDataToDept(Integer deptId, String toEmail, LocalDateTime startOfDay, LocalDateTime endOfDay) throws Exception {
|
|
|
+ // MAH当日结算成功数据-发送邮件
|
|
|
+ MimeMessage mail2 = sender.createMimeMessage();
|
|
|
+ MimeMessageHelper helper2 = new MimeMessageHelper(mail2, true);
|
|
|
+
|
|
|
+ helper2.setFrom("yaoyi_report@yaoyi.net");
|
|
|
+ helper2.setTo(toEmail);
|
|
|
+
|
|
|
+ String title2 = "MAH企业结算成功数据(" + DateTimeFormatter.ofPattern("yyyy-MM-dd").format(startOfDay) + ")";
|
|
|
+ helper2.setSubject(title2);
|
|
|
+
|
|
|
+ // 获取指定企业当日结算的数据
|
|
|
+ Map<String, Object> reqParams2 = new HashMap<>(4);
|
|
|
+ reqParams2.put("mahSettleDeptId", deptId);
|
|
|
+ reqParams2.put("notifyTime", new LocalDateTime[]{startOfDay, endOfDay});
|
|
|
+ List<WmScorePackageSettleExcelModel> excelModels2 = remoteScorePackageService.exportPackageSettleByMAH(reqParams2, SecurityConstants.FROM_IN);
|
|
|
+
|
|
|
+ if (CollUtil.isNotEmpty(excelModels2)) {
|
|
|
+ ByteArrayOutputStream byteArrayOutputStream2 = new ByteArrayOutputStream();
|
|
|
+ EasyExcelFactory.write(byteArrayOutputStream2, WmScorePackageSettleExcelModel.class)
|
|
|
+ .registerConverter(new LocalDateTimeConverter())
|
|
|
+ .autoCloseStream(false).sheet("MAH企业结算成功数据")
|
|
|
+ .doWrite(excelModels2);
|
|
|
+ helper2.addAttachment(title2, new ByteArrayResource(byteArrayOutputStream2.toByteArray()), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
|
|
+ helper2.setText(String.format("当日结算成功%s条,详情数据见附件", excelModels2.size()));
|
|
|
+
|
|
|
+ sender.send(mail2);
|
|
|
+ log.info("{}MAH企业结算成功数据发送成功", deptId);
|
|
|
+ }
|
|
|
+
|
|
|
+ return Boolean.TRUE;
|
|
|
+ }
|
|
|
}
|