From 3fc8398a9da85854e5e95c2c4cca14389d5dd5f8 Mon Sep 17 00:00:00 2001 From: HelenHuang <LinHuang@pollex.com.tw> Date: 星期三, 16 二月 2022 15:02:49 +0800 Subject: [PATCH] Fixed#135481 修正[ 顧問管理流程 ] 滿意度 : 顧問把預約單結案後,客戶端的顧問清單會顯示該顧問預約單狀態為「進行預約」正確 , 但是卻顯示「給予滿意度評分」的連結。填寫滿意度後無法送出 --- pamapi/src/main/java/com/pollex/pam/appointment/process/DoneProcess.java | 51 ++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 36 insertions(+), 15 deletions(-) diff --git a/pamapi/src/main/java/com/pollex/pam/appointment/process/DoneProcess.java b/pamapi/src/main/java/com/pollex/pam/appointment/process/DoneProcess.java index e65a084..f42257e 100644 --- a/pamapi/src/main/java/com/pollex/pam/appointment/process/DoneProcess.java +++ b/pamapi/src/main/java/com/pollex/pam/appointment/process/DoneProcess.java @@ -1,43 +1,64 @@ package com.pollex.pam.appointment.process; -import java.util.Optional; - import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +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.service.AppointmentClosedInfoService; +import com.pollex.pam.service.AppointmentService; +import com.pollex.pam.service.SatisfactionService; import com.pollex.pam.service.dto.AbstractAppointmentProcessDTO; import com.pollex.pam.service.dto.DoneProcessDTO; @Service +@Transactional public class DoneProcess implements AppointmentProcessInterface{ - + @Autowired AppointmentClosedInfoRepository appointmentClosedInfoRepository; + @Autowired + AppointmentClosedInfoService appointmentClosedInfoService; + + @Autowired + SatisfactionService satisfactionService; + + @Autowired + AppointmentService appointmentService; + @Override - public void doProcess(AbstractAppointmentProcessDTO processDTO) { - checkClosedInfo(processDTO.getAppointmentId()); - DoneProcessDTO doneProcess = (DoneProcessDTO)processDTO; - BeanUtils.copyProperties(processDTO, doneProcess); + public AppointmentClosedInfo create(AbstractAppointmentProcessDTO processDTO) { + DoneProcessDTO doneProcess = toDoneProcessDTO(processDTO); AppointmentClosedInfo closedInfo = new AppointmentClosedInfo(); BeanUtils.copyProperties(doneProcess, closedInfo); - appointmentClosedInfoRepository.save(closedInfo); + Appointment appointment = appointmentService.findById(processDTO.getAppointmentId()); + satisfactionService.createAppointmentSatisfaction(appointment); + return appointmentClosedInfoRepository.save(closedInfo); } @Override public ContactStatusEnum getProcessType() { return ContactStatusEnum.DONE; } - - private void checkClosedInfo(Long appointmentId) { - Optional<AppointmentClosedInfo> closedInfo = appointmentClosedInfoRepository.findByAppointmentId(appointmentId); - if(closedInfo.isPresent()) { - throw new IllegalArgumentException("appointment closed info exist"); - } + + @Override + public AppointmentClosedInfo editClosedInfo( + AbstractAppointmentProcessDTO abstractDTO + , AppointmentClosedInfo closedInfo) { + DoneProcessDTO doneProcess = toDoneProcessDTO(abstractDTO); + BeanUtils.copyProperties(doneProcess, closedInfo); + return appointmentClosedInfoRepository.save(closedInfo); } - + + private DoneProcessDTO toDoneProcessDTO(AbstractAppointmentProcessDTO abstractDTO) { + DoneProcessDTO doneProcess = (DoneProcessDTO)abstractDTO; + BeanUtils.copyProperties(abstractDTO, doneProcess); + return doneProcess; + } + } -- Gitblit v1.8.0