[text] BF GetList

Viewer

copydownloadembedprintName: BF GetList
  1. package org.jleaf.erp.sdm.bo.employeesupervisor;
  2.  
  3. import java.util.List;
  4. import javax.persistence.*;
  5. import org.jleaf.common.CommonConstants;
  6. import org.jleaf.erp.sdm.dao.EmployeeSupervisorDao;
  7. import org.jleaf.core.AbstractBusinessFunction;
  8. import org.jleaf.core.BusinessFunction;
  9. import org.jleaf.core.Dto;
  10. import org.jleaf.core.GeneralConstants;
  11. import org.jleaf.util.DtoUtil;
  12. import org.jleaf.core.annotation.ErrorList;
  13. import org.jleaf.core.annotation.Info;
  14. import org.jleaf.core.annotation.InfoIn;
  15. import org.jleaf.core.annotation.InfoOut;
  16. import org.jleaf.core.dao.QueryBuilder;
  17. import org.jleaf.util.ValidationUtil;
  18. import org.slf4j.Logger;
  19. import org.slf4j.LoggerFactory;
  20. import org.jleaf.core.dao.CriteriaHelper;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.stereotype.Service;
  23. import org.jleaf.erp.sdm.SdmConstants;
  24.  
  25. @Service
  26. @InfoIn(value={
  27.         @Info(name = "tenantId", type = Long.class, description = "Tenant Id", required = true),
  28.       @Info(name = "tenantLoginId", type = Long.class, description = "Tenant Login Id", required = true),
  29.       @Info(name = "userLoginId", type = Long.class, description = "User Login Id", required = true),
  30.       @Info(name = "roleLoginId", type = Long.class, description = "Role Login Id", required = true),
  31.       @Info(name = "datetime", type = String.class, description = "Datetime", required = true),
  32.       @Info(name = "limit", type = Long.class, description = "Limit", required = true),
  33.       @Info(name = "offset", type = Long.class, description = "Offset", required = true),
  34.       @Info(name = "nik", type = String.class, description = "Nik", required = false),
  35.       @Info(name = "supervisor_id", type = String.class, description = "Supervisor_id", required = false)
  36. })
  37. @InfoOut(value ={
  38.         @Info(name = "employeeSupervisorList", type = List.class, description = "Employee Supervisor List(id,version,nik,name,supervisorId,supervisorName)", 
  39.           required = true)
  40. })
  41. @ErrorList(errorKeys={})
  42. public class GetEmployeeSupervisorList extends AbstractBusinessFunction implements BusinessFunction {
  43.         private static final Logger log = LoggerFactory.getLogger(GetEmployeeSupervisorList.class);
  44.  
  45.  
  46.         @Autowired
  47.         private EmployeeSupervisorDao employeeSupervisorDao;
  48.  
  49.         @SuppressWarnings("unchecked")
  50.         @Override
  51.         public Dto execute(Dto inputDto) throws Exception {
  52.                 ValidationUtil.valDtoContainsKey(inputDto,"tenantId");
  53.                 ValidationUtil.valDtoContainsKey(inputDto,"tenantLoginId");
  54.                 ValidationUtil.valDtoContainsKey(inputDto,"userLoginId");
  55.                 ValidationUtil.valDtoContainsKey(inputDto,"roleLoginId");
  56.                 ValidationUtil.valDtoContainsKey(inputDto,"datetime");
  57.                 ValidationUtil.valDtoContainsKey(inputDto,"limit");
  58.                 ValidationUtil.valDtoContainsKey(inputDto,"offset");
  59.                 ValidationUtil.valDtoContainsKey(inputDto,"nik");
  60.                 ValidationUtil.valDtoContainsKey(inputDto,"supervisor_id");
  61.  
  62.                 Long tenantId = inputDto.getLong("tenantId");
  63.                 Long tenantLoginId = inputDto.getLong("tenantLoginId");
  64.                 Long userLoginId = inputDto.getLong("userLoginId");
  65.                 Long roleLoginId = inputDto.getLong("roleLoginId");
  66.                 String datetime = inputDto.getString("datetime");
  67.                 Long limit = inputDto.getLong("limit");
  68.                 Long offset = inputDto.getLong("offset");
  69.                 String nik = inputDto.getString("nik");
  70.                 String supervisor_id = inputDto.getString("supervisor_id");
  71.  
  72.                 QueryBuilder builder = new QueryBuilder();
  73.                 builder.add(" SELECT A.employee_supervisor_id, A.version, B.nik, B.name, A.supervisor_id, C.name AS supervisorName ");
  74.                 builder.add(" FROM hr_employee_spv A ");
  75.                 builder.add(" INNER JOIN hr_employee B ON A.employee_id = B.employee_id ");
  76.                 builder.add(" INNER JOIN hr_employee C ON A.supervisor_id = C.employee_id ");
  77.                 builder.add(" WHERE true ");
  78.                 builder.addIfNotEmpty( nik, new QueryBuilder().add("  AND ( ").add(CriteriaHelper.likeExpressionIgnoreCase(nik,"B.nik")).add(" OR ").add(CriteriaHelper.likeExpressionIgnoreCase(nik,"B.name")).add(")").toString());builder.addIfNotEmpty( supervisor_id, new QueryBuilder().add("  AND ( ").add(CriteriaHelper.likeExpressionIgnoreCase(supervisor_id,"A.supervisor_id")).add(")").toString());
  79.                 builder.add(" LIMIT :limit OFFSET :offset ");
  80.               log.debug("Query {} --> {}", getClass().getSimpleName(), builder);
  81.  
  82.                 Query query = employeeSupervisorDao.createNativeQuery(builder.toString());
  83.                   query.setParameter("limit", limit);
  84.               query.setParameter("offset", offset);
  85.    
  86.                 List<Object[]> result = query.getResultList();
  87.                 List<Dto> list = DtoUtil.createDtoListFromArray(result , "id" , "version" , "nik" , "name" , "supervisorId" , "supervisorName"  );
  88.        
  89.                 return new Dto().putList("employeeSupervisorList", list);
  90.         }
  91.  
  92.         @Override
  93.         public String getDescription() {
  94.                 return "Get Employee Supervisor List";
  95.         }
  96. }
  97.                                        
  98.                      

Editor

You can edit this paste and save as new:


File Description
  • BF GetList
  • Paste Code
  • 15 Jun-2021
  • 4.73 Kb
You can Share it: