From beeee55db98ec9028a3fcc6a05b844b04ba0c229 Mon Sep 17 00:00:00 2001 From: Jack <jack.su@pollex.com.tw> Date: 星期六, 22 一月 2022 10:39:16 +0800 Subject: [PATCH] [ADD] 新增小鈴鐺通知的紀錄( * 顧問主動發送滿意度給客戶的通知後,系統立即通知客戶需要填寫滿意度通知 * 顧問發送約訪通知後,系統通知客戶有約訪 * 顧問更新個人帳號通知 * 客戶取消預約單通知 * 客戶更新預約單通知 * 客戶進行滿意度評比通知) --- pamapi/src/main/java/com/pollex/pam/appointment/process/AppointmentProcess.java | 38 +++++++++++++++++++++++++++++++++++--- 1 files changed, 35 insertions(+), 3 deletions(-) diff --git a/pamapi/src/main/java/com/pollex/pam/appointment/process/AppointmentProcess.java b/pamapi/src/main/java/com/pollex/pam/appointment/process/AppointmentProcess.java index 10f2e86..846287c 100644 --- a/pamapi/src/main/java/com/pollex/pam/appointment/process/AppointmentProcess.java +++ b/pamapi/src/main/java/com/pollex/pam/appointment/process/AppointmentProcess.java @@ -1,11 +1,21 @@ package com.pollex.pam.appointment.process; +import java.time.Instant; import java.util.List; +import java.util.Optional; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import com.pollex.pam.domain.Appointment; +import com.pollex.pam.domain.AppointmentClosedInfo; +import com.pollex.pam.enums.ContactStatusEnum; +import com.pollex.pam.repository.AppointmentClosedInfoRepository; +import com.pollex.pam.repository.AppointmentRepository; +import com.pollex.pam.service.AppointmentClosedInfoService; +import com.pollex.pam.service.AppointmentService; import com.pollex.pam.service.dto.AbstractAppointmentProcessDTO; +import com.pollex.pam.service.dto.DoneProcessDTO; @Service public class AppointmentProcess{ @@ -13,13 +23,35 @@ @Autowired List<AppointmentProcessInterface> processList; + @Autowired + AppointmentService appointmentService; + + @Autowired + AppointmentRepository appointmentRepository; + + @Autowired + AppointmentClosedInfoRepository appointmentClosedInfoRepository; + public void process(AbstractAppointmentProcessDTO dto) { - AbstractAppointmentProcessDTO appointmentProcessDTO = (AbstractAppointmentProcessDTO)dto; + processList.stream().forEach(process ->{ - if(process.getProcessType() == appointmentProcessDTO.getContactStatus()) { - process.doProcess(appointmentProcessDTO); + if(process.getProcessType() == dto.getContactStatus()) { + Optional<AppointmentClosedInfo> closedInfoOP = appointmentClosedInfoRepository.findByAppointmentId(dto.getAppointmentId()); + if(closedInfoOP.isPresent()) { + process.editClosedInfo(dto, closedInfoOP.get()); + }else { + process.create(dto); + } } }); + + changeAppointmentCommunicateStatus(dto.getAppointmentId(), dto.getContactStatus()); + } + + private void changeAppointmentCommunicateStatus(Long appointmentId, ContactStatusEnum contactStatus) { + Appointment appointment = appointmentService.findById(appointmentId); + appointment.setCommunicateStatus(contactStatus); + appointmentRepository.save(appointment); } } -- Gitblit v1.8.0