Fanadia_Friska

get nadia

Sep 15th, 2016
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.17 KB | None | 0 0
  1. package org.jleaf.erp.master.bo.customervsrayon;
  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.GeneralConstants;
  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.DtoUtil;
  21. import org.jleaf.util.ValidationUtil;
  22. import org.slf4j.Logger;
  23. import org.slf4j.LoggerFactory;
  24. import org.springframework.beans.factory.annotation.Autowired;
  25. import org.springframework.stereotype.Service;
  26.  
  27. /**
  28. * BF Get Region Customer List
  29. *
  30. * @author Nadia , Sept 07, 2016
  31. *
  32. */
  33.  
  34. @Service
  35. @InfoIn(value = {
  36. @Info(name = "tenantId", description = "tenant id", type =Long.class),
  37. @Info(name = "regionId", description = "region id", type = String.class),
  38. @Info(name = "customerCodeName", description = "customer code name", type = String.class),
  39. @Info(name = "limit", description = "limit", type = Long.class, required = false),
  40. @Info(name = "offset", description = "offset", type = Long.class, required = false)
  41.  
  42. })
  43. @InfoOut(value = { @Info(name = "regionCustomerList", description = "region customer list( id, regionId, regionCode, regionName, customerId, customerCode, customerName, version ) ") })
  44. public class GetRegionCustomerList extends AbstractBusinessFunction implements
  45. BusinessFunction {
  46. private static final Logger log = LoggerFactory
  47. .getLogger(GetRegionCustomerList.class);
  48.  
  49. @Autowired
  50. private RegionCustomerDao regionCustomerDao;
  51.  
  52. @SuppressWarnings("unchecked")
  53. @Override
  54. public Dto execute(Dto inputDto) throws Exception {
  55.  
  56. log.debug("ini input Dto" + inputDto);
  57. // Pastikan input benar/lengkap
  58. ValidationUtil.valBlankOrNull(inputDto, "tenantId");
  59. ValidationUtil.valDtoContainsKey(inputDto, "customerCodeName");
  60. ValidationUtil.valDtoContainsKey(inputDto, "regionId");
  61. ValidationUtil.valDtoContainsKey(inputDto, "limit");
  62. ValidationUtil.valDtoContainsKey(inputDto, "offset");
  63.  
  64. Long tenantId = inputDto.getLong("tenantId");
  65. String customerCodeName = inputDto.getString("customerCodeName");
  66. String regionId = inputDto.getString("regionId");
  67. Long limit = inputDto.getLong("limit");
  68. Long offset = inputDto.getLong("offset");
  69.  
  70. List<Object[]> result = null;
  71.  
  72.  
  73. QueryBuilder builder = new QueryBuilder();
  74. builder.add(
  75. "SELECT A.region_customer_id, A. region_id, B.region_code, B.region_name, A.customer_id, C.partner_code, C.partner_name, A.version FROM ")
  76. .add(RegionCustomer.TABLE_NAME)
  77. .add(" A ")
  78. .add(" INNER JOIN ")
  79. .add(Region.TABLE_NAME)
  80. .add(" B ON A.region_id = B.region_id ")
  81. .add(" INNER JOIN ")
  82. .add(Partner.TABLE_NAME)
  83. .add(" C ON A.customer_id = C.partner_id ")
  84. .add(" WHERE A.tenant_id = :tenantId ")
  85.  
  86. .addIfNotEquals(GeneralConstants.NULL_REF_VALUE_LONG, regionId, " AND A.region_id ="+regionId )
  87. .addIfNotEmpty(
  88. customerCodeName,
  89. " AND ( "
  90. + CriteriaHelper.likeExpressionIgnoreCase(
  91. customerCodeName, "C.partner_code" )
  92. + " OR "
  93. + CriteriaHelper.likeExpressionIgnoreCase(
  94. customerCodeName, "C.partner_name" )
  95. + " ) " ).add("LIMIT :limit OFFSET :offset" );
  96.  
  97. Query q = regionCustomerDao.createNativeQuery(builder.toString());
  98. q.setParameter("tenantId", tenantId);
  99. q.setParameter("limit", limit);
  100. q.setParameter("offset", offset);
  101.  
  102. result = q.getResultList();
  103.  
  104. return new Dto().putList("RegionCustomerList", DtoUtil.createDtoListFromArray(result, "regionCustomerId", "regionId", "regionCode", "regionName", "customerId", "partnerCode", "partnerName", "version"));
  105.  
  106. }
  107.  
  108. @Override
  109. public String getDescription() {
  110. return "Get Region Customer List";
  111. }
  112.  
  113. public static void main(String[] args) {
  114. String regionId ="123";
  115. String customerCodeName ="123";
  116.  
  117. QueryBuilder builder = new QueryBuilder();
  118. builder.add(
  119. "SELECT A.region_customer_id, A. region_id, B.region_code, B.region_name, A.customer_id, C.partner_code, C.partner_name, A.version FROM ")
  120. .add(RegionCustomer.TABLE_NAME)
  121. .add(" A ")
  122. .add(" INNER JOIN ")
  123. .add(Region.TABLE_NAME)
  124. .add(" B ON A.region_id = B.region_id ")
  125. .add(" INNER JOIN ")
  126. .add(Partner.TABLE_NAME)
  127. .add(" C ON A.customer_id = C.partner_id ")
  128. .add(" WHERE A.tenant_id = :tenantId ")
  129.  
  130. .addIfNotEquals(GeneralConstants.NULL_REF_VALUE_LONG, regionId, " AND A.region_id ="+regionId )
  131. .addIfNotEmpty(
  132. customerCodeName,
  133. " AND ( "
  134. + CriteriaHelper.likeExpressionIgnoreCase(
  135. customerCodeName, "C.partner_code" )
  136. + " OR "
  137. + CriteriaHelper.likeExpressionIgnoreCase(
  138. customerCodeName, "C.partner_name" )
  139. + " ) " ).add("LIMIT :limit OFFSET :offset" );
  140. System.out.println(builder);
  141.  
  142. }
  143.  
  144.  
  145. }
Advertisement
Add Comment
Please, Sign In to add comment