消息变更

This commit is contained in:
梁琦涛
2021-11-01 18:33:09 +08:00
parent 3eaa21bd7a
commit afe75bd075
10 changed files with 480 additions and 56 deletions
@@ -1,6 +1,7 @@
package com.jero.mail.service.impl;
import cn.hutool.http.HttpUtil;
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;
@@ -10,6 +11,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Result;
import com.jero.common.common.ProjectCommon;
import com.jero.common.dto.SendMessageDTO;
import com.jero.common.enums.CompanyMessageEnums;
import com.jero.common.enums.ManagementMessageEnums;
import com.jero.common.exception.JeroBootException;
import com.jero.common.service.ProjectDetailService;
@@ -37,6 +39,7 @@ import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.entity.PayMeetingSituation;
import com.jero.meeting.mapper.PayMeetingMapper;
import com.jero.meeting.mapper.PayMeetingSituationMapper;
import com.jero.meeting.service.IPayMeetingService;
import com.jero.member.entity.PayMemberProject;
import com.jero.member.entity.PayMemberProjectSubitem;
import com.jero.member.entity.TbMemberProject;
@@ -45,18 +48,24 @@ import com.jero.member.mapper.PayMemberProjectMapper;
import com.jero.member.mapper.PayMemberProjectSubitemMapper;
import com.jero.member.mapper.TbMemberProjectMapper;
import com.jero.member.mapper.TbMemberProjectSubitemMapper;
import com.jero.member.service.IPayMemberProjectService;
import com.jero.member.service.ITbMemberProjectService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.payment.entity.PayPaymentRecord;
import com.jero.payment.service.IPayPaymentRecordService;
import com.jero.payment.vo.TbCheckVo;
import com.jero.project.entity.PayCommonProject;
import com.jero.project.entity.PayWorkingGroup;
import com.jero.project.entity.PayWorkingGroupSubItem;
import com.jero.project.mapper.PayCommonProjectMapper;
import com.jero.project.mapper.PayWorkingGroupMapper;
import com.jero.project.mapper.PayWorkingGroupSubItemMapper;
import com.jero.project.service.IPayWorkingGroupService;
import com.jero.temporary.entity.PayCompanyManagementTemporary;
import com.jero.temporary.entity.PayContactsManagementTemporary;
import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
@@ -114,6 +123,18 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
private SendMessageService sendMessageService;
@Resource
private ISysUserService sysUserService;
@Resource
private IPayContactsManagementTemporaryService payContactsManagementTemporaryService;
@Resource
private IPayContactsManagementService payContactsManagementService;
@Resource
private ITbMemberProjectService tbMemberProjectService;
@Resource
private IPayWorkingGroupService payWorkingGroupService;
@Resource
private IPayMeetingService payMeetingService;
@Resource
private IPayMemberProjectService memberProjectService;
@Override
@@ -204,36 +225,165 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
// 获取项目负责人,发送消息
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(!StringUtils.isEmpty(principalId)){
SysUser sysUserInfo = sysUserService.getById(payMailBill.getPrincipalId());
// 发送消息
SendMessageDTO sendMessageDTO = new SendMessageDTO();
if(!StringUtils.isBlank(sysUserInfo.getEmail())){
sendMessageDTO.setEmail(PasswordUtil.decrypt(sysUserInfo.getEmail()));
String[] str = principalId.toString().split(",");
for (int i = 0; i < str.length; i++) {
SysUser sysUserInfo = sysUserService.getById(str[i]);
// 发送消息
SendMessageDTO sendMessageDTO = new SendMessageDTO();
if(!StringUtils.isBlank(sysUserInfo.getEmail())){
sendMessageDTO.setEmail(PasswordUtil.decrypt(sysUserInfo.getEmail()));
}
if(!StringUtils.isEmpty(sysUserInfo.getPhone())){
sendMessageDTO.setPhone(PasswordUtil.decrypt(sysUserInfo.getPhone()));
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
HashMap<String,String> map = new HashMap<>();
map.put("projectName", payMailBill.getProjectName());
map.put("time", sdf.format(payMailBill.getCreateTime()));
map.put("amount", String.valueOf(payMailBill.getInvoiceAmount()));
map.put("num", String.valueOf(payMailBill.getBillNo()));
sendMessageDTO.setFromUser(sysUser.getUsername());
sendMessageDTO.setToUser(sysUserInfo.getUsername());
sendMessageDTO.setTemplateCode(ManagementMessageEnums.MSG12.getCode());
sendMessageDTO.setTemplateParam(map);
sendMessageDTO.setBusType("M_OPEN_TYPE12");
JSONObject json = new JSONObject();
json.put("id",bmpList.get(0).getProjectId());
sendMessageDTO.setBusId(json.toJSONString());
sendMessageService.SendMessageService(sendMessageDTO);
}
if(!StringUtils.isEmpty(sysUserInfo.getPhone())){
sendMessageDTO.setPhone(PasswordUtil.decrypt(sysUserInfo.getPhone()));
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
HashMap<String,String> map = new HashMap<>();
map.put("projectName", payMailBill.getProjectName());
map.put("time", sdf.format(payMailBill.getCreateTime()));
map.put("amount", String.valueOf(payMailBill.getInvoiceAmount()));
map.put("num", String.valueOf(payMailBill.getBillNo()));
sendMessageDTO.setFromUser(sysUser.getUsername());
sendMessageDTO.setToUser(sysUserInfo.getUsername());
sendMessageDTO.setTemplateCode(ManagementMessageEnums.MSG12.getCode());
sendMessageDTO.setTemplateParam(map);
sendMessageDTO.setBusType("M_OPEN_TYPE12");
// JSONObject json = new JSONObject();
// if(payWorkingGroupDistributionRecord.getProjectType() == PayProjectCommon.PROJECT_TYPE_FILE1){
// json.put("id",listStr.get(0).getSubId());
// }else if(payWorkingGroupDistributionRecord.getProjectType() == PayProjectCommon.PROJECT_TYPE_FILE2){
// json.put("id",listStr.get(0).getProjectId());
// }
// sendMessageDTO.setBusId(json.toJSONString());
sendMessageService.SendMessageService(sendMessageDTO);
}
if(!CollectionUtils.isEmpty(bmpList)){
// 获取项目企业联系人 发消息
bmpList.forEach(p->{
String project = "";
List<PayContactsManagementTemporary> listId = new ArrayList<>();
//累加主列表实收金额
switch (String.valueOf(p.getProjectType())){
// 普通项目
case PayIncomeContractCommon.PROJECT_TYPE1:
PayCommonProject payCommonProject = payCommonProjectMapper.selectById(p.getProjectId());
if(Objects.isNull(payCommonProject)){
throw new JeroBootException("项目不存在!");
}
PayContactsManagementTemporary payCommonProjectTemporary = payContactsManagementTemporaryService.getById(payCommonProject.getContactsTemporaryId());
if(!Objects.isNull(payCommonProjectTemporary)){
listId.add(payCommonProjectTemporary);
}
project = payCommonProject.getChargeProject();
break;
// 工作组项目
case PayIncomeContractCommon.PROJECT_TYPE2:
PayWorkingGroupSubItem payWorking = payWorkingGroupSubItemMapper.selectById(p.getProjectId());
if(Objects.isNull(payWorking)){
throw new JeroBootException("项目不存在!");
}
PayWorkingGroup payWorkingGroup = payWorkingGroupService.getById(payWorking.getWorkingGroupId());
if(Objects.isNull(payWorkingGroup)){
throw new JeroBootException("工作组不存在!");
}
PayContactsManagementTemporary payWorkingTemporaryOne = payContactsManagementTemporaryService.getById(payWorking.getContactsTemporaryIdOne());
if(!Objects.isNull(payWorkingTemporaryOne)){
listId.add(payWorkingTemporaryOne);
}
if(!StringUtils.isBlank(payWorking.getContactsTemporaryIdTwo())){
PayContactsManagementTemporary payWorkingTemporaryTwo = payContactsManagementTemporaryService.getById(payWorking.getContactsTemporaryIdTwo());
if(!Objects.isNull(payWorkingTemporaryTwo)){
listId.add(payWorkingTemporaryTwo);
}
}
if(!StringUtils.isBlank(payWorking.getContactsTemporaryIdThree())){
PayContactsManagementTemporary payWorkingTemporaryThree = payContactsManagementTemporaryService.getById(payWorking.getContactsTemporaryIdThree());
if(!Objects.isNull(payWorkingTemporaryThree)){
listId.add(payWorkingTemporaryThree);
}
}
project = payWorkingGroup.getWorkingGroupProject();
break;
//会议项目
case PayIncomeContractCommon.PROJECT_TYPE3:
PayMeetingSituation meeting = payMeetingSituationMapper.selectById(p.getProjectId());
if(Objects.isNull(meeting)){
throw new JeroBootException("项目不存在!");
}
PayMeeting payMeeting = payMeetingService.getById(meeting.getMeetingId());
if(Objects.isNull(payMeeting)){
throw new JeroBootException("会议不存在!");
}
PayContactsManagement meetingPayContactsManagement = payContactsManagementService.getById(meeting.getContractId());
if(!Objects.isNull(meetingPayContactsManagement)){
String str = JSON.toJSONString(meetingPayContactsManagement);
PayContactsManagementTemporary meetingTemporary = JSONObject.parseObject(str,PayContactsManagementTemporary.class);
listId.add(meetingTemporary);
}
project = payMeeting.getMeetingName();
break;
//会员项目
case PayIncomeContractCommon.PROJECT_TYPE4:
PayMemberProjectSubitem member = payMemberProjectSubitemMapper.selectById(p.getProjectId());
if(Objects.isNull(member)){
throw new JeroBootException("项目不存在!");
}
PayMemberProject payMemberProject = memberProjectService.getById(member.getProjectId());
if(Objects.isNull(payMemberProject)){
throw new JeroBootException("会员项目不存在!");
}
PayContactsManagementTemporary memberTemporary = payContactsManagementTemporaryService.getById(member.getCompanyContactTemporaryId());
if(!Objects.isNull(memberTemporary)){
listId.add(memberTemporary);
}
project = payMemberProject.getProjectName();
break;
//标协会员
case PayIncomeContractCommon.PROJECT_TYPE5:
TbMemberProjectSubitem tbMember = tbMemberProjectSubitemMapper.selectById(p.getProjectId());
if(Objects.isNull(tbMember)){
throw new JeroBootException("标协会员成员不存在!");
}
TbMemberProject tbMemberProject = tbMemberProjectService.getById(tbMember.getProjectId());
if(Objects.isNull(tbMemberProject)){
throw new JeroBootException("标协会员不存在!");
}
project = tbMemberProject.getProjectName();
PayContactsManagement tbMemberPayContactsManagement = payContactsManagementService.getById(tbMember.getLiaisonManId());
if(!Objects.isNull(tbMemberPayContactsManagement)){
String str = JSON.toJSONString(tbMemberPayContactsManagement);
PayContactsManagementTemporary meetingTemporary = JSONObject.parseObject(str,PayContactsManagementTemporary.class);
listId.add(meetingTemporary);
}
break;
default:break;
}
// 发送给项目企业联系人
if(!CollectionUtils.isEmpty(listId)){
String finalProject = project;
listId.forEach(p1->{
// 发送消息
SendMessageDTO sendMessageDTO = new SendMessageDTO();
if(!StringUtils.isBlank(p1.getEmail())){
sendMessageDTO.setEmail(PasswordUtil.decrypt(p1.getEmail()));
}
if(!StringUtils.isEmpty(p1.getPhone())){
sendMessageDTO.setPhone(PasswordUtil.decrypt(p1.getPhone()));
sendMessageDTO.setToUser(PasswordUtil.decrypt(p1.getPhone()));
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
HashMap<String,String> map = new HashMap<>();
map.put("projectName", finalProject);
sendMessageDTO.setFromUser(sysUser.getUsername());
sendMessageDTO.setTemplateCode(CompanyMessageEnums.MSG15.getCode());
sendMessageDTO.setTemplateParam(map);
sendMessageDTO.setBusType("C_OPEN_TYPE15");
JSONObject json = new JSONObject();
json.put("id",p.getProjectId());
sendMessageDTO.setBusId(json.toJSONString());
sendMessageService.SendMessageService(sendMessageDTO);
});
}
});
}
return Result.OK("添加成功!");
}
@@ -353,7 +503,7 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
return "打包开票只能是同一个企业";
}
oldInvoiceAmount = payCommonProject.getInvoiceAmount();
if(oldInvoiceAmount==null){
if(oldInvoiceAmount == null){
oldInvoiceAmount= new BigDecimal("0");
}
//之前开票总额+本次开票金额