[ antraks @ 09.02.2016. 13:49 ] @
Radim projektni zadatak iz jave ali sam zapeo. Pa ako moze neko da mi pomogne. Sve mi se sada pomijesalo. Ne znam kako da sve to uradim, na koji nacin. Najveci problem mi je oko niti (thread). Tu sam zapeo.

Na koji nacin da uradim niti u zadatku? Ja sam napravio klasu Masina koja nasljeduje Thread. Pa sam kasnije napravio nekoliko drugih masina koje nasljedjuju masinu. Zamislio sam tako da mi je svaka masina nit i da se mogu kreirati samo te 4 masine (u tekstu pise koje su to) i da one stalno rade i prave stolariju i da sve nove narudzbe cekaju da se zavrsi prethodna proizvodnja. Ali ne znam kako to da implementiram. Posto je u pitanju i klijent server aplikacija iskoristio sam sablon koji smo radili. Ako mozete da mi pomognete bio bih zahvalan. Hocu da savladam ovo jer me ova logika oko niti vec duze vrijeme buni.


Ovdje je moj kod koji sam ja radio. Imam nekoliko verzija ali ovaj sam zadnji napisao.
http://speedy.sh/mQxMn/Fabrika.rar

Ovo je tekst projektnog zadatka.
Citat:

Fabrika proizvodi PVC i drvenu stolariju (vrata i prozore). Proizvodnja se obavlja na
različitim mašinama: mašina za izradu konstrukcije, mašina za pravljenje stakla i mašina
za pravljenje mehanizma za otvaranje. Svaka mašina ima svoju oznaku i brzinu izrade
jednog proizvoda. Vrijeme izrade drvene konstrukcije je 3 sekunde, PVC 4 sekunde,
stakla 5 sekundi, a mehanizma za otvaranje 2 sekunde. U fabrici postoji jedna mašina
koja pravi samo drvenu konstrukciju i jedna koja pravi samo PVC konstrukciju, dok
ostale vrste mašina mogu da prave dijelove za obe vrste stolarije, a fabrika ima po jednu
takvu mašinu. Proizvodnja stolarije se vrši po narudžbi. Na osnovu narudžbe istovremeno
se prave dijelovi proizvoda, koji se potom sastavljaju pomoću mašine za sastavljanje. U
fabrici postoji samo jedna takva mašina. Sastavljanje proizvoda traje 3 sekunde. Na
mašinama se raspoređuju proizvodnje onim redoslijedom kako pristižu zahtjevi. Mašine
za izradu stakla i mehanizma za otvaranje imaju mogućnost testiranja napravljenih
proizvoda. Proces proizvodnje bi se sastojao iz sljedećih faza:
1. Pravljenje konstrukcije
2. Pravljenje stakla
3. Testiranje stakla
4. Pravljenje mehanizma za otvaranje
5. Testiranje mehanizma za otvaranje
6. Sastavljanje proizvoda
Faze 1, 2 i 4 se pokreću istovremeno. Faza 3 se pokreće nakon faze 2, a faza 5 nakon faze
4. Kada se faze od 1 do 5 završe, pokreće se faza 6. U svakoj fazi kreira se odgovarajući
poluproizvod. Kod određenog tipa vrata staklo ne postoji, pa se faze 2 i 3 ne izvršavaju.
Svaki proizvod ima dimenzije (visina, širina), vrstu materijala, serijski broj, datum i
vrijeme kreiranja, kao i poluproizvode iz kojih se sastoji. Svaki poluproizvod
(mehanizam za otvaranje, staklo i konstrukcija) ima svoj serijski broj. Vrata mogu imati
staklo, a prozori mogu imati roletne. Prozori mogu imati i rešetke, a mogu se sastojati iz
jednog ili dva prozorska krila. Roletne mogu biti iz jednog ili dva dijela, a na prozore se
mogu naknadno dodavati. Postoji mogućnost da vrata i prozor budu spojeni u jedan
element. Posebna vrsta vrata koja se proizvodi su sigurnosna vrata koja posjeduju dodatni
mehanizam zaključavanja. Krovni prozori imaju deblja stakla i mehanizam prilagođen
otvaranju prozora koji se nalazi na krovnoj kosini. Posebna vrsta prozora koje fabrika
proizvodi su šajbe za izloge, koje se mogu sastojati iz više dijelova. Svi prozori mogu
imati jedno, dva ili tri stakla. Na drvena vrata se može dodati željezna rešetka.
Fabrika ima svoje tri filijale sa kojima komunicira preko mreže. Pomoću klijentske
aplikacije filijale mogu se naručiti proizvodi izborom proizvoda iz liste i unosom količine
koja se kupuje. Narudžba se šalje fabrici gdje se pokreće proizvodnja. Svaka proizvodnja
ima radni nalog koji čuva podatke o proizvodima koji se prave, mašinama koje se koriste
i vremenima početka i završetka proizvodnje. Naloge čuvati proizvoljno. Potrebno je
voditi evidenciju na kojoj mašini je kreiran neki proizvod ili poluproizvod, kao i podatke
koji nalozi su u realizaciji, a koji su završeni. Ove podatke čuvati u tekstualnim
datotekama. Ukoliko je mašina zauzeta u trenutku kreiranja proizvodnog naloga,
potrebno je nalog staviti u red za čekanje i početi sa realizacijom kada se oslobodi
mašina.
Kada se naprave svi proizvodi oni se šalju pojedinačno kao objekti preko mreže filijalama,
a spisak proizvoda koji su poslani i jedinstveni broj proizvodnje (narudžbe) se zapisuju u
tekstualni fajl, koji se kao ZIP arhiva šalje filijali preko mreže. Kada filijala dobije ZIP
arhivu sa spiskom proizvoda, ona je raspakuje i čita jedinstveni broj proizvodnje. Na
osnovu ovog broja se kreira folder u koji se serijalizuju dobijeni proizvodi. Kada kupac
preuzme proizvode oni se uklanjaju iz foldera. Na klijentskoj aplikaciji, osim opcije za naručivanje proizvoda, treba da postoji i opcija
za pregled proizvoda koje fabrika može da proizvede. Fabrika treba da prikaže meni sa
opcijama za pregled aktvinih proizvodnji (ispisati i proizvode i mašinu na kojoj se
proizvode), pregled završenih proizvodnji i pregled narudžbi koje čekaju početak
proizvodnje. Potrebno je omogućiti računanje vremena rada svake mašine. Fabrika vodi
evidenciju koja filijala je izvšila najviše narudžbi. Ukoliko jedna filijala ne izvrši
narudžbu za dvije minute, tada fabrika šalje poruku upozorenja da se poboljša prodaja