Optimalizace načítání gridů cestovních příkazů.

master
Josef Rokos 6 years ago
parent c72ab99dc1
commit 48bd9983fc

@ -36,7 +36,7 @@ import java.util.Map;
public class Constants { public class Constants {
public final static long DB_VERSION = 6; public final static long DB_VERSION = 7;
public final static String DEF_ADMIN = "admin"; public final static String DEF_ADMIN = "admin";
public final static String DEF_ADMIN_PASSWD = "admin"; public final static String DEF_ADMIN_PASSWD = "admin";

@ -63,6 +63,8 @@ public class RequirementBase extends BaseData implements FilterableRequirement,
@JoinColumn(name = "SEASON_ID") @JoinColumn(name = "SEASON_ID")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) @Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
private Season season; private Season season;
@Column(name = "APPROVE_DATE")
private Date approveDate;
public RequirementBase() { public RequirementBase() {
authorization = new ArrayList<AuthItem>(); authorization = new ArrayList<AuthItem>();
@ -166,4 +168,12 @@ public class RequirementBase extends BaseData implements FilterableRequirement,
public void setSeason(Season season) { public void setSeason(Season season) {
this.season = season; this.season = season;
} }
public Date getApproveDate() {
return approveDate;
}
public void setApproveDate(Date approveDate) {
this.approveDate = approveDate;
}
} }

@ -22,8 +22,6 @@ public class TripBillApproval extends RequirementBase {
@Transient @Transient
private boolean billForPassenger; private boolean billForPassenger;
@Transient @Transient
private Date approveDate;
@Transient
private Date tripDate; private Date tripDate;
public boolean isBillForPassenger() { public boolean isBillForPassenger() {
@ -42,14 +40,6 @@ public class TripBillApproval extends RequirementBase {
this.tripDate = tripDate; this.tripDate = tripDate;
} }
public Date getApproveDate() {
return approveDate;
}
public void setApproveDate(Date approveDate) {
this.approveDate = approveDate;
}
@Override @Override
public String getNumser() { public String getNumser() {

@ -54,7 +54,7 @@ public class TripBillApprovalFilter implements Filter<TripBillApproval>
boolean foundPaid = BooleanUtils.isEqualByBooleanValue(item.getBill().getPaid(), condition.getBill().getPaid()); boolean foundPaid = BooleanUtils.isEqualByBooleanValue(item.getBill().getPaid(), condition.getBill().getPaid());
boolean foundPaidDate = DateTimeUtils.isEqualByDateForFilter(item.getBill().getPaidDate(), condition.getBill().getPaidDate()); boolean foundPaidDate = DateTimeUtils.isEqualByDateForFilter(item.getBill().getPaidDate(), condition.getBill().getPaidDate());
boolean foundPassenger = (item.getBill().getOwnedBy() != item.getBill().getRequirement().getOwnedBy()) == condition.isBillForPassenger(); boolean foundPassenger = (item.getBill().getOwnedBy() != item.getBill().getRequirement().getOwnedBy()) == condition.isBillForPassenger();
boolean foundApproveDate = DateTimeUtils.isEqualByDateForFilter(item.getLastApproveDate(), condition.getApproveDate()); boolean foundApproveDate = DateTimeUtils.isEqualByDateForFilter(item.getApproveDate(), condition.getApproveDate());
boolean foundTripDate = DateTimeUtils.isEqualByDateForFilter(item.getBill().getRequirement().getTripDate(), condition.getTripDate()); boolean foundTripDate = DateTimeUtils.isEqualByDateForFilter(item.getBill().getRequirement().getTripDate(), condition.getTripDate());
return foundNumser && foundReqDate && foundDescription && foundFrom && foundTo && foundWorkgroup && foundCentre && foundOwner && foundPaid return foundNumser && foundReqDate && foundDescription && foundFrom && foundTo && foundWorkgroup && foundCentre && foundOwner && foundPaid
&& foundPaidDate && foundPassenger && foundApproveDate && foundTripDate; && foundPaidDate && foundPassenger && foundApproveDate && foundTripDate;

@ -1,9 +1,20 @@
package info.bukova.isspst.services.dbinfo; package info.bukova.isspst.services.dbinfo;
import info.bukova.isspst.Constants; import info.bukova.isspst.Constants;
import info.bukova.isspst.dao.BaseDao;
import info.bukova.isspst.dao.RequirementDao;
import info.bukova.isspst.dao.TripBillApprovalDao;
import info.bukova.isspst.dao.TripRequirementDao;
import info.bukova.isspst.data.DbInfo; import info.bukova.isspst.data.DbInfo;
import info.bukova.isspst.data.RequirementBase;
import info.bukova.isspst.data.RequirementState;
import info.bukova.isspst.services.AbstractService; import info.bukova.isspst.services.AbstractService;
import info.bukova.isspst.services.requirement.RequirementBaseService;
import info.bukova.isspst.services.requirement.RequirementService;
import info.bukova.isspst.services.requirement.TripRequirementService;
import info.bukova.isspst.services.tripbill.TripBillApprovalService;
import org.hibernate.SQLQuery; import org.hibernate.SQLQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.ArrayList;
@ -11,6 +22,20 @@ import java.util.List;
public class DbInfoServiceImpl extends AbstractService<DbInfo> implements DbInfoService public class DbInfoServiceImpl extends AbstractService<DbInfo> implements DbInfoService
{ {
@Autowired
private TripBillApprovalService tripBillApprovalService;
@Autowired
private TripBillApprovalDao tripBillApprovalDao;
@Autowired
private TripRequirementService tripRequirement;
@Autowired
private TripRequirementDao tripRequirementDao;
@Autowired
private RequirementService requirementService;
@Autowired
private RequirementDao requirementDao;
private DbInfo getDbInfo() private DbInfo getDbInfo()
{ {
DbInfo dbInfo = null; DbInfo dbInfo = null;
@ -211,10 +236,26 @@ public class DbInfoServiceImpl extends AbstractService<DbInfo> implements DbInfo
sq.executeUpdate(); sq.executeUpdate();
} }
if (dbVersion < 7) {
setApproveDate((RequirementBaseService)tripBillApprovalService, (BaseDao)tripBillApprovalDao);
setApproveDate((RequirementBaseService)tripRequirement, (BaseDao)tripRequirementDao);
setApproveDate((RequirementBaseService)requirementService, (BaseDao)requirementDao);
}
this.updateDatabaseVersion(); this.updateDatabaseVersion();
} }
} }
private void setApproveDate(RequirementBaseService<RequirementBase> service, BaseDao<RequirementBase> daoReq) {
for (RequirementBase req : service.getAll()) {
if (req.getState() == RequirementState.APPROVED) {
service.loadAuthItems(req);
req.setApproveDate(req.getLastApproveDate());
daoReq.modify(req);
}
}
}
@Override @Override
@Transactional @Transactional
public void updateDatabaseVersion() public void updateDatabaseVersion()

@ -289,6 +289,7 @@ public abstract class RequirementBaseServiceImpl<T extends RequirementBase> exte
if (getNextWorkflow(e) == null) { if (getNextWorkflow(e) == null) {
e.setState(RequirementState.APPROVED); e.setState(RequirementState.APPROVED);
e.setApproveDate(approveDate);
} else { } else {
e.setState(RequirementState.PARTIALLY); e.setState(RequirementState.PARTIALLY);
} }

@ -20,12 +20,7 @@ public class TripBillListAll extends TripBillListBase {
@Override @Override
protected List<TripBillApproval> getListFromService() { protected List<TripBillApproval> getListFromService() {
try { try {
List<TripBillApproval> list = getReqService().getAll(); return getReqService().getAll();
for (TripBillApproval item : list)
{
getReqService().loadAuthItems(item);
}
return list;
} catch (AccessDeniedException e) { } catch (AccessDeniedException e) {
BindUtils.postGlobalCommand(null, null, "disableAll", null); BindUtils.postGlobalCommand(null, null, "disableAll", null);
return new ArrayList<TripBillApproval>(); return new ArrayList<TripBillApproval>();

@ -20,12 +20,7 @@ public class TripBillListCentre extends TripBillListBase {
@Override @Override
protected List<TripBillApproval> getListFromService() { protected List<TripBillApproval> getListFromService() {
try { try {
List<TripBillApproval> list = getReqService().getCentreReq(); return getReqService().getCentreReq();
for (TripBillApproval item : list)
{
getReqService().loadAuthItems(item);
}
return list;
} catch (AccessDeniedException e) { } catch (AccessDeniedException e) {
BindUtils.postGlobalCommand(null, null, "disableCentre", null); BindUtils.postGlobalCommand(null, null, "disableCentre", null);
return new ArrayList<TripBillApproval>(); return new ArrayList<TripBillApproval>();

@ -20,12 +20,7 @@ public class TripBillListWorkgroup extends TripBillListBase {
@Override @Override
protected List<TripBillApproval> getListFromService() { protected List<TripBillApproval> getListFromService() {
try { try {
List<TripBillApproval> list = getReqService().getWorkgroupReq(); return getReqService().getWorkgroupReq();
for (TripBillApproval item : list)
{
getReqService().loadAuthItems(item);
}
return list;
} catch (AccessDeniedException e) { } catch (AccessDeniedException e) {
BindUtils.postGlobalCommand(null, null, "disableWorkgroup", null); BindUtils.postGlobalCommand(null, null, "disableWorkgroup", null);
return new ArrayList<TripBillApproval>(); return new ArrayList<TripBillApproval>();

@ -1,7 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.6.0.final using JasperReports Library version 6.6.0 -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="TripBills" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="b63eddc4-7326-45c4-99b4-fc35d6e98179"> <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="TripBills" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="b63eddc4-7326-45c4-99b4-fc35d6e98179">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/> <property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
<property name="ireport.zoom" value="1.9487171000000014"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<queryString> <queryString>
<![CDATA[]]> <![CDATA[]]>
</queryString> </queryString>
@ -19,7 +21,7 @@
<title> <title>
<band height="23" splitType="Stretch"> <band height="23" splitType="Stretch">
<staticText> <staticText>
<reportElement x="203" y="0" width="212" height="20" uuid="bc6cd7eb-bb1a-4114-b37d-ac64e951ca84"/> <reportElement x="0" y="0" width="550" height="20" uuid="bc6cd7eb-bb1a-4114-b37d-ac64e951ca84"/>
<textElement textAlignment="Center"> <textElement textAlignment="Center">
<font size="14" isBold="true" pdfFontName="Helvetica-Bold" pdfEncoding="Cp1250" isPdfEmbedded="true"/> <font size="14" isBold="true" pdfFontName="Helvetica-Bold" pdfEncoding="Cp1250" isPdfEmbedded="true"/>
</textElement> </textElement>
@ -75,7 +77,7 @@
<text><![CDATA[Cíl]]></text> <text><![CDATA[Cíl]]></text>
</staticText> </staticText>
<staticText> <staticText>
<reportElement x="358" y="0" width="100" height="24" uuid="9eddb29b-3024-4f0d-90f5-e8e896add7c0"> <reportElement x="358" y="0" width="97" height="24" uuid="9eddb29b-3024-4f0d-90f5-e8e896add7c0">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="df75863b-fbfb-4332-a9fa-dbacf818e85c"/> <property name="com.jaspersoft.studio.spreadsheet.connectionID" value="df75863b-fbfb-4332-a9fa-dbacf818e85c"/>
</reportElement> </reportElement>
<textElement verticalAlignment="Middle"> <textElement verticalAlignment="Middle">
@ -84,7 +86,7 @@
<text><![CDATA[Žadatel]]></text> <text><![CDATA[Žadatel]]></text>
</staticText> </staticText>
<staticText> <staticText>
<reportElement x="460" y="0" width="40" height="24" uuid="783dc31a-7f32-44d1-b455-6e8d25d5a943"> <reportElement x="451" y="0" width="45" height="24" uuid="783dc31a-7f32-44d1-b455-6e8d25d5a943">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="ef5d98d4-a0b8-4098-be82-3ea9a1bc2213"/> <property name="com.jaspersoft.studio.spreadsheet.connectionID" value="ef5d98d4-a0b8-4098-be82-3ea9a1bc2213"/>
</reportElement> </reportElement>
<textElement verticalAlignment="Middle"> <textElement verticalAlignment="Middle">
@ -155,7 +157,7 @@
<textFieldExpression><![CDATA[$F{bill.requirement.to}]]></textFieldExpression> <textFieldExpression><![CDATA[$F{bill.requirement.to}]]></textFieldExpression>
</textField> </textField>
<textField> <textField>
<reportElement x="358" y="1" width="100" height="12" uuid="3a197226-28d7-4384-b74a-12e748bd0967"> <reportElement x="358" y="1" width="97" height="12" uuid="3a197226-28d7-4384-b74a-12e748bd0967">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="df75863b-fbfb-4332-a9fa-dbacf818e85c"/> <property name="com.jaspersoft.studio.spreadsheet.connectionID" value="df75863b-fbfb-4332-a9fa-dbacf818e85c"/>
</reportElement> </reportElement>
<textElement> <textElement>
@ -164,7 +166,7 @@
<textFieldExpression><![CDATA[$F{bill.ownedBy}]]></textFieldExpression> <textFieldExpression><![CDATA[$F{bill.ownedBy}]]></textFieldExpression>
</textField> </textField>
<textField pattern="###0.00;-###0.00"> <textField pattern="###0.00;-###0.00">
<reportElement x="460" y="1" width="40" height="12" uuid="02a5e327-b7ab-4841-a895-0d285770e3c8"> <reportElement x="451" y="1" width="45" height="12" uuid="02a5e327-b7ab-4841-a895-0d285770e3c8">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="ef5d98d4-a0b8-4098-be82-3ea9a1bc2213"/> <property name="com.jaspersoft.studio.spreadsheet.connectionID" value="ef5d98d4-a0b8-4098-be82-3ea9a1bc2213"/>
</reportElement> </reportElement>
<textElement textAlignment="Right"> <textElement textAlignment="Right">

@ -1,7 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.6.0.final using JasperReports Library version 6.6.0 -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="TripBills" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="b63eddc4-7326-45c4-99b4-fc35d6e98179"> <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="TripBills" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="b63eddc4-7326-45c4-99b4-fc35d6e98179">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/> <property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
<property name="ireport.zoom" value="1.4641000000000006"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<queryString> <queryString>
<![CDATA[]]> <![CDATA[]]>
</queryString> </queryString>
@ -19,7 +21,7 @@
<title> <title>
<band height="23" splitType="Stretch"> <band height="23" splitType="Stretch">
<staticText> <staticText>
<reportElement x="203" y="0" width="237" height="20" uuid="bc6cd7eb-bb1a-4114-b37d-ac64e951ca84"/> <reportElement x="0" y="0" width="552" height="20" uuid="bc6cd7eb-bb1a-4114-b37d-ac64e951ca84"/>
<textElement textAlignment="Center"> <textElement textAlignment="Center">
<font size="14" isBold="true" pdfFontName="Helvetica-Bold" pdfEncoding="Cp1250" isPdfEmbedded="true"/> <font size="14" isBold="true" pdfFontName="Helvetica-Bold" pdfEncoding="Cp1250" isPdfEmbedded="true"/>
</textElement> </textElement>

@ -247,7 +247,7 @@
<listcell label="@load(each.bill.total) @converter(vm.standardBigDecimalConverter)"/> <listcell label="@load(each.bill.total) @converter(vm.standardBigDecimalConverter)"/>
<listcell label="@load(each.bill.ownedBy)"/> <listcell label="@load(each.bill.ownedBy)"/>
<listcell label="@load(each.bill.ownedBy ne each.bill.requirement.ownedBy) @converter(vm.standardBoolConverter)"/> <listcell label="@load(each.bill.ownedBy ne each.bill.requirement.ownedBy) @converter(vm.standardBoolConverter)"/>
<listcell label="@load(each.lastApproveDate) @converter('formatedDate', format=labels.DateFormat)"/> <listcell label="@load(each.approveDate) @converter('formatedDate', format=labels.DateFormat)"/>
<listcell label="@load(each.bill.paid) @converter(vm.standardBoolConverter)"/> <listcell label="@load(each.bill.paid) @converter(vm.standardBoolConverter)"/>
<listcell label="@load(each.bill.paidDate) @converter('formatedDate', format=labels.DateFormat)"/> <listcell label="@load(each.bill.paidDate) @converter('formatedDate', format=labels.DateFormat)"/>
</listitem> </listitem>

Loading…
Cancel
Save