Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.jleaf.erp.master.bo.incentive;
- import java.util.List;
- import javax.persistence.Query;
- import org.jleaf.common.entity.OU;
- import org.jleaf.core.AbstractBusinessFunction;
- import org.jleaf.core.BusinessFunction;
- import org.jleaf.core.CoreExceptionConstants;
- import org.jleaf.core.Dto;
- import org.jleaf.core.annotation.ErrorList;
- 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.IncentiveProductDao;
- import org.jleaf.erp.master.entity.IncentiveProduct;
- import org.jleaf.erp.master.entity.Partner;
- import org.jleaf.erp.master.entity.Product;
- import org.jleaf.util.DtoUtil;
- import org.jleaf.util.ValidationUtil;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- /**
- *
- * @author Elwin Togatorop
- *
- */
- @Service
- @InfoIn (value = {
- @Info(name = "ouId", description = "ou id", type = Long.class, required = true),
- @Info(name = "partnerCodeName", description = "partner code name ", type = String.class),
- @Info(name = "productCodeName", description = "product code name", type = String.class),
- @Info(name = "dateFrom", description = "date from", type = String.class),
- @Info(name = "dateTo", description = "date to", type = String.class),
- @Info(name = "tenantLoginId", description = "tenant login id", type = Long.class)
- })
- @InfoOut (value ={
- @Info(name = "count", description = "count", type = Long.class)
- })
- @ErrorList(errorKeys= {CoreExceptionConstants.PARAMETER_NOT_SPECIFIED})
- public class CountIncentiveProductList extends AbstractBusinessFunction implements BusinessFunction {
- //private static final Logger log = LoggerFactory.getLogger(GetIncentiveProductList.class);
- @Autowired
- private IncentiveProductDao incentiveProductDao;
- @Override
- public String getDescription() {
- return "Count Incentive Product list";
- }
- @SuppressWarnings("unchecked")
- @Override
- public Dto execute(Dto inputDto) throws Exception {
- List<Object[]> result = null;
- ValidationUtil.valBlankOrNull(inputDto, "ouId");
- ValidationUtil.valDtoContainsKey(inputDto, "partnerCodeName");
- ValidationUtil.valDtoContainsKey(inputDto, "productCodeName");
- ValidationUtil.valBlankOrNull(inputDto, "dateFrom");
- ValidationUtil.valBlankOrNull(inputDto, "dateTo");
- ValidationUtil.valBlankOrNull(inputDto, "tenantLoginId");
- Long ouId = inputDto.getLong("ouId");
- Long tenantId = inputDto.getLong("tenantLoginId");
- String partnerCodeName = inputDto.getString("partnerCodeName");
- String productCodeName = inputDto.getString("productCodeName");
- String dateFrom = inputDto.getString("dateFrom");
- String dateTo = inputDto.getString("dateTo");
- QueryBuilder builder = new QueryBuilder();
- builder.add(" SELECT COUNT (1) FROM ")
- .add(OU.TABLE_NAME)
- .add(" a INNER JOIN ")
- .add(IncentiveProduct.TABLE_NAME)
- .add(" d ON a.ou_id = d.ou_id ")
- .add(" INNER JOIN ")
- .add(Partner.TABLE_NAME)
- .add(" b ON ")
- .add(" d.partner_id = b.partner_id ")
- .add(" INNER JOIN ")
- .add(Product.TABLE_NAME)
- .add(" c ON c.product_id = d.product_id")
- .add(" WHERE d.ou_id = :ouId ")
- .add(" AND d.tenant_id = :tenantId")
- .addIfNotEmpty(partnerCodeName,
- " AND ( "
- + CriteriaHelper.likeExpressionIgnoreCase(partnerCodeName, "b.partner_code")
- + " OR "
- + CriteriaHelper.likeExpressionIgnoreCase(partnerCodeName, "b.partner_name")
- + ")")
- .addIfNotEmpty(productCodeName,
- " AND ("
- + CriteriaHelper.likeExpressionIgnoreCase(productCodeName, "c.product_code")
- + " OR "
- + CriteriaHelper.likeExpressionIgnoreCase(productCodeName, "c.product_name")
- +")")
- .addIfNotEmpty(inputDto.getString("dateFrom"), " AND d.date_from >= '" + inputDto.getString("dateFrom") + "' ")
- .addIfNotEmpty(inputDto.getString("dateTo"), " AND d.date_to <= '" + inputDto.getString("dateTo") + "' ");
- Query q = incentiveProductDao.createNativeQuery(builder.toString());
- q.setParameter("ouId", ouId);
- q.setParameter("tenantId", tenantId);
- return new Dto().put("count", q.getSingleResult());
- }
- }
Add Comment
Please, Sign In to add comment