Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.jleaf.erp.master.bo.partner;
- import java.util.List;
- import javax.persistence.Query;
- import org.jleaf.common.entity.UserRole;
- import org.jleaf.core.AbstractBusinessFunction;
- import org.jleaf.core.BusinessFunction;
- 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.MasterConstants;
- import org.jleaf.erp.master.dao.PartnerDao;
- import org.jleaf.erp.master.entity.CtgrPartner;
- import org.jleaf.erp.master.entity.Partner;
- import org.jleaf.erp.master.entity.PartnerType;
- import org.jleaf.erp.master.entity.PolicyPartner;
- import org.jleaf.erp.master.entity.TypePartner;
- import org.jleaf.util.DtoUtil;
- import org.jleaf.util.ValidationUtil;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- /**
- * get authorized partner non employeeList advance
- *
- * @author wiku, Oct 14, 2013
- * @version 1.0
- */
- //@ formatter:off
- @Service
- @InfoIn(value = {
- @Info(name = "tenantId", description = "tenant id", type = Long.class, required = true),
- @Info(name = "userLoginId", description = "user login id", type = Long.class, required = true),
- @Info(name = "roleLoginId", description = "role login id", type = Long.class, required = true),
- @Info(name = "groupPartnerCode", description = "group partner code", type = String.class, required=true),
- @Info(name = "active", description = "active", type = String.class)
- })
- @InfoOut(value = {
- @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)
- })
- @ErrorList(errorKeys = {
- })
- //@ formatter:on
- public class GetAuthorizedPartnerNonEmployeeListAdvance extends AbstractBusinessFunction implements BusinessFunction {
- @Autowired
- private PartnerDao partnerDao;
- @Override
- public String getDescription() {
- return "get authorized partner non employeeList advance";
- }
- @SuppressWarnings("unchecked")
- @Override
- public Dto execute(Dto inputDto) throws Exception {
- ValidationUtil.valDtoContainsKey(inputDto, "tenantId");
- String active = inputDto.getString("active");
- QueryBuilder builder = new QueryBuilder();
- 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, ")
- .add(" a.holding_id, a.flg_holding, a.rank, a.active, a.version FROM ")
- .add(Partner.TABLE_NAME)
- .add(" a INNER JOIN ")
- .add(CtgrPartner.TABLE_NAME)
- .add(" b ON b.tenant_id = a.tenant_id AND b.ctgr_partner_id = a.ctgr_partner_id ")
- .add(" INNER JOIN ")
- .add(UserRole.TABLE_NAME)
- .add(" f ON f.user_id = :userLoginId AND f.role_id = :roleLoginId ")
- .add(" INNER JOIN ")
- .add(PolicyPartner.TABLE_NAME)
- .add(" g ON g.ctgr_partner_id = b.ctgr_partner_id AND g.user_role_id = f.user_role_id ")
- .add(" INNER JOIN ")
- .add(PartnerType.TABLE_NAME)
- .add(" e ON e.tenant_id = a.tenant_id AND e.partner_id = a.partner_id AND e.group_partner <> :EMPLOYEE ")
- .addIfNotEmpty(inputDto.getString("groupPartnerCode"), " AND e.group_partner = '" + inputDto.getString("groupPartnerCode") + "'")
- .add(" INNER JOIN ")
- .add(TypePartner.TABLE_NAME)
- .add(" z ON e.type_partner_id = z.type_partner_id ")
- .add(" WHERE a.tenant_id = :tenantId ")
- .addIfNotEmpty(active, " AND " + CriteriaHelper.equalsExpressionIgnoreCase(active, "a.active"))
- .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, ")
- .add(" a.holding_id, a.flg_holding, a.rank, a.active, a.version")
- .add(" ORDER BY a.partner_name");
- Query q = partnerDao.createNativeQuery(builder.toString());
- q.setParameter("tenantId", inputDto.getLong("tenantId"));
- q.setParameter("EMPLOYEE", MasterConstants.GROUP_PARTNER_CODE_EMPLOYEE);
- q.setParameter("userLoginId", inputDto.getLong("userLoginId"));
- q.setParameter("roleLoginId", inputDto.getLong("roleLoginId"));
- // id, tenantId, code, name, ctgrPartnerId, extName, npwpId, holdingId, flagHolding, rank, active, version
- return new Dto().putList("nonEmployeeList", DtoUtil.createDtoListFromArray(q.getResultList(),
- "id", "tenantId", "code", "name", "ctgrPartnerId", "extName", "npwpId", "holdingId", "flagHolding", "rank", "active", "version"));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement