Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.jleaf.pos2.bo.vehicle;
- import java.util.List;
- import javax.persistence.Query;
- import org.jleaf.core.AbstractBusinessFunction;
- import org.jleaf.core.BusinessFunction;
- import org.jleaf.core.Dto;
- import org.jleaf.core.annotation.ErrorList;
- import org.jleaf.core.annotation.Info;
- import org.jleaf.core.annotation.InfoIn;
- import org.jleaf.core.annotation.InfoOut;
- import org.jleaf.core.dao.CriteriaHelper;
- import org.jleaf.core.dao.QueryBuilder;
- import org.jleaf.pos2.entity.Vehicle;
- import org.jleaf.pos2.dao.VehicleDao;
- import org.jleaf.util.DtoUtil;
- import org.jleaf.util.ValidationUtil;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- /**
- * Business Transactions: Get Vehicle List
- *
- * @author Henokh Marjie Rivaldy , 26 Juli 2016
- */
- @Service
- @InfoIn(value = {
- @Info(name = "keyword", description = "keyword", type = String.class),
- @Info(name = "limit", description = "limit", type = Long.class),
- @Info(name = "offset", description = "offset", type = Long.class),
- @Info(name = "active", description = "active", type = String.class)})
- @InfoOut(value = {
- @Info(name = "vehicleList", description = "vehicle list (vehicleCode, licenseNo, ownerName, chassisNo, engineNo, vehicleGroupName, vehicleTypeName, vehicleGroupCode, vehicleTypeCode, yearMade, customerName, address1, address2, address3, phone1, phone2, activeDateTime, nonActiveDateTime , version , createDateTime, createUsername , updateDateTime , updateUsername)")})
- @ErrorList(errorKeys = {})
- public class GetVehicleList extends AbstractBusinessFunction implements BusinessFunction {
- @Autowired
- VehicleDao vehicleDao;
- @Override
- public String getDescription() {
- return "Get Vehicle List";
- }
- @SuppressWarnings("unchecked")
- @Override
- public Dto execute(Dto inputDto) throws Exception {
- ValidationUtil.valDtoContainsKey(inputDto, "keyword");
- ValidationUtil.valDtoContainsKey(inputDto, "limit");
- ValidationUtil.valDtoContainsKey(inputDto, "offset");
- ValidationUtil.valDtoContainsKey(inputDto, "active");
- String keyword = inputDto.getString("keyword");
- String active = inputDto.getString("active");
- List<Object[]>result=null;
- QueryBuilder builder = new QueryBuilder();
- builder.add(" SELECT a.vehicle_code, a.license_no, a.owner_name, a.chassis_no, a.engine_no, a.vehicle_group_code, a.vehicle_group_name, a.vehicle_type_code, a.vehicle_type_name, a.year_made, a.customer_name, a.address1, a.address2, a.address3, a.phone1, a.phone2, a.active, a.active_datetime, a.non_active_datetime, a.version, a.create_datetime, a.create_username, a.update_datetime, a.update_username ")
- .add(" FROM ")
- .add(Vehicle.TABLE_NAME)
- .add(" a ")
- .add(" WHERE true ")
- .addIfNotEmpty(keyword,new StringBuilder().append(" AND (").append(CriteriaHelper.likeExpressionIgnoreCase(keyword, " a.owner_name "))
- .append(" OR ").append(CriteriaHelper.likeExpressionIgnoreCase(keyword, " a.vehicle_code ")).append(")").toString())
- .addIfNotEmpty(active, " AND " + CriteriaHelper.equalsExpressionIgnoreCase(active, "a.active"))
- .add(" ORDER BY a.owner_name ASC ");
- if(inputDto.get("limit")!=null) builder.add(" LIMIT " + inputDto.getLong("limit"));
- if(inputDto.get("offset")!=null) builder.add(" OFFSET " + inputDto.getLong("offset"));
- Query q = vehicleDao.createNativeQuery(builder.toString());
- result = q.getResultList();
- return new Dto().putList("vehicleList", DtoUtil.createDtoListFromArray(result,"vehicleCode", "licenseNo", "ownerName", "chassisNo", "engineNo",
- "vehicleGroupCode", "vehicleGroupName", "vehicleTypeCode","vehicleTypeName", "yearMade",
- "customerName", "address1", "address2", "address3", "phone1", "phone2", "active",
- "activeDatetime", "nonActiveDatetime" , "version" , "createDatetime", "createUsername" ,
- "updateDatetime" , "updateUsername"));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement