Advertisement
Guest User

Untitled

a guest
Jun 12th, 2017
519
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.56 KB | None | 0 0
  1. package vds.rest;
  2.  
  3. import java.io.File;
  4. import java.io.FileNotFoundException;
  5. import java.io.FileOutputStream;
  6. import java.io.PrintWriter;
  7. import java.util.Calendar;
  8. import java.util.Date;
  9. import java.util.concurrent.ExecutorService;
  10. import java.util.concurrent.Executors;
  11.  
  12. import javax.annotation.PostConstruct;
  13.  
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.http.HttpStatus;
  16. import org.springframework.http.ResponseEntity;
  17. import org.springframework.security.crypto.password.PasswordEncoder;
  18. import org.springframework.web.bind.annotation.RequestMapping;
  19. import org.springframework.web.bind.annotation.RequestMethod;
  20. import org.springframework.web.bind.annotation.RestController;
  21.  
  22. import vds.config.DatabaseConnection;
  23. import vds.model.Cas;
  24. import vds.model.Djak;
  25. import vds.model.Korisnik;
  26. import vds.model.Predavac;
  27. import vds.model.Predmet;
  28. import vds.model.Termin;
  29. import vds.model.ZahtevZaOtkazivanjeCasa;
  30. import vds.model.ZahtevZaZakazivanjeCasa;
  31. import vds.model.ZauzetTermin;
  32. import vds.model.enumeration.Godina;
  33. import vds.model.enumeration.Status;
  34. import vds.model.enumeration.TipSkole;
  35. import vds.model.enumeration.Uloga;
  36. import vds.repository.CasRepository;
  37. import vds.repository.DjakRepository;
  38. import vds.repository.KorisnikRepository;
  39. import vds.repository.PredavacRepository;
  40. import vds.repository.PredmetRepository;
  41. import vds.repository.TerminRepository;
  42. import vds.repository.ZahtevZaOtkazivanjeCasaRepository;
  43. import vds.repository.ZahtevZaZakazivanjeCasaRepository;
  44. import vds.repository.ZauzetTerminRepository;
  45. import vds.service.izvestaji.GenerateDjakCasoviReportTask;
  46. import vds.service.izvestaji.ReportCompleted;
  47.  
  48. @RestController
  49. @RequestMapping("/test")
  50. public class TestController {
  51.  
  52. ExecutorService executorService = Executors.newFixedThreadPool(5);
  53.  
  54. @PostConstruct
  55. public void init() {
  56.  
  57. }
  58.  
  59. @Autowired
  60. private PasswordEncoder passwordEncoder;
  61.  
  62. @Autowired
  63. private KorisnikRepository korisnikRepository;
  64.  
  65. @Autowired
  66. private DjakRepository djakRepository;
  67.  
  68. @Autowired
  69. private PredavacRepository predavacRepository;
  70.  
  71. @Autowired
  72. private TerminRepository terminRepository;
  73.  
  74. @Autowired
  75. private ZauzetTerminRepository zauzetTerminRepository;
  76.  
  77. @Autowired
  78. private PredmetRepository predmetRepository;
  79.  
  80. @Autowired
  81. private CasRepository casRepository;
  82.  
  83. @Autowired
  84. private ZahtevZaZakazivanjeCasaRepository zahtevZaZakazivanjeCasaRepository;
  85.  
  86. @Autowired
  87. private ZahtevZaOtkazivanjeCasaRepository zahtevZaOtkazivanjeCasaRepository;
  88.  
  89. @Autowired
  90. private DatabaseConnection connectionConfig;
  91.  
  92. @RequestMapping(method = RequestMethod.GET, value = "/generate-report")
  93. public void generateReport() throws FileNotFoundException {
  94. //File f = new File("static" + File.separator + "generated-reports" + File.separator + "report.txt");
  95. String filePath = "src/main/resources/static/generated-reports/report.txt";
  96. File f = new File(filePath);
  97.  
  98. FileOutputStream fos = new FileOutputStream(f);
  99. PrintWriter printer = new PrintWriter(fos);
  100. printer.print("TEST STATIC SPRING");
  101.  
  102. printer.println("DB");
  103. printer.println("url:" + connectionConfig.getUrl());
  104. printer.println("getDriverClassName:" + connectionConfig.getDriverClassName());
  105. printer.println(".getUsername:" + connectionConfig.getUsername());
  106. printer.println("getPassword:" + connectionConfig.getPassword());
  107.  
  108. printer.close();
  109.  
  110. Calendar c = Calendar.getInstance();
  111. c.set(2017, 5, 1);
  112. Date pocetak = c.getTime();
  113. c.set(2017, 6, 1);
  114. Date kraj = c.getTime();
  115.  
  116.  
  117. GenerateDjakCasoviReportTask task = new GenerateDjakCasoviReportTask(2L, pocetak, kraj, connectionConfig, new ReportCompleted() {
  118.  
  119. @Override
  120. public void onReportComplete(String relativePath) {
  121. System.out.println("DONEEEEE");
  122. System.out.println("Izvestaj:::" + relativePath);
  123.  
  124. }
  125. });
  126. // ZAKAZEMO ZA IZVRSAVANJE...KAD STIGNE, IMA 5 WORKER THREADOVA AKTIVNIH
  127. executorService.submit(task);
  128.  
  129.  
  130.  
  131.  
  132. }
  133.  
  134. @RequestMapping(method = RequestMethod.GET, value = "/fill-database")
  135. public ResponseEntity<?> getProfilePageInfo() {
  136.  
  137. Djak dj0 = new Djak();
  138. dj0.setBrTelefona("brTelefona_dj0");
  139. dj0.setEmail("dj0@dj0.com");
  140. dj0.setIme("ime_dj0");
  141. dj0.setPassword(passwordEncoder.encode("password_dj0"));
  142. dj0.setPrezime("prezime_dj0");
  143. dj0.setUloga(Uloga.USER);
  144. dj0.setUsername("username_dj0");
  145.  
  146. Djak dj1 = new Djak();
  147. dj1.setBrTelefona("brTelefona_dj1");
  148. dj1.setEmail("dj1@dj1.com");
  149. dj1.setIme("ime_dj1");
  150. dj1.setPassword(passwordEncoder.encode("password_dj1"));
  151. dj1.setPrezime("prezime_dj1");
  152. dj1.setUloga(Uloga.USER);
  153. dj1.setUsername("username_dj1");
  154.  
  155. Djak dj2 = new Djak();
  156. dj2.setBrTelefona("brTelefona_dj2");
  157. dj2.setEmail("dj2@dj2.com");
  158. dj2.setIme("ime_dj2");
  159. dj2.setPassword(passwordEncoder.encode("password_dj2"));
  160. dj2.setPrezime("prezime_dj2");
  161. dj2.setUloga(Uloga.USER);
  162. dj2.setUsername("username_dj2");
  163.  
  164. Djak dj3 = new Djak();
  165. dj3.setBrTelefona("brTelefona_dj3");
  166. dj3.setEmail("dj3@dj3.com");
  167. dj3.setIme("ime_dj3");
  168. dj3.setPassword(passwordEncoder.encode("password_dj3"));
  169. dj3.setPrezime("prezime_dj3");
  170. dj3.setUloga(Uloga.USER);
  171. dj3.setUsername("username_dj3");
  172.  
  173. Korisnik k4 = new Korisnik();
  174. k4.setBrTelefona("k4");
  175. k4.setEmail("k4@k4.com");
  176. k4.setIme("ime_k4");
  177. k4.setPassword(passwordEncoder.encode("password_k4"));
  178. k4.setPrezime("prezime_k4");
  179. k4.setUloga(Uloga.ADMIN);
  180. k4.setUsername("username_k4");
  181.  
  182. korisnikRepository.save(k4);
  183. djakRepository.save(dj0);
  184. djakRepository.save(dj1);
  185. djakRepository.save(dj2);
  186. djakRepository.save(dj3);
  187.  
  188. Predavac p0 = new Predavac();
  189. p0.setBrTelefona("brTelefona_p0");
  190. p0.setEmail("p0@p0.com");
  191. p0.setIme("ime_p0");
  192. p0.setPassword(passwordEncoder.encode("password_p0"));
  193. p0.setPrezime("prezime_p0");
  194. p0.setUloga(Uloga.USER);
  195. p0.setUsername("username_p0");
  196.  
  197. p0 = predavacRepository.save(p0);
  198.  
  199. Calendar c = Calendar.getInstance();
  200. c.set(2017, 5, 1, 13, 30);
  201. Date pocetakTermina = c.getTime();
  202.  
  203. c.set(2017, 5, 1, 15, 0);
  204. Date krajTermina = c.getTime();
  205.  
  206. Termin t0 = new Termin();
  207. t0.setPocetak(pocetakTermina);
  208. t0.setKraj(krajTermina);
  209.  
  210. c.set(2017, 5, 1, 9, 0);
  211. pocetakTermina = c.getTime();
  212.  
  213. c.set(2017, 5, 1, 10, 30);
  214. krajTermina = c.getTime();
  215.  
  216. Termin t1 = new Termin();
  217. t1.setPocetak(pocetakTermina);
  218. t1.setKraj(krajTermina);
  219.  
  220. t0 = terminRepository.save(t0);
  221. t1 = terminRepository.save(t1);
  222.  
  223. c.set(2017, 4, 22);
  224. Date dan = c.getTime();
  225.  
  226. ZauzetTermin zt0 = new ZauzetTermin();
  227. zt0.setDatum(dan);
  228. zt0.setPredavac(p0);
  229. zt0.setTermin(t0);
  230.  
  231. zt0 = zauzetTerminRepository.save(zt0);
  232.  
  233. Predmet pr0 = new Predmet();
  234. pr0.setGodina(Godina.CETVRTA);
  235. pr0.setNaziv("Informatika");
  236. pr0.setTipSkole(TipSkole.FAKULTET);
  237.  
  238. pr0 = predmetRepository.save(pr0);
  239.  
  240. pr0.getPredavaci().add(p0);
  241. p0.getPredmeti().add(pr0);
  242.  
  243. predmetRepository.save(pr0);
  244. predavacRepository.save(p0);
  245. Cas c0 = new Cas();
  246. c0.setDjak(dj0);
  247. c0.setPredmet(pr0);
  248. c0.setStatus(Status.ZAKAZAN);
  249. c0.setZauzetTermin(zt0);
  250.  
  251. c0 = casRepository.save(c0);
  252.  
  253. ZahtevZaZakazivanjeCasa zzc = new ZahtevZaZakazivanjeCasa();
  254. zzc.setDjak(dj0);
  255. zzc.setPredavac(p0);
  256. zzc.setPredmet(pr0);
  257. zzc.setDatumCasa(new Date());
  258. zzc.setTrenutakPodnosenja(new Date());
  259. zzc.setTermin(t1);
  260. zzc.setOdobren(true);
  261.  
  262. zzc = zahtevZaZakazivanjeCasaRepository.save(zzc);
  263.  
  264. ZahtevZaZakazivanjeCasa zzc1 = new ZahtevZaZakazivanjeCasa();
  265. zzc1.setDjak(dj0);
  266. zzc1.setPredavac(p0);
  267. zzc1.setPredmet(pr0);
  268. zzc1.setDatumCasa(new Date());
  269. zzc1.setTrenutakPodnosenja(new Date());
  270. zzc1.setTermin(t1);
  271. zzc1.setOdobren(false);
  272. zzc1.setOdbijen(false);
  273.  
  274. zzc1 = zahtevZaZakazivanjeCasaRepository.save(zzc1);
  275.  
  276. ZahtevZaZakazivanjeCasa zzc2 = new ZahtevZaZakazivanjeCasa();
  277. zzc2.setDjak(dj0);
  278. zzc2.setPredavac(p0);
  279. zzc2.setPredmet(pr0);
  280. zzc2.setDatumCasa(new Date());
  281. zzc2.setTrenutakPodnosenja(new Date());
  282. zzc2.setTermin(t1);
  283. zzc2.setOdobren(true);
  284. zzc2.setOdbijen(true);
  285.  
  286. zzc2 = zahtevZaZakazivanjeCasaRepository.save(zzc2);
  287.  
  288. return new ResponseEntity<>(HttpStatus.OK);
  289. }
  290.  
  291. @RequestMapping(method = RequestMethod.GET, value = "/check-triggers")
  292. public ResponseEntity<?> checkTriggers() {
  293. Predavac p0 = new Predavac();
  294. Termin t0 = new Termin();
  295. ZauzetTermin zt1 = new ZauzetTermin();
  296. ZauzetTermin zt0 = new ZauzetTermin();
  297. ZauzetTermin zt00 = new ZauzetTermin();
  298. Cas c0 = new Cas();
  299. Cas c1 = new Cas();
  300. Djak dj0 = new Djak();
  301.  
  302. Calendar c = Calendar.getInstance();
  303. c.set(2017, 5, 1, 13, 30);
  304. Date pocetakTermina = c.getTime();
  305.  
  306. c.set(2017, 5, 1, 15, 0);
  307. Date krajTermina = c.getTime();
  308.  
  309.  
  310.  
  311. try {
  312. dj0.setBrTelefona("brTelefona_dj0");
  313. dj0.setEmail("dj0@dj0.com");
  314. dj0.setIme("ime_dj0");
  315. dj0.setPassword(passwordEncoder.encode("password_dj0"));
  316. dj0.setPrezime("prezime_dj0");
  317. dj0.setUloga(Uloga.USER);
  318. dj0.setUsername("username_dj0");
  319.  
  320. dj0 = djakRepository.save(dj0);
  321.  
  322. p0.setBrTelefona("brTelefona_p0");
  323. p0.setEmail("p0@p0.com" + (new Date()).getTime());
  324. p0.setIme("ime_p0");
  325. p0.setPassword(passwordEncoder.encode("password_p0"));
  326. p0.setPrezime("prezime_p0");
  327. p0.setUloga(Uloga.USER);
  328. p0.setUsername("username_p0" + (new Date()).getTime());
  329.  
  330. p0 = predavacRepository.save(p0);
  331.  
  332. t0.setPocetak(pocetakTermina);
  333. t0.setKraj(krajTermina);
  334.  
  335. t0 = terminRepository.save(t0);
  336.  
  337. c.set(2017, 5, 1);
  338. Date dan = c.getTime();
  339.  
  340.  
  341. zt1.setDatum(dan);
  342. zt1.setPredavac(p0);
  343. zt1.setTermin(t0);
  344.  
  345. zt1 = zauzetTerminRepository.save(zt1);
  346.  
  347.  
  348. zt0.setDatum(dan);
  349. zt0.setPredavac(p0);
  350. zt0.setTermin(t0);
  351.  
  352. zt0 = zauzetTerminRepository.save(zt0);
  353.  
  354. zt00.setDatum(dan);
  355. zt00.setPredavac(p0);
  356. zt00.setTermin(t0);
  357.  
  358. zt00 = zauzetTerminRepository.save(zt00);
  359.  
  360.  
  361. c0.setDjak(dj0);
  362. c0.setZauzetTermin(zt0);
  363. c0.setStatus(Status.ZAKAZAN);
  364. c0 = casRepository.save(c0);
  365.  
  366. c1.setDjak(dj0);
  367. c1.setZauzetTermin(zt00);
  368. c1.setStatus(Status.ZAKAZAN);
  369. c1 = casRepository.save(c1);
  370. } catch (Exception e) {
  371. //e.printStackTrace();
  372. }
  373.  
  374.  
  375. try{
  376. ZahtevZaOtkazivanjeCasa zzo = new ZahtevZaOtkazivanjeCasa();
  377. zzo.setTrenutakPodnosenja(pocetakTermina);
  378. zzo.setCas(c0);
  379. zzo = zahtevZaOtkazivanjeCasaRepository.save(zzo);
  380. }catch(Exception e){
  381. //e.printStackTrace();
  382. }
  383.  
  384. return new ResponseEntity<>(HttpStatus.OK);
  385. }
  386.  
  387. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement