diff --git a/frontend/src/components/admin/BatchTestReassignmentAndCancellation/BatchTestReassignmentAndCancelation.js b/frontend/src/components/admin/BatchTestReassignmentAndCancellation/BatchTestReassignmentAndCancelation.js index 78ec58294..1fd1783d9 100644 --- a/frontend/src/components/admin/BatchTestReassignmentAndCancellation/BatchTestReassignmentAndCancelation.js +++ b/frontend/src/components/admin/BatchTestReassignmentAndCancellation/BatchTestReassignmentAndCancelation.js @@ -54,7 +54,7 @@ function BatchTestReassignmentAndCancelation() { const [saveButton, setSaveButton] = useState(true); const [isLoading, setIsLoading] = useState(true); const [currentTest, setCurrentTest] = useState(true); - const [replaceWith, setReplaceWith] = useState(false); + const [replaceWith, setReplaceWith] = useState(true); const [batchTestGet, setBatchTestGet] = useState(null); const [batchTestPost, setBatchTestPost] = useState(null); const [sampleTypeListShow, setSampleTypeListShow] = useState([]); @@ -81,7 +81,6 @@ function BatchTestReassignmentAndCancelation() { noChangeTechReject: [], noChangeBioReject: [], noChangeNotValidated: [], - replace: "", }); const [changesToShow, setChangesToShow] = useState(false); @@ -346,7 +345,7 @@ function BatchTestReassignmentAndCancelation() { setSampleTestTypeToGetTagList(updatedList); } - const updatedReplace = updatedList.map((item) => item.id).join(","); + const updatedReplace = updatedList.map((item) => item.id); setJsonWad((prevJsonWad) => ({ ...prevJsonWad, replace: updatedReplace, @@ -359,7 +358,7 @@ function BatchTestReassignmentAndCancelation() { (_, index) => index !== indexToRemove, ); - const updatedReplace = updatedTags.map((item) => item.id).join(","); + const updatedReplace = updatedTags.map((item) => item.id); setJsonWad((prevJsonWad) => ({ ...prevJsonWad, replace: updatedReplace, @@ -517,7 +516,7 @@ function BatchTestReassignmentAndCancelation() { if (replaceWith) { setJsonWad((prevJsonWad) => ({ ...prevJsonWad, - replace: "", + replace: [], })); } else { const selectedTestIds = sampleTestTypeToGetTagList @@ -1006,62 +1005,6 @@ function BatchTestReassignmentAndCancelation() { <> )} - - - - - - - - ); diff --git a/src/main/java/org/openelisglobal/test/controller/rest/BatchTestReassignmentRestController.java b/src/main/java/org/openelisglobal/test/controller/rest/BatchTestReassignmentRestController.java index 77e0f2cc5..a8944ce74 100644 --- a/src/main/java/org/openelisglobal/test/controller/rest/BatchTestReassignmentRestController.java +++ b/src/main/java/org/openelisglobal/test/controller/rest/BatchTestReassignmentRestController.java @@ -115,14 +115,14 @@ private void manageAnalysis(String jsonString, List cancelAnalysis, Li try { JSONObject obj = (JSONObject) parser.parse(jsonString); List newTests = getNewTestsFromJson(obj, parser); - List changedNotStarted = getAnalysisFromJson((String) obj.get("changeNotStarted"), parser); - List noChangedNotStarted = getAnalysisFromJson((String) obj.get("noChangeNotStarted"), parser); - List changeTechReject = getAnalysisFromJson((String) obj.get("changeTechReject"), parser); - List noChangeTechReject = getAnalysisFromJson((String) obj.get("noChangeTechReject"), parser); - List changeBioReject = getAnalysisFromJson((String) obj.get("changeBioReject"), parser); - List noChangeBioReject = getAnalysisFromJson((String) obj.get("noChangeBioReject"), parser); - List changeNotValidated = getAnalysisFromJson((String) obj.get("changeNotValidated"), parser); - List noChangeNotValidated = getAnalysisFromJson((String) obj.get("noChangeNotValidated"), parser); + List changedNotStarted = getAnalysisFromJson(obj.get("changeNotStarted"), parser); + List noChangedNotStarted = getAnalysisFromJson(obj.get("noChangeNotStarted"), parser); + List changeTechReject = getAnalysisFromJson(obj.get("changeTechReject"), parser); + List noChangeTechReject = getAnalysisFromJson(obj.get("noChangeTechReject"), parser); + List changeBioReject = getAnalysisFromJson(obj.get("changeBioReject"), parser); + List noChangeBioReject = getAnalysisFromJson(obj.get("noChangeBioReject"), parser); + List changeNotValidated = getAnalysisFromJson(obj.get("changeNotValidated"), parser); + List noChangeNotValidated = getAnalysisFromJson(obj.get("noChangeNotValidated"), parser); verifyStatusNotChanged(changedNotStarted, noChangedNotStarted, StatusService.AnalysisStatus.NotStarted, changeBeans); @@ -236,27 +236,20 @@ private String getStatusName(StatusService.AnalysisStatus status) { private List getNewTestsFromJson(JSONObject obj, JSONParser parser) { List replacementTestList = new ArrayList<>(); - String replacementTests = (String) obj.get("replace"); - if (replacementTests == null) { - return replacementTestList; - } - - JSONArray replacementTestArray; - try { - replacementTestArray = (JSONArray) parser.parse(replacementTests); - } catch (ParseException e) { - LogEvent.logDebug(e); + JSONArray replacementTestArray = (JSONArray) obj.get("replace"); + if (replacementTestArray == null) { return replacementTestList; } for (Object testIdObject : replacementTestArray) { - replacementTestList.add(SpringContext.getBean(TestService.class).get((String) testIdObject)); + String testId = (String) testIdObject; + replacementTestList.add(SpringContext.getBean(TestService.class).get((String) testId)); } return replacementTestList; } - private List getAnalysisFromJson(String sampleIdList, JSONParser parser) { + private List getAnalysisFromJson(Object sampleIdList, JSONParser parser) { List analysisList = new ArrayList<>(); if (sampleIdList == null) { @@ -264,10 +257,16 @@ private List getAnalysisFromJson(String sampleIdList, JSONParser parse } JSONArray modifyAnalysisArray; - try { - modifyAnalysisArray = (JSONArray) parser.parse(sampleIdList); - } catch (ParseException e) { - LogEvent.logDebug(e); + if (sampleIdList instanceof String) { + try { + modifyAnalysisArray = (JSONArray) parser.parse((String) sampleIdList); + } catch (ParseException e) { + LogEvent.logDebug(e); + return analysisList; + } + } else if (sampleIdList instanceof JSONArray) { + modifyAnalysisArray = (JSONArray) sampleIdList; + } else { return analysisList; }