保誠-保戶業務員媒合平台
Mila
2022-01-21 633a43b1bc57187983d8bbe85f2e835026cc37b6
pamapi/src/main/java/com/pollex/pam/appointment/process/DoneProcess.java
@@ -3,26 +3,42 @@
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) {
      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.createSatisfaction(appointment);
      return appointmentClosedInfoRepository.save(closedInfo);
   }
   @Override
@@ -30,5 +46,19 @@
      return ContactStatusEnum.DONE;
   }
   
   @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;
   }
   
}