Fanadia_Friska

GET

Aug 25th, 2016
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.63 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.dao.VehicleDao;
  17. import org.jleaf.pos2.entity.Vehicle;
  18. import org.jleaf.pos2.entity.VehicleGroup;
  19. import org.jleaf.pos2.entity.VehicleType;
  20. import org.jleaf.util.DtoUtil;
  21. import org.jleaf.util.ValidationUtil;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.stereotype.Service;
  24.  
  25. /**
  26. * Business Transactions: Get Vehicle List
  27. *
  28. * @author Henokh Marjie Rivaldy , 26 Juli 2016
  29. */
  30.  
  31. @Service
  32. @InfoIn(value = {
  33. @Info(name = "keyword", description = "keyword", type = String.class),
  34. @Info(name = "limit", description = "limit", type = Long.class),
  35. @Info(name = "offset", description = "offset", type = Long.class),
  36. @Info(name = "active", description = "active", type = String.class)})
  37. @InfoOut(value = {
  38. @Info(name = "vehicleList", description = "vehicle list (vehicleCode, licenseNo, ownerName, chassisNo, engineNo, vehicleGroupCode, vehicleTypeCode, yearMade, customerName, address1, address2, address3, phone1, phone2, activeDateTime, nonActiveDateTime , version , createDateTime, createUsername , updateDateTime , updateUsername)")})
  39. @ErrorList(errorKeys = {})
  40. public class GetVehicleList extends AbstractBusinessFunction implements BusinessFunction {
  41.  
  42. @Autowired
  43. VehicleDao vehicleDao;
  44.  
  45. @Override
  46. public String getDescription() {
  47. return "Get Vehicle List";
  48. }
  49.  
  50. @SuppressWarnings("unchecked")
  51. @Override
  52. public Dto execute(Dto inputDto) throws Exception {
  53.  
  54. ValidationUtil.valDtoContainsKey(inputDto, "keyword");
  55. ValidationUtil.valDtoContainsKey(inputDto, "limit");
  56. ValidationUtil.valDtoContainsKey(inputDto, "offset");
  57. ValidationUtil.valDtoContainsKey(inputDto, "active");
  58.  
  59. String keyword = inputDto.getString("keyword");
  60. String active = inputDto.getString("active");
  61.  
  62. List<Object[]>result=null;
  63.  
  64. // SELECT A.vehicle_code, A.license_no, A.owner_name, -- vehicleCode, licenseNo, ownerName
  65. // A.chassis_no, A.engine_no, A.vehicle_group_code, --chassisNo, engineNo, vehicleGroupCode
  66. // B.vehicle_group_name, A.vehicle_type_code, C.vehicle_type_name, -- vehicleGroupName (tidak ada), vehicleTypeCode, vehicleTypeName (tidak ada),
  67. // A.year_made, A.customer_name, A.address1, -- yearMade, customerName, address1,
  68. // A.address2, A.address3, A.phone1, -- address2, address3, phone1,
  69. // A.phone2, A.active, A.version -- phone2, active, version
  70. // FROM m_vehicle A
  71. // JOIN m_vehicle_group B ON A.vehicle_group_code = B.vehicle_group_code
  72. // JOIN m_vehicle_type C ON A.vehicle_type_code = C.vehicle_type_code
  73.  
  74.  
  75. QueryBuilder builder = new QueryBuilder();
  76. builder.add(" SELECT A.vehicle_code, A.license_no, A.owner_name, ")
  77. .add(" A.chassis_no, A.engine_no, A.vehicle_group_code, ")
  78. .add(" B.vehicle_group_name, A.vehicle_type_code, C.vehicle_type_name, ")
  79. .add(" A.year_made, A.customer_name, A.address1, ")
  80. .add(" A.address2, A.address3, A.phone1, ")
  81. .add(" A.phone2, A.active, A.version ")
  82. .add(" FROM ").add(Vehicle.TABLE_NAME).add(" A ")
  83. .add(" JOIN ").add(VehicleGroup.TABLE_NAME).add(" B ON A.vehicle_group_code = B.vehicle_group_code ")
  84. .add(" JOIN ").add(VehicleType.TABLE_NAME).add(" A.vehicle_type_code = C.vehicle_type_code ")
  85. .add(" WHERE true ")
  86.  
  87. .addIfNotEmpty(keyword, new StringBuilder()
  88. .append(" AND (")
  89. .append( CriteriaHelper.likeExpressionIgnoreCase(keyword, " a.owner_name ") )
  90. .append(" OR ").append( CriteriaHelper.likeExpressionIgnoreCase(keyword, " a.license_no ") )
  91. .append(" OR ").append( CriteriaHelper.likeExpressionIgnoreCase(keyword, " a.customer_name ") )
  92. .append(") ").toString())
  93.  
  94. .addIfNotEmpty(active, " AND " + CriteriaHelper.equalsExpressionIgnoreCase(active, "a.active"))
  95. .add(" ORDER BY a.vehicle_code ASC ")
  96. .addIfNotNull( inputDto.get("limit") , " LIMIT "+inputDto.get("limit"))
  97. .addIfNotNull( inputDto.get("offset") , " OFFSET "+inputDto.get("offset"))
  98. ;
  99.  
  100.  
  101.  
  102. Query q = vehicleDao.createNativeQuery(builder.toString());
  103.  
  104. result = q.getResultList();
  105.  
  106. return new Dto().putList(
  107. "vehicleList",
  108. DtoUtil.createDtoListFromArray(result,
  109. "vehicleCode", "licenseNo", "ownerName",
  110. "chassisNo", "engineNo", "vehicleGroupCode",
  111. "vehicleGroupName", "vehicleTypeCode","vehicleTypeName",
  112. "yearMade", "customerName", "address1",
  113. "address2", "address3", "phone1",
  114. "phone2", "active", "activeDatetime",
  115. "nonActiveDatetime" , "version" , "createDatetime",
  116. "createUsername" , "updateDatetime" , "updateUsername"));
  117.  
  118. }
  119.  
  120. }
Advertisement
Add Comment
Please, Sign In to add comment