Jelajahi Sumber

fix: 企业当日结算数据发送邮件通知-修改

lixuesong 1 tahun lalu
induk
melakukan
ec823183bf

+ 2 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmPayOffController.java

@@ -466,8 +466,9 @@ public class WmPayOffController {
 	 * @param input 参数
 	 * @return excel模型
 	 */
+	@Inner
 	@SysLog("积分包结算导出")
-	@GetMapping("/exportPackageSettleByMAHForInner")
+	@PostMapping("/exportPackageSettleByMAHForInner")
 	public List<WmScorePackageSettleExcelModel> exportPackageSettleByMAHForInner(@RequestBody WmScorePackageSettleInput input) {
 
 		return wmPayOffService.exportPackageSettleByMAH(input);

+ 6 - 0
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmScorePackageMapper.xml

@@ -1506,6 +1506,9 @@
 			left join wm_score_package_status ps on p.id = ps.package_id
 			left join sys_user su on ps.user_id = su.user_id
 		</if>
+		<if test="query.notifyTime != null and query.notifyTime.length == 2">
+			left join wm_score_package_settle_note sn on p.id = sn.package_id
+		</if>
 		<where>
 			<if test="query.mahSettleDeptId != null">
 				AND p.mah_settle_dept_id = #{query.mahSettleDeptId}
@@ -1561,6 +1564,9 @@
 			<if test="query.settlementDate != null and query.settlementDate.length == 2">
 				AND p.settlement_date between #{query.settlementDate[0]} and #{query.settlementDate[1]}
 			</if>
+			<if test="query.notifyTime != null and query.notifyTime.length == 2">
+				AND sn.notify_time between #{query.notifyTime[0]} and #{query.notifyTime[1]}
+			</if>
 		</where>
 		ORDER BY
 		<if test="query.mahSettleStep != null">

+ 26 - 20
hnqz-visual/hnqz-daemon-quartz/src/main/java/com/qunzhixinxi/hnqz/daemon/quartz/task/SpringBeanTaskDemo.java

@@ -514,20 +514,23 @@ public class SpringBeanTaskDemo {
 				reqParams.put("sendPackageDeptId", dept.getDeptId());
 				reqParams.put("notifyTime", new LocalDateTime[]{startOfDay, endOfDay});
 				List<WmScorePackageSettleExcelModel> excelModels = remoteScorePackageService.exportPackageSettle(reqParams, SecurityConstants.FROM_IN);
-				ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
-				EasyExcelFactory.write(byteArrayOutputStream, WmScorePackageSettleExcelModel.class)
-						.registerConverter(new LocalDateTimeConverter())
-						.autoCloseStream(false).sheet("本企业结算成功数据")
-						.doWrite(excelModels);
-				helper.addAttachment(title, new ByteArrayResource(byteArrayOutputStream.toByteArray()));
-				helper.setText(String.format("当日结算成功%s条,详情数据见附件", excelModels.size()));
 
-				sender.send(mail);
-				log.info("{}本企业结算成功数据发送成功", dept.getDeptId());
+				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("{}本企业结算成功数据发送成功", dept.getDeptId());
+				}
 
 				// MAH当日结算成功数据-发送邮件
 				MimeMessage mail2 = sender.createMimeMessage();
-				MimeMessageHelper helper2 = new MimeMessageHelper(mail, true);
+				MimeMessageHelper helper2 = new MimeMessageHelper(mail2, true);
 
 				helper2.setFrom("yaoyi_report@yaoyi.net");
 				helper2.setTo(dept.getEmails());
@@ -540,16 +543,19 @@ public class SpringBeanTaskDemo {
 				reqParams2.put("mahSettleDeptId", dept.getDeptId());
 				reqParams2.put("notifyTime", new LocalDateTime[]{startOfDay, endOfDay});
 				List<WmScorePackageSettleExcelModel> excelModels2 = remoteScorePackageService.exportPackageSettleByMAH(reqParams2, SecurityConstants.FROM_IN);
-				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()));
-				helper2.setText(String.format("当日结算成功%s条,详情数据见附件", excelModels2.size()));
-
-				sender.send(mail2);
-				log.info("{}MAH企业结算成功数据发送成功", dept.getDeptId());
+
+				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企业结算成功数据发送成功", dept.getDeptId());
+				}
 			} catch (MessagingException ex) {
 				log.error("邮件发送失败", ex);
 			}