From 8fca73e0a40c195da1b273f9235aacf6015ddce0 Mon Sep 17 00:00:00 2001 From: "DozorovaA.A" Date: Sun, 2 Apr 2023 17:32:05 +0400 Subject: [PATCH] add entity company --- build.gradle | 3 +- data.mv.db | Bin 0 -> 20480 bytes .../com/example/demo/WebConfiguration.java | 2 +- .../controller/AppointmentController.java | 43 +++++ .../speaker/controller/CompanyController.java | 56 +++++++ .../controller/EmployeeController.java | 76 +++++++++ .../controller/ReportSotrController.java | 66 -------- .../RequestForCooperationController.java | 102 ++++++++++++ .../controller/TypeSotrController.java | 37 ----- .../speaker/controller/WorkerController.java | 43 ----- .../demo/speaker/model/Appointment.java | 53 ++++++ .../example/demo/speaker/model/Company.java | 87 ++++++++++ .../example/demo/speaker/model/Employee.java | 70 ++++++++ .../demo/speaker/model/ReportSort.java | 107 ------------ .../speaker/model/RequestForCooperation.java | 117 ++++++++++++++ .../demo/speaker/model/TypeOfRequestEnum.java | 6 + .../example/demo/speaker/model/TypeSotr.java | 39 ----- .../example/demo/speaker/model/Worker.java | 47 ------ ...rtService.java => AppointmentService.java} | 34 ++-- .../demo/speaker/service/CompanyService.java | 56 +++++++ .../demo/speaker/service/EmployeeService.java | 83 ++++++++++ .../speaker/service/ReportSotrService.java | 69 -------- .../service/RequestForCooperationService.java | 70 ++++++++ .../demo/speaker/service/WorkerService.java | 65 -------- .../example/demo/DemoApplicationTests.java | 13 -- src/test/java/com/example/demo/JPATests.java | 152 ++++++++++++++---- src/test/resources/application.properties | 6 + 27 files changed, 962 insertions(+), 540 deletions(-) create mode 100644 data.mv.db create mode 100644 src/main/java/com/example/demo/speaker/controller/AppointmentController.java create mode 100644 src/main/java/com/example/demo/speaker/controller/CompanyController.java create mode 100644 src/main/java/com/example/demo/speaker/controller/EmployeeController.java delete mode 100644 src/main/java/com/example/demo/speaker/controller/ReportSotrController.java create mode 100644 src/main/java/com/example/demo/speaker/controller/RequestForCooperationController.java delete mode 100644 src/main/java/com/example/demo/speaker/controller/TypeSotrController.java delete mode 100644 src/main/java/com/example/demo/speaker/controller/WorkerController.java create mode 100644 src/main/java/com/example/demo/speaker/model/Appointment.java create mode 100644 src/main/java/com/example/demo/speaker/model/Company.java create mode 100644 src/main/java/com/example/demo/speaker/model/Employee.java delete mode 100644 src/main/java/com/example/demo/speaker/model/ReportSort.java create mode 100644 src/main/java/com/example/demo/speaker/model/RequestForCooperation.java create mode 100644 src/main/java/com/example/demo/speaker/model/TypeOfRequestEnum.java delete mode 100644 src/main/java/com/example/demo/speaker/model/TypeSotr.java delete mode 100644 src/main/java/com/example/demo/speaker/model/Worker.java rename src/main/java/com/example/demo/speaker/service/{TypeSortService.java => AppointmentService.java} (54%) create mode 100644 src/main/java/com/example/demo/speaker/service/CompanyService.java create mode 100644 src/main/java/com/example/demo/speaker/service/EmployeeService.java delete mode 100644 src/main/java/com/example/demo/speaker/service/ReportSotrService.java create mode 100644 src/main/java/com/example/demo/speaker/service/RequestForCooperationService.java delete mode 100644 src/main/java/com/example/demo/speaker/service/WorkerService.java delete mode 100644 src/test/java/com/example/demo/DemoApplicationTests.java create mode 100644 src/test/resources/application.properties diff --git a/build.gradle b/build.gradle index 45c0620..d48fe14 100644 --- a/build.gradle +++ b/build.gradle @@ -15,8 +15,7 @@ repositories { dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' - implementation 'org.springframework.boot:spring-boot-starter-data-jpa' - implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + implementation 'com.h2database:h2:2.1.210' testImplementation 'org.springframework.boot:spring-boot-starter-test' } diff --git a/data.mv.db b/data.mv.db new file mode 100644 index 0000000000000000000000000000000000000000..1ee5c62aa1a9784ded369f33ed42aa177c329807 GIT binary patch literal 20480 zcmeI4%X8aA7{Dc`dDJC^3p1QLTQ_Zz;(DaDBuhF~v6V*DFKi`kP98m0X{L^yah#I$ z)B{Ig7&yQI&K$XMWw>x)h6@M&0504(a^}-YvK=RmQ%HFX>%+>DzWw&oZ&x0D4{Jlm zS-0Kwp6XJxZSFoNx+n-j)_Zc;d8+5LUYj@_UCeqt;`E8Hi>l%(zDx=d$p+otp3?^% z&q(iJx7z{npiTPT6VlT~#lwzFv^2*)i~u9R2rvSS03*N%FanGKBftnS0*nA7@Q)JM zVE+F<%AXC+2rvSS03*N%FanGKBftnS0*nA7zzF;u1fnFr7}o&cY@39s{yk@3*PuPp zB~i$B$Wb2>`}@ugIe;>OUboxVC8!V(gh26>Y=3u;=#nxh0T8qOuBS^_Mwj`4Dgr*> zf8JY`rRJM^^bB}QOyGJx19DNv5)u3(z@fp+2h+|!oHhpbl)pEeP>ka%4{@4$qroN;5%IAoAh{hpLFb= z(>Z{Nf%=kzsB7PG+axEvPDT1;Zy!KG_v>{3u;X{j-JP6BN7GwWkv^`7%IX8zJ7HHn z)|-7wj`d_oWuG~1Jy~(LsTf!eqn(yY*4%2OY+%=E$z8SD2jcki? zP1eO@UgH&B<@3DE7kCM#@|~HFXSgfe{2nZU+^#Eqs3eKH9RD5nu!u0Y-okU<4QeMt~7u1f~!e z_rH@mdU04suS&k)%Yky4-gKfX9gUy-2OxjS{};X3|CeI_A4mSbO8tLXQN76j#|3o| z0KhZ=fF&^*7((0rjlNFW8I;9=~GqF-=Tmk{66JSp!B zit7tl3p`QAvJ~V!A{CTC^hI!%K#x(XSXD6hSN>a`o8{&ykq?OU4A)y6w8?fo?{MGgc*nZnO!N(->Bo-e zL_Xo&AEI@>^+6aBVE#W1CNTeh%8wsA%?L08i~u9R2rvSS03*N%{LcuC``?K_hKK&Y zCWHU4zEb}`KX?bgF#qq<{6B#g0nq%vd@}#F`}orR|CEsW zoJ%d7RRACp7ptlo3@ZUV#mOsPLH-w)1iXTpgw#xU15K?pcm*RbTpixJ|B_OM+27_B ze)c-Vi)OCO&do1eO<#L$@%n!tc61A&#V=EF6su?yH_Q^UjkU6gGWE^1vQ^CFG7Ym{ zYuK$OG?|rj7-Gv;y-;qh9nY#P=0MAfL6EwHC+|;=Jp7n_-G4`wh9?k ztB#yI0WajXdK=wdd=7CzxbX8xLu{{vinVIfZWtlw;d~4ahNF#`v_kbGt6DN2kI0`i z?+(oP&iNA_GK}y}o$d(t*;AQbT?Ta4h0ztq(2bZuFKh+C9i0tsD0(4mFw)CmD`r*! zn|D68N43U7voZY^S+{DFSKD1cwtit`+8DCL1j_4e;B|O5uUPIvuwaargQaD%=+@$c z_#&F-yPIaUIN=AS1*aiQZW|37J+kZ#B*OBAp5adfTH8jla1V5ulXVSde!8X{Xj+@B zDPl5R4acRvOJ7UzZ@qL;8ZAw8XzS9}qpg3*#cHFKYx&U~WpqcIQqy*_#0~$?O5ASH za=D~v567>hO0pSPiR$iXaUi_6ioUOEaPoBFT=IlC+D)0>EqT-&?WSG4+lewgm-l!- zEY{=0M9OFB8#9pM8sv+jyb(S(Z}i2KywPaZNcbyRBRzb?A5S0+U;H(w`W;Om1z*P2 zjVBnBtkxv!UMB4r*)+wxK~8eiygcN$B1a|<)x*(O0Xu&36<%|uz(ef|sD1n?%5#15 rGwk2zQn*1Mc2mE6Ot-9I1pXX>$p0Vu---V}@*X`$0sr59MgIRE|1Gls literal 0 HcmV?d00001 diff --git a/src/main/java/com/example/demo/WebConfiguration.java b/src/main/java/com/example/demo/WebConfiguration.java index 6d1cb02..b77f423 100644 --- a/src/main/java/com/example/demo/WebConfiguration.java +++ b/src/main/java/com/example/demo/WebConfiguration.java @@ -5,7 +5,7 @@ import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration -class webConfiguration implements WebMvcConfigurer { +class WebConfiguration implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry){ registry.addMapping("/**").allowedMethods("*"); diff --git a/src/main/java/com/example/demo/speaker/controller/AppointmentController.java b/src/main/java/com/example/demo/speaker/controller/AppointmentController.java new file mode 100644 index 0000000..3b2345f --- /dev/null +++ b/src/main/java/com/example/demo/speaker/controller/AppointmentController.java @@ -0,0 +1,43 @@ +package com.example.demo.speaker.controller; + +import com.example.demo.speaker.model.Appointment; +import com.example.demo.speaker.service.AppointmentService; +import com.example.demo.speaker.service.RequestForCooperationService; +import org.springframework.web.bind.annotation.*; + +import java.util.*; + +@RestController +@RequestMapping("/types") +public class AppointmentController { + private final AppointmentService appointmentService; + private final RequestForCooperationService requestForCooperationService; + + + public AppointmentController(AppointmentService appointmentService, RequestForCooperationService requestForCooperationService) { + this.appointmentService = appointmentService; + this.requestForCooperationService = requestForCooperationService; + } + + + @GetMapping("/{id}") + public Appointment getPost(@PathVariable Long id) { + return appointmentService.findPost(id); + } + + @GetMapping("/") + public List getAllPosts() { + return appointmentService.findAllPosts(); + } + + @PostMapping("/") + public Appointment createPost(@RequestParam("Name") String name) { + return appointmentService.addPost(name); + } + + @DeleteMapping("/{id}") + public Appointment deletePost(@PathVariable Long id) { + return appointmentService.deletePost(id); + } + +} diff --git a/src/main/java/com/example/demo/speaker/controller/CompanyController.java b/src/main/java/com/example/demo/speaker/controller/CompanyController.java new file mode 100644 index 0000000..55a7281 --- /dev/null +++ b/src/main/java/com/example/demo/speaker/controller/CompanyController.java @@ -0,0 +1,56 @@ +package com.example.demo.speaker.controller; + +import com.example.demo.speaker.model.Appointment; +import com.example.demo.speaker.model.Company; +import com.example.demo.speaker.model.Employee; +import com.example.demo.speaker.model.RequestForCooperation; +import com.example.demo.speaker.service.AppointmentService; +import com.example.demo.speaker.service.CompanyService; +import com.example.demo.speaker.service.EmployeeService; +import com.example.demo.speaker.service.RequestForCooperationService; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; + +@RestController +@RequestMapping("/companies") +public class CompanyController { + private final EmployeeService employeeService; + private final RequestForCooperationService requestForCooperationService; + private final AppointmentService appointmentService; + private final CompanyService companyService; + + + public CompanyController(CompanyService companyService, EmployeeService employeeService, RequestForCooperationService requestForCooperationService, AppointmentService appointmentService) { + this.employeeService = employeeService; + this.requestForCooperationService = requestForCooperationService; + this.appointmentService = appointmentService; + this.companyService = companyService; + } + + @GetMapping("/{id}") + public Company getCompany(@PathVariable Long id) { + return companyService.findCompany(id); + } + + @GetMapping("/") + public List getCompanies() { + return companyService.findAllCompanies(); + } + + @PostMapping("/create") + public Company createCompany(@RequestParam("Name") String name, + @RequestParam("legalAdressCompany") String legalAdressCompany, + @RequestParam("adressCompany") String adressCompany, + @RequestParam("contactEmail") String contactEmail) { + + return companyService.addCompany(name, legalAdressCompany, adressCompany, contactEmail); + } + @DeleteMapping("/{id}") + public Company deleteCompany(@PathVariable Long id) { + return companyService.deleteCompany(id); + } + + +} diff --git a/src/main/java/com/example/demo/speaker/controller/EmployeeController.java b/src/main/java/com/example/demo/speaker/controller/EmployeeController.java new file mode 100644 index 0000000..7f752f7 --- /dev/null +++ b/src/main/java/com/example/demo/speaker/controller/EmployeeController.java @@ -0,0 +1,76 @@ +package com.example.demo.speaker.controller; + +import com.example.demo.speaker.model.Appointment; +import com.example.demo.speaker.model.RequestForCooperation; +import com.example.demo.speaker.model.Employee; +import com.example.demo.speaker.service.AppointmentService; +import com.example.demo.speaker.service.RequestForCooperationService; +import com.example.demo.speaker.service.EmployeeService; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; +@RestController +@RequestMapping("/workers") +public class EmployeeController { + private final EmployeeService employeeService; + private final RequestForCooperationService requestForCooperationService; + private final AppointmentService appointmentService; + + + public EmployeeController(EmployeeService employeeService, RequestForCooperationService requestForCooperationService, AppointmentService appointmentService) { + this.employeeService = employeeService; + this.requestForCooperationService = requestForCooperationService; + this.appointmentService = appointmentService; + } + + @GetMapping("/{id}") + public Employee getWorker(@PathVariable Long id) { + return employeeService.findWorker(id); + } + + @GetMapping("/") + public List getWorkers() { + return employeeService.findAllWorkers(); + } + + @PostMapping("/") + public Employee createWorker(@RequestParam("Name") String Name, + @RequestParam("postId") Long postId) { + final Appointment appointment = appointmentService.findPost(postId); + return employeeService.addWorker(Name, appointment); + } + + @PatchMapping("/{id}") + public Employee updateWorker(@PathVariable Long id, + @RequestParam("Name") String Name, + @RequestParam("PostId") Long postId) { + final Appointment appointment = appointmentService.findPost(postId); + return employeeService.updateReportWorker(id, Name, appointment); + } + + @DeleteMapping("/{id}") + public Employee deleteWorker(@PathVariable Long id) { + return employeeService.deleteWorker(id); + } + + @GetMapping("/id={id}") + public List getListOfReports(@RequestParam("id") Long id) { + var list = requestForCooperationService.findAllRequests(); + List listOfReports = new ArrayList<>(); + for (RequestForCooperation l :list) { + if(l.getWorker().getId() == id) + { + listOfReports.add(l); + } + } + return listOfReports; + } + + @GetMapping("/postId={postId}") + public List getListOfWorkers(@RequestParam("postId") Long id) { + final Appointment appointment = appointmentService.findPost(id); + return employeeService.findWorkerByPost(appointment); + + } +} diff --git a/src/main/java/com/example/demo/speaker/controller/ReportSotrController.java b/src/main/java/com/example/demo/speaker/controller/ReportSotrController.java deleted file mode 100644 index 27062f4..0000000 --- a/src/main/java/com/example/demo/speaker/controller/ReportSotrController.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.example.demo.speaker.controller; - -import com.example.demo.speaker.model.ReportSort; -import com.example.demo.speaker.service.ReportSotrService; -import com.example.demo.speaker.service.TypeSortService; -import com.example.demo.speaker.service.WorkerService; -import org.springframework.web.bind.annotation.*; - -import java.util.Date; -import java.util.List; - -@RestController -@RequestMapping("/reports") -public class ReportSotrController { - private final ReportSotrService reportService; - - - public ReportSotrController(ReportSotrService reportService) { - this.reportService = reportService; - } - - @GetMapping("/{id}") - public ReportSort getReport(@PathVariable Long id) { - return reportService.findReport(id); - } - - @GetMapping("/") - public List getReports() { - return reportService.findAllReports(); - } - - @PostMapping("/") - public ReportSort createReport(@RequestParam("CompanyName") String CompanyName, - @RequestParam("createDate") Date createDate, - @RequestParam("IdType") Long IdType, - @RequestParam("Text") String Text) { - return reportService.addReport(CompanyName, createDate, IdType, Text); - } - - @PatchMapping("/{id}") - public ReportSort updateStudent(@PathVariable Long id, - @RequestParam("approveDate") Date approveDate, - @RequestParam("isActive") Boolean isActive, - @RequestParam("Worker") Long IdWorker) { - return reportService.updateReport(id, approveDate, isActive, IdWorker); - } - - @DeleteMapping("/{id}") - public ReportSort deleteReport(@PathVariable Long id) { - return reportService.deleteReport(id); - } - - @PostMapping("/list") - public String ListOfReport() { - var List = reportService.findAllReports(); - TypeSortService typeService = new TypeSortService(); - WorkerService workerService = new WorkerService(); - String result = ""; - for (var i : List) { - var Type = typeService.findType(i.GetType()); - var Worker = workerService.findWorker(i.GetWorker()); - result += i.toString() + "Type: " + Type.toString() + "Worker: "+Worker.toString() + "\n\r"; - } - return result; - } -} diff --git a/src/main/java/com/example/demo/speaker/controller/RequestForCooperationController.java b/src/main/java/com/example/demo/speaker/controller/RequestForCooperationController.java new file mode 100644 index 0000000..000b958 --- /dev/null +++ b/src/main/java/com/example/demo/speaker/controller/RequestForCooperationController.java @@ -0,0 +1,102 @@ +package com.example.demo.speaker.controller; + +import com.example.demo.speaker.model.RequestForCooperation; +import com.example.demo.speaker.model.TypeOfRequestEnum; +import com.example.demo.speaker.model.Employee; +import com.example.demo.speaker.service.AppointmentService; +import com.example.demo.speaker.service.CompanyService; +import com.example.demo.speaker.service.RequestForCooperationService; +import com.example.demo.speaker.service.EmployeeService; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; +import java.util.List; + +@RestController +@RequestMapping("/reports") +public class RequestForCooperationController { + private final RequestForCooperationService requestForCooperationService; + private final EmployeeService employeeService; + private final AppointmentService appointmentService; + private final CompanyService companyService; + + + public RequestForCooperationController(RequestForCooperationService requestForCooperationService, EmployeeService employeeService, + AppointmentService appointmentService, CompanyService companyService) { + this.requestForCooperationService = requestForCooperationService; + this.employeeService = employeeService; + this.appointmentService = appointmentService; + this.companyService = companyService; + } + + @GetMapping("/{id}") + public RequestForCooperation getRequest(@PathVariable Long id) { + return requestForCooperationService.findRequest(id); + } + + @GetMapping("/") + public List getRequests() { + return requestForCooperationService.findAllRequests(); + } + + @PostMapping("/") + public RequestForCooperation createRequest(@RequestParam("companyId") Long companyId, + @RequestParam("createDate") Date createDate, + @RequestParam("Type") String type, + @RequestParam("Text") String Text) { + final TypeOfRequestEnum typeSotr; + switch (type) + { + case "TRACKING": + typeSotr = TypeOfRequestEnum.TRACKING; + break; + case "DEVELOP": + typeSotr = TypeOfRequestEnum.DEVELOP; + break; + default: + typeSotr = TypeOfRequestEnum.TRACKING; + break; + } + + return requestForCooperationService.addRequest(companyService.findCompany(companyId), createDate, typeSotr, Text); + } + + @PatchMapping("/{id}") + public RequestForCooperation updateRequest(@PathVariable Long id, + @RequestParam("approveDate") Date approveDate, + @RequestParam("isActive") Boolean isActive, + @RequestParam("Worker") Long idWorker) { + final Employee employee = employeeService.findWorker(idWorker); + return requestForCooperationService.updateRequest(id, approveDate, isActive, employee); + } + + @DeleteMapping("/{id}") + public RequestForCooperation deleteRequest(@PathVariable Long id) { + return requestForCooperationService.deleteRequest(id); + } + + @PostMapping("/list") + public String ListOfRequest(@RequestParam("Type") String type) { + var List = requestForCooperationService.findAllRequests(); + final TypeOfRequestEnum typeSotr; + switch (type) + { + case "TRACKING": + typeSotr = TypeOfRequestEnum.TRACKING; + break; + case "DEVELOP": + typeSotr = TypeOfRequestEnum.DEVELOP; + break; + default: + typeSotr = TypeOfRequestEnum.TRACKING; + break; + } + EmployeeService employeeService = new EmployeeService(); + String result = ""; + for (var i : List) { + var Worker = employeeService.findWorker(i.getWorker().getId()); + result += i.toString() + "Type: " + typeSotr.toString() + "Worker: "+Worker.toString() + "\n\r"; + } + return result; + } +} diff --git a/src/main/java/com/example/demo/speaker/controller/TypeSotrController.java b/src/main/java/com/example/demo/speaker/controller/TypeSotrController.java deleted file mode 100644 index a1c596d..0000000 --- a/src/main/java/com/example/demo/speaker/controller/TypeSotrController.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.example.demo.speaker.controller; - -import com.example.demo.speaker.model.TypeSotr; -import com.example.demo.speaker.service.TypeSortService; -import org.springframework.web.bind.annotation.*; - -import java.util.List; -@RestController -@RequestMapping("/types") -public class TypeSotrController { - private final TypeSortService TypeService; - - - public TypeSotrController(TypeSortService typeService) { - this.TypeService = typeService; - } - - @GetMapping("/{id}") - public TypeSotr getType(@PathVariable Long id) { - return TypeService.findType(id); - } - - @GetMapping("/") - public List getStudents() { - return TypeService.findAllTypes(); - } - - @PostMapping("/") - public TypeSotr createStudent(@RequestParam("Name") String name) { - return TypeService.addType(name); - } - - @DeleteMapping("/{id}") - public TypeSotr deleteStudent(@PathVariable Long id) { - return TypeService.deleteType(id); - } -} diff --git a/src/main/java/com/example/demo/speaker/controller/WorkerController.java b/src/main/java/com/example/demo/speaker/controller/WorkerController.java deleted file mode 100644 index 125b70a..0000000 --- a/src/main/java/com/example/demo/speaker/controller/WorkerController.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.example.demo.speaker.controller; - -import com.example.demo.speaker.model.Worker; -import com.example.demo.speaker.service.WorkerService; -import org.springframework.web.bind.annotation.*; - -import java.util.List; -@RestController -@RequestMapping("/workers") -public class WorkerController { - private final WorkerService workerService; - - - public WorkerController(WorkerService workerService) { - this.workerService = workerService; - } - - @GetMapping("/{id}") - public Worker getWorker(@PathVariable Long id) { - return workerService.findWorker(id); - } - - @GetMapping("/") - public List getWorkers() { - return workerService.findAllWorkers(); - } - - @PostMapping("/") - public Worker createStudent(@RequestParam("Name") String Name) { - return workerService.addWorker(Name); - } - - @PatchMapping("/{id}") - public Worker updateWorker(@PathVariable Long id, - @RequestParam("Name") String Name) { - return workerService.updateReportWorker(id, Name); - } - - @DeleteMapping("/{id}") - public Worker deleteWorker(@PathVariable Long id) { - return workerService.deleteWorker(id); - } -} diff --git a/src/main/java/com/example/demo/speaker/model/Appointment.java b/src/main/java/com/example/demo/speaker/model/Appointment.java new file mode 100644 index 0000000..60c65d7 --- /dev/null +++ b/src/main/java/com/example/demo/speaker/model/Appointment.java @@ -0,0 +1,53 @@ +package com.example.demo.speaker.model; + +import jakarta.persistence.*; + +import java.util.Objects; + +@Entity +public class Appointment { + @Column(nullable = false) + private String namePost; + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + public String getNamePost() + { + return this.namePost; + } + + public Appointment() { } + + public void setId(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } + public Appointment(String namePost) + { + this.namePost = namePost; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Appointment appointment = (Appointment) o; + return Objects.equals(id, appointment.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + return "Post{" + + "id=" + id + + ",Name='" + namePost + '\'' + + '}'; + } +} diff --git a/src/main/java/com/example/demo/speaker/model/Company.java b/src/main/java/com/example/demo/speaker/model/Company.java new file mode 100644 index 0000000..21b218b --- /dev/null +++ b/src/main/java/com/example/demo/speaker/model/Company.java @@ -0,0 +1,87 @@ +package com.example.demo.speaker.model; + +import jakarta.persistence.*; + +import java.util.Objects; + +@Entity +public class Company { + @Column(nullable = false) + private String nameCompany; + @Column(nullable = false) + private String legalAdressCompany; + @Column(nullable = false) + private String adressCompany; + @Column(nullable = false) + private String contactEmail; + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + public Company(){} + + public Company(String nameCompany, String legalAdressCompany, String adressCompany, + String contactEmail) + { + this.nameCompany = nameCompany; + this.adressCompany = adressCompany; + this.legalAdressCompany = legalAdressCompany; + this.contactEmail = contactEmail; + } + public Long getId() + { + return this.id; + } + public String getNameCompany() + { + return this.nameCompany; + } + public String getLegalAdressCompany() + { + return this.legalAdressCompany; + } + public String getAdressCompany() + { + return this.adressCompany; + } + public String getContactEmail() + { + return this.contactEmail; + } + public void setNameCompany(String name) + { + this.nameCompany = name; + } + public void setLegalAdressCompany(String adressCompany) + { + this.legalAdressCompany = adressCompany; + } + public void setAdressCompany(String adressCompany) + { + this.adressCompany = adressCompany; + } + public void setContactEmail(String contactEmail) + { + this.contactEmail = contactEmail; + } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Company company = (Company) o; + return Objects.equals(id, company.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + return "Company{" + + "id=" + id + + ",Name='" + nameCompany + '\'' + + '}'; + } +} diff --git a/src/main/java/com/example/demo/speaker/model/Employee.java b/src/main/java/com/example/demo/speaker/model/Employee.java new file mode 100644 index 0000000..5decc6d --- /dev/null +++ b/src/main/java/com/example/demo/speaker/model/Employee.java @@ -0,0 +1,70 @@ +package com.example.demo.speaker.model; + +import jakarta.persistence.*; + +import java.util.Objects; + +@Entity +public class Employee { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + @Column(nullable = false) + private String fio; + @OneToOne(fetch = FetchType.LAZY) + private Appointment appointment; + + public Employee() {} + public Employee(String fio, Appointment appointment) { + this.fio = fio; + this.appointment = appointment; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } + public String getFio() + { + return this.fio; + } + public Appointment getPost() + { + return this.appointment; + } + public void setFio(String fio) + { + this.fio = fio; + } + public void setPost(Appointment appointment) + { + this.appointment = appointment; + } + + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Employee employee = (Employee) o; + return Objects.equals(id, employee.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + @Override + public String toString() { + return "Worker{" + + "id=" + id + + ", Name='" + fio + '\'' + + ", Post='" + appointment.getNamePost() + '\'' + + '}'; + } + +} diff --git a/src/main/java/com/example/demo/speaker/model/ReportSort.java b/src/main/java/com/example/demo/speaker/model/ReportSort.java deleted file mode 100644 index 0415ce1..0000000 --- a/src/main/java/com/example/demo/speaker/model/ReportSort.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.example.demo.speaker.model; - -import jakarta.persistence.*; - -import java.util.Date; -import java.util.Objects; - -@Entity -public class ReportSort { - @jakarta.persistence.Id - @GeneratedValue(strategy = GenerationType.AUTO) - private Long id; - - public ReportSort(String name, Date createDate, Long IdType, String text) { - this.NameCompany = name; - this.CreateDate = createDate; - this.IdType = IdType; - this.Comment = text; - } - @Column() - private String NameCompany; - private String Comment; - private Date CreateDate; - private Date ApproveDate; - private Long IdType; - private Boolean IsActive; - private Long IdSotr; - - public String GetName() - { - return this.NameCompany; - } - - public Date GetCreateDate() - { - return this.CreateDate; - } - - public Date GetApproveDate() - { - return this.ApproveDate; - } - public Long GetType() - { - return this.IdType; - } - - public Long GetWorker() - { - return this.IdSotr; - } - public void SetWorker(Long id) - { - this.IdSotr = id; - } - public Boolean GetActive() - { - return this.IsActive; - } - public ReportSort() { - - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - ReportSort report = (ReportSort) o; - return Objects.equals(id, report.id); - } - - @Override - public int hashCode() { - return Objects.hash(id); - } - - @Override - public String toString() { - return "Report{" + - "id=" + id + - ", NameCompany='" + NameCompany + '\'' + - ", IsActive='" + IsActive + '\'' + - '}'; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getId() { - return id; - } - public void SetApproveDate(Date date) - { - this.ApproveDate = date; - } - - public void SetUser(Long id) - { - this.IdSotr = id; - } - - public void SetActive(Boolean active) - { - this.IsActive = active; - } -} diff --git a/src/main/java/com/example/demo/speaker/model/RequestForCooperation.java b/src/main/java/com/example/demo/speaker/model/RequestForCooperation.java new file mode 100644 index 0000000..748c0f8 --- /dev/null +++ b/src/main/java/com/example/demo/speaker/model/RequestForCooperation.java @@ -0,0 +1,117 @@ +package com.example.demo.speaker.model; + +import jakarta.persistence.*; + +import java.util.Date; +import java.util.Objects; + +@Entity +public class RequestForCooperation { + @jakarta.persistence.Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + @OneToOne(fetch = FetchType.LAZY) + private Company nameCompany; + @Column(nullable = false) + private String comment; + @Column(nullable = false) + private Date createDate; + private Date approveDate; + private Boolean isActive; + @OneToOne(fetch = FetchType.LAZY) + private Employee sotr; + @Enumerated(EnumType.STRING) + private TypeOfRequestEnum typeSotr; + + public RequestForCooperation() { + } + public RequestForCooperation(Company name, Date createDate, TypeOfRequestEnum type, String text) { + this.nameCompany = name; + this.createDate = createDate; + this.comment = text; + this.typeSotr = type; + } + + public Company getName() + { + return this.nameCompany; + } + public TypeOfRequestEnum getType() + { + return this.typeSotr; + } + + public Date getCreateDate() + { + return this.createDate; + } + + public Date getApproveDate() + { + return this.approveDate; + } + + public Employee getWorker() + { + return this.sotr; + } + public void setWorker(Employee sotr) + { + this.sotr = sotr; + } + public Boolean getActive() + { + return this.isActive; + } + + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + RequestForCooperation report = (RequestForCooperation) o; + return Objects.equals(id, report.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + return "Report{" + + "id=" + id + + ", NameCompany='" + nameCompany.toString() + '\'' + + ", Type='" + typeSotr + '\'' + + ", IsActive='" + isActive + '\'' + + '}'; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } + public void setApproveDate(Date date) + { + this.approveDate = date; + } + + public void setUser(Employee sotr) + { + this.sotr = sotr; + } + + public void setActive(Boolean active) + { + this.isActive = active; + } + + public void setType(TypeOfRequestEnum type) + { + this.typeSotr = type; + } +} diff --git a/src/main/java/com/example/demo/speaker/model/TypeOfRequestEnum.java b/src/main/java/com/example/demo/speaker/model/TypeOfRequestEnum.java new file mode 100644 index 0000000..535d7a6 --- /dev/null +++ b/src/main/java/com/example/demo/speaker/model/TypeOfRequestEnum.java @@ -0,0 +1,6 @@ +package com.example.demo.speaker.model; + +public enum TypeOfRequestEnum { + TRACKING, + DEVELOP +} diff --git a/src/main/java/com/example/demo/speaker/model/TypeSotr.java b/src/main/java/com/example/demo/speaker/model/TypeSotr.java deleted file mode 100644 index 200db60..0000000 --- a/src/main/java/com/example/demo/speaker/model/TypeSotr.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.example.demo.speaker.model; - -import jakarta.persistence.*; - -@Entity -public class TypeSotr { - @Column() - private String Type; - @jakarta.persistence.Id - @GeneratedValue(strategy = GenerationType.AUTO) - private Long id; - public String GetType() - { - return this.Type; - } - - public TypeSotr() { - - } - - public void setId(Long id) { - this.id = id; - } - - public Long getId() { - return id; - } - public TypeSotr(String TypeName) - { - this.Type = TypeName; - } - @Override - public String toString() { - return "Type{" + - "id=" + id + - ", Type='" + Type + '\'' + - '}'; - } -} diff --git a/src/main/java/com/example/demo/speaker/model/Worker.java b/src/main/java/com/example/demo/speaker/model/Worker.java deleted file mode 100644 index c1c610f..0000000 --- a/src/main/java/com/example/demo/speaker/model/Worker.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.example.demo.speaker.model; - -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; - -@Entity -public class Worker { - public Worker() - { - - } - public Worker(String FIO) - { - this.FIO = FIO; - } - @jakarta.persistence.Id - @GeneratedValue(strategy = GenerationType.AUTO) - private Long id; - @Column() - private String FIO; - - public void setId(Long id) { - this.id = id; - } - - public Long getId() { - return id; - } - public String GetFio() - { - return this.FIO; - } - public void SetFio(String fio) - { - this.FIO = fio; - } - @Override - public String toString() { - return "Worker{" + - "id=" + id + - ", Type='" + FIO + '\'' + - '}'; - } - -} diff --git a/src/main/java/com/example/demo/speaker/service/TypeSortService.java b/src/main/java/com/example/demo/speaker/service/AppointmentService.java similarity index 54% rename from src/main/java/com/example/demo/speaker/service/TypeSortService.java rename to src/main/java/com/example/demo/speaker/service/AppointmentService.java index f8e63f2..32b0a65 100644 --- a/src/main/java/com/example/demo/speaker/service/TypeSortService.java +++ b/src/main/java/com/example/demo/speaker/service/AppointmentService.java @@ -1,7 +1,6 @@ package com.example.demo.speaker.service; -import com.example.demo.speaker.model.ReportSort; -import com.example.demo.speaker.model.TypeSotr; +import com.example.demo.speaker.model.Appointment; import jakarta.persistence.EntityManager; import jakarta.persistence.EntityNotFoundException; import jakarta.persistence.PersistenceContext; @@ -9,47 +8,46 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; -import java.util.Date; import java.util.List; @Service -public class TypeSortService { +public class AppointmentService { @PersistenceContext private EntityManager em; @Transactional - public TypeSotr addType(String name) { + public Appointment addPost(String name) { if (!StringUtils.hasText(name)) { throw new IllegalArgumentException("Name of Type is null or empty"); } - final TypeSotr type = new TypeSotr(name); + final Appointment type = new Appointment(name); em.persist(type); return type; } @Transactional(readOnly = true) - public TypeSotr findType(Long id) { - final TypeSotr type = em.find(TypeSotr.class, id); - if (type == null) { + public Appointment findPost(Long id) { + final Appointment appointment = em.find(Appointment.class, id); + if (appointment == null) { throw new EntityNotFoundException(String.format("Type with id [%s] is not found", id)); } - return type; + return appointment; } @Transactional(readOnly = true) - public List findAllTypes() { - return em.createQuery("select s from TypeSotr s", TypeSotr.class) + public List findAllPosts() { + return em.createQuery("select s from Appointment s", Appointment.class) .getResultList(); } @Transactional - public TypeSotr deleteType(Long id) { - final TypeSotr currentType = findType(id); - em.remove(currentType); - return currentType; + public Appointment deletePost(Long id) { + final Appointment currentAppointment = findPost(id); + em.remove(currentAppointment); + return currentAppointment; } @Transactional - public void deleteAllTypes() { - em.createQuery("delete from TypeSotr").executeUpdate(); + public void deleteAllvs() { + em.createQuery("delete from Appointment").executeUpdate(); } } diff --git a/src/main/java/com/example/demo/speaker/service/CompanyService.java b/src/main/java/com/example/demo/speaker/service/CompanyService.java new file mode 100644 index 0000000..ebac847 --- /dev/null +++ b/src/main/java/com/example/demo/speaker/service/CompanyService.java @@ -0,0 +1,56 @@ +package com.example.demo.speaker.service; + +import com.example.demo.speaker.model.Company; +import jakarta.persistence.EntityManager; +import jakarta.persistence.EntityNotFoundException; +import jakarta.persistence.PersistenceContext; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; + +import java.util.List; + +@Service +public class CompanyService { + @PersistenceContext + private EntityManager em; + + @Transactional + public Company addCompany(String nameCompany, String legalAdressCompany, String adressCompany, + String contactEmail) { + if (!StringUtils.hasText(nameCompany) && !StringUtils.hasText(nameCompany) && + !StringUtils.hasText(nameCompany) && !StringUtils.hasText(nameCompany)) { + throw new IllegalArgumentException("One of the field is null or empty"); + } + final Company company = new Company(nameCompany, legalAdressCompany, adressCompany, contactEmail); + em.persist(company); + return company; + } + + @Transactional(readOnly = true) + public Company findCompany(Long id) { + final Company company = em.find(Company.class, id); + if (company == null) { + throw new EntityNotFoundException(String.format("Company with id [%s] is not found", id)); + } + return company; + } + + @Transactional(readOnly = true) + public List findAllCompanies() { + return em.createQuery("select c from Company c", Company.class) + .getResultList(); + } + + @Transactional + public Company deleteCompany(Long id) { + final Company currentCompany = findCompany(id); + em.remove(currentCompany); + return currentCompany; + } + + @Transactional + public void deleteAllCompanies() { + em.createQuery("delete from Company").executeUpdate(); + } +} diff --git a/src/main/java/com/example/demo/speaker/service/EmployeeService.java b/src/main/java/com/example/demo/speaker/service/EmployeeService.java new file mode 100644 index 0000000..663fd20 --- /dev/null +++ b/src/main/java/com/example/demo/speaker/service/EmployeeService.java @@ -0,0 +1,83 @@ +package com.example.demo.speaker.service; + +import com.example.demo.speaker.model.Appointment; +import com.example.demo.speaker.model.Employee; +import jakarta.persistence.EntityManager; +import jakarta.persistence.EntityNotFoundException; +import jakarta.persistence.PersistenceContext; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; + +import java.util.ArrayList; +import java.util.List; +@Service +public class EmployeeService { + @PersistenceContext + private EntityManager em; + + @Transactional + public Employee addWorker(String name, Appointment appointment) { + if (!StringUtils.hasText(name) || appointment == null) { + throw new IllegalArgumentException("Name of worker is null or empty"); + } + final Employee employee = new Employee(name, appointment); + em.persist(employee); + return employee; + } + + @Transactional(readOnly = true) + public Employee findWorker(Long id) { + final Employee employee = em.find(Employee.class, id); + if (employee == null) { + throw new EntityNotFoundException(String.format("Report with id [%s] is not found", id)); + } + return employee; + } + + @Transactional(readOnly = true) + public List findAllWorkers() { + return em.createQuery("select s from Employee s", Employee.class) + .getResultList(); + } + + @Transactional + public Employee updateReportWorker(Long id, String Name, Appointment appointment) { + if (!StringUtils.hasText(Name.toString()) || appointment == null) { + throw new IllegalArgumentException("Name is null or empty"); + } + final Employee currentEmployee = findWorker(id); + currentEmployee.setFio(Name); + currentEmployee.setPost(appointment); + return em.merge(currentEmployee); + } + + @Transactional + public List findWorkerByPost(Appointment appointment) { + if (appointment == null) { + throw new IllegalArgumentException("Post is null or empty"); + } + final List currentEmployees = findAllWorkers(); + List list = new ArrayList(); + for (var l: currentEmployees) { + if (l.getPost().getNamePost() == appointment.getNamePost()) + { + list.add(l); + } + } + return list; + } + + @Transactional + public Employee deleteWorker(Long id) { + final Employee currentEmployee = findWorker(id); + em.remove(currentEmployee); + return currentEmployee; + } + + @Transactional + public void deleteAllWorkers() { + em.createQuery("delete from Employee").executeUpdate(); + } + +} diff --git a/src/main/java/com/example/demo/speaker/service/ReportSotrService.java b/src/main/java/com/example/demo/speaker/service/ReportSotrService.java deleted file mode 100644 index f55ec40..0000000 --- a/src/main/java/com/example/demo/speaker/service/ReportSotrService.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.example.demo.speaker.service; - -import com.example.demo.speaker.model.ReportSort; -import com.example.demo.speaker.model.Worker; -import jakarta.persistence.EntityManager; -import jakarta.persistence.EntityNotFoundException; -import jakarta.persistence.PersistenceContext; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.StringUtils; - -import javax.swing.text.html.HTMLDocument; -import java.util.Date; -import java.util.List; -@Service -public class ReportSotrService { - @PersistenceContext - private EntityManager em; - - @Transactional - public ReportSort addReport(String name, Date createDate, Long IdType, String text) { - if (!StringUtils.hasText(name) || ! StringUtils.hasText(createDate.toString()) - || ! StringUtils.hasText(IdType.toString())) { - throw new IllegalArgumentException("Some field of report is null or empty"); - } - final ReportSort report = new ReportSort(name, createDate, IdType, text); - em.persist(report); - return report; - } - - @Transactional(readOnly = true) - public ReportSort findReport(Long id) { - final ReportSort report = em.find(ReportSort.class, id); - if (report == null) { - throw new EntityNotFoundException(String.format("Report with id [%s] is not found", id)); - } - return report; - } - - @Transactional(readOnly = true) - public List findAllReports() { - return em.createQuery("select s from ReportSort s", ReportSort.class) - .getResultList(); - } - - @Transactional - public ReportSort updateReport(Long id, Date approveDate, Boolean isActive, Long IdWorker) { - if (!StringUtils.hasText(approveDate.toString()) || !StringUtils.hasText(isActive.toString())) { - throw new IllegalArgumentException("Some field is null or empty"); - } - final ReportSort currentReport = findReport(id); - currentReport.SetApproveDate(approveDate); - currentReport.SetActive(isActive); - currentReport.SetUser(IdWorker); - return em.merge(currentReport); - } - - @Transactional - public ReportSort deleteReport(Long id) { - final ReportSort currentReport = findReport(id); - em.remove(currentReport); - return currentReport; - } - - @Transactional - public void deleteAllReports() { - em.createQuery("delete from ReportSort").executeUpdate(); - } -} diff --git a/src/main/java/com/example/demo/speaker/service/RequestForCooperationService.java b/src/main/java/com/example/demo/speaker/service/RequestForCooperationService.java new file mode 100644 index 0000000..c9055a1 --- /dev/null +++ b/src/main/java/com/example/demo/speaker/service/RequestForCooperationService.java @@ -0,0 +1,70 @@ +package com.example.demo.speaker.service; + +import com.example.demo.speaker.model.Company; +import com.example.demo.speaker.model.RequestForCooperation; +import com.example.demo.speaker.model.TypeOfRequestEnum; +import com.example.demo.speaker.model.Employee; +import jakarta.persistence.EntityManager; +import jakarta.persistence.EntityNotFoundException; +import jakarta.persistence.PersistenceContext; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; + +import java.util.Date; +import java.util.List; +@Service +public class RequestForCooperationService { + @PersistenceContext + private EntityManager em; + + @Transactional + public RequestForCooperation addRequest(Company name, Date createDate, TypeOfRequestEnum type, String text) { + if (name == null || ! StringUtils.hasText(createDate.toString()) + || type == null) { + throw new IllegalArgumentException("Some field of report is null or empty"); + } + final RequestForCooperation report = new RequestForCooperation(name, createDate, type, text); + em.persist(report); + return report; + } + + @Transactional(readOnly = true) + public RequestForCooperation findRequest(Long id) { + final RequestForCooperation report = em.find(RequestForCooperation.class, id); + if (report == null) { + throw new EntityNotFoundException(String.format("Report with id [%s] is not found", id)); + } + return report; + } + + @Transactional(readOnly = true) + public List findAllRequests() { + return em.createQuery("select s from RequestForCooperation s", RequestForCooperation.class) + .getResultList(); + } + + @Transactional + public RequestForCooperation updateRequest(Long id, Date approveDate, Boolean isActive, Employee employee) { + if (!StringUtils.hasText(approveDate.toString()) || !StringUtils.hasText(isActive.toString())) { + throw new IllegalArgumentException("Some field is null or empty"); + } + final RequestForCooperation currentReport = findRequest(id); + currentReport.setApproveDate(approveDate); + currentReport.setActive(isActive); + currentReport.setUser(employee); + return em.merge(currentReport); + } + + @Transactional + public RequestForCooperation deleteRequest(Long id) { + final RequestForCooperation currentReport = findRequest(id); + em.remove(currentReport); + return currentReport; + } + + @Transactional + public void deleteAllRequests() { + em.createQuery("delete from RequestForCooperation").executeUpdate(); + } +} diff --git a/src/main/java/com/example/demo/speaker/service/WorkerService.java b/src/main/java/com/example/demo/speaker/service/WorkerService.java deleted file mode 100644 index 3a9771e..0000000 --- a/src/main/java/com/example/demo/speaker/service/WorkerService.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.example.demo.speaker.service; - -import com.example.demo.speaker.model.ReportSort; -import com.example.demo.speaker.model.Worker; -import jakarta.persistence.EntityManager; -import jakarta.persistence.EntityNotFoundException; -import jakarta.persistence.PersistenceContext; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.StringUtils; - -import java.util.Date; -import java.util.List; -@Service -public class WorkerService { - @PersistenceContext - private EntityManager em; - - @Transactional - public Worker addWorker(String name) { - if (!StringUtils.hasText(name) ) { - throw new IllegalArgumentException("Name of worker is null or empty"); - } - final Worker worker = new Worker(name); - em.persist(worker); - return worker; - } - - @Transactional(readOnly = true) - public Worker findWorker(Long id) { - final Worker worker = em.find(Worker.class, id); - if (worker == null) { - throw new EntityNotFoundException(String.format("Report with id [%s] is not found", id)); - } - return worker; - } - - @Transactional(readOnly = true) - public List findAllWorkers() { - return em.createQuery("select s from Worker s", Worker.class) - .getResultList(); - } - - @Transactional - public Worker updateReportWorker(Long id, String Name) { - if (!StringUtils.hasText(Name.toString())) { - throw new IllegalArgumentException("Name is null or empty"); - } - final Worker currentWorker = findWorker(id); - currentWorker.SetFio(Name); - return em.merge(currentWorker); - } - - @Transactional - public Worker deleteWorker(Long id) { - final Worker currentWorker = findWorker(id); - em.remove(currentWorker); - return currentWorker; - } - - @Transactional - public void deleteAllWorkers() { - em.createQuery("delete from Worker").executeUpdate(); - } -} diff --git a/src/test/java/com/example/demo/DemoApplicationTests.java b/src/test/java/com/example/demo/DemoApplicationTests.java deleted file mode 100644 index f760530..0000000 --- a/src/test/java/com/example/demo/DemoApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.example.demo; - -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.beans.factory.NoSuchBeanDefinitionException; - -@SpringBootTest -class DemoApplicationTests { - - -} diff --git a/src/test/java/com/example/demo/JPATests.java b/src/test/java/com/example/demo/JPATests.java index 3d05337..8b58030 100644 --- a/src/test/java/com/example/demo/JPATests.java +++ b/src/test/java/com/example/demo/JPATests.java @@ -1,74 +1,160 @@ package com.example.demo; -import com.example.demo.speaker.model.ReportSort; -import com.example.demo.speaker.service.ReportSotrService; +import com.example.demo.speaker.model.*; +import com.example.demo.speaker.service.CompanyService; +import com.example.demo.speaker.service.RequestForCooperationService; +import com.example.demo.speaker.service.AppointmentService; +import com.example.demo.speaker.service.EmployeeService; import jakarta.persistence.EntityNotFoundException; +import jakarta.transaction.Transactional; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.boot.test.context.SpringBootTest; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.time.LocalDate; -import java.util.Date; import java.util.List; import java.util.Locale; +@SpringBootTest public class JPATests { private static final Logger log = LoggerFactory.getLogger(JPATests.class); private static final SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH); @Autowired - private ReportSotrService reportService; - + RequestForCooperationService requestService; + @Autowired + AppointmentService appointmentService; + @Autowired + EmployeeService employeeService; + @Autowired + CompanyService companyService; @Test - void testReportCreate() throws ParseException { + @Transactional + void testCompaniesReadAll() { + final Company comp = companyService.addCompany("Mars", "Ульяновск, Солнечная 19", + "Солнечная 19", "mars@mail.ru"); + final Company comp1 = companyService.addCompany("Mars", "Ульяновск, Чердаклинский район", + "Чердаклинский район", "mars@mail.ru"); + final Company comp2 = companyService.addCompany("AIST", "Ульяновск, Кузоватовская 20", + "Кузоватовская 20", "iast@mail.ru"); - reportService.deleteAllReports(); - final ReportSort report = reportService.addReport("Mars", formatter.parse("2018-05-05"), - 0L, "Хотим сотрудничать"); - log.info(report.toString()); - Assertions.assertNotNull(report.getId()); + final List companies = companyService.findAllCompanies(); + log.info(companies.toString()); + Assertions.assertEquals(companies.size(), 3); + } + @Test + void testReadCompany() + { + companyService.deleteAllCompanies(); + Company addCompany = companyService.addCompany("Mars", "Ульяновск, Солнечная 19", + "Солнечная 19", "mars@mail.ru"); + Company comp = companyService.findCompany(addCompany.getId()); + log.info(addCompany.toString()); + Assertions.assertEquals(comp, addCompany); } @Test - void testReportRead() throws ParseException { - reportService.deleteAllReports(); - final ReportSort report = reportService.addReport("Mars", formatter.parse("2018-05-05"), - 0L, "Хотим сотрудничать"); + void testReportCreate() throws ParseException { + requestService.deleteAllRequests(); + companyService.deleteAllCompanies(); + final TypeOfRequestEnum type = TypeOfRequestEnum.TRACKING; + final Company comp = companyService.addCompany("Mars", "Ульяновск, Солнечная 19", + "Солнечная 19", "mars@mail.ru"); + final RequestForCooperation report = requestService.addRequest(comp, + formatter.parse("05-Jun-2018"), + type, "Хотим сотрудничать"); log.info(report.toString()); - final ReportSort findStudent = reportService.findReport(report.getId()); - log.info(findStudent.toString()); - Assertions.assertEquals(report, findStudent); + Assertions.assertNotNull(report.getId()); + } + @Test + void testAddWorker() throws ParseException { + requestService.deleteAllRequests(); + companyService.deleteAllCompanies(); + final TypeOfRequestEnum type = TypeOfRequestEnum.TRACKING; + final Company comp = companyService.addCompany("Mars", "Ульяновск, Солнечная 19", + "Солнечная 19", "mars@mail.ru"); + final RequestForCooperation report = requestService.addRequest(comp, + formatter.parse("05-Jun-2018"), + type, "Хотим сотрудничать"); + final Appointment appointment = appointmentService.addPost("Manager"); + final Employee employee = employeeService.addWorker("NameWorker", appointment); + report.setWorker(employee); + log.info(report.toString()); + Assertions.assertNotNull(report.getWorker()); + } + + @Test + @Transactional + void testReportRead() throws ParseException { + requestService.deleteAllRequests(); + companyService.deleteAllCompanies(); + final TypeOfRequestEnum type = TypeOfRequestEnum.TRACKING; + final Company comp = companyService.addCompany("Mars", "Ульяновск, Солнечная 19", + "Солнечная 19", "mars@mail.ru"); + final RequestForCooperation report = requestService.addRequest(comp, formatter.parse("05-Jun-2018"), + type, "Хотим сотрудничать"); + log.info(report.toString()); + final RequestForCooperation findApplication = requestService.findRequest(report.getId()); + log.info(findApplication.toString()); + Assertions.assertEquals(report, findApplication); } @Test void testReportsReadNotFound() { - reportService.deleteAllReports(); - Assertions.assertThrows(EntityNotFoundException.class, () -> reportService.findReport(-1L)); + requestService.deleteAllRequests(); + Assertions.assertThrows(EntityNotFoundException.class, () -> requestService.findRequest(-1L)); } @Test + void testWorkerAllByPost() throws ParseException { + employeeService.deleteAllWorkers(); + appointmentService.deleteAllvs(); + companyService.deleteAllCompanies(); + final Appointment appointment = appointmentService.addPost("Manager"); + final Employee employee = employeeService.addWorker("NAme1", appointment); + final Employee employee1 = employeeService.addWorker("Name2", appointment); + final List employees = employeeService.findWorkerByPost(appointment); + log.info(employees.toString()); + Assertions.assertEquals(2, employees.size()); + } + @Test + @Transactional void testReportsReadAll() throws ParseException { - reportService.deleteAllReports(); - reportService.addReport("Mars", formatter.parse("2018-05-05"), - 0L, "Хотим сотрудничать"); - reportService.addReport("AIST", formatter.parse("2019-05-05"), - 1L, "Хотим сотрудничать"); - final List reports = reportService.findAllReports(); + requestService.deleteAllRequests(); + companyService.deleteAllCompanies(); + final TypeOfRequestEnum type = TypeOfRequestEnum.TRACKING; + final TypeOfRequestEnum typeNew = TypeOfRequestEnum.DEVELOP; + + + Company comp = companyService.addCompany("Mars", "Ульяновск, Солнечная 19", + "Солнечная 19", "mars@mail.ru"); + Company comp1 = companyService.addCompany("Mars", "Ульяновск, Чердаклинский район", + "Чердаклинский район", "mars@mail.ru"); + Company comp2 = companyService.addCompany("AIST", "Ульяновск, Кузоватовская 20", + "Кузоватовская 20", "iast@mail.ru"); + + RequestForCooperation report = requestService.addRequest(comp, formatter.parse("05-Jun-2018"), + type, "Хотим сотрудничать"); + report = requestService.addRequest(comp1, formatter.parse("05-Jun-2019"), + typeNew, "Хотим сотрудничать"); + report = requestService.addRequest(comp2, formatter.parse("05-Jun-2019"), + typeNew, "Хотим сотрудничать"); + final List reports = requestService.findAllRequests(); + log.info(reports.toString()); - Assertions.assertEquals(reports.size(), 2); + Assertions.assertEquals(reports.size(), 3); } @Test - void testStudentReadAllEmpty() { - reportService.deleteAllReports(); - final List reports = reportService.findAllReports(); + void testReportsReadAllEmpty() { + requestService.deleteAllRequests(); + final List reports = requestService.findAllRequests(); log.info(reports.toString()); - Assertions.assertEquals(reports.size(), 0); + Assertions.assertEquals(0, reports.size()); } } diff --git a/src/test/resources/application.properties b/src/test/resources/application.properties new file mode 100644 index 0000000..81734b8 --- /dev/null +++ b/src/test/resources/application.properties @@ -0,0 +1,6 @@ +spring.datasource.url=jdbc:h2:mem:testdb +spring.datasource.driverClassName=org.h2.Driver +spring.datasource.username=sa +spring.datasource.password=password +spring.jpa.database-platform=org.hibernate.dialect.H2Dialect +spring.jpa.hibernate.ddl-auto=create-drop \ No newline at end of file