From c2a3da1d4071f2f1d6a5beb63b8442920767584e Mon Sep 17 00:00:00 2001 From: Jack <jack.su@pollex.com.tw> Date: 星期二, 18 一月 2022 20:33:52 +0800 Subject: [PATCH] [ADD] 結案明細編輯API --- pamapi/src/main/java/com/pollex/pam/appointment/process/ClosedProcess.java | 28 +++++++++++--- pamapi/src/main/java/com/pollex/pam/appointment/process/AppointmentProcessInterface.java | 4 + pamapi/src/main/java/com/pollex/pam/appointment/process/AppointmentProcess.java | 18 +++++++- pamapi/src/main/java/com/pollex/pam/service/dto/AbstractAppointmentProcessDTO.java | 9 ++++ pamapi/src/main/java/com/pollex/pam/web/rest/AppointmentResource.java | 18 +++++++++ pamapi/src/main/java/com/pollex/pam/appointment/process/DoneProcess.java | 28 ++++++++++++-- pamapi/src/doc/預約單/結案API.txt | 5 ++ pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentCloseDTO.java | 9 ++++ 8 files changed, 104 insertions(+), 15 deletions(-) diff --git "a/pamapi/src/doc/\351\240\220\347\264\204\345\226\256/\347\265\220\346\241\210API.txt" "b/pamapi/src/doc/\351\240\220\347\264\204\345\226\256/\347\265\220\346\241\210API.txt" index 430265f..0b0e66a 100644 --- "a/pamapi/src/doc/\351\240\220\347\264\204\345\226\256/\347\265\220\346\241\210API.txt" +++ "b/pamapi/src/doc/\351\240\220\347\264\204\345\226\256/\347\265\220\346\241\210API.txt" @@ -1,7 +1,10 @@ http post : - +�憓���敦: http://localhost:8080/api/appointment/close +��蝯��敦: +http://localhost:8080/api/appointment/close/info/edit + request body : 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 4f72f86..323773b 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 @@ -13,6 +13,7 @@ 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{ @@ -31,10 +32,21 @@ 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); + } + }); + Appointment appointment = appointmentService.findById(dto.getAppointmentId()); + appointment.setCommunicateStatus(dto.getContactStatus()); + 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()); diff --git a/pamapi/src/main/java/com/pollex/pam/appointment/process/AppointmentProcessInterface.java b/pamapi/src/main/java/com/pollex/pam/appointment/process/AppointmentProcessInterface.java index 140f01f..ab99efa 100644 --- a/pamapi/src/main/java/com/pollex/pam/appointment/process/AppointmentProcessInterface.java +++ b/pamapi/src/main/java/com/pollex/pam/appointment/process/AppointmentProcessInterface.java @@ -1,11 +1,13 @@ package com.pollex.pam.appointment.process; +import com.pollex.pam.domain.AppointmentClosedInfo; import com.pollex.pam.enums.ContactStatusEnum; import com.pollex.pam.service.dto.AbstractAppointmentProcessDTO; public interface AppointmentProcessInterface { - void doProcess(AbstractAppointmentProcessDTO dto); + void createProcess(AbstractAppointmentProcessDTO dto); + AppointmentClosedInfo editClosedInfo(AbstractAppointmentProcessDTO dto); ContactStatusEnum getProcessType(); } 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 index 978cb7c..2e75575 100644 --- a/pamapi/src/main/java/com/pollex/pam/appointment/process/ClosedProcess.java +++ b/pamapi/src/main/java/com/pollex/pam/appointment/process/ClosedProcess.java @@ -10,10 +10,12 @@ 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.dto.AbstractAppointmentProcessDTO; import com.pollex.pam.service.dto.ClosedProcessDTO; import com.pollex.pam.service.dto.DoneProcessDTO; +import com.pollex.pam.web.rest.errors.AppointmentClosedInfoNotFoundException; @Service public class ClosedProcess implements AppointmentProcessInterface{ @@ -24,18 +26,23 @@ @Autowired AppointmentService appointmentService; - + @Autowired + AppointmentClosedInfoService appointmentClosedInfoService; @Override - public void doProcess(AbstractAppointmentProcessDTO processDTO) { - + public void createProcess(AbstractAppointmentProcessDTO processDTO) { checkClosedInfo(processDTO.getAppointmentId()); - ClosedProcessDTO doneProcess = (ClosedProcessDTO)processDTO; - BeanUtils.copyProperties(processDTO, doneProcess); + ClosedProcessDTO closeProcess = toClosedProcessDTO(processDTO); AppointmentClosedInfo closedInfo = new AppointmentClosedInfo(); - BeanUtils.copyProperties(doneProcess, closedInfo); + BeanUtils.copyProperties(closeProcess, closedInfo); appointmentClosedInfoRepository.save(closedInfo); + } + + private ClosedProcessDTO toClosedProcessDTO(AbstractAppointmentProcessDTO processDTO) { + ClosedProcessDTO closeProcess = (ClosedProcessDTO)processDTO; + BeanUtils.copyProperties(processDTO, closeProcess); + return closeProcess; } private void checkClosedInfo(Long appointmentId) { @@ -49,6 +56,15 @@ public ContactStatusEnum getProcessType() { return ContactStatusEnum.CLOSED; } + + @Override + public AppointmentClosedInfo editClosedInfo(AbstractAppointmentProcessDTO abstractDTO) { + ClosedProcessDTO closeProcess = toClosedProcessDTO(abstractDTO); + AppointmentClosedInfo closedInfo = appointmentClosedInfoService.findByAppointmentId(abstractDTO.getAppointmentId()); + + BeanUtils.copyProperties(closeProcess, closedInfo); + return appointmentClosedInfoRepository.save(closedInfo); + } } 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..9034f50 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 @@ -9,20 +9,25 @@ 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.dto.AbstractAppointmentProcessDTO; +import com.pollex.pam.service.dto.ClosedProcessDTO; import com.pollex.pam.service.dto.DoneProcessDTO; +import com.pollex.pam.web.rest.errors.AppointmentClosedInfoNotFoundException; @Service public class DoneProcess implements AppointmentProcessInterface{ @Autowired AppointmentClosedInfoRepository appointmentClosedInfoRepository; - + + @Autowired + AppointmentClosedInfoService appointmentClosedInfoService; + @Override - public void doProcess(AbstractAppointmentProcessDTO processDTO) { + public void createProcess(AbstractAppointmentProcessDTO processDTO) { checkClosedInfo(processDTO.getAppointmentId()); - DoneProcessDTO doneProcess = (DoneProcessDTO)processDTO; - BeanUtils.copyProperties(processDTO, doneProcess); + DoneProcessDTO doneProcess = toDoneProcessDTO(processDTO); AppointmentClosedInfo closedInfo = new AppointmentClosedInfo(); BeanUtils.copyProperties(doneProcess, closedInfo); appointmentClosedInfoRepository.save(closedInfo); @@ -39,5 +44,20 @@ throw new IllegalArgumentException("appointment closed info exist"); } } + + @Override + public AppointmentClosedInfo editClosedInfo(AbstractAppointmentProcessDTO abstractDTO) { + DoneProcessDTO doneProcess = toDoneProcessDTO(abstractDTO); + AppointmentClosedInfo closedInfo = appointmentClosedInfoService.findByAppointmentId(abstractDTO.getAppointmentId()); + BeanUtils.copyProperties(doneProcess, closedInfo); + return appointmentClosedInfoRepository.save(closedInfo); + } + + private DoneProcessDTO toDoneProcessDTO(AbstractAppointmentProcessDTO abstractDTO) { + + DoneProcessDTO doneProcess = (DoneProcessDTO)abstractDTO; + BeanUtils.copyProperties(abstractDTO, doneProcess); + return doneProcess; + } } diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/AbstractAppointmentProcessDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/AbstractAppointmentProcessDTO.java index feecdc2..13b270d 100644 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/AbstractAppointmentProcessDTO.java +++ b/pamapi/src/main/java/com/pollex/pam/service/dto/AbstractAppointmentProcessDTO.java @@ -6,6 +6,7 @@ private ContactStatusEnum contactStatus; private Long appointmentId; +// private Long closedInfoId; public ContactStatusEnum getContactStatus() { return contactStatus; @@ -23,6 +24,14 @@ this.appointmentId = appointmentId; } +// public Long getClosedInfoId() { +// return closedInfoId; +// } +// +// public void setClosedInfoId(Long closedInfoId) { +// this.closedInfoId = closedInfoId; +// } + } diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentCloseDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentCloseDTO.java index cbcc51f..bc9a8e2 100644 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentCloseDTO.java +++ b/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentCloseDTO.java @@ -6,6 +6,7 @@ public class AppointmentCloseDTO{ +// private Long closedInfoId; private String policyholderIdentityId; private String planCode; private Date policyEntryDate; @@ -63,6 +64,14 @@ public void setAppointmentId(Long appointmentId) { this.appointmentId = appointmentId; } +// public Long getClosedInfoId() { +// return closedInfoId; +// } +// public void setClosedInfoId(Long closedInfoId) { +// this.closedInfoId = closedInfoId; +// } + + } diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/AppointmentResource.java b/pamapi/src/main/java/com/pollex/pam/web/rest/AppointmentResource.java index 64a4d29..dd2fc14 100644 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/AppointmentResource.java +++ b/pamapi/src/main/java/com/pollex/pam/web/rest/AppointmentResource.java @@ -88,4 +88,22 @@ return ResponseEntity.noContent().build(); } + + @PostMapping("/close/info/edit") + public ResponseEntity<Void> editAppointmentClosedInfo(@RequestBody AppointmentCloseDTO closeDTO) { + + if(closeDTO.getContactStatus() == ContactStatusEnum.DONE) { + DoneProcessDTO dto = new DoneProcessDTO(); + BeanUtils.copyProperties(closeDTO, dto); + abstractAppointmentProcess.editClosedInfo(dto); + }else if(closeDTO.getContactStatus() == ContactStatusEnum.CLOSED){ + ClosedProcessDTO dto = new ClosedProcessDTO(); + BeanUtils.copyProperties(closeDTO, dto); + abstractAppointmentProcess.editClosedInfo(dto); + }else { + return ResponseEntity.notFound().build(); + } + + return ResponseEntity.noContent().build(); + } } -- Gitblit v1.8.0