@ -117,7 +117,19 @@ import java.io.BufferedReader;
import java.io.IOException ;
import java.io.IOException ;
import java.io.InputStreamReader ;
import java.io.InputStreamReader ;
import java.nio.charset.StandardCharsets ;
import java.nio.charset.StandardCharsets ;
import java.util.* ;
import java.util.ArrayList ;
import java.util.Arrays ;
import java.util.Collection ;
import java.util.Collections ;
import java.util.Date ;
import java.util.HashMap ;
import java.util.HashSet ;
import java.util.Iterator ;
import java.util.List ;
import java.util.Map ;
import java.util.Objects ;
import java.util.Optional ;
import java.util.Set ;
import java.util.concurrent.ConcurrentHashMap ;
import java.util.concurrent.ConcurrentHashMap ;
import java.util.function.Function ;
import java.util.function.Function ;
import java.util.stream.Collectors ;
import java.util.stream.Collectors ;
@ -299,7 +311,8 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
logger . error ( "Save process definition error, processCode:{}." , processDefinition . getCode ( ) ) ;
logger . error ( "Save process definition error, processCode:{}." , processDefinition . getCode ( ) ) ;
throw new ServiceException ( Status . CREATE_PROCESS_DEFINITION_ERROR ) ;
throw new ServiceException ( Status . CREATE_PROCESS_DEFINITION_ERROR ) ;
} else
} else
logger . info ( "Save process definition complete, processCode:{}, processVersion:{}." , processDefinition . getCode ( ) , insertVersion ) ;
logger . info ( "Save process definition complete, processCode:{}, processVersion:{}." ,
processDefinition . getCode ( ) , insertVersion ) ;
int insertResult = processService . saveTaskRelation ( loginUser , processDefinition . getProjectCode ( ) ,
int insertResult = processService . saveTaskRelation ( loginUser , processDefinition . getProjectCode ( ) ,
processDefinition . getCode ( ) ,
processDefinition . getCode ( ) ,
insertVersion , taskRelationList , taskDefinitionLogs , Boolean . TRUE ) ;
insertVersion , taskRelationList , taskDefinitionLogs , Boolean . TRUE ) ;
@ -692,7 +705,8 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
logger . info ( "The task has not changed, so skip" ) ;
logger . info ( "The task has not changed, so skip" ) ;
}
}
if ( saveTaskResult = = Constants . DEFINITION_FAILURE ) {
if ( saveTaskResult = = Constants . DEFINITION_FAILURE ) {
logger . error ( "Update task definitions error, projectCode:{}, processCode:{}." , processDefinition . getProjectCode ( ) , processDefinition . getCode ( ) ) ;
logger . error ( "Update task definitions error, projectCode:{}, processCode:{}." ,
processDefinition . getProjectCode ( ) , processDefinition . getCode ( ) ) ;
putMsg ( result , Status . UPDATE_TASK_DEFINITION_ERROR ) ;
putMsg ( result , Status . UPDATE_TASK_DEFINITION_ERROR ) ;
throw new ServiceException ( Status . UPDATE_TASK_DEFINITION_ERROR ) ;
throw new ServiceException ( Status . UPDATE_TASK_DEFINITION_ERROR ) ;
}
}
@ -728,13 +742,15 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
putMsg ( result , Status . UPDATE_PROCESS_DEFINITION_ERROR ) ;
putMsg ( result , Status . UPDATE_PROCESS_DEFINITION_ERROR ) ;
throw new ServiceException ( Status . UPDATE_PROCESS_DEFINITION_ERROR ) ;
throw new ServiceException ( Status . UPDATE_PROCESS_DEFINITION_ERROR ) ;
} else
} else
logger . info ( "Update process definition complete, processCode:{}, processVersion:{}." , processDefinition . getCode ( ) , insertVersion ) ;
logger . info ( "Update process definition complete, processCode:{}, processVersion:{}." ,
processDefinition . getCode ( ) , insertVersion ) ;
taskUsedInOtherTaskValid ( processDefinition , taskRelationList ) ;
taskUsedInOtherTaskValid ( processDefinition , taskRelationList ) ;
int insertResult = processService . saveTaskRelation ( loginUser , processDefinition . getProjectCode ( ) ,
int insertResult = processService . saveTaskRelation ( loginUser , processDefinition . getProjectCode ( ) ,
processDefinition . getCode ( ) , insertVersion , taskRelationList , taskDefinitionLogs , Boolean . TRUE ) ;
processDefinition . getCode ( ) , insertVersion , taskRelationList , taskDefinitionLogs , Boolean . TRUE ) ;
if ( insertResult = = Constants . EXIT_CODE_SUCCESS ) {
if ( insertResult = = Constants . EXIT_CODE_SUCCESS ) {
logger . info ( "Update process task relations complete, projectCode:{}, processCode:{}, processVersion:{}." ,
logger . info (
"Update process task relations complete, projectCode:{}, processCode:{}, processVersion:{}." ,
processDefinition . getProjectCode ( ) , processDefinition . getCode ( ) , insertVersion ) ;
processDefinition . getProjectCode ( ) , processDefinition . getCode ( ) , insertVersion ) ;
putMsg ( result , Status . SUCCESS ) ;
putMsg ( result , Status . SUCCESS ) ;
result . put ( Constants . DATA_LIST , processDefinition ) ;
result . put ( Constants . DATA_LIST , processDefinition ) ;
@ -746,7 +762,8 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
}
}
saveOtherRelation ( loginUser , processDefinition , result , otherParamsJson ) ;
saveOtherRelation ( loginUser , processDefinition , result , otherParamsJson ) ;
} else {
} else {
logger . info ( "Process definition does not need to be updated because there is no change, projectCode:{}, processCode:{}, processVersion:{}." ,
logger . info (
"Process definition does not need to be updated because there is no change, projectCode:{}, processCode:{}, processVersion:{}." ,
processDefinition . getProjectCode ( ) , processDefinition . getCode ( ) , processDefinition . getVersion ( ) ) ;
processDefinition . getProjectCode ( ) , processDefinition . getCode ( ) , processDefinition . getVersion ( ) ) ;
putMsg ( result , Status . SUCCESS ) ;
putMsg ( result , Status . SUCCESS ) ;
result . put ( Constants . DATA_LIST , processDefinition ) ;
result . put ( Constants . DATA_LIST , processDefinition ) ;
@ -763,7 +780,8 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
* @return true if process definition name not exists , otherwise false
* @return true if process definition name not exists , otherwise false
* /
* /
@Override
@Override
public Map < String , Object > verifyProcessDefinitionName ( User loginUser , long projectCode , String name , long processDefinitionCode ) {
public Map < String , Object > verifyProcessDefinitionName ( User loginUser , long projectCode , String name ,
long processDefinitionCode ) {
Project project = projectMapper . queryByCode ( projectCode ) ;
Project project = projectMapper . queryByCode ( projectCode ) ;
// check user access for project
// check user access for project
Map < String , Object > result =
Map < String , Object > result =
@ -806,7 +824,8 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
List < ProcessInstance > processInstances = processInstanceService
List < ProcessInstance > processInstances = processInstanceService
. queryByProcessDefineCodeAndStatus ( processDefinition . getCode ( ) , Constants . NOT_TERMINATED_STATES ) ;
. queryByProcessDefineCodeAndStatus ( processDefinition . getCode ( ) , Constants . NOT_TERMINATED_STATES ) ;
if ( CollectionUtils . isNotEmpty ( processInstances ) ) {
if ( CollectionUtils . isNotEmpty ( processInstances ) ) {
logger . warn ( "Process definition can not be deleted because there are {} executing process instances, processDefinitionCode:{}" ,
logger . warn (
"Process definition can not be deleted because there are {} executing process instances, processDefinitionCode:{}" ,
processInstances . size ( ) , processDefinition . getCode ( ) ) ;
processInstances . size ( ) , processDefinition . getCode ( ) ) ;
throw new ServiceException ( Status . DELETE_PROCESS_DEFINITION_EXECUTING_FAIL , processInstances . size ( ) ) ;
throw new ServiceException ( Status . DELETE_PROCESS_DEFINITION_EXECUTING_FAIL , processInstances . size ( ) ) ;
}
}
@ -819,7 +838,8 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
. map ( task - > String . format ( Constants . FORMAT_S_S_COLON , task . getProcessDefinitionName ( ) ,
. map ( task - > String . format ( Constants . FORMAT_S_S_COLON , task . getProcessDefinitionName ( ) ,
task . getTaskName ( ) ) )
task . getTaskName ( ) ) )
. collect ( Collectors . joining ( Constants . COMMA ) ) ;
. collect ( Collectors . joining ( Constants . COMMA ) ) ;
logger . warn ( "Process definition can not be deleted due to being referenced by other tasks:{}, processDefinitionCode:{}" ,
logger . warn (
"Process definition can not be deleted due to being referenced by other tasks:{}, processDefinitionCode:{}" ,
taskDepDetail , processDefinition . getCode ( ) ) ;
taskDepDetail , processDefinition . getCode ( ) ) ;
throw new ServiceException ( Status . DELETE_PROCESS_DEFINITION_USE_BY_OTHER_FAIL , taskDepDetail ) ;
throw new ServiceException ( Status . DELETE_PROCESS_DEFINITION_USE_BY_OTHER_FAIL , taskDepDetail ) ;
}
}
@ -852,7 +872,8 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
// Determine if the login user is the owner of the process definition
// Determine if the login user is the owner of the process definition
if ( loginUser . getId ( ) ! = processDefinition . getUserId ( ) & & loginUser . getUserType ( ) ! = UserType . ADMIN_USER ) {
if ( loginUser . getId ( ) ! = processDefinition . getUserId ( ) & & loginUser . getUserType ( ) ! = UserType . ADMIN_USER ) {
logger . warn ( "User does not have permission for process definition, userId:{}, processDefinitionCode:{}." , loginUser . getId ( ) , code ) ;
logger . warn ( "User does not have permission for process definition, userId:{}, processDefinitionCode:{}." ,
loginUser . getId ( ) , code ) ;
putMsg ( result , Status . USER_NO_OPERATION_PERM ) ;
putMsg ( result , Status . USER_NO_OPERATION_PERM ) ;
return result ;
return result ;
}
}
@ -865,13 +886,16 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
if ( scheduleObj . getReleaseState ( ) = = ReleaseState . OFFLINE ) {
if ( scheduleObj . getReleaseState ( ) = = ReleaseState . OFFLINE ) {
int delete = scheduleMapper . deleteById ( scheduleObj . getId ( ) ) ;
int delete = scheduleMapper . deleteById ( scheduleObj . getId ( ) ) ;
if ( delete = = 0 ) {
if ( delete = = 0 ) {
logger . error ( "Delete schedule of process definition error, processDefinitionCode:{}, scheduleId:{}." , code , scheduleObj . getId ( ) ) ;
logger . error (
"Delete schedule of process definition error, processDefinitionCode:{}, scheduleId:{}." ,
code , scheduleObj . getId ( ) ) ;
putMsg ( result , Status . DELETE_SCHEDULE_CRON_BY_ID_ERROR ) ;
putMsg ( result , Status . DELETE_SCHEDULE_CRON_BY_ID_ERROR ) ;
throw new ServiceException ( Status . DELETE_SCHEDULE_CRON_BY_ID_ERROR ) ;
throw new ServiceException ( Status . DELETE_SCHEDULE_CRON_BY_ID_ERROR ) ;
}
}
}
}
if ( scheduleObj . getReleaseState ( ) = = ReleaseState . ONLINE ) {
if ( scheduleObj . getReleaseState ( ) = = ReleaseState . ONLINE ) {
logger . warn ( "Process definition can not be deleted due to schedule {}, processDefinitionCode:{}, scheduleId:{}." ,
logger . warn (
"Process definition can not be deleted due to schedule {}, processDefinitionCode:{}, scheduleId:{}." ,
ReleaseState . ONLINE . getDescp ( ) , processDefinition . getCode ( ) , scheduleObj . getId ( ) ) ;
ReleaseState . ONLINE . getDescp ( ) , processDefinition . getCode ( ) , scheduleObj . getId ( ) ) ;
putMsg ( result , Status . SCHEDULE_CRON_STATE_ONLINE , scheduleObj . getId ( ) ) ;
putMsg ( result , Status . SCHEDULE_CRON_STATE_ONLINE , scheduleObj . getId ( ) ) ;
return result ;
return result ;
@ -885,7 +909,9 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
}
}
int deleteRelation = processTaskRelationMapper . deleteByCode ( project . getCode ( ) , processDefinition . getCode ( ) ) ;
int deleteRelation = processTaskRelationMapper . deleteByCode ( project . getCode ( ) , processDefinition . getCode ( ) ) ;
if ( deleteRelation = = 0 ) {
if ( deleteRelation = = 0 ) {
logger . warn ( "The process definition has not relation, it will be delete successfully, processDefinitionCode:{}." , code ) ;
logger . warn (
"The process definition has not relation, it will be delete successfully, processDefinitionCode:{}." ,
code ) ;
}
}
deleteOtherRelation ( project , result , processDefinition ) ;
deleteOtherRelation ( project , result , processDefinition ) ;
putMsg ( result , Status . SUCCESS ) ;
putMsg ( result , Status . SUCCESS ) ;
@ -936,24 +962,29 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
}
}
processDefinition . setReleaseState ( releaseState ) ;
processDefinition . setReleaseState ( releaseState ) ;
processDefinitionMapper . updateById ( processDefinition ) ;
processDefinitionMapper . updateById ( processDefinition ) ;
logger . info ( "Set process definition online, projectCode:{}, processDefinitionCode:{}." , projectCode , code ) ;
logger . info ( "Set process definition online, projectCode:{}, processDefinitionCode:{}." , projectCode ,
code ) ;
break ;
break ;
case OFFLINE :
case OFFLINE :
processDefinition . setReleaseState ( releaseState ) ;
processDefinition . setReleaseState ( releaseState ) ;
int updateProcess = processDefinitionMapper . updateById ( processDefinition ) ;
int updateProcess = processDefinitionMapper . updateById ( processDefinition ) ;
Schedule schedule = scheduleMapper . queryByProcessDefinitionCode ( code ) ;
Schedule schedule = scheduleMapper . queryByProcessDefinitionCode ( code ) ;
if ( updateProcess > 0 ) {
if ( updateProcess > 0 ) {
logger . info ( "Set process definition offline, projectCode:{}, processDefinitionCode:{}." , projectCode , code ) ;
logger . info ( "Set process definition offline, projectCode:{}, processDefinitionCode:{}." ,
projectCode , code ) ;
if ( schedule ! = null ) {
if ( schedule ! = null ) {
// set status
// set status
schedule . setReleaseState ( releaseState ) ;
schedule . setReleaseState ( releaseState ) ;
int updateSchedule = scheduleMapper . updateById ( schedule ) ;
int updateSchedule = scheduleMapper . updateById ( schedule ) ;
if ( updateSchedule = = 0 ) {
if ( updateSchedule = = 0 ) {
logger . error ( "Set schedule offline error, projectCode:{}, processDefinitionCode:{}, scheduleId:{}" , projectCode , code , schedule . getId ( ) ) ;
logger . error (
"Set schedule offline error, projectCode:{}, processDefinitionCode:{}, scheduleId:{}" ,
projectCode , code , schedule . getId ( ) ) ;
putMsg ( result , Status . OFFLINE_SCHEDULE_ERROR ) ;
putMsg ( result , Status . OFFLINE_SCHEDULE_ERROR ) ;
throw new ServiceException ( Status . OFFLINE_SCHEDULE_ERROR ) ;
throw new ServiceException ( Status . OFFLINE_SCHEDULE_ERROR ) ;
} else
} else
logger . info ( "Set schedule offline, projectCode:{}, processDefinitionCode:{}, scheduleId:{}" , projectCode , code , schedule . getId ( ) ) ;
logger . info ( "Set schedule offline, projectCode:{}, processDefinitionCode:{}, scheduleId:{}" ,
projectCode , code , schedule . getId ( ) ) ;
schedulerService . deleteSchedule ( project . getId ( ) , schedule . getId ( ) ) ;
schedulerService . deleteSchedule ( project . getId ( ) , schedule . getId ( ) ) ;
}
}
}
}
@ -1321,7 +1352,9 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
try {
try {
processDefinition . setCode ( CodeGenerateUtils . getInstance ( ) . genCode ( ) ) ;
processDefinition . setCode ( CodeGenerateUtils . getInstance ( ) . genCode ( ) ) ;
} catch ( CodeGenerateException e ) {
} catch ( CodeGenerateException e ) {
logger . error ( "Save process definition error because generate process definition code error, projectCode:{}." , projectCode , e ) ;
logger . error (
"Save process definition error because generate process definition code error, projectCode:{}." ,
projectCode , e ) ;
putMsg ( result , Status . CREATE_PROCESS_DEFINITION_ERROR ) ;
putMsg ( result , Status . CREATE_PROCESS_DEFINITION_ERROR ) ;
return false ;
return false ;
}
}
@ -1344,7 +1377,8 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
taskCodeMap . put ( taskDefinitionLog . getCode ( ) , code ) ;
taskCodeMap . put ( taskDefinitionLog . getCode ( ) , code ) ;
taskDefinitionLog . setCode ( code ) ;
taskDefinitionLog . setCode ( code ) ;
} catch ( CodeGenerateException e ) {
} catch ( CodeGenerateException e ) {
logger . error ( "Generate task definition code error, projectCode:{}, processDefinitionCode:{}" , projectCode , processDefinition . getCode ( ) , e ) ;
logger . error ( "Generate task definition code error, projectCode:{}, processDefinitionCode:{}" ,
projectCode , processDefinition . getCode ( ) , e ) ;
putMsg ( result , Status . INTERNAL_SERVER_ERROR_ARGS , "Error generating task definition code" ) ;
putMsg ( result , Status . INTERNAL_SERVER_ERROR_ARGS , "Error generating task definition code" ) ;
return false ;
return false ;
}
}
@ -1353,7 +1387,8 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
int insert = taskDefinitionMapper . batchInsert ( taskDefinitionLogList ) ;
int insert = taskDefinitionMapper . batchInsert ( taskDefinitionLogList ) ;
int logInsert = taskDefinitionLogMapper . batchInsert ( taskDefinitionLogList ) ;
int logInsert = taskDefinitionLogMapper . batchInsert ( taskDefinitionLogList ) ;
if ( ( logInsert & insert ) = = 0 ) {
if ( ( logInsert & insert ) = = 0 ) {
logger . error ( "Save task definition error, projectCode:{}, processDefinitionCode:{}" , projectCode , processDefinition . getCode ( ) ) ;
logger . error ( "Save task definition error, projectCode:{}, processDefinitionCode:{}" , projectCode ,
processDefinition . getCode ( ) ) ;
putMsg ( result , Status . CREATE_TASK_DEFINITION_ERROR ) ;
putMsg ( result , Status . CREATE_TASK_DEFINITION_ERROR ) ;
throw new ServiceException ( Status . CREATE_TASK_DEFINITION_ERROR ) ;
throw new ServiceException ( Status . CREATE_TASK_DEFINITION_ERROR ) ;
}
}
@ -1396,7 +1431,8 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
putMsg ( createDagResult , Status . SUCCESS ) ;
putMsg ( createDagResult , Status . SUCCESS ) ;
} else {
} else {
result . putAll ( createDagResult ) ;
result . putAll ( createDagResult ) ;
logger . error ( "Import process definition error, projectCode:{}, processDefinitionCode:{}." , projectCode , processDefinition . getCode ( ) ) ;
logger . error ( "Import process definition error, projectCode:{}, processDefinitionCode:{}." , projectCode ,
processDefinition . getCode ( ) ) ;
throw new ServiceException ( Status . IMPORT_PROCESS_DEFINE_ERROR ) ;
throw new ServiceException ( Status . IMPORT_PROCESS_DEFINE_ERROR ) ;
}
}
@ -1409,13 +1445,16 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
schedule . setUpdateTime ( now ) ;
schedule . setUpdateTime ( now ) ;
int scheduleInsert = scheduleMapper . insert ( schedule ) ;
int scheduleInsert = scheduleMapper . insert ( schedule ) ;
if ( 0 = = scheduleInsert ) {
if ( 0 = = scheduleInsert ) {
logger . error ( "Import process definition error due to save schedule fail, projectCode:{}, processDefinitionCode:{}." , projectCode , processDefinition . getCode ( ) ) ;
logger . error (
"Import process definition error due to save schedule fail, projectCode:{}, processDefinitionCode:{}." ,
projectCode , processDefinition . getCode ( ) ) ;
putMsg ( result , Status . IMPORT_PROCESS_DEFINE_ERROR ) ;
putMsg ( result , Status . IMPORT_PROCESS_DEFINE_ERROR ) ;
throw new ServiceException ( Status . IMPORT_PROCESS_DEFINE_ERROR ) ;
throw new ServiceException ( Status . IMPORT_PROCESS_DEFINE_ERROR ) ;
}
}
}
}
logger . info ( "Import process definition complete, projectCode:{}, processDefinitionCode:{}." , projectCode , processDefinition . getCode ( ) ) ;
logger . info ( "Import process definition complete, projectCode:{}, processDefinitionCode:{}." , projectCode ,
processDefinition . getCode ( ) ) ;
return true ;
return true ;
}
}
@ -1992,7 +2031,7 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
putMsg ( result , Status . INTERNAL_SERVER_ERROR_ARGS ) ;
putMsg ( result , Status . INTERNAL_SERVER_ERROR_ARGS ) ;
throw new ServiceException ( Status . INTERNAL_SERVER_ERROR_ARGS ) ;
throw new ServiceException ( Status . INTERNAL_SERVER_ERROR_ARGS ) ;
}
}
processDefinition . setId ( 0 ) ;
processDefinition . setId ( null ) ;
processDefinition . setUserId ( loginUser . getId ( ) ) ;
processDefinition . setUserId ( loginUser . getId ( ) ) ;
processDefinition . setName ( getNewName ( processDefinition . getName ( ) , COPY_SUFFIX ) ) ;
processDefinition . setName ( getNewName ( processDefinition . getName ( ) , COPY_SUFFIX ) ) ;
final Date date = new Date ( ) ;
final Date date = new Date ( ) ;
@ -2026,7 +2065,8 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
result . putAll ( createDagDefine ( loginUser , taskRelationList , processDefinition , taskDefinitionLogs ,
result . putAll ( createDagDefine ( loginUser , taskRelationList , processDefinition , taskDefinitionLogs ,
otherParamsJson ) ) ;
otherParamsJson ) ) ;
} catch ( Exception e ) {
} catch ( Exception e ) {
logger . error ( "Copy process definition error, processDefinitionCode from {} to {}." , oldProcessDefinitionCode , processDefinition . getCode ( ) , e ) ;
logger . error ( "Copy process definition error, processDefinitionCode from {} to {}." ,
oldProcessDefinitionCode , processDefinition . getCode ( ) , e ) ;
putMsg ( result , Status . COPY_PROCESS_DEFINITION_ERROR ) ;
putMsg ( result , Status . COPY_PROCESS_DEFINITION_ERROR ) ;
throw new ServiceException ( Status . COPY_PROCESS_DEFINITION_ERROR ) ;
throw new ServiceException ( Status . COPY_PROCESS_DEFINITION_ERROR ) ;
}
}
@ -2036,7 +2076,8 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
result . putAll ( updateDagDefine ( loginUser , taskRelationList , processDefinition , null ,
result . putAll ( updateDagDefine ( loginUser , taskRelationList , processDefinition , null ,
Lists . newArrayList ( ) , otherParamsJson ) ) ;
Lists . newArrayList ( ) , otherParamsJson ) ) ;
} catch ( Exception e ) {
} catch ( Exception e ) {
logger . error ( "Move process definition error, processDefinitionCode:{}." , processDefinition . getCode ( ) , e ) ;
logger . error ( "Move process definition error, processDefinitionCode:{}." ,
processDefinition . getCode ( ) , e ) ;
putMsg ( result , Status . MOVE_PROCESS_DEFINITION_ERROR ) ;
putMsg ( result , Status . MOVE_PROCESS_DEFINITION_ERROR ) ;
throw new ServiceException ( Status . MOVE_PROCESS_DEFINITION_ERROR ) ;
throw new ServiceException ( Status . MOVE_PROCESS_DEFINITION_ERROR ) ;
}
}
@ -2092,7 +2133,9 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
ProcessDefinition processDefinition = processDefinitionMapper . queryByCode ( code ) ;
ProcessDefinition processDefinition = processDefinitionMapper . queryByCode ( code ) ;
if ( Objects . isNull ( processDefinition ) | | projectCode ! = processDefinition . getProjectCode ( ) ) {
if ( Objects . isNull ( processDefinition ) | | projectCode ! = processDefinition . getProjectCode ( ) ) {
logger . error ( "Switch process definition error because it does not exist, projectCode:{}, processDefinitionCode:{}." , projectCode , code ) ;
logger . error (
"Switch process definition error because it does not exist, projectCode:{}, processDefinitionCode:{}." ,
projectCode , code ) ;
putMsg ( result , Status . SWITCH_PROCESS_DEFINITION_VERSION_NOT_EXIST_PROCESS_DEFINITION_ERROR , code ) ;
putMsg ( result , Status . SWITCH_PROCESS_DEFINITION_VERSION_NOT_EXIST_PROCESS_DEFINITION_ERROR , code ) ;
return result ;
return result ;
}
}
@ -2100,18 +2143,23 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
ProcessDefinitionLog processDefinitionLog =
ProcessDefinitionLog processDefinitionLog =
processDefinitionLogMapper . queryByDefinitionCodeAndVersion ( code , version ) ;
processDefinitionLogMapper . queryByDefinitionCodeAndVersion ( code , version ) ;
if ( Objects . isNull ( processDefinitionLog ) ) {
if ( Objects . isNull ( processDefinitionLog ) ) {
logger . error ( "Switch process definition error because version does not exist, projectCode:{}, processDefinitionCode:{}, version:{}." , projectCode , code , version ) ;
logger . error (
"Switch process definition error because version does not exist, projectCode:{}, processDefinitionCode:{}, version:{}." ,
projectCode , code , version ) ;
putMsg ( result , Status . SWITCH_PROCESS_DEFINITION_VERSION_NOT_EXIST_PROCESS_DEFINITION_VERSION_ERROR ,
putMsg ( result , Status . SWITCH_PROCESS_DEFINITION_VERSION_NOT_EXIST_PROCESS_DEFINITION_VERSION_ERROR ,
processDefinition . getCode ( ) , version ) ;
processDefinition . getCode ( ) , version ) ;
return result ;
return result ;
}
}
int switchVersion = processService . switchVersion ( processDefinition , processDefinitionLog ) ;
int switchVersion = processService . switchVersion ( processDefinition , processDefinitionLog ) ;
if ( switchVersion < = 0 ) {
if ( switchVersion < = 0 ) {
logger . error ( "Switch process definition version error, projectCode:{}, processDefinitionCode:{}, version:{}." , projectCode , code , version ) ;
logger . error (
"Switch process definition version error, projectCode:{}, processDefinitionCode:{}, version:{}." ,
projectCode , code , version ) ;
putMsg ( result , Status . SWITCH_PROCESS_DEFINITION_VERSION_ERROR ) ;
putMsg ( result , Status . SWITCH_PROCESS_DEFINITION_VERSION_ERROR ) ;
throw new ServiceException ( Status . SWITCH_PROCESS_DEFINITION_VERSION_ERROR ) ;
throw new ServiceException ( Status . SWITCH_PROCESS_DEFINITION_VERSION_ERROR ) ;
}
}
logger . info ( "Switch process definition version complete, projectCode:{}, processDefinitionCode:{}, version:{}." , projectCode , code , version ) ;
logger . info ( "Switch process definition version complete, projectCode:{}, processDefinitionCode:{}, version:{}." ,
projectCode , code , version ) ;
putMsg ( result , Status . SUCCESS ) ;
putMsg ( result , Status . SUCCESS ) ;
return result ;
return result ;
}
}
@ -2130,16 +2178,19 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
if ( ! failedProcessList . isEmpty ( ) ) {
if ( ! failedProcessList . isEmpty ( ) ) {
String failedProcess = String . join ( "," , failedProcessList ) ;
String failedProcess = String . join ( "," , failedProcessList ) ;
if ( isCopy ) {
if ( isCopy ) {
logger . error ( "Copy process definition error, srcProjectCode:{}, targetProjectCode:{}, failedProcessList:{}." ,
logger . error (
"Copy process definition error, srcProjectCode:{}, targetProjectCode:{}, failedProcessList:{}." ,
srcProjectCode , targetProjectCode , failedProcess ) ;
srcProjectCode , targetProjectCode , failedProcess ) ;
putMsg ( result , Status . COPY_PROCESS_DEFINITION_ERROR , srcProjectCode , targetProjectCode , failedProcess ) ;
putMsg ( result , Status . COPY_PROCESS_DEFINITION_ERROR , srcProjectCode , targetProjectCode , failedProcess ) ;
} else {
} else {
logger . error ( "Move process definition error, srcProjectCode:{}, targetProjectCode:{}, failedProcessList:{}." ,
logger . error (
"Move process definition error, srcProjectCode:{}, targetProjectCode:{}, failedProcessList:{}." ,
srcProjectCode , targetProjectCode , failedProcess ) ;
srcProjectCode , targetProjectCode , failedProcess ) ;
putMsg ( result , Status . MOVE_PROCESS_DEFINITION_ERROR , srcProjectCode , targetProjectCode , failedProcess ) ;
putMsg ( result , Status . MOVE_PROCESS_DEFINITION_ERROR , srcProjectCode , targetProjectCode , failedProcess ) ;
}
}
} else {
} else {
logger . info ( "Batch {} process definition complete, srcProjectCode:{}, targetProjectCode:{}." , isCopy ? "copy" : "move" , srcProjectCode , targetProjectCode ) ;
logger . info ( "Batch {} process definition complete, srcProjectCode:{}, targetProjectCode:{}." ,
isCopy ? "copy" : "move" , srcProjectCode , targetProjectCode ) ;
putMsg ( result , Status . SUCCESS ) ;
putMsg ( result , Status . SUCCESS ) ;
}
}
}
}
@ -2207,7 +2258,8 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
putMsg ( result , Status . PROCESS_DEFINE_NOT_EXIST , String . valueOf ( code ) ) ;
putMsg ( result , Status . PROCESS_DEFINE_NOT_EXIST , String . valueOf ( code ) ) ;
} else {
} else {
if ( processDefinition . getVersion ( ) = = version ) {
if ( processDefinition . getVersion ( ) = = version ) {
logger . warn ( "Process definition can not be deleted due to version is being used, projectCode:{}, processDefinitionCode:{}, version:{}." ,
logger . warn (
"Process definition can not be deleted due to version is being used, projectCode:{}, processDefinitionCode:{}, version:{}." ,
projectCode , code , version ) ;
projectCode , code , version ) ;
putMsg ( result , Status . MAIN_TABLE_USING_VERSION ) ;
putMsg ( result , Status . MAIN_TABLE_USING_VERSION ) ;
return result ;
return result ;
@ -2215,12 +2267,16 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
int deleteLog = processDefinitionLogMapper . deleteByProcessDefinitionCodeAndVersion ( code , version ) ;
int deleteLog = processDefinitionLogMapper . deleteByProcessDefinitionCodeAndVersion ( code , version ) ;
int deleteRelationLog = processTaskRelationLogMapper . deleteByCode ( code , version ) ;
int deleteRelationLog = processTaskRelationLogMapper . deleteByCode ( code , version ) ;
if ( deleteLog = = 0 | | deleteRelationLog = = 0 ) {
if ( deleteLog = = 0 | | deleteRelationLog = = 0 ) {
logger . error ( "Delete process definition version error, projectCode:{}, processDefinitionCode:{}, version:{}." , projectCode , code , version ) ;
logger . error (
"Delete process definition version error, projectCode:{}, processDefinitionCode:{}, version:{}." ,
projectCode , code , version ) ;
putMsg ( result , Status . DELETE_PROCESS_DEFINE_BY_CODE_ERROR ) ;
putMsg ( result , Status . DELETE_PROCESS_DEFINE_BY_CODE_ERROR ) ;
throw new ServiceException ( Status . DELETE_PROCESS_DEFINE_BY_CODE_ERROR ) ;
throw new ServiceException ( Status . DELETE_PROCESS_DEFINE_BY_CODE_ERROR ) ;
}
}
deleteOtherRelation ( project , result , processDefinition ) ;
deleteOtherRelation ( project , result , processDefinition ) ;
logger . info ( "Delete process definition version complete, projectCode:{}, processDefinitionCode:{}, version:{}." , projectCode , code , version ) ;
logger . info (
"Delete process definition version complete, projectCode:{}, processDefinitionCode:{}, version:{}." ,
projectCode , code , version ) ;
putMsg ( result , Status . SUCCESS ) ;
putMsg ( result , Status . SUCCESS ) ;
}
}
return result ;
return result ;
@ -2337,7 +2393,8 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
Date now = new Date ( ) ;
Date now = new Date ( ) ;
scheduleObj . setProcessDefinitionCode ( processDefinition . getCode ( ) ) ;
scheduleObj . setProcessDefinitionCode ( processDefinition . getCode ( ) ) ;
if ( DateUtils . differSec ( scheduleObj . getStartTime ( ) , scheduleObj . getEndTime ( ) ) = = 0 ) {
if ( DateUtils . differSec ( scheduleObj . getStartTime ( ) , scheduleObj . getEndTime ( ) ) = = 0 ) {
logger . warn ( "The schedule start time must not be the same as the end, processDefinitionCode:{}." , processDefinition . getCode ( ) ) ;
logger . warn ( "The schedule start time must not be the same as the end, processDefinitionCode:{}." ,
processDefinition . getCode ( ) ) ;
putMsg ( result , Status . SCHEDULE_START_TIME_END_TIME_SAME ) ;
putMsg ( result , Status . SCHEDULE_START_TIME_END_TIME_SAME ) ;
return result ;
return result ;
}
}
@ -2569,7 +2626,9 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
scheduleObj . setReleaseState ( ReleaseState . OFFLINE ) ;
scheduleObj . setReleaseState ( ReleaseState . OFFLINE ) ;
int updateSchedule = scheduleMapper . updateById ( scheduleObj ) ;
int updateSchedule = scheduleMapper . updateById ( scheduleObj ) ;
if ( updateSchedule = = 0 ) {
if ( updateSchedule = = 0 ) {
logger . error ( "Set schedule offline error, projectCode:{}, processDefinitionCode:{}, scheduleId:{}" , projectCode , code , scheduleObj . getId ( ) ) ;
logger . error (
"Set schedule offline error, projectCode:{}, processDefinitionCode:{}, scheduleId:{}" ,
projectCode , code , scheduleObj . getId ( ) ) ;
putMsg ( result , Status . OFFLINE_SCHEDULE_ERROR ) ;
putMsg ( result , Status . OFFLINE_SCHEDULE_ERROR ) ;
throw new ServiceException ( Status . OFFLINE_SCHEDULE_ERROR ) ;
throw new ServiceException ( Status . OFFLINE_SCHEDULE_ERROR ) ;
}
}