德中需求验收发送多人邮件

This commit is contained in:
2025-08-01 16:59:57 +08:00
parent c68b6951e1
commit 9386e23fb4
8 changed files with 58 additions and 13 deletions

View File

@ -22,4 +22,6 @@ public interface ZtProductMapper extends BaseMapper<ZtProduct> {
List<ZtProductDTO> productPageList(@Param("qo") ZtProjectQo qo);
List<ZtProduct> productListByProgramName(@Param("programName") String programName);
}

View File

@ -54,4 +54,7 @@ public interface IZtProductService extends IService<ZtProduct> {
void productTeamUpdate(ZtProjectQo qo);
List<String> productTeamByPid(ZtProjectQo qo);
List<ZtProduct> productListByProgramName(String programName);
}

View File

@ -658,6 +658,11 @@ public class ZtProductServiceImpl extends ServiceImpl<ZtProductMapper, ZtProduct
return productTeamList.stream().map(o -> o.getAccount()).collect(Collectors.toList());
}
@Override
public List<ZtProduct> productListByProgramName(String programName) {
return this.baseMapper.productListByProgramName(programName);
}
private Map<Integer, List<ZtProductDTO>> getChildrenMap(List<ZtProjectDTO> result) {
List<ZtProduct> ztProjects = this.baseMapper.selectList(

View File

@ -2,6 +2,7 @@ package com.sa.zentao.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -22,6 +23,7 @@ import com.sa.zentao.utils.SendEmail;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
@ -69,6 +71,9 @@ public class ZtReleaseServiceImpl extends ServiceImpl<ZtReleaseMapper, ZtRelease
@Autowired
private IZtExecutionprojectService executionprojectService;
@Value("${xfx.release}")
private String [] xfxRelease;
@Override
@Transactional
public void addRelease(ZtReleaseDTO dto) {
@ -436,11 +441,32 @@ public class ZtReleaseServiceImpl extends ServiceImpl<ZtReleaseMapper, ZtRelease
b.append( "</tbody>");
b.append( "</table>");
if(!CollectionUtils.isEmpty(mailTo)){
SendEmail.sendMessage("需求发布提醒:",mailTo.stream().collect(Collectors.toList()),
null,
getFxcfCopyToMail(ztStories),
b.toString());
}
}
/**
* 飞侠车服 抄送指定人
* @param
* @return
*/
private List<String> getFxcfCopyToMail(List<ZtStory> ztStories) {
List<ZtProduct> ztProducts = this.productService.productListByProgramName("飞侠车服");
//飞侠车服产品
if(!CollectionUtils.isEmpty(ztProducts)&&xfxRelease!=null&&xfxRelease.length>0){
List<Integer> xfProductIds = ztProducts.stream().map(o -> o.getId()).collect(Collectors.toList());
for (ZtStory story : ztStories) {
if(xfProductIds.contains(story.getProduct())){
return Arrays.asList(xfxRelease);
}
}
}
return null;
}
//催促验收
private void urgeYsMail(List<ZtStory> ztStories,ZtRelease release) {
Map<String, ZtUser> userMap = this.userService.userMapByIds(null);
@ -488,7 +514,7 @@ public class ZtReleaseServiceImpl extends ServiceImpl<ZtReleaseMapper, ZtRelease
b.append( "</table>");
if(!CollectionUtils.isEmpty(mailTo)){
SendEmail.sendMessage("需求验收提醒:",mailTo.stream().collect(Collectors.toList()),
null,
getFxcfCopyToMail(ztStories),
b.toString());
}
for (ZtStory s:ztStories) {
@ -1045,5 +1071,4 @@ public class ZtReleaseServiceImpl extends ServiceImpl<ZtReleaseMapper, ZtRelease
return Arrays.asList();
}
}

View File

@ -19,6 +19,7 @@ import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Properties;
import java.util.stream.Collectors;
@Slf4j
public class SendEmail {
@ -129,14 +130,10 @@ public class SendEmail {
// 设置发件人和收件人地址
message.setFrom(new InternetAddress(username));
for (String str:mails) {
message.addRecipient(Message.RecipientType.TO, new InternetAddress(str));
}
// for (String str:mails) {
message.addRecipients(Message.RecipientType.TO, mails.stream().collect(Collectors.joining(",")));
if(!CollectionUtils.isEmpty(copyTo)){
for (String str:copyTo ) {
message.setRecipients(Message.RecipientType.CC, InternetAddress
.parse(str));
}
message.setRecipients(Message.RecipientType.CC, copyTo.stream().collect(Collectors.joining(",")));
}
if(StringUtils.isEmpty(title)){
@ -160,7 +157,7 @@ public class SendEmail {
// 发送邮件
Transport.send(message);
System.out.println("邮件发送成功!");
log.info("邮件发送成功!");
} catch (UnsupportedEncodingException e) {
log.error("{} {}",e, JSON.toJSONString(mails));
throw new BusinessException("邮件发送失败 ");

View File

@ -54,4 +54,8 @@ vx:
dkCorpsecret: 1MWQxoL8QtypfdnKJqdo3pGdZDAmdhqTF_MaWm3rVjs
salaryCorpsecretApp: BsgdcmLV5L1jbO7uro9QqdgGQaGItVb_tvfaasAq_3w
salaryCorpsecretAppUrl: https://qyapi.weixin.qq.com/cgi-bin/message/send
dkcorpsecret: 1MWQxoL8QtypfdnKJqdo3pGdZDAmdhqTF_MaWm3rVjs
dkcorpsecret: 1MWQxoL8QtypfdnKJqdo3pGdZDAmdhqTF_MaWm3rVjs
# 小飞侠发版通知和催促邮件增加抄送人
xfx:
release: gongwenyi@flying-man.cn,juntao.lin@sino-assistance.com,lizhicheng@sino-assistance.com,wangtingting@sino-assistance.com,liang.xie@sino-assistance.com,zhangyamei@sino-assistance.com

View File

@ -63,7 +63,9 @@ vx:
salaryCorpsecretAppUrl: https://qyapi.weixin.qq.com/cgi-bin/message/send
dkcorpsecret: biYcz9e1gIJSsAaTgCZXbcO8Vh9YT11JtaFeZPaPmtU #书籍
# 小飞侠发版通知和催促邮件增加抄送人
xfx:
release: sunqingfang@sino-assistance.com,4468058@qq.com
#vx:
# agentld: 1000059

View File

@ -71,4 +71,11 @@
order by id desc
</select>
<select id="productListByProgramName" resultType="com.sa.zentao.entity.ZtProduct">
select p.* from zt_product p WHERE program in (
SELECT id from zt_project pj WHERE pj.`name` = #{programName} and pj.deleted ='0'
) and deleted = '0'
</select>
</mapper>