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;
}