Advertisement
Fanadia_Friska

bf get henokh

Aug 25th, 2016
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.89 KB | None | 0 0
  1. package org.jleaf.pos2.bo.vehicle;
  2.  
  3. import java.util.List;
  4.  
  5. import javax.persistence.Query;
  6.  
  7. import org.jleaf.core.AbstractBusinessFunction;
  8. import org.jleaf.core.BusinessFunction;
  9. import org.jleaf.core.Dto;
  10. import org.jleaf.core.annotation.ErrorList;
  11. import org.jleaf.core.annotation.Info;
  12. import org.jleaf.core.annotation.InfoIn;
  13. import org.jleaf.core.annotation.InfoOut;
  14. import org.jleaf.core.dao.CriteriaHelper;
  15. import org.jleaf.core.dao.QueryBuilder;
  16. import org.jleaf.pos2.entity.Vehicle;
  17. import org.jleaf.pos2.dao.VehicleDao;
  18. import org.jleaf.util.DtoUtil;
  19. import org.jleaf.util.ValidationUtil;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.stereotype.Service;
  22.  
  23. /**
  24. * Business Transactions: Get Vehicle List
  25. *
  26. * @author Henokh Marjie Rivaldy , 26 Juli 2016
  27. */
  28.  
  29. @Service
  30. @InfoIn(value = {
  31. @Info(name = "keyword", description = "keyword", type = String.class),
  32. @Info(name = "limit", description = "limit", type = Long.class),
  33. @Info(name = "offset", description = "offset", type = Long.class),
  34. @Info(name = "active", description = "active", type = String.class)})
  35. @InfoOut(value = {
  36. @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)")})
  37.  
  38. @ErrorList(errorKeys = {})
  39. public class GetVehicleList extends AbstractBusinessFunction implements BusinessFunction {
  40.  
  41. @Autowired
  42. VehicleDao vehicleDao;
  43.  
  44. @Override
  45. public String getDescription() {
  46. return "Get Vehicle List";
  47. }
  48.  
  49. @SuppressWarnings("unchecked")
  50. @Override
  51. public Dto execute(Dto inputDto) throws Exception {
  52.  
  53. ValidationUtil.valDtoContainsKey(inputDto, "keyword");
  54. ValidationUtil.valDtoContainsKey(inputDto, "limit");
  55. ValidationUtil.valDtoContainsKey(inputDto, "offset");
  56. ValidationUtil.valDtoContainsKey(inputDto, "active");
  57.  
  58. String keyword = inputDto.getString("keyword");
  59. String active = inputDto.getString("active");
  60.  
  61. List<Object[]>result=null;
  62.  
  63. QueryBuilder builder = new QueryBuilder();
  64. 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 ")
  65. .add(" FROM ")
  66. .add(Vehicle.TABLE_NAME)
  67. .add(" a ")
  68. .add(" WHERE true ")
  69. .addIfNotEmpty(keyword,new StringBuilder().append(" AND (").append(CriteriaHelper.likeExpressionIgnoreCase(keyword, " a.owner_name "))
  70. .append(" OR ").append(CriteriaHelper.likeExpressionIgnoreCase(keyword, " a.vehicle_code ")).append(")").toString())
  71. .addIfNotEmpty(active, " AND " + CriteriaHelper.equalsExpressionIgnoreCase(active, "a.active"))
  72. .add(" ORDER BY a.owner_name ASC ");
  73. if(inputDto.get("limit")!=null) builder.add(" LIMIT " + inputDto.getLong("limit"));
  74. if(inputDto.get("offset")!=null) builder.add(" OFFSET " + inputDto.getLong("offset"));
  75.  
  76.  
  77.  
  78.  
  79. Query q = vehicleDao.createNativeQuery(builder.toString());
  80.  
  81. result = q.getResultList();
  82. return new Dto().putList("vehicleList", DtoUtil.createDtoListFromArray(result,"vehicleCode", "licenseNo", "ownerName", "chassisNo", "engineNo",
  83. "vehicleGroupCode", "vehicleGroupName", "vehicleTypeCode","vehicleTypeName", "yearMade",
  84. "customerName", "address1", "address2", "address3", "phone1", "phone2", "active",
  85. "activeDatetime", "nonActiveDatetime" , "version" , "createDatetime", "createUsername" ,
  86. "updateDatetime" , "updateUsername"));
  87.  
  88. }
  89.  
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement