From ce6866555d182e6a1a0c8cc21ebb3cb4a84b4df1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= <18222067976@163.com> Date: Thu, 16 Sep 2021 18:06:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E7=BB=84=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PayWorkingGroupSubItemController.java | 59 +++++++++++++- .../entity/PayWorkingGroupSubItem.java | 6 ++ ...ingGroupDistributionRecordServiceImpl.java | 79 +++++++++++++++---- 3 files changed, 126 insertions(+), 18 deletions(-) diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayWorkingGroupSubItemController.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayWorkingGroupSubItemController.java index 71d2494b..f47a59fc 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayWorkingGroupSubItemController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayWorkingGroupSubItemController.java @@ -4,6 +4,8 @@ import java.util.*; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -14,16 +16,21 @@ import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.base.controller.JeroController; import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.vo.DictModel; +import com.jero.common.util.PasswordUtil; import com.jero.common.util.ValidUtil; import com.jero.common.vo.ProjectDetailVO; import com.jero.contract.entity.PayIncomeContractAssociated; import com.jero.contract.service.IPayIncomeContractAssociatedService; +import com.jero.modules.message.handle.impl.EmailSendMsgHandle; import com.jero.project.common.PayProjectCommon; import com.jero.project.entity.*; +import com.jero.project.service.IPayWorkingGroupService; import com.jero.project.service.IPayWorkingGroupSubItemService; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.project.vo.SetChargeInput; +import com.jero.temporary.entity.PayContactsManagementTemporary; +import com.jero.temporary.service.IPayContactsManagementTemporaryService; import com.jero.util.AmountUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; @@ -57,6 +64,10 @@ public class PayWorkingGroupSubItemController extends JeroController reminders(@RequestBody PayWorkingGroupSubItem payWorkingGroupSubItem) { + if (StringUtils.isBlank(payWorkingGroupSubItem.getProjectIds())) { + return Result.error("id不能为空!"); + } + String[] s = payWorkingGroupSubItem.getProjectIds().split(","); + for (String s1 : s) { + if (StringUtils.isBlank(s1)) { + return Result.error("id不能为空!"); + } + } + List listPayWorkingGroupSubItem = payWorkingGroupSubItemService.listByIds(Arrays.asList(s)); + if(CollectionUtils.isEmpty(listPayWorkingGroupSubItem)){ + return Result.error("项目不存在!"); + } + PayWorkingGroup payWorkingGroup = payWorkingGroupService.getById(listPayWorkingGroupSubItem.get(0).getWorkingGroupId()); + if(Objects.isNull(payWorkingGroup)){ + return Result.error("工作组不存在!"); + } + List listContacts = listPayWorkingGroupSubItem.stream().map(PayWorkingGroupSubItem::getContactsTemporaryIdOne).collect(Collectors.toList()); + List listPayContactsManagementTemporary = payContactsManagementTemporaryService.listByIds(listContacts); + if(CollectionUtils.isEmpty(listPayContactsManagementTemporary)){ + return Result.error("联系人不存在!"); + } + listPayWorkingGroupSubItem.forEach(p->{ + List listContactsEmail = listPayContactsManagementTemporary.stream().filter(item->Objects.equals(p.getContactsTemporaryIdOne(),item.getId())).collect(Collectors.toList()); + if(CollectionUtils.isEmpty(listContactsEmail)){ + return; + } + if(StringUtils.isBlank(listContactsEmail.get(0).getEmail())){ + return; + } + String msg = "中汽数据中心提醒您,贵公司与中汽数据签订的" + payWorkingGroup.getWorkingGroupProject() + + "项目款项仍未结余,请及时汇款,如已经汇款,请忽略此条通知。谢谢合作"; + EmailSendMsgHandle emailHandle = new EmailSendMsgHandle(); + emailHandle.SendMsg(PasswordUtil.decrypt(listContactsEmail.get(0).getEmail()), "", msg); + }); + return Result.OK("添加成功!"); + } + /** * 通过id删除 * diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkingGroupSubItem.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkingGroupSubItem.java index b2bca20b..debd3258 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkingGroupSubItem.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkingGroupSubItem.java @@ -4,6 +4,7 @@ import java.io.Serializable; import java.math.BigDecimal; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.jero.common.aspect.annotation.Dict; @@ -184,4 +185,9 @@ public class PayWorkingGroupSubItem implements Serializable { @DecimalMax(value = "9999999999.99",message = "开票金额格式错误") @JsonFormat(shape = JsonFormat.Shape.STRING) private BigDecimal invoiceAmount; + + /**项目ids 多个以逗号分隔*/ + @TableField(exist = false) + @ApiModelProperty(value = "项目ids 多个以逗号分隔") + private java.lang.String projectIds; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayWorkingGroupDistributionRecordServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayWorkingGroupDistributionRecordServiceImpl.java index 8a15c868..3c4c0020 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayWorkingGroupDistributionRecordServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayWorkingGroupDistributionRecordServiceImpl.java @@ -1,11 +1,16 @@ package com.jero.project.service.impl; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.api.vo.Result; import com.jero.common.exception.JeroBootException; +import com.jero.common.util.PasswordUtil; import com.jero.company.entity.PayContactsManagement; import com.jero.company.service.IPayContactsManagementService; +import com.jero.modules.message.handle.impl.EmailSendMsgHandle; +import com.jero.modules.oss.entity.OSSFile; +import com.jero.modules.oss.service.IOSSFileService; import com.jero.project.common.PayProjectCommon; import com.jero.project.entity.PayWorkingGroupDataFile; import com.jero.project.entity.PayWorkingGroupDistributionRecord; @@ -19,9 +24,11 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -40,6 +47,9 @@ public class PayWorkingGroupDistributionRecordServiceImpl extends ServiceImpl listFile = new ArrayList<>(); + listFile.add(fileName); + List list = new ArrayList<>(); if(payWorkingGroupDistributionRecord.getProjectType() != PayProjectCommon.PROJECT_TYPE_FILE1){ LambdaQueryWrapper queryPayContactsManagementTemporary = new LambdaQueryWrapper<>(); - queryPayContactsManagementTemporary.in(PayContactsManagementTemporary::getId, Arrays.asList(payWorkingGroupDistributionRecord.getContactsIds().split(","))); + queryPayContactsManagementTemporary.in(PayContactsManagementTemporary::getId, Arrays.asList(s)); List listContacts = payContactsManagementTemporaryService.list(queryPayContactsManagementTemporary); if(!CollectionUtils.isEmpty(listContacts)){ - // todo 调用发送邮箱接口 - List list = listContacts.stream().map(PayContactsManagementTemporary::getEmail).collect(Collectors.toList()); + list = listContacts.stream().map(PayContactsManagementTemporary::getEmail).collect(Collectors.toList()); } }else if(payWorkingGroupDistributionRecord.getProjectType() != PayProjectCommon.PROJECT_TYPE_FILE2){ @@ -70,12 +87,23 @@ public class PayWorkingGroupDistributionRecordServiceImpl extends ServiceImpl listContacts = payContactsManagementService.list(queryPayContactsManagement); if(!CollectionUtils.isEmpty(listContacts)){ - // todo 调用发送邮箱接口 - List list = listContacts.stream().map(PayContactsManagement::getEmail).collect(Collectors.toList()); + list = listContacts.stream().map(PayContactsManagement::getEmail).collect(Collectors.toList()); } }else{ throw new JeroBootException("项目状态不正确!"); } + if(CollectionUtils.isEmpty(list) || CollectionUtils.isEmpty(listFile)){ + throw new JeroBootException("分发失败!"); + } + list.forEach(p->{ + if(StringUtils.isBlank(p)){ + return; + } + p = PasswordUtil.decrypt(p); + }); + String str = JSON.toJSONString(list); + EmailSendMsgHandle emailHandle = new EmailSendMsgHandle(); + emailHandle.SendMsgAndFile(str, "", "", listFile); } @Override @@ -99,30 +127,47 @@ public class PayWorkingGroupDistributionRecordServiceImpl extends ServiceImpl listPayWorkingGroupDataFile = payWorkingGroupDataFileService.list(); - - + List listPayWorkingGroupDataFile = payWorkingGroupDataFileService.listByIds(Arrays.asList(payWorkingGroupDistributionRecord.getDataIds().split(","))); + if(CollectionUtils.isEmpty(listPayWorkingGroupDataFile)){ + throw new JeroBootException("没有找到文件!"); + } + List listFile = new ArrayList<>(); + listPayWorkingGroupDataFile.forEach(p->{ + OSSFile byId = iossFileService.getById(p.getFileId()); + // 文件名称 + String fileName = byId.getFileName(); + listFile.add(fileName); + }); + List list = new ArrayList<>(); if(payWorkingGroupDistributionRecord.getProjectType() != PayProjectCommon.PROJECT_TYPE_FILE1){ LambdaQueryWrapper queryPayContactsManagementTemporary = new LambdaQueryWrapper<>(); - queryPayContactsManagementTemporary.in(PayContactsManagementTemporary::getId, Arrays.asList(payWorkingGroupDistributionRecord.getContactsIds().split(","))); + queryPayContactsManagementTemporary.in(PayContactsManagementTemporary::getId, Arrays.asList(s)); List listContacts = payContactsManagementTemporaryService.list(queryPayContactsManagementTemporary); if(!CollectionUtils.isEmpty(listContacts)){ - // todo 调用发送邮箱接口 - List list = listContacts.stream().map(PayContactsManagementTemporary::getEmail).collect(Collectors.toList()); + list = listContacts.stream().map(PayContactsManagementTemporary::getEmail).collect(Collectors.toList()); } }else if(payWorkingGroupDistributionRecord.getProjectType() != PayProjectCommon.PROJECT_TYPE_FILE2){ LambdaQueryWrapper queryPayContactsManagement = new LambdaQueryWrapper<>(); - queryPayContactsManagement.in(PayContactsManagement::getId, Arrays.asList(payWorkingGroupDistributionRecord.getContactsIds().split(","))); + queryPayContactsManagement.in(PayContactsManagement::getId, Arrays.asList(n)); List listContacts = payContactsManagementService.list(queryPayContactsManagement); if(!CollectionUtils.isEmpty(listContacts)){ - // todo 调用发送邮箱接口 - List list = listContacts.stream().map(PayContactsManagement::getEmail).collect(Collectors.toList()); + list = listContacts.stream().map(PayContactsManagement::getEmail).collect(Collectors.toList()); } }else{ throw new JeroBootException("项目状态不正确!"); } -// EmailSendMsgHandle emailHandle = new EmailSendMsgHandle(); -// emailHandle.SendMsgAndFile(mails, stringBuilder.toString(), stringBuilder.toString(), fileList); + if(CollectionUtils.isEmpty(list) || CollectionUtils.isEmpty(listFile)){ + throw new JeroBootException("分发失败!"); + } + list.forEach(p->{ + if(StringUtils.isBlank(p)){ + return; + } + p = PasswordUtil.decrypt(p); + }); + String str = JSON.toJSONString(list); + EmailSendMsgHandle emailHandle = new EmailSendMsgHandle(); + emailHandle.SendMsgAndFile(str, "", "", listFile); } }