From 177e29fe2358804cb0bb201dfeaf86b50b28a131 Mon Sep 17 00:00:00 2001 From: Franta Pribyl Date: Mon, 30 Jun 2014 07:33:05 +0200 Subject: [PATCH] =?UTF-8?q?Vlo=C5=BEen=20b=C3=A1zov=C3=BD=20k=C3=B3d=20pro?= =?UTF-8?q?=20agendu=20Po=C5=BEadavky=20/=20Aktivn=C3=AD.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit refs #100 --- .../info/bukova/isspst/AppInitListener.java | 23 ++++- .../bukova/isspst/dao/NumberSeriesDao.java | 7 ++ .../bukova/isspst/dao/RequirementDao.java | 7 ++ .../isspst/dao/jpa/NumberSeriesDaoJPA.java | 7 ++ .../isspst/dao/jpa/RequirementDaoJPA.java | 7 ++ .../info/bukova/isspst/data/NumberSeries.java | 54 ++++++++++++ .../info/bukova/isspst/data/Requirement.java | 81 ++++++++++++++++++ .../isspst/filters/RequirementFilter.java | 65 ++++++++++++++ .../numberseries/NumberSeriesService.java | 11 +++ .../numberseries/NumberSeriesServiceImpl.java | 24 ++++++ .../requirement/RequirementService.java | 8 ++ .../requirement/RequirementServiceImpl.java | 9 ++ .../ui/requirement/RequirementForm.java | 15 ++++ .../ui/requirement/RequirementList.java | 24 ++++++ src/main/resources/hibernate.cfg.xml | 3 +- .../WEB-INF/locales/zk-label.properties | 5 +- .../webapp/WEB-INF/spring/root-context.xml | 17 ++++ src/main/webapp/app/navigation.zul | 2 +- src/main/webapp/img/reqact.png | Bin 0 -> 2518 bytes src/main/webapp/img/reqdone.png | Bin 0 -> 2049 bytes src/main/webapp/requirements/actual/index.zul | 10 +++ .../requirements/actual/requirements.zul | 58 +++++++++++++ .../requirements/actual/requirementsForm.zul | 35 ++++++++ 23 files changed, 466 insertions(+), 6 deletions(-) create mode 100644 src/main/java/info/bukova/isspst/dao/NumberSeriesDao.java create mode 100644 src/main/java/info/bukova/isspst/dao/RequirementDao.java create mode 100644 src/main/java/info/bukova/isspst/dao/jpa/NumberSeriesDaoJPA.java create mode 100644 src/main/java/info/bukova/isspst/dao/jpa/RequirementDaoJPA.java create mode 100644 src/main/java/info/bukova/isspst/data/NumberSeries.java create mode 100644 src/main/java/info/bukova/isspst/data/Requirement.java create mode 100644 src/main/java/info/bukova/isspst/filters/RequirementFilter.java create mode 100644 src/main/java/info/bukova/isspst/services/numberseries/NumberSeriesService.java create mode 100644 src/main/java/info/bukova/isspst/services/numberseries/NumberSeriesServiceImpl.java create mode 100644 src/main/java/info/bukova/isspst/services/requirement/RequirementService.java create mode 100644 src/main/java/info/bukova/isspst/services/requirement/RequirementServiceImpl.java create mode 100644 src/main/java/info/bukova/isspst/ui/requirement/RequirementForm.java create mode 100644 src/main/java/info/bukova/isspst/ui/requirement/RequirementList.java create mode 100644 src/main/webapp/img/reqact.png create mode 100644 src/main/webapp/img/reqdone.png create mode 100644 src/main/webapp/requirements/actual/index.zul create mode 100644 src/main/webapp/requirements/actual/requirements.zul create mode 100644 src/main/webapp/requirements/actual/requirementsForm.zul diff --git a/src/main/java/info/bukova/isspst/AppInitListener.java b/src/main/java/info/bukova/isspst/AppInitListener.java index 2daddb32..48d24734 100644 --- a/src/main/java/info/bukova/isspst/AppInitListener.java +++ b/src/main/java/info/bukova/isspst/AppInitListener.java @@ -1,17 +1,19 @@ package info.bukova.isspst; -import java.util.List; - +import info.bukova.isspst.data.NumberSeries; import info.bukova.isspst.data.Permission; import info.bukova.isspst.data.Role; import info.bukova.isspst.data.User; import info.bukova.isspst.reporting.Report; import info.bukova.isspst.reporting.ReportMapping; import info.bukova.isspst.reporting.ReportType; +import info.bukova.isspst.services.numberseries.NumberSeriesService; import info.bukova.isspst.services.users.PermissionService; import info.bukova.isspst.services.users.RoleService; import info.bukova.isspst.services.users.UserService; +import java.util.List; + import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; @@ -26,6 +28,7 @@ public class AppInitListener implements ServletContextListener { private RoleService roleService; private UserService userService; private PermissionService permService; + private NumberSeriesService nsService; @Override public void contextDestroyed(ServletContextEvent arg0) { @@ -41,12 +44,14 @@ public class AppInitListener implements ServletContextListener { roleService = ctx.getBean(RoleService.class); userService = ctx.getBean(UserService.class); permService = ctx.getBean(PermissionService.class); + nsService =ctx.getBean(NumberSeriesService.class); userService.grantAdmin(); checkRoles(); checkUsers(); checkPermissions(); checkAllAdminRights(); + this.checkNumberSeries(); userService.removeAccess(); loadModuleReports(); @@ -140,5 +145,19 @@ public class AppInitListener implements ServletContextListener { } } } + + private void checkNumberSeries() + { + NumberSeries ns = nsService.getNumberSerie(Constants.MOD_REQUIREMENTS); + + if (ns == null) + { + ns = new NumberSeries(); + ns.setModule(Constants.MOD_REQUIREMENTS); + ns.setPrefix(""); + ns.setNumber(1); + nsService.add(ns); + } + } } diff --git a/src/main/java/info/bukova/isspst/dao/NumberSeriesDao.java b/src/main/java/info/bukova/isspst/dao/NumberSeriesDao.java new file mode 100644 index 00000000..8794315d --- /dev/null +++ b/src/main/java/info/bukova/isspst/dao/NumberSeriesDao.java @@ -0,0 +1,7 @@ +package info.bukova.isspst.dao; + +import info.bukova.isspst.data.NumberSeries; + +public interface NumberSeriesDao extends BaseDao { + +} \ No newline at end of file diff --git a/src/main/java/info/bukova/isspst/dao/RequirementDao.java b/src/main/java/info/bukova/isspst/dao/RequirementDao.java new file mode 100644 index 00000000..0363e977 --- /dev/null +++ b/src/main/java/info/bukova/isspst/dao/RequirementDao.java @@ -0,0 +1,7 @@ +package info.bukova.isspst.dao; + +import info.bukova.isspst.data.Requirement; + +public interface RequirementDao extends BaseDao { + +} \ No newline at end of file diff --git a/src/main/java/info/bukova/isspst/dao/jpa/NumberSeriesDaoJPA.java b/src/main/java/info/bukova/isspst/dao/jpa/NumberSeriesDaoJPA.java new file mode 100644 index 00000000..812fff17 --- /dev/null +++ b/src/main/java/info/bukova/isspst/dao/jpa/NumberSeriesDaoJPA.java @@ -0,0 +1,7 @@ +package info.bukova.isspst.dao.jpa; + +import info.bukova.isspst.dao.NumberSeriesDao; +import info.bukova.isspst.data.NumberSeries; + +public class NumberSeriesDaoJPA extends BaseDaoJPA implements NumberSeriesDao { +} diff --git a/src/main/java/info/bukova/isspst/dao/jpa/RequirementDaoJPA.java b/src/main/java/info/bukova/isspst/dao/jpa/RequirementDaoJPA.java new file mode 100644 index 00000000..53de8190 --- /dev/null +++ b/src/main/java/info/bukova/isspst/dao/jpa/RequirementDaoJPA.java @@ -0,0 +1,7 @@ +package info.bukova.isspst.dao.jpa; + +import info.bukova.isspst.dao.RequirementDao; +import info.bukova.isspst.data.Requirement; + +public class RequirementDaoJPA extends BaseDaoJPA implements RequirementDao { +} diff --git a/src/main/java/info/bukova/isspst/data/NumberSeries.java b/src/main/java/info/bukova/isspst/data/NumberSeries.java new file mode 100644 index 00000000..a26e2538 --- /dev/null +++ b/src/main/java/info/bukova/isspst/data/NumberSeries.java @@ -0,0 +1,54 @@ +package info.bukova.isspst.data; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; + +@Entity +@Table(name = "NUMBERSERIES") +public class NumberSeries extends BaseSimpleData +{ + @Column(name = "MODULE") + private String module; + + @Column(name = "PREFIX") + private String prefix; + + @Column(name = "NUMBER") + private int number; + + public String getCurrentNumber() + { + return String.format("%s%06d", this.getPrefix(), this.getNumber()); + } + + public String getModule() + { + return module; + } + + public void setModule(String module) + { + this.module = module; + } + + public String getPrefix() + { + return prefix; + } + + public void setPrefix(String prefix) + { + this.prefix = prefix; + } + + public int getNumber() + { + return number; + } + + public void setNumber(int number) + { + this.number = number; + } +} diff --git a/src/main/java/info/bukova/isspst/data/Requirement.java b/src/main/java/info/bukova/isspst/data/Requirement.java new file mode 100644 index 00000000..6e6ecaff --- /dev/null +++ b/src/main/java/info/bukova/isspst/data/Requirement.java @@ -0,0 +1,81 @@ +package info.bukova.isspst.data; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +@Entity +@Table(name = "REQUIREMENT") +public class Requirement extends BaseData implements DataModel +{ + @Column(name = "NUMSER", unique = true) + private String numser; + + @Column(name = "REQDATE") + private Date reqDate; + + @Column(name = "DELIVERYDATE") + private Date deliveryDate; + + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(name = "WORKGROUP_ID") + private Workgroup workgroup; + + @Column(name = "DESCRIPTION") + private String description; + + public String getNumser() + { + return numser; + } + + public void setNumser(String numser) + { + this.numser = numser; + } + + public Date getReqDate() + { + return reqDate; + } + + public void setReqDate(Date reqDate) + { + this.reqDate = reqDate; + } + + public Date getDeliveryDate() + { + return deliveryDate; + } + + public void setDeliveryDate(Date deliveryDate) + { + this.deliveryDate = deliveryDate; + } + + public Workgroup getWorkgroup() + { + return workgroup; + } + + public void setWorkgroup(Workgroup workgroup) + { + this.workgroup = workgroup; + } + + public String getDescription() + { + return description; + } + + public void setDescription(String description) + { + this.description = description; + } +} diff --git a/src/main/java/info/bukova/isspst/filters/RequirementFilter.java b/src/main/java/info/bukova/isspst/filters/RequirementFilter.java new file mode 100644 index 00000000..a8663e2b --- /dev/null +++ b/src/main/java/info/bukova/isspst/filters/RequirementFilter.java @@ -0,0 +1,65 @@ +package info.bukova.isspst.filters; + +import static info.bukova.isspst.StringUtils.nullStr; +import info.bukova.isspst.data.Requirement; + +import org.hamcrest.Description; +import org.hamcrest.Factory; +import org.hamcrest.Matcher; +import org.hamcrest.TypeSafeMatcher; + +public class RequirementFilter implements Filter +{ + + private Requirement condition; + + public RequirementFilter(Requirement cond) + { + this.condition = cond; + } + + private static class RequirementMatcher extends TypeSafeMatcher + { + + private Requirement condition; + + public RequirementMatcher(Requirement cond) + { + this.condition = cond; + } + + @Override + public void describeTo(Description desc) + { + desc.appendText("requirement matches"); + } + + @Override + public boolean matchesSafely(Requirement item) + { + return nullStr(item.getNumser()).toLowerCase().contains(nullStr(condition.getNumser()).toLowerCase()) + && item.getReqDate().equals(condition.getReqDate()) + && item.getDeliveryDate().equals(condition.getDeliveryDate()) + && nullStr(item.getDescription()).toLowerCase().contains(nullStr(condition.getDescription()).toLowerCase()); + } + + @Factory + public static Matcher matchBuilding(Requirement building) + { + return new RequirementMatcher(building); + } + } + + @Override + public RequirementMatcher matcher() + { + return new RequirementMatcher(condition); + } + + @Override + public String queryString() + { + return ""; + } + +} diff --git a/src/main/java/info/bukova/isspst/services/numberseries/NumberSeriesService.java b/src/main/java/info/bukova/isspst/services/numberseries/NumberSeriesService.java new file mode 100644 index 00000000..37671f10 --- /dev/null +++ b/src/main/java/info/bukova/isspst/services/numberseries/NumberSeriesService.java @@ -0,0 +1,11 @@ +package info.bukova.isspst.services.numberseries; + +import info.bukova.isspst.data.NumberSeries; +import info.bukova.isspst.services.Service; + +public interface NumberSeriesService extends Service +{ + public NumberSeries getNumberSerie(String module); + + public void increase(NumberSeries ns); +} diff --git a/src/main/java/info/bukova/isspst/services/numberseries/NumberSeriesServiceImpl.java b/src/main/java/info/bukova/isspst/services/numberseries/NumberSeriesServiceImpl.java new file mode 100644 index 00000000..e38ecb54 --- /dev/null +++ b/src/main/java/info/bukova/isspst/services/numberseries/NumberSeriesServiceImpl.java @@ -0,0 +1,24 @@ +package info.bukova.isspst.services.numberseries; + +import org.springframework.transaction.annotation.Transactional; + +import info.bukova.isspst.data.NumberSeries; +import info.bukova.isspst.services.AbstractService; + +public class NumberSeriesServiceImpl extends AbstractService implements NumberSeriesService +{ + @Transactional + @Override + public NumberSeries getNumberSerie(String module) + { + return this.selectSingle("from NumberSeries where MODULE = '" + module + "'"); + } + + @Transactional + @Override + public void increase(NumberSeries ns) + { + ns.setNumber(ns.getNumber() + 1); + this.update(ns); + } +} diff --git a/src/main/java/info/bukova/isspst/services/requirement/RequirementService.java b/src/main/java/info/bukova/isspst/services/requirement/RequirementService.java new file mode 100644 index 00000000..6a05d509 --- /dev/null +++ b/src/main/java/info/bukova/isspst/services/requirement/RequirementService.java @@ -0,0 +1,8 @@ +package info.bukova.isspst.services.requirement; + +import info.bukova.isspst.data.Requirement; +import info.bukova.isspst.services.Service; + +public interface RequirementService extends Service { + +} diff --git a/src/main/java/info/bukova/isspst/services/requirement/RequirementServiceImpl.java b/src/main/java/info/bukova/isspst/services/requirement/RequirementServiceImpl.java new file mode 100644 index 00000000..4206d5ea --- /dev/null +++ b/src/main/java/info/bukova/isspst/services/requirement/RequirementServiceImpl.java @@ -0,0 +1,9 @@ +package info.bukova.isspst.services.requirement; + +import info.bukova.isspst.data.Requirement; +import info.bukova.isspst.services.AbstractService; + +public class RequirementServiceImpl extends AbstractService implements RequirementService +{ + +} diff --git a/src/main/java/info/bukova/isspst/ui/requirement/RequirementForm.java b/src/main/java/info/bukova/isspst/ui/requirement/RequirementForm.java new file mode 100644 index 00000000..61144417 --- /dev/null +++ b/src/main/java/info/bukova/isspst/ui/requirement/RequirementForm.java @@ -0,0 +1,15 @@ +package info.bukova.isspst.ui.requirement; + +import info.bukova.isspst.data.Requirement; +import info.bukova.isspst.ui.FormViewModel; + +import org.zkoss.bind.annotation.Init; + +public class RequirementForm extends FormViewModel +{ + @Init(superclass = true) + public void init() + { + + } +} diff --git a/src/main/java/info/bukova/isspst/ui/requirement/RequirementList.java b/src/main/java/info/bukova/isspst/ui/requirement/RequirementList.java new file mode 100644 index 00000000..064d430c --- /dev/null +++ b/src/main/java/info/bukova/isspst/ui/requirement/RequirementList.java @@ -0,0 +1,24 @@ +package info.bukova.isspst.ui.requirement; + +import info.bukova.isspst.data.Requirement; +import info.bukova.isspst.filters.RequirementFilter; +import info.bukova.isspst.services.requirement.RequirementService; +import info.bukova.isspst.ui.ListViewModel; + +import org.zkoss.bind.annotation.Init; +import org.zkoss.zk.ui.select.annotation.WireVariable; + +public class RequirementList extends ListViewModel { + + @WireVariable + private RequirementService requirementService; + + @Init + public void init() { + service = requirementService; + dataClass = Requirement.class; + formZul = "requirementsForm.zul"; + dataFilter = new RequirementFilter(getFilterTemplate()); + } + +} diff --git a/src/main/resources/hibernate.cfg.xml b/src/main/resources/hibernate.cfg.xml index 3c62d43a..b9d9fb5e 100644 --- a/src/main/resources/hibernate.cfg.xml +++ b/src/main/resources/hibernate.cfg.xml @@ -16,6 +16,7 @@ - + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/locales/zk-label.properties b/src/main/webapp/WEB-INF/locales/zk-label.properties index 2d0850ab..5d855b3e 100644 --- a/src/main/webapp/WEB-INF/locales/zk-label.properties +++ b/src/main/webapp/WEB-INF/locales/zk-label.properties @@ -8,8 +8,9 @@ MenuSettings=Nastavení MenuAdministration=Administrace MenuUser=Uživatel -AgendaMyRequirements=Aktuální -AgendaRequirementsHistory=Ukončené +AgendaActRequirements=Aktuální požadavky +AgendaRequirementsHistory=Ukončené požadavky +RequirementsFormTitle="Požadavek" AgendaMyOrders=Aktuální AgendaOrdersHistory=Ukončené diff --git a/src/main/webapp/WEB-INF/spring/root-context.xml b/src/main/webapp/WEB-INF/spring/root-context.xml index 6ef6e9ad..28506495 100644 --- a/src/main/webapp/WEB-INF/spring/root-context.xml +++ b/src/main/webapp/WEB-INF/spring/root-context.xml @@ -127,6 +127,14 @@ + + + + + + + + @@ -190,4 +198,13 @@ + + + + + + + + + diff --git a/src/main/webapp/app/navigation.zul b/src/main/webapp/app/navigation.zul index 15f28161..b07ec495 100644 --- a/src/main/webapp/app/navigation.zul +++ b/src/main/webapp/app/navigation.zul @@ -16,7 +16,7 @@ - + diff --git a/src/main/webapp/img/reqact.png b/src/main/webapp/img/reqact.png new file mode 100644 index 0000000000000000000000000000000000000000..f0d5476cd0ea22ea6f91b42e4d41e882ae2d364d GIT binary patch literal 2518 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 literal 0 HcmV?d00001 diff --git a/src/main/webapp/img/reqdone.png b/src/main/webapp/img/reqdone.png new file mode 100644 index 0000000000000000000000000000000000000000..bff75d99d2eb94a53732893aa36029c0a5f109b9 GIT binary patch literal 2049 zcmV+c2>$npP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qRNAp5A000MYNkluWg4l$`SVdzGQb`pH=&&SEk*%yUfD4F(vIPhTgCb&T zKnh3%44_F`gs1PFWKR1>Ps*e~PS25Z-t*nV{qFPrzUO`K_ubLZc>ed?fw^&D;&!Fv zaq;>6Ps%SI`ntSKIyYIqhw9MOu<^*5lfi?(-7#`+n-i);3sK|lb>(|V&Hf`#o2!4+ z|L*?k&ja1iWF^6MJ|9IQ@l?ZaLU+x6HZ>F{CI&gf=}8`af!oI(yy}D-i*-@X=b+5Q zY`pfJuwSSlHTzS?Ci=98WM_Ui;O92k`O}rC(Bz_ouZ>HVmcxq3h;_4{Q4Ph1W24$V z#}1$F^>Tz_jVZ43G*P0-N7<@X1NZZ?9MzDT{i)L<{p`<l zqZ`*YxprOE(^kUeP-*kIbd+s;@&25Gsl@Nf5_h&ZtVOrCJ?`%I_-ZWbQ1aB!eN)x_ zt`AbI3j~7cB5e+Gcr0WQWHz6NE3fT(V_pE;;?KHgEME95pRGxW*|=(;hwkm$n#MXB zmootQ?(T=P>3q%QbCE;NW%4*ESiW@p3%OitUH~!lH}>Vdd(Nj&;%uG1ZOA z-r7_;G1A#Ad?=MZd3L{h$-Dxpl2wF6%Y`> zuFT5W5+gO6jw7IRCHPD!t7?G2c z)9dc;?#EqSU6btW?DE#FTUTRYVbN)2Wi@VQW(I-K5HITLA(~1Y&$veJC2-hu%|Q%b z6B2E0aLHLV{hv=ij6@<4NJAbO8Ts>}p`rh6>p5`Xz-D7(V~E9K=PMtzVS{lkr%P?~aIw zI662uxQz1t_m9}&;bD!@(NR`HLc#)DTiZ_z4GqEcQ7l0<{iOz-t*yA%b`zg6(b9-J zjZIL0 zppSO!*m10-rNv~%js^tQzb?6a;j)wFO-i9S!wptf)X~W+qMq?8QEz z5e^F$U%PVMk(|2^<@bAye|8fq027?X~K+!GU+_*+26O$L++b93|h8NsP0(cA1~ zX=ynnFf@SF#2EVm-^BH@QWR!qL3TD4MOsE7AL&SvW z8z5#BQrj>gFff1tg_s<)wzh_gi_4&cgTs+q9qlv!Zj{UA+O+4TF)lJmX-`uIvuahS zR?mz~KQY1dt}2*5V?dbaY;0_>`IT3`^zrfO^7ZpQPg~B3VfILB`pKFD0y}jS_^z=*&3k#FQ$Hxa}WMnv#BTETD*)ufG?CqN~ f+ULUm#}51xS-R30%iOD>00000NkvXXu0mjfQ+?yQ literal 0 HcmV?d00001 diff --git a/src/main/webapp/requirements/actual/index.zul b/src/main/webapp/requirements/actual/index.zul new file mode 100644 index 00000000..86024360 --- /dev/null +++ b/src/main/webapp/requirements/actual/index.zul @@ -0,0 +1,10 @@ + + + + + String gridZul = "requirements.zul"; + + + + + \ No newline at end of file diff --git a/src/main/webapp/requirements/actual/requirements.zul b/src/main/webapp/requirements/actual/requirements.zul new file mode 100644 index 00000000..5945c28d --- /dev/null +++ b/src/main/webapp/requirements/actual/requirements.zul @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + +
+
+ +
+
+ +
+
+
+ +
+
+ +
+
+ +
+
+
+ +
+
+ +
+
+ +
+
+
+
+ + +
+ +
+
\ No newline at end of file diff --git a/src/main/webapp/requirements/actual/requirementsForm.zul b/src/main/webapp/requirements/actual/requirementsForm.zul new file mode 100644 index 00000000..01a57305 --- /dev/null +++ b/src/main/webapp/requirements/actual/requirementsForm.zul @@ -0,0 +1,35 @@ + + + + + + + + + + + + + ${labels.BuildingsFormCode} : + + + + + + ${labels.BuildingsFormName} : + + + + + + ${labels.BuildingsFormDescription} : + + + + + + + + + + \ No newline at end of file