Fanadia_Friska

GetRegionCustomerList

Sep 7th, 2016
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.58 KB | None | 0 0
  1. package org.jleaf.erp.master.bo.customervsregion;
  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.Info;
  11. import org.jleaf.core.annotation.InfoIn;
  12. import org.jleaf.core.annotation.InfoOut;
  13. import org.jleaf.core.dao.BaseDao;
  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.City;
  18. import org.jleaf.erp.master.entity.Partner;
  19. import org.jleaf.erp.master.entity.RegionCustomer;
  20. import org.jleaf.erp.master.entity.region.Region;
  21. import org.jleaf.util.DtoUtil;
  22. import org.jleaf.util.ValidationUtil;
  23. import org.slf4j.Logger;
  24. import org.slf4j.LoggerFactory;
  25. import org.springframework.beans.factory.annotation.Autowired;
  26. import org.springframework.stereotype.Service;
  27.  
  28. /**
  29. * BF Get Region Customer List
  30. *
  31. * @author Nadia , Sept 07, 2016
  32. * @version 1.0
  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 = "tenantLoginId", description = "tenant login id", type = Long.class),
  40. @Info(name = "limit", description = "limit", type = Long.class, required = false),
  41. @Info(name = "offset", description = "offset", type = Long.class, required = false)
  42.  
  43. })
  44. @InfoOut(value = { @Info(name = "regionCustomerList", description = "region customer list( id, regionId, regionCode, regionName, customerId, customerCode, customerName, version ) ") })
  45. public abstract class GetRegionCustomerList extends AbstractBusinessFunction implements
  46. BusinessFunction {
  47. private static final Logger log = LoggerFactory
  48. .getLogger(GetRegionCustomerList.class);
  49.  
  50. @Autowired
  51. private RegionCustomerDao regionCustomerDao;
  52.  
  53. @SuppressWarnings("unchecked")
  54. public Dto execute(Dto inputDto, BaseDao<Long, RegionCustomer> posDao, Object partnerName, Object partnerCode) throws Exception {
  55. List<Object[]> result = null;
  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, "cityId");
  61. ValidationUtil.valDtoContainsKey(inputDto, "regionId");
  62. ValidationUtil.valDtoContainsKey(inputDto, "limit");
  63. ValidationUtil.valDtoContainsKey(inputDto, "offset");
  64.  
  65. Long tenantId = inputDto.getLong("tenantId");
  66. String customerCodeName = inputDto.getString("customerCodeName");
  67. //String cityId = inputDto.getString("cityId");
  68. String regionId = inputDto.getString("regionId");
  69. Long limit = inputDto.getLong("limit");
  70. Long offset = inputDto.getLong("offset");
  71.  
  72. QueryBuilder builder = new QueryBuilder();
  73. builder.add(
  74. "SELECT A.region_customer_id, A. region_id, B.region_code,B.region_name, B.customer_id, c.partner_code, c.partner_name, a,version FROM ")
  75. .add(RegionCustomer.TABLE_NAME)
  76. .add(" A ")
  77. .add(" INNER JOIN ")
  78. .add(Region.TABLE_NAME)
  79. .add(" B ON A.region_id = B.region_id ")
  80. .add(" INNER JOIN ")
  81. .add(City.TABLE_NAME)
  82. .add(" C ON A.city_id = c.city_id ")
  83. .add(" INNER JOIN ")
  84. .add(Partner.TABLE_NAME)
  85. .add(" D ON A.customer_id = c.partner_id ")
  86. .add(" WHERE A.tenant_id = :tenantId ")
  87.  
  88. .addIfNotEquals(regionId, " AND A.region_id = " + regionId,
  89. regionId)
  90. .addIfNotEmpty(
  91. customerCodeName,
  92. " AND ( "
  93. + CriteriaHelper.likeExpressionIgnoreCase(
  94. customerCodeName, "A.partner_code")
  95. + " OR "
  96. + CriteriaHelper.likeExpressionIgnoreCase(
  97. customerCodeName, "A.partner_name")
  98. + " ) ").add("LIMIT :limit OFFSET :offset");
  99.  
  100.  
  101. Query q = posDao.createNativeQuery(builder.toString());
  102. q.setParameter("tenantId", tenantId);
  103. q.setParameter("regionId", regionId);
  104. q.setParameter("partnerCode", partnerCode);
  105. q.setParameter("partnerName", partnerName);
  106. q.setParameter("limit", limit);
  107. q.setParameter("offset", offset);
  108.  
  109. result = q.getResultList();
  110.  
  111. return new Dto().putList("RegionCustomerList", DtoUtil.createDtoListFromArray(result, "regionCustomerId", "regionId", "regionCode", "regionName", "customerId", "partnerCode", "partnerName", "version"));
  112.  
  113. }
  114.  
  115. @Override
  116. public String getDescription() {
  117. return "Get Region Customer List";
  118. }
  119. }
Advertisement
Add Comment
Please, Sign In to add comment