diff --git a/src/main/java/com/iemr/ecd/repository/quality/AgentQualityAuditorMapRepo.java b/src/main/java/com/iemr/ecd/repository/quality/AgentQualityAuditorMapRepo.java index 3e59b16..ca5fc7e 100644 --- a/src/main/java/com/iemr/ecd/repository/quality/AgentQualityAuditorMapRepo.java +++ b/src/main/java/com/iemr/ecd/repository/quality/AgentQualityAuditorMapRepo.java @@ -37,6 +37,8 @@ public interface AgentQualityAuditorMapRepo extends CrudRepository findByPsmId(Integer psmId); + boolean existsByPsmIdAndRoleIdAndAgentIdAndDeletedFalse(Integer psmId, Integer roleId, Integer agentId); + @Query(value = " CALL Pr_QualityAuditorWorklist(:fDate, :tDate,:psmId, :langId, :agentId, :roleId, :isValid, :cycleId, :prevCycleFromDate, :prevCycleToDate ) ", nativeQuery = true) public List getQualityAuditorWorklist(@Param("fDate") Timestamp fDate, @Param("tDate") Timestamp tDate, @Param("psmId") Integer psmId, @Param("langId") Integer langId, @Param("agentId") Integer agentId, diff --git a/src/main/java/com/iemr/ecd/service/data_upload/RCHDataUploadServiceImpl.java b/src/main/java/com/iemr/ecd/service/data_upload/RCHDataUploadServiceImpl.java index 56821d2..9f864ed 100644 --- a/src/main/java/com/iemr/ecd/service/data_upload/RCHDataUploadServiceImpl.java +++ b/src/main/java/com/iemr/ecd/service/data_upload/RCHDataUploadServiceImpl.java @@ -62,6 +62,8 @@ public class RCHDataUploadServiceImpl { Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private static final long MAX_FILE_SIZE_BYTES = 5L * 1024 * 1024; + @Autowired private MotherRecordRepo motherRecordRepo; @Autowired @@ -80,6 +82,10 @@ public String uploadRCDData(RCHFileUploadDto rchFileUploadDto) { String base64File = rchFileUploadDto.getFileContent(); byte[] excelDataBytes = Base64.decodeBase64(base64File); + + if (excelDataBytes.length > MAX_FILE_SIZE_BYTES) + throw new ECDException("File size exceeds the maximum allowed limit of 5MB"); + workbook = this.getXSSFWorkbook(excelDataBytes); if (workbook.getNumberOfSheets() > 0) { @@ -87,10 +93,6 @@ public String uploadRCDData(RCHFileUploadDto rchFileUploadDto) { if (sheet != null) { - if (sheet.getPhysicalNumberOfRows() > 1000) - throw new ECDException( - "File is having more then 1000 records,please upload max 1000 records at a time"); - if (rchFileUploadDto.getFieldFor() != null && rchFileUploadDto.getFieldFor().equalsIgnoreCase("Mother Data")) { responseMap.put("response", getMotherValidRecords(sheet, diff --git a/src/main/java/com/iemr/ecd/service/quality/AgentQualityAuditorMappingImpl.java b/src/main/java/com/iemr/ecd/service/quality/AgentQualityAuditorMappingImpl.java index 882f99d..e10b402 100644 --- a/src/main/java/com/iemr/ecd/service/quality/AgentQualityAuditorMappingImpl.java +++ b/src/main/java/com/iemr/ecd/service/quality/AgentQualityAuditorMappingImpl.java @@ -46,11 +46,18 @@ public String createAgentQualityAuditorMapping(AgentQualityAuditorMap agentQuali try { AgentQualityAuditorMap mapObj; List agentMapDetails = new ArrayList<>(); + List alreadyMappedAgentNames = new ArrayList<>(); if (agentQualityAuditorMap != null && agentQualityAuditorMap.getAgentIds() != null && agentQualityAuditorMap.getAgentIds().length > 0) { int j = 0; String[] agentNamesArr = agentQualityAuditorMap.getAgentNames(); for (Integer i : agentQualityAuditorMap.getAgentIds()) { + if (agentQualityAuditorMapRepo.existsByPsmIdAndRoleIdAndAgentIdAndDeletedFalse( + agentQualityAuditorMap.getPsmId(), agentQualityAuditorMap.getRoleId(), i)) { + alreadyMappedAgentNames.add(agentNamesArr[j]); + j++; + continue; + } mapObj = new AgentQualityAuditorMap(); mapObj.setQualityAuditorId(agentQualityAuditorMap.getQualityAuditorId()); mapObj.setQualityAuditorName(agentQualityAuditorMap.getQualityAuditorName()); @@ -67,10 +74,16 @@ public String createAgentQualityAuditorMapping(AgentQualityAuditorMap agentQuali } else { agentMapDetails.add(agentQualityAuditorMap); } - agentQualityAuditorMapRepo.saveAll(agentMapDetails); + if (!agentMapDetails.isEmpty()) + agentQualityAuditorMapRepo.saveAll(agentMapDetails); Map responseMap = new HashMap<>(); - responseMap.put("response", "Agent Quality Auditor Mapping Created Successfully"); + if (!alreadyMappedAgentNames.isEmpty()) { + responseMap.put("response", "Agent Quality Auditor Mapping Created Successfully. Already mapped, skipped: " + + String.join(", ", alreadyMappedAgentNames)); + } else { + responseMap.put("response", "Agent Quality Auditor Mapping Created Successfully"); + } return new Gson().toJson(responseMap); } catch (Exception e) { throw new ECDException(e);