77import org .springframework .web .bind .annotation .RequestBody ;
88import org .springframework .web .bind .annotation .RequestMapping ;
99import org .springframework .web .bind .annotation .RestController ;
10- import uk .gov .hmcts .reform .am .model .RoleAssignment ;
1110import uk .gov .hmcts .reform .ccd .client .model .AboutToStartOrSubmitCallbackResponse ;
1211import uk .gov .hmcts .reform .ccd .client .model .CallbackRequest ;
1312import uk .gov .hmcts .reform .ccd .client .model .CaseDetails ;
1413import uk .gov .hmcts .reform .fpl .controllers .CallbackController ;
15- import uk .gov .hmcts .reform .fpl .model .CaseData ;
16- import uk .gov .hmcts .reform .fpl .model .common .Element ;
17- import uk .gov .hmcts .reform .fpl .model .judicialmessage .JudicialMessage ;
18- import uk .gov .hmcts .reform .fpl .model .judicialmessage .JudicialMessageReply ;
19- import uk .gov .hmcts .reform .fpl .model .noc .ChangeOfRepresentation ;
2014import uk .gov .hmcts .reform .fpl .service .CaseConverter ;
2115import uk .gov .hmcts .reform .fpl .service .JudicialService ;
2216import uk .gov .hmcts .reform .fpl .service .MigrateCaseService ;
2317import uk .gov .hmcts .reform .fpl .service .RoleAssignmentService ;
2418import uk .gov .hmcts .reform .fpl .service .SendNewMessageJudgeService ;
2519import uk .gov .hmcts .reform .fpl .service .orders .ManageOrderDocumentScopedFieldsCalculator ;
2620
27- import java .util .Comparator ;
2821import java .util .List ;
2922import java .util .Map ;
3023import java .util .NoSuchElementException ;
31- import java .util .Optional ;
32- import java .util .UUID ;
3324import java .util .function .Consumer ;
3425
35- import static java .lang .String .join ;
36- import static org .apache .commons .lang3 .ObjectUtils .isEmpty ;
37- import static uk .gov .hmcts .reform .fpl .utils .ElementUtils .element ;
38-
3926@ Slf4j
4027@ RestController
4128@ RequestMapping ("/callback/migrate-case" )
@@ -48,14 +35,9 @@ public class MigrateCaseController extends CallbackController {
4835
4936 private final Map <String , Consumer <CaseDetails >> migrations = Map .of (
5037 "DFPL-log" , this ::runLog ,
51- "DFPL-2914" , this ::run2914 ,
52- "DFPL-2805" , this ::run2805 ,
53- "DFPL-2487" , this ::run2487 ,
54- "DFPL-2740" , this ::run2740 ,
55- "DFPL-2744" , this ::run2744 ,
56- "DFPL-2739" , this ::run2739 ,
57- "DFPL-2756" , this ::run2756 ,
58- "DFPL-2818" , this ::run2818
38+ "DFPL-2818" , this ::run2818 , // release 5/11/25
39+ "DFPL-2846" , this ::run2846 ,
40+ "DFPL-2920" , this ::run2920
5941 );
6042 private final CaseConverter caseConverter ;
6143 private final JudicialService judicialService ;
@@ -85,130 +67,26 @@ private void runLog(CaseDetails caseDetails) {
8567 log .info ("Logging migration on case {}" , caseDetails .getId ());
8668 }
8769
88- private void run2805 (CaseDetails caseDetails ) {
89- final String migrationId = "DFPL-2805" ;
90- final long expectedCaseId = 1744119100087342L ;
91- final UUID cmoId = UUID .fromString ("f80defe3-9481-4454-8692-b7bb73cd9cb4" );
92- CaseData caseData = getCaseData (caseDetails );
93-
94- migrateCaseService .doCaseIdCheck (caseDetails .getId (), expectedCaseId , migrationId );
95- caseDetails .getData ().putAll (migrateCaseService .removeSealedCMO (caseData , migrationId , cmoId , false ));
96- }
97-
98- private void run2756 (CaseDetails caseDetails ) {
99- final String migrationId = "DFPL-2756" ;
100- final long expectedCaseId = 1725874146484241L ;
101- final String orgId = "FLXFDT7" ;
70+ private void run2846 (CaseDetails caseDetails ) {
71+ final String migrationId = "DFPL-2846" ;
72+ final long expectedCaseId = 1754386343078159L ;
73+ final String orgId = "0TIEL7U" ;
10274
10375 migrateCaseService .doCaseIdCheck (caseDetails .getId (), expectedCaseId , migrationId );
10476
10577 caseDetails .getData ().putAll (migrateCaseService .updateOutsourcingPolicy (getCaseData (caseDetails ),
10678 orgId , null ));
10779 }
10880
109- private void run2914 (CaseDetails caseDetails ) {
110- CaseData caseData = getCaseData (caseDetails );
111- List <Element <JudicialMessage >> judicialMessages = caseData .getJudicialMessages ();
112-
113- if (!isEmpty (judicialMessages )) {
114- List <Element <JudicialMessage >> updatedMessages = judicialMessages .stream ()
115- .map (element -> element (element .getId (),
116- formatMessageHistory (element .getValue ()))).toList ();
117-
118- caseDetails .getData ().put ("judicialMessages" , updatedMessages );
119- }
120-
121- List <Element <JudicialMessage >> closedJudicialMessages = caseData .getClosedJudicialMessages ();
122-
123- if (!isEmpty (closedJudicialMessages )) {
124- List <Element <JudicialMessage >> updatedClosedMessages = closedJudicialMessages .stream ()
125- .map (element -> element (element .getId (),
126- formatMessageHistory (element .getValue ()))).toList ();
127-
128- caseDetails .getData ().put ("closedJudicialMessages" , updatedClosedMessages );
129- }
130- caseDetails .getData ().remove ("waTaskUrgency" );
131- }
132-
133- private JudicialMessage formatMessageHistory (JudicialMessage judicialMessage ) {
134- if (!isEmpty (judicialMessage .getJudicialMessageReplies ())) {
135-
136- List <Element <JudicialMessageReply >> judicialMessageReplySorted = judicialMessage
137- .getJudicialMessageReplies ().stream ()
138- .sorted (Comparator .comparing (judicialMessageReplyElement ->
139- judicialMessageReplyElement .getValue ().getUpdatedTime ()))
140- .toList ();
141-
142- Optional <String > messageHistory = judicialMessageReplySorted .stream ().map (reply -> {
143- String sender = reply .getValue ().getReplyFrom ();
144- String message = reply .getValue ().getMessage ();
145-
146- return String .format ("%s - %s" , sender , message );
147- }).reduce ((history , historyToAdd ) -> join ("\n \n " , history , historyToAdd ));
148-
149- return judicialMessage .toBuilder ()
150- .messageHistory (messageHistory .orElse ("" ))
151- .judicialMessageReplies (null )
152- .build ();
153- }
154-
155- return judicialMessage ;
156- }
81+ private void run2920 (CaseDetails caseDetails ) {
82+ final String migrationId = "DFPL-2920" ;
83+ final long expectedCaseId = 1745483577456938L ;
84+ final String orgId = "TIPRU4K" ;
15785
158- private void run2487 (CaseDetails caseDetails ) {
159- CaseData caseData = getCaseData (caseDetails );
160-
161- judicialService .cleanupHearingRoles (caseData .getId ());
162-
163- List <RoleAssignment > rolesToAssign = judicialService .getHearingJudgeRolesForMigration (caseData );
164-
165- log .info ("Attempting to create {} roles on case {}" , rolesToAssign .size (), caseData .getId ());
166- judicialService .migrateJudgeRoles (rolesToAssign );
167- }
168-
169- private void run2740 (CaseDetails caseDetails ) {
170- CaseData caseData = getCaseData (caseDetails );
171-
172- migrateCaseService .doCaseIdCheck (caseDetails .getId (), 1743167066103323L , "DFPL-2740" );
173-
174- List <Element <ChangeOfRepresentation >> changes = caseData .getChangeOfRepresentatives ();
175- List <Element <ChangeOfRepresentation >> after = changes .stream ().map (element -> {
176- ChangeOfRepresentation value = element .getValue ();
177- if (element .getId ().equals (UUID .fromString ("625f113c-5673-4b35-bbf1-6507fcf9ec43" ))) {
178- element .setValue (value .toBuilder ()
179- .child (value .getChild ().substring (0 , 5 ))
180- .build ());
181- }
182- return element ;
183- }).toList ();
184-
185- caseDetails .getData ().put ("changeOfRepresentatives" , after );
186- caseDetails .getData ().remove ("noticeOfProceedingsBundle" );
187- }
188-
189- private void run2744 (CaseDetails caseDetails ) {
190- CaseData caseData = getCaseData (caseDetails );
191-
192- migrateCaseService .doCaseIdCheck (caseDetails .getId (), 1743174504422687L , "DFPL-2744" );
193-
194- if (caseData .getHearingOrdersBundlesDrafts ().size () == 1
195- && caseData .getHearingOrdersBundlesDrafts ().get (0 ).getId ()
196- .equals (UUID .fromString ("cff80b00-7300-4cd5-b0cb-f9f7a2ecd862" ))) {
197- caseDetails .getData ().remove ("hearingOrdersBundlesDrafts" );
198- } else {
199- throw new AssertionError ("Different numbers of hearingOrdersBundlesDrafts or different UUID" );
200- }
201- }
202-
203- private void run2739 (CaseDetails caseDetails ) {
204- CaseData caseData = getCaseData (caseDetails );
205-
206- migrateCaseService .doCaseIdCheck (caseDetails .getId (), 1726944362364630L , "DFPL-2739" );
86+ migrateCaseService .doCaseIdCheck (caseDetails .getId (), expectedCaseId , migrationId );
20787
208- caseDetails .getData ().putAll (migrateCaseService .removeDraftOrderFromAdditionalApplication (caseData ,
209- "DFPL-2739" ,
210- UUID .fromString ("3ef67b37-17ee-48ca-9d32-58c887a6918d" ),
211- UUID .fromString ("dbe742bb-f7a1-4373-8100-52261c81ef34" )));
88+ caseDetails .getData ().putAll (migrateCaseService .updateOutsourcingPolicy (getCaseData (caseDetails ),
89+ orgId , null ));
21290 }
21391
21492 private void run2818 (CaseDetails caseDetails ) {
0 commit comments