diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingRemindRecordServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingRemindRecordServiceImpl.java index 9395b32b..452d8608 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingRemindRecordServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingRemindRecordServiceImpl.java @@ -4,6 +4,8 @@ import com.jero.meeting.entity.PayMeetingRemindRecord; import com.jero.meeting.mapper.PayMeetingRemindRecordMapper; import com.jero.meeting.service.IPayMeetingRemindRecordService; import org.springframework.stereotype.Service; + +import java.util.ArrayList; import java.util.List; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -66,13 +68,15 @@ public class PayMeetingRemindRecordServiceImpl extends ServiceImpl meetingIdList, List subitemIdList) { + List payMeetingRemindRecordList = new ArrayList<>(); for (String meetingId : meetingIdList) { - PayMeetingRemindRecord payMeetingRemindRecord = new PayMeetingRemindRecord(); - payMeetingRemindRecord.setMeetingId(meetingId); for (String subitemId : subitemIdList) { + PayMeetingRemindRecord payMeetingRemindRecord = new PayMeetingRemindRecord(); + payMeetingRemindRecord.setMeetingId(meetingId); payMeetingRemindRecord.setSubitemId(subitemId); - this.save(payMeetingRemindRecord); + payMeetingRemindRecordList.add(payMeetingRemindRecord); } } + this.saveBatch(payMeetingRemindRecordList); } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java index 07e70e73..ebfb1526 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.SendMessageService; import com.jero.common.system.api.ISysBaseAPI; @@ -12,6 +13,7 @@ import com.jero.common.system.vo.LoginUser; import com.jero.common.util.PasswordUtil; import com.jero.common.util.ValidUtil; import com.jero.company.entity.PayContactsManagement; +import com.jero.company.service.IPayCompanyManagementService; import com.jero.company.service.IPayContactsManagementService; import com.jero.data.entity.PayCaseCommittee; import com.jero.data.service.IPayCaseCommitteeService; @@ -77,6 +79,8 @@ public class PayMeetingServiceImpl extends ServiceImpl meetingIds, List subitemIds) { List payWorkingGroupSubItems = payWorkingGroupSubItemService.listByIds(subitemIds); - List userIds = new ArrayList<>(); + List companyIds = new ArrayList<>(); //用于新增关联关系 List meetingIdList = new ArrayList<>(); List subitemIdList = new ArrayList<>(); //把单位会员中所有的联系人和有机联系人取出 for (PayWorkingGroupSubItem payWorkingGroupSubItem : payWorkingGroupSubItems) { subitemIdList.add(payWorkingGroupSubItem.getId()); - String contactsTemporaryIdOne = payWorkingGroupSubItem.getContactsTemporaryIdOne(); - if (StrUtil.isNotBlank(contactsTemporaryIdOne)){ - userIds.add(contactsTemporaryIdOne); - } - String contactsTemporaryIdTwo = payWorkingGroupSubItem.getContactsTemporaryIdTwo(); - if (StrUtil.isNotBlank(contactsTemporaryIdTwo)){ - userIds.add(contactsTemporaryIdTwo); - } - String contactsTemporaryIdThree = payWorkingGroupSubItem.getContactsTemporaryIdThree(); - if (StrUtil.isNotBlank(contactsTemporaryIdThree)){ - userIds.add(contactsTemporaryIdThree); - } - String mailContactsTemporaryId = payWorkingGroupSubItem.getMailContactsTemporaryId(); - if (StrUtil.isNotBlank(mailContactsTemporaryId)){ - userIds.add(mailContactsTemporaryId); - } - - + String companyId = payWorkingGroupSubItem.getChargeCompanyId(); + companyIds.add(companyId); } //去重 - userIds = userIds.stream().distinct().collect(Collectors.toList()); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.in(PayContactsManagement::getId,userIds); + wrapper.in(PayContactsManagement::getCompanyId,companyIds); List list = payContactsManagementService.list(wrapper); - for (PayContactsManagement payContactsManagement : list) { - //TODO 发送消息 - } + //标记会议为已提醒 List payMeetings = listByIds(meetingIds); for (PayMeeting payMeeting : payMeetings) { - meetingIdList.add(payMeeting.getId()); + String meetingId = payMeeting.getId(); + meetingIdList.add(meetingId); payMeeting.setRemind(MeetingCommon.REMIND_1); saveOrUpdate(payMeeting); + //发送消息 + for (PayContactsManagement payContactsManagement : list) { + String directorId = payMeeting.getDirectorId(); + LoginUser director = sysBaseApi.getUserById(directorId); + // 给企业联系人发送消息 + String email = payContactsManagement.getEmail(); + String phone = payContactsManagement.getPhone(); + SendMessageDTO sendMessageDTO = new SendMessageDTO(); + if (!StringUtils.isBlank(email)) { + if (StringUtils.isNotBlank(payMeeting.getNotice())){ + sysBaseApi.sendEmailMsg(PasswordUtil.decrypt(email),"会议通知",payMeeting.getNotice()); + }else { + sendMessageDTO.setEmail(PasswordUtil.decrypt(email)); + } + } + if (!StringUtils.isBlank(phone)) { + sendMessageDTO.setToUser(PasswordUtil.decrypt(phone)); + sendMessageDTO.setPhone(PasswordUtil.decrypt(phone)); + } + HashMap map = new HashMap<>(); + sendMessageDTO.setFromUser(director.getUsername()); + sendMessageDTO.setTemplateCode(CompanyMessageEnums.MSG1.getCode()); + sendMessageDTO.setTemplateParam(map); + sendMessageDTO.setBusType("C_OPEN_TYPE1"); + sendMessageDTO.setBusId(meetingId); + sendMessageService.SendMessageService(sendMessageDTO); + + } } payMeetingRemindRecordService.addList(meetingIdList,subitemIdList); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java index 97331210..bcd7c1d5 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java @@ -48,6 +48,7 @@ import com.jero.standards.memberinfo.service.IMemberInfoService; import com.jero.temporary.service.IPayCompanyManagementTemporaryService; import com.jero.temporary.service.IPayContactsManagementTemporaryService; import com.jero.util.ObjRecordUtil; +import com.jero.util.module.ObjRecordUtilModule; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.jetbrains.annotations.NotNull; @@ -105,6 +106,8 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl map = new HashMap<>(); + sendMessageDTO.setFromUser(director.getUsername()); + sendMessageDTO.setTemplateCode(ManagementMessageEnums.MSG5.getCode()); + sendMessageDTO.setTemplateParam(map); + sendMessageDTO.setBusType("M_OPEN_TYPE5"); + sendMessageDTO.setBusId(payMeetingSituation1.getId()); + sendMessageService.SendMessageService(sendMessageDTO); + } } /** * 判断发送哪种类型的消息 + * * @param payMeeting * @param payMeetingSituation - * @param isSubItem 是否是组成员 + * @param isSubItem 是否是组成员 */ private void judgeSend(PayMeeting payMeeting, PayMeetingSituation payMeetingSituation, boolean isSubItem) { //工作组成员 if (isSubItem) { //不是汇款和线上缴费 - if (payMeetingSituation.getPayMode().equals(MeetingSubitemCommon.PAY_MODE_3)){ - sendMessage(payMeeting, payMeetingSituation,CompanyMessageEnums.MSG4,"C_OPEN_TYPE4"); + if (payMeetingSituation.getPayMode().equals(MeetingSubitemCommon.PAY_MODE_3)) { + sendMessage(payMeeting, payMeetingSituation, CompanyMessageEnums.MSG4, "C_OPEN_TYPE4"); } - }else { + } else { //不是汇款和线上缴费 - if (payMeetingSituation.getPayMode().equals(MeetingSubitemCommon.PAY_MODE_3)){ - sendMessage(payMeeting, payMeetingSituation,CompanyMessageEnums.MSG2,"C_OPEN_TYPE2"); - }else { - sendMessage(payMeeting, payMeetingSituation,CompanyMessageEnums.MSG3,"C_OPEN_TYPE3"); + if (payMeetingSituation.getPayMode().equals(MeetingSubitemCommon.PAY_MODE_3)) { + sendMessage(payMeeting, payMeetingSituation, CompanyMessageEnums.MSG2, "C_OPEN_TYPE2"); + } else { + sendMessage(payMeeting, payMeetingSituation, CompanyMessageEnums.MSG3, "C_OPEN_TYPE3"); } } } @@ -248,6 +275,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl fieldNames = objRecordUtilModule.getFieldNames(); + List canModifyList = Arrays.asList(CAN_MODIFY_LIST); + boolean containsAll = canModifyList.containsAll(fieldNames); + if (!containsAll){ + throw new JeroBootException("审核通过之后只允许修改行程信息"); } } //如果是对接人修改的 if (sysUserId.equals(dockId)) { //判断修改了那些字段 - String record = ObjRecordUtil.addRecord(oldObject, payMeetingSituation1); + ObjRecordUtilModule objRecordUtilModule = ObjRecordUtil.addRecord(oldObject, payMeetingSituation1); + String record = objRecordUtilModule.getInfo(); if (StringUtils.isNotBlank(record)) { // 给负责人发送消息 SendMessageDTO sendMessageDTO = new SendMessageDTO(); @@ -527,7 +558,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl class1 = oldObj.getClass(); @@ -37,6 +40,7 @@ public class ObjRecordUtil { Field[] fields1 = class1.getDeclaredFields(); Field[] fields2 = class2.getDeclaredFields(); StringBuilder info = new StringBuilder(); + List fieldNames = new ArrayList<>(); String id = null; for (Field field1 : fields1) { field1.setAccessible(true); // 设置属性是可以访问的(私有的也可以) @@ -77,6 +81,7 @@ public class ObjRecordUtil { } else { info.append(pn.value()).append(":\"").append(old).append("\" 改成 \"").append(newo).append("\","); } + fieldNames.add(field1.getName()); } } break; // 属性名称一样就退出二级循环 @@ -85,11 +90,15 @@ public class ObjRecordUtil { } if (info.length() != 0) { // 设置日志信息 - return info.substring(0, info.length() - 1); + objRecordUtilModule.setInfo(info.substring(0, info.length() - 1)); + objRecordUtilModule.setFieldNames(fieldNames); + return objRecordUtilModule; } } catch (Exception e) { e.printStackTrace(); } - return null; + objRecordUtilModule.setInfo(null); + objRecordUtilModule.setFieldNames(new ArrayList<>()); + return objRecordUtilModule; } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/util/module/ObjRecordUtilModule.java b/jero-boot-incoming-payment/src/main/java/com/jero/util/module/ObjRecordUtilModule.java new file mode 100644 index 00000000..619e65fc --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/util/module/ObjRecordUtilModule.java @@ -0,0 +1,15 @@ +package com.jero.util.module; + +import lombok.Data; + +import java.util.List; + +/** + * @author liJiaRao + * @date 2021-09-26 15:04 + */ +@Data +public class ObjRecordUtilModule { + private List fieldNames; + private String info; +}