[text] BT Add

Viewer

  1. package org.jleaf.erp.sdm.bo.employeesupervisor;
  2.  
  3. import org.jleaf.core.*;
  4. import org.jleaf.core.annotation.ErrorList;
  5. import org.jleaf.core.annotation.Info;
  6. import org.jleaf.core.annotation.InfoIn;
  7. import org.jleaf.core.annotation.InfoOut;
  8. import org.jleaf.common.CommonExceptionConstants;
  9.  
  10. import org.jleaf.erp.sdm.SdmConstants;
  11. import org.jleaf.erp.sdm.dao.EmployeeSupervisorDao;
  12. import org.jleaf.erp.sdm.entity.EmployeeSupervisor;
  13.  
  14. import org.jleaf.util.GsonUtil;
  15. import org.jleaf.util.ValidationUtil;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.beans.factory.annotation.Qualifier;
  18. import org.springframework.stereotype.Service;
  19. import org.jleaf.erp.sdm.SdmExceptionConstants;
  20.  
  21. @Service
  22. @InfoIn(value={
  23.         @Info(name="sessionId", description="Session Id", type=String.class, required=true),
  24.         @Info(name="datetime", description="Datetime", type=String.class, required=true),
  25.         @Info(name="roleLoginId", description="Datetime", type=Long.class, required=true),
  26.         @Info(name="userLoginId", description="User Login Id", type=Long.class, required=true),
  27.         @Info(name="tenantLoginId", description="Tenant Login Id", type=Long.class, required=true),
  28.         @Info(name="employeeId", description="Employee Id", type=Long.class, required=false),
  29.         @Info(name="supervisorId", description="Supervisor Id", type=Long.class, required=false)
  30. })
  31. @InfoOut(value={
  32.         @Info(name = "userLoginId", description = "User login id", type = Long.class, required = true),
  33.         @Info(name="id", description="Id", type=Long.class, required=true),
  34.         @Info(name="employeeId", description="Employee Id", type=Long.class, required=true),
  35.         @Info(name="tenantId", description="Tenant Id", type=Long.class, required=true),
  36.         @Info(name="supervisorId", description="Supervisor Id", type=Long.class, required=true),
  37.         @Info(name="createDatetime", description="Create Datetime", type=String.class, required=true),
  38.         @Info(name="createUserId", description="Create User Id", type=Long.class, required=true),
  39.         @Info(name="updateDatetime", description="Update Datetime", type=String.class, required=true),
  40.         @Info(name="updateUserId", description="Update User Id", type=Long.class, required=true),
  41.         @Info(name="version", description="Version", type=Long.class, required=true)
  42. })
  43. @ErrorList(errorKeys={
  44.         SdmExceptionConstants.FAILED_ADD_EMPLOYEE_SUPERVISOR_SIMILAR_DATA_EXISTS
  45. })
  46.  
  47. public class AddEmployeeSupervisor extends DefaultBusinessTransaction implements BusinessTransaction {
  48.         @Autowired
  49.         private EmployeeSupervisorDao employeeSupervisorDao;
  50.  
  51.         @Autowired
  52.         @Qualifier("valTenantLoginCanUse")
  53.         BusinessFunction valTenantLoginCanUse;
  54.  
  55.         @Autowired
  56.         @Qualifier("valComboValueByCode")
  57.         BusinessFunction valComboValueByCode;
  58.  
  59.         @Autowired
  60.         @Qualifier("isEmployeeSupervisorExistsByIndex")
  61.         BusinessFunction isEmployeeSupervisorExistsByIndex;
  62.  
  63.         @Autowired
  64.         @Qualifier("findSdmEmployeeByIdForEmployee")
  65.         BusinessFunction findSdmEmployeeByIdForEmployee;
  66.  
  67.         public String getDescription(){
  68.                 return "Add new Employee Supervisor";
  69.         }
  70.  
  71.         @Override
  72.         public Dto prepare(Dto inputDto, Dto originalDto) throws Exception {
  73.                 ValidationUtil.valDtoContainsKey(inputDto, "userLoginId");
  74.                 ValidationUtil.valDtoContainsKey(inputDto, "tenantLoginId");
  75.                 ValidationUtil.valDtoContainsKey(inputDto, "roleLoginId");
  76.                 ValidationUtil.valDtoContainsKey(inputDto, "datetime");
  77.  
  78.                 ValidationUtil.valDtoContainsKey(inputDto,"sessionId");
  79.                 ValidationUtil.valDtoContainsKey(inputDto,"datetime");
  80.                 ValidationUtil.valDtoContainsKey(inputDto,"roleLoginId");
  81.                 ValidationUtil.valDtoContainsKey(inputDto,"userLoginId");
  82.                 ValidationUtil.valDtoContainsKey(inputDto,"tenantLoginId");
  83.                 ValidationUtil.valDtoContainsKey(inputDto,"employeeId");
  84.                 ValidationUtil.valDtoContainsKey(inputDto,"supervisorId");
  85.  
  86.                 String sessionId = inputDto.getString("sessionId");
  87.                 String datetime = inputDto.getString("datetime");
  88.                 Long roleLoginId = inputDto.getLong("roleLoginId");
  89.                 Long userLoginId = inputDto.getLong("userLoginId");
  90.                 Long tenantLoginId = inputDto.getLong("tenantLoginId");
  91.                 Long employeeId = inputDto.getLong("employeeId");
  92.                 Long supervisorId = inputDto.getLong("supervisorId");
  93.  
  94.                 // Validation tenant login id can be use
  95.                 Dto loginDto = new Dto();
  96.                 loginDto.put("tenantLoginId", inputDto.getLong("tenantLoginId"));
  97.                 loginDto.put("userLoginId", inputDto.getLong("userLoginId"));
  98.                 loginDto.put("roleLoginId", inputDto.getLong("roleLoginId"));
  99.                 valTenantLoginCanUse.execute(loginDto);
  100.  
  101.                 // Validasi Combo
  102.                 Dto paramCombo = new Dto();
  103.                 paramCombo.put("id", employeeId);
  104.                 findSdmEmployeeByIdForEmployee.execute(paramCombo);
  105.  
  106.                 // Validasi Combo
  107.                 Dto paramComboSpv = new Dto();
  108.                 paramComboSpv.put("id", supervisorId);
  109.                 findSdmEmployeeByIdForEmployee.execute(paramComboSpv);
  110.  
  111.                 // Validation employee id
  112.                 Dto paramId = new Dto();
  113.                 paramId.put("tenantId", tenantLoginId);
  114.                 paramId.put("employeeId", employeeId);
  115.                 Dto isExistsByIndex = isEmployeeSupervisorExistsByIndex.execute(paramId);
  116.  
  117.                 if (isExistsByIndex.getBoolean("exists")) {
  118.                         throw new CoreException(SdmExceptionConstants.FAILED_ADD_EMPLOYEE_SUPERVISOR_SIMILAR_DATA_EXISTS,employeeId);
  119.                 }
  120.  
  121.                 //TODO butuh unique index untuk membuatnya
  122.                 /*
  123.                 Dto inputDtoForIsSampleExistsByIndex = new Dto();
  124.                 inputDtoForIsSampleExistsByIndex.put("sampleCode", sampleCode);
  125.        
  126.                 Dto outputDtoForIsSampleExistsByIndex = iEmployee NamesSampleExistsByIndex.execute(inputDtoForIsSampleExistsByIndex);
  127.                 if( outputDtoForIsSampleExistsByIndex.getBoolean("exists") ){
  128.                         throw new CoreException(LearnExceptionConstants.SAMPLE_CODE_ALREADY_USED, sampleCode);
  129.                 }
  130.                 */
  131.  
  132.                 Dto employeeSupervisorDto = new Dto();
  133.                 employeeSupervisorDto.put("sessionId",sessionId);
  134.                 employeeSupervisorDto.put("datetime",datetime);
  135.                 employeeSupervisorDto.put("roleLoginId",roleLoginId);
  136.                 employeeSupervisorDto.put("userLoginId",userLoginId);
  137.                 employeeSupervisorDto.put("tenantLoginId",tenantLoginId);
  138.                 employeeSupervisorDto.put("employeeId",employeeId);
  139.                 employeeSupervisorDto.put("supervisorId",supervisorId);
  140.                 employeeSupervisorDto.put("tenantId", tenantLoginId);
  141.                 if( inputDto.containsKey("active") ) {
  142.                         if( GeneralConstants.YES.equals( employeeSupervisorDto.get("active")) ) {
  143.                                 employeeSupervisorDto.put("activeDateTime", datetime);
  144.                                 employeeSupervisorDto.put("nonActiveDateTime", GeneralConstants.EMPTY_VALUE);
  145.                         } else {
  146.                                 employeeSupervisorDto.put("activeDateTime", GeneralConstants.EMPTY_VALUE);
  147.                                 employeeSupervisorDto.put("nonActiveDateTime", datetime);
  148.                         }
  149.                 }
  150.  
  151.                 this.prepareInsertAudit(employeeSupervisorDto, userLoginId, datetime);
  152.                 this.prepareUpdateAudit(employeeSupervisorDto, userLoginId, datetime);
  153.  
  154.                 inputDto.put("employeeSupervisorDto", employeeSupervisorDto);
  155.  
  156.                 return null;
  157.         }
  158.  
  159.         public Dto process(Dto inputDto, Dto originalDto) throws Exception{
  160.                 Dto employeeSupervisorDto = inputDto.getDto("employeeSupervisorDto");
  161.                
  162.                 EmployeeSupervisor employeeSupervisor = GsonUtil.fromDto(employeeSupervisorDto, EmployeeSupervisor.class);
  163.  
  164.                 employeeSupervisorDao.persist(employeeSupervisor);
  165.  
  166.                 return new Dto(employeeSupervisor);
  167.         }
  168. }
  169.  

Editor

You can edit this paste and save as new:


File Description
  • BT Add
  • Paste Code
  • 14 Jun-2021
  • 7.06 Kb
You can Share it: