From f4dd14d80b2a1565fabf835f8e05a8458b873ba8 Mon Sep 17 00:00:00 2001
From: Jack <jack.su@pollex.com.tw>
Date: 星期三, 19 一月 2022 18:58:49 +0800
Subject: [PATCH] [BUG] 預約單結案未修改預約單最後溪改時間(todo : 134359)

---
 pamapi/src/main/java/com/pollex/pam/appointment/process/AppointmentProcess.java |   46 +++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 43 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..979ebba 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,43 @@
 	@Autowired
 	List<AppointmentProcessInterface> processList;
 	
+	@Autowired
+	AppointmentService appointmentService;
+	
+	@Autowired
+	AppointmentRepository appointmentRepository;
+	
+	@Autowired
+	AppointmentClosedInfoRepository appointmentClosedInfoRepository;
+	
 	public void process(AbstractAppointmentProcessDTO dto) {
-		AbstractAppointmentProcessDTO appointmentProcessDTO = (AbstractAppointmentProcessDTO)dto;
+		
+//		AbstractAppointmentProcessDTO appointmentProcessDTO = dto;
 		processList.stream().forEach(process ->{
-			if(process.getProcessType() == appointmentProcessDTO.getContactStatus()) {
-				process.doProcess(appointmentProcessDTO);
+			if(process.getProcessType() == dto.getContactStatus()) {
+				process.createProcess(dto);
 			}
 		});
+		
+		changeAppointmentCommunicateStatus(dto.getAppointmentId(), dto.getContactStatus());
+		
+	}
+
+	private void changeAppointmentCommunicateStatus(Long appointmentId, ContactStatusEnum contactStatus) {
+		Appointment appointment = appointmentService.findById(appointmentId);
+		appointment.setCommunicateStatus(contactStatus);
+		appointmentRepository.save(appointment);
+	}
+
+	public void editClosedInfo(AbstractAppointmentProcessDTO dto) {
+		processList.stream().forEach(process ->{
+			if(process.getProcessType() == dto.getContactStatus()) {
+				process.editClosedInfo(dto);
+			}
+		});
+		Appointment appointment = appointmentService.findById(dto.getAppointmentId());
+		appointment.setCommunicateStatus(dto.getContactStatus());
+		appointmentRepository.save(appointment);
 	}
 	
 }

--
Gitblit v1.8.0