1919
2020package org .dinky .controller ;
2121
22+ import org .dinky .assertion .Asserts ;
2223import org .dinky .config .Dialect ;
2324import org .dinky .data .annotations .CheckTaskOwner ;
2425import org .dinky .data .annotations .ExecuteProcess ;
4950import org .dinky .trans .ExecuteJarParseStrategyUtil ;
5051import org .dinky .utils .SqlUtil ;
5152
52- import java .util .Arrays ;
5353import java .util .List ;
54- import java .util .stream .Collectors ;
5554
5655import org .springframework .validation .annotation .Validated ;
5756import org .springframework .web .bind .annotation .GetMapping ;
@@ -306,7 +305,6 @@ public Result<List<TaskDTO>> getMyTask() {
306305 @ PostMapping ("/flinkJarSqlConvertForm" )
307306 @ ApiOperation ("FlinkJar SqlConvertForm" )
308307 public Result <FlinkJarSqlConvertVO > flinkJarSqlConvertForm (@ RequestBody TaskDTO taskDTO ) {
309-
310308 String sqlStatement = taskDTO .getStatement ();
311309 String [] statements = SqlUtil .getStatements (sqlStatement );
312310 FlinkJarSqlConvertVO flinkJarSqlConvertVO = new FlinkJarSqlConvertVO ();
@@ -315,21 +313,24 @@ public Result<FlinkJarSqlConvertVO> flinkJarSqlConvertForm(@RequestBody TaskDTO
315313 flinkJarSqlConvertVO .setInitSqlStatement (sqlStatement );
316314 return Result .succeed (flinkJarSqlConvertVO );
317315 }
316+
318317 Integer lastExecuteJarSqlStatementIndex = null ;
319318 for (int i = 0 ; i < statements .length ; i ++) {
320- if (ExecuteJarParseStrategyUtil .match (statements [i ])) {
319+ if (ExecuteJarParseStrategyUtil .find (statements [i ])) {
321320 lastExecuteJarSqlStatementIndex = i ;
322321 }
323322 }
324323 if (lastExecuteJarSqlStatementIndex == null ) {
324+ flinkJarSqlConvertVO .setInitSqlStatement (sqlStatement );
325325 return Result .succeed (flinkJarSqlConvertVO );
326326 }
327327 String lastSqlStatement = statements [lastExecuteJarSqlStatementIndex ];
328328 JarSubmitParam info = JarSubmitParam .getInfo (lastSqlStatement );
329329 flinkJarSqlConvertVO .setJarSubmitParam (info );
330- String sql = Arrays .stream (ArrayUtil .remove (statements , lastExecuteJarSqlStatementIndex ))
331- .map (x -> x + ";" )
332- .collect (Collectors .joining ("\n " ));
330+ // English: Only clear the 'Execute Jar' part of the original sqlStatement, while retaining all other
331+ // statements.
332+ // 中文: 只清理 Execute Jar 的语句,保留其他各种语句与注释
333+ String sql = ExecuteJarParseStrategyUtil .removeExecuteJarStatement (sqlStatement );
333334 flinkJarSqlConvertVO .setInitSqlStatement (sql );
334335 return Result .succeed (flinkJarSqlConvertVO );
335336 }
@@ -338,6 +339,11 @@ public Result<FlinkJarSqlConvertVO> flinkJarSqlConvertForm(@RequestBody TaskDTO
338339 @ ApiOperation ("FlinkJar FormConvertSql" )
339340 public Result <String > flinkJarFormConvertSql (@ RequestBody FlinkJarSqlConvertVO dto ) {
340341 JarSubmitParam jarSubmitParam = dto .getJarSubmitParam ();
342+ String initSqlStatement = dto .getInitSqlStatement ();
343+ // remove Other Execute Jar
344+ if (Asserts .isNotNullString (initSqlStatement )) {
345+ initSqlStatement = ExecuteJarParseStrategyUtil .removeExecuteJarStatement (initSqlStatement );
346+ }
341347 Dict objectMap = Dict .create ()
342348 .set ("uri" , Opt .ofNullable (jarSubmitParam .getUri ()).orElse ("" ))
343349 .set (
@@ -352,6 +358,6 @@ public Result<String> flinkJarFormConvertSql(@RequestBody FlinkJarSqlConvertVO d
352358 .orElse (false )
353359 .toString ());
354360 String executeJarSql = ENGINE .getTemplate ("executeJar.sql" ).render (objectMap );
355- return Result .succeed (Opt .ofNullable (dto . getInitSqlStatement () ).orElse ("" ) + "\n " + executeJarSql , "" );
361+ return Result .succeed (Opt .ofNullable (initSqlStatement ).orElse ("" ) + "\n " + executeJarSql , "" );
356362 }
357363}
0 commit comments