Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.jleaf.erp.master.bo.customervsrayon;
- import java.util.List;
- import javax.persistence.Query;
- import org.jleaf.core.AbstractBusinessFunction;
- import org.jleaf.core.BusinessFunction;
- import org.jleaf.core.Dto;
- import org.jleaf.core.GeneralConstants;
- import org.jleaf.core.annotation.Info;
- import org.jleaf.core.annotation.InfoIn;
- import org.jleaf.core.annotation.InfoOut;
- import org.jleaf.core.dao.CriteriaHelper;
- import org.jleaf.core.dao.QueryBuilder;
- import org.jleaf.erp.master.dao.RegionCustomerDao;
- import org.jleaf.erp.master.entity.Partner;
- import org.jleaf.erp.master.entity.RegionCustomer;
- import org.jleaf.erp.master.entity.region.Region;
- import org.jleaf.util.DtoUtil;
- import org.jleaf.util.ValidationUtil;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- /**
- * BF Get Region Customer List
- *
- * @author Nadia , Sept 07, 2016
- *
- */
- @Service
- @InfoIn(value = {
- @Info(name = "tenantId", description = "tenant id", type =Long.class),
- @Info(name = "regionId", description = "region id", type = String.class),
- @Info(name = "customerCodeName", description = "customer code name", type = String.class),
- @Info(name = "limit", description = "limit", type = Long.class, required = false),
- @Info(name = "offset", description = "offset", type = Long.class, required = false)
- })
- @InfoOut(value = { @Info(name = "regionCustomerList", description = "region customer list( id, regionId, regionCode, regionName, customerId, customerCode, customerName, version ) ") })
- public class GetRegionCustomerList extends AbstractBusinessFunction implements
- BusinessFunction {
- private static final Logger log = LoggerFactory
- .getLogger(GetRegionCustomerList.class);
- @Autowired
- private RegionCustomerDao regionCustomerDao;
- @SuppressWarnings("unchecked")
- @Override
- public Dto execute(Dto inputDto) throws Exception {
- log.debug("ini input Dto" + inputDto);
- // Pastikan input benar/lengkap
- ValidationUtil.valBlankOrNull(inputDto, "tenantId");
- ValidationUtil.valDtoContainsKey(inputDto, "customerCodeName");
- ValidationUtil.valDtoContainsKey(inputDto, "regionId");
- ValidationUtil.valDtoContainsKey(inputDto, "limit");
- ValidationUtil.valDtoContainsKey(inputDto, "offset");
- Long tenantId = inputDto.getLong("tenantId");
- String customerCodeName = inputDto.getString("customerCodeName");
- String regionId = inputDto.getString("regionId");
- Long limit = inputDto.getLong("limit");
- Long offset = inputDto.getLong("offset");
- List<Object[]> result = null;
- QueryBuilder builder = new QueryBuilder();
- builder.add(
- "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 ")
- .add(RegionCustomer.TABLE_NAME)
- .add(" A ")
- .add(" INNER JOIN ")
- .add(Region.TABLE_NAME)
- .add(" B ON A.region_id = B.region_id ")
- .add(" INNER JOIN ")
- .add(Partner.TABLE_NAME)
- .add(" C ON A.customer_id = C.partner_id ")
- .add(" WHERE A.tenant_id = :tenantId ")
- .addIfNotEquals(GeneralConstants.NULL_REF_VALUE_LONG, regionId, " AND A.region_id ="+regionId )
- .addIfNotEmpty(
- customerCodeName,
- " AND ( "
- + CriteriaHelper.likeExpressionIgnoreCase(
- customerCodeName, "C.partner_code" )
- + " OR "
- + CriteriaHelper.likeExpressionIgnoreCase(
- customerCodeName, "C.partner_name" )
- + " ) " ).add("LIMIT :limit OFFSET :offset" );
- Query q = regionCustomerDao.createNativeQuery(builder.toString());
- q.setParameter("tenantId", tenantId);
- q.setParameter("limit", limit);
- q.setParameter("offset", offset);
- result = q.getResultList();
- return new Dto().putList("RegionCustomerList", DtoUtil.createDtoListFromArray(result, "regionCustomerId", "regionId", "regionCode", "regionName", "customerId", "partnerCode", "partnerName", "version"));
- }
- @Override
- public String getDescription() {
- return "Get Region Customer List";
- }
- public static void main(String[] args) {
- String regionId ="123";
- String customerCodeName ="123";
- QueryBuilder builder = new QueryBuilder();
- builder.add(
- "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 ")
- .add(RegionCustomer.TABLE_NAME)
- .add(" A ")
- .add(" INNER JOIN ")
- .add(Region.TABLE_NAME)
- .add(" B ON A.region_id = B.region_id ")
- .add(" INNER JOIN ")
- .add(Partner.TABLE_NAME)
- .add(" C ON A.customer_id = C.partner_id ")
- .add(" WHERE A.tenant_id = :tenantId ")
- .addIfNotEquals(GeneralConstants.NULL_REF_VALUE_LONG, regionId, " AND A.region_id ="+regionId )
- .addIfNotEmpty(
- customerCodeName,
- " AND ( "
- + CriteriaHelper.likeExpressionIgnoreCase(
- customerCodeName, "C.partner_code" )
- + " OR "
- + CriteriaHelper.likeExpressionIgnoreCase(
- customerCodeName, "C.partner_name" )
- + " ) " ).add("LIMIT :limit OFFSET :offset" );
- System.out.println(builder);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment