Advertisement
aadddrr

GetAuthorizedPartnerNonEmployeeListAdvance

Oct 29th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.70 KB | None | 0 0
  1. package org.jleaf.erp.master.bo.partner;
  2.  
  3. import java.util.List;
  4.  
  5. import javax.persistence.Query;
  6.  
  7. import org.jleaf.common.entity.UserRole;
  8. import org.jleaf.core.AbstractBusinessFunction;
  9. import org.jleaf.core.BusinessFunction;
  10. import org.jleaf.core.Dto;
  11. import org.jleaf.core.annotation.ErrorList;
  12. import org.jleaf.core.annotation.Info;
  13. import org.jleaf.core.annotation.InfoIn;
  14. import org.jleaf.core.annotation.InfoOut;
  15. import org.jleaf.core.dao.CriteriaHelper;
  16. import org.jleaf.core.dao.QueryBuilder;
  17. import org.jleaf.erp.master.MasterConstants;
  18. import org.jleaf.erp.master.dao.PartnerDao;
  19. import org.jleaf.erp.master.entity.CtgrPartner;
  20. import org.jleaf.erp.master.entity.Partner;
  21. import org.jleaf.erp.master.entity.PartnerType;
  22. import org.jleaf.erp.master.entity.PolicyPartner;
  23. import org.jleaf.erp.master.entity.TypePartner;
  24. import org.jleaf.util.DtoUtil;
  25. import org.jleaf.util.ValidationUtil;
  26. import org.springframework.beans.factory.annotation.Autowired;
  27. import org.springframework.stereotype.Service;
  28.  
  29.  
  30. /**
  31.  * get authorized partner non employeeList advance
  32.  *
  33.  * @author wiku, Oct 14, 2013
  34.  * @version 1.0
  35.  */
  36.  
  37. //@ formatter:off
  38. @Service
  39. @InfoIn(value = {
  40.         @Info(name = "tenantId", description = "tenant id", type = Long.class, required = true),
  41.         @Info(name = "userLoginId", description = "user login id", type = Long.class, required = true),
  42.         @Info(name = "roleLoginId", description = "role login id", type = Long.class, required = true),
  43.         @Info(name = "groupPartnerCode", description = "group partner code", type = String.class, required=true),
  44.         @Info(name = "active", description = "active", type = String.class)
  45. })
  46. @InfoOut(value = {
  47.         @Info(name = "nonEmployeeList", description = "List of authorized partner non employee(id, tenantId, code, name, ctgrPartnerId, extName, npwpId, holdingId, flagHolding, rank, active, version)", type = List.class)
  48. })
  49. @ErrorList(errorKeys = {
  50.          
  51. })
  52. //@ formatter:on
  53.  public class GetAuthorizedPartnerNonEmployeeListAdvance extends AbstractBusinessFunction implements BusinessFunction {
  54.      
  55.      @Autowired
  56.      private PartnerDao partnerDao;
  57.      
  58.      @Override
  59.      public String getDescription() {
  60.          return "get authorized partner non employeeList advance";
  61.      }
  62.      
  63.      @SuppressWarnings("unchecked")
  64.     @Override
  65.      public Dto execute(Dto inputDto) throws Exception {
  66.             ValidationUtil.valDtoContainsKey(inputDto, "tenantId");
  67.             String active = inputDto.getString("active");
  68.  
  69.             QueryBuilder builder = new QueryBuilder();
  70.             builder.add("SELECT a.partner_id, a.tenant_id, a.partner_code, a.partner_name, a.ctgr_partner_id, a.partner_ext_name, a.npwp_id, ")
  71.                    .add(" a.holding_id, a.flg_holding, a.rank, a.active, a.version FROM ")
  72.                    .add(Partner.TABLE_NAME)
  73.                    .add(" a INNER JOIN ")
  74.                    .add(CtgrPartner.TABLE_NAME)
  75.                    .add(" b ON b.tenant_id = a.tenant_id AND b.ctgr_partner_id = a.ctgr_partner_id ")
  76.                    .add(" INNER JOIN ")
  77.                    .add(UserRole.TABLE_NAME)
  78.                    .add(" f ON f.user_id = :userLoginId AND f.role_id = :roleLoginId ")
  79.                    .add(" INNER JOIN ")
  80.                    .add(PolicyPartner.TABLE_NAME)
  81.                    .add(" g ON g.ctgr_partner_id = b.ctgr_partner_id AND g.user_role_id = f.user_role_id ")
  82.                    .add(" INNER JOIN ")
  83.                    .add(PartnerType.TABLE_NAME)
  84.                    .add(" e ON e.tenant_id = a.tenant_id AND e.partner_id = a.partner_id AND e.group_partner <> :EMPLOYEE ")
  85.                    .addIfNotEmpty(inputDto.getString("groupPartnerCode"), "    AND e.group_partner = '" + inputDto.getString("groupPartnerCode") + "'")
  86.                    .add(" INNER JOIN ")
  87.                    .add(TypePartner.TABLE_NAME)
  88.                    .add(" z ON e.type_partner_id = z.type_partner_id ")
  89.                    .add(" WHERE a.tenant_id = :tenantId ")
  90.                    .addIfNotEmpty(active, " AND " + CriteriaHelper.equalsExpressionIgnoreCase(active, "a.active"))
  91.                    .add(" GROUP BY a.partner_id, a.tenant_id, a.partner_code, a.partner_name, a.ctgr_partner_id, a.partner_ext_name, a.npwp_id, ")
  92.                    .add(" a.holding_id, a.flg_holding, a.rank, a.active, a.version")
  93.                    .add(" ORDER BY a.partner_name");
  94.            
  95.             Query q = partnerDao.createNativeQuery(builder.toString());
  96.             q.setParameter("tenantId", inputDto.getLong("tenantId"));
  97.             q.setParameter("EMPLOYEE", MasterConstants.GROUP_PARTNER_CODE_EMPLOYEE);
  98.             q.setParameter("userLoginId", inputDto.getLong("userLoginId"));
  99.             q.setParameter("roleLoginId", inputDto.getLong("roleLoginId"));
  100.  
  101.             // id, tenantId, code, name, ctgrPartnerId, extName, npwpId, holdingId, flagHolding, rank, active, version
  102.             return new Dto().putList("nonEmployeeList", DtoUtil.createDtoListFromArray(q.getResultList(),
  103.                     "id", "tenantId", "code", "name", "ctgrPartnerId", "extName", "npwpId", "holdingId", "flagHolding", "rank", "active", "version"));
  104.      }
  105.  }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement