Fanadia_Friska

BF COUNT

Sep 18th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.56 KB | None | 0 0
  1. package org.jleaf.erp.master.bo.customervsrayon;
  2.  
  3. import javax.persistence.Query;
  4.  
  5. import org.jleaf.core.AbstractBusinessFunction;
  6. import org.jleaf.core.BusinessFunction;
  7. import org.jleaf.core.CoreExceptionConstants;
  8. import org.jleaf.core.Dto;
  9. import org.jleaf.core.GeneralConstants;
  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.erp.master.dao.RegionCustomerDao;
  17. import org.jleaf.erp.master.entity.Partner;
  18. import org.jleaf.erp.master.entity.RegionCustomer;
  19. import org.jleaf.erp.master.entity.region.Region;
  20. import org.jleaf.util.ValidationUtil;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.stereotype.Service;
  23.  
  24. /**
  25. * BusinessFunction: Get count region customer list
  26. *
  27. * @author Nadia , Sept 08, 2016
  28. *
  29. */
  30. @Service
  31. @InfoIn(value = {
  32. @Info(name = "tenantId", description = "tenant id", type = Long.class),
  33. @Info(name = "regionId", description = "region id", type = String.class),
  34. @Info(name = "customerCodeName", description = "customer code name", type = String.class) })
  35. @InfoOut(value = { @Info(name = "count", description = "count", type = Long.class) })
  36. @ErrorList(errorKeys = { CoreExceptionConstants.PARAMETER_NOT_SPECIFIED })
  37. public class CountRegionCustomerList extends AbstractBusinessFunction implements
  38. BusinessFunction {
  39.  
  40. @Autowired
  41. private RegionCustomerDao regionCustomerDao;
  42.  
  43. @Override
  44. public String getDescription() {
  45. return "count get region customer list ";
  46. }
  47.  
  48. @Override
  49. public Dto execute(Dto inputDto) throws Exception {
  50. ValidationUtil.valDtoContainsKey(inputDto, "tenantId");
  51.  
  52. ValidationUtil.valBlankOrNull(inputDto, "tenantId");
  53. ValidationUtil.valDtoContainsKey(inputDto, "regionId");
  54. ValidationUtil.valDtoContainsKey(inputDto, "customerCodeName");
  55.  
  56. ValidationUtil.valDtoContainsKey(inputDto, "limit");
  57. ValidationUtil.valDtoContainsKey(inputDto, "offset");
  58.  
  59. Long tenantId = inputDto.getLong("tenantId");
  60. String regionId = inputDto.getString("regionId");
  61. String customerCodeName = inputDto.getString("customerCodeName");
  62. Long limit = inputDto.getLong("limit");
  63. Long offset = inputDto.getLong("offset");
  64.  
  65. QueryBuilder builder = new QueryBuilder();
  66. builder.add(
  67. " SELECT COUNT(region_customer_id) ")
  68. .add(" FROM ")
  69. .add(RegionCustomer.TABLE_NAME)
  70. .add(" A ")
  71. .add(" INNER JOIN " )
  72. .add(Region.TABLE_NAME)
  73. .add(" B ON A.region_id = B.region_id ")
  74. .add(" INNER JOIN " )
  75. .add(Partner.TABLE_NAME)
  76. .add(" C ON A.customer_id = C.partner_id ")
  77. .add(" WHERE A.tenant_id = :tenantId ")
  78. .addIfNotEquals( GeneralConstants.NULL_REF_VALUE_LONG, regionId, " AND A.region_id = "+regionId )
  79. .addIfNotEmpty(
  80. customerCodeName,
  81. " AND ( "
  82. + CriteriaHelper.likeExpressionIgnoreCase(
  83. customerCodeName, "C.partner_code" )
  84. + " OR "
  85. + CriteriaHelper.likeExpressionIgnoreCase(
  86. customerCodeName, "C.partner_name" )
  87. + " ) " ).add("LIMIT :limit OFFSET :offset");
  88.  
  89. Query q = regionCustomerDao.createNativeQuery(builder.toString());
  90. q.setParameter("tenantId", tenantId);
  91. q.setParameter("limit", limit);
  92. q.setParameter("offset", offset);
  93.  
  94.  
  95. Dto outputDto = new Dto();
  96. outputDto.put("count", q.getSingleResult());
  97.  
  98. return outputDto;
  99. }
  100.  
  101. }
Add Comment
Please, Sign In to add comment