From a3716f72066d25d745f4d5103ff23a553c3e102b Mon Sep 17 00:00:00 2001
From: wayne <wayne8692wayne8692@gmail.com>
Date: 星期四, 17 二月 2022 11:41:19 +0800
Subject: [PATCH] Merge branch 'sit' into uat

---
 pamapi/src/main/java/com/pollex/pam/appointment/process/ClosedProcess.java |   65 ++++++++++++++++++++++++++++++++
 1 files changed, 65 insertions(+), 0 deletions(-)

diff --git a/pamapi/src/main/java/com/pollex/pam/appointment/process/ClosedProcess.java b/pamapi/src/main/java/com/pollex/pam/appointment/process/ClosedProcess.java
new file mode 100644
index 0000000..69dbd24
--- /dev/null
+++ b/pamapi/src/main/java/com/pollex/pam/appointment/process/ClosedProcess.java
@@ -0,0 +1,65 @@
+package com.pollex.pam.appointment.process;
+
+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.ClosedProcessDTO;
+
+@Service
+@Transactional
+public class ClosedProcess implements AppointmentProcessInterface{
+
+	@Autowired
+	AppointmentClosedInfoRepository appointmentClosedInfoRepository;
+
+	@Autowired
+	AppointmentService appointmentService;
+
+	@Autowired
+	AppointmentClosedInfoService appointmentClosedInfoService;
+
+	@Autowired
+	SatisfactionService satisfactionService;
+
+	@Override
+	public AppointmentClosedInfo create(AbstractAppointmentProcessDTO processDTO) {
+		ClosedProcessDTO closeProcess = toClosedProcessDTO(processDTO);
+		AppointmentClosedInfo closedInfo = new AppointmentClosedInfo();
+		BeanUtils.copyProperties(closeProcess, closedInfo);
+		Appointment appointment = appointmentService.findById(processDTO.getAppointmentId());
+		satisfactionService.createAppointmentSatisfaction(appointment);
+		return appointmentClosedInfoRepository.save(closedInfo);
+	}
+
+	private ClosedProcessDTO toClosedProcessDTO(AbstractAppointmentProcessDTO processDTO) {
+		ClosedProcessDTO closeProcess = (ClosedProcessDTO)processDTO;
+		BeanUtils.copyProperties(processDTO, closeProcess);
+		return closeProcess;
+	}
+
+	@Override
+	public ContactStatusEnum getProcessType() {
+		return ContactStatusEnum.CLOSED;
+	}
+
+	@Override
+	public AppointmentClosedInfo editClosedInfo(
+			AbstractAppointmentProcessDTO abstractDTO
+			, AppointmentClosedInfo closedInfo) {
+		ClosedProcessDTO closeProcess =  toClosedProcessDTO(abstractDTO);
+		BeanUtils.copyProperties(closeProcess, closedInfo);
+		return appointmentClosedInfoRepository.save(closedInfo);
+	}
+
+
+}

--
Gitblit v1.8.0